From 753a6c60f47f3ac4f270005b65e9d6481de8eb68 Mon Sep 17 00:00:00 2001
From: Ashlee Young
Date: Fri, 23 Oct 2015 10:00:02 -0700
Subject: Adding maven and ant source trees
Change-Id: I0a39b9add833a31b9c3f98d193983ae2f3a5a445
Signed-off-by: Ashlee Young
---
.../src/maven/apache-maven-3.3.3/DEPENDENCIES | 111 +
framework/src/maven/apache-maven-3.3.3/LICENSE | 202 +
framework/src/maven/apache-maven-3.3.3/NOTICE | 5 +
framework/src/maven/apache-maven-3.3.3/README.md | 23 +
.../apache-maven-3.3.3/apache-maven/README.txt | 79 +
.../maven/apache-maven-3.3.3/apache-maven/pom.xml | 216 ++
.../apache-maven/src/bin/m2.conf | 8 +
.../apache-maven-3.3.3/apache-maven/src/bin/mvn | 232 ++
.../apache-maven/src/bin/mvn.cmd | 176 +
.../apache-maven/src/bin/mvnDebug | 41 +
.../apache-maven/src/bin/mvnDebug.cmd | 31 +
.../apache-maven-3.3.3/apache-maven/src/bin/mvnyjp | 42 +
.../src/conf/logging/simplelogger.properties | 25 +
.../apache-maven/src/conf/settings.xml | 257 ++
.../apache-maven/src/conf/toolchains.xml | 103 +
.../apache-maven/src/lib/ext/README.txt | 2 +
.../main/appended-resources/META-INF/LICENSE.vm | 49 +
.../apache-maven/src/main/assembly/bin.xml | 94 +
.../apache-maven/src/main/assembly/src.xml | 49 +
.../apache-maven/src/site/site.xml | 29 +
.../apache/maven/settings/GlobalSettingsTest.java | 59 +
framework/src/maven/apache-maven-3.3.3/build.xml | 307 ++
.../src/maven/apache-maven-3.3.3/deploySite.sh | 23 +
.../src/maven/apache-maven-3.3.3/doap_Maven.rdf | 178 +
.../maven-aether-provider/pom.xml | 130 +
.../internal/ArtifactDescriptorReaderDelegate.java | 153 +
.../internal/ArtifactDescriptorUtils.java | 81 +
.../internal/DefaultArtifactDescriptorReader.java | 435 +++
.../repository/internal/DefaultModelCache.java | 119 +
.../repository/internal/DefaultModelResolver.java | 229 ++
.../internal/DefaultVersionRangeResolver.java | 322 ++
.../internal/DefaultVersionResolver.java | 636 ++++
.../repository/internal/LocalSnapshotMetadata.java | 163 +
.../internal/LocalSnapshotMetadataGenerator.java | 82 +
.../repository/internal/MavenAetherModule.java | 76 +
.../maven/repository/internal/MavenMetadata.java | 150 +
.../internal/MavenRepositorySystemUtils.java | 141 +
.../repository/internal/MavenSnapshotMetadata.java | 100 +
.../repository/internal/MavenWorkspaceReader.java | 32 +
.../repository/internal/RelocatedArtifact.java | 116 +
.../internal/RemoteSnapshotMetadata.java | 152 +
.../internal/RemoteSnapshotMetadataGenerator.java | 107 +
.../internal/SnapshotMetadataGeneratorFactory.java | 52 +
.../repository/internal/VersionsMetadata.java | 133 +
.../internal/VersionsMetadataGenerator.java | 108 +
.../internal/VersionsMetadataGeneratorFactory.java | 52 +
.../maven/repository/internal/package-info.java | 25 +
.../maven-aether-provider/src/site/apt/index.apt | 33 +
.../maven-aether-provider/src/site/site.xml | 36 +
.../internal/AbstractRepositoryTestCase.java | 87 +
.../DefaultArtifactDescriptorReaderTest.java | 77 +
.../internal/DefaultVersionResolverTest.java | 96 +
.../internal/MavenRepositorySystemUtilsTest.java | 45 +
.../repository/internal/RepositorySystemTest.java | 220 ++
.../internal/util/ConsoleRepositoryListener.java | 132 +
.../internal/util/ConsoleTransferListener.java | 186 +
.../07.20.3-SNAPSHOT/maven-metadata.xml | 49 +
.../dep-mng5459/0.4.0-SNAPSHOT/maven-metadata.xml | 47 +
.../artifact/1.0/artifact-1.0-classifier.zip | 0
.../repo/ut/simple/artifact/1.0/artifact-1.0.jar | 0
.../repo/ut/simple/artifact/1.0/artifact-1.0.pom | 48 +
.../repo/ut/simple/artifact/1.0/artifact-1.0.zip | 0
.../repo/ut/simple/artifact/maven-metadata.xml | 34 +
.../dependency/1.0/dependency-1.0-sources.jar | 0
.../ut/simple/dependency/1.0/dependency-1.0.jar | 0
.../ut/simple/dependency/1.0/dependency-1.0.pom | 31 +
.../repo/ut/simple/dependency/maven-metadata.xml | 34 +
.../repo/ut/simple/parent/1.0/parent-1.0.pom | 43 +
.../repo/ut/simple/parent/maven-metadata.xml | 34 +
.../apache-maven-3.3.3/maven-ant-tasks-2.1.1.jar | Bin 0 -> 1314262 bytes
.../apache-maven-3.3.3/maven-artifact/pom.xml | 58 +
.../java/org/apache/maven/artifact/Artifact.java | 161 +
.../org/apache/maven/artifact/ArtifactUtils.java | 215 ++
.../org/apache/maven/artifact/DefaultArtifact.java | 597 +++
.../maven/artifact/InvalidArtifactRTException.java | 100 +
.../maven/artifact/handler/ArtifactHandler.java | 42 +
.../maven/artifact/metadata/ArtifactMetadata.java | 27 +
.../artifact/repository/ArtifactRepository.java | 135 +
.../repository/ArtifactRepositoryPolicy.java | 222 ++
.../maven/artifact/repository/Authentication.java | 126 +
.../layout/ArtifactRepositoryLayout.java | 38 +
.../layout/ArtifactRepositoryLayout2.java | 31 +
.../metadata/RepositoryMetadataStoreException.java | 40 +
.../AbstractArtifactResolutionException.java | 347 ++
.../resolver/ArtifactNotFoundException.java | 85 +
.../resolver/ArtifactResolutionException.java | 68 +
.../resolver/CyclicDependencyException.java | 45 +
.../MultipleArtifactsNotFoundException.java | 122 +
.../artifact/resolver/filter/ArtifactFilter.java | 30 +
.../maven/artifact/versioning/ArtifactVersion.java | 42 +
.../artifact/versioning/ComparableVersion.java | 503 +++
.../versioning/DefaultArtifactVersion.java | 228 ++
.../InvalidVersionSpecificationException.java | 34 +
.../OverConstrainedVersionException.java | 49 +
.../maven/artifact/versioning/Restriction.java | 195 +
.../maven/artifact/versioning/VersionRange.java | 583 +++
.../java/org/apache/maven/repository/Proxy.java | 197 +
.../legacy/metadata/ArtifactMetadata.java | 83 +
.../maven-artifact/src/site/apt/index.apt | 47 +
.../maven-artifact/src/site/site.xml | 36 +
.../artifact/versioning/ComparableVersionTest.java | 231 ++
.../versioning/DefaultArtifactVersionTest.java | 223 ++
.../artifact/versioning/VersionRangeTest.java | 730 ++++
.../maven-builder-support/pom.xml | 49 +
.../org/apache/maven/building/DefaultProblem.java | 161 +
.../maven/building/DefaultProblemCollector.java | 64 +
.../java/org/apache/maven/building/FileSource.java | 79 +
.../java/org/apache/maven/building/Problem.java | 101 +
.../apache/maven/building/ProblemCollector.java | 59 +
.../maven/building/ProblemCollectorFactory.java | 43 +
.../java/org/apache/maven/building/Source.java | 49 +
.../org/apache/maven/building/StringSource.java | 90 +
.../java/org/apache/maven/building/UrlSource.java | 80 +
.../maven-builder-support/src/site/site.xml | 36 +
.../building/DefaultProblemCollectorTest.java | 76 +
.../apache/maven/building/DefaultProblemTest.java | 136 +
.../org/apache/maven/building/FileSourceTest.java | 93 +
.../building/ProblemCollectorFactoryTest.java | 45 +
.../apache/maven/building/StringSourceTest.java | 79 +
.../org/apache/maven/building/UrlSourceTest.java | 87 +
.../src/test/resources/source.txt | 1 +
.../maven/apache-maven-3.3.3/maven-compat/pom.xml | 115 +
.../apache/maven/artifact/ArtifactScopeEnum.java | 133 +
.../org/apache/maven/artifact/ArtifactStatus.java | 124 +
.../artifact/UnknownRepositoryLayoutException.java | 54 +
.../maven/artifact/deployer/ArtifactDeployer.java | 61 +
.../deployer/ArtifactDeploymentException.java | 43 +
.../artifact/deployer/DefaultArtifactDeployer.java | 161 +
.../installer/ArtifactInstallationException.java | 43 +
.../artifact/installer/ArtifactInstaller.java | 60 +
.../installer/DefaultArtifactInstaller.java | 135 +
.../artifact/manager/DefaultWagonManager.java | 182 +
.../manager/WagonConfigurationException.java | 38 +
.../maven/artifact/manager/WagonManager.java | 56 +
.../repository/ArtifactRepositoryFactory.java | 55 +
.../repository/DefaultArtifactRepository.java | 267 ++
.../DefaultArtifactRepositoryFactory.java | 124 +
.../repository/layout/FlatRepositoryLayout.java | 92 +
.../metadata/DefaultRepositoryMetadataManager.java | 558 +++
.../metadata/GroupRepositoryMetadata.java | 119 +
.../repository/metadata/MetadataBridge.java | 172 +
.../repository/metadata/MetadataUtils.java | 39 +
.../metadata/RepositoryMetadataReadException.java | 40 +
.../SnapshotArtifactRepositoryMetadata.java | 98 +
.../maven/artifact/resolver/ArtifactCollector.java | 42 +
.../maven/artifact/resolver/ArtifactResolver.java | 108 +
.../artifact/resolver/DebugResolutionListener.java | 167 +
.../resolver/DefaultArtifactCollector.java | 30 +
.../artifact/resolver/DefaultArtifactResolver.java | 643 ++++
.../resolver/ResolutionListenerForDepMgmt.java | 43 +
.../artifact/resolver/UnresolvedArtifacts.java | 66 +
.../resolver/WarningResolutionListener.java | 90 +
.../resolver/filter/InversionArtifactFilter.java | 65 +
.../artifact/resolver/filter/OrArtifactFilter.java | 93 +
.../resolver/filter/TypeArtifactFilter.java | 66 +
.../artifact/versioning/ManagedVersionMap.java | 56 +
.../maven/execution/DefaultRuntimeInformation.java | 64 +
.../apache/maven/execution/RuntimeInformation.java | 34 +
.../profiles/DefaultMavenProfilesBuilder.java | 93 +
.../maven/profiles/DefaultProfileManager.java | 248 ++
.../maven/profiles/MavenProfilesBuilder.java | 37 +
.../org/apache/maven/profiles/ProfileManager.java | 58 +
.../maven/profiles/ProfilesConversionUtils.java | 151 +
.../activation/DetectedProfileActivator.java | 35 +
.../profiles/activation/FileProfileActivator.java | 109 +
.../activation/JdkPrefixProfileActivator.java | 97 +
.../OperatingSystemProfileActivator.java | 161 +
.../activation/ProfileActivationException.java | 39 +
.../profiles/activation/ProfileActivator.java | 33 +
.../activation/SystemPropertyProfileActivator.java | 114 +
.../maven/project/DefaultMavenProjectBuilder.java | 324 ++
.../DefaultProjectBuilderConfiguration.java | 107 +
.../project/InvalidProjectModelException.java | 74 +
.../apache/maven/project/MavenProjectBuilder.java | 76 +
.../project/MissingRepositoryElementException.java | 38 +
.../java/org/apache/maven/project/ModelUtils.java | 367 ++
.../maven/project/ProjectBuilderConfiguration.java | 55 +
.../org/apache/maven/project/ProjectUtils.java | 118 +
.../DefaultModelInheritanceAssembler.java | 752 ++++
.../inheritance/ModelInheritanceAssembler.java | 41 +
.../AbstractStringBasedModelInterpolator.java | 407 ++
.../interpolation/BuildTimestampValueSource.java | 63 +
.../interpolation/ModelInterpolationException.java | 72 +
.../project/interpolation/ModelInterpolator.java | 66 +
.../PathTranslatingPostProcessor.java | 64 +
.../interpolation/RegexBasedModelInterpolator.java | 58 +
.../StringSearchModelInterpolator.java | 410 ++
.../maven/project/path/DefaultPathTranslator.java | 261 ++
.../project/validation/DefaultModelValidator.java | 76 +
.../project/validation/ModelValidationResult.java | 95 +
.../maven/project/validation/ModelValidator.java | 37 +
.../maven/reporting/MavenReportException.java | 39 +
.../maven/repository/DefaultMirrorSelector.java | 205 +
.../maven/repository/MavenArtifactMetadata.java | 119 +
.../org/apache/maven/repository/MetadataGraph.java | 96 +
.../apache/maven/repository/MetadataGraphNode.java | 101 +
.../repository/MetadataResolutionRequest.java | 202 +
.../maven/repository/MetadataResolutionResult.java | 356 ++
.../apache/maven/repository/MirrorSelector.java | 44 +
.../repository/UserLocalArtifactRepository.java | 74 +
.../maven/repository/VersionNotFoundException.java | 83 +
.../repository/legacy/ChecksumFailedException.java | 42 +
.../legacy/DefaultUpdateCheckManager.java | 438 +++
.../repository/legacy/DefaultWagonManager.java | 823 ++++
.../repository/legacy/LegacyRepositorySystem.java | 906 +++++
.../maven/repository/legacy/MavenArtifact.java | 96 +
.../repository/legacy/TransferListenerAdapter.java | 187 +
.../repository/legacy/UpdateCheckManager.java | 41 +
.../legacy/WagonConfigurationException.java | 63 +
.../maven/repository/legacy/WagonManager.java | 79 +
.../repository/ArtifactRepositoryFactory.java | 56 +
.../DefaultArtifactRepositoryFactory.java | 144 +
.../resolver/DefaultLegacyArtifactCollector.java | 796 ++++
.../legacy/resolver/LegacyArtifactCollector.java | 62 +
.../legacy/resolver/conflict/ConflictResolver.java | 44 +
.../resolver/conflict/ConflictResolverFactory.java | 48 +
.../ConflictResolverNotFoundException.java | 47 +
.../resolver/conflict/DefaultConflictResolver.java | 36 +
.../conflict/DefaultConflictResolverFactory.java | 80 +
.../conflict/FarthestConflictResolver.java | 47 +
.../resolver/conflict/NearestConflictResolver.java | 48 +
.../resolver/conflict/NewestConflictResolver.java | 62 +
.../resolver/conflict/OldestConflictResolver.java | 62 +
.../transform/AbstractVersionTransformation.java | 135 +
.../resolver/transform/ArtifactTransformation.java | 86 +
.../transform/ArtifactTransformationManager.java | 82 +
.../DefaultArtifactTransformationManager.java | 86 +
.../transform/LatestArtifactTransformation.java | 74 +
.../transform/ReleaseArtifactTransformation.java | 100 +
.../resolver/transform/SnapshotTransformation.java | 171 +
.../repository/metadata/ArtifactMetadata.java | 353 ++
.../repository/metadata/ClasspathContainer.java | 144 +
.../metadata/ClasspathTransformation.java | 46 +
.../metadata/DefaultClasspathTransformation.java | 183 +
.../DefaultGraphConflictResolutionPolicy.java | 73 +
.../metadata/DefaultGraphConflictResolver.java | 249 ++
.../metadata/GraphConflictResolutionException.java | 51 +
.../metadata/GraphConflictResolutionPolicy.java | 35 +
.../repository/metadata/GraphConflictResolver.java | 48 +
.../maven/repository/metadata/MetadataGraph.java | 523 +++
.../repository/metadata/MetadataGraphEdge.java | 189 +
.../MetadataGraphTransformationException.java | 50 +
.../repository/metadata/MetadataGraphVertex.java | 216 ++
.../repository/metadata/MetadataResolution.java | 71 +
.../metadata/MetadataResolutionException.java | 49 +
.../metadata/MetadataResolutionRequest.java | 79 +
.../MetadataResolutionRequestTypeEnum.java | 45 +
.../metadata/MetadataResolutionResult.java | 172 +
.../metadata/MetadataRetrievalException.java | 59 +
.../maven/repository/metadata/MetadataSource.java | 39 +
.../repository/metadata/MetadataTreeNode.java | 148 +
.../plugin/ExpressionDocumentationException.java | 37 +
.../usability/plugin/ExpressionDocumenter.java | 175 +
.../maven-compat/src/main/mdo/paramdoc.mdo | 154 +
.../maven-compat/src/main/mdo/profiles.mdo | 398 ++
.../maven/plugin-expressions/project.paramdoc.xml | 172 +
.../maven/plugin-expressions/rootless.paramdoc.xml | 48 +
.../maven/plugin-expressions/settings.paramdoc.xml | 53 +
.../src/main/resources/META-INF/maven/plugin.xml | 218 ++
.../maven-compat/src/site/site.xml | 36 +
.../AbstractArtifactComponentTestCase.java | 371 ++
.../apache/maven/artifact/ArtifactUtilsTest.java | 79 +
.../apache/maven/artifact/DefaultArtifactTest.java | 140 +
.../artifact/deployer/ArtifactDeployerTest.java | 67 +
.../deployer/SimpleArtifactMetadataSource.java | 66 +
.../factory/DefaultArtifactFactoryTest.java | 49 +
.../artifact/handler/ArtifactHandlerMock.java | 100 +
.../artifact/installer/ArtifactInstallerTest.java | 61 +
.../artifact/metadata/TestMetadataSource.java | 102 +
.../repository/MavenArtifactRepositoryTest.java | 59 +
.../resolver/ArtifactResolutionExceptionTest.java | 64 +
.../artifact/resolver/ArtifactResolverTest.java | 283 ++
.../resolver/DefaultArtifactResolverTest.java | 111 +
.../maven/artifact/resolver/TestFileWagon.java | 94 +
.../artifact/resolver/TestTransferListener.java | 43 +
.../resolver/filter/AndArtifactFilterTest.java | 62 +
.../resolver/filter/FilterHashEqualsTest.java | 50 +
.../resolver/filter/OrArtifactFilterTest.java | 62 +
.../resolver/filter/ScopeArtifactFilterTest.java | 96 +
.../maven/artifact/testutils/TestFileManager.java | 224 ++
.../transform/TransformationManagerTest.java | 46 +
.../manager/DefaultProfileManagerTest.java | 232 ++
.../project/AbstractMavenProjectTestCase.java | 185 +
.../maven/project/ClasspathArtifactResolver.java | 89 +
.../maven/project/EmptyLifecycleExecutor.java | 110 +
.../project/EmptyLifecyclePluginAnalyzer.java | 78 +
.../project/LegacyLocalRepositoryManager.java | 192 +
.../org/apache/maven/project/ModelUtilsTest.java | 616 +++
.../apache/maven/project/ProjectClasspathTest.java | 149 +
.../apache/maven/project/TestArtifactResolver.java | 30 +
.../maven/project/TestMavenRepositorySystem.java | 30 +
.../apache/maven/project/TestProjectBuilder.java | 68 +
.../AbstractProjectInheritanceTestCase.java | 57 +
.../inheritance/t00/ProjectInheritanceTest.java | 93 +
.../inheritance/t01/ProjectInheritanceTest.java | 92 +
.../inheritance/t02/ProjectInheritanceTest.java | 169 +
.../inheritance/t03/ProjectInheritanceTest.java | 68 +
.../inheritance/t04/ProjectInheritanceTest.java | 86 +
.../inheritance/t05/ProjectInheritanceTest.java | 79 +
.../inheritance/t06/ProjectInheritanceTest.java | 80 +
.../inheritance/t07/ProjectInheritanceTest.java | 82 +
.../inheritance/t08/ProjectInheritanceTest.java | 81 +
.../inheritance/t09/ProjectInheritanceTest.java | 119 +
.../inheritance/t10/ProjectInheritanceTest.java | 94 +
.../inheritance/t11/ProjectInheritanceTest.java | 64 +
.../inheritance/t12/ProjectInheritanceTest.java | 65 +
.../inheritance/t12scm/ProjectInheritanceTest.java | 125 +
.../project/path/DefaultPathTranslatorTest.java | 58 +
.../repository/DefaultMirrorSelectorTest.java | 38 +
.../maven/repository/LegacyRepositoryLayout.java | 89 +
.../repository/LegacyRepositorySystemTest.java | 206 +
.../maven/repository/MirrorProcessorTest.java | 259 ++
.../legacy/DefaultUpdateCheckManagerTest.java | 240 ++
.../repository/legacy/DefaultWagonManagerTest.java | 422 ++
.../legacy/LegacyRepositorySystemTest.java | 88 +
.../maven/repository/legacy/PerLookupWagon.java | 38 +
.../maven/repository/legacy/StringWagon.java | 107 +
.../org/apache/maven/repository/legacy/WagonA.java | 39 +
.../org/apache/maven/repository/legacy/WagonB.java | 39 +
.../org/apache/maven/repository/legacy/WagonC.java | 39 +
.../apache/maven/repository/legacy/WagonMock.java | 50 +
.../resolver/DefaultArtifactCollectorTest.java | 984 +++++
.../conflict/AbstractConflictResolverTest.java | 143 +
.../conflict/FarthestConflictResolverTest.java | 107 +
.../conflict/NearestConflictResolverTest.java | 107 +
.../conflict/NewestConflictResolverTest.java | 107 +
.../conflict/OldestConflictResolverTest.java | 107 +
.../DefaultClasspathTransformationTest.java | 120 +
.../DefaultGraphConflictResolutionPolicyTest.java | 59 +
.../metadata/DefaultGraphConflictResolverTest.java | 153 +
.../repository/metadata/TestMetadataSource.java | 99 +
.../org/apache/maven/its/a/0.1/a-0.1.jar | Bin 0 -> 1898 bytes
.../org/apache/maven/its/a/0.1/a-0.1.pom | 41 +
.../org/apache/maven/its/a/maven-metadata.xml | 12 +
.../org/apache/maven/its/b/0.1/b-0.1.jar | Bin 0 -> 1936 bytes
.../org/apache/maven/its/b/0.1/b-0.1.pom | 49 +
.../org/apache/maven/its/b/maven-metadata.xml | 12 +
.../test/repository-system/maven-core-2.1.0.jar | 0
.../resources/artifact-install/artifact-1.0.jar | 1 +
.../inheritance-repo/t00/maven/poms/p0-1.0.pom | 11 +
.../inheritance-repo/t00/maven/poms/p1-1.0.pom | 16 +
.../inheritance-repo/t00/maven/poms/p2-1.0.pom | 18 +
.../inheritance-repo/t00/maven/poms/p3-1.0.pom | 14 +
.../inheritance-repo/t00/maven/poms/p4-1.0.pom | 13 +
.../inheritance-repo/t01/maven.t01/poms/p0-1.0.pom | 11 +
.../inheritance-repo/t01/maven.t01/poms/p1-1.0.pom | 16 +
.../inheritance-repo/t01/maven.t01/poms/p2-1.0.pom | 16 +
.../inheritance-repo/t01/maven.t01/poms/p3-1.0.pom | 16 +
.../inheritance-repo/t01/maven.t01/poms/p4-1.0.pom | 16 +
.../inheritance-repo/t02/p0/p1/p2/p3/p4/p5/pom.xml | 32 +
.../inheritance-repo/t02/p0/p1/p2/p3/p4/pom.xml | 32 +
.../inheritance-repo/t02/p0/p1/p2/p3/pom.xml | 33 +
.../inheritance-repo/t02/p0/p1/p2/pom.xml | 37 +
.../resources/inheritance-repo/t02/p0/p1/pom.xml | 51 +
.../test/resources/inheritance-repo/t02/p0/pom.xml | 30 +
.../resources/inheritance-repo/t03/p0/p1/pom.xml | 45 +
.../test/resources/inheritance-repo/t03/p0/pom.xml | 30 +
.../t04/maven-test/jars/t04-a-1.0.jar | 1 +
.../t04/maven-test/jars/t04-b-1.0.jar | 1 +
.../t04/maven-test/jars/t04-b-2.0.jar | 1 +
.../t04/maven-test/jars/t04-c-1.0.jar | 1 +
.../t04/maven-test/jars/t04-c-2.0.jar | 1 +
.../t04/maven-test/poms/t04-a-1.0.pom | 21 +
.../t04/maven-test/poms/t04-b-1.0.pom | 7 +
.../t04/maven-test/poms/t04-b-2.0.pom | 7 +
.../t04/maven-test/poms/t04-c-1.0.pom | 7 +
.../t04/maven-test/poms/t04-c-2.0.pom | 7 +
.../resources/inheritance-repo/t04/p0/p1/pom.xml | 41 +
.../test/resources/inheritance-repo/t04/p0/pom.xml | 37 +
.../t05/maven-test/jars/t05-a-1.0.jar | 1 +
.../t05/maven-test/jars/t05-a-2.0.jar | 1 +
.../t05/maven-test/jars/t05-b-1.0.jar | 1 +
.../t05/maven-test/jars/t05-b-1.1.jar | 1 +
.../t05/maven-test/jars/t05-b-2.0.jar | 1 +
.../t05/maven-test/jars/t05-c-1.0.jar | 1 +
.../t05/maven-test/jars/t05-d-1.0.jar | 1 +
.../t05/maven-test/jars/t05-d-1.1.jar | 1 +
.../t05/maven-test/jars/t05-d-1.2.jar | 1 +
.../t05/maven-test/poms/t05-a-1.0.pom | 23 +
.../t05/maven-test/poms/t05-a-2.0.pom | 23 +
.../t05/maven-test/poms/t05-b-1.0.pom | 24 +
.../t05/maven-test/poms/t05-b-1.1.pom | 24 +
.../t05/maven-test/poms/t05-b-2.0.pom | 24 +
.../t05/maven-test/poms/t05-c-1.0.pom | 17 +
.../t05/maven-test/poms/t05-d-1.0.pom | 7 +
.../t05/maven-test/poms/t05-d-1.1.pom | 7 +
.../t05/maven-test/poms/t05-d-1.2.pom | 7 +
.../resources/inheritance-repo/t05/p0/p1/pom.xml | 54 +
.../test/resources/inheritance-repo/t05/p0/pom.xml | 36 +
.../t06/maven-test/jars/t06-a-1.0.jar | 1 +
.../t06/maven-test/jars/t06-b-1.0.jar | 1 +
.../t06/maven-test/jars/t06-b-1.1.jar | 1 +
.../t06/maven-test/jars/t06-c-1.0.jar | 1 +
.../t06/maven-test/jars/t06-d-1.0.jar | 1 +
.../t06/maven-test/jars/t06-d-1.1.jar | 1 +
.../t06/maven-test/jars/t06-d-1.2.jar | 1 +
.../t06/maven-test/poms/t06-a-1.0.pom | 23 +
.../t06/maven-test/poms/t06-b-1.0.pom | 24 +
.../t06/maven-test/poms/t06-b-1.1.pom | 24 +
.../t06/maven-test/poms/t06-c-1.0.pom | 17 +
.../t06/maven-test/poms/t06-d-1.0.pom | 7 +
.../t06/maven-test/poms/t06-d-1.1.pom | 7 +
.../t06/maven-test/poms/t06-d-1.2.pom | 7 +
.../resources/inheritance-repo/t06/p0/p1/pom.xml | 54 +
.../test/resources/inheritance-repo/t06/p0/pom.xml | 37 +
.../t07/maven-test/jars/t07-a-1.0.jar | 1 +
.../t07/maven-test/jars/t07-b-1.0.jar | 1 +
.../t07/maven-test/jars/t07-b-1.1.jar | 1 +
.../t07/maven-test/jars/t07-c-1.0.jar | 1 +
.../t07/maven-test/jars/t07-d-1.0.jar | 1 +
.../t07/maven-test/jars/t07-d-1.1.jar | 1 +
.../t07/maven-test/jars/t07-d-1.2.jar | 1 +
.../t07/maven-test/poms/t07-a-1.0.pom | 23 +
.../t07/maven-test/poms/t07-b-1.0.pom | 24 +
.../t07/maven-test/poms/t07-b-1.1.pom | 24 +
.../t07/maven-test/poms/t07-c-1.0.pom | 17 +
.../t07/maven-test/poms/t07-d-1.0.pom | 7 +
.../t07/maven-test/poms/t07-d-1.1.pom | 7 +
.../t07/maven-test/poms/t07-d-1.2.pom | 7 +
.../resources/inheritance-repo/t07/p0/p1/pom.xml | 54 +
.../test/resources/inheritance-repo/t07/p0/pom.xml | 37 +
.../t08/maven-test/jars/t08-a-1.0.jar | 1 +
.../t08/maven-test/jars/t08-b-1.0.jar | 1 +
.../t08/maven-test/jars/t08-b-1.1.jar | 1 +
.../t08/maven-test/jars/t08-c-1.0.jar | 1 +
.../t08/maven-test/jars/t08-d-1.0.jar | 1 +
.../t08/maven-test/jars/t08-d-1.1.jar | 1 +
.../t08/maven-test/jars/t08-d-1.2.jar | 1 +
.../t08/maven-test/poms/t08-a-1.0.pom | 23 +
.../t08/maven-test/poms/t08-b-1.0.pom | 24 +
.../t08/maven-test/poms/t08-b-1.1.pom | 24 +
.../t08/maven-test/poms/t08-c-1.0.pom | 17 +
.../t08/maven-test/poms/t08-d-1.0.pom | 7 +
.../t08/maven-test/poms/t08-d-1.1.pom | 7 +
.../t08/maven-test/poms/t08-d-1.2.pom | 7 +
.../resources/inheritance-repo/t08/p0/p1/pom.xml | 59 +
.../test/resources/inheritance-repo/t08/p0/pom.xml | 37 +
.../t09/maven-test/jars/t09-a-1.0.jar | 1 +
.../t09/maven-test/jars/t09-b-1.0.jar | 1 +
.../t09/maven-test/jars/t09-c-1.0.jar | 1 +
.../t09/maven-test/jars/t09-d-1.0.jar | 1 +
.../t09/maven-test/poms/t09-a-1.0.pom | 24 +
.../t09/maven-test/poms/t09-b-1.0.pom | 17 +
.../t09/maven-test/poms/t09-c-1.0.pom | 7 +
.../t09/maven-test/poms/t09-d-1.0.pom | 17 +
.../resources/inheritance-repo/t09/p0/p1/pom.xml | 36 +
.../resources/inheritance-repo/t09/p0/p2/pom.xml | 42 +
.../test/resources/inheritance-repo/t09/p0/pom.xml | 38 +
.../t10/maven-test/jars/t10-a-1.0.jar | 1 +
.../t10/maven-test/jars/t10-b-1.0.jar | 1 +
.../t10/maven-test/jars/t10-c-1.0.jar | 1 +
.../t10/maven-test/poms/t10-a-1.0.pom | 24 +
.../t10/maven-test/poms/t10-b-1.0.pom | 7 +
.../t10/maven-test/poms/t10-c-1.0.pom | 7 +
.../resources/inheritance-repo/t10/p0/p1/pom.xml | 42 +
.../test/resources/inheritance-repo/t10/p0/pom.xml | 41 +
.../resources/inheritance-repo/t11/p0/p1/pom.xml | 16 +
.../test/resources/inheritance-repo/t11/p0/pom.xml | 27 +
.../resources/inheritance-repo/t12/p0/p1/pom.xml | 29 +
.../test/resources/inheritance-repo/t12/p0/pom.xml | 30 +
.../t12scm/maven/p0/1.0/p0-1.0.pom | 18 +
.../t12scm/maven/p1/1.0/p1-1.0.pom | 11 +
.../inheritance-repo/t12scm/p0/modules/p1/pom.xml | 11 +
.../resources/inheritance-repo/t12scm/p0/pom.xml | 18 +
.../src/test/resources/local-repo/marker.txt | 1 +
.../maven-test/jars/maven-test-a-1.0.jar | 1 +
.../maven-test/jars/maven-test-b-1.0.jar | 1 +
.../maven-test/jars/maven-test-c-1.0.jar | 1 +
.../maven-test/jars/maven-test-d-1.0.jar | 1 +
.../maven-test/poms/maven-test-a-1.0.pom | 23 +
.../maven-test/poms/maven-test-b-1.0.pom | 23 +
.../maven-test/poms/maven-test-c-1.0.pom | 16 +
.../maven-test/poms/maven-test-d-1.1.pom | 7 +
.../maven-test/poms/maven-test-d-1.2.pom | 7 +
.../jars/maven-snapshot-a-1.0-SNAPSHOT.jar | 1 +
...en-snapshot-a-1.0-SNAPSHOT.jar.snapshot-version | 1 +
.../jars/maven-snapshot-b-1.0-SNAPSHOT.jar | 1 +
...en-snapshot-b-1.0-SNAPSHOT.jar.snapshot-version | 1 +
.../jars/maven-snapshot-e-1.0-SNAPSHOT.jar | 1 +
...en-snapshot-e-1.0-SNAPSHOT.jar.snapshot-version | 1 +
.../poms/maven-test-snapshot-resolving-1.0.pom | 49 +
.../artifact/deployer/ArtifactDeployerTest.xml | 23 +
.../artifact/installer/ArtifactInstallerTest.xml | 23 +
.../artifact/manager/DefaultWagonManagerTest.xml | 48 +
.../artifact/resolver/ArtifactResolverTest.xml | 71 +
.../artifact/resolver/ArtifactUpdatePolicyTest.xml | 29 +
.../maven/project/AbstractMavenProjectTestCase.xml | 9 +
.../maven-compat/src/test/resources/pom.xml | 155 +
.../scope/project-with-scoped-dependencies.xml | 99 +
.../projects/scope/transitive-compile-dep.xml | 57 +
.../projects/scope/transitive-default-dep.xml | 58 +
.../projects/scope/transitive-provided-dep.xml | 57 +
.../projects/scope/transitive-runtime-dep.xml | 58 +
.../projects/scope/transitive-test-dep.xml | 58 +
.../maven-core/lifecycle-executor.txt | 217 ++
.../maven-core/plugin-manager.txt | 184 +
.../maven/apache-maven-3.3.3/maven-core/pom.xml | 238 ++
.../maven-core/project-builder.txt | 1 +
.../maven/AbstractMavenLifecycleParticipant.java | 77 +
.../org/apache/maven/ArtifactFilterManager.java | 51 +
.../maven/ArtifactFilterManagerDelegate.java | 34 +
.../src/main/java/org/apache/maven/BuildAbort.java | 39 +
.../org/apache/maven/BuildFailureException.java | 39 +
.../apache/maven/DefaultArtifactFilterManager.java | 112 +
.../main/java/org/apache/maven/DefaultMaven.java | 521 +++
.../maven/DefaultProjectDependenciesResolver.java | 217 ++
.../apache/maven/DuplicateProjectException.java | 61 +
.../org/apache/maven/InternalErrorException.java | 36 +
.../src/main/java/org/apache/maven/Maven.java | 34 +
.../org/apache/maven/MavenExecutionException.java | 55 +
.../org/apache/maven/MissingModuleException.java | 48 +
.../apache/maven/ProjectBuildFailureException.java | 55 +
.../org/apache/maven/ProjectCycleException.java | 39 +
.../apache/maven/ProjectDependenciesResolver.java | 95 +
.../main/java/org/apache/maven/ReactorReader.java | 255 ++
.../java/org/apache/maven/RepositoryUtils.java | 362 ++
.../main/java/org/apache/maven/SessionScoped.java | 42 +
.../DependencyResolutionRequiredException.java | 35 +
.../maven/artifact/InvalidRepositoryException.java | 65 +
.../maven/artifact/factory/ArtifactFactory.java | 59 +
.../artifact/factory/DefaultArtifactFactory.java | 160 +
.../artifact/handler/DefaultArtifactHandler.java | 134 +
.../handler/manager/ArtifactHandlerManager.java | 37 +
.../manager/DefaultArtifactHandlerManager.java | 73 +
.../metadata/AbstractArtifactMetadata.java | 33 +
.../ArtifactMetadataRetrievalException.java | 55 +
.../artifact/metadata/ArtifactMetadataSource.java | 52 +
.../maven/artifact/metadata/ResolutionGroup.java | 46 +
.../repository/DefaultRepositoryRequest.java | 134 +
.../repository/LegacyLocalRepositoryManager.java | 435 +++
.../repository/MavenArtifactRepository.java | 412 ++
.../maven/artifact/repository/RepositoryCache.java | 58 +
.../artifact/repository/RepositoryRequest.java | 95 +
.../repository/layout/DefaultRepositoryLayout.java | 112 +
.../metadata/AbstractRepositoryMetadata.java | 255 ++
.../metadata/ArtifactRepositoryMetadata.java | 129 +
.../repository/metadata/RepositoryMetadata.java | 92 +
.../RepositoryMetadataDeploymentException.java | 40 +
.../RepositoryMetadataInstallationException.java | 40 +
.../metadata/RepositoryMetadataManager.java | 61 +
.../RepositoryMetadataResolutionException.java | 40 +
.../metadata/io/DefaultMetadataReader.java | 110 +
.../metadata/io/MetadataParseException.java | 93 +
.../repository/metadata/io/MetadataReader.java | 82 +
.../resolver/ArtifactResolutionRequest.java | 329 ++
.../resolver/ArtifactResolutionResult.java | 358 ++
.../resolver/DefaultResolutionErrorHandler.java | 89 +
.../artifact/resolver/ResolutionErrorHandler.java | 31 +
.../artifact/resolver/ResolutionListener.java | 109 +
.../maven/artifact/resolver/ResolutionNode.java | 251 ++
.../filter/AbstractScopeArtifactFilter.java | 107 +
.../resolver/filter/AndArtifactFilter.java | 99 +
.../filter/CumulativeScopeArtifactFilter.java | 122 +
.../resolver/filter/ExcludesArtifactFilter.java | 44 +
.../resolver/filter/ExclusionSetFilter.java | 86 +
.../resolver/filter/IncludesArtifactFilter.java | 93 +
.../resolver/filter/ScopeArtifactFilter.java | 78 +
.../apache/maven/bridge/MavenRepositorySystem.java | 785 ++++
.../classrealm/ArtifactClassRealmConstituent.java | 76 +
.../maven/classrealm/ClassRealmConstituent.java | 74 +
.../apache/maven/classrealm/ClassRealmManager.java | 88 +
.../classrealm/ClassRealmManagerDelegate.java | 36 +
.../apache/maven/classrealm/ClassRealmRequest.java | 100 +
.../maven/classrealm/DefaultClassRealmManager.java | 416 ++
.../maven/classrealm/DefaultClassRealmRequest.java | 82 +
.../BasedirBeanConfigurationPathTranslator.java | 71 +
.../configuration/BeanConfigurationException.java | 41 +
.../BeanConfigurationPathTranslator.java | 41 +
.../configuration/BeanConfigurationRequest.java | 130 +
.../BeanConfigurationValuePreprocessor.java | 45 +
.../maven/configuration/BeanConfigurator.java | 44 +
.../DefaultBeanConfigurationRequest.java | 195 +
.../internal/DefaultBeanConfigurator.java | 160 +
.../apache/maven/eventspy/AbstractEventSpy.java | 45 +
.../java/org/apache/maven/eventspy/EventSpy.java | 77 +
.../eventspy/internal/EventSpyDispatcher.java | 158 +
.../internal/EventSpyExecutionListener.java | 163 +
.../internal/EventSpyRepositoryListener.java | 176 +
.../maven/exception/DefaultExceptionHandler.java | 336 ++
.../apache/maven/exception/ExceptionHandler.java | 30 +
.../apache/maven/exception/ExceptionSummary.java | 79 +
.../maven/execution/AbstractExecutionListener.java | 116 +
.../org/apache/maven/execution/BuildFailure.java | 61 +
.../org/apache/maven/execution/BuildSuccess.java | 44 +
.../org/apache/maven/execution/BuildSummary.java | 78 +
.../execution/DefaultMavenExecutionRequest.java | 1299 +++++++
.../DefaultMavenExecutionRequestPopulator.java | 318 ++
.../execution/DefaultMavenExecutionResult.java | 109 +
.../org/apache/maven/execution/ExecutionEvent.java | 92 +
.../apache/maven/execution/ExecutionListener.java | 66 +
.../maven/execution/MavenExecutionRequest.java | 443 +++
.../MavenExecutionRequestPopulationException.java | 43 +
.../execution/MavenExecutionRequestPopulator.java | 74 +
.../maven/execution/MavenExecutionResult.java | 70 +
.../org/apache/maven/execution/MavenSession.java | 438 +++
.../apache/maven/execution/MojoExecutionEvent.java | 86 +
.../maven/execution/MojoExecutionListener.java | 40 +
.../maven/execution/ProjectDependencyGraph.java | 64 +
.../maven/execution/ProjectExecutionEvent.java | 90 +
.../maven/execution/ProjectExecutionListener.java | 44 +
.../org/apache/maven/execution/ReactorManager.java | 199 +
.../apache/maven/execution/SettingsAdapter.java | 126 +
.../maven/execution/scope/MojoExecutionScoped.java | 42 +
.../execution/scope/WeakMojoExecutionListener.java | 44 +
.../scope/internal/MojoExecutionScope.java | 190 +
.../internal/MojoExecutionScopeCoreModule.java | 45 +
.../scope/internal/MojoExecutionScopeModule.java | 56 +
.../maven/extension/internal/CoreExports.java | 75 +
.../extension/internal/CoreExportsProvider.java | 53 +
.../extension/internal/CoreExtensionEntry.java | 141 +
.../apache/maven/graph/DefaultGraphBuilder.java | 488 +++
.../maven/graph/DefaultProjectDependencyGraph.java | 134 +
.../graph/FilteredProjectDependencyGraph.java | 111 +
.../java/org/apache/maven/graph/GraphBuilder.java | 31 +
.../DefaultRepositorySystemSessionFactory.java | 271 ++
.../internal/aether/LoggingRepositoryListener.java | 141 +
.../maven/lifecycle/DefaultLifecycleExecutor.java | 177 +
.../apache/maven/lifecycle/DefaultLifecycles.java | 144 +
.../maven/lifecycle/LifeCyclePluginAnalyzer.java | 32 +
.../java/org/apache/maven/lifecycle/Lifecycle.java | 80 +
.../lifecycle/LifecycleExecutionException.java | 111 +
.../apache/maven/lifecycle/LifecycleExecutor.java | 89 +
.../maven/lifecycle/LifecycleMappingDelegate.java | 52 +
.../lifecycle/LifecycleNotFoundException.java | 54 +
.../lifecycle/LifecyclePhaseNotFoundException.java | 55 +
.../apache/maven/lifecycle/MavenExecutionPlan.java | 202 +
.../maven/lifecycle/MissingProjectException.java | 41 +
.../maven/lifecycle/MojoExecutionConfigurator.java | 44 +
.../maven/lifecycle/NoGoalSpecifiedException.java | 41 +
.../lifecycle/internal/BuildListCalculator.java | 67 +
.../lifecycle/internal/BuildThreadFactory.java | 39 +
.../internal/CompoundProjectExecutionListener.java | 72 +
.../lifecycle/internal/DefaultExecutionEvent.java | 77 +
.../internal/DefaultExecutionEventCatapult.java | 119 +
.../DefaultLifecycleExecutionPlanCalculator.java | 591 +++
.../internal/DefaultLifecycleMappingDelegate.java | 158 +
.../internal/DefaultLifecyclePluginAnalyzer.java | 258 ++
.../DefaultLifecycleTaskSegmentCalculator.java | 155 +
.../internal/DefaultMojoExecutionConfigurator.java | 108 +
.../internal/DefaultProjectArtifactFactory.java | 53 +
.../lifecycle/internal/DependencyContext.java | 114 +
.../lifecycle/internal/ExecutionEventCatapult.java | 40 +
.../lifecycle/internal/ExecutionPlanItem.java | 84 +
.../apache/maven/lifecycle/internal/GoalTask.java | 45 +
.../lifecycle/internal/LifecycleDebugLogger.java | 182 +
.../internal/LifecycleDependencyResolver.java | 334 ++
.../internal/LifecycleExecutionPlanCalculator.java | 67 +
.../lifecycle/internal/LifecycleModuleBuilder.java | 154 +
.../internal/LifecyclePluginResolver.java | 95 +
.../maven/lifecycle/internal/LifecycleStarter.java | 150 +
.../maven/lifecycle/internal/LifecycleTask.java | 50 +
.../internal/LifecycleTaskSegmentCalculator.java | 61 +
.../lifecycle/internal/MojoDescriptorCreator.java | 309 ++
.../maven/lifecycle/internal/MojoExecutor.java | 394 ++
.../maven/lifecycle/internal/PhaseRecorder.java | 78 +
.../lifecycle/internal/ProjectArtifactFactory.java | 38 +
.../maven/lifecycle/internal/ProjectBuildList.java | 158 +
.../maven/lifecycle/internal/ProjectIndex.java | 70 +
.../maven/lifecycle/internal/ProjectSegment.java | 106 +
.../lifecycle/internal/ReactorBuildStatus.java | 80 +
.../maven/lifecycle/internal/ReactorContext.java | 83 +
.../maven/lifecycle/internal/TaskSegment.java | 73 +
.../maven/lifecycle/internal/builder/Builder.java | 47 +
.../lifecycle/internal/builder/BuilderCommon.java | 199 +
.../internal/builder/BuilderNotFoundException.java | 29 +
.../multithreaded/ConcurrencyDependencyGraph.java | 153 +
.../multithreaded/MultiThreadedBuilder.java | 197 +
.../builder/multithreaded/ThreadOutputMuxer.java | 477 +++
.../singlethreaded/SingleThreadedBuilder.java | 65 +
.../lifecycle/mapping/DefaultLifecycleMapping.java | 111 +
.../apache/maven/lifecycle/mapping/Lifecycle.java | 83 +
.../maven/lifecycle/mapping/LifecycleMapping.java | 39 +
.../plugin/DefaultLifecycleBindingsInjector.java | 171 +
.../maven/monitor/event/EventDispatcher.java | 37 +
.../apache/maven/monitor/event/EventMonitor.java | 35 +
.../apache/maven/plugin/BuildPluginManager.java | 54 +
.../java/org/apache/maven/plugin/CacheUtils.java | 211 +
.../plugin/CompoundMojoExecutionListener.java | 64 +
.../CycleDetectedInPluginGraphException.java | 46 +
.../maven/plugin/DebugConfigurationListener.java | 91 +
.../maven/plugin/DefaultBuildPluginManager.java | 244 ++
.../maven/plugin/DefaultExtensionRealmCache.java | 170 +
.../maven/plugin/DefaultPluginArtifactsCache.java | 218 ++
.../maven/plugin/DefaultPluginDescriptorCache.java | 219 ++
.../maven/plugin/DefaultPluginRealmCache.java | 219 ++
.../apache/maven/plugin/ExtensionRealmCache.java | 84 +
.../plugin/InvalidPluginDescriptorException.java | 44 +
.../maven/plugin/InvalidPluginException.java | 48 +
.../org/apache/maven/plugin/LegacySupport.java | 59 +
.../apache/maven/plugin/MavenPluginManager.java | 128 +
.../apache/maven/plugin/MavenPluginValidator.java | 78 +
.../org/apache/maven/plugin/MojoExecution.java | 237 ++
.../apache/maven/plugin/PluginArtifactsCache.java | 91 +
.../maven/plugin/PluginConfigurationException.java | 74 +
.../maven/plugin/PluginContainerException.java | 88 +
.../apache/maven/plugin/PluginDescriptorCache.java | 58 +
.../plugin/PluginDescriptorParsingException.java | 58 +
.../maven/plugin/PluginExecutionException.java | 90 +
.../maven/plugin/PluginIncompatibleException.java | 36 +
.../apache/maven/plugin/PluginLoaderException.java | 124 +
.../org/apache/maven/plugin/PluginManager.java | 82 +
.../maven/plugin/PluginManagerException.java | 197 +
.../maven/plugin/PluginNotFoundException.java | 58 +
.../maven/plugin/PluginParameterException.java | 192 +
.../plugin/PluginParameterExpressionEvaluator.java | 482 +++
.../org/apache/maven/plugin/PluginRealmCache.java | 85 +
.../maven/plugin/PluginResolutionException.java | 47 +
.../plugin/internal/DefaultLegacySupport.java | 74 +
.../plugin/internal/DefaultMavenPluginManager.java | 946 +++++
.../DefaultPluginDependenciesResolver.java | 256 ++
.../plugin/internal/DefaultPluginManager.java | 261 ++
.../maven/plugin/internal/PlexusUtilsInjector.java | 87 +
.../internal/PluginDependenciesResolver.java | 71 +
.../PluginDependencyResolutionListener.java | 158 +
.../internal/ValidatingConfigurationListener.java | 97 +
.../maven/plugin/internal/WagonExcluder.java | 109 +
.../plugin/prefix/DefaultPluginPrefixRequest.java | 156 +
.../prefix/NoPluginFoundForPrefixException.java | 65 +
.../maven/plugin/prefix/PluginPrefixRequest.java | 115 +
.../maven/plugin/prefix/PluginPrefixResolver.java | 42 +
.../maven/plugin/prefix/PluginPrefixResult.java | 55 +
.../internal/DefaultPluginPrefixResolver.java | 294 ++
.../prefix/internal/DefaultPluginPrefixResult.java | 90 +
.../version/DefaultPluginVersionRequest.java | 165 +
.../version/PluginVersionNotFoundException.java | 47 +
.../maven/plugin/version/PluginVersionRequest.java | 115 +
.../version/PluginVersionResolutionException.java | 107 +
.../plugin/version/PluginVersionResolver.java | 42 +
.../maven/plugin/version/PluginVersionResult.java | 47 +
.../internal/DefaultPluginVersionResolver.java | 408 ++
.../internal/DefaultPluginVersionResult.java | 69 +
.../DefaultDependencyResolutionRequest.java | 82 +
.../project/DefaultDependencyResolutionResult.java | 111 +
.../maven/project/DefaultMavenProjectHelper.java | 128 +
.../project/DefaultModelBuildingListener.java | 155 +
.../maven/project/DefaultProjectBuilder.java | 929 +++++
.../project/DefaultProjectBuildingHelper.java | 295 ++
.../project/DefaultProjectBuildingRequest.java | 339 ++
.../project/DefaultProjectBuildingResult.java | 110 +
.../DefaultProjectDependenciesResolver.java | 333 ++
.../maven/project/DefaultProjectRealmCache.java | 147 +
.../project/DependencyResolutionException.java | 42 +
.../maven/project/DependencyResolutionRequest.java | 81 +
.../maven/project/DependencyResolutionResult.java | 80 +
.../DuplicateArtifactAttachmentException.java | 64 +
.../maven/project/DuplicateProjectException.java | 80 +
.../apache/maven/project/ExtensionDescriptor.java | 88 +
.../maven/project/ExtensionDescriptorBuilder.java | 168 +
.../project/InvalidProjectVersionException.java | 59 +
.../org/apache/maven/project/MavenProject.java | 1976 ++++++++++
.../apache/maven/project/MavenProjectHelper.java | 76 +
.../org/apache/maven/project/ProjectBuilder.java | 98 +
.../maven/project/ProjectBuildingException.java | 145 +
.../maven/project/ProjectBuildingHelper.java | 81 +
.../maven/project/ProjectBuildingRequest.java | 194 +
.../maven/project/ProjectBuildingResult.java | 74 +
.../maven/project/ProjectDependenciesResolver.java | 40 +
.../apache/maven/project/ProjectModelResolver.java | 248 ++
.../apache/maven/project/ProjectRealmCache.java | 79 +
.../org/apache/maven/project/ProjectSorter.java | 289 ++
.../apache/maven/project/ReactorModelCache.java | 103 +
.../org/apache/maven/project/ReactorModelPool.java | 106 +
.../maven/project/RepositorySessionDecorator.java | 36 +
.../project/artifact/ActiveProjectArtifact.java | 403 ++
.../project/artifact/ArtifactWithDependencies.java | 33 +
.../maven/project/artifact/AttachedArtifact.java | 185 +
.../artifact/DefaultMavenMetadataCache.java | 347 ++
.../project/artifact/DefaultMetadataSource.java | 37 +
.../InvalidDependencyVersionException.java | 55 +
.../maven/project/artifact/MavenMetadataCache.java | 38 +
.../project/artifact/MavenMetadataSource.java | 770 ++++
.../maven/project/artifact/PluginArtifact.java | 94 +
.../maven/project/artifact/ProjectArtifact.java | 100 +
.../project/artifact/ProjectArtifactMetadata.java | 130 +
.../apache/maven/project/path/PathTranslator.java | 41 +
.../properties/internal/EnvironmentUtils.java | 70 +
.../properties/internal/SystemProperties.java | 51 +
.../repository/ArtifactDoesNotExistException.java | 34 +
.../maven/repository/ArtifactTransferEvent.java | 343 ++
.../ArtifactTransferFailedException.java | 35 +
.../maven/repository/ArtifactTransferListener.java | 36 +
.../maven/repository/ArtifactTransferResource.java | 66 +
.../DelegatingLocalArtifactRepository.java | 195 +
.../maven/repository/LocalArtifactRepository.java | 33 +
.../LocalRepositoryNotAccessibleException.java | 44 +
.../apache/maven/repository/RepositorySystem.java | 164 +
.../legacy/metadata/AbstractArtifactMetadata.java | 65 +
.../ArtifactMetadataRetrievalException.java | 68 +
.../legacy/metadata/ArtifactMetadataSource.java | 78 +
.../metadata/DefaultMetadataResolutionRequest.java | 132 +
.../legacy/metadata/MetadataResolutionRequest.java | 113 +
.../legacy/metadata/ResolutionGroup.java | 83 +
.../apache/maven/rtinfo/RuntimeInformation.java | 49 +
.../rtinfo/internal/DefaultRuntimeInformation.java | 150 +
.../maven/session/scope/internal/SessionScope.java | 169 +
.../session/scope/internal/SessionScopeModule.java | 63 +
.../settings/DefaultMavenSettingsBuilder.java | 158 +
.../maven/settings/MavenSettingsBuilder.java | 81 +
.../settings/SettingsConfigurationException.java | 63 +
.../org/apache/maven/settings/SettingsUtils.java | 321 ++
.../apache/maven/toolchain/DefaultToolchain.java | 190 +
.../maven/toolchain/DefaultToolchainManager.java | 140 +
.../toolchain/DefaultToolchainManagerPrivate.java | 82 +
.../maven/toolchain/DefaultToolchainsBuilder.java | 78 +
.../toolchain/MisconfiguredToolchainException.java | 39 +
.../apache/maven/toolchain/RequirementMatcher.java | 30 +
.../maven/toolchain/RequirementMatcherFactory.java | 109 +
.../java/org/apache/maven/toolchain/Toolchain.java | 46 +
.../apache/maven/toolchain/ToolchainFactory.java | 44 +
.../apache/maven/toolchain/ToolchainManager.java | 64 +
.../maven/toolchain/ToolchainManagerPrivate.java | 58 +
.../apache/maven/toolchain/ToolchainPrivate.java | 48 +
.../apache/maven/toolchain/ToolchainsBuilder.java | 46 +
.../building/DefaultToolchainsBuilder.java | 138 +
.../building/DefaultToolchainsBuildingRequest.java | 63 +
.../building/DefaultToolchainsBuildingResult.java | 66 +
.../toolchain/building/ToolchainsBuilder.java | 41 +
.../building/ToolchainsBuildingException.java | 93 +
.../building/ToolchainsBuildingRequest.java | 64 +
.../building/ToolchainsBuildingResult.java | 50 +
.../toolchain/io/DefaultToolchainsReader.java | 115 +
.../toolchain/io/ToolchainsParseException.java | 94 +
.../maven/toolchain/io/ToolchainsReader.java | 83 +
.../maven/toolchain/java/DefaultJavaToolChain.java | 55 +
.../apache/maven/toolchain/java/JavaToolchain.java | 67 +
.../maven/toolchain/java/JavaToolchainFactory.java | 127 +
.../maven/toolchain/java/JavaToolchainImpl.java | 87 +
.../toolchain/merge/MavenToolchainMerger.java | 103 +
.../maven-core/src/main/mdo/extension.mdo | 65 +
.../maven-core/src/main/mdo/toolchains.mdo | 231 ++
.../main/resources/META-INF/maven/extension.xml | 173 +
.../META-INF/plexus/artifact-handlers.xml | 219 ++
.../main/resources/META-INF/plexus/components.xml | 134 +
.../resources/META-INF/plexus/default-bindings.xml | 399 ++
.../org/apache/maven/messages/build.properties | 23 +
.../org/apache/maven/messages/messages.properties | 34 +
.../apache/maven/messages/messages_de.properties | 34 +
.../apache/maven/messages/messages_el.properties | 33 +
.../apache/maven/messages/messages_en.properties | 23 +
.../apache/maven/messages/messages_es.properties | 33 +
.../apache/maven/messages/messages_fr.properties | 33 +
.../apache/maven/messages/messages_ja.properties | 34 +
.../apache/maven/messages/messages_ko.properties | 34 +
.../apache/maven/messages/messages_nl.properties | 33 +
.../apache/maven/messages/messages_no.properties | 33 +
.../apache/maven/messages/messages_pl.properties | 33 +
.../maven/messages/messages_zh_CN.properties | 34 +
.../org/apache/maven/project/standalone.xml | 30 +
.../maven-core/src/site/apt/artifact-handlers.apt | 59 +
.../src/site/apt/configuration-management.apt | 139 +
.../src/site/apt/default-bindings.apt.vm | 67 +
.../apt/getting-to-container-configured-mojos.apt | 102 +
.../maven-core/src/site/apt/index.apt | 77 +
.../maven-core/src/site/apt/inheritance.apt | 100 +
.../maven-core/src/site/apt/lifecycles.apt.vm | 49 +
.../maven-core/src/site/apt/offline-mode.apt | 269 ++
.../src/site/apt/plugin-execution-isolation.apt | 57 +
.../apt/scripting-support/marmalade-support.apt | 196 +
.../2.1-lifecycle-refactor-class-diagram.png | Bin 0 -> 38152 bytes
.../2.1-lifecycle-refactor-sequence-diagram.png | Bin 0 -> 87383 bytes
.../design/2.1-lifecycle-refactor.graffle | 4024 ++++++++++++++++++++
.../maven-core/src/site/site.xml | 42 +
.../maven/AbstractCoreMavenComponentTestCase.java | 360 ++
.../java/org/apache/maven/DefaultMavenTest.java | 45 +
.../maven/MavenLifecycleParticipantTest.java | 173 +
.../src/test/java/org/apache/maven/MavenTest.java | 69 +
.../maven/ProjectDependenciesResolverTest.java | 114 +
.../artifact/handler/ArtifactHandlerTest.java | 89 +
.../configuration/DefaultBeanConfiguratorTest.java | 148 +
.../exception/DefaultExceptionHandlerTest.java | 60 +
.../DefaultMavenExecutionRequestPopulatorTest.java | 62 +
.../maven/execution/DefaultMavenExecutionTest.java | 52 +
.../scope/internal/MojoExecutionScopeTest.java | 122 +
.../graph/DefaultProjectDependencyGraphTest.java | 172 +
.../maven/lifecycle/DefaultLifecyclesTest.java | 59 +
.../lifecycle/DelegatingMojoExecutionListener.java | 75 +
.../DelegatingProjectExecutionListener.java | 82 +
.../lifecycle/EmptyLifecyclePluginAnalyzer.java | 77 +
.../lifecycle/LifecycleExecutorSubModulesTest.java | 98 +
.../maven/lifecycle/LifecycleExecutorTest.java | 553 +++
.../maven/lifecycle/MavenExecutionPlanTest.java | 77 +
.../lifecycle/MojoExecutionXPathContainer.java | 72 +
.../internal/BuildListCalculatorTest.java | 49 +
.../lifecycle/internal/BuilderCommonTest.java | 76 +
.../internal/ConcurrencyDependencyGraphTest.java | 94 +
.../LifecycleExecutionPlanCalculatorTest.java | 82 +
.../LifecycleTaskSegmentCalculatorImplTest.java | 57 +
.../lifecycle/internal/PhaseRecorderTest.java | 49 +
.../lifecycle/internal/ProjectBuildListTest.java | 42 +
.../multithreaded/ThreadOutputMuxerTest.java | 167 +
.../lifecycle/internal/stub/AboutTheStubs.html | 55 +
.../internal/stub/BuildPluginManagerStub.java | 56 +
.../internal/stub/CompletionServiceStub.java | 89 +
.../internal/stub/DefaultLifecyclesStub.java | 63 +
.../internal/stub/ExecutionEventCatapultStub.java | 42 +
.../internal/stub/LifeCyclePluginAnalyzerStub.java | 74 +
.../stub/LifecycleExecutionPlanCalculatorStub.java | 231 ++
.../stub/LifecycleTaskSegmentCalculatorStub.java | 89 +
.../maven/lifecycle/internal/stub/LoggerStub.java | 110 +
.../lifecycle/internal/stub/MojoExecutorStub.java | 70 +
.../internal/stub/PluginPrefixResolverStub.java | 52 +
.../internal/stub/PluginVersionResolverStub.java | 48 +
.../stub/ProjectDependenciesResolverStub.java | 109 +
.../internal/stub/ProjectDependencyGraphStub.java | 227 ++
.../stub/ProjectDependencyGraphStubTest.java | 61 +
.../org/apache/maven/plugin/PluginManagerTest.java | 342 ++
.../maven/plugin/PluginParameterExceptionTest.java | 164 +
.../PluginParameterExpressionEvaluatorTest.java | 447 +++
.../plugin/internal/DefaultLegacySupportTest.java | 74 +
.../project/AbstractMavenProjectTestCase.java | 189 +
.../project/DefaultMavenProjectBuilderTest.java | 193 +
.../maven/project/EmptyLifecycleExecutor.java | 109 +
.../maven/project/EmptyProjectBuildingHelper.java | 62 +
.../project/ExtensionDescriptorBuilderTest.java | 101 +
.../project/LegacyLocalRepositoryManager.java | 192 +
.../org/apache/maven/project/MavenProjectTest.java | 197 +
.../apache/maven/project/PomConstructionTest.java | 1878 +++++++++
.../apache/maven/project/ProjectBuilderTest.java | 87 +
.../apache/maven/project/ProjectSorterTest.java | 363 ++
.../apache/maven/project/TestMetadataSource.java | 51 +
.../artifact/DefaultMavenMetadataCacheTest.java | 81 +
.../project/artifact/MavenMetadataSourceTest.java | 183 +
.../canonical/CanonicalProjectBuilderTest.java | 101 +
.../maven/project/harness/PomTestWrapper.java | 121 +
.../project/harness/Xpp3DomAttributeIterator.java | 89 +
.../project/harness/Xpp3DomAttributePointer.java | 105 +
.../maven/project/harness/Xpp3DomNodeIterator.java | 161 +
.../maven/project/harness/Xpp3DomNodePointer.java | 155 +
.../project/harness/Xpp3DomPointerFactory.java | 61 +
.../maven/repository/LegacyRepositoryLayout.java | 89 +
.../maven/repository/TestArtifactHandler.java | 83 +
.../maven/repository/TestRepositoryConnector.java | 123 +
.../repository/TestRepositoryConnectorFactory.java | 48 +
.../maven/repository/TestRepositorySystem.java | 329 ++
.../internal/DefaultRuntimeInformationTest.java | 81 +
.../settings/PomConstructionWithSettingsTest.java | 159 +
.../apache/maven/settings/SettingsUtilsTest.java | 126 +
.../DefaultToolchainManagerPrivateTest.java | 166 +
.../toolchain/DefaultToolchainManagerTest.java | 153 +
.../maven/toolchain/DefaultToolchainTest.java | 158 +
.../toolchain/RequirementMatcherFactoryTest.java | 72 +
.../building/DefaultToolchainsBuilderTest.java | 185 +
.../building/ToolchainsBuildingExceptionTest.java | 73 +
.../toolchain/merge/MavenToolchainMergerTest.java | 176 +
.../cyclic-reference/module-a/pom.xml | 19 +
.../cyclic-reference/module-b/pom.xml | 19 +
.../default-maven/cyclic-reference/pom.xml | 14 +
.../lifecycle-executor/mojo-configuration/pom.xml | 67 +
.../lifecycle-executor/project-basic/pom.xml | 79 +
.../pom.xml | 72 +
.../java/org/apache/maven/lifecycle/test/App.java | 13 +
.../org/apache/maven/lifecycle/test/AppTest.java | 38 +
.../project-with-inheritance/pom.xml | 628 +++
.../project-with-multiple-executions/pom.xml | 112 +
.../src/main/mdo/remote-resources.mdo | 61 +
.../src/main/mdo/supplemental-model.mdo | 61 +
.../pom.xml | 42 +
.../pom.xml | 30 +
.../module-a/pom.xml | 12 +
.../module-b/pom.xml | 12 +
.../pom.xml | 13 +
.../mng-5003-plugin-realm-cache/pom.xml | 8 +
.../pom.xml | 44 +
.../tools.jar | 0
.../project-with-build-extensions-plugin/pom.xml | 31 +
.../project-with-inheritance/pom.xml | 628 +++
.../project-with-plugin-classpath-ordering/pom.xml | 63 +
.../sub/pom.xml | 77 +
.../org/apache/maven/its/mng3906/a/0.1/a-0.1.jar | Bin 0 -> 5109 bytes
.../org/apache/maven/its/mng3906/a/0.1/a-0.1.pom | 56 +
.../org/apache/maven/its/mng3906/a/0.2/a-0.2.jar | Bin 0 -> 5111 bytes
.../org/apache/maven/its/mng3906/a/0.2/a-0.2.pom | 56 +
.../apache/maven/its/mng3906/a/maven-metadata.xml | 13 +
.../org/apache/maven/its/mng3906/b/0.1/b-0.1.jar | Bin 0 -> 5108 bytes
.../org/apache/maven/its/mng3906/b/0.1/b-0.1.pom | 56 +
.../apache/maven/its/mng3906/b/maven-metadata.xml | 12 +
.../org/apache/maven/its/mng3906/c/0.1/c-0.1.jar | Bin 0 -> 5109 bytes
.../org/apache/maven/its/mng3906/c/0.1/c-0.1.pom | 56 +
.../apache/maven/its/mng3906/c/maven-metadata.xml | 12 +
.../org/apache/maven/its/mng3906/d/0.1/d-0.1.jar | Bin 0 -> 5108 bytes
.../org/apache/maven/its/mng3906/d/0.1/d-0.1.pom | 56 +
.../apache/maven/its/mng3906/d/maven-metadata.xml | 12 +
.../org/apache/maven/its/mng3906/e/0.1/e-0.1.jar | Bin 0 -> 5107 bytes
.../org/apache/maven/its/mng3906/e/0.1/e-0.1.pom | 56 +
.../apache/maven/its/mng3906/e/maven-metadata.xml | 12 +
.../sub/settings-template.xml | 55 +
.../project-builder/it0063/jdk/jre/placeholder.txt | 1 +
.../project-builder/it0063/jdk/lib/tools.jar | Bin 0 -> 345 bytes
.../test/projects/project-builder/it0063/pom.xml | 55 +
.../project-builder/mng-3023/consumer/pom.xml | 66 +
.../mng-3023/dependency/dependency-1.jar | Bin 0 -> 345 bytes
.../project-builder/mng-3023/dependency/pom.xml | 70 +
.../test/projects/project-builder/mng-3023/pom.xml | 37 +
.../it0063/jdk/jre/placeholder.txt | 1 +
.../it0063/jdk/lib/tools.jar | Bin 0 -> 345 bytes
.../project-dependencies-resolver/it0063/pom.xml | 55 +
.../project-with-exclusions/pom.xml | 41 +
.../org/apache/maven/its/a/0.1/a-0.1.jar | Bin 0 -> 1898 bytes
.../org/apache/maven/its/a/0.1/a-0.1.pom | 41 +
.../org/apache/maven/its/a/maven-metadata.xml | 12 +
.../org/apache/maven/its/b/0.1/b-0.1.jar | Bin 0 -> 1936 bytes
.../org/apache/maven/its/b/0.1/b-0.1.pom | 49 +
.../org/apache/maven/its/b/maven-metadata.xml | 12 +
.../maven-it-plugin/0.1/maven-it-plugin-0.1.jar | Bin 0 -> 13520 bytes
.../maven-it-plugin/0.1/maven-it-plugin-0.1.pom | 70 +
.../maven/its/plugins/maven-it-plugin/0.1/pom.xml | 70 +
.../its/plugins/maven-it-plugin/maven-metadata.xml | 14 +
.../apache/maven/its/plugins/maven-metadata.xml | 10 +
.../maven-plugin-api/2.0/maven-plugin-api-2.0.jar | Bin 0 -> 10133 bytes
.../maven-plugin-api/2.0/maven-plugin-api-2.0.pom | 23 +
.../org/apache/maven/maven/2.0/maven-2.0.pom | 264 ++
.../0.1/maven-clean-plugin-0.1.jar | Bin 0 -> 6767 bytes
.../0.1/maven-clean-plugin-0.1.pom | 70 +
.../plugins/maven-clean-plugin/maven-metadata.xml | 14 +
.../0.1/maven-compiler-plugin-0.1.jar | Bin 0 -> 8085 bytes
.../0.1/maven-compiler-plugin-0.1.pom | 70 +
.../maven-compiler-plugin/maven-metadata.xml | 14 +
.../0.1/maven-deploy-plugin-0.1.jar | Bin 0 -> 6777 bytes
.../0.1/maven-deploy-plugin-0.1.pom | 70 +
.../plugins/maven-deploy-plugin/maven-metadata.xml | 14 +
.../0.1/maven-install-plugin-0.1.jar | Bin 0 -> 6781 bytes
.../0.1/maven-install-plugin-0.1.pom | 70 +
.../maven-install-plugin/maven-metadata.xml | 14 +
.../maven-jar-plugin/0.1/maven-jar-plugin-0.1.jar | Bin 0 -> 6790 bytes
.../maven-jar-plugin/0.1/maven-jar-plugin-0.1.pom | 70 +
.../plugins/maven-jar-plugin/maven-metadata.xml | 14 +
.../org/apache/maven/plugins/maven-metadata.xml | 45 +
.../0.1/maven-plugin-plugin-0.1.jar | Bin 0 -> 8007 bytes
.../0.1/maven-plugin-plugin-0.1.pom | 70 +
.../plugins/maven-plugin-plugin/maven-metadata.xml | 14 +
.../0.1/maven-resources-plugin-0.1.jar | Bin 0 -> 8034 bytes
.../0.1/maven-resources-plugin-0.1.pom | 70 +
.../maven-resources-plugin/maven-metadata.xml | 14 +
.../0.1/maven-surefire-plugin-0.1.jar | Bin 0 -> 6827 bytes
.../0.1/maven-surefire-plugin-0.1.pom | 70 +
.../maven-surefire-plugin/maven-metadata.xml | 14 +
.../plexus/plexus-utils/1.1/plexus-utils-1.1.jar | Bin 0 -> 168568 bytes
.../plexus/plexus-utils/1.1/plexus-utils-1.1.pom | 27 +
.../artifact-id-inheritance/child/pom.xml | 32 +
.../artifact-id-inheritance/pom.xml | 35 +
.../basedir-aligned-interpolation/pom.xml | 60 +
.../pom-with-unusual-name.xml | 39 +
.../baseurl-interpolation/pom.xml | 38 +
.../boolean-interpolation/pom.xml | 82 +
.../build-extension-inheritance/pom.xml | 49 +
.../build-extension-inheritance/sub/pom.xml | 75 +
.../complete-model/w-parent/pom.xml | 31 +
.../complete-model/w-parent/sub/pom.xml | 319 ++
.../complete-model/wo-parent/pom.xml | 313 ++
.../config-with-plugin-mng/pom.xml | 39 +
.../consecutive_empty_elements/pom.xml | 14 +
.../contributors-inheritance/child-2/pom.xml | 45 +
.../contributors-inheritance/pom.xml | 35 +
.../dependency-inheritance/maven-parent.xml | 31 +
.../dependency-inheritance/pom.xml | 48 +
.../dependency-inheritance/sub/pom.xml | 34 +
.../pom.xml | 19 +
.../sub/pom.xml | 17 +
.../dependency-order/w-plugin-mngt/pom.xml | 68 +
.../dependency-order/wo-plugin-mngt/pom.xml | 66 +
.../dependency-scope-inheritance/pom.xml | 16 +
.../dependency-scope-inheritance/sub/pom.xml | 19 +
.../dependency-scope/pom.xml | 18 +
.../dependency-scope/sub/pom.xml | 24 +
.../developers-inheritance/child-2/pom.xml | 45 +
.../developers-inheritance/pom.xml | 35 +
.../distribution-management/pom.xml | 39 +
.../dual-execution-ids/pom.xml | 28 +
.../dual-execution-ids/sub/pom.xml | 43 +
.../nexus-parent.xml | 29 +
.../duplicate-exclusions-dependency/pom.xml | 33 +
.../duplicate-exclusions-dependency/sub/pom.xml | 16 +
.../empty-distMng-repo-url/pom.xml | 15 +
.../resources-project-builder/empty-scm/pom.xml | 58 +
.../equal-plugin-deps/pom.xml | 64 +
.../equal-plugin-exec-ids/pom.xml | 83 +
.../execution-configuration-join/pom.xml | 35 +
.../execution-configuration-subcollections/pom.xml | 42 +
.../execution-configuration/pom.xml | 58 +
.../test/resources-project-builder/foo/sub/pom.xml | 418 ++
.../full-interpolation/pom.xml | 66 +
.../pom.xml | 97 +
.../sub/pom.xml | 84 +
.../active-profile/pom.xml | 50 +
.../active-profile/sub/pom.xml | 54 +
.../no-profile/pom.xml | 41 +
.../no-profile/sub/pom.xml | 45 +
.../interpolation-cli-wins/pom.xml | 39 +
.../jdk-activation/pom.xml | 105 +
.../join-different-containers-same-id/pom.xml | 66 +
.../licenses-inheritance/child-2/pom.xml | 47 +
.../licenses-inheritance/pom.xml | 37 +
.../limited-inheritance/child/pom.xml | 61 +
.../limited-inheritance/pom.xml | 87 +
.../mailing-lists-inheritance/child-2/pom.xml | 45 +
.../mailing-lists-inheritance/pom.xml | 35 +
.../managed-profile-dependency/pom.xml | 55 +
.../managed-profile-dependency/sub/pom.xml | 55 +
.../merged-filter-order/pom.xml | 44 +
.../merged-filter-order/sub/pom.xml | 49 +
.../w-plugin-mngt/pom.xml | 64 +
.../w-plugin-mngt/sub/pom.xml | 64 +
.../wo-plugin-mngt/pom.xml | 62 +
.../wo-plugin-mngt/sub/pom.xml | 64 +
.../w-plugin-mngt/pom.xml | 59 +
.../w-plugin-mngt/sub/pom.xml | 59 +
.../wo-plugin-mngt/pom.xml | 57 +
.../wo-plugin-mngt/sub/pom.xml | 59 +
.../merged-plugin-exec-order/w-plugin-mngt/pom.xml | 71 +
.../w-plugin-mngt/sub/pom.xml | 71 +
.../wo-plugin-mngt/pom.xml | 69 +
.../wo-plugin-mngt/sub/pom.xml | 71 +
.../resources-project-builder/micromailer/pom.xml | 124 +
.../micromailer/spice-parent-9.pom | 103 +
.../multiple-filters/pom.xml | 17 +
.../multiple-repos/pom.xml | 44 +
.../multiple-repos/sub/pom.xml | 45 +
.../nested-build-dir-interpolation/pom.xml | 55 +
.../parent-inheritance/child3.xml | 7 +
.../parent-inheritance/pom.xml | 11 +
.../parent-inheritance/sub/pom.xml | 9 +
.../parent-interpolation/pom.xml | 16 +
.../parent-interpolation/sub/pom.xml | 9 +
.../parent-pom-packaging/pom.xml | 35 +
.../parent-pom-packaging/sub/pom.xml | 40 +
.../platform-file-separator/pom.xml | 40 +
.../plugin-config-append/no-profile/pom.xml | 80 +
.../no-profile/subproject/pom.xml | 70 +
.../plugin-config-append/with-profile/pom.xml | 90 +
.../with-profile/subproject/pom.xml | 80 +
.../plugin-config-attributes/w-plugin-mngt/pom.xml | 62 +
.../plugin-config-attributes/w-profile/pom.xml | 74 +
.../wo-plugin-mngt/pom.xml | 53 +
.../plugin-config-merging/child/pom.xml | 76 +
.../plugin-config-merging/pom.xml | 72 +
.../plugin-config-order/w-plugin-mngt/pom.xml | 68 +
.../plugin-config-order/wo-plugin-mngt/pom.xml | 60 +
.../plugin-config-properties/pom.xml | 30 +
.../plugin-exec-config-order/w-plugin-mngt/pom.xml | 78 +
.../wo-plugin-mngt/pom.xml | 70 +
.../plugin-exec-goals-order/w-plugin-mngt/pom.xml | 66 +
.../plugin-exec-goals-order/wo-plugin-mngt/pom.xml | 57 +
.../plugin-exec-inheritance/pom.xml | 75 +
.../plugin-exec-inheritance/w-merge/pom.xml | 48 +
.../plugin-exec-inheritance/wo-merge/pom.xml | 43 +
.../pom.xml | 56 +
.../sub/pom.xml | 59 +
.../plugin-exec-merging-wo-version/pom.xml | 55 +
.../plugin-exec-merging-wo-version/sub/pom.xml | 58 +
.../plugin-exec-merging/w-plugin-mngt/pom.xml | 58 +
.../plugin-exec-merging/w-plugin-mngt/sub/pom.xml | 59 +
.../plugin-exec-merging/wo-plugin-mngt/pom.xml | 56 +
.../plugin-exec-merging/wo-plugin-mngt/sub/pom.xml | 59 +
.../plugin-exec-order-and-default-exec/pom.xml | 71 +
.../plugin-exec-order-with-lifecycle/pom.xml | 52 +
.../plugin-exec-order/w-plugin-mngt/pom.xml | 76 +
.../plugin-exec-order/wo-plugin-mngt/pom.xml | 67 +
.../plugin-exec-w-and-wo-id/w-plugin-mngt/pom.xml | 72 +
.../plugin-exec-w-and-wo-id/wo-plugin-mngt/pom.xml | 64 +
.../plugin-inheritance-merge-order/pom.xml | 67 +
.../plugin-inheritance-merge-order/sub/pom.xml | 72 +
.../plugin-inheritance-order/child/pom.xml | 51 +
.../plugin-inheritance-order/pom.xml | 68 +
.../plugin-inheritance-simple/pom.xml | 17 +
.../plugin-inheritance-simple/sub/pom.xml | 20 +
.../plugin-injection-merge-order/pom.xml | 133 +
.../plugin-management-dependencies/pom.xml | 25 +
.../plugin-management-dependencies/sub/pom.xml | 25 +
.../plugin-management-duplicate/pom.xml | 39 +
.../plugin-management-duplicate/sub/pom.xml | 64 +
.../child/pom.xml | 53 +
.../plugin-management-for-implicit-plugin/pom.xml | 61 +
.../plugin-management-inheritance/pom.xml | 64 +
.../plugin-merge-simple/pom.xml | 17 +
.../plugin-order/nexus-parent.xml | 19 +
.../resources-project-builder/plugin-order/pom.xml | 28 +
.../pluginmanagement-inherited/pom.xml | 18 +
.../pluginmanagement-inherited/sub/pom.xml | 17 +
.../pom-encoding/latin-1/pom.xml | 36 +
.../pom-encoding/utf-8/pom.xml | 36 +
.../pom-inheritance/pom.xml | 188 +
.../pom-inheritance/sub/pom.xml | 36 +
.../prerequisites-inheritance/child/pom.xml | 36 +
.../prerequisites-inheritance/pom.xml | 33 +
.../profile-default-deactivation/pom.xml | 35 +
.../profile-dependencies-multiple-profiles/pom.xml | 81 +
.../profile-injected-dependencies/pom.xml | 75 +
.../profile-injection-order/pom.xml | 68 +
.../profile-module-inheritance/pom.xml | 18 +
.../profile-module-inheritance/sub/pom.xml | 12 +
.../profile-module/pom.xml | 24 +
.../profile-plugin-mng-dependencies/pom.xml | 77 +
.../profile-plugin-mng-dependencies/sub/pom.xml | 62 +
.../profile-plugins/pom.xml | 52 +
.../profile-properties-interpolation/pom.xml | 54 +
.../properties-inheritance/pom.xml | 34 +
.../properties-inheritance/sub/pom.xml | 40 +
.../properties-no-duplication/pom.xml | 12 +
.../properties-no-duplication/sub/pom.xml | 17 +
.../repo-inheritance/pom.xml | 64 +
.../reporting-interpolation/pom.xml | 6 +
.../reporting-plugin-config/pom.xml | 51 +
.../reporting-plugin-config/sub/pom.xml | 48 +
.../jetty-parent.xml | 37 +
.../single-configuration-inheritance/pom.xml | 41 +
.../sytem-property-interpolation/pom.xml | 30 +
.../resources-project-builder/unc-path/pom.xml | 41 +
.../resources-project-builder/unc-path/sub/pom.xml | 57 +
.../dep-mngt-in-profile/pom.xml | 49 +
.../unique-dependency-key/dep-mngt/pom.xml | 44 +
.../unique-dependency-key/deps-in-profile/pom.xml | 47 +
.../unique-dependency-key/deps/pom.xml | 42 +
.../artifact-repo-in-profile/pom.xml | 51 +
.../unique-repo-id/artifact-repo/pom.xml | 45 +
.../unique-repo-id/plugin-repo-in-profile/pom.xml | 51 +
.../unique-repo-id/plugin-repo/pom.xml | 45 +
.../child/pom.xml | 104 +
.../unprefixed-expression-interpolation/pom.xml | 36 +
.../url-append/child/pom.xml | 64 +
.../url-append/parent/pom.xml | 53 +
.../url-inheritance/another-parent/pom.xml | 36 +
.../url-inheritance/another-parent/sub/pom.xml | 35 +
.../url-inheritance/pom.xml | 74 +
.../url-inheritance/sub/pom.xml | 35 +
.../url-no-decoding/pom.xml | 64 +
.../xml-coalesce-text/pom.xml | 567 +++
.../xml-markup-interpolation/pom.xml | 41 +
.../xml-whitespace/pom.xml | 43 +
.../xml-whitespace/sub/pom.xml | 49 +
.../test/resources-settings/repositories/pom.xml | 29 +
.../resources-settings/repositories/settings.xml | 55 +
.../resources-settings/settings-no-pom/pom.xml | 13 +
.../settings-no-pom/settings.xml | 20 +
.../test-pom-and-settings-interpolation/pom.xml | 78 +
.../settings.xml | 35 +
.../org.apache.maven/maven-core/pom.properties | 1 +
.../test/resources/META-INF/plexus/components.xml | 113 +
.../src/test/resources/canonical-pom.xml | 55 +
.../test/resources/dependencyManagement-pom.xml | 65 +
.../test/resources/distributionManagement-pom.xml | 44 +
.../t01/maven-test/jars/maven-test-a-1.0.jar | 1 +
.../t01/maven-test/jars/maven-test-a-1.1.jar | 1 +
.../t01/maven-test/jars/maven-test-b-1.0.jar | 1 +
.../t01/maven-test/jars/maven-test-b-1.1.jar | 1 +
.../t01/maven-test/jars/maven-test-c-1.0.jar | 1 +
.../t01/maven-test/jars/maven-test-c-1.1.jar | 1 +
.../t01/maven-test/jars/maven-test-d-1.0.jar | 1 +
.../t01/maven-test/jars/maven-test-d-1.1.jar | 1 +
.../t01/maven-test/jars/maven-test-d-1.2.jar | 1 +
.../t01/maven-test/poms/maven-test-a-1.0.pom | 14 +
.../t01/maven-test/poms/maven-test-a-1.1.pom | 14 +
.../t01/maven-test/poms/maven-test-b-1.0.pom | 7 +
.../t01/maven-test/poms/maven-test-b-1.1.pom | 7 +
.../t01/maven-test/poms/maven-test-c-1.0.pom | 7 +
.../t01/maven-test/poms/maven-test-c-1.1.pom | 7 +
.../t01/maven-test/poms/maven-test-d-1.0.pom | 7 +
.../t01/maven-test/poms/maven-test-d-1.1.pom | 7 +
.../t01/maven-test/poms/maven-test-d-1.2.pom | 7 +
.../test/resources/imports-repo/t01/p0/p1/pom.xml | 45 +
.../test/resources/imports-repo/t01/p0/p2/pom.xml | 56 +
.../test/resources/imports-repo/t01/p0/p3/pom.xml | 59 +
.../test/resources/imports-repo/t01/p0/p4/pom.xml | 67 +
.../src/test/resources/imports-repo/t01/p0/pom.xml | 26 +
.../src/test/resources/local-repo/marker.txt | 1 +
.../maven-test/jars/maven-test-a-1.0.jar | 1 +
.../maven-test/jars/maven-test-b-1.0.jar | 1 +
.../maven-test/jars/maven-test-c-1.0.jar | 1 +
.../maven-test/jars/maven-test-d-1.0.jar | 1 +
.../maven-test/poms/maven-test-a-1.0.pom | 23 +
.../maven-test/poms/maven-test-b-1.0.pom | 23 +
.../maven-test/poms/maven-test-c-1.0.pom | 16 +
.../maven-test/poms/maven-test-d-1.1.pom | 7 +
.../maven-test/poms/maven-test-d-1.2.pom | 7 +
.../jars/maven-snapshot-a-1.0-SNAPSHOT.jar | 1 +
...en-snapshot-a-1.0-SNAPSHOT.jar.snapshot-version | 1 +
.../jars/maven-snapshot-b-1.0-SNAPSHOT.jar | 1 +
...en-snapshot-b-1.0-SNAPSHOT.jar.snapshot-version | 1 +
.../jars/maven-snapshot-e-1.0-SNAPSHOT.jar | 1 +
...en-snapshot-e-1.0-SNAPSHOT.jar.snapshot-version | 1 +
.../poms/maven-test-snapshot-resolving-1.0.pom | 49 +
.../apache/maven/MavenLifecycleParticipantTest.xml | 9 +
.../apache/maven/execution/test-extension-1.jar | Bin 0 -> 4208 bytes
.../junit/junit/3.8.1/junit-3.8.1.jar | Bin 0 -> 121070 bytes
.../junit/junit/3.8.1/junit-3.8.1.jar.md5 | 1 +
.../junit/junit/3.8.1/junit-3.8.1.jar.sha1 | 1 +
.../junit/junit/3.8.1/junit-3.8.1.pom | 29 +
.../junit/junit/3.8.1/junit-3.8.1.pom.md5 | 1 +
.../junit/junit/3.8.1/junit-3.8.1.pom.sha1 | 1 +
.../org/apache/apache/3/apache-3.pom | 82 +
.../org/apache/apache/3/apache-3.pom.md5 | 1 +
.../org/apache/apache/3/apache-3.pom.sha1 | 1 +
.../3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.jar | Bin 0 -> 163984 bytes
.../maven-artifact-3.0-SNAPSHOT.jar.md5 | 1 +
.../maven-artifact-3.0-SNAPSHOT.jar.sha1 | 1 +
.../3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.pom | 112 +
.../maven-artifact-3.0-SNAPSHOT.pom.md5 | 1 +
.../maven-artifact-3.0-SNAPSHOT.pom.sha1 | 1 +
.../test/test-extension/1/test-extension-1.jar | Bin 0 -> 4208 bytes
.../test/test-extension/1/test-extension-1.pom | 73 +
.../test/test-extension/1/test-extension-1.pom.md5 | 1 +
.../test-extension/1/test-extension-1.pom.sha1 | 1 +
.../1/test-lifecycle-and-artifactHandler-1.jar | Bin 0 -> 2582 bytes
.../1/test-lifecycle-and-artifactHandler-1.pom | 44 +
.../1/test-lifecycle-and-artifactHandler-1.pom.md5 | 1 +
.../test-lifecycle-and-artifactHandler-1.pom.sha1 | 1 +
.../apache/maven/maven-parent/4/maven-parent-4.pom | 304 ++
.../maven/maven-parent/4/maven-parent-4.pom.md5 | 1 +
.../maven/maven-parent/4/maven-parent-4.pom.sha1 | 1 +
.../apache/maven/maven-parent/5/maven-parent-5.pom | 466 +++
.../maven/maven-parent/5/maven-parent-5.pom.md5 | 1 +
.../maven/maven-parent/5/maven-parent-5.pom.sha1 | 1 +
.../1.0-beta-2/wagon-provider-api-1.0-beta-2.jar | Bin 0 -> 46326 bytes
.../wagon-provider-api-1.0-beta-2.jar.md5 | 1 +
.../wagon-provider-api-1.0-beta-2.jar.sha1 | 1 +
.../1.0-beta-2/wagon-provider-api-1.0-beta-2.pom | 21 +
.../wagon-provider-api-1.0-beta-2.pom.md5 | 1 +
.../wagon-provider-api-1.0-beta-2.pom.sha1 | 1 +
.../wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom | 170 +
.../wagon/1.0-beta-2/wagon-1.0-beta-2.pom.md5 | 1 +
.../wagon/1.0-beta-2/wagon-1.0-beta-2.pom.sha1 | 1 +
.../plexus-active-collections-1.0-beta-1.jar | Bin 0 -> 15961 bytes
.../plexus-active-collections-1.0-beta-1.jar.md5 | 1 +
.../plexus-active-collections-1.0-beta-1.jar.sha1 | 1 +
.../plexus-active-collections-1.0-beta-1.pom | 51 +
.../plexus-active-collections-1.0-beta-1.pom.md5 | 1 +
.../plexus-active-collections-1.0-beta-1.pom.sha1 | 1 +
.../plexus-classworlds-1.2-alpha-10.jar | Bin 0 -> 42472 bytes
.../plexus-classworlds-1.2-alpha-10.jar.md5 | 1 +
.../plexus-classworlds-1.2-alpha-10.jar.sha1 | 1 +
.../plexus-classworlds-1.2-alpha-10.pom | 94 +
.../plexus-classworlds-1.2-alpha-10.pom.md5 | 1 +
.../plexus-classworlds-1.2-alpha-10.pom.sha1 | 1 +
.../1.2-alpha-7/plexus-classworlds-1.2-alpha-7.jar | Bin 0 -> 42636 bytes
.../plexus-classworlds-1.2-alpha-7.jar.md5 | 1 +
.../plexus-classworlds-1.2-alpha-7.jar.sha1 | 1 +
.../1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom | 78 +
.../plexus-classworlds-1.2-alpha-7.pom.md5 | 1 +
.../plexus-classworlds-1.2-alpha-7.pom.sha1 | 1 +
.../plexus-component-api-1.0-alpha-16.jar | Bin 0 -> 33149 bytes
.../plexus-component-api-1.0-alpha-16.jar.md5 | 1 +
.../plexus-component-api-1.0-alpha-16.jar.sha1 | 1 +
.../plexus-component-api-1.0-alpha-16.pom | 63 +
.../plexus-component-api-1.0-alpha-16.pom.md5 | 1 +
.../plexus-component-api-1.0-alpha-16.pom.sha1 | 1 +
.../plexus-component-api-1.0-alpha-32.jar | Bin 0 -> 36108 bytes
.../plexus-component-api-1.0-alpha-32.jar.md5 | 1 +
.../plexus-component-api-1.0-alpha-32.jar.sha1 | 1 +
.../plexus-component-api-1.0-alpha-32.pom | 61 +
.../plexus-component-api-1.0-alpha-32.pom.md5 | 1 +
.../plexus-component-api-1.0-alpha-32.pom.sha1 | 1 +
.../1.1.6/plexus-components-1.1.6.pom | 60 +
.../1.1.6/plexus-components-1.1.6.pom.md5 | 1 +
.../1.1.6/plexus-components-1.1.6.pom.sha1 | 1 +
.../plexus-container-default-1.0-alpha-16.jar | Bin 0 -> 210679 bytes
.../plexus-container-default-1.0-alpha-16.jar.md5 | 1 +
.../plexus-container-default-1.0-alpha-16.jar.sha1 | 1 +
.../plexus-container-default-1.0-alpha-16.pom | 56 +
.../plexus-container-default-1.0-alpha-16.pom.md5 | 1 +
.../plexus-container-default-1.0-alpha-16.pom.sha1 | 1 +
.../plexus-container-default-1.0-alpha-32.jar | Bin 0 -> 238880 bytes
.../plexus-container-default-1.0-alpha-32.jar.md5 | 1 +
.../plexus-container-default-1.0-alpha-32.jar.sha1 | 1 +
.../plexus-container-default-1.0-alpha-32.pom | 98 +
.../plexus-container-default-1.0-alpha-32.pom.md5 | 1 +
.../plexus-container-default-1.0-alpha-32.pom.sha1 | 1 +
.../plexus-containers-1.0-alpha-16.pom | 49 +
.../plexus-containers-1.0-alpha-16.pom.md5 | 1 +
.../plexus-containers-1.0-alpha-16.pom.sha1 | 1 +
.../plexus-containers-1.0-alpha-32.pom | 49 +
.../plexus-containers-1.0-alpha-32.pom.md5 | 1 +
.../plexus-containers-1.0-alpha-32.pom.sha1 | 1 +
.../plexus/plexus-utils/1.1/plexus-utils-1.1.jar | Bin 0 -> 168568 bytes
.../plexus-utils/1.1/plexus-utils-1.1.jar.md5 | 1 +
.../plexus-utils/1.1/plexus-utils-1.1.jar.sha1 | 1 +
.../plexus/plexus-utils/1.1/plexus-utils-1.1.pom | 27 +
.../plexus-utils/1.1/plexus-utils-1.1.pom.md5 | 1 +
.../plexus-utils/1.1/plexus-utils-1.1.pom.sha1 | 1 +
.../plexus-utils/1.4.5/plexus-utils-1.4.5.jar | Bin 0 -> 205043 bytes
.../plexus-utils/1.4.5/plexus-utils-1.4.5.jar.md5 | 1 +
.../plexus-utils/1.4.5/plexus-utils-1.4.5.jar.sha1 | 1 +
.../plexus-utils/1.4.5/plexus-utils-1.4.5.pom | 61 +
.../plexus-utils/1.4.5/plexus-utils-1.4.5.pom.md5 | 1 +
.../plexus-utils/1.4.5/plexus-utils-1.4.5.pom.sha1 | 1 +
.../plexus/plexus/1.0.10/plexus-1.0.10.pom | 273 ++
.../plexus/plexus/1.0.10/plexus-1.0.10.pom.md5 | 1 +
.../plexus/plexus/1.0.10/plexus-1.0.10.pom.sha1 | 1 +
.../plexus/plexus/1.0.11/plexus-1.0.11.pom | 308 ++
.../plexus/plexus/1.0.11/plexus-1.0.11.pom.md5 | 1 +
.../plexus/plexus/1.0.11/plexus-1.0.11.pom.sha1 | 1 +
.../codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom | 205 +
.../plexus/plexus/1.0.4/plexus-1.0.4.pom.md5 | 1 +
.../plexus/plexus/1.0.4/plexus-1.0.4.pom.sha1 | 1 +
.../codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom | 259 ++
.../plexus/plexus/1.0.8/plexus-1.0.8.pom.md5 | 1 +
.../plexus/plexus/1.0.8/plexus-1.0.8.pom.sha1 | 1 +
.../codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom | 257 ++
.../plexus/plexus/1.0.9/plexus-1.0.9.pom.md5 | 1 +
.../plexus/plexus/1.0.9/plexus-1.0.9.pom.sha1 | 1 +
.../extension/test-extension-repo/repo-marker.txt | 1 +
.../maven/lifecycle/LifecycleExecutorTest.xml | 9 +
.../resources/org/apache/maven/lifecycle/pom.xml | 628 +++
.../org/apache/maven/plugin/PluginManagerTest.xml | 9 +
.../maven/project/AbstractMavenProjectTestCase.xml | 9 +
.../apache/maven/project/PomConstructionTest.xml | 13 +
.../maven/project/workspace/buildFromFile/pom.xml | 8 +
.../tests/project-caching/1/project-caching-1.pom | 8 +
.../tests/project-caching/maven-metadata-local.xml | 11 +
.../project/workspace/buildModelLineage/pom.xml | 7 +
.../resolveParentPom/childAndParent/child/pom.xml | 10 +
.../resolveParentPom/childAndParent/pom.xml | 7 +
.../project/workspace/resolveParentPom/pom.xml | 10 +
.../settings/PomConstructionWithSettingsTest.xml | 9 +
.../org/apache/maven/toolchain/global.xml | 35 +
.../toolchain/model/toolchains-jdks-extend.xml | 45 +
.../toolchain/model/toolchains-jdks-extra.xml | 45 +
.../maven/toolchain/model/toolchains-jdks.xml | 43 +
.../resources/org/apache/maven/toolchain/user.xml | 35 +
.../plexus/plexus-utils/1.1/plexus-utils-1.1.jar | Bin 0 -> 168568 bytes
.../plexus-utils/1.1/plexus-utils-1.1.jar.sha1 | 1 +
.../plexus/plexus-utils/1.1/plexus-utils-1.1.pom | 27 +
.../plexus-utils/1.1/plexus-utils-1.1.pom.sha1 | 1 +
.../maven-core/src/test/resources/pom.xml | 52 +
.../project-dynamism/plugin-level-dep.pom.xml | 24 +
.../test/resources/project-dynamism/pom-interp.xml | 28 +
.../resources/project-dynamism/pom-relative.xml | 36 +
.../src/test/resources/project-dynamism/pom.xml | 36 +
.../src/test/resources/projects/bad-dependency.xml | 27 +
.../src/test/resources/projects/bad-project.xml | 20 +
...oject-which-needs-directory-alignment-child.xml | 33 +
.../project-which-needs-directory-alignment.xml | 135 +
...oject-which-needs-directory-alignment-child.xml | 29 +
.../projects/build-path-expression-pom.xml | 14 +
.../src/test/resources/projects/build.properties | 18 +
.../child-which-inherits-from-super-model.xml | 28 +
.../resources/projects/child-with-bogus-parent.xml | 29 +
.../src/test/resources/projects/child.xml | 33 +
.../projects/duplicate-plugins-merged-pom.xml | 48 +
.../resources/projects/fully-populated-child.xml | 168 +
.../grandchild-check/child/grandchild/pom.xml | 10 +
.../projects/grandchild-check/child/pom.xml | 13 +
.../resources/projects/grandchild-check/pom.xml | 7 +
...pom-resolves-from-property-based-repository.xml | 31 +
.../projects/modelsource/module01/pom.xml | 12 +
.../test/resources/projects/modelsource/pom.xml | 13 +
.../src/test/resources/projects/project.xml | 162 +
.../projects/versionless-managed-dependency.xml | 24 +
.../maven-test/jars/maven-test-b-1.0.jar | Bin 0 -> 18874 bytes
.../maven-test/jars/maven-test-b-1.0.jar.md5 | 1 +
.../maven-test/poms/maven-test-b-1.0.pom | 21 +
.../jars/maven-snapshot-a-1.0-SNAPSHOT.jar | 1 +
...en-snapshot-a-1.0-SNAPSHOT.jar.snapshot-version | 1 +
.../jars/maven-snapshot-b-1.0-SNAPSHOT.jar | 1 +
...en-snapshot-b-1.0-SNAPSHOT.jar.snapshot-version | 1 +
.../jars/maven-snapshot-c-1.0-SNAPSHOT.jar | 1 +
...en-snapshot-c-1.0-SNAPSHOT.jar.snapshot-version | 1 +
.../maven-test/jars/maven-test-z-1.0.jar | 1 +
.../resources/withActiveByDefaultProfile-pom.xml | 40 +
.../apache-maven-3.3.3/maven-embedder/pom.xml | 144 +
.../src/examples/simple-project/pom.xml | 39 +
.../src/examples/simple-project/settings.xml | 26 +
.../main/java/org/apache/maven/embedder/App.java | 28 +
.../java/org/apache/maven/embedder/AppTest.java | 53 +
.../main/java/org/apache/maven/cli/CLIManager.java | 271 ++
.../org/apache/maven/cli/CLIReportingUtils.java | 205 +
.../main/java/org/apache/maven/cli/CliRequest.java | 120 +
.../main/java/org/apache/maven/cli/MavenCli.java | 1610 ++++++++
.../cli/configuration/ConfigurationProcessor.java | 28 +
.../SettingsXmlConfigurationProcessor.java | 290 ++
.../maven/cli/event/DefaultEventSpyContext.java | 38 +
.../maven/cli/event/ExecutionEventLogger.java | 381 ++
.../internal/BootstrapCoreExtensionManager.java | 143 +
.../maven/cli/logging/BaseSlf4jConfiguration.java | 45 +
.../maven/cli/logging/Slf4jConfiguration.java | 47 +
.../cli/logging/Slf4jConfigurationFactory.java | 91 +
.../org/apache/maven/cli/logging/Slf4jLogger.java | 145 +
.../maven/cli/logging/Slf4jLoggerManager.java | 111 +
.../maven/cli/logging/Slf4jStdoutLogger.java | 306 ++
.../cli/logging/impl/Log4j2Configuration.java | 59 +
.../cli/logging/impl/LogbackConfiguration.java | 61 +
.../cli/logging/impl/Slf4jSimpleConfiguration.java | 63 +
.../impl/UnsupportedSlf4jBindingConfiguration.java | 72 +
.../transfer/AbstractMavenTransferListener.java | 90 +
.../transfer/BatchModeMavenTransferListener.java | 32 +
.../cli/transfer/ConsoleMavenTransferListener.java | 133 +
.../cli/transfer/QuietMavenTransferListener.java | 31 +
.../cli/transfer/Slf4jMavenTransferListener.java | 97 +
.../src/main/java/org/slf4j/MavenSlf4jFriend.java | 35 +
.../org/slf4j/impl/MavenSlf4jSimpleFriend.java | 40 +
.../src/main/mdo/core-extensions.mdo | 88 +
.../src/main/resources/META-INF/MANIFEST.MF | 7 +
.../META-INF/maven/slf4j-configuration.properties | 22 +
.../maven-embedder/src/site/apt/cli.apt.vm | 28 +
.../maven-embedder/src/site/apt/index.apt.vm | 42 +
.../maven-embedder/src/site/apt/logging.apt | 112 +
.../maven-embedder/src/site/site.xml | 40 +
.../src/test/embedder-test-project/pom.xml | 48 +
.../src/main/java/org/apache/maven/App.java | 13 +
.../src/test/java/org/apache/maven/AppTest.java | 38 +
.../aggregate-mojo-failure/plugin/pom.xml | 49 +
.../src/main/java/org/plugin/TestPlugin.java | 36 +
.../aggregate-mojo-failure/project/pom.xml | 25 +
.../bad-build-plan/plugin/pom.xml | 49 +
.../src/main/java/org/plugin/TestPlugin.java | 35 +
.../bad-build-plan/project/pom.xml | 25 +
.../bad-dep-version/pom.xml | 33 +
.../test-maven-ext/1/test-maven-ext-1.pom | 34 +
.../bad-ext-direct-deps/project/pom.xml | 35 +
.../1/bad-ext-plugin-dep-ver-maven-plugin-1.jar | Bin 0 -> 3166 bytes
.../1/bad-ext-plugin-dep-ver-maven-plugin-1.pom | 55 +
.../bad-ext-plugin-dep-ver/plugin/pom.xml | 57 +
.../src/main/java/org/plugin/TestPlugin.java | 33 +
.../bad-ext-plugin-dep-ver/project/pom.xml | 37 +
.../1/bad-ext-plugin-maven-ver-maven-plugin-1.jar | Bin 0 -> 3166 bytes
.../1/bad-ext-plugin-maven-ver-maven-plugin-1.pom | 54 +
.../maven-metadata-local.xml | 12 +
.../bad-ext-plugin-maven-ver/plugin/pom.xml | 57 +
.../src/main/java/org/plugin/TestPlugin.java | 33 +
.../bad-ext-plugin-maven-ver/project/pom.xml | 37 +
.../bad-maven-version/pom.xml | 11 +
.../bad-mg-dep-version/pom.xml | 35 +
.../bad-non-dep-version/pom.xml | 35 +
.../bad-profile-repo/pom.xml | 7 +
.../bad-profile-repo/profiles.xml | 18 +
.../config-rdonly-mojo-param/plugin/pom.xml | 49 +
.../src/main/java/org/plugin/TestPlugin.java | 39 +
.../config-rdonly-mojo-param/project/pom.xml | 47 +
.../deploy-repo-creation-err/pom.xml | 41 +
.../duplicated-attachments/plugin/pom.xml | 54 +
.../src/main/java/org/plugin/TestPlugin.java | 50 +
.../duplicated-attachments/project/pom.xml | 25 +
.../1/err-loading-plugin-maven-plugin-1.jar | Bin 0 -> 3166 bytes
.../1/err-loading-plugin-maven-plugin-1.pom | 55 +
.../err-loading-plugin/project/pom.xml | 45 +
.../org/apache/maven/errortest/dep/1/dep-1.pom | 16 +
.../1/err-resolving-ext-plugin-maven-plugin-1.jar | Bin 0 -> 3166 bytes
.../1/err-resolving-ext-plugin-maven-plugin-1.pom | 60 +
.../err-resolving-ext-plugin/project/pom.xml | 18 +
.../org/apache/maven/errortest/dep/1/dep-1.pom | 16 +
.../err-resolving-project-dep/project/pom.xml | 27 +
.../apache/maven/test/error/mojoFailure/App.java | 13 +
.../maven/test/error/mojoFailure/AppTest.java | 38 +
.../test-maven-ext-dep/1/test-maven-ext-dep-1.pom | 26 +
.../test-maven-ext/1/test-maven-ext-1.pom | 34 +
.../ext-deps-resolve-err/project/pom.xml | 35 +
.../ext-plugin-artifact-missing-maven-plugin-1.pom | 55 +
.../ext-plugin-artifact-missing/project/pom.xml | 37 +
.../ext-plugin-realm-error/plugin/pom.xml | 49 +
.../src/main/java/org/plugin/ComponentOne.java | 8 +
.../src/main/java/org/plugin/ComponentTwo.java | 8 +
.../src/main/java/org/plugin/TestPlugin.java | 39 +
.../main/resources/META-INF/plexus/components.xml | 25 +
.../ext-plugin-realm-error/project/pom.xml | 36 +
.../1/ext-plugin-version-err-maven-plugin-1.jar | Bin 0 -> 3166 bytes
.../1/ext-plugin-version-err-maven-plugin-1.pom | 50 +
.../maven-metadata-local.xml | 10 +
.../ext-plugin-version-err/plugin/pom.xml | 57 +
.../src/main/java/org/plugin/TestPlugin.java | 33 +
.../ext-plugin-version-err/project/pom.xml | 36 +
.../ext-realm-error/ext/pom.xml | 38 +
.../ext/src/main/java/org/ext/App.java | 13 +
.../main/resources/META-INF/plexus/components.xml | 1 +
.../ext-realm-error/project/pom.xml | 35 +
.../interp-from-model/pom.xml | 7 +
.../local-repo/org/test/bad-pom/1/bad-pom-1.pom | 9 +
.../interp-from-project/project/pom.xml | 22 +
.../load-extern-profiles-ioex/pom.xml | 7 +
.../load-extern-profiles-xex/pom.xml | 7 +
.../load-extern-profiles-xex/profiles.xml | 4 +
.../missing-direct-invoke-mojo/plugin/pom.xml | 49 +
.../src/main/java/org/plugin/TestPlugin.java | 36 +
.../missing-module-pom/child1/pom.xml | 19 +
.../child1/src/main/java/org/test/App.java | 13 +
.../child1/src/test/java/org/test/AppTest.java | 38 +
.../missing-module-pom/pom.xml | 13 +
.../missing-parent-pom/pom.xml | 11 +
.../missing-req-mojo-param/plugin/pom.xml | 49 +
.../src/main/java/org/plugin/TestPlugin.java | 38 +
.../missing-req-mojo-param/project/pom.xml | 25 +
.../mojo-config-error/plugin/pom.xml | 49 +
.../src/main/java/org/plugin/TestPlugin.java | 33 +
.../src/main/resources/META-INF/maven/plugin.xml | 38 +
.../mojo-config-error/project/pom.xml | 45 +
.../mojo-exec-err/plugin/pom.xml | 49 +
.../src/main/java/org/plugin/TestPlugin.java | 33 +
.../mojo-exec-err/project/pom.xml | 26 +
.../mojo-lookup-err/plugin/pom.xml | 54 +
.../src/main/java/org/plugin/TestPlugin.java | 42 +
.../mojo-lookup-err/project/pom.xml | 25 +
.../parent-parse-ioex/child/pom.xml | 10 +
.../parent-parse-ioex/pom.xml | 0
.../parent-parse-xex/child/pom.xml | 10 +
.../parent-parse-xex/pom.xml | 7 +
.../profile-activator-err/pom.xml | 39 +
.../profile-activator-lookup-err/ext/pom.xml | 38 +
.../ext/src/main/java/org/ext/App.java | 13 +
.../main/resources/META-INF/plexus/components.xml | 16 +
.../profile-activator-lookup-err/project/pom.xml | 46 +
.../project-collision/mod1/pom.xml | 7 +
.../project-collision/mod2/pom.xml | 7 +
.../project-collision/pom.xml | 12 +
.../project-cycle/dep/pom.xml | 12 +
.../error-reporting-projects/project-cycle/pom.xml | 19 +
.../project-dep-missing/pom.xml | 22 +
.../apache/maven/test/error/mojoFailure/App.java | 13 +
.../maven/test/error/mojoFailure/AppTest.java | 38 +
.../project-mojo-failure/pom.xml | 17 +
.../apache/maven/test/error/mojoFailure/App.java | 14 +
.../maven/test/error/mojoFailure/AppTest.java | 38 +
.../project-parse-xex/pom.xml | 25 +
.../project-validation/pom.xml | 13 +
.../repo-creation-err/pom.xml | 41 +
.../test/eventing-projects/read-with-deps/pom.xml | 15 +
.../read-with-deps/repo/tests/dep/1/dep-1.pom | 6 +
.../eventing-projects/simple-read-project/pom.xml | 6 +
.../test/extensions/META-INF/plexus/components.xml | 28 +
.../java/org/apache/maven/cli/CLIManagerTest.java | 108 +
.../apache/maven/cli/CLIReportingUtilsTest.java | 40 +
.../java/org/apache/maven/cli/MavenCliTest.java | 110 +
.../src/test/plugin-version-references/jar-pom.xml | 32 +
.../plugin-version-references/maven-plugin-pom.xml | 36 +
.../bad-module-non-recursive/badmodule/pom.xml | 14 +
.../bad-module-non-recursive/goodmodule/pom.xml | 14 +
.../test/projects/bad-module-non-recursive/pom.xml | 14 +
.../test/projects/config-illegal/.mvn/maven.config | 1 +
.../src/test/projects/config/.mvn/maven.config | 2 +
.../src/test/projects/invalid-goal/pom.xml | 49 +
.../project/pom.xml | 13 +
.../src/main/java/org/codehaus/m2eclipse/App.java | 13 +
.../test/java/org/codehaus/m2eclipse/AppTest.java | 38 +
.../parent/1.0-SNAPSHOT/maven-metadata-company.xml | 11 +
.../parent/1.0-SNAPSHOT/parent-1.0-SNAPSHOT.pom | 18 +
.../m2eclipse/parent/maven-metadata-local.xml | 11 +
.../settings.xml | 23 +
.../src/test/projects/optional-dep/pom.xml | 20 +
.../readProject-missingModuleIgnored/pom.xml | 13 +
.../modules/child1/pom.xml | 13 +
.../readProject-withScmInheritance/pom.xml | 19 +
.../org.apache.maven/maven-core/pom.properties | 18 +
.../resources/pom-with-distribution-status.xml | 30 +
.../test/resources/pom-without-dependencies.xml | 30 +
.../maven-embedder/src/test/resources/pom.xml | 34 +
.../maven-embedder/src/test/resources/pom2.xml | 48 +
.../test/resources/settings/invalid-settings.xml | 24 +
.../src/test/resources/settings/valid-settings.xml | 27 +
.../apache-maven-3.3.3/maven-model-builder/pom.xml | 86 +
.../building/AbstractModelBuildingListener.java | 37 +
.../maven/model/building/DefaultModelBuilder.java | 1309 +++++++
.../model/building/DefaultModelBuilderFactory.java | 243 ++
.../model/building/DefaultModelBuildingEvent.java | 64 +
.../building/DefaultModelBuildingRequest.java | 408 ++
.../model/building/DefaultModelBuildingResult.java | 180 +
.../maven/model/building/DefaultModelProblem.java | 175 +
.../building/DefaultModelProblemCollector.java | 200 +
.../model/building/DefaultModelProcessor.java | 84 +
.../maven/model/building/FileModelSource.java | 83 +
.../model/building/FilterModelBuildingRequest.java | 285 ++
.../apache/maven/model/building/ModelBuilder.java | 67 +
.../maven/model/building/ModelBuildingEvent.java | 53 +
.../model/building/ModelBuildingEventCatapult.java | 48 +
.../model/building/ModelBuildingException.java | 180 +
.../model/building/ModelBuildingListener.java | 40 +
.../maven/model/building/ModelBuildingRequest.java | 338 ++
.../maven/model/building/ModelBuildingResult.java | 99 +
.../apache/maven/model/building/ModelCache.java | 56 +
.../apache/maven/model/building/ModelCacheTag.java | 132 +
.../org/apache/maven/model/building/ModelData.java | 222 ++
.../apache/maven/model/building/ModelProblem.java | 117 +
.../model/building/ModelProblemCollector.java | 41 +
.../model/building/ModelProblemCollectorExt.java | 37 +
.../building/ModelProblemCollectorRequest.java | 101 +
.../maven/model/building/ModelProblemUtils.java | 171 +
.../maven/model/building/ModelProcessor.java | 32 +
.../apache/maven/model/building/ModelSource.java | 38 +
.../apache/maven/model/building/ModelSource2.java | 56 +
.../org/apache/maven/model/building/Result.java | 255 ++
.../maven/model/building/StringModelSource.java | 56 +
.../maven/model/building/UrlModelSource.java | 46 +
.../DefaultDependencyManagementImporter.java | 83 +
.../composition/DependencyManagementImporter.java | 48 +
.../inheritance/DefaultInheritanceAssembler.java | 255 ++
.../model/inheritance/InheritanceAssembler.java | 48 +
.../AbstractStringBasedModelInterpolator.java | 271 ++
.../interpolation/BuildTimestampValueSource.java | 47 +
.../model/interpolation/MavenBuildTimestamp.java | 70 +
.../model/interpolation/ModelInterpolator.java | 54 +
.../PathTranslatingPostProcessor.java | 67 +
.../interpolation/ProblemDetectingValueSource.java | 87 +
.../StringSearchModelInterpolator.java | 504 +++
.../interpolation/UrlNormalizingPostProcessor.java | 69 +
.../apache/maven/model/io/DefaultModelReader.java | 134 +
.../apache/maven/model/io/DefaultModelWriter.java | 118 +
.../apache/maven/model/io/ModelParseException.java | 93 +
.../org/apache/maven/model/io/ModelReader.java | 89 +
.../org/apache/maven/model/io/ModelWriter.java | 74 +
.../maven/model/locator/DefaultModelLocator.java | 42 +
.../apache/maven/model/locator/ModelLocator.java | 44 +
.../DefaultDependencyManagementInjector.java | 110 +
.../DefaultPluginManagementInjector.java | 137 +
.../management/DependencyManagementInjector.java | 44 +
.../model/management/PluginManagementInjector.java | 44 +
.../apache/maven/model/merge/MavenModelMerger.java | 729 ++++
.../normalization/DefaultModelNormalizer.java | 135 +
.../maven/model/normalization/ModelNormalizer.java | 54 +
.../model/path/DefaultModelPathTranslator.java | 111 +
.../model/path/DefaultModelUrlNormalizer.java | 84 +
.../maven/model/path/DefaultPathTranslator.java | 66 +
.../maven/model/path/DefaultUrlNormalizer.java | 65 +
.../maven/model/path/ModelPathTranslator.java | 45 +
.../maven/model/path/ModelUrlNormalizer.java | 42 +
.../apache/maven/model/path/PathTranslator.java | 43 +
.../org/apache/maven/model/path/UrlNormalizer.java | 39 +
.../plugin/DefaultPluginConfigurationExpander.java | 83 +
.../plugin/DefaultReportConfigurationExpander.java | 65 +
.../model/plugin/DefaultReportingConverter.java | 240 ++
.../model/plugin/LifecycleBindingsInjector.java | 46 +
.../model/plugin/PluginConfigurationExpander.java | 43 +
.../model/plugin/ReportConfigurationExpander.java | 43 +
.../maven/model/plugin/ReportingConverter.java | 43 +
.../profile/DefaultProfileActivationContext.java | 259 ++
.../model/profile/DefaultProfileInjector.java | 249 ++
.../model/profile/DefaultProfileSelector.java | 143 +
.../model/profile/ProfileActivationContext.java | 79 +
.../maven/model/profile/ProfileInjector.java | 46 +
.../maven/model/profile/ProfileSelector.java | 49 +
.../profile/activation/FileProfileActivator.java | 192 +
.../activation/JdkVersionProfileActivator.java | 224 ++
.../OperatingSystemProfileActivator.java | 168 +
.../model/profile/activation/ProfileActivator.java | 59 +
.../activation/PropertyProfileActivator.java | 126 +
.../resolution/InvalidRepositoryException.java | 73 +
.../maven/model/resolution/ModelResolver.java | 93 +
.../resolution/UnresolvableModelException.java | 126 +
.../model/resolution/WorkspaceModelResolver.java | 33 +
.../model/superpom/DefaultSuperPomProvider.java | 87 +
.../maven/model/superpom/SuperPomProvider.java | 42 +
.../model/validation/DefaultModelValidator.java | 1076 ++++++
.../maven/model/validation/ModelValidator.java | 54 +
.../maven-model-builder/src/main/mdo/profiles.mdo | 399 ++
.../resources/org/apache/maven/model/pom-4.0.0.xml | 150 +
.../maven-model-builder/src/site/apt/index.apt | 187 +
.../src/site/apt/super-pom.apt.vm | 30 +
.../maven-model-builder/src/site/site.xml | 40 +
.../model/building/ComplexActivationTest.java | 60 +
.../building/DefaultModelBuilderFactoryTest.java | 59 +
.../model/building/SimpleProblemCollector.java | 89 +
.../DefaultInheritanceAssemblerTest.java | 108 +
.../AbstractModelInterpolatorTest.java | 494 +++
.../interpolation/MavenBuildTimestampTest.java | 38 +
.../StringSearchModelInterpolatorTest.java | 505 +++
.../maven/model/path/DefaultUrlNormalizerTest.java | 85 +
.../activation/AbstractProfileActivatorTest.java | 92 +
.../activation/JdkVersionProfileActivatorTest.java | 185 +
.../activation/PropertyProfileActivatorTest.java | 185 +
.../validation/DefaultModelValidatorTest.java | 630 +++
.../src/test/resources/poms/factory/complex.xml | 49 +
.../src/test/resources/poms/factory/simple.xml | 81 +
.../inheritance/plugin-configuration-child.xml | 61 +
.../inheritance/plugin-configuration-expected.xml | 87 +
.../inheritance/plugin-configuration-parent.xml | 89 +
.../validation/bad-dependency-exclusion-id.xml | 40 +
.../poms/validation/bad-dependency-scope.xml | 69 +
.../poms/validation/bad-dependency-version.xml | 43 +
.../validation/bad-import-scope-classifier.xml | 38 +
.../poms/validation/bad-import-scope-type.xml | 37 +
.../resources/poms/validation/bad-modelVersion.xml | 25 +
.../validation/bad-plugin-dependency-scope.xml | 70 +
.../validation/bad-plugin-dependency-version.xml | 46 +
.../poms/validation/bad-plugin-version.xml | 55 +
.../poms/validation/bad-repository-id.xml | 50 +
.../poms/validation/bad-snapshot-version.xml | 25 +
.../test/resources/poms/validation/bad-version.xml | 25 +
.../poms/validation/basedir-system-path.xml | 42 +
.../validation/distribution-management-status.xml | 29 +
.../resources/poms/validation/duplicate-module.xml | 31 +
.../poms/validation/duplicate-plugin-execution.xml | 103 +
.../resources/poms/validation/duplicate-plugin.xml | 81 +
.../poms/validation/duplicate-profile-id.xml | 35 +
.../resources/poms/validation/empty-module.xml | 30 +
.../poms/validation/empty-plugin-version.xml | 34 +
.../poms/validation/hard-coded-system-path.xml | 42 +
.../poms/validation/incomplete-parent.xml | 30 +
.../invalid-aggregator-packaging-pom.xml | 30 +
.../resources/poms/validation/invalid-ids-pom.xml | 26 +
.../resources/poms/validation/missing-1-pom.xml | 21 +
.../poms/validation/missing-artifactId-pom.xml | 25 +
.../missing-dependency-artifactId-pom.xml | 32 +
.../validation/missing-dependency-exclusion-id.xml | 39 +
.../validation/missing-dependency-groupId-pom.xml | 32 +
.../missing-dependency-mgmt-artifactId-pom.xml | 34 +
.../missing-dependency-mgmt-groupId-pom.xml | 34 +
.../missing-dependency-mgmt-version-pom.xml | 34 +
.../validation/missing-dependency-version-pom.xml | 32 +
.../poms/validation/missing-groupId-pom.xml | 25 +
.../poms/validation/missing-modelVersion-pom.xml | 25 +
.../validation/missing-plugin-artifactId-pom.xml | 33 +
.../missing-plugin-dependency-artifactId.xml | 41 +
.../missing-plugin-dependency-groupId.xml | 41 +
.../missing-plugin-dependency-version.xml | 41 +
.../poms/validation/missing-plugin-version-pom.xml | 33 +
.../validation/missing-report-artifactId-pom.xml | 33 +
.../poms/validation/missing-report-version-pom.xml | 57 +
.../poms/validation/missing-repository-id-pom.xml | 36 +
.../validation/missing-resource-directory-pom.xml | 38 +
.../resources/poms/validation/missing-type-pom.xml | 26 +
.../poms/validation/missing-version-pom.xml | 25 +
.../poms/validation/reserved-repository-id.xml | 50 +
.../maven/apache-maven-3.3.3/maven-model/pom.xml | 132 +
.../apache/maven/model/io/xpp3/package-info.java | 30 +
.../org/apache/maven/model/merge/ModelMerger.java | 2924 ++++++++++++++
.../org/apache/maven/model/merge/package-info.java | 24 +
.../java/org/apache/maven/model/package-info.java | 25 +
.../maven-model/src/main/mdo/maven.mdo | 3649 ++++++++++++++++++
.../maven-model/src/site/apt/index.apt | 39 +
.../maven-model/src/site/site.xml | 36 +
.../maven-model/src/site/xdoc/navigation.xml | 35 +
.../org/apache/maven/model/ActivationFileTest.java | 56 +
.../org/apache/maven/model/ActivationOSTest.java | 56 +
.../apache/maven/model/ActivationPropertyTest.java | 56 +
.../org/apache/maven/model/ActivationTest.java | 56 +
.../java/org/apache/maven/model/BuildTest.java | 56 +
.../org/apache/maven/model/CiManagementTest.java | 56 +
.../org/apache/maven/model/ContributorTest.java | 56 +
.../maven/model/DependencyManagementTest.java | 56 +
.../org/apache/maven/model/DependencyTest.java | 56 +
.../maven/model/DeploymentRepositoryTest.java | 56 +
.../java/org/apache/maven/model/DeveloperTest.java | 56 +
.../maven/model/DistributionManagementTest.java | 56 +
.../java/org/apache/maven/model/ExclusionTest.java | 56 +
.../java/org/apache/maven/model/ExtensionTest.java | 56 +
.../apache/maven/model/IssueManagementTest.java | 56 +
.../java/org/apache/maven/model/LicenseTest.java | 56 +
.../org/apache/maven/model/MailingListTest.java | 56 +
.../java/org/apache/maven/model/ModelTest.java | 56 +
.../java/org/apache/maven/model/NotifierTest.java | 56 +
.../org/apache/maven/model/OrganizationTest.java | 56 +
.../java/org/apache/maven/model/ParentTest.java | 56 +
.../maven/model/PluginConfigurationTest.java | 56 +
.../apache/maven/model/PluginContainerTest.java | 56 +
.../apache/maven/model/PluginExecutionTest.java | 56 +
.../apache/maven/model/PluginManagementTest.java | 56 +
.../java/org/apache/maven/model/PluginTest.java | 56 +
.../org/apache/maven/model/PrerequisitesTest.java | 56 +
.../java/org/apache/maven/model/ProfileTest.java | 56 +
.../org/apache/maven/model/RelocationTest.java | 56 +
.../org/apache/maven/model/ReportPluginTest.java | 56 +
.../java/org/apache/maven/model/ReportSetTest.java | 56 +
.../java/org/apache/maven/model/ReportingTest.java | 56 +
.../apache/maven/model/RepositoryPolicyTest.java | 56 +
.../org/apache/maven/model/RepositoryTest.java | 56 +
.../java/org/apache/maven/model/ResourceTest.java | 56 +
.../test/java/org/apache/maven/model/ScmTest.java | 56 +
.../test/java/org/apache/maven/model/SiteTest.java | 56 +
.../apache-maven-3.3.3/maven-plugin-api/pom.xml | 91 +
.../apache/maven/monitor/logging/DefaultLog.java | 131 +
.../java/org/apache/maven/plugin/AbstractMojo.java | 198 +
.../plugin/AbstractMojoExecutionException.java | 53 +
.../org/apache/maven/plugin/ContextEnabled.java | 45 +
.../main/java/org/apache/maven/plugin/Mojo.java | 72 +
.../maven/plugin/MojoExecutionException.java | 80 +
.../apache/maven/plugin/MojoFailureException.java | 69 +
.../apache/maven/plugin/MojoNotFoundException.java | 85 +
.../DuplicateMojoDescriptorException.java | 34 +
.../descriptor/DuplicateParameterException.java | 31 +
.../descriptor/InvalidParameterException.java | 37 +
.../InvalidPluginDescriptorException.java | 38 +
.../maven/plugin/descriptor/MojoDescriptor.java | 719 ++++
.../apache/maven/plugin/descriptor/Parameter.java | 207 +
.../maven/plugin/descriptor/PluginDescriptor.java | 445 +++
.../plugin/descriptor/PluginDescriptorBuilder.java | 358 ++
.../maven/plugin/descriptor/Requirement.java | 72 +
.../java/org/apache/maven/plugin/logging/Log.java | 158 +
.../maven/plugin/logging/SystemStreamLog.java | 196 +
.../maven-plugin-api/src/main/mdo/lifecycle.mdo | 129 +
.../maven-plugin-api/src/main/mdo/plugin.mdo | 525 +++
.../maven-plugin-api/src/site/apt/index.apt | 39 +
.../maven-plugin-api/src/site/site.xml | 40 +
.../descriptor/PluginDescriptorBuilderTest.java | 133 +
.../plugin/lifecycle/LifecycleXpp3ReaderTest.java | 55 +
.../src/test/resources/lifecycle.xml | 39 +
.../maven-plugin-api/src/test/resources/plugin.xml | 89 +
.../maven-repository-metadata/pom.xml | 63 +
.../src/main/mdo/metadata.mdo | 371 ++
.../src/site/apt/index.apt | 52 +
.../maven-repository-metadata/src/site/site.xml | 36 +
.../maven-settings-builder/pom.xml | 85 +
.../settings/building/DefaultSettingsBuilder.java | 277 ++
.../building/DefaultSettingsBuilderFactory.java | 71 +
.../building/DefaultSettingsBuildingRequest.java | 160 +
.../building/DefaultSettingsBuildingResult.java | 58 +
.../settings/building/DefaultSettingsProblem.java | 166 +
.../building/DefaultSettingsProblemCollector.java | 70 +
.../settings/building/FileSettingsSource.java | 59 +
.../maven/settings/building/SettingsBuilder.java | 40 +
.../building/SettingsBuildingException.java | 90 +
.../settings/building/SettingsBuildingRequest.java | 131 +
.../settings/building/SettingsBuildingResult.java | 50 +
.../maven/settings/building/SettingsProblem.java | 100 +
.../building/SettingsProblemCollector.java | 41 +
.../maven/settings/building/SettingsSource.java | 35 +
.../settings/building/StringSettingsSource.java | 69 +
.../maven/settings/building/UrlSettingsSource.java | 60 +
.../settings/crypto/DefaultSettingsDecrypter.java | 110 +
.../crypto/DefaultSettingsDecryptionRequest.java | 120 +
.../crypto/DefaultSettingsDecryptionResult.java | 81 +
.../maven/settings/crypto/SettingsDecrypter.java | 38 +
.../settings/crypto/SettingsDecryptionRequest.java | 65 +
.../settings/crypto/SettingsDecryptionResult.java | 71 +
.../maven/settings/io/DefaultSettingsReader.java | 113 +
.../maven/settings/io/DefaultSettingsWriter.java | 118 +
.../maven/settings/io/SettingsParseException.java | 93 +
.../apache/maven/settings/io/SettingsReader.java | 82 +
.../apache/maven/settings/io/SettingsWriter.java | 74 +
.../maven/settings/merge/MavenSettingsMerger.java | 142 +
.../validation/DefaultSettingsValidator.java | 285 ++
.../settings/validation/SettingsValidator.java | 41 +
.../maven-settings-builder/src/site/site.xml | 36 +
.../DefaultSettingsBuilderFactoryTest.java | 53 +
.../validation/DefaultSettingsValidatorTest.java | 244 ++
.../src/test/resources/settings/factory/simple.xml | 24 +
.../apache-maven-3.3.3/maven-settings/pom.xml | 63 +
.../org/apache/maven/settings/RuntimeInfo.java | 55 +
.../maven-settings/src/main/mdo/settings.mdo | 1077 ++++++
.../maven-settings/src/site/apt/index.apt | 36 +
.../maven-settings/src/site/site.xml | 36 +
framework/src/maven/apache-maven-3.3.3/pom.xml | 654 ++++
.../src/site/resources/images/maven-deps.png | Bin 0 -> 73105 bytes
.../src/maven/apache-maven-3.3.3/src/site/site.xml | 75 +
.../apache-maven-3.3.3/src/site/xdoc/index.xml | 76 +
.../src/site/xdoc/maven-deps.odg | Bin 0 -> 32324 bytes
1929 files changed, 179015 insertions(+)
create mode 100644 framework/src/maven/apache-maven-3.3.3/DEPENDENCIES
create mode 100644 framework/src/maven/apache-maven-3.3.3/LICENSE
create mode 100644 framework/src/maven/apache-maven-3.3.3/NOTICE
create mode 100644 framework/src/maven/apache-maven-3.3.3/README.md
create mode 100644 framework/src/maven/apache-maven-3.3.3/apache-maven/README.txt
create mode 100644 framework/src/maven/apache-maven-3.3.3/apache-maven/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/apache-maven/src/bin/m2.conf
create mode 100755 framework/src/maven/apache-maven-3.3.3/apache-maven/src/bin/mvn
create mode 100644 framework/src/maven/apache-maven-3.3.3/apache-maven/src/bin/mvn.cmd
create mode 100755 framework/src/maven/apache-maven-3.3.3/apache-maven/src/bin/mvnDebug
create mode 100644 framework/src/maven/apache-maven-3.3.3/apache-maven/src/bin/mvnDebug.cmd
create mode 100755 framework/src/maven/apache-maven-3.3.3/apache-maven/src/bin/mvnyjp
create mode 100644 framework/src/maven/apache-maven-3.3.3/apache-maven/src/conf/logging/simplelogger.properties
create mode 100644 framework/src/maven/apache-maven-3.3.3/apache-maven/src/conf/settings.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/apache-maven/src/conf/toolchains.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/apache-maven/src/lib/ext/README.txt
create mode 100644 framework/src/maven/apache-maven-3.3.3/apache-maven/src/main/appended-resources/META-INF/LICENSE.vm
create mode 100644 framework/src/maven/apache-maven-3.3.3/apache-maven/src/main/assembly/bin.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/apache-maven/src/main/assembly/src.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/apache-maven/src/site/site.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/apache-maven/src/test/java/org/apache/maven/settings/GlobalSettingsTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/build.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/deploySite.sh
create mode 100644 framework/src/maven/apache-maven-3.3.3/doap_Maven.rdf
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorUtils.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelCache.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelResolver.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/LocalSnapshotMetadata.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/LocalSnapshotMetadataGenerator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/MavenAetherModule.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/MavenMetadata.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/MavenRepositorySystemUtils.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/MavenSnapshotMetadata.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/MavenWorkspaceReader.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/RelocatedArtifact.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/RemoteSnapshotMetadata.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/RemoteSnapshotMetadataGenerator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/SnapshotMetadataGeneratorFactory.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/VersionsMetadata.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/VersionsMetadataGenerator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/VersionsMetadataGeneratorFactory.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/package-info.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/site/apt/index.apt
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/site/site.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/AbstractRepositoryTestCase.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReaderTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/DefaultVersionResolverTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/MavenRepositorySystemUtilsTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/RepositorySystemTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/util/ConsoleRepositoryListener.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/util/ConsoleTransferListener.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5324/07.20.3-SNAPSHOT/maven-metadata.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5459/0.4.0-SNAPSHOT/maven-metadata.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0-classifier.zip
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0.zip
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/maven-metadata.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/1.0/dependency-1.0-sources.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/1.0/dependency-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/1.0/dependency-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/maven-metadata.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/parent/1.0/parent-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/parent/maven-metadata.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-ant-tasks-2.1.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-artifact/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/Artifact.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/DefaultArtifact.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/InvalidArtifactRTException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/handler/ArtifactHandler.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadata.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/repository/ArtifactRepository.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/repository/ArtifactRepositoryPolicy.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/repository/Authentication.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/ArtifactRepositoryLayout.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/ArtifactRepositoryLayout2.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataStoreException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/AbstractArtifactResolutionException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactNotFoundException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/CyclicDependencyException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/MultipleArtifactsNotFoundException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/filter/ArtifactFilter.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/ArtifactVersion.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/InvalidVersionSpecificationException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/OverConstrainedVersionException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/Restriction.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/VersionRange.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/repository/Proxy.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/repository/legacy/metadata/ArtifactMetadata.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-artifact/src/site/apt/index.apt
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-artifact/src/site/site.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/ComparableVersionTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-builder-support/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/DefaultProblem.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/DefaultProblemCollector.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/FileSource.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/Problem.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/ProblemCollector.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/ProblemCollectorFactory.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/Source.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/StringSource.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/UrlSource.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/site/site.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/test/java/org/apache/maven/building/DefaultProblemCollectorTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/test/java/org/apache/maven/building/DefaultProblemTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/test/java/org/apache/maven/building/FileSourceTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/test/java/org/apache/maven/building/ProblemCollectorFactoryTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/test/java/org/apache/maven/building/StringSourceTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/test/java/org/apache/maven/building/UrlSourceTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/test/resources/source.txt
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/ArtifactScopeEnum.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/ArtifactStatus.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/UnknownRepositoryLayoutException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/deployer/ArtifactDeployer.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/deployer/ArtifactDeploymentException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/installer/ArtifactInstallationException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/installer/ArtifactInstaller.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/manager/WagonConfigurationException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/manager/WagonManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/ArtifactRepositoryFactory.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepository.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepositoryFactory.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/layout/FlatRepositoryLayout.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/GroupRepositoryMetadata.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/MetadataBridge.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/MetadataUtils.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataReadException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/SnapshotArtifactRepositoryMetadata.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactCollector.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolver.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DebugResolutionListener.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ResolutionListenerForDepMgmt.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/UnresolvedArtifacts.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/WarningResolutionListener.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/InversionArtifactFilter.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/OrArtifactFilter.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/TypeArtifactFilter.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/versioning/ManagedVersionMap.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/execution/DefaultRuntimeInformation.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/execution/RuntimeInformation.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/DefaultMavenProfilesBuilder.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/DefaultProfileManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/MavenProfilesBuilder.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/ProfileManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/ProfilesConversionUtils.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/activation/DetectedProfileActivator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/activation/FileProfileActivator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/activation/JdkPrefixProfileActivator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/activation/OperatingSystemProfileActivator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/activation/ProfileActivationException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/activation/ProfileActivator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/activation/SystemPropertyProfileActivator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/DefaultProjectBuilderConfiguration.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/InvalidProjectModelException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/MavenProjectBuilder.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/MissingRepositoryElementException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/ModelUtils.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/ProjectBuilderConfiguration.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/ProjectUtils.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/inheritance/ModelInheritanceAssembler.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/interpolation/AbstractStringBasedModelInterpolator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/interpolation/BuildTimestampValueSource.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/interpolation/ModelInterpolationException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/interpolation/ModelInterpolator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/interpolation/PathTranslatingPostProcessor.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/interpolation/StringSearchModelInterpolator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/path/DefaultPathTranslator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/validation/DefaultModelValidator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/validation/ModelValidationResult.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/validation/ModelValidator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/reporting/MavenReportException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/DefaultMirrorSelector.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/MavenArtifactMetadata.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/MetadataGraph.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/MetadataGraphNode.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/MetadataResolutionRequest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/MetadataResolutionResult.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/MirrorSelector.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/UserLocalArtifactRepository.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/VersionNotFoundException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/ChecksumFailedException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/DefaultUpdateCheckManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/DefaultWagonManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/LegacyRepositorySystem.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/MavenArtifact.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/TransferListenerAdapter.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/UpdateCheckManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/WagonConfigurationException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/WagonManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/repository/ArtifactRepositoryFactory.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/repository/DefaultArtifactRepositoryFactory.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/DefaultLegacyArtifactCollector.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/LegacyArtifactCollector.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/conflict/ConflictResolver.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/conflict/ConflictResolverFactory.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/conflict/ConflictResolverNotFoundException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/conflict/DefaultConflictResolver.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/conflict/DefaultConflictResolverFactory.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/conflict/FarthestConflictResolver.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/conflict/NearestConflictResolver.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/conflict/NewestConflictResolver.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/conflict/OldestConflictResolver.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/transform/AbstractVersionTransformation.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/transform/ArtifactTransformation.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/transform/ArtifactTransformationManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/transform/DefaultArtifactTransformationManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/transform/LatestArtifactTransformation.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/transform/ReleaseArtifactTransformation.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/resolver/transform/SnapshotTransformation.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/metadata/ArtifactMetadata.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/metadata/ClasspathContainer.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/metadata/ClasspathTransformation.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/metadata/DefaultClasspathTransformation.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/metadata/DefaultGraphConflictResolutionPolicy.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/metadata/DefaultGraphConflictResolver.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/metadata/GraphConflictResolutionException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/metadata/GraphConflictResolutionPolicy.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/metadata/GraphConflictResolver.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/metadata/MetadataGraph.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/metadata/MetadataGraphEdge.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/metadata/MetadataGraphTransformationException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/metadata/MetadataGraphVertex.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/metadata/MetadataResolution.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/metadata/MetadataResolutionException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/metadata/MetadataResolutionRequest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/metadata/MetadataResolutionRequestTypeEnum.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/metadata/MetadataResolutionResult.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/metadata/MetadataRetrievalException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/metadata/MetadataSource.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/metadata/MetadataTreeNode.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/usability/plugin/ExpressionDocumentationException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/usability/plugin/ExpressionDocumenter.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/mdo/paramdoc.mdo
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/mdo/profiles.mdo
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/resources/META-INF/maven/plugin-expressions/project.paramdoc.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/resources/META-INF/maven/plugin-expressions/rootless.paramdoc.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/resources/META-INF/maven/plugin-expressions/settings.paramdoc.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/resources/META-INF/maven/plugin.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/site/site.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/artifact/AbstractArtifactComponentTestCase.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/artifact/ArtifactUtilsTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/artifact/DefaultArtifactTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/artifact/deployer/ArtifactDeployerTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/artifact/deployer/SimpleArtifactMetadataSource.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/artifact/factory/DefaultArtifactFactoryTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/artifact/handler/ArtifactHandlerMock.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/artifact/installer/ArtifactInstallerTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/artifact/metadata/TestMetadataSource.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/artifact/repository/MavenArtifactRepositoryTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/artifact/resolver/ArtifactResolutionExceptionTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/artifact/resolver/ArtifactResolverTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/artifact/resolver/DefaultArtifactResolverTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/artifact/resolver/TestFileWagon.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/artifact/resolver/TestTransferListener.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/artifact/resolver/filter/AndArtifactFilterTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/artifact/resolver/filter/FilterHashEqualsTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/artifact/resolver/filter/OrArtifactFilterTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/artifact/resolver/filter/ScopeArtifactFilterTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/artifact/testutils/TestFileManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/artifact/transform/TransformationManagerTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/profiles/manager/DefaultProfileManagerTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/project/AbstractMavenProjectTestCase.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/project/ClasspathArtifactResolver.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/project/EmptyLifecycleExecutor.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/project/EmptyLifecyclePluginAnalyzer.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/project/LegacyLocalRepositoryManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/project/ModelUtilsTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/project/ProjectClasspathTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/project/TestArtifactResolver.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/project/TestMavenRepositorySystem.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/project/TestProjectBuilder.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/project/inheritance/AbstractProjectInheritanceTestCase.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/project/inheritance/t00/ProjectInheritanceTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/project/inheritance/t01/ProjectInheritanceTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/project/inheritance/t02/ProjectInheritanceTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/project/inheritance/t03/ProjectInheritanceTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/project/inheritance/t04/ProjectInheritanceTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/project/inheritance/t05/ProjectInheritanceTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/project/inheritance/t06/ProjectInheritanceTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/project/inheritance/t07/ProjectInheritanceTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/project/inheritance/t08/ProjectInheritanceTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/project/inheritance/t09/ProjectInheritanceTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/project/inheritance/t10/ProjectInheritanceTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/project/inheritance/t11/ProjectInheritanceTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/project/inheritance/t12/ProjectInheritanceTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/project/inheritance/t12scm/ProjectInheritanceTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/project/path/DefaultPathTranslatorTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/repository/DefaultMirrorSelectorTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/repository/LegacyRepositoryLayout.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/repository/LegacyRepositorySystemTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/repository/MirrorProcessorTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/repository/legacy/DefaultUpdateCheckManagerTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/repository/legacy/DefaultWagonManagerTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/repository/legacy/LegacyRepositorySystemTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/repository/legacy/PerLookupWagon.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/repository/legacy/StringWagon.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/repository/legacy/WagonA.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/repository/legacy/WagonB.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/repository/legacy/WagonC.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/repository/legacy/WagonMock.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/repository/legacy/resolver/DefaultArtifactCollectorTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/repository/legacy/resolver/conflict/AbstractConflictResolverTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/repository/legacy/resolver/conflict/FarthestConflictResolverTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/repository/legacy/resolver/conflict/NearestConflictResolverTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/repository/legacy/resolver/conflict/NewestConflictResolverTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/repository/legacy/resolver/conflict/OldestConflictResolverTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/repository/metadata/DefaultClasspathTransformationTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/repository/metadata/DefaultGraphConflictResolutionPolicyTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/repository/metadata/DefaultGraphConflictResolverTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/java/org/apache/maven/repository/metadata/TestMetadataSource.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/remote-repo/org/apache/maven/its/a/0.1/a-0.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/remote-repo/org/apache/maven/its/a/0.1/a-0.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/remote-repo/org/apache/maven/its/a/maven-metadata.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/remote-repo/org/apache/maven/its/b/0.1/b-0.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/remote-repo/org/apache/maven/its/b/0.1/b-0.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/remote-repo/org/apache/maven/its/b/maven-metadata.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/repository-system/maven-core-2.1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/artifact-install/artifact-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t00/maven/poms/p0-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t00/maven/poms/p1-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t00/maven/poms/p2-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t00/maven/poms/p3-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t00/maven/poms/p4-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t01/maven.t01/poms/p0-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t01/maven.t01/poms/p1-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t01/maven.t01/poms/p2-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t01/maven.t01/poms/p3-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t01/maven.t01/poms/p4-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t02/p0/p1/p2/p3/p4/p5/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t02/p0/p1/p2/p3/p4/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t02/p0/p1/p2/p3/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t02/p0/p1/p2/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t02/p0/p1/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t02/p0/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t03/p0/p1/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t03/p0/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t04/maven-test/jars/t04-a-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t04/maven-test/jars/t04-b-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t04/maven-test/jars/t04-b-2.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t04/maven-test/jars/t04-c-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t04/maven-test/jars/t04-c-2.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t04/maven-test/poms/t04-a-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t04/maven-test/poms/t04-b-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t04/maven-test/poms/t04-b-2.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t04/maven-test/poms/t04-c-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t04/maven-test/poms/t04-c-2.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t04/p0/p1/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t04/p0/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t05/maven-test/jars/t05-a-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t05/maven-test/jars/t05-a-2.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t05/maven-test/jars/t05-b-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t05/maven-test/jars/t05-b-1.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t05/maven-test/jars/t05-b-2.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t05/maven-test/jars/t05-c-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t05/maven-test/jars/t05-d-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t05/maven-test/jars/t05-d-1.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t05/maven-test/jars/t05-d-1.2.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t05/maven-test/poms/t05-a-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t05/maven-test/poms/t05-a-2.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t05/maven-test/poms/t05-b-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t05/maven-test/poms/t05-b-1.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t05/maven-test/poms/t05-b-2.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t05/maven-test/poms/t05-c-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t05/maven-test/poms/t05-d-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t05/maven-test/poms/t05-d-1.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t05/maven-test/poms/t05-d-1.2.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t05/p0/p1/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t05/p0/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t06/maven-test/jars/t06-a-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t06/maven-test/jars/t06-b-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t06/maven-test/jars/t06-b-1.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t06/maven-test/jars/t06-c-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t06/maven-test/jars/t06-d-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t06/maven-test/jars/t06-d-1.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t06/maven-test/jars/t06-d-1.2.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t06/maven-test/poms/t06-a-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t06/maven-test/poms/t06-b-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t06/maven-test/poms/t06-b-1.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t06/maven-test/poms/t06-c-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t06/maven-test/poms/t06-d-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t06/maven-test/poms/t06-d-1.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t06/maven-test/poms/t06-d-1.2.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t06/p0/p1/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t06/p0/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t07/maven-test/jars/t07-a-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t07/maven-test/jars/t07-b-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t07/maven-test/jars/t07-b-1.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t07/maven-test/jars/t07-c-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t07/maven-test/jars/t07-d-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t07/maven-test/jars/t07-d-1.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t07/maven-test/jars/t07-d-1.2.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t07/maven-test/poms/t07-a-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t07/maven-test/poms/t07-b-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t07/maven-test/poms/t07-b-1.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t07/maven-test/poms/t07-c-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t07/maven-test/poms/t07-d-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t07/maven-test/poms/t07-d-1.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t07/maven-test/poms/t07-d-1.2.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t07/p0/p1/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t07/p0/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t08/maven-test/jars/t08-a-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t08/maven-test/jars/t08-b-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t08/maven-test/jars/t08-b-1.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t08/maven-test/jars/t08-c-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t08/maven-test/jars/t08-d-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t08/maven-test/jars/t08-d-1.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t08/maven-test/jars/t08-d-1.2.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t08/maven-test/poms/t08-a-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t08/maven-test/poms/t08-b-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t08/maven-test/poms/t08-b-1.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t08/maven-test/poms/t08-c-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t08/maven-test/poms/t08-d-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t08/maven-test/poms/t08-d-1.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t08/maven-test/poms/t08-d-1.2.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t08/p0/p1/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t08/p0/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t09/maven-test/jars/t09-a-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t09/maven-test/jars/t09-b-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t09/maven-test/jars/t09-c-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t09/maven-test/jars/t09-d-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t09/maven-test/poms/t09-a-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t09/maven-test/poms/t09-b-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t09/maven-test/poms/t09-c-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t09/maven-test/poms/t09-d-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t09/p0/p1/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t09/p0/p2/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t09/p0/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t10/maven-test/jars/t10-a-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t10/maven-test/jars/t10-b-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t10/maven-test/jars/t10-c-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t10/maven-test/poms/t10-a-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t10/maven-test/poms/t10-b-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t10/maven-test/poms/t10-c-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t10/p0/p1/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t10/p0/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t11/p0/p1/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t11/p0/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t12/p0/p1/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t12/p0/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t12scm/maven/p0/1.0/p0-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t12scm/maven/p1/1.0/p1-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t12scm/p0/modules/p1/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/inheritance-repo/t12scm/p0/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/local-repo/marker.txt
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/local-repo/maven-test/jars/maven-test-a-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/local-repo/maven-test/jars/maven-test-b-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/local-repo/maven-test/jars/maven-test-c-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/local-repo/maven-test/jars/maven-test-d-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/local-repo/maven-test/poms/maven-test-a-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/local-repo/maven-test/poms/maven-test-b-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/local-repo/maven-test/poms/maven-test-c-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/local-repo/maven-test/poms/maven-test-d-1.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/local-repo/maven-test/poms/maven-test-d-1.2.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/local-repo/snapshot-test/jars/maven-snapshot-a-1.0-SNAPSHOT.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/local-repo/snapshot-test/jars/maven-snapshot-a-1.0-SNAPSHOT.jar.snapshot-version
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/local-repo/snapshot-test/jars/maven-snapshot-b-1.0-SNAPSHOT.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/local-repo/snapshot-test/jars/maven-snapshot-b-1.0-SNAPSHOT.jar.snapshot-version
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/local-repo/snapshot-test/jars/maven-snapshot-e-1.0-SNAPSHOT.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/local-repo/snapshot-test/jars/maven-snapshot-e-1.0-SNAPSHOT.jar.snapshot-version
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/local-repo/snapshot-test/poms/maven-test-snapshot-resolving-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/org/apache/maven/artifact/deployer/ArtifactDeployerTest.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/org/apache/maven/artifact/installer/ArtifactInstallerTest.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/org/apache/maven/artifact/manager/DefaultWagonManagerTest.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/org/apache/maven/artifact/resolver/ArtifactResolverTest.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/org/apache/maven/artifact/resolver/ArtifactUpdatePolicyTest.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/org/apache/maven/project/AbstractMavenProjectTestCase.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/projects/scope/project-with-scoped-dependencies.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/projects/scope/transitive-compile-dep.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/projects/scope/transitive-default-dep.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/projects/scope/transitive-provided-dep.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/projects/scope/transitive-runtime-dep.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-compat/src/test/resources/projects/scope/transitive-test-dep.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/lifecycle-executor.txt
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/plugin-manager.txt
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/project-builder.txt
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/AbstractMavenLifecycleParticipant.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/ArtifactFilterManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/ArtifactFilterManagerDelegate.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/BuildAbort.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/BuildFailureException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/DefaultArtifactFilterManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/DefaultProjectDependenciesResolver.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/DuplicateProjectException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/InternalErrorException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/Maven.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/MavenExecutionException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/MissingModuleException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/ProjectBuildFailureException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/ProjectCycleException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/ProjectDependenciesResolver.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/ReactorReader.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/SessionScoped.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/DependencyResolutionRequiredException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/InvalidRepositoryException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/factory/ArtifactFactory.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/factory/DefaultArtifactFactory.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/handler/DefaultArtifactHandler.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/handler/manager/ArtifactHandlerManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/handler/manager/DefaultArtifactHandlerManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/metadata/AbstractArtifactMetadata.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadataRetrievalException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadataSource.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/metadata/ResolutionGroup.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/repository/DefaultRepositoryRequest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/repository/LegacyLocalRepositoryManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/repository/MavenArtifactRepository.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/repository/RepositoryCache.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/repository/RepositoryRequest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/repository/layout/DefaultRepositoryLayout.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/AbstractRepositoryMetadata.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/ArtifactRepositoryMetadata.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadata.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataDeploymentException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataInstallationException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataResolutionException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/io/DefaultMetadataReader.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/io/MetadataParseException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/io/MetadataReader.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionRequest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionResult.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/resolver/DefaultResolutionErrorHandler.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/resolver/ResolutionErrorHandler.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/resolver/ResolutionListener.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/resolver/ResolutionNode.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/resolver/filter/AbstractScopeArtifactFilter.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/resolver/filter/AndArtifactFilter.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/resolver/filter/CumulativeScopeArtifactFilter.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/resolver/filter/ExcludesArtifactFilter.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/resolver/filter/ExclusionSetFilter.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/resolver/filter/IncludesArtifactFilter.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/artifact/resolver/filter/ScopeArtifactFilter.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/bridge/MavenRepositorySystem.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/classrealm/ArtifactClassRealmConstituent.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/classrealm/ClassRealmConstituent.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/classrealm/ClassRealmManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/classrealm/ClassRealmManagerDelegate.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/classrealm/ClassRealmRequest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmRequest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/configuration/BasedirBeanConfigurationPathTranslator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/configuration/BeanConfigurationException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/configuration/BeanConfigurationPathTranslator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/configuration/BeanConfigurationRequest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/configuration/BeanConfigurationValuePreprocessor.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/configuration/BeanConfigurator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/configuration/DefaultBeanConfigurationRequest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/configuration/internal/DefaultBeanConfigurator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/eventspy/AbstractEventSpy.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/eventspy/EventSpy.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/eventspy/internal/EventSpyDispatcher.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/eventspy/internal/EventSpyExecutionListener.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/eventspy/internal/EventSpyRepositoryListener.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/exception/DefaultExceptionHandler.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/exception/ExceptionHandler.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/exception/ExceptionSummary.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/execution/AbstractExecutionListener.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/execution/BuildFailure.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/execution/BuildSuccess.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/execution/BuildSummary.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequestPopulator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionResult.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/execution/ExecutionEvent.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/execution/ExecutionListener.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequestPopulationException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequestPopulator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionResult.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/execution/MojoExecutionEvent.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/execution/MojoExecutionListener.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/execution/ProjectDependencyGraph.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/execution/ProjectExecutionEvent.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/execution/ProjectExecutionListener.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/execution/ReactorManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/execution/SettingsAdapter.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/execution/scope/MojoExecutionScoped.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/execution/scope/WeakMojoExecutionListener.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/execution/scope/internal/MojoExecutionScope.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/execution/scope/internal/MojoExecutionScopeCoreModule.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/execution/scope/internal/MojoExecutionScopeModule.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/extension/internal/CoreExports.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/extension/internal/CoreExportsProvider.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/extension/internal/CoreExtensionEntry.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/graph/DefaultGraphBuilder.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/graph/DefaultProjectDependencyGraph.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/graph/FilteredProjectDependencyGraph.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/graph/GraphBuilder.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/internal/aether/LoggingRepositoryListener.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycles.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/LifeCyclePluginAnalyzer.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/Lifecycle.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/LifecycleExecutionException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/LifecycleExecutor.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/LifecycleMappingDelegate.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/LifecycleNotFoundException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/LifecyclePhaseNotFoundException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/MavenExecutionPlan.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/MissingProjectException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/MojoExecutionConfigurator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/NoGoalSpecifiedException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/BuildListCalculator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/BuildThreadFactory.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/CompoundProjectExecutionListener.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultExecutionEvent.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultExecutionEventCatapult.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleExecutionPlanCalculator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleMappingDelegate.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecyclePluginAnalyzer.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleTaskSegmentCalculator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultMojoExecutionConfigurator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultProjectArtifactFactory.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DependencyContext.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/ExecutionEventCatapult.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/ExecutionPlanItem.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/GoalTask.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDebugLogger.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleExecutionPlanCalculator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleModuleBuilder.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecyclePluginResolver.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleStarter.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleTask.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleTaskSegmentCalculator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoDescriptorCreator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/PhaseRecorder.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/ProjectArtifactFactory.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/ProjectBuildList.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/ProjectIndex.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/ProjectSegment.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/ReactorBuildStatus.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/ReactorContext.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/TaskSegment.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/builder/Builder.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/builder/BuilderCommon.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/builder/BuilderNotFoundException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/builder/multithreaded/ConcurrencyDependencyGraph.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/builder/multithreaded/MultiThreadedBuilder.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/builder/multithreaded/ThreadOutputMuxer.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/builder/singlethreaded/SingleThreadedBuilder.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/DefaultLifecycleMapping.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/Lifecycle.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/LifecycleMapping.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/model/plugin/DefaultLifecycleBindingsInjector.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/monitor/event/EventDispatcher.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/monitor/event/EventMonitor.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/BuildPluginManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/CacheUtils.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/CompoundMojoExecutionListener.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/CycleDetectedInPluginGraphException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/DebugConfigurationListener.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/DefaultBuildPluginManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/DefaultExtensionRealmCache.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginArtifactsCache.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginDescriptorCache.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginRealmCache.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/ExtensionRealmCache.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/InvalidPluginDescriptorException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/InvalidPluginException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/LegacySupport.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginValidator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/MojoExecution.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/PluginArtifactsCache.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/PluginConfigurationException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/PluginContainerException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/PluginDescriptorCache.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/PluginDescriptorParsingException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/PluginExecutionException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/PluginIncompatibleException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/PluginLoaderException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/PluginManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/PluginManagerException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/PluginNotFoundException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/PluginRealmCache.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/PluginResolutionException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultLegacySupport.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/internal/PlexusUtilsInjector.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/internal/PluginDependenciesResolver.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/internal/PluginDependencyResolutionListener.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/internal/ValidatingConfigurationListener.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/internal/WagonExcluder.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/prefix/DefaultPluginPrefixRequest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/prefix/NoPluginFoundForPrefixException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/prefix/PluginPrefixRequest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/prefix/PluginPrefixResolver.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/prefix/PluginPrefixResult.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/prefix/internal/DefaultPluginPrefixResolver.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/prefix/internal/DefaultPluginPrefixResult.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionRequest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/version/PluginVersionNotFoundException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/version/PluginVersionRequest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/version/PluginVersionResolutionException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/version/PluginVersionResolver.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/version/PluginVersionResult.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResult.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/DefaultDependencyResolutionRequest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/DefaultDependencyResolutionResult.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectHelper.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/DefaultModelBuildingListener.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingHelper.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingRequest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingResult.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/DefaultProjectDependenciesResolver.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/DefaultProjectRealmCache.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/DependencyResolutionException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/DependencyResolutionRequest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/DependencyResolutionResult.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/DuplicateArtifactAttachmentException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/DuplicateProjectException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/ExtensionDescriptor.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/ExtensionDescriptorBuilder.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/InvalidProjectVersionException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/MavenProjectHelper.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/ProjectBuilder.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingHelper.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingRequest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingResult.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/ProjectDependenciesResolver.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/ProjectModelResolver.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/ProjectRealmCache.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/ProjectSorter.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/ReactorModelCache.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/ReactorModelPool.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/RepositorySessionDecorator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/artifact/ActiveProjectArtifact.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/artifact/ArtifactWithDependencies.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/artifact/AttachedArtifact.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/artifact/DefaultMavenMetadataCache.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/artifact/DefaultMetadataSource.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/artifact/InvalidDependencyVersionException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataCache.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/artifact/PluginArtifact.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/artifact/ProjectArtifact.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/artifact/ProjectArtifactMetadata.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/project/path/PathTranslator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/properties/internal/EnvironmentUtils.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/properties/internal/SystemProperties.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/repository/ArtifactDoesNotExistException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/repository/ArtifactTransferEvent.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/repository/ArtifactTransferFailedException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/repository/ArtifactTransferListener.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/repository/ArtifactTransferResource.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/repository/DelegatingLocalArtifactRepository.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/repository/LocalArtifactRepository.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/repository/LocalRepositoryNotAccessibleException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/repository/RepositorySystem.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/repository/legacy/metadata/AbstractArtifactMetadata.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/repository/legacy/metadata/ArtifactMetadataRetrievalException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/repository/legacy/metadata/ArtifactMetadataSource.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/repository/legacy/metadata/DefaultMetadataResolutionRequest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/repository/legacy/metadata/MetadataResolutionRequest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/repository/legacy/metadata/ResolutionGroup.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/rtinfo/RuntimeInformation.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/rtinfo/internal/DefaultRuntimeInformation.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/session/scope/internal/SessionScope.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/session/scope/internal/SessionScopeModule.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/settings/MavenSettingsBuilder.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/settings/SettingsConfigurationException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/settings/SettingsUtils.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/toolchain/DefaultToolchain.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/toolchain/DefaultToolchainManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/toolchain/DefaultToolchainManagerPrivate.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/toolchain/DefaultToolchainsBuilder.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/toolchain/MisconfiguredToolchainException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/toolchain/RequirementMatcher.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/toolchain/RequirementMatcherFactory.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/toolchain/Toolchain.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/toolchain/ToolchainFactory.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/toolchain/ToolchainManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/toolchain/ToolchainManagerPrivate.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/toolchain/ToolchainPrivate.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/toolchain/ToolchainsBuilder.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/toolchain/building/DefaultToolchainsBuilder.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/toolchain/building/DefaultToolchainsBuildingRequest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/toolchain/building/DefaultToolchainsBuildingResult.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/toolchain/building/ToolchainsBuilder.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/toolchain/building/ToolchainsBuildingException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/toolchain/building/ToolchainsBuildingRequest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/toolchain/building/ToolchainsBuildingResult.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/toolchain/io/DefaultToolchainsReader.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/toolchain/io/ToolchainsParseException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/toolchain/io/ToolchainsReader.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/toolchain/java/DefaultJavaToolChain.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/toolchain/java/JavaToolchain.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/toolchain/java/JavaToolchainFactory.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/toolchain/java/JavaToolchainImpl.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/toolchain/merge/MavenToolchainMerger.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/mdo/extension.mdo
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/mdo/toolchains.mdo
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/resources/META-INF/maven/extension.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/resources/META-INF/plexus/artifact-handlers.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/resources/META-INF/plexus/components.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/resources/META-INF/plexus/default-bindings.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/resources/org/apache/maven/messages/build.properties
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/resources/org/apache/maven/messages/messages.properties
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/resources/org/apache/maven/messages/messages_de.properties
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/resources/org/apache/maven/messages/messages_el.properties
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/resources/org/apache/maven/messages/messages_en.properties
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/resources/org/apache/maven/messages/messages_es.properties
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/resources/org/apache/maven/messages/messages_fr.properties
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/resources/org/apache/maven/messages/messages_ja.properties
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/resources/org/apache/maven/messages/messages_ko.properties
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/resources/org/apache/maven/messages/messages_nl.properties
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/resources/org/apache/maven/messages/messages_no.properties
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/resources/org/apache/maven/messages/messages_pl.properties
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/resources/org/apache/maven/messages/messages_zh_CN.properties
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/main/resources/org/apache/maven/project/standalone.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/site/apt/artifact-handlers.apt
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/site/apt/configuration-management.apt
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/site/apt/default-bindings.apt.vm
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/site/apt/getting-to-container-configured-mojos.apt
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/site/apt/index.apt
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/site/apt/inheritance.apt
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/site/apt/lifecycles.apt.vm
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/site/apt/offline-mode.apt
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/site/apt/plugin-execution-isolation.apt
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/site/apt/scripting-support/marmalade-support.apt
create mode 100755 framework/src/maven/apache-maven-3.3.3/maven-core/src/site/resources/design/2.1-lifecycle-refactor-class-diagram.png
create mode 100755 framework/src/maven/apache-maven-3.3.3/maven-core/src/site/resources/design/2.1-lifecycle-refactor-sequence-diagram.png
create mode 100755 framework/src/maven/apache-maven-3.3.3/maven-core/src/site/resources/design/2.1-lifecycle-refactor.graffle
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/site/site.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/DefaultMavenTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/MavenLifecycleParticipantTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/MavenTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/ProjectDependenciesResolverTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/artifact/handler/ArtifactHandlerTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/configuration/DefaultBeanConfiguratorTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/exception/DefaultExceptionHandlerTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/execution/DefaultMavenExecutionRequestPopulatorTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/execution/DefaultMavenExecutionTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/execution/scope/internal/MojoExecutionScopeTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/graph/DefaultProjectDependencyGraphTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/lifecycle/DefaultLifecyclesTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/lifecycle/DelegatingMojoExecutionListener.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/lifecycle/DelegatingProjectExecutionListener.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/lifecycle/EmptyLifecyclePluginAnalyzer.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/lifecycle/LifecycleExecutorSubModulesTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/lifecycle/LifecycleExecutorTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/lifecycle/MavenExecutionPlanTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/lifecycle/MojoExecutionXPathContainer.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/lifecycle/internal/BuildListCalculatorTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/lifecycle/internal/BuilderCommonTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/lifecycle/internal/ConcurrencyDependencyGraphTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/lifecycle/internal/LifecycleExecutionPlanCalculatorTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/lifecycle/internal/LifecycleTaskSegmentCalculatorImplTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/lifecycle/internal/PhaseRecorderTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/lifecycle/internal/ProjectBuildListTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/lifecycle/internal/builder/multithreaded/ThreadOutputMuxerTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/AboutTheStubs.html
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/BuildPluginManagerStub.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/CompletionServiceStub.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/DefaultLifecyclesStub.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/ExecutionEventCatapultStub.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/LifeCyclePluginAnalyzerStub.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/LifecycleExecutionPlanCalculatorStub.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/LifecycleTaskSegmentCalculatorStub.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/LoggerStub.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/MojoExecutorStub.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/PluginPrefixResolverStub.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/PluginVersionResolverStub.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/ProjectDependenciesResolverStub.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/ProjectDependencyGraphStub.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/ProjectDependencyGraphStubTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/plugin/PluginManagerTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExceptionTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/plugin/internal/DefaultLegacySupportTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/project/AbstractMavenProjectTestCase.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/project/DefaultMavenProjectBuilderTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/project/EmptyLifecycleExecutor.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/project/EmptyProjectBuildingHelper.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/project/ExtensionDescriptorBuilderTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/project/LegacyLocalRepositoryManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/project/MavenProjectTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/project/ProjectBuilderTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/project/ProjectSorterTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/project/TestMetadataSource.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/project/artifact/DefaultMavenMetadataCacheTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/project/artifact/MavenMetadataSourceTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/project/canonical/CanonicalProjectBuilderTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/project/harness/PomTestWrapper.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/project/harness/Xpp3DomAttributeIterator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/project/harness/Xpp3DomAttributePointer.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/project/harness/Xpp3DomNodeIterator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/project/harness/Xpp3DomNodePointer.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/project/harness/Xpp3DomPointerFactory.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/repository/LegacyRepositoryLayout.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/repository/TestArtifactHandler.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/repository/TestRepositoryConnector.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/repository/TestRepositoryConnectorFactory.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/repository/TestRepositorySystem.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/rtinfo/internal/DefaultRuntimeInformationTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/settings/PomConstructionWithSettingsTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/settings/SettingsUtilsTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/toolchain/DefaultToolchainManagerPrivateTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/toolchain/DefaultToolchainManagerTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/toolchain/DefaultToolchainTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/toolchain/RequirementMatcherFactoryTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/toolchain/building/DefaultToolchainsBuilderTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/toolchain/building/ToolchainsBuildingExceptionTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/java/org/apache/maven/toolchain/merge/MavenToolchainMergerTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/default-maven/cyclic-reference/module-a/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/default-maven/cyclic-reference/module-b/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/default-maven/cyclic-reference/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/lifecycle-executor/mojo-configuration/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/lifecycle-executor/project-basic/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/lifecycle-executor/project-with-additional-lifecycle-elements/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/lifecycle-executor/project-with-additional-lifecycle-elements/src/main/java/org/apache/maven/lifecycle/test/App.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/lifecycle-executor/project-with-additional-lifecycle-elements/src/test/java/org/apache/maven/lifecycle/test/AppTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/lifecycle-executor/project-with-inheritance/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/lifecycle-executor/project-with-multiple-executions/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/lifecycle-executor/project-with-multiple-executions/src/main/mdo/remote-resources.mdo
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/lifecycle-executor/project-with-multiple-executions/src/main/mdo/supplemental-model.mdo
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/lifecycle-executor/project-with-plugin-level-configuration-only/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/lifecycle-listener/lifecycle-listener-dependency-injection/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/lifecycle-listener/lifecycle-participant-reactor-dependency-injection/module-a/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/lifecycle-listener/lifecycle-participant-reactor-dependency-injection/module-b/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/lifecycle-listener/lifecycle-participant-reactor-dependency-injection/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/plugin-manager/mng-5003-plugin-realm-cache/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/plugin-manager/project-contributing-system-scope-plugin-dep/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/plugin-manager/project-contributing-system-scope-plugin-dep/tools.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/plugin-manager/project-with-build-extensions-plugin/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/plugin-manager/project-with-inheritance/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/plugin-manager/project-with-plugin-classpath-ordering/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/plugin-manager/project-with-plugin-classpath-ordering/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/plugin-manager/project-with-plugin-classpath-ordering/sub/repo/org/apache/maven/its/mng3906/a/0.1/a-0.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/plugin-manager/project-with-plugin-classpath-ordering/sub/repo/org/apache/maven/its/mng3906/a/0.1/a-0.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/plugin-manager/project-with-plugin-classpath-ordering/sub/repo/org/apache/maven/its/mng3906/a/0.2/a-0.2.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/plugin-manager/project-with-plugin-classpath-ordering/sub/repo/org/apache/maven/its/mng3906/a/0.2/a-0.2.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/plugin-manager/project-with-plugin-classpath-ordering/sub/repo/org/apache/maven/its/mng3906/a/maven-metadata.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/plugin-manager/project-with-plugin-classpath-ordering/sub/repo/org/apache/maven/its/mng3906/b/0.1/b-0.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/plugin-manager/project-with-plugin-classpath-ordering/sub/repo/org/apache/maven/its/mng3906/b/0.1/b-0.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/plugin-manager/project-with-plugin-classpath-ordering/sub/repo/org/apache/maven/its/mng3906/b/maven-metadata.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/plugin-manager/project-with-plugin-classpath-ordering/sub/repo/org/apache/maven/its/mng3906/c/0.1/c-0.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/plugin-manager/project-with-plugin-classpath-ordering/sub/repo/org/apache/maven/its/mng3906/c/0.1/c-0.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/plugin-manager/project-with-plugin-classpath-ordering/sub/repo/org/apache/maven/its/mng3906/c/maven-metadata.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/plugin-manager/project-with-plugin-classpath-ordering/sub/repo/org/apache/maven/its/mng3906/d/0.1/d-0.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/plugin-manager/project-with-plugin-classpath-ordering/sub/repo/org/apache/maven/its/mng3906/d/0.1/d-0.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/plugin-manager/project-with-plugin-classpath-ordering/sub/repo/org/apache/maven/its/mng3906/d/maven-metadata.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/plugin-manager/project-with-plugin-classpath-ordering/sub/repo/org/apache/maven/its/mng3906/e/0.1/e-0.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/plugin-manager/project-with-plugin-classpath-ordering/sub/repo/org/apache/maven/its/mng3906/e/0.1/e-0.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/plugin-manager/project-with-plugin-classpath-ordering/sub/repo/org/apache/maven/its/mng3906/e/maven-metadata.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/plugin-manager/project-with-plugin-classpath-ordering/sub/settings-template.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/project-builder/it0063/jdk/jre/placeholder.txt
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/project-builder/it0063/jdk/lib/tools.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/project-builder/it0063/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/project-builder/mng-3023/consumer/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/project-builder/mng-3023/dependency/dependency-1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/project-builder/mng-3023/dependency/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/project-builder/mng-3023/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/project-dependencies-resolver/it0063/jdk/jre/placeholder.txt
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/project-dependencies-resolver/it0063/jdk/lib/tools.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/project-dependencies-resolver/it0063/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/projects/project-dependencies-resolver/project-with-exclusions/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/its/a/0.1/a-0.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/its/a/0.1/a-0.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/its/a/maven-metadata.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/its/b/0.1/b-0.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/its/b/0.1/b-0.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/its/b/maven-metadata.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/its/plugins/maven-it-plugin/0.1/maven-it-plugin-0.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/its/plugins/maven-it-plugin/0.1/maven-it-plugin-0.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/its/plugins/maven-it-plugin/0.1/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/its/plugins/maven-it-plugin/maven-metadata.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/its/plugins/maven-metadata.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/maven-plugin-api/2.0/maven-plugin-api-2.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/maven-plugin-api/2.0/maven-plugin-api-2.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/maven/2.0/maven-2.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/plugins/maven-clean-plugin/0.1/maven-clean-plugin-0.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/plugins/maven-clean-plugin/0.1/maven-clean-plugin-0.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/plugins/maven-clean-plugin/maven-metadata.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/plugins/maven-compiler-plugin/0.1/maven-compiler-plugin-0.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/plugins/maven-compiler-plugin/0.1/maven-compiler-plugin-0.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/plugins/maven-compiler-plugin/maven-metadata.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/plugins/maven-deploy-plugin/0.1/maven-deploy-plugin-0.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/plugins/maven-deploy-plugin/0.1/maven-deploy-plugin-0.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/plugins/maven-deploy-plugin/maven-metadata.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/plugins/maven-install-plugin/0.1/maven-install-plugin-0.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/plugins/maven-install-plugin/0.1/maven-install-plugin-0.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/plugins/maven-install-plugin/maven-metadata.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/plugins/maven-jar-plugin/0.1/maven-jar-plugin-0.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/plugins/maven-jar-plugin/0.1/maven-jar-plugin-0.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/plugins/maven-jar-plugin/maven-metadata.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/plugins/maven-metadata.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/plugins/maven-plugin-plugin/0.1/maven-plugin-plugin-0.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/plugins/maven-plugin-plugin/0.1/maven-plugin-plugin-0.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/plugins/maven-plugin-plugin/maven-metadata.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/plugins/maven-resources-plugin/0.1/maven-resources-plugin-0.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/plugins/maven-resources-plugin/0.1/maven-resources-plugin-0.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/plugins/maven-resources-plugin/maven-metadata.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/plugins/maven-surefire-plugin/0.1/maven-surefire-plugin-0.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/plugins/maven-surefire-plugin/0.1/maven-surefire-plugin-0.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/apache/maven/plugins/maven-surefire-plugin/maven-metadata.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/remote-repo/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/artifact-id-inheritance/child/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/artifact-id-inheritance/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/basedir-aligned-interpolation/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/basedir-interpolation/pom-with-unusual-name.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/baseurl-interpolation/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/boolean-interpolation/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/build-extension-inheritance/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/build-extension-inheritance/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/complete-model/w-parent/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/complete-model/w-parent/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/complete-model/wo-parent/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/config-with-plugin-mng/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/consecutive_empty_elements/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/contributors-inheritance/child-2/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/contributors-inheritance/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/dependency-inheritance/maven-parent.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/dependency-inheritance/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/dependency-inheritance/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/dependency-management-with-interpolation/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/dependency-management-with-interpolation/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/dependency-order/w-plugin-mngt/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/dependency-order/wo-plugin-mngt/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/dependency-scope-inheritance/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/dependency-scope-inheritance/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/dependency-scope/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/dependency-scope/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/developers-inheritance/child-2/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/developers-inheritance/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/distribution-management/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/dual-execution-ids/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/dual-execution-ids/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/duplicate-exclusions-dependency/nexus-parent.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/duplicate-exclusions-dependency/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/duplicate-exclusions-dependency/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/empty-distMng-repo-url/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/empty-scm/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/equal-plugin-deps/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/equal-plugin-exec-ids/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/execution-configuration-join/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/execution-configuration-subcollections/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/execution-configuration/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/foo/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/full-interpolation/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/id-container-joining-with-empty-elements/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/id-container-joining-with-empty-elements/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/inherited-properties-interpolation/active-profile/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/inherited-properties-interpolation/active-profile/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/inherited-properties-interpolation/no-profile/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/inherited-properties-interpolation/no-profile/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/interpolation-cli-wins/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/jdk-activation/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/join-different-containers-same-id/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/licenses-inheritance/child-2/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/licenses-inheritance/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/limited-inheritance/child/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/limited-inheritance/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/mailing-lists-inheritance/child-2/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/mailing-lists-inheritance/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/managed-profile-dependency/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/managed-profile-dependency/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/merged-filter-order/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/merged-filter-order/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/merged-plugin-class-path-order/w-plugin-mngt/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/merged-plugin-class-path-order/w-plugin-mngt/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/merged-plugin-class-path-order/wo-plugin-mngt/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/merged-plugin-class-path-order/wo-plugin-mngt/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/merged-plugin-exec-goals-order/w-plugin-mngt/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/merged-plugin-exec-goals-order/w-plugin-mngt/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/merged-plugin-exec-goals-order/wo-plugin-mngt/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/merged-plugin-exec-goals-order/wo-plugin-mngt/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/merged-plugin-exec-order/w-plugin-mngt/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/merged-plugin-exec-order/w-plugin-mngt/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/merged-plugin-exec-order/wo-plugin-mngt/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/merged-plugin-exec-order/wo-plugin-mngt/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/micromailer/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/micromailer/spice-parent-9.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/multiple-filters/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/multiple-repos/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/multiple-repos/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/nested-build-dir-interpolation/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/parent-inheritance/child3.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/parent-inheritance/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/parent-inheritance/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/parent-interpolation/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/parent-interpolation/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/parent-pom-packaging/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/parent-pom-packaging/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/platform-file-separator/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-config-append/no-profile/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-config-append/no-profile/subproject/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-config-append/with-profile/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-config-append/with-profile/subproject/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-config-attributes/w-plugin-mngt/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-config-attributes/w-profile/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-config-attributes/wo-plugin-mngt/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-config-merging/child/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-config-merging/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-config-order/w-plugin-mngt/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-config-order/wo-plugin-mngt/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-config-properties/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-exec-config-order/w-plugin-mngt/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-exec-config-order/wo-plugin-mngt/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-exec-goals-order/w-plugin-mngt/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-exec-goals-order/wo-plugin-mngt/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-exec-inheritance/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-exec-inheritance/w-merge/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-exec-inheritance/wo-merge/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-exec-merging-version-insensitive/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-exec-merging-version-insensitive/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-exec-merging-wo-version/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-exec-merging-wo-version/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-exec-merging/w-plugin-mngt/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-exec-merging/w-plugin-mngt/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-exec-merging/wo-plugin-mngt/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-exec-merging/wo-plugin-mngt/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-exec-order-and-default-exec/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-exec-order-with-lifecycle/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-exec-order/w-plugin-mngt/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-exec-order/wo-plugin-mngt/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-exec-w-and-wo-id/w-plugin-mngt/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-exec-w-and-wo-id/wo-plugin-mngt/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-inheritance-merge-order/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-inheritance-merge-order/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-inheritance-order/child/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-inheritance-order/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-inheritance-simple/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-inheritance-simple/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-injection-merge-order/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-management-dependencies/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-management-dependencies/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-management-duplicate/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-management-duplicate/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-management-for-implicit-plugin/child/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-management-for-implicit-plugin/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-management-inheritance/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-merge-simple/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-order/nexus-parent.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/plugin-order/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/pluginmanagement-inherited/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/pluginmanagement-inherited/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/pom-encoding/latin-1/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/pom-encoding/utf-8/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/pom-inheritance/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/pom-inheritance/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/prerequisites-inheritance/child/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/prerequisites-inheritance/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/profile-default-deactivation/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/profile-dependencies-multiple-profiles/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/profile-injected-dependencies/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/profile-injection-order/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/profile-module-inheritance/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/profile-module-inheritance/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/profile-module/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/profile-plugin-mng-dependencies/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/profile-plugin-mng-dependencies/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/profile-plugins/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/profile-properties-interpolation/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/properties-inheritance/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/properties-inheritance/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/properties-no-duplication/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/properties-no-duplication/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/repo-inheritance/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/reporting-interpolation/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/reporting-plugin-config/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/reporting-plugin-config/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/single-configuration-inheritance/jetty-parent.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/single-configuration-inheritance/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/sytem-property-interpolation/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/unc-path/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/unc-path/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/unique-dependency-key/dep-mngt-in-profile/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/unique-dependency-key/dep-mngt/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/unique-dependency-key/deps-in-profile/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/unique-dependency-key/deps/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/unique-repo-id/artifact-repo-in-profile/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/unique-repo-id/artifact-repo/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/unique-repo-id/plugin-repo-in-profile/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/unique-repo-id/plugin-repo/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/unprefixed-expression-interpolation/child/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/unprefixed-expression-interpolation/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/url-append/child/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/url-append/parent/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/url-inheritance/another-parent/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/url-inheritance/another-parent/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/url-inheritance/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/url-inheritance/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/url-no-decoding/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/xml-coalesce-text/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/xml-markup-interpolation/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/xml-whitespace/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-project-builder/xml-whitespace/sub/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-settings/repositories/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-settings/repositories/settings.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-settings/settings-no-pom/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-settings/settings-no-pom/settings.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-settings/test-pom-and-settings-interpolation/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources-settings/test-pom-and-settings-interpolation/settings.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/META-INF/maven/org.apache.maven/maven-core/pom.properties
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/META-INF/plexus/components.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/canonical-pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/dependencyManagement-pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/distributionManagement-pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-a-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-a-1.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-b-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-b-1.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-c-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-c-1.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-d-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-d-1.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-d-1.2.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-a-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-a-1.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-b-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-b-1.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-c-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-c-1.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-d-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-d-1.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-d-1.2.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/imports-repo/t01/p0/p1/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/imports-repo/t01/p0/p2/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/imports-repo/t01/p0/p3/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/imports-repo/t01/p0/p4/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/imports-repo/t01/p0/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/local-repo/marker.txt
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/local-repo/maven-test/jars/maven-test-a-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/local-repo/maven-test/jars/maven-test-b-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/local-repo/maven-test/jars/maven-test-c-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/local-repo/maven-test/jars/maven-test-d-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/local-repo/maven-test/poms/maven-test-a-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/local-repo/maven-test/poms/maven-test-b-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/local-repo/maven-test/poms/maven-test-c-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/local-repo/maven-test/poms/maven-test-d-1.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/local-repo/maven-test/poms/maven-test-d-1.2.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/local-repo/snapshot-test/jars/maven-snapshot-a-1.0-SNAPSHOT.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/local-repo/snapshot-test/jars/maven-snapshot-a-1.0-SNAPSHOT.jar.snapshot-version
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/local-repo/snapshot-test/jars/maven-snapshot-b-1.0-SNAPSHOT.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/local-repo/snapshot-test/jars/maven-snapshot-b-1.0-SNAPSHOT.jar.snapshot-version
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/local-repo/snapshot-test/jars/maven-snapshot-e-1.0-SNAPSHOT.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/local-repo/snapshot-test/jars/maven-snapshot-e-1.0-SNAPSHOT.jar.snapshot-version
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/local-repo/snapshot-test/poms/maven-test-snapshot-resolving-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/MavenLifecycleParticipantTest.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/execution/test-extension-1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/junit/junit/3.8.1/junit-3.8.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/junit/junit/3.8.1/junit-3.8.1.jar.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/junit/junit/3.8.1/junit-3.8.1.jar.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/junit/junit/3.8.1/junit-3.8.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/junit/junit/3.8.1/junit-3.8.1.pom.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/junit/junit/3.8.1/junit-3.8.1.pom.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/apache/apache/3/apache-3.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/apache/apache/3/apache-3.pom.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/apache/apache/3/apache-3.pom.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/apache/maven/artifact/maven-artifact/3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/apache/maven/artifact/maven-artifact/3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.jar.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/apache/maven/artifact/maven-artifact/3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.jar.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/apache/maven/artifact/maven-artifact/3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/apache/maven/artifact/maven-artifact/3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.pom.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/apache/maven/artifact/maven-artifact/3.0-SNAPSHOT/maven-artifact-3.0-SNAPSHOT.pom.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/apache/maven/core/test/test-extension/1/test-extension-1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/apache/maven/core/test/test-extension/1/test-extension-1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/apache/maven/core/test/test-extension/1/test-extension-1.pom.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/apache/maven/core/test/test-extension/1/test-extension-1.pom.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/apache/maven/core/test/test-lifecycle-and-artifactHandler/1/test-lifecycle-and-artifactHandler-1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/apache/maven/core/test/test-lifecycle-and-artifactHandler/1/test-lifecycle-and-artifactHandler-1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/apache/maven/core/test/test-lifecycle-and-artifactHandler/1/test-lifecycle-and-artifactHandler-1.pom.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/apache/maven/core/test/test-lifecycle-and-artifactHandler/1/test-lifecycle-and-artifactHandler-1.pom.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/apache/maven/maven-parent/4/maven-parent-4.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/apache/maven/maven-parent/4/maven-parent-4.pom.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/apache/maven/maven-parent/4/maven-parent-4.pom.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/apache/maven/maven-parent/5/maven-parent-5.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/apache/maven/maven-parent/5/maven-parent-5.pom.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/apache/maven/maven-parent/5/maven-parent-5.pom.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.jar.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.jar.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.pom.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.pom.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-active-collections/1.0-beta-1/plexus-active-collections-1.0-beta-1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-active-collections/1.0-beta-1/plexus-active-collections-1.0-beta-1.jar.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-active-collections/1.0-beta-1/plexus-active-collections-1.0-beta-1.jar.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-active-collections/1.0-beta-1/plexus-active-collections-1.0-beta-1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-active-collections/1.0-beta-1/plexus-active-collections-1.0-beta-1.pom.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-active-collections/1.0-beta-1/plexus-active-collections-1.0-beta-1.pom.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-10/plexus-classworlds-1.2-alpha-10.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-10/plexus-classworlds-1.2-alpha-10.jar.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-10/plexus-classworlds-1.2-alpha-10.jar.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-10/plexus-classworlds-1.2-alpha-10.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-10/plexus-classworlds-1.2-alpha-10.pom.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-10/plexus-classworlds-1.2-alpha-10.pom.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.jar.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.jar.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.jar.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.jar.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-32/plexus-component-api-1.0-alpha-32.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-32/plexus-component-api-1.0-alpha-32.jar.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-32/plexus-component-api-1.0-alpha-32.jar.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-32/plexus-component-api-1.0-alpha-32.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-32/plexus-component-api-1.0-alpha-32.pom.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-component-api/1.0-alpha-32/plexus-component-api-1.0-alpha-32.pom.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-components/1.1.6/plexus-components-1.1.6.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-components/1.1.6/plexus-components-1.1.6.pom.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-components/1.1.6/plexus-components-1.1.6.pom.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-16/plexus-container-default-1.0-alpha-16.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-16/plexus-container-default-1.0-alpha-16.jar.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-16/plexus-container-default-1.0-alpha-16.jar.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-16/plexus-container-default-1.0-alpha-16.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-16/plexus-container-default-1.0-alpha-16.pom.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-16/plexus-container-default-1.0-alpha-16.pom.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-32/plexus-container-default-1.0-alpha-32.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-32/plexus-container-default-1.0-alpha-32.jar.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-32/plexus-container-default-1.0-alpha-32.jar.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-32/plexus-container-default-1.0-alpha-32.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-32/plexus-container-default-1.0-alpha-32.pom.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-container-default/1.0-alpha-32/plexus-container-default-1.0-alpha-32.pom.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-containers/1.0-alpha-32/plexus-containers-1.0-alpha-32.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-containers/1.0-alpha-32/plexus-containers-1.0-alpha-32.pom.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-containers/1.0-alpha-32/plexus-containers-1.0-alpha-32.pom.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.jar.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.jar.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/extension/test-extension-repo/repo-marker.txt
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/lifecycle/LifecycleExecutorTest.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/lifecycle/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/plugin/PluginManagerTest.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/project/AbstractMavenProjectTestCase.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/project/PomConstructionTest.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/project/workspace/buildFromFile/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/project/workspace/buildFromRepo/tests/project-caching/1/project-caching-1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/project/workspace/buildFromRepo/tests/project-caching/maven-metadata-local.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/project/workspace/buildModelLineage/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/project/workspace/resolveParentPom/childAndParent/child/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/project/workspace/resolveParentPom/childAndParent/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/project/workspace/resolveParentPom/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/settings/PomConstructionWithSettingsTest.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/toolchain/global.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/toolchain/model/toolchains-jdks-extend.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/toolchain/model/toolchains-jdks-extra.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/toolchain/model/toolchains-jdks.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/apache/maven/toolchain/user.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom.sha1
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/project-dynamism/plugin-level-dep.pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/project-dynamism/pom-interp.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/project-dynamism/pom-relative.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/project-dynamism/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/projects/bad-dependency.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/projects/bad-project.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/projects/base-directory-alignment/project-which-needs-directory-alignment-child.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/projects/base-directory-alignment/project-which-needs-directory-alignment.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/projects/base-directory-alignment/subproject/project-which-needs-directory-alignment-child.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/projects/build-path-expression-pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/projects/build.properties
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/projects/child-which-inherits-from-super-model.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/projects/child-with-bogus-parent.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/projects/child.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/projects/duplicate-plugins-merged-pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/projects/fully-populated-child.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/projects/grandchild-check/child/grandchild/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/projects/grandchild-check/child/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/projects/grandchild-check/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/projects/import-scope-pom-resolves-from-property-based-repository.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/projects/modelsource/module01/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/projects/modelsource/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/projects/project.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/projects/versionless-managed-dependency.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/remote-repo-1/maven-test/jars/maven-test-b-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/remote-repo-1/maven-test/jars/maven-test-b-1.0.jar.md5
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/remote-repo-1/maven-test/poms/maven-test-b-1.0.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/remote-repo-1/snapshot-test/jars/maven-snapshot-a-1.0-SNAPSHOT.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/remote-repo-1/snapshot-test/jars/maven-snapshot-a-1.0-SNAPSHOT.jar.snapshot-version
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/remote-repo-1/snapshot-test/jars/maven-snapshot-b-1.0-SNAPSHOT.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/remote-repo-1/snapshot-test/jars/maven-snapshot-b-1.0-SNAPSHOT.jar.snapshot-version
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/remote-repo-1/snapshot-test/jars/maven-snapshot-c-1.0-SNAPSHOT.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/remote-repo-1/snapshot-test/jars/maven-snapshot-c-1.0-SNAPSHOT.jar.snapshot-version
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/remote-repo-2/maven-test/jars/maven-test-z-1.0.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-core/src/test/resources/withActiveByDefaultProfile-pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/examples/simple-project/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/examples/simple-project/settings.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/examples/simple-project/src/main/java/org/apache/maven/embedder/App.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/examples/simple-project/src/test/java/org/apache/maven/embedder/AppTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/main/java/org/apache/maven/cli/CLIReportingUtils.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/main/java/org/apache/maven/cli/CliRequest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/main/java/org/apache/maven/cli/configuration/ConfigurationProcessor.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/main/java/org/apache/maven/cli/configuration/SettingsXmlConfigurationProcessor.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/main/java/org/apache/maven/cli/event/DefaultEventSpyContext.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/main/java/org/apache/maven/cli/internal/BootstrapCoreExtensionManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/main/java/org/apache/maven/cli/logging/BaseSlf4jConfiguration.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/main/java/org/apache/maven/cli/logging/Slf4jConfiguration.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/main/java/org/apache/maven/cli/logging/Slf4jConfigurationFactory.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/main/java/org/apache/maven/cli/logging/Slf4jLogger.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/main/java/org/apache/maven/cli/logging/Slf4jLoggerManager.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/main/java/org/apache/maven/cli/logging/Slf4jStdoutLogger.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/Log4j2Configuration.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/LogbackConfiguration.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/Slf4jSimpleConfiguration.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/main/java/org/apache/maven/cli/logging/impl/UnsupportedSlf4jBindingConfiguration.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/main/java/org/apache/maven/cli/transfer/AbstractMavenTransferListener.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/main/java/org/apache/maven/cli/transfer/BatchModeMavenTransferListener.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/main/java/org/apache/maven/cli/transfer/ConsoleMavenTransferListener.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/main/java/org/apache/maven/cli/transfer/QuietMavenTransferListener.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/main/java/org/apache/maven/cli/transfer/Slf4jMavenTransferListener.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/main/java/org/slf4j/MavenSlf4jFriend.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/main/java/org/slf4j/impl/MavenSlf4jSimpleFriend.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/main/mdo/core-extensions.mdo
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/main/resources/META-INF/MANIFEST.MF
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/main/resources/META-INF/maven/slf4j-configuration.properties
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/site/apt/cli.apt.vm
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/site/apt/index.apt.vm
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/site/apt/logging.apt
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/site/site.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/embedder-test-project/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/embedder-test-project/src/main/java/org/apache/maven/App.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/embedder-test-project/src/test/java/org/apache/maven/AppTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/aggregate-mojo-failure/plugin/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/aggregate-mojo-failure/plugin/src/main/java/org/plugin/TestPlugin.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/aggregate-mojo-failure/project/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/bad-build-plan/plugin/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/bad-build-plan/plugin/src/main/java/org/plugin/TestPlugin.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/bad-build-plan/project/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/bad-dep-version/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/bad-ext-direct-deps/local-repo/org/apache/maven/errortest/test-maven-ext/1/test-maven-ext-1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/bad-ext-direct-deps/project/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/bad-ext-plugin-dep-ver/local-repo/org/apache/maven/errortest/bad-ext-plugin-dep-ver-maven-plugin/1/bad-ext-plugin-dep-ver-maven-plugin-1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/bad-ext-plugin-dep-ver/local-repo/org/apache/maven/errortest/bad-ext-plugin-dep-ver-maven-plugin/1/bad-ext-plugin-dep-ver-maven-plugin-1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/bad-ext-plugin-dep-ver/plugin/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/bad-ext-plugin-dep-ver/plugin/src/main/java/org/plugin/TestPlugin.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/bad-ext-plugin-dep-ver/project/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/bad-ext-plugin-maven-ver/local-repo/org/apache/maven/errortest/bad-ext-plugin-maven-ver-maven-plugin/1/bad-ext-plugin-maven-ver-maven-plugin-1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/bad-ext-plugin-maven-ver/local-repo/org/apache/maven/errortest/bad-ext-plugin-maven-ver-maven-plugin/1/bad-ext-plugin-maven-ver-maven-plugin-1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/bad-ext-plugin-maven-ver/local-repo/org/apache/maven/errortest/bad-ext-plugin-maven-ver-maven-plugin/maven-metadata-local.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/bad-ext-plugin-maven-ver/plugin/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/bad-ext-plugin-maven-ver/plugin/src/main/java/org/plugin/TestPlugin.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/bad-ext-plugin-maven-ver/project/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/bad-maven-version/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/bad-mg-dep-version/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/bad-non-dep-version/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/bad-profile-repo/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/bad-profile-repo/profiles.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/config-rdonly-mojo-param/plugin/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/config-rdonly-mojo-param/plugin/src/main/java/org/plugin/TestPlugin.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/config-rdonly-mojo-param/project/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/deploy-repo-creation-err/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/duplicated-attachments/plugin/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/duplicated-attachments/plugin/src/main/java/org/plugin/TestPlugin.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/duplicated-attachments/project/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/err-loading-plugin/local-repo/org/apache/maven/errortest/err-loading-plugin-maven-plugin/1/err-loading-plugin-maven-plugin-1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/err-loading-plugin/local-repo/org/apache/maven/errortest/err-loading-plugin-maven-plugin/1/err-loading-plugin-maven-plugin-1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/err-loading-plugin/project/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/err-resolving-ext-plugin/local-repo/org/apache/maven/errortest/dep/1/dep-1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/err-resolving-ext-plugin/local-repo/org/apache/maven/errortest/err-resolving-ext-plugin-maven-plugin/1/err-resolving-ext-plugin-maven-plugin-1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/err-resolving-ext-plugin/local-repo/org/apache/maven/errortest/err-resolving-ext-plugin-maven-plugin/1/err-resolving-ext-plugin-maven-plugin-1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/err-resolving-ext-plugin/project/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/err-resolving-project-dep/project/local-repo/org/apache/maven/errortest/dep/1/dep-1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/err-resolving-project-dep/project/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/err-resolving-project-dep/project/src/main/java/org/apache/maven/test/error/mojoFailure/App.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/err-resolving-project-dep/project/src/test/java/org/apache/maven/test/error/mojoFailure/AppTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/ext-deps-resolve-err/local-repo/org/apache/maven/errortest/test-maven-ext-dep/1/test-maven-ext-dep-1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/ext-deps-resolve-err/local-repo/org/apache/maven/errortest/test-maven-ext/1/test-maven-ext-1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/ext-deps-resolve-err/project/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/ext-plugin-artifact-missing/local-repo/org/apache/maven/errortest/ext-plugin-artifact-missing-maven-plugin/1/ext-plugin-artifact-missing-maven-plugin-1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/ext-plugin-artifact-missing/project/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/ext-plugin-realm-error/plugin/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/ext-plugin-realm-error/plugin/src/main/java/org/plugin/ComponentOne.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/ext-plugin-realm-error/plugin/src/main/java/org/plugin/ComponentTwo.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/ext-plugin-realm-error/plugin/src/main/java/org/plugin/TestPlugin.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/ext-plugin-realm-error/plugin/src/main/resources/META-INF/plexus/components.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/ext-plugin-realm-error/project/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/ext-plugin-version-err/local-repo/org/apache/maven/errortest/ext-plugin-version-err-maven-plugin/1/ext-plugin-version-err-maven-plugin-1.jar
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/ext-plugin-version-err/local-repo/org/apache/maven/errortest/ext-plugin-version-err-maven-plugin/1/ext-plugin-version-err-maven-plugin-1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/ext-plugin-version-err/local-repo/org/apache/maven/errortest/ext-plugin-version-err-maven-plugin/maven-metadata-local.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/ext-plugin-version-err/plugin/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/ext-plugin-version-err/plugin/src/main/java/org/plugin/TestPlugin.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/ext-plugin-version-err/project/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/ext-realm-error/ext/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/ext-realm-error/ext/src/main/java/org/ext/App.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/ext-realm-error/ext/src/main/resources/META-INF/plexus/components.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/ext-realm-error/project/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/interp-from-model/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/interp-from-project/project/local-repo/org/test/bad-pom/1/bad-pom-1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/interp-from-project/project/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/load-extern-profiles-ioex/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/load-extern-profiles-xex/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/load-extern-profiles-xex/profiles.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/missing-direct-invoke-mojo/plugin/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/missing-direct-invoke-mojo/plugin/src/main/java/org/plugin/TestPlugin.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/missing-module-pom/child1/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/missing-module-pom/child1/src/main/java/org/test/App.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/missing-module-pom/child1/src/test/java/org/test/AppTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/missing-module-pom/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/missing-parent-pom/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/missing-req-mojo-param/plugin/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/missing-req-mojo-param/plugin/src/main/java/org/plugin/TestPlugin.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/missing-req-mojo-param/project/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/mojo-config-error/plugin/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/mojo-config-error/plugin/src/main/java/org/plugin/TestPlugin.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/mojo-config-error/plugin/src/main/resources/META-INF/maven/plugin.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/mojo-config-error/project/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/mojo-exec-err/plugin/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/mojo-exec-err/plugin/src/main/java/org/plugin/TestPlugin.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/mojo-exec-err/project/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/mojo-lookup-err/plugin/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/mojo-lookup-err/plugin/src/main/java/org/plugin/TestPlugin.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/mojo-lookup-err/project/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/parent-parse-ioex/child/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/parent-parse-ioex/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/parent-parse-xex/child/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/parent-parse-xex/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/profile-activator-err/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/profile-activator-lookup-err/ext/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/profile-activator-lookup-err/ext/src/main/java/org/ext/App.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/profile-activator-lookup-err/ext/src/main/resources/META-INF/plexus/components.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/profile-activator-lookup-err/project/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/project-collision/mod1/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/project-collision/mod2/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/project-collision/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/project-cycle/dep/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/project-cycle/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/project-dep-missing/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/project-dep-missing/src/main/java/org/apache/maven/test/error/mojoFailure/App.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/project-dep-missing/src/test/java/org/apache/maven/test/error/mojoFailure/AppTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/project-mojo-failure/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/project-mojo-failure/src/main/java/org/apache/maven/test/error/mojoFailure/App.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/project-mojo-failure/src/test/java/org/apache/maven/test/error/mojoFailure/AppTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/project-parse-xex/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/project-validation/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/error-reporting-projects/repo-creation-err/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/eventing-projects/read-with-deps/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/eventing-projects/read-with-deps/repo/tests/dep/1/dep-1.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/eventing-projects/simple-read-project/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/extensions/META-INF/plexus/components.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/java/org/apache/maven/cli/CLIManagerTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/java/org/apache/maven/cli/CLIReportingUtilsTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/plugin-version-references/jar-pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/plugin-version-references/maven-plugin-pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/projects/bad-module-non-recursive/badmodule/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/projects/bad-module-non-recursive/goodmodule/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/projects/bad-module-non-recursive/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/projects/config-illegal/.mvn/maven.config
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/projects/config/.mvn/maven.config
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/projects/invalid-goal/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/projects/isolated-project-getting-parent-pom/project/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/projects/isolated-project-getting-parent-pom/project/src/main/java/org/codehaus/m2eclipse/App.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/projects/isolated-project-getting-parent-pom/project/src/test/java/org/codehaus/m2eclipse/AppTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/projects/isolated-project-getting-parent-pom/repository/org/codehaus/m2eclipse/parent/1.0-SNAPSHOT/maven-metadata-company.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/projects/isolated-project-getting-parent-pom/repository/org/codehaus/m2eclipse/parent/1.0-SNAPSHOT/parent-1.0-SNAPSHOT.pom
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/projects/isolated-project-getting-parent-pom/repository/org/codehaus/m2eclipse/parent/maven-metadata-local.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/projects/isolated-project-getting-parent-pom/settings.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/projects/optional-dep/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/projects/readProject-missingModuleIgnored/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/projects/readProject-withScmInheritance/modules/child1/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/projects/readProject-withScmInheritance/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/resources/META-INF/maven/org.apache.maven/maven-core/pom.properties
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/resources/pom-with-distribution-status.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/resources/pom-without-dependencies.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/resources/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/resources/pom2.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/resources/settings/invalid-settings.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-embedder/src/test/resources/settings/valid-settings.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/AbstractModelBuildingListener.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilderFactory.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingEvent.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingResult.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelProblem.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelProblemCollector.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelProcessor.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/FileModelSource.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/FilterModelBuildingRequest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuilder.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingEvent.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingEventCatapult.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingListener.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingRequest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingResult.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelCache.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelCacheTag.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelData.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelProblem.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelProblemCollector.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelProblemCollectorExt.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelProblemCollectorRequest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelProblemUtils.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelProcessor.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelSource.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelSource2.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/Result.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/StringModelSource.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/building/UrlModelSource.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/composition/DefaultDependencyManagementImporter.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/composition/DependencyManagementImporter.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/DefaultInheritanceAssembler.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/InheritanceAssembler.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/AbstractStringBasedModelInterpolator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/BuildTimestampValueSource.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/MavenBuildTimestamp.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/ModelInterpolator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/PathTranslatingPostProcessor.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/ProblemDetectingValueSource.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/StringSearchModelInterpolator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/interpolation/UrlNormalizingPostProcessor.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelReader.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelWriter.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/io/ModelParseException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/io/ModelReader.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/io/ModelWriter.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/locator/DefaultModelLocator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/locator/ModelLocator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultDependencyManagementInjector.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultPluginManagementInjector.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/management/DependencyManagementInjector.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/management/PluginManagementInjector.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/merge/MavenModelMerger.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/normalization/DefaultModelNormalizer.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/normalization/ModelNormalizer.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultModelPathTranslator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultModelUrlNormalizer.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultPathTranslator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/path/DefaultUrlNormalizer.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/path/ModelPathTranslator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/path/ModelUrlNormalizer.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/path/PathTranslator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/path/UrlNormalizer.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultPluginConfigurationExpander.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultReportConfigurationExpander.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/plugin/DefaultReportingConverter.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/plugin/LifecycleBindingsInjector.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/plugin/PluginConfigurationExpander.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/plugin/ReportConfigurationExpander.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/plugin/ReportingConverter.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileActivationContext.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileInjector.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/profile/DefaultProfileSelector.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/profile/ProfileActivationContext.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/profile/ProfileInjector.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/profile/ProfileSelector.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/FileProfileActivator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/JdkVersionProfileActivator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/OperatingSystemProfileActivator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/ProfileActivator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/profile/activation/PropertyProfileActivator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/resolution/InvalidRepositoryException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/resolution/ModelResolver.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/resolution/UnresolvableModelException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/resolution/WorkspaceModelResolver.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/superpom/DefaultSuperPomProvider.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/superpom/SuperPomProvider.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/java/org/apache/maven/model/validation/ModelValidator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/mdo/profiles.mdo
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/main/resources/org/apache/maven/model/pom-4.0.0.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/site/apt/index.apt
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/site/apt/super-pom.apt.vm
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/site/site.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/java/org/apache/maven/model/building/ComplexActivationTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/java/org/apache/maven/model/building/DefaultModelBuilderFactoryTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/java/org/apache/maven/model/building/SimpleProblemCollector.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/java/org/apache/maven/model/inheritance/DefaultInheritanceAssemblerTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/AbstractModelInterpolatorTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/MavenBuildTimestampTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/StringSearchModelInterpolatorTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/java/org/apache/maven/model/path/DefaultUrlNormalizerTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/java/org/apache/maven/model/profile/activation/AbstractProfileActivatorTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/java/org/apache/maven/model/profile/activation/JdkVersionProfileActivatorTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/java/org/apache/maven/model/profile/activation/PropertyProfileActivatorTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/java/org/apache/maven/model/validation/DefaultModelValidatorTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/factory/complex.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/factory/simple.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/inheritance/plugin-configuration-child.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/inheritance/plugin-configuration-expected.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/inheritance/plugin-configuration-parent.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/bad-dependency-exclusion-id.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/bad-dependency-scope.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/bad-dependency-version.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/bad-import-scope-classifier.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/bad-import-scope-type.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/bad-modelVersion.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/bad-plugin-dependency-scope.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/bad-plugin-dependency-version.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/bad-plugin-version.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/bad-repository-id.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/bad-snapshot-version.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/bad-version.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/basedir-system-path.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/distribution-management-status.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/duplicate-module.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/duplicate-plugin-execution.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/duplicate-plugin.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/duplicate-profile-id.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/empty-module.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/empty-plugin-version.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/hard-coded-system-path.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/incomplete-parent.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/invalid-aggregator-packaging-pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/invalid-ids-pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/missing-1-pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/missing-artifactId-pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/missing-dependency-artifactId-pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/missing-dependency-exclusion-id.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/missing-dependency-groupId-pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/missing-dependency-mgmt-artifactId-pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/missing-dependency-mgmt-groupId-pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/missing-dependency-mgmt-version-pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/missing-dependency-version-pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/missing-groupId-pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/missing-modelVersion-pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/missing-plugin-artifactId-pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/missing-plugin-dependency-artifactId.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/missing-plugin-dependency-groupId.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/missing-plugin-dependency-version.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/missing-plugin-version-pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/missing-report-artifactId-pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/missing-report-version-pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/missing-repository-id-pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/missing-resource-directory-pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/missing-type-pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/missing-version-pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model-builder/src/test/resources/poms/validation/reserved-repository-id.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/main/java/org/apache/maven/model/io/xpp3/package-info.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/main/java/org/apache/maven/model/merge/ModelMerger.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/main/java/org/apache/maven/model/merge/package-info.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/main/java/org/apache/maven/model/package-info.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/main/mdo/maven.mdo
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/site/apt/index.apt
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/site/site.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/site/xdoc/navigation.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ActivationFileTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ActivationOSTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ActivationPropertyTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ActivationTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/BuildTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/CiManagementTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ContributorTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/DependencyManagementTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/DependencyTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/DeploymentRepositoryTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/DeveloperTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/DistributionManagementTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ExclusionTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ExtensionTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/IssueManagementTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/LicenseTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/MailingListTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ModelTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/NotifierTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/OrganizationTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ParentTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/PluginConfigurationTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/PluginContainerTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/PluginExecutionTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/PluginManagementTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/PluginTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/PrerequisitesTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ProfileTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/RelocationTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ReportPluginTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ReportSetTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ReportingTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/RepositoryPolicyTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/RepositoryTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ResourceTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/ScmTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-model/src/test/java/org/apache/maven/model/SiteTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-plugin-api/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-plugin-api/src/main/java/org/apache/maven/monitor/logging/DefaultLog.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-plugin-api/src/main/java/org/apache/maven/plugin/AbstractMojo.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-plugin-api/src/main/java/org/apache/maven/plugin/AbstractMojoExecutionException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-plugin-api/src/main/java/org/apache/maven/plugin/ContextEnabled.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-plugin-api/src/main/java/org/apache/maven/plugin/Mojo.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-plugin-api/src/main/java/org/apache/maven/plugin/MojoExecutionException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-plugin-api/src/main/java/org/apache/maven/plugin/MojoFailureException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-plugin-api/src/main/java/org/apache/maven/plugin/MojoNotFoundException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/DuplicateMojoDescriptorException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/DuplicateParameterException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/InvalidParameterException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/InvalidPluginDescriptorException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/Parameter.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptor.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilder.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/Requirement.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-plugin-api/src/main/java/org/apache/maven/plugin/logging/Log.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-plugin-api/src/main/java/org/apache/maven/plugin/logging/SystemStreamLog.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-plugin-api/src/main/mdo/lifecycle.mdo
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-plugin-api/src/main/mdo/plugin.mdo
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-plugin-api/src/site/apt/index.apt
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-plugin-api/src/site/site.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-plugin-api/src/test/java/org/apache/maven/plugin/descriptor/PluginDescriptorBuilderTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-plugin-api/src/test/java/org/apache/maven/plugin/lifecycle/LifecycleXpp3ReaderTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-plugin-api/src/test/resources/lifecycle.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-plugin-api/src/test/resources/plugin.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-repository-metadata/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-repository-metadata/src/main/mdo/metadata.mdo
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-repository-metadata/src/site/apt/index.apt
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-repository-metadata/src/site/site.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/main/java/org/apache/maven/settings/building/DefaultSettingsBuilder.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/main/java/org/apache/maven/settings/building/DefaultSettingsBuilderFactory.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/main/java/org/apache/maven/settings/building/DefaultSettingsBuildingRequest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/main/java/org/apache/maven/settings/building/DefaultSettingsBuildingResult.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/main/java/org/apache/maven/settings/building/DefaultSettingsProblem.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/main/java/org/apache/maven/settings/building/DefaultSettingsProblemCollector.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/main/java/org/apache/maven/settings/building/FileSettingsSource.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/main/java/org/apache/maven/settings/building/SettingsBuilder.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/main/java/org/apache/maven/settings/building/SettingsBuildingException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/main/java/org/apache/maven/settings/building/SettingsBuildingRequest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/main/java/org/apache/maven/settings/building/SettingsBuildingResult.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/main/java/org/apache/maven/settings/building/SettingsProblem.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/main/java/org/apache/maven/settings/building/SettingsProblemCollector.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/main/java/org/apache/maven/settings/building/SettingsSource.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/main/java/org/apache/maven/settings/building/StringSettingsSource.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/main/java/org/apache/maven/settings/building/UrlSettingsSource.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/main/java/org/apache/maven/settings/crypto/DefaultSettingsDecrypter.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/main/java/org/apache/maven/settings/crypto/DefaultSettingsDecryptionRequest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/main/java/org/apache/maven/settings/crypto/DefaultSettingsDecryptionResult.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/main/java/org/apache/maven/settings/crypto/SettingsDecrypter.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/main/java/org/apache/maven/settings/crypto/SettingsDecryptionRequest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/main/java/org/apache/maven/settings/crypto/SettingsDecryptionResult.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsReader.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsWriter.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/main/java/org/apache/maven/settings/io/SettingsParseException.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/main/java/org/apache/maven/settings/io/SettingsReader.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/main/java/org/apache/maven/settings/io/SettingsWriter.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/main/java/org/apache/maven/settings/merge/MavenSettingsMerger.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/main/java/org/apache/maven/settings/validation/DefaultSettingsValidator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/main/java/org/apache/maven/settings/validation/SettingsValidator.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/site/site.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/test/java/org/apache/maven/settings/building/DefaultSettingsBuilderFactoryTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/test/java/org/apache/maven/settings/validation/DefaultSettingsValidatorTest.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings-builder/src/test/resources/settings/factory/simple.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings/src/main/java/org/apache/maven/settings/RuntimeInfo.java
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings/src/main/mdo/settings.mdo
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings/src/site/apt/index.apt
create mode 100644 framework/src/maven/apache-maven-3.3.3/maven-settings/src/site/site.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/pom.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/src/site/resources/images/maven-deps.png
create mode 100644 framework/src/maven/apache-maven-3.3.3/src/site/site.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/src/site/xdoc/index.xml
create mode 100644 framework/src/maven/apache-maven-3.3.3/src/site/xdoc/maven-deps.odg
(limited to 'framework/src/maven')
diff --git a/framework/src/maven/apache-maven-3.3.3/DEPENDENCIES b/framework/src/maven/apache-maven-3.3.3/DEPENDENCIES
new file mode 100644
index 00000000..434a38eb
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/DEPENDENCIES
@@ -0,0 +1,111 @@
+// ------------------------------------------------------------------
+// Transitive dependencies of this project determined from the
+// maven pom organized by organization.
+// ------------------------------------------------------------------
+
+Apache Maven Distribution
+
+
+From: 'an unknown organization'
+ - AOP alliance (http://aopalliance.sourceforge.net) aopalliance:aopalliance:jar:1.0
+ License: Public Domain
+ - Guava: Google Core Libraries for Java (http://code.google.com/p/guava-libraries/guava) com.google.guava:guava:bundle:18.0
+ License: The Apache Software License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)
+ - JSR-250 Common Annotations for the JavaTM Platform (http://jcp.org/aboutJava/communityprocess/final/jsr250/index.html) javax.annotation:jsr250-api:jar:1.0
+ License: COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0 (https://glassfish.dev.java.net/public/CDDLv1.0.html)
+ - javax.inject (http://code.google.com/p/atinject/) javax.inject:javax.inject:jar:1
+ License: The Apache Software License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)
+ - Plexus Cipher: encryption/decryption Component (http://spice.sonatype.org/plexus-cipher) org.sonatype.plexus:plexus-cipher:jar:1.7
+ License: Apache Public License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)
+ - Plexus Security Dispatcher Component (http://spice.sonatype.org/plexus-sec-dispatcher) org.sonatype.plexus:plexus-sec-dispatcher:jar:1.3
+ License: Apache Public License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)
+
+From: 'Codehaus' (http://www.codehaus.org/)
+ - Plexus Classworlds (http://plexus.codehaus.org/plexus-classworlds/) org.codehaus.plexus:plexus-classworlds:bundle:2.5.2
+ License: The Apache Software License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)
+ - Plexus :: Component Annotations (http://plexus.codehaus.org/plexus-containers/plexus-component-annotations/) org.codehaus.plexus:plexus-component-annotations:jar:1.5.5
+ License: The Apache Software License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)
+ - Plexus Interpolation API (http://plexus.codehaus.org/plexus-components/plexus-interpolation) org.codehaus.plexus:plexus-interpolation:jar:1.21
+ License: The Apache Software License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)
+ - Plexus Common Utilities (http://plexus.codehaus.org/plexus-utils) org.codehaus.plexus:plexus-utils:jar:3.0.20
+ License: The Apache Software License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+From: 'Google, Inc.' (http://www.google.com)
+ - Sisu Guice - Core Library (https://github.com/google/guice/sisu-guice) org.sonatype.sisu:sisu-guice:jar:3.2.5
+ License: The Apache Software License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+From: 'Jonathan Hedley' (http://jonathanhedley.com/)
+ - jsoup (http://jsoup.org/) org.jsoup:jsoup:jar:1.7.2
+ License: The MIT License (http://jsoup.com/license)
+
+From: 'QOS.ch' (http://www.qos.ch)
+ - SLF4J API Module (http://www.slf4j.org) org.slf4j:slf4j-api:jar:1.7.5
+ License: MIT License (http://www.opensource.org/licenses/mit-license.php)
+ - SLF4J Simple Binding (http://www.slf4j.org) org.slf4j:slf4j-simple:jar:1.7.5
+ License: MIT License (http://www.opensource.org/licenses/mit-license.php)
+
+From: 'Seam Framework' (http://seamframework.org)
+ - CDI APIs (http://www.seamframework.org/Weld/cdi-api) javax.enterprise:cdi-api:jar:1.0
+ License: Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0)
+
+From: 'The Apache Software Foundation' (http://www.apache.org/)
+ - Commons CLI (http://commons.apache.org/cli/) commons-cli:commons-cli:jar:1.2
+ License: The Apache Software License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)
+ - Commons IO (http://commons.apache.org/io/) commons-io:commons-io:jar:2.2
+ License: The Apache Software License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)
+ - Commons Lang (http://commons.apache.org/lang/) commons-lang:commons-lang:jar:2.6
+ License: The Apache Software License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)
+ - Maven Aether Provider (http://maven.apache.org/ref/3.3.3/maven-aether-provider) org.apache.maven:maven-aether-provider:jar:3.3.3
+ License: Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)
+ - Maven Artifact (http://maven.apache.org/ref/3.3.3/maven-artifact) org.apache.maven:maven-artifact:jar:3.3.3
+ License: Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)
+ - Maven Builder Support (http://maven.apache.org/ref/3.3.3/maven-builder-support) org.apache.maven:maven-builder-support:jar:3.3.3
+ License: Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)
+ - Maven Compat (http://maven.apache.org/ref/3.3.3/maven-compat) org.apache.maven:maven-compat:jar:3.3.3
+ License: Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)
+ - Maven Core (http://maven.apache.org/ref/3.3.3/maven-core) org.apache.maven:maven-core:jar:3.3.3
+ License: Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)
+ - Maven Embedder (http://maven.apache.org/ref/3.3.3/maven-embedder) org.apache.maven:maven-embedder:jar:3.3.3
+ License: Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)
+ - Maven Model (http://maven.apache.org/ref/3.3.3/maven-model) org.apache.maven:maven-model:jar:3.3.3
+ License: Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)
+ - Maven Model Builder (http://maven.apache.org/ref/3.3.3/maven-model-builder) org.apache.maven:maven-model-builder:jar:3.3.3
+ License: Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)
+ - Maven Plugin API (http://maven.apache.org/ref/3.3.3/maven-plugin-api) org.apache.maven:maven-plugin-api:jar:3.3.3
+ License: Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)
+ - Maven Repository Metadata Model (http://maven.apache.org/ref/3.3.3/maven-repository-metadata) org.apache.maven:maven-repository-metadata:jar:3.3.3
+ License: Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)
+ - Maven Settings (http://maven.apache.org/ref/3.3.3/maven-settings) org.apache.maven:maven-settings:jar:3.3.3
+ License: Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)
+ - Maven Settings Builder (http://maven.apache.org/ref/3.3.3/maven-settings-builder) org.apache.maven:maven-settings-builder:jar:3.3.3
+ License: Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)
+ - Apache Maven Wagon :: Providers :: File Provider (http://maven.apache.org/wagon/wagon-providers/wagon-file) org.apache.maven.wagon:wagon-file:jar:2.9
+ License: Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)
+ - Apache Maven Wagon :: Providers :: HTTP Provider (http://maven.apache.org/wagon/wagon-providers/wagon-http) org.apache.maven.wagon:wagon-http:jar:2.9
+ License: Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)
+ - Apache Maven Wagon :: Providers :: HTTP Shared Library (http://maven.apache.org/wagon/wagon-providers/wagon-http-shared) org.apache.maven.wagon:wagon-http-shared:jar:2.9
+ License: Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)
+ - Apache Maven Wagon :: API (http://maven.apache.org/wagon/wagon-provider-api) org.apache.maven.wagon:wagon-provider-api:jar:2.9
+ License: Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+From: 'The Eclipse Foundation' (http://www.eclipse.org/)
+ - Aether API (http://www.eclipse.org/aether/aether-api/) org.eclipse.aether:aether-api:jar:1.0.2.v20150114
+ License: Eclipse Public License, Version 1.0 (http://www.eclipse.org/legal/epl-v10.html)
+ - Aether Connector Basic (http://www.eclipse.org/aether/aether-connector-basic/) org.eclipse.aether:aether-connector-basic:jar:1.0.2.v20150114
+ License: Eclipse Public License, Version 1.0 (http://www.eclipse.org/legal/epl-v10.html)
+ - Aether Implementation (http://www.eclipse.org/aether/aether-impl/) org.eclipse.aether:aether-impl:jar:1.0.2.v20150114
+ License: Eclipse Public License, Version 1.0 (http://www.eclipse.org/legal/epl-v10.html)
+ - Aether SPI (http://www.eclipse.org/aether/aether-spi/) org.eclipse.aether:aether-spi:jar:1.0.2.v20150114
+ License: Eclipse Public License, Version 1.0 (http://www.eclipse.org/legal/epl-v10.html)
+ - Aether Transport Wagon (http://www.eclipse.org/aether/aether-transport-wagon/) org.eclipse.aether:aether-transport-wagon:jar:1.0.2.v20150114
+ License: Eclipse Public License, Version 1.0 (http://www.eclipse.org/legal/epl-v10.html)
+ - Aether Utilities (http://www.eclipse.org/aether/aether-util/) org.eclipse.aether:aether-util:jar:1.0.2.v20150114
+ License: Eclipse Public License, Version 1.0 (http://www.eclipse.org/legal/epl-v10.html)
+ - org.eclipse.sisu.inject (http://www.eclipse.org/sisu/org.eclipse.sisu.inject/) org.eclipse.sisu:org.eclipse.sisu.inject:eclipse-plugin:0.3.0
+ License: Eclipse Public License, Version 1.0 (http://www.eclipse.org/legal/epl-v10.html)
+ - org.eclipse.sisu.plexus (http://www.eclipse.org/sisu/org.eclipse.sisu.plexus/) org.eclipse.sisu:org.eclipse.sisu.plexus:eclipse-plugin:0.3.0
+ License: Eclipse Public License, Version 1.0 (http://www.eclipse.org/legal/epl-v10.html)
+
+
+
+
diff --git a/framework/src/maven/apache-maven-3.3.3/LICENSE b/framework/src/maven/apache-maven-3.3.3/LICENSE
new file mode 100644
index 00000000..d6456956
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/LICENSE
@@ -0,0 +1,202 @@
+
+ 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.
diff --git a/framework/src/maven/apache-maven-3.3.3/NOTICE b/framework/src/maven/apache-maven-3.3.3/NOTICE
new file mode 100644
index 00000000..9485054b
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/NOTICE
@@ -0,0 +1,5 @@
+Apache Maven
+Copyright 2001-2015 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
diff --git a/framework/src/maven/apache-maven-3.3.3/README.md b/framework/src/maven/apache-maven-3.3.3/README.md
new file mode 100644
index 00000000..b030c448
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/README.md
@@ -0,0 +1,23 @@
+# Maven
+
+Maven is available under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt)
+
+- [Maven Issue Tracker](http://jira.codehaus.org/browse/MNG)
+- [Maven Wiki](https://cwiki.apache.org/confluence/display/MAVEN/Index)
+- [Building Maven](http://maven.apache.org/guides/development/guide-building-m2.html)
+- [Running Core ITs](http://maven.apache.org/core-its/core-it-suite/)
+
+## Bootstrapping Basics
+
+If you want to bootstrap Maven, you'll need:
+
+- Java 1.7+
+- Ant 1.8 or later
+
+Run Ant, specifying a location into which the completed Maven distro should be installed:
+
+```
+ant -Dmaven.home="$HOME/apps/maven/apache-maven-3.3.x-SNAPSHOT"
+```
+
+Once the build completes, you should have a new Maven distro ready to roll in that directory!
diff --git a/framework/src/maven/apache-maven-3.3.3/apache-maven/README.txt b/framework/src/maven/apache-maven-3.3.3/apache-maven/README.txt
new file mode 100644
index 00000000..b05080d6
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/apache-maven/README.txt
@@ -0,0 +1,79 @@
+
+ Apache Maven
+
+ What is it?
+ -----------
+
+ 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.
+
+ Documentation
+ -------------
+
+ The most up-to-date documentation can be found at http://maven.apache.org/.
+
+ Release Notes
+ -------------
+
+ The full list of changes can be found at http://maven.apache.org/release-notes.html.
+
+ System Requirements
+ -------------------
+
+ JDK:
+ 1.7 or above (this is to execute Maven - it still allows you to build against 1.3
+ and prior JDK's).
+ Memory:
+ No minimum requirement.
+ Disk:
+ Approximately 10MB is required for the Maven installation itself. In addition to
+ that, additional disk space will be used for your local Maven repository. The size
+ of your local repository will vary depending on usage but expect at least 500MB.
+ Operating System:
+ Windows:
+ Windows 2000 or above.
+ Unix based systems (Linux, Solaris and Mac OS X) and others:
+ No minimum requirement.
+
+ Installing Maven
+ ----------------
+
+ 1) Unpack the archive where you would like to store the binaries, eg:
+
+ Unix-based operating systems (Linux, Solaris and Mac OS X)
+ tar zxvf apache-maven-3.x.y.tar.gz
+ Windows
+ unzip apache-maven-3.x.y.zip
+
+ 2) A directory called "apache-maven-3.x.y" will be created.
+
+ 3) Add the bin directory to your PATH, eg:
+
+ Unix-based operating systems (Linux, Solaris and Mac OS X)
+ export PATH=/usr/local/apache-maven-3.x.y/bin:$PATH
+ Windows
+ set PATH="c:\program files\apache-maven-3.x.y\bin";%PATH%
+
+ 4) Make sure JAVA_HOME is set to the location of your JDK
+
+ 5) Run "mvn --version" to verify that it is correctly installed.
+
+ For complete documentation, see http://maven.apache.org/download.html#Installation
+
+ Licensing
+ ---------
+
+ Please see the file called LICENSE.
+
+ Maven URLS
+ ----------
+
+ Home Page: http://maven.apache.org/
+ Downloads: http://maven.apache.org/download.html
+ Release Notes: http://maven.apache.org/release-notes.html
+ Mailing Lists: http://maven.apache.org/mail-lists.html
+ Source Code: https://git-wip-us.apache.org/repos/asf/maven.git/apache-maven
+ Issue Tracking: http://jira.codehaus.org/browse/MNG
+ Wiki: https://cwiki.apache.org/confluence/display/MAVEN/
+ Available Plugins: http://maven.apache.org/plugins/index.html
diff --git a/framework/src/maven/apache-maven-3.3.3/apache-maven/pom.xml b/framework/src/maven/apache-maven-3.3.3/apache-maven/pom.xml
new file mode 100644
index 00000000..89a41833
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/apache-maven/pom.xml
@@ -0,0 +1,216 @@
+
+
+
+
+
+ 4.0.0
+
+
+ org.apache.maven
+ maven
+ 3.3.3
+
+
+ apache-maven
+ pom
+
+ Apache Maven Distribution
+ The Apache Maven distribution, source and binary, in zip and tar.gz formats.
+
+
+ ${distributionId}-${project.version}
+
+
+
+ scm:git:https://git-wip-us.apache.org/repos/asf/maven.git
+ scm:git:https://git-wip-us.apache.org/repos/asf/maven.git
+ maven-3.3.3
+
+
+
+
+ org.apache.maven
+ maven-embedder
+
+
+ org.apache.maven
+ maven-core
+
+
+ org.apache.maven
+ maven-compat
+
+
+ org.eclipse.sisu
+ org.eclipse.sisu.plexus
+
+
+
+ commons-cli
+ commons-cli
+
+
+ org.apache.maven.wagon
+ wagon-http
+ shaded
+
+
+ org.apache.maven.wagon
+ wagon-http-shared4
+
+
+ org.apache.httpcomponents
+ httpclient
+
+
+ org.apache.httpcomponents
+ httpcore
+
+
+
+
+ org.apache.maven.wagon
+ wagon-file
+
+
+ org.eclipse.aether
+ aether-connector-basic
+
+
+ org.eclipse.aether
+ aether-transport-wagon
+
+
+ org.slf4j
+ slf4j-simple
+
+
+
+
+ ${distributionFileName}
+
+
+
+ org.apache.maven.plugins
+ maven-remote-resources-plugin
+ 1.5
+
+
+ org.apache.rat
+ apache-rat-plugin
+
+
+ src/bin/m2.conf
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+
+ test-compile
+
+ testCompile
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+
+ basedir
+ ${basedir}
+
+
+
+
+
+ test
+
+ test
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+ create-distro
+ package
+
+ single
+
+
+
+ src/main/assembly/bin.xml
+
+
+
+
+
+
+
+
+
+
+ apache.snapshots
+ http://repository.apache.org/snapshots/
+
+ true
+
+
+ false
+
+
+
+
+
+
+ apache-release
+
+
+
+ maven-assembly-plugin
+
+
+ make-src-assembly
+ package
+
+ single
+
+
+
+ src/main/assembly/src.xml
+
+ gnu
+
+
+
+
+
+
+
+
+
diff --git a/framework/src/maven/apache-maven-3.3.3/apache-maven/src/bin/m2.conf b/framework/src/maven/apache-maven-3.3.3/apache-maven/src/bin/m2.conf
new file mode 100644
index 00000000..2991e0b3
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/apache-maven/src/bin/m2.conf
@@ -0,0 +1,8 @@
+main is org.apache.maven.cli.MavenCli from plexus.core
+
+set maven.home default ${user.home}/m2
+
+[plexus.core]
+optionally ${maven.home}/lib/ext/*.jar
+load ${maven.home}/lib/*.jar
+load ${maven.home}/conf/logging
diff --git a/framework/src/maven/apache-maven-3.3.3/apache-maven/src/bin/mvn b/framework/src/maven/apache-maven-3.3.3/apache-maven/src/bin/mvn
new file mode 100755
index 00000000..902de4af
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/apache-maven/src/bin/mvn
@@ -0,0 +1,232 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven2 Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+# JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+# M2_HOME - location of maven2's installed home dir
+# MAVEN_OPTS - parameters passed to the Java VM when running Maven
+# e.g. to debug Maven itself, use
+# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+ if [ -f /etc/mavenrc ] ; then
+ . /etc/mavenrc
+ fi
+
+ if [ -f "$HOME/.mavenrc" ] ; then
+ . "$HOME/.mavenrc"
+ fi
+
+fi
+
+# OS specific support. $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "`uname`" in
+ CYGWIN*) cygwin=true ;;
+ MINGW*) mingw=true;;
+ Darwin*) darwin=true
+ #
+ # Look for the Apple JDKs first to preserve the existing behaviour, and then look
+ # for the new JDKs provided by Oracle.
+ #
+ if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK ] ; then
+ #
+ # Apple JDKs
+ #
+ export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
+ fi
+
+ if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Java/JavaVirtualMachines/CurrentJDK ] ; then
+ #
+ # Apple JDKs
+ #
+ export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home
+ fi
+
+ if [ -z "$JAVA_HOME" ] && [ -L "/Library/Java/JavaVirtualMachines/CurrentJDK" ] ; then
+ #
+ # Oracle JDKs
+ #
+ export JAVA_HOME=/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home
+ fi
+
+ if [ -z "$JAVA_HOME" ] && [ -x "/usr/libexec/java_home" ]; then
+ #
+ # Apple JDKs
+ #
+ export JAVA_HOME=`/usr/libexec/java_home`
+ fi
+ ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+ if [ -r /etc/gentoo-release ] ; then
+ JAVA_HOME=`java-config --jre-home`
+ fi
+fi
+
+if [ -z "$M2_HOME" ] ; then
+ ## resolve links - $0 may be a link to maven's home
+ PRG="$0"
+
+ # need this for relative symlinks
+ while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG="`dirname "$PRG"`/$link"
+ fi
+ done
+
+ saveddir=`pwd`
+
+ M2_HOME=`dirname "$PRG"`/..
+
+ # make it fully qualified
+ M2_HOME=`cd "$M2_HOME" && pwd`
+
+ cd "$saveddir"
+ # echo Using m2 at $M2_HOME
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+ [ -n "$M2_HOME" ] &&
+ M2_HOME=`cygpath --unix "$M2_HOME"`
+ [ -n "$JAVA_HOME" ] &&
+ JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+ [ -n "$CLASSPATH" ] &&
+ CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# For Migwn, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+ [ -n "$M2_HOME" ] &&
+ M2_HOME="`(cd "$M2_HOME"; pwd)`"
+ [ -n "$JAVA_HOME" ] &&
+ JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
+ # TODO classpath?
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+ javaExecutable="`which javac`"
+ if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
+ # readlink(1) is not available as standard on Solaris 10.
+ readLink=`which readlink`
+ if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
+ if $darwin ; then
+ javaHome="`dirname \"$javaExecutable\"`"
+ javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
+ else
+ javaExecutable="`readlink -f \"$javaExecutable\"`"
+ fi
+ javaHome="`dirname \"$javaExecutable\"`"
+ javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+ JAVA_HOME="$javaHome"
+ export JAVA_HOME
+ fi
+ fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+ if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ else
+ JAVACMD="`which java`"
+ fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+ echo "Error: JAVA_HOME is not defined correctly." >&2
+ echo " We cannot execute $JAVACMD" >&2
+ exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+ echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+ [ -n "$M2_HOME" ] &&
+ M2_HOME=`cygpath --path --windows "$M2_HOME"`
+ [ -n "$JAVA_HOME" ] &&
+ JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+ [ -n "$CLASSPATH" ] &&
+ CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+fi
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+ local basedir=$(pwd)
+ local wdir=$(pwd)
+ while [ "$wdir" != '/' ] ; do
+ wdir=$(cd "$wdir/.."; pwd)
+ if [ -d "$wdir"/.mvn ] ; then
+ basedir=$wdir
+ break
+ fi
+ done
+ echo "${basedir}"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+ if [ -f "$1" ]; then
+ echo "$(tr -s '\n' ' ' < "$1")"
+ fi
+}
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)}
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# Provide a "standardized" way to retrieve the CLI args that will
+# work with both Windows and non-Windows executions.
+MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
+export MAVEN_CMD_LINE_ARGS
+
+exec "$JAVACMD" \
+ $MAVEN_OPTS \
+ -classpath "${M2_HOME}"/boot/plexus-classworlds-*.jar \
+ "-Dclassworlds.conf=${M2_HOME}/bin/m2.conf" \
+ "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+ ${CLASSWORLDS_LAUNCHER} "$@"
diff --git a/framework/src/maven/apache-maven-3.3.3/apache-maven/src/bin/mvn.cmd b/framework/src/maven/apache-maven-3.3.3/apache-maven/src/bin/mvn.cmd
new file mode 100644
index 00000000..4fad0939
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/apache-maven/src/bin/mvn.cmd
@@ -0,0 +1,176 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements. See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership. The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License. You may obtain a copy of the License at
+@REM
+@REM http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied. See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven2 Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto chkMHome
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:chkMHome
+if not "%M2_HOME%"=="" goto valMHome
+
+SET "M2_HOME=%~dp0.."
+if not "%M2_HOME%"=="" goto valMHome
+
+echo.
+echo Error: M2_HOME not found in your environment. >&2
+echo Please set the M2_HOME variable in your environment to match the >&2
+echo location of the Maven installation. >&2
+echo.
+goto error
+
+:valMHome
+
+:stripMHome
+if not "_%M2_HOME:~-1%"=="_\" goto checkMCmd
+set "M2_HOME=%M2_HOME:~0,-1%"
+goto stripMHome
+
+:checkMCmd
+if exist "%M2_HOME%\bin\mvn.cmd" goto init
+
+echo.
+echo Error: M2_HOME is set to an invalid directory. >&2
+echo M2_HOME = "%M2_HOME%" >&2
+echo Please set the M2_HOME variable in your environment to match the >&2
+echo location of the Maven installation >&2
+echo.
+goto error
+@REM ==== END VALIDATION ====
+
+:init
+
+set MAVEN_CMD_LINE_ARGS=%*
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+
+for %%i in ("%M2_HOME%"\boot\plexus-classworlds-*) do set CLASSWORLDS_JAR="%%i"
+
+set CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
+
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %CLASSWORLDS_JAR% "-Dclassworlds.conf=%M2_HOME%\bin\m2.conf" "-Dmaven.home=%M2_HOME%" "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %CLASSWORLDS_LAUNCHER% %MAVEN_CMD_LINE_ARGS%
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
+
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
+
+exit /B %ERROR_CODE%
diff --git a/framework/src/maven/apache-maven-3.3.3/apache-maven/src/bin/mvnDebug b/framework/src/maven/apache-maven-3.3.3/apache-maven/src/bin/mvnDebug
new file mode 100755
index 00000000..73905fdf
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/apache-maven/src/bin/mvnDebug
@@ -0,0 +1,41 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven2 Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+# JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+# M2_HOME - location of maven2's installed home dir
+# MAVEN_OPTS - parameters passed to the Java VM when running Maven
+# e.g. to debug Maven itself, use
+# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+MAVEN_DEBUG_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000"
+
+echo Preparing to Execute Maven in Debug Mode
+
+env MAVEN_OPTS="$MAVEN_OPTS $MAVEN_DEBUG_OPTS" $(dirname $0)/mvn "$@"
diff --git a/framework/src/maven/apache-maven-3.3.3/apache-maven/src/bin/mvnDebug.cmd b/framework/src/maven/apache-maven-3.3.3/apache-maven/src/bin/mvnDebug.cmd
new file mode 100644
index 00000000..1f0d3bfb
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/apache-maven/src/bin/mvnDebug.cmd
@@ -0,0 +1,31 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements. See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership. The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License. You may obtain a copy of the License at
+@REM
+@REM http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied. See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven2 Start Up Batch script to run mvn.cmd with the following additional
+@REM Java VM settings:
+@REM
+@REM -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM
+@REM ----------------------------------------------------------------------------
+
+@setlocal
+@set MAVEN_DEBUG_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+
+@call "%~dp0"mvn.cmd %*
diff --git a/framework/src/maven/apache-maven-3.3.3/apache-maven/src/bin/mvnyjp b/framework/src/maven/apache-maven-3.3.3/apache-maven/src/bin/mvnyjp
new file mode 100755
index 00000000..ef4f8e1d
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/apache-maven/src/bin/mvnyjp
@@ -0,0 +1,42 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven2 Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+# JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+# M2_HOME - location of maven2's installed home dir
+# MAVEN_OPTS - parameters passed to the Java VM when running Maven
+# e.g. to debug Maven itself, use
+# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ ! -f "$YJPLIB" ]; then
+ echo "Error: Unable to autodetect the YJP library location. Please set YJPLIB variable" >&2
+ exit 1
+fi
+
+env MAVEN_OPTS="-agentpath:$YJPLIB=onexit=snapshot,onexit=memory,tracing,onlylocal $MAVEN_OPTS" $(dirname $0)/mvn "$@"
diff --git a/framework/src/maven/apache-maven-3.3.3/apache-maven/src/conf/logging/simplelogger.properties b/framework/src/maven/apache-maven-3.3.3/apache-maven/src/conf/logging/simplelogger.properties
new file mode 100644
index 00000000..859ff725
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/apache-maven/src/conf/logging/simplelogger.properties
@@ -0,0 +1,25 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+org.slf4j.simpleLogger.defaultLogLevel=info
+org.slf4j.simpleLogger.showDateTime=false
+org.slf4j.simpleLogger.showThreadName=false
+org.slf4j.simpleLogger.showLogName=false
+org.slf4j.simpleLogger.logFile=System.out
+org.slf4j.simpleLogger.levelInBrackets=true
+org.slf4j.simpleLogger.log.Sisu=info
+org.slf4j.simpleLogger.warnLevelString=WARNING
\ No newline at end of file
diff --git a/framework/src/maven/apache-maven-3.3.3/apache-maven/src/conf/settings.xml b/framework/src/maven/apache-maven-3.3.3/apache-maven/src/conf/settings.xml
new file mode 100644
index 00000000..19d7a977
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/apache-maven/src/conf/settings.xml
@@ -0,0 +1,257 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/framework/src/maven/apache-maven-3.3.3/apache-maven/src/conf/toolchains.xml b/framework/src/maven/apache-maven-3.3.3/apache-maven/src/conf/toolchains.xml
new file mode 100644
index 00000000..aefddd8a
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/apache-maven/src/conf/toolchains.xml
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/framework/src/maven/apache-maven-3.3.3/apache-maven/src/lib/ext/README.txt b/framework/src/maven/apache-maven-3.3.3/apache-maven/src/lib/ext/README.txt
new file mode 100644
index 00000000..5ebe59eb
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/apache-maven/src/lib/ext/README.txt
@@ -0,0 +1,2 @@
+Use this directory to contribute 3rd-party extensions to the Maven core. These extensions can either extend or override
+Maven's default implementation.
diff --git a/framework/src/maven/apache-maven-3.3.3/apache-maven/src/main/appended-resources/META-INF/LICENSE.vm b/framework/src/maven/apache-maven-3.3.3/apache-maven/src/main/appended-resources/META-INF/LICENSE.vm
new file mode 100644
index 00000000..1a462252
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/apache-maven/src/main/appended-resources/META-INF/LICENSE.vm
@@ -0,0 +1,49 @@
+##
+## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements. See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership. The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License. You may obtain a copy of the License at
+##
+## http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied. See the License for the
+## specific language governing permissions and limitations
+## under the License.
+##
+## $Date: 2008-03-09 23:17:06 -0700 (Sun, 09 Mar 2008) $ $Rev: 635446 $
+##
+
+Apache Maven includes a number of components and libraries with separate
+copyright notices and license terms. Your use of those components are
+subject to the terms and conditions of the following licenses.
+
+#set ( $apacheTxt = "The Apache Software License, Version 2.0" )
+
+#foreach ( $project in $projects )
+#foreach ( $license in $project.licenses)
+#if ( ! ($apacheTxt == $license.name) )
+#set ( $artId = $project.artifact.artifactId)
+#set ( $lf = $locator )
+#set ( $url = $license.url )
+## glass fish URL is now invalid, use a fixed one
+#if ($url == "https://glassfish.dev.java.net/public/CDDLv1.0.html")
+#set ( $url = 'https://glassfish.java.net/public/CDDLv1.0.html' )
+#end
+#if ($url)
+#set ( $licFile = 'lib/' + $artId + '.license' )
+#set ( $downloaded = $lf.getResourceAsFile($url, "licenses/${licFile}") )
+#end
+
+$project.name #if ($project.url)($project.url)#end $project.artifact
+ License: $license.name #if ($url) $url ($licFile)#end
+
+#end
+#end
+#end
+
diff --git a/framework/src/maven/apache-maven-3.3.3/apache-maven/src/main/assembly/bin.xml b/framework/src/maven/apache-maven-3.3.3/apache-maven/src/main/assembly/bin.xml
new file mode 100644
index 00000000..ea14a9d8
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/apache-maven/src/main/assembly/bin.xml
@@ -0,0 +1,94 @@
+
+
+
+ bin
+
+ zip
+ tar.gz
+
+
+
+ false
+ boot
+
+ org.codehaus.plexus:plexus-classworlds
+
+
+
+ false
+ lib
+
+ org.codehaus.plexus:plexus-classworlds
+
+
+
+
+
+
+ README*
+
+
+
+ target/maven-shared-archive-resources/META-INF
+ /
+
+ LICENSE
+ NOTICE
+
+
+
+ target/licenses/lib
+ lib
+
+ **
+
+
+
+ src/bin
+ bin
+
+ *.cmd
+ *.conf
+
+ dos
+
+
+ src/bin
+ bin
+
+ m2
+ mvn
+ mvnDebug
+
+ mvnyjp
+
+ unix
+ 0755
+
+
+ src/conf
+ conf
+
+
+ src/lib
+ lib
+
+
+
diff --git a/framework/src/maven/apache-maven-3.3.3/apache-maven/src/main/assembly/src.xml b/framework/src/maven/apache-maven-3.3.3/apache-maven/src/main/assembly/src.xml
new file mode 100644
index 00000000..3bf10e05
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/apache-maven/src/main/assembly/src.xml
@@ -0,0 +1,49 @@
+
+
+
+ src
+
+ zip
+ tar.gz
+
+
+
+ ${project.basedir}/..
+ /
+
+ %regex[(?!((?!target/)[^/]+/)*src/).*target.*]
+ **/*.log
+ **/.gitignore
+ **/.gitattributes
+ init-git-svn.sh
+ **/.repository/**
+
+
+
+ ${project.build.directory}/maven-shared-archive-resources/META-INF
+ /
+
+ DEPENDENCIES
+
+
+
+
+
+
diff --git a/framework/src/maven/apache-maven-3.3.3/apache-maven/src/site/site.xml b/framework/src/maven/apache-maven-3.3.3/apache-maven/src/site/site.xml
new file mode 100644
index 00000000..cd5a7454
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/apache-maven/src/site/site.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/framework/src/maven/apache-maven-3.3.3/apache-maven/src/test/java/org/apache/maven/settings/GlobalSettingsTest.java b/framework/src/maven/apache-maven-3.3.3/apache-maven/src/test/java/org/apache/maven/settings/GlobalSettingsTest.java
new file mode 100644
index 00000000..b728be38
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/apache-maven/src/test/java/org/apache/maven/settings/GlobalSettingsTest.java
@@ -0,0 +1,59 @@
+package org.apache.maven.settings;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.InputStreamReader;
+import java.io.Reader;
+
+import junit.framework.TestCase;
+
+import org.apache.maven.settings.io.xpp3.SettingsXpp3Reader;
+
+/**
+ * Tests that the global settings.xml shipped with the distribution is in good state.
+ *
+ * @author Benjamin Bentmann
+ */
+public class GlobalSettingsTest
+ extends TestCase
+{
+
+ public void testValidGlobalSettings()
+ throws Exception
+ {
+ String basedir = System.getProperty( "basedir", System.getProperty( "user.dir" ) );
+
+ File globalSettingsFile = new File( basedir, "src/conf/settings.xml" );
+ assertTrue( globalSettingsFile.getAbsolutePath(), globalSettingsFile.isFile() );
+
+ Reader reader = new InputStreamReader( new FileInputStream( globalSettingsFile ), "UTF-8" );
+ try
+ {
+ new SettingsXpp3Reader().read( reader );
+ }
+ finally
+ {
+ reader.close();
+ }
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/build.xml b/framework/src/maven/apache-maven-3.3.3/build.xml
new file mode 100644
index 00000000..0442a125
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/build.xml
@@ -0,0 +1,307 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Building ${distributionName} ...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ WARNING:
+The specified target directory
+ ${maven.home}
+already exists. It will be deleted and overwritten by the build.
+Do you want to continue?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ maven.home = ${maven.home}
+ maven.repo.local = ${maven.repo.local}
+ distributionId = ${distributionId}
+ distributionName = ${distributionName}
+ distributionDirectory = ${distributionDirectory}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using plexus version ${pom.properties.plexusVersion}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ version = ${xmlPom.project.version}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+The new Maven distribution was created as part of the MAVEN-COMPILE step, above.
+This goal just validates the presence of that distribution.
+
+
+
+
+
+
+
+
+
+
+ Extracting assembly to ${maven.home} ...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/framework/src/maven/apache-maven-3.3.3/deploySite.sh b/framework/src/maven/apache-maven-3.3.3/deploySite.sh
new file mode 100644
index 00000000..f6c265d7
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/deploySite.sh
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+mvn -Preporting site site:stage $@
+mvn scm-publish:publish-scm $@
diff --git a/framework/src/maven/apache-maven-3.3.3/doap_Maven.rdf b/framework/src/maven/apache-maven-3.3.3/doap_Maven.rdf
new file mode 100644
index 00000000..e574e863
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/doap_Maven.rdf
@@ -0,0 +1,178 @@
+
+
+
+ 2001
+
+ Apache Maven
+
+
+ Maven is a project development management and comprehension tool.
+ Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.
+
+
+
+ Java
+
+
+
+ Latest stable release
+ 2014-12-20
+ 3.2.5
+ http://archive.apache.org/dist/maven/maven-3/3.2.5/binaries/apache-maven-3.2.5-bin.zip
+ http://archive.apache.org/dist/maven/maven-3/3.2.5/binaries/apache-maven-3.2.5-bin.tar.gz
+ http://archive.apache.org/dist/maven/maven-3/3.2.5/source/apache-maven-3.2.5-src.zip
+ http://archive.apache.org/dist/maven/maven-3/3.2.5/source/apache-maven-3.2.5-src.tar.gz
+
+
+
+
+ Apache Maven 3.2.3
+ 2014-08-17
+ 3.2.3
+ http://archive.apache.org/dist/maven/maven-3/3.2.3/binaries/apache-maven-3.2.3-bin.zip
+ http://archive.apache.org/dist/maven/maven-3/3.2.3/binaries/apache-maven-3.2.3-bin.tar.gz
+ http://archive.apache.org/dist/maven/maven-3/3.2.3/source/apache-maven-3.2.3-src.zip
+ http://archive.apache.org/dist/maven/maven-3/3.2.3/source/apache-maven-3.2.3-src.tar.gz
+
+
+
+
+ Apache Maven 3.2.2
+ 2014-06-25
+ 3.2.2
+ http://archive.apache.org/dist/maven/maven-3/3.2.2/binaries/apache-maven-3.2.2-bin.zip
+ http://archive.apache.org/dist/maven/maven-3/3.2.2/binaries/apache-maven-3.2.2-bin.tar.gz
+ http://archive.apache.org/dist/maven/maven-3/3.2.2/source/apache-maven-3.2.2-src.zip
+ http://archive.apache.org/dist/maven/maven-3/3.2.2/source/apache-maven-3.2.2-src.tar.gz
+
+
+
+
+ Apache Maven 3.2.1
+ 2014-02-21
+ 3.2.1
+ http://archive.apache.org/dist/maven/maven-3/3.2.1/binaries/apache-maven-3.2.1-bin.zip
+ http://archive.apache.org/dist/maven/maven-3/3.2.1/binaries/apache-maven-3.2.1-bin.tar.gz
+ http://archive.apache.org/dist/maven/maven-3/3.2.1/source/apache-maven-3.2.1-src.zip
+ http://archive.apache.org/dist/maven/maven-3/3.2.1/source/apache-maven-3.2.1-src.tar.gz
+
+
+
+
+ Apache Maven 3.1.1
+ 2013-10-04
+ 3.1.1
+ http://archive.apache.org/dist/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.zip
+ http://archive.apache.org/dist/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.tar.gz
+ http://archive.apache.org/dist/maven/maven-3/3.1.1/source/apache-maven-3.1.1-src.zip
+ http://archive.apache.org/dist/maven/maven-3/3.1.1/source/apache-maven-3.1.1-src.tar.gz
+
+
+
+
+ Apache Maven 3.1.0
+ 2013-07-15
+ 3.1.0
+ http://archive.apache.org/dist/maven/maven-3/3.1.0/binaries/apache-maven-3.1.0-bin.zip
+ http://archive.apache.org/dist/maven/maven-3/3.1.0/binaries/apache-maven-3.1.0-bin.tar.gz
+ http://archive.apache.org/dist/maven/maven-3/3.1.0/source/apache-maven-3.1.0-src.zip
+ http://archive.apache.org/dist/maven/maven-3/3.1.0/source/apache-maven-3.1.0-src.tar.gz
+
+
+
+
+ Apache Maven 3.0.5
+ 2013-02-23
+ 3.0.5
+ http://archive.apache.org/dist/maven/maven-3/3.0.5/binaries/apache-maven-3.0.5-bin.zip
+ http://archive.apache.org/dist/maven/maven-3/3.0.5/binaries/apache-maven-3.0.5-bin.tar.gz
+ http://archive.apache.org/dist/maven/maven-3/3.0.5/source/apache-maven-3.0.5-src.zip
+ http://archive.apache.org/dist/maven/maven-3/3.0.5/source/apache-maven-3.0.5-src.tar.gz
+
+
+
+
+ Apache Maven 3.0.4
+ 2012-01-20
+ 3.0.4
+ http://archive.apache.org/dist/maven/binaries/apache-maven-3.0.4-bin.zip
+ http://archive.apache.org/dist/maven/binaries/apache-maven-3.0.4-bin.tar.gz
+ http://archive.apache.org/dist/maven/source/apache-maven-3.0.4-src.zip
+ http://archive.apache.org/dist/maven/source/apache-maven-3.0.4-src.tar.gz
+
+
+
+
+ Apache Maven 3.0.3
+ 2011-03-03
+ 3.0.3
+ http://archive.apache.org/dist/maven/binaries/apache-maven-3.0.3-bin.zip
+ http://archive.apache.org/dist/maven/binaries/apache-maven-3.0.3-bin.tar.gz
+ http://archive.apache.org/dist/maven/source/apache-maven-3.0.3-src.zip
+ http://archive.apache.org/dist/maven/source/apache-maven-3.0.3-src.tar.gz
+
+
+
+
+ Apache Maven 3.0.2
+ 2011-01-12
+ 3.0.2
+ http://archive.apache.org/dist/maven/binaries/apache-maven-3.0.2-bin.zip
+ http://archive.apache.org/dist/maven/binaries/apache-maven-3.0.2-bin.tar.gz
+ http://archive.apache.org/dist/maven/source/apache-maven-3.0.2-src.zip
+ http://archive.apache.org/dist/maven/source/apache-maven-3.0.2-src.tar.gz
+
+
+
+
+ Apache Maven 3.0.1
+ 2010-11-23
+ 3.0.1
+ http://archive.apache.org/dist/maven/binaries/apache-maven-3.0.1-bin.zip
+ http://archive.apache.org/dist/maven/binaries/apache-maven-3.0.1-bin.tar.gz
+ http://archive.apache.org/dist/maven/source/apache-maven-3.0.1-src.zip
+ http://archive.apache.org/dist/maven/source/apache-maven-3.0.1-src.tar.gz
+
+
+
+
+ Apache Maven 3.0
+ 2010-10-04
+ 3.0
+ http://archive.apache.org/dist/maven/binaries/apache-maven-3.0-bin.zip
+ http://archive.apache.org/dist/maven/binaries/apache-maven-3.0-bin.tar.gz
+ http://archive.apache.org/dist/maven/source/apache-maven-3.0-src.zip
+ http://archive.apache.org/dist/maven/source/apache-maven-3.0-src.tar.gz
+
+
+
+
+
+
+
+
+
+
+ Apache Maven PMC
+
+
+
+
+
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/pom.xml b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/pom.xml
new file mode 100644
index 00000000..4906647c
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/pom.xml
@@ -0,0 +1,130 @@
+
+
+
+
+
+ 4.0.0
+
+
+ org.apache.maven
+ maven
+ 3.3.3
+
+
+ maven-aether-provider
+
+ Maven Aether Provider
+ Extensions to Aether for utilizing Maven POM and repository metadata.
+
+
+ scm:git:https://git-wip-us.apache.org/repos/asf/maven.git
+ scm:git:https://git-wip-us.apache.org/repos/asf/maven.git
+ maven-3.3.3
+
+
+
+
+ org.apache.maven
+ maven-model
+
+
+ org.apache.maven
+ maven-model-builder
+
+
+ org.apache.maven
+ maven-repository-metadata
+
+
+ org.eclipse.aether
+ aether-api
+
+
+ org.eclipse.aether
+ aether-spi
+
+
+ org.eclipse.aether
+ aether-util
+
+
+ org.eclipse.aether
+ aether-impl
+
+
+ org.codehaus.plexus
+ plexus-component-annotations
+
+
+ org.codehaus.plexus
+ plexus-utils
+
+
+ org.sonatype.sisu
+ sisu-guice
+ no_aop
+ true
+
+
+ aopalliance
+ aopalliance
+
+
+
+
+
+ org.eclipse.aether
+ aether-connector-basic
+ test
+
+
+ org.eclipse.aether
+ aether-transport-wagon
+ test
+
+
+ org.apache.maven.wagon
+ wagon-file
+ test
+
+
+ org.eclipse.sisu
+ org.eclipse.sisu.plexus
+ test
+
+
+ org.mockito
+ mockito-core
+ 1.9.5
+ test
+
+
+
+
+
+
+ org.codehaus.plexus
+ plexus-component-metadata
+
+
+
+
+
+
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java
new file mode 100644
index 00000000..29749ad0
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java
@@ -0,0 +1,153 @@
+package org.apache.maven.repository.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.Collections;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.maven.model.DependencyManagement;
+import org.apache.maven.model.DistributionManagement;
+import org.apache.maven.model.License;
+import org.apache.maven.model.Model;
+import org.apache.maven.model.Prerequisites;
+import org.apache.maven.model.Repository;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.artifact.Artifact;
+import org.eclipse.aether.artifact.ArtifactProperties;
+import org.eclipse.aether.artifact.ArtifactType;
+import org.eclipse.aether.artifact.ArtifactTypeRegistry;
+import org.eclipse.aether.artifact.DefaultArtifact;
+import org.eclipse.aether.artifact.DefaultArtifactType;
+import org.eclipse.aether.graph.Dependency;
+import org.eclipse.aether.graph.Exclusion;
+import org.eclipse.aether.resolution.ArtifactDescriptorResult;
+
+/**
+ * Populates Aether {@link ArtifactDescriptorResult} from Maven project {@link Model}.
+ *
+ * @since 3.2.4
+ * @provisional This class is part of work in progress and can be changed or removed without notice.
+ */
+public class ArtifactDescriptorReaderDelegate
+{
+ public void populateResult( RepositorySystemSession session, ArtifactDescriptorResult result, Model model )
+ {
+ ArtifactTypeRegistry stereotypes = session.getArtifactTypeRegistry();
+
+ for ( Repository r : model.getRepositories() )
+ {
+ result.addRepository( ArtifactDescriptorUtils.toRemoteRepository( r ) );
+ }
+
+ for ( org.apache.maven.model.Dependency dependency : model.getDependencies() )
+ {
+ result.addDependency( convert( dependency, stereotypes ) );
+ }
+
+ DependencyManagement mngt = model.getDependencyManagement();
+ if ( mngt != null )
+ {
+ for ( org.apache.maven.model.Dependency dependency : mngt.getDependencies() )
+ {
+ result.addManagedDependency( convert( dependency, stereotypes ) );
+ }
+ }
+
+ Map properties = new LinkedHashMap();
+
+ Prerequisites prerequisites = model.getPrerequisites();
+ if ( prerequisites != null )
+ {
+ properties.put( "prerequisites.maven", prerequisites.getMaven() );
+ }
+
+ List licenses = model.getLicenses();
+ properties.put( "license.count", licenses.size() );
+ for ( int i = 0; i < licenses.size(); i++ )
+ {
+ License license = licenses.get( i );
+ properties.put( "license." + i + ".name", license.getName() );
+ properties.put( "license." + i + ".url", license.getUrl() );
+ properties.put( "license." + i + ".comments", license.getComments() );
+ properties.put( "license." + i + ".distribution", license.getDistribution() );
+ }
+
+ result.setProperties( properties );
+
+ setArtifactProperties( result, model );
+ }
+
+ private Dependency convert( org.apache.maven.model.Dependency dependency, ArtifactTypeRegistry stereotypes )
+ {
+ ArtifactType stereotype = stereotypes.get( dependency.getType() );
+ if ( stereotype == null )
+ {
+ stereotype = new DefaultArtifactType( dependency.getType() );
+ }
+
+ boolean system = dependency.getSystemPath() != null && dependency.getSystemPath().length() > 0;
+
+ Map props = null;
+ if ( system )
+ {
+ props = Collections.singletonMap( ArtifactProperties.LOCAL_PATH, dependency.getSystemPath() );
+ }
+
+ Artifact artifact =
+ new DefaultArtifact( dependency.getGroupId(), dependency.getArtifactId(), dependency.getClassifier(), null,
+ dependency.getVersion(), props, stereotype );
+
+ List exclusions = new ArrayList( dependency.getExclusions().size() );
+ for ( org.apache.maven.model.Exclusion exclusion : dependency.getExclusions() )
+ {
+ exclusions.add( convert( exclusion ) );
+ }
+
+ Dependency result = new Dependency( artifact, dependency.getScope(), dependency.isOptional(), exclusions );
+
+ return result;
+ }
+
+ private Exclusion convert( org.apache.maven.model.Exclusion exclusion )
+ {
+ return new Exclusion( exclusion.getGroupId(), exclusion.getArtifactId(), "*", "*" );
+ }
+
+ private void setArtifactProperties( ArtifactDescriptorResult result, Model model )
+ {
+ String downloadUrl = null;
+ DistributionManagement distMngt = model.getDistributionManagement();
+ if ( distMngt != null )
+ {
+ downloadUrl = distMngt.getDownloadUrl();
+ }
+ if ( downloadUrl != null && downloadUrl.length() > 0 )
+ {
+ Artifact artifact = result.getArtifact();
+ Map props = new HashMap( artifact.getProperties() );
+ props.put( ArtifactProperties.DOWNLOAD_URL, downloadUrl );
+ result.setArtifact( artifact.setProperties( props ) );
+ }
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorUtils.java b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorUtils.java
new file mode 100644
index 00000000..7d4ede87
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorUtils.java
@@ -0,0 +1,81 @@
+package org.apache.maven.repository.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.model.Repository;
+import org.eclipse.aether.artifact.Artifact;
+import org.eclipse.aether.artifact.DefaultArtifact;
+import org.eclipse.aether.repository.RemoteRepository;
+import org.eclipse.aether.repository.RepositoryPolicy;
+
+/**
+ * Warning: This is an internal utility class that is only public for technical reasons, it is not part
+ * of the public API. In particular, this class can be changed or deleted without prior notice.
+ *
+ * @author Benjamin Bentmann
+ */
+public class ArtifactDescriptorUtils
+{
+
+ public static Artifact toPomArtifact( Artifact artifact )
+ {
+ Artifact pomArtifact = artifact;
+
+ if ( pomArtifact.getClassifier().length() > 0 || !"pom".equals( pomArtifact.getExtension() ) )
+ {
+ pomArtifact =
+ new DefaultArtifact( artifact.getGroupId(), artifact.getArtifactId(), "pom", artifact.getVersion() );
+ }
+
+ return pomArtifact;
+ }
+
+ public static RemoteRepository toRemoteRepository( Repository repository )
+ {
+ RemoteRepository.Builder builder =
+ new RemoteRepository.Builder( repository.getId(), repository.getLayout(), repository.getUrl() );
+ builder.setSnapshotPolicy( toRepositoryPolicy( repository.getSnapshots() ) );
+ builder.setReleasePolicy( toRepositoryPolicy( repository.getReleases() ) );
+ return builder.build();
+ }
+
+ public static RepositoryPolicy toRepositoryPolicy( org.apache.maven.model.RepositoryPolicy policy )
+ {
+ boolean enabled = true;
+ String checksums = RepositoryPolicy.CHECKSUM_POLICY_WARN;
+ String updates = RepositoryPolicy.UPDATE_POLICY_DAILY;
+
+ if ( policy != null )
+ {
+ enabled = policy.isEnabled();
+ if ( policy.getUpdatePolicy() != null )
+ {
+ updates = policy.getUpdatePolicy();
+ }
+ if ( policy.getChecksumPolicy() != null )
+ {
+ checksums = policy.getChecksumPolicy();
+ }
+ }
+
+ return new RepositoryPolicy( enabled, updates, checksums );
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java
new file mode 100644
index 00000000..a768de56
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java
@@ -0,0 +1,435 @@
+package org.apache.maven.repository.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.LinkedHashSet;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import org.apache.maven.model.DistributionManagement;
+import org.apache.maven.model.Model;
+import org.apache.maven.model.Relocation;
+import org.apache.maven.model.building.DefaultModelBuilderFactory;
+import org.apache.maven.model.building.DefaultModelBuildingRequest;
+import org.apache.maven.model.building.FileModelSource;
+import org.apache.maven.model.building.ModelBuilder;
+import org.apache.maven.model.building.ModelBuildingException;
+import org.apache.maven.model.building.ModelBuildingRequest;
+import org.apache.maven.model.building.ModelProblem;
+import org.apache.maven.model.resolution.UnresolvableModelException;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
+import org.eclipse.aether.RepositoryEvent;
+import org.eclipse.aether.RepositoryEvent.EventType;
+import org.eclipse.aether.RepositoryException;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.RequestTrace;
+import org.eclipse.aether.artifact.Artifact;
+import org.eclipse.aether.impl.ArtifactDescriptorReader;
+import org.eclipse.aether.impl.ArtifactResolver;
+import org.eclipse.aether.impl.RemoteRepositoryManager;
+import org.eclipse.aether.impl.RepositoryEventDispatcher;
+import org.eclipse.aether.impl.VersionRangeResolver;
+import org.eclipse.aether.impl.VersionResolver;
+import org.eclipse.aether.repository.WorkspaceReader;
+import org.eclipse.aether.repository.WorkspaceRepository;
+import org.eclipse.aether.resolution.ArtifactDescriptorException;
+import org.eclipse.aether.resolution.ArtifactDescriptorPolicy;
+import org.eclipse.aether.resolution.ArtifactDescriptorPolicyRequest;
+import org.eclipse.aether.resolution.ArtifactDescriptorRequest;
+import org.eclipse.aether.resolution.ArtifactDescriptorResult;
+import org.eclipse.aether.resolution.ArtifactRequest;
+import org.eclipse.aether.resolution.ArtifactResolutionException;
+import org.eclipse.aether.resolution.ArtifactResult;
+import org.eclipse.aether.resolution.VersionRequest;
+import org.eclipse.aether.resolution.VersionResolutionException;
+import org.eclipse.aether.resolution.VersionResult;
+import org.eclipse.aether.spi.locator.Service;
+import org.eclipse.aether.spi.locator.ServiceLocator;
+import org.eclipse.aether.spi.log.Logger;
+import org.eclipse.aether.spi.log.LoggerFactory;
+import org.eclipse.aether.spi.log.NullLoggerFactory;
+import org.eclipse.aether.transfer.ArtifactNotFoundException;
+
+/**
+ * @author Benjamin Bentmann
+ */
+@Named
+@Component( role = ArtifactDescriptorReader.class )
+public class DefaultArtifactDescriptorReader
+ implements ArtifactDescriptorReader, Service
+{
+
+ @SuppressWarnings( "unused" )
+ @Requirement( role = LoggerFactory.class )
+ private Logger logger = NullLoggerFactory.LOGGER;
+
+ @Requirement
+ private RemoteRepositoryManager remoteRepositoryManager;
+
+ @Requirement
+ private VersionResolver versionResolver;
+
+ @Requirement
+ private VersionRangeResolver versionRangeResolver;
+
+ @Requirement
+ private ArtifactResolver artifactResolver;
+
+ @Requirement
+ private RepositoryEventDispatcher repositoryEventDispatcher;
+
+ @Requirement
+ private ModelBuilder modelBuilder;
+
+ public DefaultArtifactDescriptorReader()
+ {
+ // enable no-arg constructor
+ }
+
+ @Inject
+ DefaultArtifactDescriptorReader( RemoteRepositoryManager remoteRepositoryManager, VersionResolver versionResolver,
+ ArtifactResolver artifactResolver, ModelBuilder modelBuilder,
+ RepositoryEventDispatcher repositoryEventDispatcher, LoggerFactory loggerFactory )
+ {
+ setRemoteRepositoryManager( remoteRepositoryManager );
+ setVersionResolver( versionResolver );
+ setArtifactResolver( artifactResolver );
+ setModelBuilder( modelBuilder );
+ setLoggerFactory( loggerFactory );
+ setRepositoryEventDispatcher( repositoryEventDispatcher );
+ }
+
+ public void initService( ServiceLocator locator )
+ {
+ setLoggerFactory( locator.getService( LoggerFactory.class ) );
+ setRemoteRepositoryManager( locator.getService( RemoteRepositoryManager.class ) );
+ setVersionResolver( locator.getService( VersionResolver.class ) );
+ setVersionRangeResolver( locator.getService( VersionRangeResolver.class ) );
+ setArtifactResolver( locator.getService( ArtifactResolver.class ) );
+ setRepositoryEventDispatcher( locator.getService( RepositoryEventDispatcher.class ) );
+ modelBuilder = locator.getService( ModelBuilder.class );
+ if ( modelBuilder == null )
+ {
+ setModelBuilder( new DefaultModelBuilderFactory().newInstance() );
+ }
+ }
+
+ public DefaultArtifactDescriptorReader setLoggerFactory( LoggerFactory loggerFactory )
+ {
+ this.logger = NullLoggerFactory.getSafeLogger( loggerFactory, getClass() );
+ return this;
+ }
+
+ void setLogger( LoggerFactory loggerFactory )
+ {
+ // plexus support
+ setLoggerFactory( loggerFactory );
+ }
+
+ public DefaultArtifactDescriptorReader setRemoteRepositoryManager( RemoteRepositoryManager remoteRepositoryManager )
+ {
+ if ( remoteRepositoryManager == null )
+ {
+ throw new IllegalArgumentException( "remote repository manager has not been specified" );
+ }
+ this.remoteRepositoryManager = remoteRepositoryManager;
+ return this;
+ }
+
+ public DefaultArtifactDescriptorReader setVersionResolver( VersionResolver versionResolver )
+ {
+ if ( versionResolver == null )
+ {
+ throw new IllegalArgumentException( "version resolver has not been specified" );
+ }
+ this.versionResolver = versionResolver;
+ return this;
+ }
+
+ /** @since 3.2.2 */
+ public DefaultArtifactDescriptorReader setVersionRangeResolver( VersionRangeResolver versionRangeResolver )
+ {
+ if ( versionRangeResolver == null )
+ {
+ throw new IllegalArgumentException( "version range resolver has not been specified" );
+ }
+ this.versionRangeResolver = versionRangeResolver;
+ return this;
+ }
+
+ public DefaultArtifactDescriptorReader setArtifactResolver( ArtifactResolver artifactResolver )
+ {
+ if ( artifactResolver == null )
+ {
+ throw new IllegalArgumentException( "artifact resolver has not been specified" );
+ }
+ this.artifactResolver = artifactResolver;
+ return this;
+ }
+
+ public DefaultArtifactDescriptorReader setRepositoryEventDispatcher( RepositoryEventDispatcher red )
+ {
+ if ( red == null )
+ {
+ throw new IllegalArgumentException( "repository event dispatcher has not been specified" );
+ }
+ this.repositoryEventDispatcher = red;
+ return this;
+ }
+
+ public DefaultArtifactDescriptorReader setModelBuilder( ModelBuilder modelBuilder )
+ {
+ if ( modelBuilder == null )
+ {
+ throw new IllegalArgumentException( "model builder has not been specified" );
+ }
+ this.modelBuilder = modelBuilder;
+ return this;
+ }
+
+ public ArtifactDescriptorResult readArtifactDescriptor( RepositorySystemSession session,
+ ArtifactDescriptorRequest request )
+ throws ArtifactDescriptorException
+ {
+ ArtifactDescriptorResult result = new ArtifactDescriptorResult( request );
+
+ Model model = loadPom( session, request, result );
+ if ( model != null )
+ {
+ Map config = session.getConfigProperties();
+ ArtifactDescriptorReaderDelegate delegate =
+ (ArtifactDescriptorReaderDelegate) config.get( ArtifactDescriptorReaderDelegate.class.getName() );
+
+ if ( delegate == null )
+ {
+ delegate = new ArtifactDescriptorReaderDelegate();
+ }
+
+ delegate.populateResult( session, result, model );
+ }
+
+ return result;
+ }
+
+ private Model loadPom( RepositorySystemSession session, ArtifactDescriptorRequest request,
+ ArtifactDescriptorResult result )
+ throws ArtifactDescriptorException
+ {
+ RequestTrace trace = RequestTrace.newChild( request.getTrace(), request );
+
+ Set visited = new LinkedHashSet();
+ for ( Artifact a = request.getArtifact();; )
+ {
+ Artifact pomArtifact = ArtifactDescriptorUtils.toPomArtifact( a );
+ try
+ {
+ VersionRequest versionRequest =
+ new VersionRequest( a, request.getRepositories(), request.getRequestContext() );
+ versionRequest.setTrace( trace );
+ VersionResult versionResult = versionResolver.resolveVersion( session, versionRequest );
+
+ a = a.setVersion( versionResult.getVersion() );
+
+ versionRequest =
+ new VersionRequest( pomArtifact, request.getRepositories(), request.getRequestContext() );
+ versionRequest.setTrace( trace );
+ versionResult = versionResolver.resolveVersion( session, versionRequest );
+
+ pomArtifact = pomArtifact.setVersion( versionResult.getVersion() );
+ }
+ catch ( VersionResolutionException e )
+ {
+ result.addException( e );
+ throw new ArtifactDescriptorException( result );
+ }
+
+ if ( !visited.add( a.getGroupId() + ':' + a.getArtifactId() + ':' + a.getBaseVersion() ) )
+ {
+ RepositoryException exception =
+ new RepositoryException( "Artifact relocations form a cycle: " + visited );
+ invalidDescriptor( session, trace, a, exception );
+ if ( ( getPolicy( session, a, request ) & ArtifactDescriptorPolicy.IGNORE_INVALID ) != 0 )
+ {
+ return null;
+ }
+ result.addException( exception );
+ throw new ArtifactDescriptorException( result );
+ }
+
+ ArtifactResult resolveResult;
+ try
+ {
+ ArtifactRequest resolveRequest =
+ new ArtifactRequest( pomArtifact, request.getRepositories(), request.getRequestContext() );
+ resolveRequest.setTrace( trace );
+ resolveResult = artifactResolver.resolveArtifact( session, resolveRequest );
+ pomArtifact = resolveResult.getArtifact();
+ result.setRepository( resolveResult.getRepository() );
+ }
+ catch ( ArtifactResolutionException e )
+ {
+ if ( e.getCause() instanceof ArtifactNotFoundException )
+ {
+ missingDescriptor( session, trace, a, (Exception) e.getCause() );
+ if ( ( getPolicy( session, a, request ) & ArtifactDescriptorPolicy.IGNORE_MISSING ) != 0 )
+ {
+ return null;
+ }
+ }
+ result.addException( e );
+ throw new ArtifactDescriptorException( result );
+ }
+
+ Model model;
+
+ // hack: don't rebuild model if it was already loaded during reactor resolution
+ final WorkspaceReader workspace = session.getWorkspaceReader();
+ if ( workspace instanceof MavenWorkspaceReader )
+ {
+ model = ( (MavenWorkspaceReader) workspace ).findModel( pomArtifact );
+ if ( model != null )
+ {
+ return model;
+ }
+ }
+
+ try
+ {
+ ModelBuildingRequest modelRequest = new DefaultModelBuildingRequest();
+ modelRequest.setValidationLevel( ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL );
+ modelRequest.setProcessPlugins( false );
+ modelRequest.setTwoPhaseBuilding( false );
+ modelRequest.setSystemProperties( toProperties( session.getUserProperties(),
+ session.getSystemProperties() ) );
+ modelRequest.setModelCache( DefaultModelCache.newInstance( session ) );
+ modelRequest.setModelResolver( new DefaultModelResolver( session, trace.newChild( modelRequest ),
+ request.getRequestContext(), artifactResolver,
+ versionRangeResolver, remoteRepositoryManager,
+ request.getRepositories() ) );
+ if ( resolveResult.getRepository() instanceof WorkspaceRepository )
+ {
+ modelRequest.setPomFile( pomArtifact.getFile() );
+ }
+ else
+ {
+ modelRequest.setModelSource( new FileModelSource( pomArtifact.getFile() ) );
+ }
+
+ model = modelBuilder.build( modelRequest ).getEffectiveModel();
+ }
+ catch ( ModelBuildingException e )
+ {
+ for ( ModelProblem problem : e.getProblems() )
+ {
+ if ( problem.getException() instanceof UnresolvableModelException )
+ {
+ result.addException( problem.getException() );
+ throw new ArtifactDescriptorException( result );
+ }
+ }
+ invalidDescriptor( session, trace, a, e );
+ if ( ( getPolicy( session, a, request ) & ArtifactDescriptorPolicy.IGNORE_INVALID ) != 0 )
+ {
+ return null;
+ }
+ result.addException( e );
+ throw new ArtifactDescriptorException( result );
+ }
+
+ Relocation relocation = getRelocation( model );
+
+ if ( relocation != null )
+ {
+ result.addRelocation( a );
+ a =
+ new RelocatedArtifact( a, relocation.getGroupId(), relocation.getArtifactId(),
+ relocation.getVersion() );
+ result.setArtifact( a );
+ }
+ else
+ {
+ return model;
+ }
+ }
+ }
+
+ private Properties toProperties( Map dominant, Map recessive )
+ {
+ Properties props = new Properties();
+ if ( recessive != null )
+ {
+ props.putAll( recessive );
+ }
+ if ( dominant != null )
+ {
+ props.putAll( dominant );
+ }
+ return props;
+ }
+
+ private Relocation getRelocation( Model model )
+ {
+ Relocation relocation = null;
+ DistributionManagement distMngt = model.getDistributionManagement();
+ if ( distMngt != null )
+ {
+ relocation = distMngt.getRelocation();
+ }
+ return relocation;
+ }
+
+ private void missingDescriptor( RepositorySystemSession session, RequestTrace trace, Artifact artifact,
+ Exception exception )
+ {
+ RepositoryEvent.Builder event = new RepositoryEvent.Builder( session, EventType.ARTIFACT_DESCRIPTOR_MISSING );
+ event.setTrace( trace );
+ event.setArtifact( artifact );
+ event.setException( exception );
+
+ repositoryEventDispatcher.dispatch( event.build() );
+ }
+
+ private void invalidDescriptor( RepositorySystemSession session, RequestTrace trace, Artifact artifact,
+ Exception exception )
+ {
+ RepositoryEvent.Builder event = new RepositoryEvent.Builder( session, EventType.ARTIFACT_DESCRIPTOR_INVALID );
+ event.setTrace( trace );
+ event.setArtifact( artifact );
+ event.setException( exception );
+
+ repositoryEventDispatcher.dispatch( event.build() );
+ }
+
+ private int getPolicy( RepositorySystemSession session, Artifact a, ArtifactDescriptorRequest request )
+ {
+ ArtifactDescriptorPolicy policy = session.getArtifactDescriptorPolicy();
+ if ( policy == null )
+ {
+ return ArtifactDescriptorPolicy.STRICT;
+ }
+ return policy.getPolicy( session, new ArtifactDescriptorPolicyRequest( a, request.getRequestContext() ) );
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelCache.java b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelCache.java
new file mode 100644
index 00000000..f13495df
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelCache.java
@@ -0,0 +1,119 @@
+package org.apache.maven.repository.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.model.building.ModelCache;
+import org.eclipse.aether.RepositoryCache;
+import org.eclipse.aether.RepositorySystemSession;
+
+/**
+ * A model builder cache backed by the repository system cache.
+ *
+ * @author Benjamin Bentmann
+ */
+class DefaultModelCache
+ implements ModelCache
+{
+
+ private final RepositorySystemSession session;
+
+ private final RepositoryCache cache;
+
+ public static ModelCache newInstance( RepositorySystemSession session )
+ {
+ if ( session.getCache() == null )
+ {
+ return null;
+ }
+ else
+ {
+ return new DefaultModelCache( session );
+ }
+ }
+
+ private DefaultModelCache( RepositorySystemSession session )
+ {
+ this.session = session;
+ this.cache = session.getCache();
+ }
+
+ public Object get( String groupId, String artifactId, String version, String tag )
+ {
+ return cache.get( session, new Key( groupId, artifactId, version, tag ) );
+ }
+
+ public void put( String groupId, String artifactId, String version, String tag, Object data )
+ {
+ cache.put( session, new Key( groupId, artifactId, version, tag ), data );
+ }
+
+ static class Key
+ {
+
+ private final String groupId;
+
+ private final String artifactId;
+
+ private final String version;
+
+ private final String tag;
+
+ private final int hash;
+
+ public Key( String groupId, String artifactId, String version, String tag )
+ {
+ this.groupId = groupId;
+ this.artifactId = artifactId;
+ this.version = version;
+ this.tag = tag;
+
+ int h = 17;
+ h = h * 31 + this.groupId.hashCode();
+ h = h * 31 + this.artifactId.hashCode();
+ h = h * 31 + this.version.hashCode();
+ h = h * 31 + this.tag.hashCode();
+ hash = h;
+ }
+
+ @Override
+ public boolean equals( Object obj )
+ {
+ if ( this == obj )
+ {
+ return true;
+ }
+ if ( null == obj || !getClass().equals( obj.getClass() ) )
+ {
+ return false;
+ }
+
+ Key that = (Key) obj;
+ return artifactId.equals( that.artifactId ) && groupId.equals( that.groupId )
+ && version.equals( that.version ) && tag.equals( that.tag );
+ }
+
+ @Override
+ public int hashCode()
+ {
+ return hash;
+ }
+
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelResolver.java b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelResolver.java
new file mode 100644
index 00000000..7cd47475
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelResolver.java
@@ -0,0 +1,229 @@
+package org.apache.maven.repository.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import com.google.common.base.Predicate;
+import com.google.common.collect.Iterables;
+import org.apache.maven.model.Parent;
+import org.apache.maven.model.Repository;
+import org.apache.maven.model.building.FileModelSource;
+import org.apache.maven.model.building.ModelSource;
+import org.apache.maven.model.resolution.InvalidRepositoryException;
+import org.apache.maven.model.resolution.ModelResolver;
+import org.apache.maven.model.resolution.UnresolvableModelException;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.RequestTrace;
+import org.eclipse.aether.artifact.Artifact;
+import org.eclipse.aether.artifact.DefaultArtifact;
+import org.eclipse.aether.impl.ArtifactResolver;
+import org.eclipse.aether.impl.RemoteRepositoryManager;
+import org.eclipse.aether.impl.VersionRangeResolver;
+import org.eclipse.aether.repository.RemoteRepository;
+import org.eclipse.aether.resolution.ArtifactRequest;
+import org.eclipse.aether.resolution.ArtifactResolutionException;
+import org.eclipse.aether.resolution.VersionRangeRequest;
+import org.eclipse.aether.resolution.VersionRangeResolutionException;
+import org.eclipse.aether.resolution.VersionRangeResult;
+
+/**
+ * A model resolver to assist building of dependency POMs. This resolver gives priority to those repositories that have
+ * been initially specified and repositories discovered in dependency POMs are recessively merged into the search chain.
+ *
+ * @author Benjamin Bentmann
+ * @see DefaultArtifactDescriptorReader
+ */
+class DefaultModelResolver
+ implements ModelResolver
+{
+
+ private final RepositorySystemSession session;
+
+ private final RequestTrace trace;
+
+ private final String context;
+
+ private List repositories;
+
+ private final List externalRepositories;
+
+ private final ArtifactResolver resolver;
+
+ private final VersionRangeResolver versionRangeResolver;
+
+ private final RemoteRepositoryManager remoteRepositoryManager;
+
+ private final Set repositoryIds;
+
+ public DefaultModelResolver( RepositorySystemSession session, RequestTrace trace, String context,
+ ArtifactResolver resolver, VersionRangeResolver versionRangeResolver,
+ RemoteRepositoryManager remoteRepositoryManager, List repositories )
+ {
+ this.session = session;
+ this.trace = trace;
+ this.context = context;
+ this.resolver = resolver;
+ this.versionRangeResolver = versionRangeResolver;
+ this.remoteRepositoryManager = remoteRepositoryManager;
+ this.repositories = repositories;
+ List externalRepositories = new ArrayList();
+ externalRepositories.addAll( repositories );
+ this.externalRepositories = Collections.unmodifiableList( externalRepositories );
+
+ this.repositoryIds = new HashSet();
+ }
+
+ private DefaultModelResolver( DefaultModelResolver original )
+ {
+ this.session = original.session;
+ this.trace = original.trace;
+ this.context = original.context;
+ this.resolver = original.resolver;
+ this.versionRangeResolver = original.versionRangeResolver;
+ this.remoteRepositoryManager = original.remoteRepositoryManager;
+ this.repositories = new ArrayList( original.repositories );
+ this.externalRepositories = original.externalRepositories;
+ this.repositoryIds = new HashSet( original.repositoryIds );
+ }
+
+ @Override
+ public void addRepository( Repository repository )
+ throws InvalidRepositoryException
+ {
+ addRepository( repository, false );
+ }
+
+ @Override
+ public void addRepository( final Repository repository, boolean replace )
+ throws InvalidRepositoryException
+ {
+ if ( session.isIgnoreArtifactDescriptorRepositories() )
+ {
+ return;
+ }
+
+ if ( !repositoryIds.add( repository.getId() ) )
+ {
+ if ( !replace )
+ {
+ return;
+ }
+
+ removeMatchingRepository( repositories, repository.getId() );
+ }
+
+ List newRepositories =
+ Collections.singletonList( ArtifactDescriptorUtils.toRemoteRepository( repository ) );
+
+ this.repositories =
+ remoteRepositoryManager.aggregateRepositories( session, repositories, newRepositories, true );
+ }
+
+ private static void removeMatchingRepository( Iterable repositories, final String id )
+ {
+ Iterables.removeIf( repositories, new Predicate()
+ {
+ @Override
+ public boolean apply( RemoteRepository remoteRepository )
+ {
+ return remoteRepository.getId().equals( id );
+ }
+ } );
+ }
+
+ @Override
+ public ModelResolver newCopy()
+ {
+ return new DefaultModelResolver( this );
+ }
+
+ @Override
+ public ModelSource resolveModel( String groupId, String artifactId, String version )
+ throws UnresolvableModelException
+ {
+ Artifact pomArtifact = new DefaultArtifact( groupId, artifactId, "", "pom", version );
+
+ try
+ {
+ ArtifactRequest request = new ArtifactRequest( pomArtifact, repositories, context );
+ request.setTrace( trace );
+ pomArtifact = resolver.resolveArtifact( session, request ).getArtifact();
+ }
+ catch ( ArtifactResolutionException e )
+ {
+ throw new UnresolvableModelException( e.getMessage(), groupId, artifactId, version, e );
+ }
+
+ File pomFile = pomArtifact.getFile();
+
+ return new FileModelSource( pomFile );
+ }
+
+ public ModelSource resolveModel( Parent parent )
+ throws UnresolvableModelException
+ {
+ Artifact artifact = new DefaultArtifact( parent.getGroupId(), parent.getArtifactId(), "", "pom",
+ parent.getVersion() );
+
+ VersionRangeRequest versionRangeRequest = new VersionRangeRequest( artifact, repositories, context );
+ versionRangeRequest.setTrace( trace );
+
+ try
+ {
+ VersionRangeResult versionRangeResult =
+ versionRangeResolver.resolveVersionRange( session, versionRangeRequest );
+
+ if ( versionRangeResult.getHighestVersion() == null )
+ {
+ throw new UnresolvableModelException( "No versions matched the requested range '" + parent.getVersion()
+ + "'", parent.getGroupId(), parent.getArtifactId(),
+ parent.getVersion() );
+
+ }
+
+ if ( versionRangeResult.getVersionConstraint() != null
+ && versionRangeResult.getVersionConstraint().getRange() != null
+ && versionRangeResult.getVersionConstraint().getRange().getUpperBound() == null )
+ {
+ throw new UnresolvableModelException( "The requested version range '" + parent.getVersion()
+ + "' does not specify an upper bound", parent.getGroupId(),
+ parent.getArtifactId(), parent.getVersion() );
+
+ }
+
+ parent.setVersion( versionRangeResult.getHighestVersion().toString() );
+ }
+ catch ( VersionRangeResolutionException e )
+ {
+ throw new UnresolvableModelException( e.getMessage(), parent.getGroupId(), parent.getArtifactId(),
+ parent.getVersion(), e );
+
+ }
+
+ return resolveModel( parent.getGroupId(), parent.getArtifactId(), parent.getVersion() );
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java
new file mode 100644
index 00000000..e8ba06b9
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java
@@ -0,0 +1,322 @@
+package org.apache.maven.repository.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.FileInputStream;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import org.apache.maven.artifact.repository.metadata.Versioning;
+import org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
+import org.codehaus.plexus.util.IOUtil;
+import org.eclipse.aether.RepositoryEvent.EventType;
+import org.eclipse.aether.RepositoryEvent;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.RequestTrace;
+import org.eclipse.aether.SyncContext;
+import org.eclipse.aether.impl.MetadataResolver;
+import org.eclipse.aether.impl.RepositoryEventDispatcher;
+import org.eclipse.aether.impl.SyncContextFactory;
+import org.eclipse.aether.impl.VersionRangeResolver;
+import org.eclipse.aether.metadata.DefaultMetadata;
+import org.eclipse.aether.metadata.Metadata;
+import org.eclipse.aether.repository.ArtifactRepository;
+import org.eclipse.aether.repository.RemoteRepository;
+import org.eclipse.aether.repository.WorkspaceReader;
+import org.eclipse.aether.resolution.MetadataRequest;
+import org.eclipse.aether.resolution.MetadataResult;
+import org.eclipse.aether.resolution.VersionRangeRequest;
+import org.eclipse.aether.resolution.VersionRangeResolutionException;
+import org.eclipse.aether.resolution.VersionRangeResult;
+import org.eclipse.aether.spi.locator.Service;
+import org.eclipse.aether.spi.locator.ServiceLocator;
+import org.eclipse.aether.spi.log.Logger;
+import org.eclipse.aether.spi.log.LoggerFactory;
+import org.eclipse.aether.spi.log.NullLoggerFactory;
+import org.eclipse.aether.util.version.GenericVersionScheme;
+import org.eclipse.aether.version.InvalidVersionSpecificationException;
+import org.eclipse.aether.version.Version;
+import org.eclipse.aether.version.VersionConstraint;
+import org.eclipse.aether.version.VersionScheme;
+
+/**
+ * @author Benjamin Bentmann
+ */
+@Named
+@Component( role = VersionRangeResolver.class )
+public class DefaultVersionRangeResolver
+ implements VersionRangeResolver, Service
+{
+
+ private static final String MAVEN_METADATA_XML = "maven-metadata.xml";
+
+ @SuppressWarnings( "unused" )
+ @Requirement( role = LoggerFactory.class )
+ private Logger logger = NullLoggerFactory.LOGGER;
+
+ @Requirement
+ private MetadataResolver metadataResolver;
+
+ @Requirement
+ private SyncContextFactory syncContextFactory;
+
+ @Requirement
+ private RepositoryEventDispatcher repositoryEventDispatcher;
+
+ public DefaultVersionRangeResolver()
+ {
+ // enable default constructor
+ }
+
+ @Inject
+ DefaultVersionRangeResolver( MetadataResolver metadataResolver, SyncContextFactory syncContextFactory,
+ RepositoryEventDispatcher repositoryEventDispatcher, LoggerFactory loggerFactory )
+ {
+ setMetadataResolver( metadataResolver );
+ setSyncContextFactory( syncContextFactory );
+ setLoggerFactory( loggerFactory );
+ setRepositoryEventDispatcher( repositoryEventDispatcher );
+ }
+
+ public void initService( ServiceLocator locator )
+ {
+ setLoggerFactory( locator.getService( LoggerFactory.class ) );
+ setMetadataResolver( locator.getService( MetadataResolver.class ) );
+ setSyncContextFactory( locator.getService( SyncContextFactory.class ) );
+ setRepositoryEventDispatcher( locator.getService( RepositoryEventDispatcher.class ) );
+ }
+
+ public DefaultVersionRangeResolver setLoggerFactory( LoggerFactory loggerFactory )
+ {
+ this.logger = NullLoggerFactory.getSafeLogger( loggerFactory, getClass() );
+ return this;
+ }
+
+ void setLogger( LoggerFactory loggerFactory )
+ {
+ // plexus support
+ setLoggerFactory( loggerFactory );
+ }
+
+ public DefaultVersionRangeResolver setMetadataResolver( MetadataResolver metadataResolver )
+ {
+ if ( metadataResolver == null )
+ {
+ throw new IllegalArgumentException( "metadata resolver has not been specified" );
+ }
+ this.metadataResolver = metadataResolver;
+ return this;
+ }
+
+ public DefaultVersionRangeResolver setSyncContextFactory( SyncContextFactory syncContextFactory )
+ {
+ if ( syncContextFactory == null )
+ {
+ throw new IllegalArgumentException( "sync context factory has not been specified" );
+ }
+ this.syncContextFactory = syncContextFactory;
+ return this;
+ }
+
+ public DefaultVersionRangeResolver setRepositoryEventDispatcher( RepositoryEventDispatcher red )
+ {
+ if ( red == null )
+ {
+ throw new IllegalArgumentException( "repository event dispatcher has not been specified" );
+ }
+ this.repositoryEventDispatcher = red;
+ return this;
+ }
+
+ public VersionRangeResult resolveVersionRange( RepositorySystemSession session, VersionRangeRequest request )
+ throws VersionRangeResolutionException
+ {
+ VersionRangeResult result = new VersionRangeResult( request );
+
+ VersionScheme versionScheme = new GenericVersionScheme();
+
+ VersionConstraint versionConstraint;
+ try
+ {
+ versionConstraint = versionScheme.parseVersionConstraint( request.getArtifact().getVersion() );
+ }
+ catch ( InvalidVersionSpecificationException e )
+ {
+ result.addException( e );
+ throw new VersionRangeResolutionException( result );
+ }
+
+ result.setVersionConstraint( versionConstraint );
+
+ if ( versionConstraint.getRange() == null )
+ {
+ result.addVersion( versionConstraint.getVersion() );
+ }
+ else
+ {
+ Map versionIndex = getVersions( session, result, request );
+
+ List versions = new ArrayList();
+ for ( Map.Entry v : versionIndex.entrySet() )
+ {
+ try
+ {
+ Version ver = versionScheme.parseVersion( v.getKey() );
+ if ( versionConstraint.containsVersion( ver ) )
+ {
+ versions.add( ver );
+ result.setRepository( ver, v.getValue() );
+ }
+ }
+ catch ( InvalidVersionSpecificationException e )
+ {
+ result.addException( e );
+ }
+ }
+
+ Collections.sort( versions );
+ result.setVersions( versions );
+ }
+
+ return result;
+ }
+
+ private Map getVersions( RepositorySystemSession session, VersionRangeResult result,
+ VersionRangeRequest request )
+ {
+ RequestTrace trace = RequestTrace.newChild( request.getTrace(), request );
+
+ Map versionIndex = new HashMap();
+
+ Metadata metadata =
+ new DefaultMetadata( request.getArtifact().getGroupId(), request.getArtifact().getArtifactId(),
+ MAVEN_METADATA_XML, Metadata.Nature.RELEASE_OR_SNAPSHOT );
+
+ List metadataRequests = new ArrayList( request.getRepositories().size() );
+
+ metadataRequests.add( new MetadataRequest( metadata, null, request.getRequestContext() ) );
+
+ for ( RemoteRepository repository : request.getRepositories() )
+ {
+ MetadataRequest metadataRequest = new MetadataRequest( metadata, repository, request.getRequestContext() );
+ metadataRequest.setDeleteLocalCopyIfMissing( true );
+ metadataRequest.setTrace( trace );
+ metadataRequests.add( metadataRequest );
+ }
+
+ List metadataResults = metadataResolver.resolveMetadata( session, metadataRequests );
+
+ WorkspaceReader workspace = session.getWorkspaceReader();
+ if ( workspace != null )
+ {
+ List versions = workspace.findVersions( request.getArtifact() );
+ for ( String version : versions )
+ {
+ versionIndex.put( version, workspace.getRepository() );
+ }
+ }
+
+ for ( MetadataResult metadataResult : metadataResults )
+ {
+ result.addException( metadataResult.getException() );
+
+ ArtifactRepository repository = metadataResult.getRequest().getRepository();
+ if ( repository == null )
+ {
+ repository = session.getLocalRepository();
+ }
+
+ Versioning versioning = readVersions( session, trace, metadataResult.getMetadata(), repository, result );
+ for ( String version : versioning.getVersions() )
+ {
+ if ( !versionIndex.containsKey( version ) )
+ {
+ versionIndex.put( version, repository );
+ }
+ }
+ }
+
+ return versionIndex;
+ }
+
+ private Versioning readVersions( RepositorySystemSession session, RequestTrace trace, Metadata metadata,
+ ArtifactRepository repository, VersionRangeResult result )
+ {
+ Versioning versioning = null;
+
+ FileInputStream fis = null;
+ try
+ {
+ if ( metadata != null )
+ {
+ SyncContext syncContext = syncContextFactory.newInstance( session, true );
+
+ try
+ {
+ syncContext.acquire( null, Collections.singleton( metadata ) );
+
+ if ( metadata.getFile() != null && metadata.getFile().exists() )
+ {
+ fis = new FileInputStream( metadata.getFile() );
+ org.apache.maven.artifact.repository.metadata.Metadata m =
+ new MetadataXpp3Reader().read( fis, false );
+ versioning = m.getVersioning();
+ }
+ }
+ finally
+ {
+ syncContext.close();
+ }
+ }
+ }
+ catch ( Exception e )
+ {
+ invalidMetadata( session, trace, metadata, repository, e );
+ result.addException( e );
+ }
+ finally
+ {
+ IOUtil.close( fis );
+ }
+
+ return ( versioning != null ) ? versioning : new Versioning();
+ }
+
+ private void invalidMetadata( RepositorySystemSession session, RequestTrace trace, Metadata metadata,
+ ArtifactRepository repository, Exception exception )
+ {
+ RepositoryEvent.Builder event = new RepositoryEvent.Builder( session, EventType.METADATA_INVALID );
+ event.setTrace( trace );
+ event.setMetadata( metadata );
+ event.setException( exception );
+ event.setRepository( repository );
+
+ repositoryEventDispatcher.dispatch( event.build() );
+ }
+
+}
\ No newline at end of file
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java
new file mode 100644
index 00000000..d722644e
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java
@@ -0,0 +1,636 @@
+package org.apache.maven.repository.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import org.apache.maven.artifact.repository.metadata.Snapshot;
+import org.apache.maven.artifact.repository.metadata.SnapshotVersion;
+import org.apache.maven.artifact.repository.metadata.Versioning;
+import org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
+import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.StringUtils;
+import org.eclipse.aether.RepositoryCache;
+import org.eclipse.aether.RepositoryEvent.EventType;
+import org.eclipse.aether.RepositoryEvent;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.RequestTrace;
+import org.eclipse.aether.SyncContext;
+import org.eclipse.aether.artifact.Artifact;
+import org.eclipse.aether.impl.MetadataResolver;
+import org.eclipse.aether.impl.RepositoryEventDispatcher;
+import org.eclipse.aether.impl.SyncContextFactory;
+import org.eclipse.aether.impl.VersionResolver;
+import org.eclipse.aether.internal.impl.CacheUtils;
+import org.eclipse.aether.metadata.DefaultMetadata;
+import org.eclipse.aether.metadata.Metadata;
+import org.eclipse.aether.repository.ArtifactRepository;
+import org.eclipse.aether.repository.LocalRepository;
+import org.eclipse.aether.repository.RemoteRepository;
+import org.eclipse.aether.repository.WorkspaceReader;
+import org.eclipse.aether.repository.WorkspaceRepository;
+import org.eclipse.aether.resolution.MetadataRequest;
+import org.eclipse.aether.resolution.MetadataResult;
+import org.eclipse.aether.resolution.VersionRequest;
+import org.eclipse.aether.resolution.VersionResolutionException;
+import org.eclipse.aether.resolution.VersionResult;
+import org.eclipse.aether.spi.locator.Service;
+import org.eclipse.aether.spi.locator.ServiceLocator;
+import org.eclipse.aether.spi.log.Logger;
+import org.eclipse.aether.spi.log.LoggerFactory;
+import org.eclipse.aether.spi.log.NullLoggerFactory;
+import org.eclipse.aether.util.ConfigUtils;
+
+/**
+ * @author Benjamin Bentmann
+ */
+@Named
+@Component( role = VersionResolver.class )
+public class DefaultVersionResolver
+ implements VersionResolver, Service
+{
+
+ private static final String MAVEN_METADATA_XML = "maven-metadata.xml";
+
+ private static final String RELEASE = "RELEASE";
+
+ private static final String LATEST = "LATEST";
+
+ private static final String SNAPSHOT = "SNAPSHOT";
+
+ @SuppressWarnings( "unused" )
+ @Requirement( role = LoggerFactory.class )
+ private Logger logger = NullLoggerFactory.LOGGER;
+
+ @Requirement
+ private MetadataResolver metadataResolver;
+
+ @Requirement
+ private SyncContextFactory syncContextFactory;
+
+ @Requirement
+ private RepositoryEventDispatcher repositoryEventDispatcher;
+
+ public DefaultVersionResolver()
+ {
+ // enable no-arg constructor
+ }
+
+ @Inject
+ DefaultVersionResolver( MetadataResolver metadataResolver, SyncContextFactory syncContextFactory,
+ RepositoryEventDispatcher repositoryEventDispatcher, LoggerFactory loggerFactory )
+ {
+ setMetadataResolver( metadataResolver );
+ setSyncContextFactory( syncContextFactory );
+ setLoggerFactory( loggerFactory );
+ setRepositoryEventDispatcher( repositoryEventDispatcher );
+ }
+
+ public void initService( ServiceLocator locator )
+ {
+ setLoggerFactory( locator.getService( LoggerFactory.class ) );
+ setMetadataResolver( locator.getService( MetadataResolver.class ) );
+ setSyncContextFactory( locator.getService( SyncContextFactory.class ) );
+ setRepositoryEventDispatcher( locator.getService( RepositoryEventDispatcher.class ) );
+ }
+
+ public DefaultVersionResolver setLoggerFactory( LoggerFactory loggerFactory )
+ {
+ this.logger = NullLoggerFactory.getSafeLogger( loggerFactory, getClass() );
+ return this;
+ }
+
+ void setLogger( LoggerFactory loggerFactory )
+ {
+ // plexus support
+ setLoggerFactory( loggerFactory );
+ }
+
+ public DefaultVersionResolver setMetadataResolver( MetadataResolver metadataResolver )
+ {
+ if ( metadataResolver == null )
+ {
+ throw new IllegalArgumentException( "metadata resolver has not been specified" );
+ }
+ this.metadataResolver = metadataResolver;
+ return this;
+ }
+
+ public DefaultVersionResolver setSyncContextFactory( SyncContextFactory syncContextFactory )
+ {
+ if ( syncContextFactory == null )
+ {
+ throw new IllegalArgumentException( "sync context factory has not been specified" );
+ }
+ this.syncContextFactory = syncContextFactory;
+ return this;
+ }
+
+ public DefaultVersionResolver setRepositoryEventDispatcher( RepositoryEventDispatcher repositoryEventDispatcher )
+ {
+ if ( repositoryEventDispatcher == null )
+ {
+ throw new IllegalArgumentException( "repository event dispatcher has not been specified" );
+ }
+ this.repositoryEventDispatcher = repositoryEventDispatcher;
+ return this;
+ }
+
+ public VersionResult resolveVersion( RepositorySystemSession session, VersionRequest request )
+ throws VersionResolutionException
+ {
+ RequestTrace trace = RequestTrace.newChild( request.getTrace(), request );
+
+ Artifact artifact = request.getArtifact();
+
+ String version = artifact.getVersion();
+
+ VersionResult result = new VersionResult( request );
+
+ Key cacheKey = null;
+ RepositoryCache cache = session.getCache();
+ if ( cache != null && !ConfigUtils.getBoolean( session, false, "aether.versionResolver.noCache" ) )
+ {
+ cacheKey = new Key( session, request );
+
+ Object obj = cache.get( session, cacheKey );
+ if ( obj instanceof Record )
+ {
+ Record record = (Record) obj;
+ result.setVersion( record.version );
+ result.setRepository( CacheUtils.getRepository( session, request.getRepositories(), record.repoClass,
+ record.repoId ) );
+ return result;
+ }
+ }
+
+ Metadata metadata;
+
+ if ( RELEASE.equals( version ) )
+ {
+ metadata =
+ new DefaultMetadata( artifact.getGroupId(), artifact.getArtifactId(), MAVEN_METADATA_XML,
+ Metadata.Nature.RELEASE );
+ }
+ else if ( LATEST.equals( version ) )
+ {
+ metadata =
+ new DefaultMetadata( artifact.getGroupId(), artifact.getArtifactId(), MAVEN_METADATA_XML,
+ Metadata.Nature.RELEASE_OR_SNAPSHOT );
+ }
+ else if ( version.endsWith( SNAPSHOT ) )
+ {
+ WorkspaceReader workspace = session.getWorkspaceReader();
+ if ( workspace != null && workspace.findVersions( artifact ).contains( version ) )
+ {
+ metadata = null;
+ result.setRepository( workspace.getRepository() );
+ }
+ else
+ {
+ metadata =
+ new DefaultMetadata( artifact.getGroupId(), artifact.getArtifactId(), version, MAVEN_METADATA_XML,
+ Metadata.Nature.SNAPSHOT );
+ }
+ }
+ else
+ {
+ metadata = null;
+ }
+
+ if ( metadata == null )
+ {
+ result.setVersion( version );
+ }
+ else
+ {
+ List metadataReqs = new ArrayList( request.getRepositories().size() );
+
+ metadataReqs.add( new MetadataRequest( metadata, null, request.getRequestContext() ) );
+
+ for ( RemoteRepository repository : request.getRepositories() )
+ {
+ MetadataRequest metadataRequest =
+ new MetadataRequest( metadata, repository, request.getRequestContext() );
+ metadataRequest.setDeleteLocalCopyIfMissing( true );
+ metadataRequest.setFavorLocalRepository( true );
+ metadataRequest.setTrace( trace );
+ metadataReqs.add( metadataRequest );
+ }
+
+ List metadataResults = metadataResolver.resolveMetadata( session, metadataReqs );
+
+ Map infos = new HashMap();
+
+ for ( MetadataResult metadataResult : metadataResults )
+ {
+ result.addException( metadataResult.getException() );
+
+ ArtifactRepository repository = metadataResult.getRequest().getRepository();
+ if ( repository == null )
+ {
+ repository = session.getLocalRepository();
+ }
+
+ Versioning v = readVersions( session, trace, metadataResult.getMetadata(), repository, result );
+ merge( artifact, infos, v, repository );
+ }
+
+ if ( RELEASE.equals( version ) )
+ {
+ resolve( result, infos, RELEASE );
+ }
+ else if ( LATEST.equals( version ) )
+ {
+ if ( !resolve( result, infos, LATEST ) )
+ {
+ resolve( result, infos, RELEASE );
+ }
+
+ if ( result.getVersion() != null && result.getVersion().endsWith( SNAPSHOT ) )
+ {
+ VersionRequest subRequest = new VersionRequest();
+ subRequest.setArtifact( artifact.setVersion( result.getVersion() ) );
+ if ( result.getRepository() instanceof RemoteRepository )
+ {
+ RemoteRepository r = (RemoteRepository) result.getRepository();
+ subRequest.setRepositories( Collections.singletonList( r ) );
+ }
+ else
+ {
+ subRequest.setRepositories( request.getRepositories() );
+ }
+ VersionResult subResult = resolveVersion( session, subRequest );
+ result.setVersion( subResult.getVersion() );
+ result.setRepository( subResult.getRepository() );
+ for ( Exception exception : subResult.getExceptions() )
+ {
+ result.addException( exception );
+ }
+ }
+ }
+ else
+ {
+ String key = SNAPSHOT + getKey( artifact.getClassifier(), artifact.getExtension() );
+ merge( infos, SNAPSHOT, key );
+ if ( !resolve( result, infos, key ) )
+ {
+ result.setVersion( version );
+ }
+ }
+
+ if ( StringUtils.isEmpty( result.getVersion() ) )
+ {
+ throw new VersionResolutionException( result );
+ }
+ }
+
+ if ( cacheKey != null && metadata != null && isSafelyCacheable( session, artifact ) )
+ {
+ cache.put( session, cacheKey, new Record( result.getVersion(), result.getRepository() ) );
+ }
+
+ return result;
+ }
+
+ private boolean resolve( VersionResult result, Map infos, String key )
+ {
+ VersionInfo info = infos.get( key );
+ if ( info != null )
+ {
+ result.setVersion( info.version );
+ result.setRepository( info.repository );
+ }
+ return info != null;
+ }
+
+ private Versioning readVersions( RepositorySystemSession session, RequestTrace trace, Metadata metadata,
+ ArtifactRepository repository, VersionResult result )
+ {
+ Versioning versioning = null;
+
+ FileInputStream fis = null;
+ try
+ {
+ if ( metadata != null )
+ {
+ SyncContext syncContext = syncContextFactory.newInstance( session, true );
+
+ try
+ {
+ syncContext.acquire( null, Collections.singleton( metadata ) );
+
+ if ( metadata.getFile() != null && metadata.getFile().exists() )
+ {
+ fis = new FileInputStream( metadata.getFile() );
+ org.apache.maven.artifact.repository.metadata.Metadata m =
+ new MetadataXpp3Reader().read( fis, false );
+ versioning = m.getVersioning();
+
+ /*
+ * NOTE: Users occasionally misuse the id "local" for remote repos which screws up the metadata
+ * of the local repository. This is especially troublesome during snapshot resolution so we try
+ * to handle that gracefully.
+ */
+ if ( versioning != null && repository instanceof LocalRepository )
+ {
+ if ( versioning.getSnapshot() != null && versioning.getSnapshot().getBuildNumber() > 0 )
+ {
+ Versioning repaired = new Versioning();
+ repaired.setLastUpdated( versioning.getLastUpdated() );
+ Snapshot snapshot = new Snapshot();
+ snapshot.setLocalCopy( true );
+ repaired.setSnapshot( snapshot );
+ versioning = repaired;
+
+ throw new IOException( "Snapshot information corrupted with remote repository data"
+ + ", please verify that no remote repository uses the id '" + repository.getId()
+ + "'" );
+ }
+ }
+ }
+ }
+ finally
+ {
+ syncContext.close();
+ }
+ }
+ }
+ catch ( Exception e )
+ {
+ invalidMetadata( session, trace, metadata, repository, e );
+ result.addException( e );
+ }
+ finally
+ {
+ IOUtil.close( fis );
+ }
+
+ return ( versioning != null ) ? versioning : new Versioning();
+ }
+
+ private void invalidMetadata( RepositorySystemSession session, RequestTrace trace, Metadata metadata,
+ ArtifactRepository repository, Exception exception )
+ {
+ RepositoryEvent.Builder event = new RepositoryEvent.Builder( session, EventType.METADATA_INVALID );
+ event.setTrace( trace );
+ event.setMetadata( metadata );
+ event.setException( exception );
+ event.setRepository( repository );
+
+ repositoryEventDispatcher.dispatch( event.build() );
+ }
+
+ private void merge( Artifact artifact, Map infos, Versioning versioning,
+ ArtifactRepository repository )
+ {
+ if ( StringUtils.isNotEmpty( versioning.getRelease() ) )
+ {
+ merge( RELEASE, infos, versioning.getLastUpdated(), versioning.getRelease(), repository );
+ }
+
+ if ( StringUtils.isNotEmpty( versioning.getLatest() ) )
+ {
+ merge( LATEST, infos, versioning.getLastUpdated(), versioning.getLatest(), repository );
+ }
+
+ for ( SnapshotVersion sv : versioning.getSnapshotVersions() )
+ {
+ if ( StringUtils.isNotEmpty( sv.getVersion() ) )
+ {
+ String key = getKey( sv.getClassifier(), sv.getExtension() );
+ merge( SNAPSHOT + key, infos, sv.getUpdated(), sv.getVersion(), repository );
+ }
+ }
+
+ Snapshot snapshot = versioning.getSnapshot();
+ if ( snapshot != null && versioning.getSnapshotVersions().isEmpty() )
+ {
+ String version = artifact.getVersion();
+ if ( snapshot.getTimestamp() != null && snapshot.getBuildNumber() > 0 )
+ {
+ String qualifier = snapshot.getTimestamp() + '-' + snapshot.getBuildNumber();
+ version = version.substring( 0, version.length() - SNAPSHOT.length() ) + qualifier;
+ }
+ merge( SNAPSHOT, infos, versioning.getLastUpdated(), version, repository );
+ }
+ }
+
+ private void merge( String key, Map infos, String timestamp, String version,
+ ArtifactRepository repository )
+ {
+ VersionInfo info = infos.get( key );
+ if ( info == null )
+ {
+ info = new VersionInfo( timestamp, version, repository );
+ infos.put( key, info );
+ }
+ else if ( info.isOutdated( timestamp ) )
+ {
+ info.version = version;
+ info.repository = repository;
+ info.timestamp = timestamp;
+ }
+ }
+
+ private void merge( Map infos, String srcKey, String dstKey )
+ {
+ VersionInfo srcInfo = infos.get( srcKey );
+ VersionInfo dstInfo = infos.get( dstKey );
+
+ if ( dstInfo == null
+ || ( srcInfo != null && dstInfo.isOutdated( srcInfo.timestamp )
+ && srcInfo.repository != dstInfo.repository ) )
+ {
+ infos.put( dstKey, srcInfo );
+ }
+ }
+
+ private String getKey( String classifier, String extension )
+ {
+ return StringUtils.clean( classifier ) + ':' + StringUtils.clean( extension );
+ }
+
+ private boolean isSafelyCacheable( RepositorySystemSession session, Artifact artifact )
+ {
+ /*
+ * The workspace/reactor is in flux so we better not assume definitive information for any of its
+ * artifacts/projects.
+ */
+
+ WorkspaceReader workspace = session.getWorkspaceReader();
+ if ( workspace == null )
+ {
+ return true;
+ }
+
+ Artifact pomArtifact = ArtifactDescriptorUtils.toPomArtifact( artifact );
+
+ return workspace.findArtifact( pomArtifact ) == null;
+ }
+
+ private static class VersionInfo
+ {
+
+ String timestamp;
+
+ String version;
+
+ ArtifactRepository repository;
+
+ public VersionInfo( String timestamp, String version, ArtifactRepository repository )
+ {
+ this.timestamp = ( timestamp != null ) ? timestamp : "";
+ this.version = version;
+ this.repository = repository;
+ }
+
+ public boolean isOutdated( String timestamp )
+ {
+ return timestamp != null && timestamp.compareTo( this.timestamp ) > 0;
+ }
+
+ }
+
+ private static class Key
+ {
+
+ private final String groupId;
+
+ private final String artifactId;
+
+ private final String classifier;
+
+ private final String extension;
+
+ private final String version;
+
+ private final String context;
+
+ private final File localRepo;
+
+ private final WorkspaceRepository workspace;
+
+ private final List repositories;
+
+ private final int hashCode;
+
+ public Key( RepositorySystemSession session, VersionRequest request )
+ {
+ Artifact artifact = request.getArtifact();
+ groupId = artifact.getGroupId();
+ artifactId = artifact.getArtifactId();
+ classifier = artifact.getClassifier();
+ extension = artifact.getExtension();
+ version = artifact.getVersion();
+ localRepo = session.getLocalRepository().getBasedir();
+ workspace = CacheUtils.getWorkspace( session );
+ repositories = new ArrayList( request.getRepositories().size() );
+ boolean repoMan = false;
+ for ( RemoteRepository repository : request.getRepositories() )
+ {
+ if ( repository.isRepositoryManager() )
+ {
+ repoMan = true;
+ repositories.addAll( repository.getMirroredRepositories() );
+ }
+ else
+ {
+ repositories.add( repository );
+ }
+ }
+ context = repoMan ? request.getRequestContext() : "";
+
+ int hash = 17;
+ hash = hash * 31 + groupId.hashCode();
+ hash = hash * 31 + artifactId.hashCode();
+ hash = hash * 31 + classifier.hashCode();
+ hash = hash * 31 + extension.hashCode();
+ hash = hash * 31 + version.hashCode();
+ hash = hash * 31 + localRepo.hashCode();
+ hash = hash * 31 + CacheUtils.repositoriesHashCode( repositories );
+ hashCode = hash;
+ }
+
+ @Override
+ public boolean equals( Object obj )
+ {
+ if ( obj == this )
+ {
+ return true;
+ }
+ else if ( obj == null || !getClass().equals( obj.getClass() ) )
+ {
+ return false;
+ }
+
+ Key that = (Key) obj;
+ return artifactId.equals( that.artifactId ) && groupId.equals( that.groupId )
+ && classifier.equals( that.classifier ) && extension.equals( that.extension )
+ && version.equals( that.version ) && context.equals( that.context )
+ && localRepo.equals( that.localRepo ) && CacheUtils.eq( workspace, that.workspace )
+ && CacheUtils.repositoriesEquals( repositories, that.repositories );
+ }
+
+ @Override
+ public int hashCode()
+ {
+ return hashCode;
+ }
+
+ }
+
+ private static class Record
+ {
+ final String version;
+
+ final String repoId;
+
+ final Class> repoClass;
+
+ public Record( String version, ArtifactRepository repository )
+ {
+ this.version = version;
+ if ( repository != null )
+ {
+ repoId = repository.getId();
+ repoClass = repository.getClass();
+ }
+ else
+ {
+ repoId = null;
+ repoClass = null;
+ }
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/LocalSnapshotMetadata.java b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/LocalSnapshotMetadata.java
new file mode 100644
index 00000000..a22d07d2
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/LocalSnapshotMetadata.java
@@ -0,0 +1,163 @@
+package org.apache.maven.repository.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.Collection;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import org.apache.maven.artifact.repository.metadata.Metadata;
+import org.apache.maven.artifact.repository.metadata.Snapshot;
+import org.apache.maven.artifact.repository.metadata.SnapshotVersion;
+import org.apache.maven.artifact.repository.metadata.Versioning;
+import org.eclipse.aether.artifact.Artifact;
+
+/**
+ * @author Benjamin Bentmann
+ */
+final class LocalSnapshotMetadata
+ extends MavenMetadata
+{
+
+ private final Collection artifacts = new ArrayList();
+
+ private final boolean legacyFormat;
+
+ public LocalSnapshotMetadata( Artifact artifact, boolean legacyFormat )
+ {
+ super( createMetadata( artifact, legacyFormat ), null );
+ this.legacyFormat = legacyFormat;
+ }
+
+ public LocalSnapshotMetadata( Metadata metadata, File file, boolean legacyFormat )
+ {
+ super( metadata, file );
+ this.legacyFormat = legacyFormat;
+ }
+
+ private static Metadata createMetadata( Artifact artifact, boolean legacyFormat )
+ {
+ Snapshot snapshot = new Snapshot();
+ snapshot.setLocalCopy( true );
+ Versioning versioning = new Versioning();
+ versioning.setSnapshot( snapshot );
+
+ Metadata metadata = new Metadata();
+ metadata.setVersioning( versioning );
+ metadata.setGroupId( artifact.getGroupId() );
+ metadata.setArtifactId( artifact.getArtifactId() );
+ metadata.setVersion( artifact.getBaseVersion() );
+
+ if ( !legacyFormat )
+ {
+ metadata.setModelVersion( "1.1.0" );
+ }
+
+ return metadata;
+ }
+
+ public void bind( Artifact artifact )
+ {
+ artifacts.add( artifact );
+ }
+
+ public MavenMetadata setFile( File file )
+ {
+ return new LocalSnapshotMetadata( metadata, file, legacyFormat );
+ }
+
+ public Object getKey()
+ {
+ return getGroupId() + ':' + getArtifactId() + ':' + getVersion();
+ }
+
+ public static Object getKey( Artifact artifact )
+ {
+ return artifact.getGroupId() + ':' + artifact.getArtifactId() + ':' + artifact.getBaseVersion();
+ }
+
+ @Override
+ protected void merge( Metadata recessive )
+ {
+ metadata.getVersioning().updateTimestamp();
+
+ if ( !legacyFormat )
+ {
+ String lastUpdated = metadata.getVersioning().getLastUpdated();
+
+ Map versions = new LinkedHashMap();
+
+ for ( Artifact artifact : artifacts )
+ {
+ SnapshotVersion sv = new SnapshotVersion();
+ sv.setClassifier( artifact.getClassifier() );
+ sv.setExtension( artifact.getExtension() );
+ sv.setVersion( getVersion() );
+ sv.setUpdated( lastUpdated );
+ versions.put( getKey( sv.getClassifier(), sv.getExtension() ), sv );
+ }
+
+ Versioning versioning = recessive.getVersioning();
+ if ( versioning != null )
+ {
+ for ( SnapshotVersion sv : versioning.getSnapshotVersions() )
+ {
+ String key = getKey( sv.getClassifier(), sv.getExtension() );
+ if ( !versions.containsKey( key ) )
+ {
+ versions.put( key, sv );
+ }
+ }
+ }
+
+ metadata.getVersioning().setSnapshotVersions( new ArrayList( versions.values() ) );
+ }
+
+ artifacts.clear();
+ }
+
+ private String getKey( String classifier, String extension )
+ {
+ return classifier + ':' + extension;
+ }
+
+ public String getGroupId()
+ {
+ return metadata.getGroupId();
+ }
+
+ public String getArtifactId()
+ {
+ return metadata.getArtifactId();
+ }
+
+ public String getVersion()
+ {
+ return metadata.getVersion();
+ }
+
+ public Nature getNature()
+ {
+ return Nature.SNAPSHOT;
+ }
+
+}
\ No newline at end of file
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/LocalSnapshotMetadataGenerator.java b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/LocalSnapshotMetadataGenerator.java
new file mode 100644
index 00000000..ee7c10b0
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/LocalSnapshotMetadataGenerator.java
@@ -0,0 +1,82 @@
+package org.apache.maven.repository.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.artifact.Artifact;
+import org.eclipse.aether.impl.MetadataGenerator;
+import org.eclipse.aether.installation.InstallRequest;
+import org.eclipse.aether.metadata.Metadata;
+import org.eclipse.aether.util.ConfigUtils;
+
+/**
+ * @author Benjamin Bentmann
+ */
+class LocalSnapshotMetadataGenerator
+ implements MetadataGenerator
+{
+
+ private Map snapshots;
+
+ private final boolean legacyFormat;
+
+ public LocalSnapshotMetadataGenerator( RepositorySystemSession session, InstallRequest request )
+ {
+ legacyFormat = ConfigUtils.getBoolean( session.getConfigProperties(), false, "maven.metadata.legacy" );
+
+ snapshots = new LinkedHashMap();
+ }
+
+ public Collection extends Metadata> prepare( Collection extends Artifact> artifacts )
+ {
+ for ( Artifact artifact : artifacts )
+ {
+ if ( artifact.isSnapshot() )
+ {
+ Object key = LocalSnapshotMetadata.getKey( artifact );
+ LocalSnapshotMetadata snapshotMetadata = snapshots.get( key );
+ if ( snapshotMetadata == null )
+ {
+ snapshotMetadata = new LocalSnapshotMetadata( artifact, legacyFormat );
+ snapshots.put( key, snapshotMetadata );
+ }
+ snapshotMetadata.bind( artifact );
+ }
+ }
+
+ return Collections.emptyList();
+ }
+
+ public Artifact transformArtifact( Artifact artifact )
+ {
+ return artifact;
+ }
+
+ public Collection extends Metadata> finish( Collection extends Artifact> artifacts )
+ {
+ return snapshots.values();
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/MavenAetherModule.java b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/MavenAetherModule.java
new file mode 100644
index 00000000..fa81f611
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/MavenAetherModule.java
@@ -0,0 +1,76 @@
+package org.apache.maven.repository.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.HashSet;
+import java.util.Set;
+
+import javax.inject.Named;
+import javax.inject.Singleton;
+
+import org.apache.maven.model.building.DefaultModelBuilderFactory;
+import org.apache.maven.model.building.ModelBuilder;
+import org.eclipse.aether.impl.AetherModule;
+import org.eclipse.aether.impl.ArtifactDescriptorReader;
+import org.eclipse.aether.impl.MetadataGeneratorFactory;
+import org.eclipse.aether.impl.VersionRangeResolver;
+import org.eclipse.aether.impl.VersionResolver;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.Provides;
+import com.google.inject.name.Names;
+
+public final class MavenAetherModule
+ extends AbstractModule
+{
+
+ @Override
+ protected void configure()
+ {
+ install( new AetherModule() );
+ bind( ArtifactDescriptorReader.class ) //
+ .to( DefaultArtifactDescriptorReader.class ).in( Singleton.class );
+ bind( VersionResolver.class ) //
+ .to( DefaultVersionResolver.class ).in( Singleton.class );
+ bind( VersionRangeResolver.class ) //
+ .to( DefaultVersionRangeResolver.class ).in( Singleton.class );
+ bind( MetadataGeneratorFactory.class ).annotatedWith( Names.named( "snapshot" ) ) //
+ .to( SnapshotMetadataGeneratorFactory.class ).in( Singleton.class );
+ bind( MetadataGeneratorFactory.class ).annotatedWith( Names.named( "versions" ) ) //
+ .to( VersionsMetadataGeneratorFactory.class ).in( Singleton.class );
+ bind( ModelBuilder.class ) //
+ .toInstance( new DefaultModelBuilderFactory().newInstance() );
+ }
+
+ @Provides
+ @Singleton
+ Set provideMetadataGeneratorFactories( @Named( "snapshot" )
+ MetadataGeneratorFactory snapshot,
+ @Named( "versions" )
+ MetadataGeneratorFactory versions )
+ {
+ Set factories = new HashSet();
+ factories.add( snapshot );
+ factories.add( versions );
+ return Collections.unmodifiableSet( factories );
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/MavenMetadata.java b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/MavenMetadata.java
new file mode 100644
index 00000000..bdf28783
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/MavenMetadata.java
@@ -0,0 +1,150 @@
+package org.apache.maven.repository.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.Reader;
+import java.io.Writer;
+import java.util.Collections;
+import java.util.Map;
+
+import org.apache.maven.artifact.repository.metadata.Metadata;
+import org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader;
+import org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Writer;
+import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.ReaderFactory;
+import org.codehaus.plexus.util.WriterFactory;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+import org.eclipse.aether.RepositoryException;
+import org.eclipse.aether.metadata.AbstractMetadata;
+import org.eclipse.aether.metadata.MergeableMetadata;
+
+/**
+ * @author Benjamin Bentmann
+ */
+abstract class MavenMetadata
+ extends AbstractMetadata
+ implements MergeableMetadata
+{
+
+ static final String MAVEN_METADATA_XML = "maven-metadata.xml";
+
+ private final File file;
+
+ protected Metadata metadata;
+
+ private boolean merged;
+
+ protected MavenMetadata( Metadata metadata, File file )
+ {
+ this.metadata = metadata;
+ this.file = file;
+ }
+
+ public String getType()
+ {
+ return MAVEN_METADATA_XML;
+ }
+
+ public File getFile()
+ {
+ return file;
+ }
+
+ public void merge( File existing, File result )
+ throws RepositoryException
+ {
+ Metadata recessive = read( existing );
+
+ merge( recessive );
+
+ write( result, metadata );
+
+ merged = true;
+ }
+
+ public boolean isMerged()
+ {
+ return merged;
+ }
+
+ protected abstract void merge( Metadata recessive );
+
+ static Metadata read( File metadataFile )
+ throws RepositoryException
+ {
+ if ( metadataFile.length() <= 0 )
+ {
+ return new Metadata();
+ }
+
+ Reader reader = null;
+ try
+ {
+ reader = ReaderFactory.newXmlReader( metadataFile );
+ return new MetadataXpp3Reader().read( reader, false );
+ }
+ catch ( IOException e )
+ {
+ throw new RepositoryException( "Could not read metadata " + metadataFile + ": " + e.getMessage(), e );
+ }
+ catch ( XmlPullParserException e )
+ {
+ throw new RepositoryException( "Could not parse metadata " + metadataFile + ": " + e.getMessage(), e );
+ }
+ finally
+ {
+ IOUtil.close( reader );
+ }
+ }
+
+ private void write( File metadataFile, Metadata metadata )
+ throws RepositoryException
+ {
+ Writer writer = null;
+ try
+ {
+ metadataFile.getParentFile().mkdirs();
+ writer = WriterFactory.newXmlWriter( metadataFile );
+ new MetadataXpp3Writer().write( writer, metadata );
+ }
+ catch ( IOException e )
+ {
+ throw new RepositoryException( "Could not write metadata " + metadataFile + ": " + e.getMessage(), e );
+ }
+ finally
+ {
+ IOUtil.close( writer );
+ }
+ }
+
+ public Map getProperties()
+ {
+ return Collections.emptyMap();
+ }
+
+ @Override
+ public org.eclipse.aether.metadata.Metadata setProperties( Map properties )
+ {
+ return this;
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/MavenRepositorySystemUtils.java b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/MavenRepositorySystemUtils.java
new file mode 100644
index 00000000..5b240efe
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/MavenRepositorySystemUtils.java
@@ -0,0 +1,141 @@
+package org.apache.maven.repository.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.Properties;
+
+import org.eclipse.aether.DefaultRepositorySystemSession;
+import org.eclipse.aether.artifact.DefaultArtifactType;
+import org.eclipse.aether.collection.DependencyGraphTransformer;
+import org.eclipse.aether.collection.DependencyManager;
+import org.eclipse.aether.collection.DependencySelector;
+import org.eclipse.aether.collection.DependencyTraverser;
+import org.eclipse.aether.impl.ArtifactDescriptorReader;
+import org.eclipse.aether.impl.DefaultServiceLocator;
+import org.eclipse.aether.impl.MetadataGeneratorFactory;
+import org.eclipse.aether.impl.VersionRangeResolver;
+import org.eclipse.aether.impl.VersionResolver;
+import org.eclipse.aether.util.artifact.DefaultArtifactTypeRegistry;
+import org.eclipse.aether.util.graph.manager.ClassicDependencyManager;
+import org.eclipse.aether.util.graph.selector.AndDependencySelector;
+import org.eclipse.aether.util.graph.selector.ExclusionDependencySelector;
+import org.eclipse.aether.util.graph.selector.OptionalDependencySelector;
+import org.eclipse.aether.util.graph.selector.ScopeDependencySelector;
+import org.eclipse.aether.util.graph.transformer.ChainedDependencyGraphTransformer;
+import org.eclipse.aether.util.graph.transformer.ConflictResolver;
+import org.eclipse.aether.util.graph.transformer.JavaDependencyContextRefiner;
+import org.eclipse.aether.util.graph.transformer.JavaScopeDeriver;
+import org.eclipse.aether.util.graph.transformer.JavaScopeSelector;
+import org.eclipse.aether.util.graph.transformer.NearestVersionSelector;
+import org.eclipse.aether.util.graph.transformer.SimpleOptionalitySelector;
+import org.eclipse.aether.util.graph.traverser.FatArtifactTraverser;
+import org.eclipse.aether.util.repository.SimpleArtifactDescriptorPolicy;
+
+/**
+ * A utility class to assist in setting up a Maven-like repository system. Note: This component is meant to
+ * assist those clients that employ the repository system outside of an IoC container, Maven plugins should instead
+ * always use regular dependency injection to acquire the repository system.
+ *
+ * @author Benjamin Bentmann
+ */
+public final class MavenRepositorySystemUtils
+{
+
+ private MavenRepositorySystemUtils()
+ {
+ // hide constructor
+ }
+
+ /**
+ * Creates a new service locator that already knows about all service implementations included in this library. To
+ * acquire a complete repository system, clients need to add some repository connectors for remote transfers.
+ *
+ * @return The new service locator, never {@code null}.
+ */
+ public static DefaultServiceLocator newServiceLocator()
+ {
+ DefaultServiceLocator locator = new DefaultServiceLocator();
+ locator.addService( ArtifactDescriptorReader.class, DefaultArtifactDescriptorReader.class );
+ locator.addService( VersionResolver.class, DefaultVersionResolver.class );
+ locator.addService( VersionRangeResolver.class, DefaultVersionRangeResolver.class );
+ locator.addService( MetadataGeneratorFactory.class, SnapshotMetadataGeneratorFactory.class );
+ locator.addService( MetadataGeneratorFactory.class, VersionsMetadataGeneratorFactory.class );
+ return locator;
+ }
+
+ /**
+ * Creates a new Maven-like repository system session by initializing the session with values typical for
+ * Maven-based resolution. In more detail, this method configures settings relevant for the processing of dependency
+ * graphs, most other settings remain at their generic default value. Use the various setters to further configure
+ * the session with authentication, mirror, proxy and other information required for your environment.
+ *
+ * @return The new repository system session, never {@code null}.
+ */
+ public static DefaultRepositorySystemSession newSession()
+ {
+ DefaultRepositorySystemSession session = new DefaultRepositorySystemSession();
+
+ DependencyTraverser depTraverser = new FatArtifactTraverser();
+ session.setDependencyTraverser( depTraverser );
+
+ DependencyManager depManager = new ClassicDependencyManager();
+ session.setDependencyManager( depManager );
+
+ DependencySelector depFilter =
+ new AndDependencySelector( new ScopeDependencySelector( "test", "provided" ),
+ new OptionalDependencySelector(), new ExclusionDependencySelector() );
+ session.setDependencySelector( depFilter );
+
+ DependencyGraphTransformer transformer =
+ new ConflictResolver( new NearestVersionSelector(), new JavaScopeSelector(),
+ new SimpleOptionalitySelector(), new JavaScopeDeriver() );
+ new ChainedDependencyGraphTransformer( transformer, new JavaDependencyContextRefiner() );
+ session.setDependencyGraphTransformer( transformer );
+
+ DefaultArtifactTypeRegistry stereotypes = new DefaultArtifactTypeRegistry();
+ stereotypes.add( new DefaultArtifactType( "pom" ) );
+ stereotypes.add( new DefaultArtifactType( "maven-plugin", "jar", "", "java" ) );
+ stereotypes.add( new DefaultArtifactType( "jar", "jar", "", "java" ) );
+ stereotypes.add( new DefaultArtifactType( "ejb", "jar", "", "java" ) );
+ stereotypes.add( new DefaultArtifactType( "ejb-client", "jar", "client", "java" ) );
+ stereotypes.add( new DefaultArtifactType( "test-jar", "jar", "tests", "java" ) );
+ stereotypes.add( new DefaultArtifactType( "javadoc", "jar", "javadoc", "java" ) );
+ stereotypes.add( new DefaultArtifactType( "java-source", "jar", "sources", "java", false, false ) );
+ stereotypes.add( new DefaultArtifactType( "war", "war", "", "java", false, true ) );
+ stereotypes.add( new DefaultArtifactType( "ear", "ear", "", "java", false, true ) );
+ stereotypes.add( new DefaultArtifactType( "rar", "rar", "", "java", false, true ) );
+ stereotypes.add( new DefaultArtifactType( "par", "par", "", "java", false, true ) );
+ session.setArtifactTypeRegistry( stereotypes );
+
+ session.setArtifactDescriptorPolicy( new SimpleArtifactDescriptorPolicy( true, true ) );
+
+ // MNG-5670 guard against ConcurrentModificationException
+ Properties sysProps = new Properties();
+ for ( String key : System.getProperties().stringPropertyNames() )
+ {
+ sysProps.put( key, System.getProperty( key ) );
+ }
+ session.setSystemProperties( sysProps );
+ session.setConfigProperties( sysProps );
+
+ return session;
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/MavenSnapshotMetadata.java b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/MavenSnapshotMetadata.java
new file mode 100644
index 00000000..1e6f9097
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/MavenSnapshotMetadata.java
@@ -0,0 +1,100 @@
+package org.apache.maven.repository.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.Collection;
+
+import org.apache.maven.artifact.repository.metadata.Metadata;
+import org.eclipse.aether.artifact.Artifact;
+
+/**
+ * @author Hervé Boutemy
+ */
+abstract class MavenSnapshotMetadata
+ extends MavenMetadata
+{
+ static final String SNAPSHOT = "SNAPSHOT";
+
+ protected final Collection artifacts = new ArrayList();
+
+ protected final boolean legacyFormat;
+
+ protected MavenSnapshotMetadata( Metadata metadata, File file, boolean legacyFormat )
+ {
+ super( metadata, file );
+ this.legacyFormat = legacyFormat;
+ }
+
+ protected static Metadata createRepositoryMetadata( Artifact artifact, boolean legacyFormat )
+ {
+ Metadata metadata = new Metadata();
+ if ( !legacyFormat )
+ {
+ metadata.setModelVersion( "1.1.0" );
+ }
+ metadata.setGroupId( artifact.getGroupId() );
+ metadata.setArtifactId( artifact.getArtifactId() );
+ metadata.setVersion( artifact.getBaseVersion() );
+
+ return metadata;
+ }
+
+ public void bind( Artifact artifact )
+ {
+ artifacts.add( artifact );
+ }
+
+ public Object getKey()
+ {
+ return getGroupId() + ':' + getArtifactId() + ':' + getVersion();
+ }
+
+ public static Object getKey( Artifact artifact )
+ {
+ return artifact.getGroupId() + ':' + artifact.getArtifactId() + ':' + artifact.getBaseVersion();
+ }
+
+ protected String getKey( String classifier, String extension )
+ {
+ return classifier + ':' + extension;
+ }
+
+ public String getGroupId()
+ {
+ return metadata.getGroupId();
+ }
+
+ public String getArtifactId()
+ {
+ return metadata.getArtifactId();
+ }
+
+ public String getVersion()
+ {
+ return metadata.getVersion();
+ }
+
+ public Nature getNature()
+ {
+ return Nature.SNAPSHOT;
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/MavenWorkspaceReader.java b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/MavenWorkspaceReader.java
new file mode 100644
index 00000000..270cf588
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/MavenWorkspaceReader.java
@@ -0,0 +1,32 @@
+package org.apache.maven.repository.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.model.Model;
+import org.eclipse.aether.artifact.Artifact;
+import org.eclipse.aether.repository.WorkspaceReader;
+
+public interface MavenWorkspaceReader
+ extends WorkspaceReader
+{
+
+ Model findModel( Artifact artifact );
+
+}
\ No newline at end of file
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/RelocatedArtifact.java b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/RelocatedArtifact.java
new file mode 100644
index 00000000..958eb388
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/RelocatedArtifact.java
@@ -0,0 +1,116 @@
+package org.apache.maven.repository.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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 org.eclipse.aether.artifact.AbstractArtifact;
+import org.eclipse.aether.artifact.Artifact;
+
+/**
+ * @author Benjamin Bentmann
+ */
+final class RelocatedArtifact
+ extends AbstractArtifact
+{
+
+ private final Artifact artifact;
+
+ private final String groupId;
+
+ private final String artifactId;
+
+ private final String version;
+
+ public RelocatedArtifact( Artifact artifact, String groupId, String artifactId, String version )
+ {
+ if ( artifact == null )
+ {
+ throw new IllegalArgumentException( "no artifact specified" );
+ }
+ this.artifact = artifact;
+ this.groupId = ( groupId != null && groupId.length() > 0 ) ? groupId : null;
+ this.artifactId = ( artifactId != null && artifactId.length() > 0 ) ? artifactId : null;
+ this.version = ( version != null && version.length() > 0 ) ? version : null;
+ }
+
+ public String getGroupId()
+ {
+ if ( groupId != null )
+ {
+ return groupId;
+ }
+ else
+ {
+ return artifact.getGroupId();
+ }
+ }
+
+ public String getArtifactId()
+ {
+ if ( artifactId != null )
+ {
+ return artifactId;
+ }
+ else
+ {
+ return artifact.getArtifactId();
+ }
+ }
+
+ public String getVersion()
+ {
+ if ( version != null )
+ {
+ return version;
+ }
+ else
+ {
+ return artifact.getVersion();
+ }
+ }
+
+ public String getClassifier()
+ {
+ return artifact.getClassifier();
+ }
+
+ public String getExtension()
+ {
+ return artifact.getExtension();
+ }
+
+ public File getFile()
+ {
+ return artifact.getFile();
+ }
+
+ public String getProperty( String key, String defaultValue )
+ {
+ return artifact.getProperty( key, defaultValue );
+ }
+
+ public Map getProperties()
+ {
+ return artifact.getProperties();
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/RemoteSnapshotMetadata.java b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/RemoteSnapshotMetadata.java
new file mode 100644
index 00000000..4494cae6
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/RemoteSnapshotMetadata.java
@@ -0,0 +1,152 @@
+package org.apache.maven.repository.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.TimeZone;
+
+import org.apache.maven.artifact.repository.metadata.Metadata;
+import org.apache.maven.artifact.repository.metadata.Snapshot;
+import org.apache.maven.artifact.repository.metadata.SnapshotVersion;
+import org.apache.maven.artifact.repository.metadata.Versioning;
+import org.eclipse.aether.artifact.Artifact;
+
+/**
+ * @author Benjamin Bentmann
+ */
+final class RemoteSnapshotMetadata
+ extends MavenSnapshotMetadata
+{
+
+ private final Map versions = new LinkedHashMap();
+
+ public RemoteSnapshotMetadata( Artifact artifact, boolean legacyFormat )
+ {
+ super( createRepositoryMetadata( artifact, legacyFormat ), null, legacyFormat );
+ }
+
+ private RemoteSnapshotMetadata( Metadata metadata, File file, boolean legacyFormat )
+ {
+ super( metadata, file, legacyFormat );
+ }
+
+ public MavenMetadata setFile( File file )
+ {
+ return new RemoteSnapshotMetadata( metadata, file, legacyFormat );
+ }
+
+ public String getExpandedVersion( Artifact artifact )
+ {
+ String key = getKey( artifact.getClassifier(), artifact.getExtension() );
+ return versions.get( key ).getVersion();
+ }
+
+ @Override
+ protected void merge( Metadata recessive )
+ {
+ Snapshot snapshot;
+ String lastUpdated;
+
+ if ( metadata.getVersioning() == null )
+ {
+ DateFormat utcDateFormatter = new SimpleDateFormat( "yyyyMMdd.HHmmss" );
+ utcDateFormatter.setTimeZone( TimeZone.getTimeZone( "UTC" ) );
+
+ snapshot = new Snapshot();
+ snapshot.setBuildNumber( getBuildNumber( recessive ) + 1 );
+ snapshot.setTimestamp( utcDateFormatter.format( new Date() ) );
+
+ Versioning versioning = new Versioning();
+ versioning.setSnapshot( snapshot );
+ versioning.setLastUpdated( snapshot.getTimestamp().replace( ".", "" ) );
+ lastUpdated = versioning.getLastUpdated();
+
+ metadata.setVersioning( versioning );
+ }
+ else
+ {
+ snapshot = metadata.getVersioning().getSnapshot();
+ lastUpdated = metadata.getVersioning().getLastUpdated();
+ }
+
+ for ( Artifact artifact : artifacts )
+ {
+ String version = artifact.getVersion();
+
+ if ( version.endsWith( SNAPSHOT ) )
+ {
+ String qualifier = snapshot.getTimestamp() + '-' + snapshot.getBuildNumber();
+ version = version.substring( 0, version.length() - SNAPSHOT.length() ) + qualifier;
+ }
+
+ SnapshotVersion sv = new SnapshotVersion();
+ sv.setClassifier( artifact.getClassifier() );
+ sv.setExtension( artifact.getExtension() );
+ sv.setVersion( version );
+ sv.setUpdated( lastUpdated );
+
+ versions.put( getKey( sv.getClassifier(), sv.getExtension() ), sv );
+ }
+
+ artifacts.clear();
+
+ Versioning versioning = recessive.getVersioning();
+ if ( versioning != null )
+ {
+ for ( SnapshotVersion sv : versioning.getSnapshotVersions() )
+ {
+ String key = getKey( sv.getClassifier(), sv.getExtension() );
+ if ( !versions.containsKey( key ) )
+ {
+ versions.put( key, sv );
+ }
+ }
+ }
+
+ if ( !legacyFormat )
+ {
+ metadata.getVersioning().setSnapshotVersions( new ArrayList( versions.values() ) );
+ }
+ }
+
+ private static int getBuildNumber( Metadata metadata )
+ {
+ int number = 0;
+
+ Versioning versioning = metadata.getVersioning();
+ if ( versioning != null )
+ {
+ Snapshot snapshot = versioning.getSnapshot();
+ if ( snapshot != null && snapshot.getBuildNumber() > 0 )
+ {
+ number = snapshot.getBuildNumber();
+ }
+ }
+
+ return number;
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/RemoteSnapshotMetadataGenerator.java b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/RemoteSnapshotMetadataGenerator.java
new file mode 100644
index 00000000..6cbeec55
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/RemoteSnapshotMetadataGenerator.java
@@ -0,0 +1,107 @@
+package org.apache.maven.repository.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.artifact.Artifact;
+import org.eclipse.aether.deployment.DeployRequest;
+import org.eclipse.aether.impl.MetadataGenerator;
+import org.eclipse.aether.metadata.Metadata;
+import org.eclipse.aether.util.ConfigUtils;
+
+/**
+ * @author Benjamin Bentmann
+ */
+class RemoteSnapshotMetadataGenerator
+ implements MetadataGenerator
+{
+
+ private final Map snapshots;
+
+ private final boolean legacyFormat;
+
+ public RemoteSnapshotMetadataGenerator( RepositorySystemSession session, DeployRequest request )
+ {
+ legacyFormat = ConfigUtils.getBoolean( session.getConfigProperties(), false, "maven.metadata.legacy" );
+
+ snapshots = new LinkedHashMap();
+
+ /*
+ * NOTE: This should be considered a quirk to support interop with Maven's legacy ArtifactDeployer which
+ * processes one artifact at a time and hence cannot associate the artifacts from the same project to use the
+ * same timestamp+buildno for the snapshot versions. Allowing the caller to pass in metadata from a previous
+ * deployment allows to re-establish the association between the artifacts of the same project.
+ */
+ for ( Metadata metadata : request.getMetadata() )
+ {
+ if ( metadata instanceof RemoteSnapshotMetadata )
+ {
+ RemoteSnapshotMetadata snapshotMetadata = (RemoteSnapshotMetadata) metadata;
+ snapshots.put( snapshotMetadata.getKey(), snapshotMetadata );
+ }
+ }
+ }
+
+ public Collection extends Metadata> prepare( Collection extends Artifact> artifacts )
+ {
+ for ( Artifact artifact : artifacts )
+ {
+ if ( artifact.isSnapshot() )
+ {
+ Object key = RemoteSnapshotMetadata.getKey( artifact );
+ RemoteSnapshotMetadata snapshotMetadata = snapshots.get( key );
+ if ( snapshotMetadata == null )
+ {
+ snapshotMetadata = new RemoteSnapshotMetadata( artifact, legacyFormat );
+ snapshots.put( key, snapshotMetadata );
+ }
+ snapshotMetadata.bind( artifact );
+ }
+ }
+
+ return snapshots.values();
+ }
+
+ public Artifact transformArtifact( Artifact artifact )
+ {
+ if ( artifact.isSnapshot() && artifact.getVersion().equals( artifact.getBaseVersion() ) )
+ {
+ Object key = RemoteSnapshotMetadata.getKey( artifact );
+ RemoteSnapshotMetadata snapshotMetadata = snapshots.get( key );
+ if ( snapshotMetadata != null )
+ {
+ artifact = artifact.setVersion( snapshotMetadata.getExpandedVersion( artifact ) );
+ }
+ }
+
+ return artifact;
+ }
+
+ public Collection extends Metadata> finish( Collection extends Artifact> artifacts )
+ {
+ return Collections.emptyList();
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/SnapshotMetadataGeneratorFactory.java b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/SnapshotMetadataGeneratorFactory.java
new file mode 100644
index 00000000..79ffaade
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/SnapshotMetadataGeneratorFactory.java
@@ -0,0 +1,52 @@
+package org.apache.maven.repository.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR 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.component.annotations.Component;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.deployment.DeployRequest;
+import org.eclipse.aether.impl.MetadataGenerator;
+import org.eclipse.aether.impl.MetadataGeneratorFactory;
+import org.eclipse.aether.installation.InstallRequest;
+
+/**
+ * @author Benjamin Bentmann
+ */
+@Component( role = MetadataGeneratorFactory.class, hint = "snapshot" )
+public class SnapshotMetadataGeneratorFactory
+ implements MetadataGeneratorFactory
+{
+
+ public MetadataGenerator newInstance( RepositorySystemSession session, InstallRequest request )
+ {
+ return new LocalSnapshotMetadataGenerator( session, request );
+ }
+
+ public MetadataGenerator newInstance( RepositorySystemSession session, DeployRequest request )
+ {
+ return new RemoteSnapshotMetadataGenerator( session, request );
+ }
+
+ public float getPriority()
+ {
+ return 10;
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/VersionsMetadata.java b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/VersionsMetadata.java
new file mode 100644
index 00000000..adaca9db
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/VersionsMetadata.java
@@ -0,0 +1,133 @@
+package org.apache.maven.repository.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.Collection;
+import java.util.LinkedHashSet;
+
+import org.apache.maven.artifact.repository.metadata.Metadata;
+import org.apache.maven.artifact.repository.metadata.Versioning;
+import org.eclipse.aether.artifact.Artifact;
+import org.eclipse.aether.artifact.ArtifactProperties;
+
+/**
+ * @author Benjamin Bentmann
+ */
+final class VersionsMetadata
+ extends MavenMetadata
+{
+
+ private final Artifact artifact;
+
+ public VersionsMetadata( Artifact artifact )
+ {
+ super( createRepositoryMetadata( artifact ), null );
+ this.artifact = artifact;
+ }
+
+ public VersionsMetadata( Artifact artifact, File file )
+ {
+ super( createRepositoryMetadata( artifact ), file );
+ this.artifact = artifact;
+ }
+
+ private static Metadata createRepositoryMetadata( Artifact artifact )
+ {
+ Metadata metadata = new Metadata();
+ metadata.setGroupId( artifact.getGroupId() );
+ metadata.setArtifactId( artifact.getArtifactId() );
+
+ Versioning versioning = new Versioning();
+ versioning.addVersion( artifact.getBaseVersion() );
+ if ( !artifact.isSnapshot() )
+ {
+ versioning.setRelease( artifact.getBaseVersion() );
+ }
+ if ( "maven-plugin".equals( artifact.getProperty( ArtifactProperties.TYPE, "" ) ) )
+ {
+ versioning.setLatest( artifact.getBaseVersion() );
+ }
+
+ metadata.setVersioning( versioning );
+
+ return metadata;
+ }
+
+ @Override
+ protected void merge( Metadata recessive )
+ {
+ Versioning versioning = metadata.getVersioning();
+ versioning.updateTimestamp();
+
+ if ( recessive.getVersioning() != null )
+ {
+ if ( versioning.getLatest() == null )
+ {
+ versioning.setLatest( recessive.getVersioning().getLatest() );
+ }
+ if ( versioning.getRelease() == null )
+ {
+ versioning.setRelease( recessive.getVersioning().getRelease() );
+ }
+
+ Collection versions = new LinkedHashSet( recessive.getVersioning().getVersions() );
+ versions.addAll( versioning.getVersions() );
+ versioning.setVersions( new ArrayList( versions ) );
+ }
+ }
+
+ public Object getKey()
+ {
+ return getGroupId() + ':' + getArtifactId();
+ }
+
+ public static Object getKey( Artifact artifact )
+ {
+ return artifact.getGroupId() + ':' + artifact.getArtifactId();
+ }
+
+ public MavenMetadata setFile( File file )
+ {
+ return new VersionsMetadata( artifact, file );
+ }
+
+ public String getGroupId()
+ {
+ return artifact.getGroupId();
+ }
+
+ public String getArtifactId()
+ {
+ return artifact.getArtifactId();
+ }
+
+ public String getVersion()
+ {
+ return "";
+ }
+
+ public Nature getNature()
+ {
+ return artifact.isSnapshot() ? Nature.RELEASE_OR_SNAPSHOT : Nature.RELEASE;
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/VersionsMetadataGenerator.java b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/VersionsMetadataGenerator.java
new file mode 100644
index 00000000..e2f5e82d
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/VersionsMetadataGenerator.java
@@ -0,0 +1,108 @@
+package org.apache.maven.repository.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.artifact.Artifact;
+import org.eclipse.aether.deployment.DeployRequest;
+import org.eclipse.aether.impl.MetadataGenerator;
+import org.eclipse.aether.installation.InstallRequest;
+import org.eclipse.aether.metadata.Metadata;
+
+/**
+ * @author Benjamin Bentmann
+ */
+class VersionsMetadataGenerator
+ implements MetadataGenerator
+{
+
+ private Map versions;
+
+ private Map processedVersions;
+
+ public VersionsMetadataGenerator( RepositorySystemSession session, InstallRequest request )
+ {
+ this( session, request.getMetadata() );
+ }
+
+ public VersionsMetadataGenerator( RepositorySystemSession session, DeployRequest request )
+ {
+ this( session, request.getMetadata() );
+ }
+
+ private VersionsMetadataGenerator( RepositorySystemSession session, Collection extends Metadata> metadatas )
+ {
+ versions = new LinkedHashMap();
+ processedVersions = new LinkedHashMap();
+
+ /*
+ * NOTE: This should be considered a quirk to support interop with Maven's legacy ArtifactDeployer which
+ * processes one artifact at a time and hence cannot associate the artifacts from the same project to use the
+ * same version index. Allowing the caller to pass in metadata from a previous deployment allows to re-establish
+ * the association between the artifacts of the same project.
+ */
+ for ( Iterator extends Metadata> it = metadatas.iterator(); it.hasNext(); )
+ {
+ Metadata metadata = it.next();
+ if ( metadata instanceof VersionsMetadata )
+ {
+ it.remove();
+ VersionsMetadata versionsMetadata = (VersionsMetadata) metadata;
+ processedVersions.put( versionsMetadata.getKey(), versionsMetadata );
+ }
+ }
+ }
+
+ public Collection extends Metadata> prepare( Collection extends Artifact> artifacts )
+ {
+ return Collections.emptyList();
+ }
+
+ public Artifact transformArtifact( Artifact artifact )
+ {
+ return artifact;
+ }
+
+ public Collection extends Metadata> finish( Collection extends Artifact> artifacts )
+ {
+ for ( Artifact artifact : artifacts )
+ {
+ Object key = VersionsMetadata.getKey( artifact );
+ if ( processedVersions.get( key ) == null )
+ {
+ VersionsMetadata versionsMetadata = versions.get( key );
+ if ( versionsMetadata == null )
+ {
+ versionsMetadata = new VersionsMetadata( artifact );
+ versions.put( key, versionsMetadata );
+ }
+ }
+ }
+
+ return versions.values();
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/VersionsMetadataGeneratorFactory.java b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/VersionsMetadataGeneratorFactory.java
new file mode 100644
index 00000000..47ef3601
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/VersionsMetadataGeneratorFactory.java
@@ -0,0 +1,52 @@
+package org.apache.maven.repository.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR 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.component.annotations.Component;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.deployment.DeployRequest;
+import org.eclipse.aether.impl.MetadataGenerator;
+import org.eclipse.aether.impl.MetadataGeneratorFactory;
+import org.eclipse.aether.installation.InstallRequest;
+
+/**
+ * @author Benjamin Bentmann
+ */
+@Component( role = MetadataGeneratorFactory.class, hint = "versions" )
+public class VersionsMetadataGeneratorFactory
+ implements MetadataGeneratorFactory
+{
+
+ public MetadataGenerator newInstance( RepositorySystemSession session, InstallRequest request )
+ {
+ return new VersionsMetadataGenerator( session, request );
+ }
+
+ public MetadataGenerator newInstance( RepositorySystemSession session, DeployRequest request )
+ {
+ return new VersionsMetadataGenerator( session, request );
+ }
+
+ public float getPriority()
+ {
+ return 5;
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/package-info.java b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/package-info.java
new file mode 100644
index 00000000..5582cf75
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/package-info.java
@@ -0,0 +1,25 @@
+// CHECKSTYLE_OFF: RegexpHeader
+/**
+ * Aether extensions for utilizing the Maven POM and Maven repository
+ * metadata.
+ */
+package org.apache.maven.repository.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
\ No newline at end of file
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/site/apt/index.apt b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/site/apt/index.apt
new file mode 100644
index 00000000..600ec417
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/site/apt/index.apt
@@ -0,0 +1,33 @@
+~~ Licensed to the Apache Software Foundation (ASF) under one
+~~ or more contributor license agreements. See the NOTICE file
+~~ distributed with this work for additional information
+~~ regarding copyright ownership. The ASF licenses this file
+~~ to you under the Apache License, Version 2.0 (the
+~~ "License"); you may not use this file except in compliance
+~~ with the License. You may obtain a copy of the License at
+~~
+~~ http://www.apache.org/licenses/LICENSE-2.0
+~~
+~~ Unless required by applicable law or agreed to in writing,
+~~ software distributed under the License is distributed on an
+~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+~~ KIND, either express or implied. See the License for the
+~~ specific language governing permissions and limitations
+~~ under the License.
+
+ -----
+ Introduction
+ -----
+ Hervé Boutemy
+ -----
+ 2012-09-29
+ -----
+
+Maven Aether Provider
+
+ Maven Aether Provider is an {{{http://www.eclipse.org/aether/}Aether}} extension to support
+ Maven POMs and local+remote repositories.
+
+ Main component is <<>>
+ ({{{./apidocs/org/apache/maven/repository/internal/MavenRepositorySystemUtils.html}javadoc}},
+ {{{./xref/org/apache/maven/repository/internal/MavenRepositorySystemUtils.html}source}}).
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/site/site.xml b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/site/site.xml
new file mode 100644
index 00000000..3a16bf98
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/site/site.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/AbstractRepositoryTestCase.java b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/AbstractRepositoryTestCase.java
new file mode 100644
index 00000000..b81450ce
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/AbstractRepositoryTestCase.java
@@ -0,0 +1,87 @@
+package org.apache.maven.repository.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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 org.apache.maven.repository.internal.util.ConsoleRepositoryListener;
+import org.apache.maven.repository.internal.util.ConsoleTransferListener;
+import org.codehaus.plexus.ContainerConfiguration;
+import org.codehaus.plexus.PlexusConstants;
+import org.codehaus.plexus.PlexusTestCase;
+import org.eclipse.aether.DefaultRepositorySystemSession;
+import org.eclipse.aether.RepositorySystem;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.repository.LocalRepository;
+import org.eclipse.aether.repository.RemoteRepository;
+
+public abstract class AbstractRepositoryTestCase
+ extends PlexusTestCase
+{
+ protected RepositorySystem system;
+
+ protected RepositorySystemSession session;
+
+ @Override
+ protected void customizeContainerConfiguration( ContainerConfiguration containerConfiguration )
+ {
+ super.customizeContainerConfiguration( containerConfiguration );
+ containerConfiguration.setAutoWiring( true );
+ containerConfiguration.setClassPathScanning( PlexusConstants.SCANNING_INDEX );
+ }
+
+ @Override
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp();
+ system = lookup( RepositorySystem.class );
+ session = newMavenRepositorySystemSession( system );
+ }
+
+ @Override
+ protected void tearDown()
+ throws Exception
+ {
+ session = null;
+ system = null;
+ super.tearDown();
+ }
+
+ public static RepositorySystemSession newMavenRepositorySystemSession( RepositorySystem system )
+ {
+ DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession();
+
+ LocalRepository localRepo = new LocalRepository( "target/local-repo" );
+ session.setLocalRepositoryManager( system.newLocalRepositoryManager( session, localRepo ) );
+
+ session.setTransferListener( new ConsoleTransferListener() );
+ session.setRepositoryListener( new ConsoleRepositoryListener() );
+
+ return session;
+ }
+
+ public static RemoteRepository newTestRepository()
+ throws MalformedURLException
+ {
+ return new RemoteRepository.Builder( "repo", "default",
+ getTestFile( "target/test-classes/repo" ).toURI().toURL().toString() ).build();
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReaderTest.java b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReaderTest.java
new file mode 100644
index 00000000..e8731380
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReaderTest.java
@@ -0,0 +1,77 @@
+package org.apache.maven.repository.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+
+import org.eclipse.aether.RepositoryEvent;
+import org.eclipse.aether.RepositoryEvent.EventType;
+import org.eclipse.aether.artifact.DefaultArtifact;
+import org.eclipse.aether.impl.ArtifactDescriptorReader;
+import org.eclipse.aether.impl.RepositoryEventDispatcher;
+import org.eclipse.aether.resolution.ArtifactDescriptorRequest;
+import org.mockito.ArgumentCaptor;
+
+public class DefaultArtifactDescriptorReaderTest
+ extends AbstractRepositoryTestCase
+{
+
+ public void testMng5459()
+ throws Exception
+ {
+ // prepare
+ DefaultArtifactDescriptorReader reader = (DefaultArtifactDescriptorReader) lookup( ArtifactDescriptorReader.class );
+
+ RepositoryEventDispatcher eventDispatcher = mock( RepositoryEventDispatcher.class );
+
+ ArgumentCaptor event = ArgumentCaptor.forClass( RepositoryEvent.class );
+
+ reader.setRepositoryEventDispatcher( eventDispatcher );
+
+ ArtifactDescriptorRequest request = new ArtifactDescriptorRequest();
+
+ request.addRepository( newTestRepository() );
+
+ request.setArtifact( new DefaultArtifact( "org.apache.maven.its", "dep-mng5459", "jar", "0.4.0-SNAPSHOT" ) );
+
+ // execute
+ reader.readArtifactDescriptor( session, request );
+
+ // verify
+ verify( eventDispatcher ).dispatch( event.capture() );
+
+ boolean missingArtifactDescriptor = false;
+
+ for( RepositoryEvent evt : event.getAllValues() )
+ {
+ if ( EventType.ARTIFACT_DESCRIPTOR_MISSING.equals( evt.getType() ) )
+ {
+ assertEquals( "Could not find artifact org.apache.maven.its:dep-mng5459:pom:0.4.0-20130404.090532-2 in repo (" + newTestRepository().getUrl() + ")", evt.getException().getMessage() );
+ missingArtifactDescriptor = true;
+ }
+ }
+
+ if( !missingArtifactDescriptor )
+ {
+ fail( "Expected missing artifact descriptor for org.apache.maven.its:dep-mng5459:pom:0.4.0-20130404.090532-2" );
+ }
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/DefaultVersionResolverTest.java b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/DefaultVersionResolverTest.java
new file mode 100644
index 00000000..90dd6a4c
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/DefaultVersionResolverTest.java
@@ -0,0 +1,96 @@
+package org.apache.maven.repository.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.eclipse.aether.artifact.Artifact;
+import org.eclipse.aether.impl.VersionResolver;
+import org.eclipse.aether.resolution.VersionRequest;
+import org.eclipse.aether.resolution.VersionResult;
+import org.eclipse.aether.artifact.DefaultArtifact;
+
+public class DefaultVersionResolverTest
+ extends AbstractRepositoryTestCase
+{
+ private DefaultVersionResolver versionResolver;
+
+ @Override
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp();
+ // be sure we're testing the right class, i.e. DefaultVersionResolver.class
+ versionResolver = (DefaultVersionResolver) lookup( VersionResolver.class, "default" );
+ }
+
+ @Override
+ protected void tearDown()
+ throws Exception
+ {
+ versionResolver = null;
+ super.tearDown();
+ }
+
+ public void testResolveSeparateInstalledClassifiedNonUniqueVersionedArtifacts()
+ throws Exception
+ {
+ VersionRequest requestB = new VersionRequest();
+ requestB.addRepository( newTestRepository() );
+ Artifact artifactB =
+ new DefaultArtifact( "org.apache.maven.its", "dep-mng5324", "classifierB", "jar", "07.20.3-SNAPSHOT" );
+ requestB.setArtifact( artifactB );
+
+ VersionResult resultB = versionResolver.resolveVersion( session, requestB );
+ assertEquals( "07.20.3-20120809.112920-97", resultB.getVersion() );
+
+ VersionRequest requestA = new VersionRequest();
+ requestA.addRepository( newTestRepository() );
+
+ Artifact artifactA =
+ new DefaultArtifact( "org.apache.maven.its", "dep-mng5324", "classifierA", "jar", "07.20.3-SNAPSHOT" );
+ requestA.setArtifact( artifactA );
+
+ VersionResult resultA = versionResolver.resolveVersion( session, requestA );
+ assertEquals( "07.20.3-20120809.112124-88", resultA.getVersion() );
+ }
+
+ public void testResolveSeparateInstalledClassifiedNonVersionedArtifacts()
+ throws Exception
+ {
+ VersionRequest requestA = new VersionRequest();
+ requestA.addRepository( newTestRepository() );
+ String versionA = "07.20.3-20120809.112124-88";
+ Artifact artifactA =
+ new DefaultArtifact( "org.apache.maven.its", "dep-mng5324", "classifierA", "jar", versionA );
+ requestA.setArtifact( artifactA );
+
+ VersionResult resultA = versionResolver.resolveVersion( session, requestA );
+ assertEquals( versionA, resultA.getVersion() );
+
+ VersionRequest requestB = new VersionRequest();
+ requestB.addRepository( newTestRepository() );
+ String versionB = "07.20.3-20120809.112920-97";
+ Artifact artifactB =
+ new DefaultArtifact( "org.apache.maven.its", "dep-mng5324", "classifierB", "jar", versionB );
+ requestB.setArtifact( artifactB );
+
+ VersionResult resultB = versionResolver.resolveVersion( session, requestB );
+ assertEquals( versionB, resultB.getVersion() );
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/MavenRepositorySystemUtilsTest.java b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/MavenRepositorySystemUtilsTest.java
new file mode 100644
index 00000000..768835a5
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/MavenRepositorySystemUtilsTest.java
@@ -0,0 +1,45 @@
+package org.apache.maven.repository.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.eclipse.aether.RepositorySystem;
+import org.eclipse.aether.impl.MetadataGeneratorFactory;
+import org.eclipse.aether.spi.locator.ServiceLocator;
+
+import junit.framework.TestCase;
+
+public class MavenRepositorySystemUtilsTest
+ extends TestCase
+{
+
+ public void testGetRepositorySystem()
+ {
+ ServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator();
+ RepositorySystem repoSys = locator.getService( RepositorySystem.class );
+ assertNotNull( repoSys );
+ }
+
+ public void testGetMetadataGeneratorFactories()
+ {
+ ServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator();
+ assertEquals( 2, locator.getServices( MetadataGeneratorFactory.class ).size() );
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/RepositorySystemTest.java b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/RepositorySystemTest.java
new file mode 100644
index 00000000..db77a441
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/RepositorySystemTest.java
@@ -0,0 +1,220 @@
+package org.apache.maven.repository.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.Arrays;
+import java.util.List;
+
+import org.eclipse.aether.artifact.Artifact;
+import org.eclipse.aether.collection.CollectRequest;
+import org.eclipse.aether.collection.CollectResult;
+import org.eclipse.aether.graph.Dependency;
+import org.eclipse.aether.graph.DependencyNode;
+import org.eclipse.aether.resolution.ArtifactDescriptorRequest;
+import org.eclipse.aether.resolution.ArtifactDescriptorResult;
+import org.eclipse.aether.resolution.ArtifactRequest;
+import org.eclipse.aether.resolution.ArtifactResult;
+import org.eclipse.aether.artifact.DefaultArtifact;
+
+public class RepositorySystemTest
+ extends AbstractRepositoryTestCase
+{
+ public void testResolveVersionRange()
+ throws Exception
+ {
+ //VersionRangeResult resolveVersionRange( RepositorySystemSession session, VersionRangeRequest request )
+ // throws VersionRangeResolutionException;
+
+ }
+
+ public void testResolveVersion()
+ throws Exception
+ {
+ //VersionResult resolveVersion( RepositorySystemSession session, VersionRequest request )
+ // throws VersionResolutionException;
+ }
+
+ public void testReadArtifactDescriptor()
+ throws Exception
+ {
+ Artifact artifact = new DefaultArtifact( "ut.simple:artifact:extension:classifier:1.0" );
+
+ ArtifactDescriptorRequest request = new ArtifactDescriptorRequest();
+ request.setArtifact( artifact );
+ request.addRepository( newTestRepository() );
+
+ ArtifactDescriptorResult result = system.readArtifactDescriptor( session, request );
+
+ List deps = result.getDependencies();
+ assertEquals( 2, deps.size() );
+ checkUtSimpleArtifactDependencies( deps.get( 0 ), deps.get( 1 ) );
+ }
+
+ /**
+ * check ut.simple:artifact:1.0 dependencies
+ */
+ private void checkUtSimpleArtifactDependencies( Dependency dep1, Dependency dep2 )
+ {
+ assertEquals( "compile", dep1.getScope() );
+ assertFalse( dep1.isOptional() );
+ assertEquals( 0, dep1.getExclusions().size() );
+ Artifact depArtifact = dep1.getArtifact();
+ assertEquals( "ut.simple", depArtifact.getGroupId() );
+ assertEquals( "dependency", depArtifact.getArtifactId() );
+ assertEquals( "1.0", depArtifact.getVersion() );
+ assertEquals( "1.0", depArtifact.getBaseVersion() );
+ assertNull( depArtifact.getFile() );
+ assertFalse( depArtifact.isSnapshot() );
+ assertEquals( "", depArtifact.getClassifier() );
+ assertEquals( "jar", depArtifact.getExtension() );
+ assertEquals( "java", depArtifact.getProperty( "language", null ) );
+ assertEquals( "jar", depArtifact.getProperty( "type", null ) );
+ assertEquals( "true", depArtifact.getProperty( "constitutesBuildPath", null ) );
+ assertEquals( "false", depArtifact.getProperty( "includesDependencies", null ) );
+ assertEquals( 4, depArtifact.getProperties().size() );
+
+ assertEquals( "compile", dep2.getScope() );
+ assertFalse( dep2.isOptional() );
+ assertEquals( 0, dep2.getExclusions().size() );
+ depArtifact = dep2.getArtifact();
+ assertEquals( "ut.simple", depArtifact.getGroupId() );
+ assertEquals( "dependency", depArtifact.getArtifactId() );
+ assertEquals( "1.0", depArtifact.getVersion() );
+ assertEquals( "1.0", depArtifact.getBaseVersion() );
+ assertNull( depArtifact.getFile() );
+ assertFalse( depArtifact.isSnapshot() );
+ assertEquals( "sources", depArtifact.getClassifier() );
+ assertEquals( "jar", depArtifact.getExtension() );
+ assertEquals( "java", depArtifact.getProperty( "language", null ) );
+ assertEquals( "jar", depArtifact.getProperty( "type", null ) ); // shouldn't it be java-sources given the classifier?
+ assertEquals( "true", depArtifact.getProperty( "constitutesBuildPath", null ) ); // shouldn't it be false given the classifier?
+ assertEquals( "false", depArtifact.getProperty( "includesDependencies", null ) );
+ assertEquals( 4, depArtifact.getProperties().size() );
+ }
+
+ public void testCollectDependencies()
+ throws Exception
+ {
+ Artifact artifact = new DefaultArtifact( "ut.simple:artifact:extension:classifier:1.0" );
+ // notice: extension and classifier not really used in this test...
+
+ CollectRequest collectRequest = new CollectRequest();
+ collectRequest.setRoot( new Dependency( artifact, null ) );
+ collectRequest.addRepository( newTestRepository() );
+
+ CollectResult collectResult = system.collectDependencies( session, collectRequest );
+
+ List nodes = collectResult.getRoot().getChildren();
+ assertEquals( 2, nodes.size() );
+ checkUtSimpleArtifactDependencies( nodes.get( 0 ).getDependency(), nodes.get( 1 ).getDependency() );
+ }
+
+ public void testResolveArtifact()
+ throws Exception
+ {
+ Artifact artifact = new DefaultArtifact( "ut.simple:artifact:1.0" );
+
+ ArtifactRequest artifactRequest = new ArtifactRequest();
+ artifactRequest.setArtifact( artifact );
+ artifactRequest.addRepository( newTestRepository() );
+
+ ArtifactResult artifactResult = system.resolveArtifact( session, artifactRequest );
+ checkArtifactResult( artifactResult, "artifact-1.0.jar" );
+
+ artifact = new DefaultArtifact( "ut.simple:artifact:zip:1.0" );
+ artifactRequest.setArtifact( artifact );
+ artifactResult = system.resolveArtifact( session, artifactRequest );
+ checkArtifactResult( artifactResult, "artifact-1.0.zip" );
+
+ artifact = new DefaultArtifact( "ut.simple:artifact:zip:classifier:1.0" );
+ artifactRequest.setArtifact( artifact );
+ artifactResult = system.resolveArtifact( session, artifactRequest );
+ checkArtifactResult( artifactResult, "artifact-1.0-classifier.zip" );
+ }
+
+ private void checkArtifactResult( ArtifactResult result, String filename )
+ {
+ assertFalse( result.isMissing() );
+ assertTrue( result.isResolved() );
+ Artifact artifact = result.getArtifact();
+ assertNotNull( artifact.getFile() );
+ assertEquals( filename, artifact.getFile().getName() );
+ }
+
+ public void testResolveArtifacts()
+ throws Exception
+ {
+ ArtifactRequest req1 = new ArtifactRequest();
+ req1.setArtifact( new DefaultArtifact( "ut.simple:artifact:1.0" ) );
+ req1.addRepository( newTestRepository() );
+
+ ArtifactRequest req2 = new ArtifactRequest();
+ req2.setArtifact( new DefaultArtifact( "ut.simple:artifact:zip:1.0" ) );
+ req2.addRepository( newTestRepository() );
+
+ ArtifactRequest req3 = new ArtifactRequest();
+ req3.setArtifact( new DefaultArtifact( "ut.simple:artifact:zip:classifier:1.0" ) );
+ req3.addRepository( newTestRepository() );
+
+ List requests = Arrays.asList( req1, req2, req3 );
+
+ List results = system.resolveArtifacts( session, requests );
+
+ assertEquals( 3, results.size() );
+ checkArtifactResult( results.get( 0 ), "artifact-1.0.jar" );
+ checkArtifactResult( results.get( 1 ), "artifact-1.0.zip" );
+ checkArtifactResult( results.get( 2 ), "artifact-1.0-classifier.zip" );
+ }
+
+ public void testResolveMetadata()
+ throws Exception
+ {
+ //List resolveMetadata( RepositorySystemSession session,
+ // Collection extends MetadataRequest> requests );
+ }
+
+ public void testInstall()
+ throws Exception
+ {
+ //InstallResult install( RepositorySystemSession session, InstallRequest request )
+ // throws InstallationException;
+ // release, snapshot unique ou non unique, attachement
+ }
+
+ public void testDeploy()
+ throws Exception
+ {
+ //DeployResult deploy( RepositorySystemSession session, DeployRequest request )
+ // throws DeploymentException;
+ }
+
+ public void testNewLocalRepositoryManager()
+ throws Exception
+ {
+ //LocalRepositoryManager newLocalRepositoryManager( LocalRepository localRepository );
+ }
+
+ public void testNewSyncContext()
+ throws Exception
+ {
+ //SyncContext newSyncContext( RepositorySystemSession session, boolean shared );
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/util/ConsoleRepositoryListener.java b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/util/ConsoleRepositoryListener.java
new file mode 100644
index 00000000..2879a9fe
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/util/ConsoleRepositoryListener.java
@@ -0,0 +1,132 @@
+package org.apache.maven.repository.internal.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 java.io.PrintStream;
+
+import org.eclipse.aether.AbstractRepositoryListener;
+import org.eclipse.aether.RepositoryEvent;
+
+public class ConsoleRepositoryListener
+ extends AbstractRepositoryListener
+{
+
+ private PrintStream out;
+
+ public ConsoleRepositoryListener()
+ {
+ this( null );
+ }
+
+ public ConsoleRepositoryListener( PrintStream out )
+ {
+ this.out = ( out != null ) ? out : System.out;
+ }
+
+ public void artifactDeployed( RepositoryEvent event )
+ {
+ println( "artifactDeployed", event.getArtifact() + " to " + event.getRepository() );
+ }
+
+ public void artifactDeploying( RepositoryEvent event )
+ {
+ println( "artifactDeploying", event.getArtifact() + " to " + event.getRepository() );
+ }
+
+ public void artifactDescriptorInvalid( RepositoryEvent event )
+ {
+ println( "artifactDescriptorInvalid", "for " + event.getArtifact() + ": " + event.getException().getMessage() );
+ }
+
+ public void artifactDescriptorMissing( RepositoryEvent event )
+ {
+ println( "artifactDescriptorMissing", "for " + event.getArtifact() );
+ }
+
+ public void artifactInstalled( RepositoryEvent event )
+ {
+ println( "artifactInstalled", event.getArtifact() + " to " + event.getFile() );
+ }
+
+ public void artifactInstalling( RepositoryEvent event )
+ {
+ println( "artifactInstalling", event.getArtifact() + " to " + event.getFile() );
+ }
+
+ public void artifactResolved( RepositoryEvent event )
+ {
+ println( "artifactResolved", event.getArtifact() + " from " + event.getRepository() );
+ }
+
+ public void artifactDownloading( RepositoryEvent event )
+ {
+ println( "artifactDownloading", event.getArtifact() + " from " + event.getRepository() );
+ }
+
+ public void artifactDownloaded( RepositoryEvent event )
+ {
+ println( "artifactDownloaded", event.getArtifact() + " from " + event.getRepository() );
+ }
+
+ public void artifactResolving( RepositoryEvent event )
+ {
+ println( "artifactResolving", event.getArtifact().toString() );
+ }
+
+ public void metadataDeployed( RepositoryEvent event )
+ {
+ println( "metadataDeployed", event.getMetadata() + " to " + event.getRepository() );
+ }
+
+ public void metadataDeploying( RepositoryEvent event )
+ {
+ println( "metadataDeploying", event.getMetadata() + " to " + event.getRepository() );
+ }
+
+ public void metadataInstalled( RepositoryEvent event )
+ {
+ println( "metadataInstalled", event.getMetadata() + " to " + event.getFile() );
+ }
+
+ public void metadataInstalling( RepositoryEvent event )
+ {
+ println( "metadataInstalling", event.getMetadata() + " to " + event.getFile() );
+ }
+
+ public void metadataInvalid( RepositoryEvent event )
+ {
+ println( "metadataInvalid", event.getMetadata().toString() );
+ }
+
+ public void metadataResolved( RepositoryEvent event )
+ {
+ println( "metadataResolved", event.getMetadata() + " from " + event.getRepository() );
+ }
+
+ public void metadataResolving( RepositoryEvent event )
+ {
+ println( "metadataResolving", event.getMetadata() + " from " + event.getRepository() );
+ }
+
+ private void println( String event, String message )
+ {
+ out.println( "Aether Repository - " + event + ": " + message );
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/util/ConsoleTransferListener.java b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/util/ConsoleTransferListener.java
new file mode 100644
index 00000000..fb442834
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/util/ConsoleTransferListener.java
@@ -0,0 +1,186 @@
+package org.apache.maven.repository.internal.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 java.io.PrintStream;
+import java.text.DecimalFormat;
+import java.text.DecimalFormatSymbols;
+import java.util.Locale;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.eclipse.aether.transfer.AbstractTransferListener;
+import org.eclipse.aether.transfer.TransferEvent;
+import org.eclipse.aether.transfer.TransferResource;
+
+public class ConsoleTransferListener
+ extends AbstractTransferListener
+{
+
+ private PrintStream out;
+
+ private Map downloads = new ConcurrentHashMap();
+
+ private int lastLength;
+
+ public ConsoleTransferListener()
+ {
+ this( null );
+ }
+
+ public ConsoleTransferListener( PrintStream out )
+ {
+ this.out = ( out != null ) ? out : System.out;
+ }
+
+ @Override
+ public void transferInitiated( TransferEvent event )
+ {
+ String message = event.getRequestType() == TransferEvent.RequestType.PUT ? "Uploading" : "Downloading";
+
+ println( "transferInitiated", message + ": " + event.getResource().getRepositoryUrl() + event.getResource().getResourceName() );
+ }
+
+ @Override
+ public void transferProgressed( TransferEvent event )
+ {
+ TransferResource resource = event.getResource();
+ downloads.put( resource, event.getTransferredBytes() );
+
+ StringBuilder buffer = new StringBuilder( 64 );
+
+ for ( Map.Entry entry : downloads.entrySet() )
+ {
+ long total = entry.getKey().getContentLength();
+ long complete = entry.getValue();
+
+ buffer.append( getStatus( complete, total ) ).append( " " );
+ }
+
+ int pad = lastLength - buffer.length();
+ lastLength = buffer.length();
+ pad( buffer, pad );
+ buffer.append( '\r' );
+
+ print( "transferProgressed", buffer.toString() );
+ }
+
+ private String getStatus( long complete, long total )
+ {
+ if ( total >= 1024 )
+ {
+ return toKB( complete ) + "/" + toKB( total ) + " KB ";
+ }
+ else if ( total >= 0 )
+ {
+ return complete + "/" + total + " B ";
+ }
+ else if ( complete >= 1024 )
+ {
+ return toKB( complete ) + " KB ";
+ }
+ else
+ {
+ return complete + " B ";
+ }
+ }
+
+ private void pad( StringBuilder buffer, int spaces )
+ {
+ String block = " ";
+ while ( spaces > 0 )
+ {
+ int n = Math.min( spaces, block.length() );
+ buffer.append( block, 0, n );
+ spaces -= n;
+ }
+ }
+
+ @Override
+ public void transferSucceeded( TransferEvent event )
+ {
+ transferCompleted( event );
+
+ TransferResource resource = event.getResource();
+ long contentLength = event.getTransferredBytes();
+ if ( contentLength >= 0 )
+ {
+ String type = ( event.getRequestType() == TransferEvent.RequestType.PUT ? "Uploaded" : "Downloaded" );
+ String len = contentLength >= 1024 ? toKB( contentLength ) + " KB" : contentLength + " B";
+
+ String throughput = "";
+ long duration = System.currentTimeMillis() - resource.getTransferStartTime();
+ if ( duration > 0 )
+ {
+ DecimalFormat format = new DecimalFormat( "0.0", new DecimalFormatSymbols( Locale.ENGLISH ) );
+ double kbPerSec = ( contentLength / 1024.0 ) / ( duration / 1000.0 );
+ throughput = " at " + format.format( kbPerSec ) + " KB/sec";
+ }
+
+ println( "transferSucceeded", type + ": " + resource.getRepositoryUrl() + resource.getResourceName() + " ("
+ + len + throughput + ")" );
+ }
+ }
+
+ @Override
+ public void transferFailed( TransferEvent event )
+ {
+ transferCompleted( event );
+
+ println( "transferFailed", event.getException().getClass() + ": " + event.getException().getMessage() );
+ }
+
+ private void transferCompleted( TransferEvent event )
+ {
+ downloads.remove( event.getResource() );
+
+ StringBuilder buffer = new StringBuilder( 64 );
+ pad( buffer, lastLength );
+ buffer.append( '\r' );
+ out.println( buffer );
+ }
+
+ @Override
+ public void transferCorrupted( TransferEvent event )
+ {
+ println( "transferCorrupted", event.getException().getClass() + ": " + event.getException().getMessage() );
+ }
+
+ protected long toKB( long bytes )
+ {
+ return ( bytes + 1023 ) / 1024;
+ }
+
+ private void println( String event, String message )
+ {
+ print( event, message );
+ out.println();
+ }
+
+ private void print( String event, String message )
+ {
+ out.print( "Aether Transfer - " + event );
+ if ( message != null )
+ {
+ out.print( ": " );
+ out.print( message );
+ }
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5324/07.20.3-SNAPSHOT/maven-metadata.xml b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5324/07.20.3-SNAPSHOT/maven-metadata.xml
new file mode 100644
index 00000000..9f0a7fed
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5324/07.20.3-SNAPSHOT/maven-metadata.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+ org.apache.maven.its
+ dep-mng5324
+ 07.20.3-SNAPSHOT
+
+
+ 20120809.112920
+ 97
+
+ 20120809112920
+
+
+ classifierA
+ jar
+ 07.20.3-20120809.112124-88
+ 20120809112124
+
+
+ classifierB
+ jar
+ 07.20.3-20120809.112920-97
+ 20120809112920
+
+
+
+
\ No newline at end of file
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5459/0.4.0-SNAPSHOT/maven-metadata.xml b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5459/0.4.0-SNAPSHOT/maven-metadata.xml
new file mode 100644
index 00000000..923f26fe
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5459/0.4.0-SNAPSHOT/maven-metadata.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+ org.apache.maven.its
+ dep-mng5459
+ 0.4.0-SNAPSHOT
+
+
+ 20130404.090532
+ 2
+
+ 20130404093657
+
+
+ pom
+ 0.4.0-20130404.090532-2
+ 20130404090532
+
+
+ jar
+ 0.4.0-20130404.093655-3
+ 20130404093655
+
+
+
+
\ No newline at end of file
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0-classifier.zip b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0-classifier.zip
new file mode 100644
index 00000000..e69de29b
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0.jar b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0.jar
new file mode 100644
index 00000000..e69de29b
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0.pom b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0.pom
new file mode 100644
index 00000000..f8b72af5
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0.pom
@@ -0,0 +1,48 @@
+
+
+
+
+
+ 4.0.0
+
+
+ ut.simple
+ parent
+ 1.0
+
+
+ artifact
+
+ Simple Unit Test Artifact
+
+
+
+ ut.simple
+ dependency
+
+
+ ut.simple
+ dependency
+ 1.0
+ sources
+
+
+
\ No newline at end of file
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0.zip b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0.zip
new file mode 100644
index 00000000..e69de29b
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/maven-metadata.xml b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/maven-metadata.xml
new file mode 100644
index 00000000..2de7eccf
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/maven-metadata.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+ ut.simple
+ artifact
+
+ 1.0
+ 1.0
+
+ 1.0
+
+ 20111123122038
+
+
\ No newline at end of file
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/1.0/dependency-1.0-sources.jar b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/1.0/dependency-1.0-sources.jar
new file mode 100644
index 00000000..e69de29b
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/1.0/dependency-1.0.jar b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/1.0/dependency-1.0.jar
new file mode 100644
index 00000000..e69de29b
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/1.0/dependency-1.0.pom b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/1.0/dependency-1.0.pom
new file mode 100644
index 00000000..c021dfac
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/1.0/dependency-1.0.pom
@@ -0,0 +1,31 @@
+
+
+
+
+
+ 4.0.0
+
+ ut.simple
+ dependency
+ 1.0
+
+ Simple Unit Test Dependency
+
\ No newline at end of file
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/maven-metadata.xml b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/maven-metadata.xml
new file mode 100644
index 00000000..8a97c341
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/maven-metadata.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+ ut.simple
+ dependency
+
+ 1.0
+ 1.0
+
+ 1.0
+
+ 20111123122038
+
+
\ No newline at end of file
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/parent/1.0/parent-1.0.pom b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/parent/1.0/parent-1.0.pom
new file mode 100644
index 00000000..ed64c9e6
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/parent/1.0/parent-1.0.pom
@@ -0,0 +1,43 @@
+
+
+
+
+
+ 4.0.0
+
+ ut.simple
+ parent
+ 1.0
+ pom
+
+ Simple Unit Test Parent
+
+
+
+
+ ut.simple
+ dependency
+ 1.0
+
+
+
+
+
\ No newline at end of file
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/parent/maven-metadata.xml b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/parent/maven-metadata.xml
new file mode 100644
index 00000000..7199d52a
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-aether-provider/src/test/resources/repo/ut/simple/parent/maven-metadata.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+ ut.simple
+ parent
+
+ 1.0
+ 1.0
+
+ 1.0
+
+ 20111123122038
+
+
\ No newline at end of file
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-ant-tasks-2.1.1.jar b/framework/src/maven/apache-maven-3.3.3/maven-ant-tasks-2.1.1.jar
new file mode 100644
index 00000000..7810a541
Binary files /dev/null and b/framework/src/maven/apache-maven-3.3.3/maven-ant-tasks-2.1.1.jar differ
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-artifact/pom.xml b/framework/src/maven/apache-maven-3.3.3/maven-artifact/pom.xml
new file mode 100644
index 00000000..206d72b8
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-artifact/pom.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+ 4.0.0
+
+
+ org.apache.maven
+ maven
+ 3.3.3
+
+
+ maven-artifact
+
+ Maven Artifact
+
+
+ scm:git:https://git-wip-us.apache.org/repos/asf/maven.git
+ scm:git:https://git-wip-us.apache.org/repos/asf/maven.git
+ maven-3.3.3
+
+
+
+
+ org.codehaus.plexus
+ plexus-utils
+
+
+
+
+
+
+ org.codehaus.plexus
+ plexus-component-metadata
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+ org.apache.maven.artifact.versioning.ComparableVersion
+
+
+
+
+
+
+
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/Artifact.java b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/Artifact.java
new file mode 100644
index 00000000..6cc00226
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/Artifact.java
@@ -0,0 +1,161 @@
+package org.apache.maven.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.util.Collection;
+import java.util.List;
+import java.util.regex.Pattern;
+
+import org.apache.maven.artifact.handler.ArtifactHandler;
+import org.apache.maven.artifact.metadata.ArtifactMetadata;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
+import org.apache.maven.artifact.versioning.ArtifactVersion;
+import org.apache.maven.artifact.versioning.OverConstrainedVersionException;
+import org.apache.maven.artifact.versioning.VersionRange;
+
+/**
+ * Maven Artifact interface. Notice that it mixes artifact definition concepts (groupId, artifactId, version)
+ * with dependency information (version range, scope).
+ */
+public interface Artifact
+ extends Comparable
+{
+
+ String RELEASE_VERSION = "RELEASE";
+
+ String LATEST_VERSION = "LATEST";
+
+ String SNAPSHOT_VERSION = "SNAPSHOT";
+
+ Pattern VERSION_FILE_PATTERN = Pattern.compile( "^(.*)-([0-9]{8}.[0-9]{6})-([0-9]+)$" );
+
+ // TODO: into artifactScope handler
+
+ String SCOPE_COMPILE = "compile";
+
+ String SCOPE_COMPILE_PLUS_RUNTIME = "compile+runtime";
+
+ String SCOPE_TEST = "test";
+
+ String SCOPE_RUNTIME = "runtime";
+
+ String SCOPE_RUNTIME_PLUS_SYSTEM = "runtime+system";
+
+ String SCOPE_PROVIDED = "provided";
+
+ String SCOPE_SYSTEM = "system";
+
+ String SCOPE_IMPORT = "import"; // Used to import dependencyManagement dependencies
+
+ String getGroupId();
+
+ String getArtifactId();
+
+ String getVersion();
+
+ void setVersion( String version );
+
+ String getScope();
+
+ String getType();
+
+ String getClassifier();
+
+ boolean hasClassifier();
+
+ File getFile();
+
+ void setFile( File destination );
+
+ String getBaseVersion();
+
+ void setBaseVersion( String baseVersion );
+
+ String getId();
+
+ String getDependencyConflictId();
+
+ void addMetadata( ArtifactMetadata metadata );
+
+ Collection getMetadataList();
+
+ void setRepository( ArtifactRepository remoteRepository );
+
+ ArtifactRepository getRepository();
+
+ void updateVersion( String version, ArtifactRepository localRepository );
+
+ String getDownloadUrl();
+
+ void setDownloadUrl( String downloadUrl );
+
+ ArtifactFilter getDependencyFilter();
+
+ void setDependencyFilter( ArtifactFilter artifactFilter );
+
+ ArtifactHandler getArtifactHandler();
+
+ List getDependencyTrail();
+
+ void setDependencyTrail( List dependencyTrail );
+
+ void setScope( String scope );
+
+ VersionRange getVersionRange();
+
+ void setVersionRange( VersionRange newRange );
+
+ void selectVersion( String version );
+
+ void setGroupId( String groupId );
+
+ void setArtifactId( String artifactId );
+
+ boolean isSnapshot();
+
+ void setResolved( boolean resolved );
+
+ boolean isResolved();
+
+ void setResolvedVersion( String version );
+
+ void setArtifactHandler( ArtifactHandler handler );
+
+ boolean isRelease();
+
+ void setRelease( boolean release );
+
+ List getAvailableVersions();
+
+ void setAvailableVersions( List versions );
+
+ boolean isOptional();
+
+ void setOptional( boolean optional );
+
+ ArtifactVersion getSelectedVersion()
+ throws OverConstrainedVersionException;
+
+ boolean isSelectedVersionKnown()
+ throws OverConstrainedVersionException;
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java
new file mode 100644
index 00000000..8efc45cd
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java
@@ -0,0 +1,215 @@
+package org.apache.maven.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.Collection;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Matcher;
+
+import org.apache.maven.artifact.versioning.VersionRange;
+
+public final class ArtifactUtils
+{
+
+ public static boolean isSnapshot( String version )
+ {
+ if ( version != null )
+ {
+ if ( version.regionMatches( true, version.length() - Artifact.SNAPSHOT_VERSION.length(),
+ Artifact.SNAPSHOT_VERSION, 0, Artifact.SNAPSHOT_VERSION.length() ) )
+ {
+ return true;
+ }
+ else if ( Artifact.VERSION_FILE_PATTERN.matcher( version ).matches() )
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public static String toSnapshotVersion( String version )
+ {
+ if ( version == null )
+ {
+ throw new IllegalArgumentException( "version: null" );
+ }
+
+ Matcher m = Artifact.VERSION_FILE_PATTERN.matcher( version );
+ if ( m.matches() )
+ {
+ return m.group( 1 ) + "-" + Artifact.SNAPSHOT_VERSION;
+ }
+ else
+ {
+ return version;
+ }
+ }
+
+ public static String versionlessKey( Artifact artifact )
+ {
+ return versionlessKey( artifact.getGroupId(), artifact.getArtifactId() );
+ }
+
+ public static String versionlessKey( String groupId, String artifactId )
+ {
+ if ( groupId == null )
+ {
+ throw new NullPointerException( "groupId is null" );
+ }
+ if ( artifactId == null )
+ {
+ throw new NullPointerException( "artifactId is null" );
+ }
+ return groupId + ":" + artifactId;
+ }
+
+ public static String key( Artifact artifact )
+ {
+ return key( artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion() );
+ }
+
+ public static String key( String groupId, String artifactId, String version )
+ {
+ if ( groupId == null )
+ {
+ throw new NullPointerException( "groupId is null" );
+ }
+ if ( artifactId == null )
+ {
+ throw new NullPointerException( "artifactId is null" );
+ }
+ if ( version == null )
+ {
+ throw new NullPointerException( "version is null" );
+ }
+
+ return groupId + ":" + artifactId + ":" + version;
+ }
+
+ public static Map artifactMapByVersionlessId( Collection artifacts )
+ {
+ Map artifactMap = new LinkedHashMap();
+
+ if ( artifacts != null )
+ {
+ for ( Artifact artifact : artifacts )
+ {
+ artifactMap.put( versionlessKey( artifact ), artifact );
+ }
+ }
+
+ return artifactMap;
+ }
+
+ public static Artifact copyArtifactSafe( Artifact artifact )
+ {
+ return ( artifact != null ) ? copyArtifact( artifact ) : null;
+ }
+
+ public static Artifact copyArtifact( Artifact artifact )
+ {
+ VersionRange range = artifact.getVersionRange();
+
+ // For some reason with the introduction of MNG-1577 we have the case in Yoko where a depMan section has
+ // something like the following:
+ //
+ //
+ //
+ //
+ //
+ // org.apache.yoko
+ // yoko-core
+ // ${version}
+ //
+ // ...
+ //
+ // And the range is not set so we'll check here and set it. jvz.
+
+ if ( range == null )
+ {
+ range = VersionRange.createFromVersion( artifact.getVersion() );
+ }
+
+ DefaultArtifact clone = new DefaultArtifact( artifact.getGroupId(), artifact.getArtifactId(), range.cloneOf(),
+ artifact.getScope(), artifact.getType(), artifact.getClassifier(),
+ artifact.getArtifactHandler(), artifact.isOptional() );
+ clone.setRelease( artifact.isRelease() );
+ clone.setResolvedVersion( artifact.getVersion() );
+ clone.setResolved( artifact.isResolved() );
+ clone.setFile( artifact.getFile() );
+
+ clone.setAvailableVersions( copyList( artifact.getAvailableVersions() ) );
+ if ( artifact.getVersion() != null )
+ {
+ clone.setBaseVersion( artifact.getBaseVersion() );
+ }
+ clone.setDependencyFilter( artifact.getDependencyFilter() );
+ clone.setDependencyTrail( copyList( artifact.getDependencyTrail() ) );
+ clone.setDownloadUrl( artifact.getDownloadUrl() );
+ clone.setRepository( artifact.getRepository() );
+
+ return clone;
+ }
+
+ /** Returns to
collection */
+ public static > T copyArtifacts( Collection from, T to )
+ {
+ for ( Artifact artifact : from )
+ {
+ to.add( ArtifactUtils.copyArtifact( artifact ) );
+ }
+ return to;
+ }
+
+ public static > T copyArtifacts( Map from, T to )
+ {
+ if ( from != null )
+ {
+ for ( Map.Entry entry : from.entrySet() )
+ {
+ to.put( entry.getKey(), ArtifactUtils.copyArtifact( entry.getValue() ) );
+ }
+ }
+
+ return to;
+ }
+
+ private static List copyList( List original )
+ {
+ List copy = null;
+
+ if ( original != null )
+ {
+ copy = new ArrayList();
+
+ if ( !original.isEmpty() )
+ {
+ copy.addAll( original );
+ }
+ }
+
+ return copy;
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/DefaultArtifact.java b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/DefaultArtifact.java
new file mode 100644
index 00000000..e3e42c0a
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/DefaultArtifact.java
@@ -0,0 +1,597 @@
+package org.apache.maven.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.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Matcher;
+
+import org.apache.maven.artifact.handler.ArtifactHandler;
+import org.apache.maven.artifact.metadata.ArtifactMetadata;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
+import org.apache.maven.artifact.versioning.ArtifactVersion;
+import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
+import org.apache.maven.artifact.versioning.OverConstrainedVersionException;
+import org.apache.maven.artifact.versioning.VersionRange;
+import org.codehaus.plexus.util.StringUtils;
+
+/**
+ * @author Jason van Zyl
+ */
+public class DefaultArtifact
+ implements Artifact
+{
+ private String groupId;
+
+ private String artifactId;
+
+ private String baseVersion;
+
+ private final String type;
+
+ private final String classifier;
+
+ private volatile String scope;
+
+ private volatile File file;
+
+ private ArtifactRepository repository;
+
+ private String downloadUrl;
+
+ private ArtifactFilter dependencyFilter;
+
+ private ArtifactHandler artifactHandler;
+
+ private List dependencyTrail;
+
+ private volatile String version;
+
+ private VersionRange versionRange;
+
+ private volatile boolean resolved;
+
+ private boolean release;
+
+ private List availableVersions;
+
+ private Map metadataMap;
+
+ private boolean optional;
+
+ public DefaultArtifact( String groupId, String artifactId, String version, String scope, String type,
+ String classifier, ArtifactHandler artifactHandler )
+ {
+ this( groupId, artifactId, VersionRange.createFromVersion( version ), scope, type, classifier, artifactHandler,
+ false );
+ }
+
+ public DefaultArtifact( String groupId, String artifactId, VersionRange versionRange, String scope, String type,
+ String classifier, ArtifactHandler artifactHandler )
+ {
+ this( groupId, artifactId, versionRange, scope, type, classifier, artifactHandler, false );
+ }
+
+ public DefaultArtifact( String groupId, String artifactId, VersionRange versionRange, String scope, String type,
+ String classifier, ArtifactHandler artifactHandler, boolean optional )
+ {
+ this.groupId = groupId;
+
+ this.artifactId = artifactId;
+
+ this.versionRange = versionRange;
+
+ selectVersionFromNewRangeIfAvailable();
+
+ this.artifactHandler = artifactHandler;
+
+ this.scope = scope;
+
+ this.type = type;
+
+ if ( classifier == null )
+ {
+ classifier = artifactHandler.getClassifier();
+ }
+
+ this.classifier = classifier;
+
+ this.optional = optional;
+
+ validateIdentity();
+ }
+
+ private void validateIdentity()
+ {
+ if ( empty( groupId ) )
+ {
+ throw new InvalidArtifactRTException( groupId, artifactId, getVersion(), type,
+ "The groupId cannot be empty." );
+ }
+
+ if ( artifactId == null )
+ {
+ throw new InvalidArtifactRTException( groupId, artifactId, getVersion(), type,
+ "The artifactId cannot be empty." );
+ }
+
+ if ( type == null )
+ {
+ throw new InvalidArtifactRTException( groupId, artifactId, getVersion(), type,
+ "The type cannot be empty." );
+ }
+
+ if ( ( version == null ) && ( versionRange == null ) )
+ {
+ throw new InvalidArtifactRTException( groupId, artifactId, getVersion(), type,
+ "The version cannot be empty." );
+ }
+ }
+
+ private boolean empty( String value )
+ {
+ return ( value == null ) || ( value.trim().length() < 1 );
+ }
+
+ public String getClassifier()
+ {
+ return classifier;
+ }
+
+ public boolean hasClassifier()
+ {
+ return StringUtils.isNotEmpty( classifier );
+ }
+
+ public String getScope()
+ {
+ return scope;
+ }
+
+ public String getGroupId()
+ {
+ return groupId;
+ }
+
+ public String getArtifactId()
+ {
+ return artifactId;
+ }
+
+ public String getVersion()
+ {
+ return version;
+ }
+
+ public void setVersion( String version )
+ {
+ this.version = version;
+ setBaseVersionInternal( version );
+ versionRange = null;
+ }
+
+ public String getType()
+ {
+ return type;
+ }
+
+ public void setFile( File file )
+ {
+ this.file = file;
+ }
+
+ public File getFile()
+ {
+ return file;
+ }
+
+ public ArtifactRepository getRepository()
+ {
+ return repository;
+ }
+
+ public void setRepository( ArtifactRepository repository )
+ {
+ this.repository = repository;
+ }
+
+ // ----------------------------------------------------------------------
+ //
+ // ----------------------------------------------------------------------
+
+ public String getId()
+ {
+ return getDependencyConflictId() + ":" + getBaseVersion();
+ }
+
+ public String getDependencyConflictId()
+ {
+ StringBuilder sb = new StringBuilder( 128 );
+ sb.append( getGroupId() );
+ sb.append( ":" );
+ appendArtifactTypeClassifierString( sb );
+ return sb.toString();
+ }
+
+ private void appendArtifactTypeClassifierString( StringBuilder sb )
+ {
+ sb.append( getArtifactId() );
+ sb.append( ":" );
+ sb.append( getType() );
+ if ( hasClassifier() )
+ {
+ sb.append( ":" );
+ sb.append( getClassifier() );
+ }
+ }
+
+ public void addMetadata( ArtifactMetadata metadata )
+ {
+ if ( metadataMap == null )
+ {
+ metadataMap = new HashMap();
+ }
+
+ ArtifactMetadata m = metadataMap.get( metadata.getKey() );
+ if ( m != null )
+ {
+ m.merge( metadata );
+ }
+ else
+ {
+ metadataMap.put( metadata.getKey(), metadata );
+ }
+ }
+
+ public Collection getMetadataList()
+ {
+ if ( metadataMap == null )
+ {
+ return Collections.emptyList();
+ }
+
+ return metadataMap.values();
+ }
+
+ // ----------------------------------------------------------------------
+ // Object overrides
+ // ----------------------------------------------------------------------
+
+ public String toString()
+ {
+ StringBuilder sb = new StringBuilder();
+ if ( getGroupId() != null )
+ {
+ sb.append( getGroupId() );
+ sb.append( ":" );
+ }
+ appendArtifactTypeClassifierString( sb );
+ sb.append( ":" );
+ if ( getBaseVersionInternal() != null )
+ {
+ sb.append( getBaseVersionInternal() );
+ }
+ else
+ {
+ sb.append( versionRange.toString() );
+ }
+ if ( scope != null )
+ {
+ sb.append( ":" );
+ sb.append( scope );
+ }
+ return sb.toString();
+ }
+
+ public int hashCode()
+ {
+ int result = 17;
+ result = 37 * result + groupId.hashCode();
+ result = 37 * result + artifactId.hashCode();
+ result = 37 * result + type.hashCode();
+ if ( version != null )
+ {
+ result = 37 * result + version.hashCode();
+ }
+ result = 37 * result + ( classifier != null ? classifier.hashCode() : 0 );
+ return result;
+ }
+
+ public boolean equals( Object o )
+ {
+ if ( o == this )
+ {
+ return true;
+ }
+
+ if ( !( o instanceof Artifact ) )
+ {
+ return false;
+ }
+
+ Artifact a = (Artifact) o;
+
+ if ( !a.getGroupId().equals( groupId ) )
+ {
+ return false;
+ }
+ else if ( !a.getArtifactId().equals( artifactId ) )
+ {
+ return false;
+ }
+ else if ( !a.getVersion().equals( version ) )
+ {
+ return false;
+ }
+ else if ( !a.getType().equals( type ) )
+ {
+ return false;
+ }
+ else if ( a.getClassifier() == null ? classifier != null : !a.getClassifier().equals( classifier ) )
+ {
+ return false;
+ }
+
+ // We don't consider the version range in the comparison, just the resolved version
+
+ return true;
+ }
+
+ public String getBaseVersion()
+ {
+ if ( baseVersion == null && version != null )
+ {
+ setBaseVersionInternal( version );
+ }
+
+ return baseVersion;
+ }
+
+ protected String getBaseVersionInternal()
+ {
+ if ( ( baseVersion == null ) && ( version != null ) )
+ {
+ setBaseVersionInternal( version );
+ }
+
+ return baseVersion;
+ }
+
+ public void setBaseVersion( String baseVersion )
+ {
+ setBaseVersionInternal( baseVersion );
+ }
+
+ protected void setBaseVersionInternal( String baseVersion )
+ {
+ Matcher m = VERSION_FILE_PATTERN.matcher( baseVersion );
+
+ if ( m.matches() )
+ {
+ this.baseVersion = m.group( 1 ) + "-" + SNAPSHOT_VERSION;
+ }
+ else
+ {
+ this.baseVersion = baseVersion;
+ }
+ }
+
+ public int compareTo( Artifact a )
+ {
+ int result = groupId.compareTo( a.getGroupId() );
+ if ( result == 0 )
+ {
+ result = artifactId.compareTo( a.getArtifactId() );
+ if ( result == 0 )
+ {
+ result = type.compareTo( a.getType() );
+ if ( result == 0 )
+ {
+ if ( classifier == null )
+ {
+ if ( a.getClassifier() != null )
+ {
+ result = 1;
+ }
+ }
+ else
+ {
+ if ( a.getClassifier() != null )
+ {
+ result = classifier.compareTo( a.getClassifier() );
+ }
+ else
+ {
+ result = -1;
+ }
+ }
+ if ( result == 0 )
+ {
+ // We don't consider the version range in the comparison, just the resolved version
+ result = new DefaultArtifactVersion( version ).compareTo(
+ new DefaultArtifactVersion( a.getVersion() ) );
+ }
+ }
+ }
+ }
+ return result;
+ }
+
+ public void updateVersion( String version, ArtifactRepository localRepository )
+ {
+ setResolvedVersion( version );
+ setFile( new File( localRepository.getBasedir(), localRepository.pathOf( this ) ) );
+ }
+
+ public String getDownloadUrl()
+ {
+ return downloadUrl;
+ }
+
+ public void setDownloadUrl( String downloadUrl )
+ {
+ this.downloadUrl = downloadUrl;
+ }
+
+ public ArtifactFilter getDependencyFilter()
+ {
+ return dependencyFilter;
+ }
+
+ public void setDependencyFilter( ArtifactFilter artifactFilter )
+ {
+ dependencyFilter = artifactFilter;
+ }
+
+ public ArtifactHandler getArtifactHandler()
+ {
+ return artifactHandler;
+ }
+
+ public List getDependencyTrail()
+ {
+ return dependencyTrail;
+ }
+
+ public void setDependencyTrail( List dependencyTrail )
+ {
+ this.dependencyTrail = dependencyTrail;
+ }
+
+ public void setScope( String scope )
+ {
+ this.scope = scope;
+ }
+
+ public VersionRange getVersionRange()
+ {
+ return versionRange;
+ }
+
+ public void setVersionRange( VersionRange versionRange )
+ {
+ this.versionRange = versionRange;
+ selectVersionFromNewRangeIfAvailable();
+ }
+
+ private void selectVersionFromNewRangeIfAvailable()
+ {
+ if ( ( versionRange != null ) && ( versionRange.getRecommendedVersion() != null ) )
+ {
+ selectVersion( versionRange.getRecommendedVersion().toString() );
+ }
+ else
+ {
+ version = null;
+ baseVersion = null;
+ }
+ }
+
+ public void selectVersion( String version )
+ {
+ this.version = version;
+ setBaseVersionInternal( version );
+ }
+
+ public void setGroupId( String groupId )
+ {
+ this.groupId = groupId;
+ }
+
+ public void setArtifactId( String artifactId )
+ {
+ this.artifactId = artifactId;
+ }
+
+ public boolean isSnapshot()
+ {
+ return getBaseVersion() != null
+ && ( getBaseVersion().endsWith( SNAPSHOT_VERSION ) || getBaseVersion().equals( LATEST_VERSION ) );
+ }
+
+ public void setResolved( boolean resolved )
+ {
+ this.resolved = resolved;
+ }
+
+ public boolean isResolved()
+ {
+ return resolved;
+ }
+
+ public void setResolvedVersion( String version )
+ {
+ this.version = version;
+ // retain baseVersion
+ }
+
+ public void setArtifactHandler( ArtifactHandler artifactHandler )
+ {
+ this.artifactHandler = artifactHandler;
+ }
+
+ public void setRelease( boolean release )
+ {
+ this.release = release;
+ }
+
+ public boolean isRelease()
+ {
+ return release;
+ }
+
+ public List getAvailableVersions()
+ {
+ return availableVersions;
+ }
+
+ public void setAvailableVersions( List availableVersions )
+ {
+ this.availableVersions = availableVersions;
+ }
+
+ public boolean isOptional()
+ {
+ return optional;
+ }
+
+ public ArtifactVersion getSelectedVersion()
+ throws OverConstrainedVersionException
+ {
+ return versionRange.getSelectedVersion( this );
+ }
+
+ public boolean isSelectedVersionKnown()
+ throws OverConstrainedVersionException
+ {
+ return versionRange.isSelectedVersionKnown( this );
+ }
+
+ public void setOptional( boolean optional )
+ {
+ this.optional = optional;
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/InvalidArtifactRTException.java b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/InvalidArtifactRTException.java
new file mode 100644
index 00000000..adf656d1
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/InvalidArtifactRTException.java
@@ -0,0 +1,100 @@
+package org.apache.maven.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.
+ */
+
+/**
+ * Exception thrown when the identity of an artifact can not be established,
+ * eg. one of groupId, artifactId, version or type is null.
+ */
+public class InvalidArtifactRTException
+ extends RuntimeException
+{
+
+ private final String groupId;
+ private final String artifactId;
+ private final String version;
+ private final String type;
+ private final String baseMessage;
+
+ public InvalidArtifactRTException( String groupId,
+ String artifactId,
+ String version,
+ String type,
+ String message )
+ {
+ this.groupId = groupId;
+ this.artifactId = artifactId;
+ this.version = version;
+ this.type = type;
+ this.baseMessage = message;
+ }
+
+ public InvalidArtifactRTException( String groupId,
+ String artifactId,
+ String version,
+ String type,
+ String message,
+ Throwable cause )
+ {
+ super( cause );
+
+ this.groupId = groupId;
+ this.artifactId = artifactId;
+ this.version = version;
+ this.type = type;
+ this.baseMessage = message;
+ }
+
+ public String getMessage()
+ {
+ return "For artifact {" + getArtifactKey() + "}: " + getBaseMessage();
+ }
+
+ public String getBaseMessage()
+ {
+ return baseMessage;
+ }
+
+ public String getArtifactId()
+ {
+ return artifactId;
+ }
+
+ public String getGroupId()
+ {
+ return groupId;
+ }
+
+ public String getType()
+ {
+ return type;
+ }
+
+ public String getVersion()
+ {
+ return version;
+ }
+
+ public String getArtifactKey()
+ {
+ return groupId + ":" + artifactId + ":" + version + ":" + type;
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/handler/ArtifactHandler.java b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/handler/ArtifactHandler.java
new file mode 100644
index 00000000..a9d60f2e
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/handler/ArtifactHandler.java
@@ -0,0 +1,42 @@
+package org.apache.maven.artifact.handler;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT 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 Jason van Zyl
+ */
+public interface ArtifactHandler
+{
+ String ROLE = ArtifactHandler.class.getName();
+
+ String getExtension();
+
+ String getDirectory();
+
+ String getClassifier();
+
+ String getPackaging();
+
+ boolean isIncludesDependencies();
+
+ String getLanguage();
+
+ boolean isAddedToClasspath();
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadata.java b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadata.java
new file mode 100644
index 00000000..452c9f4a
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadata.java
@@ -0,0 +1,27 @@
+package org.apache.maven.artifact.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.
+ */
+
+@Deprecated
+public interface ArtifactMetadata
+ extends org.apache.maven.repository.legacy.metadata.ArtifactMetadata
+{
+ void merge( ArtifactMetadata metadata );
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/repository/ArtifactRepository.java b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/repository/ArtifactRepository.java
new file mode 100644
index 00000000..9ef30387
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/repository/ArtifactRepository.java
@@ -0,0 +1,135 @@
+package org.apache.maven.artifact.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.List;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.metadata.ArtifactMetadata;
+import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
+import org.apache.maven.repository.Proxy;
+
+/**
+ * Abstraction of an artifact repository. Artifact repositories can be remote, local, or even build reactor or
+ * IDE workspace.
+ */
+public interface ArtifactRepository
+{
+ String pathOf( Artifact artifact );
+
+ String pathOfRemoteRepositoryMetadata( ArtifactMetadata artifactMetadata );
+
+ String pathOfLocalRepositoryMetadata( ArtifactMetadata metadata, ArtifactRepository repository );
+
+ String getUrl();
+
+ void setUrl( String url );
+
+ String getBasedir();
+
+ String getProtocol();
+
+ String getId();
+
+ void setId( String id );
+
+ ArtifactRepositoryPolicy getSnapshots();
+
+ void setSnapshotUpdatePolicy( ArtifactRepositoryPolicy policy );
+
+ ArtifactRepositoryPolicy getReleases();
+
+ void setReleaseUpdatePolicy( ArtifactRepositoryPolicy policy );
+
+ ArtifactRepositoryLayout getLayout();
+
+ void setLayout( ArtifactRepositoryLayout layout );
+
+ String getKey();
+
+ @Deprecated
+ boolean isUniqueVersion();
+
+ @Deprecated
+ boolean isBlacklisted();
+
+ @Deprecated
+ void setBlacklisted( boolean blackListed );
+
+ //
+ // New interface methods for the repository system.
+ //
+ /**
+ *
+ * @param artifact
+ * @return
+ * @since 3.0-alpha-3
+ */
+ Artifact find( Artifact artifact );
+
+ /**
+ * Finds the versions of the specified artifact that are available in this repository.
+ *
+ * @param artifact The artifact whose available versions should be determined, must not be {@code null}.
+ * @return The available versions of the artifact or an empty list if none, never {@code null}.
+ * @since 3.0-alpha-3
+ */
+ List findVersions( Artifact artifact );
+
+ /**
+ * Indicates whether this repository is backed by actual projects. For instance, the build reactor or IDE workspace
+ * are examples of such repositories.
+ *
+ * @return {@code true} if the repository is backed by actual projects, {@code false} otherwise.
+ * @since 3.0-beta-1
+ */
+ boolean isProjectAware();
+
+ /**
+ * @since 3.0-alpha-3
+ */
+ void setAuthentication( Authentication authentication );
+ /**
+ * @since 3.0-alpha-3
+ */
+ Authentication getAuthentication();
+
+ /**
+ * @since 3.0-alpha-3
+ */
+ void setProxy( Proxy proxy );
+ /**
+ * @since 3.0-alpha-3
+ */
+ Proxy getProxy();
+
+ /**
+ * @since 3.0.3
+ * @return the repositories mirrored by the actual one
+ */
+ List getMirroredRepositories();
+
+ /**
+ * @since 3.0.3
+ * @param mirroredRepositories the repositories that the actual one mirrors
+ */
+ void setMirroredRepositories( List mirroredRepositories );
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/repository/ArtifactRepositoryPolicy.java b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/repository/ArtifactRepositoryPolicy.java
new file mode 100644
index 00000000..b6cd8f39
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/repository/ArtifactRepositoryPolicy.java
@@ -0,0 +1,222 @@
+package org.apache.maven.artifact.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.Calendar;
+import java.util.Date;
+
+/**
+ * Describes a set of policies for a repository to use under certain conditions.
+ *
+ * @author Brett Porter
+ */
+public class ArtifactRepositoryPolicy
+{
+ public static final String UPDATE_POLICY_NEVER = "never";
+
+ public static final String UPDATE_POLICY_ALWAYS = "always";
+
+ public static final String UPDATE_POLICY_DAILY = "daily";
+
+ public static final String UPDATE_POLICY_INTERVAL = "interval";
+
+ public static final String CHECKSUM_POLICY_FAIL = "fail";
+
+ public static final String CHECKSUM_POLICY_WARN = "warn";
+
+ public static final String CHECKSUM_POLICY_IGNORE = "ignore";
+
+ private boolean enabled;
+
+ private String updatePolicy;
+
+ private String checksumPolicy;
+
+ public ArtifactRepositoryPolicy()
+ {
+ this( true, null, null );
+ }
+
+ public ArtifactRepositoryPolicy( ArtifactRepositoryPolicy policy )
+ {
+ this( policy.isEnabled(), policy.getUpdatePolicy(), policy.getChecksumPolicy() );
+ }
+
+ public ArtifactRepositoryPolicy( boolean enabled, String updatePolicy, String checksumPolicy )
+ {
+ this.enabled = enabled;
+
+ if ( updatePolicy == null )
+ {
+ updatePolicy = UPDATE_POLICY_DAILY;
+ }
+ this.updatePolicy = updatePolicy;
+
+ if ( checksumPolicy == null )
+ {
+ checksumPolicy = CHECKSUM_POLICY_WARN;
+ }
+ this.checksumPolicy = checksumPolicy;
+ }
+
+ public void setEnabled( boolean enabled )
+ {
+ this.enabled = enabled;
+ }
+
+ public void setUpdatePolicy( String updatePolicy )
+ {
+ if ( updatePolicy != null )
+ {
+ this.updatePolicy = updatePolicy;
+ }
+ }
+
+ public void setChecksumPolicy( String checksumPolicy )
+ {
+ if ( checksumPolicy != null )
+ {
+ this.checksumPolicy = checksumPolicy;
+ }
+ }
+
+ public boolean isEnabled()
+ {
+ return enabled;
+ }
+
+ public String getUpdatePolicy()
+ {
+ return updatePolicy;
+ }
+
+ public String getChecksumPolicy()
+ {
+ return checksumPolicy;
+ }
+
+ public boolean checkOutOfDate( Date lastModified )
+ {
+ boolean checkForUpdates = false;
+
+ if ( UPDATE_POLICY_ALWAYS.equals( updatePolicy ) )
+ {
+ checkForUpdates = true;
+ }
+ else if ( UPDATE_POLICY_DAILY.equals( updatePolicy ) )
+ {
+ // Get local midnight boundary
+ Calendar cal = Calendar.getInstance();
+
+ cal.set( Calendar.HOUR_OF_DAY, 0 );
+ cal.set( Calendar.MINUTE, 0 );
+ cal.set( Calendar.SECOND, 0 );
+ cal.set( Calendar.MILLISECOND, 0 );
+
+ if ( cal.getTime().after( lastModified ) )
+ {
+ checkForUpdates = true;
+ }
+ }
+ else if ( updatePolicy.startsWith( UPDATE_POLICY_INTERVAL ) )
+ {
+ String s = updatePolicy.substring( UPDATE_POLICY_INTERVAL.length() + 1 );
+ int minutes = Integer.valueOf( s );
+ Calendar cal = Calendar.getInstance();
+ cal.add( Calendar.MINUTE, -minutes );
+ if ( cal.getTime().after( lastModified ) )
+ {
+ checkForUpdates = true;
+ }
+ }
+ // else assume "never"
+ return checkForUpdates;
+ }
+
+ @Override
+ public String toString()
+ {
+ StringBuilder buffer = new StringBuilder( 64 );
+ buffer.append( "{enabled=" );
+ buffer.append( enabled );
+ buffer.append( ", checksums=" );
+ buffer.append( checksumPolicy );
+ buffer.append( ", updates=" );
+ buffer.append( updatePolicy );
+ buffer.append( "}" );
+ return buffer.toString();
+ }
+
+ public void merge( ArtifactRepositoryPolicy policy )
+ {
+ if ( policy != null && policy.isEnabled() )
+ {
+ setEnabled( true );
+
+ if ( ordinalOfCksumPolicy( policy.getChecksumPolicy() ) < ordinalOfCksumPolicy( getChecksumPolicy() ) )
+ {
+ setChecksumPolicy( policy.getChecksumPolicy() );
+ }
+
+ if ( ordinalOfUpdatePolicy( policy.getUpdatePolicy() ) < ordinalOfUpdatePolicy( getUpdatePolicy() ) )
+ {
+ setUpdatePolicy( policy.getUpdatePolicy() );
+ }
+ }
+ }
+
+ private int ordinalOfCksumPolicy( String policy )
+ {
+ if ( ArtifactRepositoryPolicy.CHECKSUM_POLICY_FAIL.equals( policy ) )
+ {
+ return 2;
+ }
+ else if ( ArtifactRepositoryPolicy.CHECKSUM_POLICY_IGNORE.equals( policy ) )
+ {
+ return 0;
+ }
+ else
+ {
+ return 1;
+ }
+ }
+
+ private int ordinalOfUpdatePolicy( String policy )
+ {
+ if ( ArtifactRepositoryPolicy.UPDATE_POLICY_DAILY.equals( policy ) )
+ {
+ return 1440;
+ }
+ else if ( ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS.equals( policy ) )
+ {
+ return 0;
+ }
+ else if ( policy != null && policy.startsWith( ArtifactRepositoryPolicy.UPDATE_POLICY_INTERVAL ) )
+ {
+ String s = policy.substring( UPDATE_POLICY_INTERVAL.length() + 1 );
+ return Integer.valueOf( s );
+ }
+ else
+ {
+ return Integer.MAX_VALUE;
+ }
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/repository/Authentication.java b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/repository/Authentication.java
new file mode 100644
index 00000000..323fb25b
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/repository/Authentication.java
@@ -0,0 +1,126 @@
+package org.apache.maven.artifact.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.
+ */
+
+public class Authentication
+{
+
+ private String privateKey;
+
+ private String passphrase;
+
+ public Authentication( String userName, String password )
+ {
+ this.username = userName;
+ this.password = password;
+ }
+
+ /**
+ * Username used to login to the host
+ */
+ private String username;
+
+ /**
+ * Password associated with the login
+ */
+ private String password;
+
+ /**
+ * Get the user's password which is used when connecting to the repository.
+ *
+ * @return password of user
+ */
+ public String getPassword()
+ {
+ return password;
+ }
+
+ /**
+ * Set the user's password which is used when connecting to the repository.
+ *
+ * @param password password of the user
+ */
+ public void setPassword( String password )
+ {
+ this.password = password;
+ }
+
+ /**
+ * Get the username used to access the repository.
+ *
+ * @return username at repository
+ */
+ public String getUsername()
+ {
+ return username;
+ }
+
+ /**
+ * Set username used to access the repository.
+ *
+ * @param userName the username used to access repository
+ */
+ public void setUsername( final String userName )
+ {
+ this.username = userName;
+ }
+
+ /**
+ * Get the passphrase of the private key file. The passphrase is used only when host/protocol supports
+ * authentication via exchange of private/public keys and private key was used for authentication.
+ *
+ * @return passphrase of the private key file
+ */
+ public String getPassphrase()
+ {
+ return passphrase;
+ }
+
+ /**
+ * Set the passphrase of the private key file.
+ *
+ * @param passphrase passphrase of the private key file
+ */
+ public void setPassphrase( final String passphrase )
+ {
+ this.passphrase = passphrase;
+ }
+
+ /**
+ * Get the absolute path to the private key file.
+ *
+ * @return absolute path to private key
+ */
+ public String getPrivateKey()
+ {
+ return privateKey;
+ }
+
+ /**
+ * Set the absolute path to private key file.
+ *
+ * @param privateKey path to private key in local file system
+ */
+ public void setPrivateKey( final String privateKey )
+ {
+ this.privateKey = privateKey;
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/ArtifactRepositoryLayout.java b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/ArtifactRepositoryLayout.java
new file mode 100644
index 00000000..2a18c863
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/ArtifactRepositoryLayout.java
@@ -0,0 +1,38 @@
+package org.apache.maven.artifact.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.artifact.Artifact;
+import org.apache.maven.artifact.metadata.ArtifactMetadata;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+
+/** @author jdcasey */
+public interface ArtifactRepositoryLayout
+{
+ String ROLE = ArtifactRepositoryLayout.class.getName();
+
+ String getId();
+
+ String pathOf( Artifact artifact );
+
+ String pathOfLocalRepositoryMetadata( ArtifactMetadata metadata, ArtifactRepository repository );
+
+ String pathOfRemoteRepositoryMetadata( ArtifactMetadata metadata );
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/ArtifactRepositoryLayout2.java b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/ArtifactRepositoryLayout2.java
new file mode 100644
index 00000000..c0544e5c
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/ArtifactRepositoryLayout2.java
@@ -0,0 +1,31 @@
+package org.apache.maven.artifact.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.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
+
+public interface ArtifactRepositoryLayout2
+ extends ArtifactRepositoryLayout
+{
+
+ ArtifactRepository newMavenArtifactRepository( String id, String url, ArtifactRepositoryPolicy snapshots,
+ ArtifactRepositoryPolicy releases );
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataStoreException.java b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataStoreException.java
new file mode 100644
index 00000000..38488522
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataStoreException.java
@@ -0,0 +1,40 @@
+package org.apache.maven.artifact.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.
+ */
+
+/**
+ * Problem storing the repository metadata in the local repository.
+ *
+ * @author Brett Porter
+ */
+public class RepositoryMetadataStoreException
+ extends Exception
+{
+ public RepositoryMetadataStoreException( String message )
+ {
+ super( message );
+ }
+
+ public RepositoryMetadataStoreException( String message,
+ Exception e )
+ {
+ super( message, e );
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/AbstractArtifactResolutionException.java b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/AbstractArtifactResolutionException.java
new file mode 100644
index 00000000..66e147c2
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/AbstractArtifactResolutionException.java
@@ -0,0 +1,347 @@
+package org.apache.maven.artifact.resolver;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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 java.util.List;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
+
+/**
+ * Base class for artifact resolution exceptions.
+ *
+ * @author Brett Porter
+ */
+public class AbstractArtifactResolutionException
+ extends Exception
+{
+ private String groupId;
+
+ private String artifactId;
+
+ private String version;
+
+ private String type;
+
+ private String classifier;
+
+ private Artifact artifact;
+
+ private List remoteRepositories;
+
+ private final String originalMessage;
+
+ private final String path;
+
+ static final String LS = System.getProperty( "line.separator" );
+
+ @SuppressWarnings( "checkstyle:parameternumber" )
+ protected AbstractArtifactResolutionException( String message,
+ String groupId,
+ String artifactId,
+ String version,
+ String type,
+ String classifier,
+ List remoteRepositories,
+ List path )
+ {
+ this( message, groupId, artifactId, version, type, classifier, remoteRepositories, path, null );
+ }
+
+ @SuppressWarnings( "checkstyle:parameternumber" )
+ protected AbstractArtifactResolutionException( String message,
+ String groupId,
+ String artifactId,
+ String version,
+ String type,
+ String classifier,
+ List remoteRepositories,
+ List path,
+ Throwable t )
+ {
+ super( constructMessageBase( message, groupId, artifactId, version, type, remoteRepositories, path ), t );
+
+ this.originalMessage = message;
+ this.groupId = groupId;
+ this.artifactId = artifactId;
+ this.type = type;
+ this.classifier = classifier;
+ this.version = version;
+ this.remoteRepositories = remoteRepositories;
+ this.path = constructArtifactPath( path, "" );
+ }
+
+ protected AbstractArtifactResolutionException( String message,
+ Artifact artifact )
+ {
+ this( message, artifact, null );
+ }
+
+ protected AbstractArtifactResolutionException( String message,
+ Artifact artifact,
+ List remoteRepositories )
+ {
+ this( message, artifact, remoteRepositories, null );
+ }
+
+ protected AbstractArtifactResolutionException( String message,
+ Artifact artifact,
+ List remoteRepositories,
+ Throwable t )
+ {
+ this( message, artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion(), artifact.getType(),
+ artifact.getClassifier(), remoteRepositories, artifact.getDependencyTrail(), t );
+ this.artifact = artifact;
+ }
+
+ public Artifact getArtifact()
+ {
+ return artifact;
+ }
+
+ public String getGroupId()
+ {
+ return groupId;
+ }
+
+ public String getArtifactId()
+ {
+ return artifactId;
+ }
+
+ public String getVersion()
+ {
+ return version;
+ }
+
+ public String getType()
+ {
+ return type;
+ }
+
+ /** @return the classifier */
+ public String getClassifier()
+ {
+ return this.classifier;
+ }
+
+ /** @return the path */
+ public String getPath()
+ {
+ return this.path;
+ }
+
+ public List getRemoteRepositories()
+ {
+ return remoteRepositories;
+ }
+
+ public String getOriginalMessage()
+ {
+ return originalMessage;
+ }
+
+ protected static String constructArtifactPath( List path,
+ String indentation )
+ {
+ StringBuilder sb = new StringBuilder();
+
+ if ( path != null )
+ {
+ sb.append( LS );
+ sb.append( indentation );
+ sb.append( "Path to dependency: " );
+ sb.append( LS );
+ int num = 1;
+ for ( Iterator i = path.iterator(); i.hasNext(); num++ )
+ {
+ sb.append( indentation );
+ sb.append( "\t" );
+ sb.append( num );
+ sb.append( ") " );
+ sb.append( i.next() );
+ sb.append( LS );
+ }
+ }
+
+ return sb.toString();
+ }
+
+ private static String constructMessageBase( String message,
+ String groupId,
+ String artifactId,
+ String version,
+ String type,
+ List remoteRepositories,
+ List path )
+ {
+ StringBuilder sb = new StringBuilder();
+
+ sb.append( message );
+
+ if ( message == null || !message.contains( "from the specified remote repositories:" ) )
+ {
+ sb.append( LS );
+ sb.append( " " ).append( groupId ).append( ":" ).append( artifactId ).append( ":" ).append( type ).append(
+ ":" ).append( version );
+ sb.append( LS );
+ if ( remoteRepositories != null )
+ {
+ sb.append( LS );
+ sb.append( "from the specified remote repositories:" );
+ sb.append( LS ).append( " " );
+
+ if ( remoteRepositories.isEmpty() )
+ {
+ sb.append( "(none)" );
+ }
+
+ for ( Iterator i = remoteRepositories.iterator(); i.hasNext(); )
+ {
+ ArtifactRepository remoteRepository = i.next();
+
+ sb.append( remoteRepository.getId() );
+ sb.append( " (" );
+ sb.append( remoteRepository.getUrl() );
+
+ ArtifactRepositoryPolicy releases = remoteRepository.getReleases();
+ if ( releases != null )
+ {
+ sb.append( ", releases=" ).append( releases.isEnabled() );
+ }
+
+ ArtifactRepositoryPolicy snapshots = remoteRepository.getSnapshots();
+ if ( snapshots != null )
+ {
+ sb.append( ", snapshots=" ).append( snapshots.isEnabled() );
+ }
+
+ sb.append( ")" );
+ if ( i.hasNext() )
+ {
+ sb.append( "," ).append( LS ).append( " " );
+ }
+ }
+ }
+
+ sb.append( constructArtifactPath( path, "" ) );
+ sb.append( LS );
+ }
+
+ return sb.toString();
+ }
+
+ @SuppressWarnings( "checkstyle:parameternumber" )
+ protected static String constructMissingArtifactMessage( String message,
+ String indentation,
+ String groupId,
+ String artifactId,
+ String version,
+ String type,
+ String classifier,
+ String downloadUrl,
+ List path )
+ {
+ StringBuilder sb = new StringBuilder( message );
+
+ if ( !"pom".equals( type ) )
+ {
+ if ( downloadUrl != null )
+ {
+ sb.append( LS );
+ sb.append( LS );
+ sb.append( indentation );
+ sb.append( "Try downloading the file manually from: " );
+ sb.append( LS );
+ sb.append( indentation );
+ sb.append( " " );
+ sb.append( downloadUrl );
+ }
+ else
+ {
+ sb.append( LS );
+ sb.append( LS );
+ sb.append( indentation );
+ sb.append( "Try downloading the file manually from the project website." );
+ }
+
+ sb.append( LS );
+ sb.append( LS );
+ sb.append( indentation );
+ sb.append( "Then, install it using the command: " );
+ sb.append( LS );
+ sb.append( indentation );
+ sb.append( " mvn install:install-file -DgroupId=" );
+ sb.append( groupId );
+ sb.append( " -DartifactId=" );
+ sb.append( artifactId );
+ sb.append( " -Dversion=" );
+ sb.append( version );
+
+ //insert classifier only if it was used in the artifact
+ if ( classifier != null && !classifier.equals( "" ) )
+ {
+ sb.append( " -Dclassifier=" );
+ sb.append( classifier );
+ }
+ sb.append( " -Dpackaging=" );
+ sb.append( type );
+ sb.append( " -Dfile=/path/to/file" );
+ sb.append( LS );
+
+ // If people want to deploy it
+ sb.append( LS );
+ sb.append( indentation );
+ sb.append( "Alternatively, if you host your own repository you can deploy the file there: " );
+ sb.append( LS );
+ sb.append( indentation );
+ sb.append( " mvn deploy:deploy-file -DgroupId=" );
+ sb.append( groupId );
+ sb.append( " -DartifactId=" );
+ sb.append( artifactId );
+ sb.append( " -Dversion=" );
+ sb.append( version );
+
+ //insert classifier only if it was used in the artifact
+ if ( classifier != null && !classifier.equals( "" ) )
+ {
+ sb.append( " -Dclassifier=" );
+ sb.append( classifier );
+ }
+ sb.append( " -Dpackaging=" );
+ sb.append( type );
+ sb.append( " -Dfile=/path/to/file" );
+ sb.append( " -Durl=[url] -DrepositoryId=[id]" );
+ sb.append( LS );
+ }
+
+ sb.append( constructArtifactPath( path, indentation ) );
+ sb.append( LS );
+
+ return sb.toString();
+ }
+
+ public String getArtifactPath()
+ {
+ return path;
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactNotFoundException.java b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactNotFoundException.java
new file mode 100644
index 00000000..76f7b584
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactNotFoundException.java
@@ -0,0 +1,85 @@
+package org.apache.maven.artifact.resolver;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.artifact.Artifact;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+
+/**
+ * @author Jason van Zyl
+ */
+public class ArtifactNotFoundException
+ extends AbstractArtifactResolutionException
+{
+ private String downloadUrl;
+
+ protected ArtifactNotFoundException( String message, Artifact artifact,
+ List remoteRepositories )
+ {
+ super( message, artifact, remoteRepositories );
+ }
+
+ public ArtifactNotFoundException( String message, Artifact artifact )
+ {
+ this( message, artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion(), artifact.getType(),
+ artifact.getClassifier(), null, artifact.getDownloadUrl(), artifact.getDependencyTrail() );
+ }
+
+ protected ArtifactNotFoundException( String message, Artifact artifact,
+ List remoteRepositories, Throwable cause )
+ {
+ this( message, artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion(), artifact.getType(),
+ artifact.getClassifier(), remoteRepositories, artifact.getDownloadUrl(), artifact.getDependencyTrail(),
+ cause );
+ }
+
+ @SuppressWarnings( "checkstyle:parameternumber" )
+ public ArtifactNotFoundException( String message, String groupId, String artifactId, String version, String type,
+ String classifier, List remoteRepositories,
+ String downloadUrl, List path, Throwable cause )
+ {
+ super( constructMissingArtifactMessage( message, "", groupId, artifactId, version, type, classifier,
+ downloadUrl, path ), groupId, artifactId, version, type, classifier,
+ remoteRepositories, null, cause );
+
+ this.downloadUrl = downloadUrl;
+ }
+
+ @SuppressWarnings( "checkstyle:parameternumber" )
+ private ArtifactNotFoundException( String message, String groupId, String artifactId, String version, String type,
+ String classifier, List remoteRepositories,
+ String downloadUrl, List path )
+ {
+ super( constructMissingArtifactMessage( message, "", groupId, artifactId, version, type, classifier,
+ downloadUrl, path ), groupId, artifactId, version, type, classifier,
+ remoteRepositories, null );
+
+ this.downloadUrl = downloadUrl;
+ }
+
+ public String getDownloadUrl()
+ {
+ return downloadUrl;
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionException.java b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionException.java
new file mode 100644
index 00000000..074d812c
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionException.java
@@ -0,0 +1,68 @@
+package org.apache.maven.artifact.resolver;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.artifact.Artifact;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+
+/**
+ * @author Jason van Zyl
+ */
+public class ArtifactResolutionException
+ extends AbstractArtifactResolutionException
+{
+ @SuppressWarnings( "checkstyle:parameternumber" )
+ public ArtifactResolutionException( String message, String groupId, String artifactId, String version, String type,
+ String classifier, List remoteRepositories,
+ List path, Throwable t )
+ {
+ super( message, groupId, artifactId, version, type, classifier, remoteRepositories, path, t );
+ }
+
+ public ArtifactResolutionException( String message, String groupId, String artifactId, String version, String type,
+ String classifier, Throwable t )
+ {
+ super( message, groupId, artifactId, version, type, classifier, null, null, t );
+ }
+
+ public ArtifactResolutionException( String message, Artifact artifact )
+ {
+ super( message, artifact );
+ }
+
+ public ArtifactResolutionException( String message, Artifact artifact, List remoteRepositories )
+ {
+ super( message, artifact, remoteRepositories );
+ }
+
+ public ArtifactResolutionException( String message, Artifact artifact, Throwable cause )
+ {
+ super( message, artifact, null, cause );
+ }
+
+ public ArtifactResolutionException( String message, Artifact artifact, List remoteRepositories,
+ Throwable cause )
+ {
+ super( message, artifact, remoteRepositories, cause );
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/CyclicDependencyException.java b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/CyclicDependencyException.java
new file mode 100644
index 00000000..d3706179
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/CyclicDependencyException.java
@@ -0,0 +1,45 @@
+package org.apache.maven.artifact.resolver;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 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;
+
+/**
+ * Indiciates a cycle in the dependency graph.
+ *
+ * @author Brett Porter
+ */
+public class CyclicDependencyException
+ extends ArtifactResolutionException
+{
+ private Artifact artifact;
+
+ public CyclicDependencyException( String message,
+ Artifact artifact )
+ {
+ super( message, artifact );
+ this.artifact = artifact;
+ }
+
+ public Artifact getArtifact()
+ {
+ return artifact;
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/MultipleArtifactsNotFoundException.java b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/MultipleArtifactsNotFoundException.java
new file mode 100644
index 00000000..0f13db15
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/MultipleArtifactsNotFoundException.java
@@ -0,0 +1,122 @@
+package org.apache.maven.artifact.resolver;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.artifact.Artifact;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+
+/**
+ * Exception caused when one or more artifacts can not be resolved because they are not found in the
+ * local or remote repositories.
+ */
+public class MultipleArtifactsNotFoundException
+ extends ArtifactResolutionException
+{
+ private final List resolvedArtifacts;
+ private final List missingArtifacts;
+
+ /** @deprecated use {@link #MultipleArtifactsNotFoundException(Artifact, List, List, List)} */
+ @Deprecated
+ public MultipleArtifactsNotFoundException( Artifact originatingArtifact,
+ List missingArtifacts,
+ List remoteRepositories )
+ {
+ this( originatingArtifact, new ArrayList(), missingArtifacts, remoteRepositories );
+ }
+
+ /**
+ * Create an instance of the exception with allrequired information.
+ *
+ * @param originatingArtifact the artifact that was being resolved
+ * @param resolvedArtifacts artifacts that could be resolved
+ * @param missingArtifacts artifacts that could not be resolved
+ * @param remoteRepositories remote repositories where the missing artifacts were not found
+ */
+ public MultipleArtifactsNotFoundException( Artifact originatingArtifact,
+ List resolvedArtifacts,
+ List missingArtifacts,
+ List remoteRepositories )
+ {
+ super( constructMessage( missingArtifacts ), originatingArtifact, remoteRepositories );
+ this.resolvedArtifacts = resolvedArtifacts;
+ this.missingArtifacts = missingArtifacts;
+ }
+
+ /**
+ * artifacts that could be resolved
+ *
+ * @return {@link List} of {@link Artifact}
+ */
+ public List getResolvedArtifacts()
+ {
+ return resolvedArtifacts;
+ }
+
+ /**
+ * artifacts that could NOT be resolved
+ *
+ * @return {@link List} of {@link Artifact}
+ */
+ public List getMissingArtifacts()
+ {
+ return missingArtifacts;
+ }
+
+ private static String constructMessage( List artifacts )
+ {
+ StringBuilder buffer = new StringBuilder( "Missing:\n" );
+
+ buffer.append( "----------\n" );
+
+ int counter = 0;
+
+ for ( Artifact artifact : artifacts )
+ {
+ String message = ( ++counter ) + ") " + artifact.getId();
+
+ buffer.append( constructMissingArtifactMessage( message, " ", artifact.getGroupId(),
+ artifact.getArtifactId(), artifact.getVersion(), artifact.getType(), artifact.getClassifier(),
+ artifact.getDownloadUrl(), artifact.getDependencyTrail() ) );
+ }
+
+ buffer.append( "----------\n" );
+
+ int size = artifacts.size();
+
+ buffer.append( size ).append( " required artifact" );
+
+ if ( size > 1 )
+ {
+ buffer.append( "s are" );
+ }
+ else
+ {
+ buffer.append( " is" );
+ }
+
+ buffer.append( " missing.\n\nfor artifact: " );
+
+ return buffer.toString();
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/filter/ArtifactFilter.java b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/filter/ArtifactFilter.java
new file mode 100644
index 00000000..27b08a88
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/filter/ArtifactFilter.java
@@ -0,0 +1,30 @@
+package org.apache.maven.artifact.resolver.filter;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 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;
+
+/**
+ * @author Jason van Zyl
+ */
+public interface ArtifactFilter
+{
+ boolean include( Artifact artifact );
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/ArtifactVersion.java b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/ArtifactVersion.java
new file mode 100644
index 00000000..5b516a91
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/ArtifactVersion.java
@@ -0,0 +1,42 @@
+package org.apache.maven.artifact.versioning;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * Describes an artifact version in terms of its components, converts it to/from a string and
+ * compares two versions.
+ *
+ * @author Brett Porter
+ */
+public interface ArtifactVersion
+ extends Comparable
+{
+ int getMajorVersion();
+
+ int getMinorVersion();
+
+ int getIncrementalVersion();
+
+ int getBuildNumber();
+
+ String getQualifier();
+
+ void parseVersion( String version );
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java
new file mode 100644
index 00000000..67a46960
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java
@@ -0,0 +1,503 @@
+package org.apache.maven.artifact.versioning;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.math.BigInteger;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Locale;
+import java.util.Properties;
+import java.util.Stack;
+
+/**
+ * Generic implementation of version comparison.
+ *
+ * Features:
+ *
+ * mixing of '-
' (dash) and '.
' (dot) separators,
+ * transition between characters and digits also constitutes a separator:
+ * 1.0alpha1 => [1, 0, alpha, 1]
+ * unlimited number of version components,
+ * version components in the text can be digits or strings,
+ * strings are checked for well-known qualifiers and the qualifier ordering is used for version ordering.
+ * Well-known qualifiers (case insensitive) are:
+ * alpha
or a
+ * beta
or b
+ * milestone
or m
+ * rc
or cr
+ * snapshot
+ * (the empty string)
or ga
or final
+ * sp
+ *
+ * Unknown qualifiers are considered after known qualifiers, with lexical order (always case insensitive),
+ *
+ * a dash usually precedes a qualifier, and is always less important than something preceded with a dot.
+ *
+ *
+ * @see "Versioning" on Maven Wiki
+ * @author Kenney Westerhof
+ * @author Hervé Boutemy
+ */
+public class ComparableVersion
+ implements Comparable
+{
+ private String value;
+
+ private String canonical;
+
+ private ListItem items;
+
+ private interface Item
+ {
+ int INTEGER_ITEM = 0;
+ int STRING_ITEM = 1;
+ int LIST_ITEM = 2;
+
+ int compareTo( Item item );
+
+ int getType();
+
+ boolean isNull();
+ }
+
+ /**
+ * Represents a numeric item in the version item list.
+ */
+ private static class IntegerItem
+ implements Item
+ {
+ private static final BigInteger BIG_INTEGER_ZERO = new BigInteger( "0" );
+
+ private final BigInteger value;
+
+ public static final IntegerItem ZERO = new IntegerItem();
+
+ private IntegerItem()
+ {
+ this.value = BIG_INTEGER_ZERO;
+ }
+
+ public IntegerItem( String str )
+ {
+ this.value = new BigInteger( str );
+ }
+
+ public int getType()
+ {
+ return INTEGER_ITEM;
+ }
+
+ public boolean isNull()
+ {
+ return BIG_INTEGER_ZERO.equals( value );
+ }
+
+ public int compareTo( Item item )
+ {
+ if ( item == null )
+ {
+ return BIG_INTEGER_ZERO.equals( value ) ? 0 : 1; // 1.0 == 1, 1.1 > 1
+ }
+
+ switch ( item.getType() )
+ {
+ case INTEGER_ITEM:
+ return value.compareTo( ( (IntegerItem) item ).value );
+
+ case STRING_ITEM:
+ return 1; // 1.1 > 1-sp
+
+ case LIST_ITEM:
+ return 1; // 1.1 > 1-1
+
+ default:
+ throw new RuntimeException( "invalid item: " + item.getClass() );
+ }
+ }
+
+ public String toString()
+ {
+ return value.toString();
+ }
+ }
+
+ /**
+ * Represents a string in the version item list, usually a qualifier.
+ */
+ private static class StringItem
+ implements Item
+ {
+ private static final String[] QUALIFIERS = { "alpha", "beta", "milestone", "rc", "snapshot", "", "sp" };
+
+ @SuppressWarnings( "checkstyle:constantname" )
+ private static final List _QUALIFIERS = Arrays.asList( QUALIFIERS );
+
+ private static final Properties ALIASES = new Properties();
+ static
+ {
+ ALIASES.put( "ga", "" );
+ ALIASES.put( "final", "" );
+ ALIASES.put( "cr", "rc" );
+ }
+
+ /**
+ * A comparable value for the empty-string qualifier. This one is used to determine if a given qualifier makes
+ * the version older than one without a qualifier, or more recent.
+ */
+ private static final String RELEASE_VERSION_INDEX = String.valueOf( _QUALIFIERS.indexOf( "" ) );
+
+ private String value;
+
+ public StringItem( String value, boolean followedByDigit )
+ {
+ if ( followedByDigit && value.length() == 1 )
+ {
+ // a1 = alpha-1, b1 = beta-1, m1 = milestone-1
+ switch ( value.charAt( 0 ) )
+ {
+ case 'a':
+ value = "alpha";
+ break;
+ case 'b':
+ value = "beta";
+ break;
+ case 'm':
+ value = "milestone";
+ break;
+ default:
+ }
+ }
+ this.value = ALIASES.getProperty( value , value );
+ }
+
+ public int getType()
+ {
+ return STRING_ITEM;
+ }
+
+ public boolean isNull()
+ {
+ return ( comparableQualifier( value ).compareTo( RELEASE_VERSION_INDEX ) == 0 );
+ }
+
+ /**
+ * Returns a comparable value for a qualifier.
+ *
+ * This method takes into account the ordering of known qualifiers then unknown qualifiers with lexical
+ * ordering.
+ *
+ * just returning an Integer with the index here is faster, but requires a lot of if/then/else to check for -1
+ * or QUALIFIERS.size and then resort to lexical ordering. Most comparisons are decided by the first character,
+ * so this is still fast. If more characters are needed then it requires a lexical sort anyway.
+ *
+ * @param qualifier
+ * @return an equivalent value that can be used with lexical comparison
+ */
+ public static String comparableQualifier( String qualifier )
+ {
+ int i = _QUALIFIERS.indexOf( qualifier );
+
+ return i == -1 ? ( _QUALIFIERS.size() + "-" + qualifier ) : String.valueOf( i );
+ }
+
+ public int compareTo( Item item )
+ {
+ if ( item == null )
+ {
+ // 1-rc < 1, 1-ga > 1
+ return comparableQualifier( value ).compareTo( RELEASE_VERSION_INDEX );
+ }
+ switch ( item.getType() )
+ {
+ case INTEGER_ITEM:
+ return -1; // 1.any < 1.1 ?
+
+ case STRING_ITEM:
+ return comparableQualifier( value ).compareTo( comparableQualifier( ( (StringItem) item ).value ) );
+
+ case LIST_ITEM:
+ return -1; // 1.any < 1-1
+
+ default:
+ throw new RuntimeException( "invalid item: " + item.getClass() );
+ }
+ }
+
+ public String toString()
+ {
+ return value;
+ }
+ }
+
+ /**
+ * Represents a version list item. This class is used both for the global item list and for sub-lists (which start
+ * with '-(number)' in the version specification).
+ */
+ private static class ListItem
+ extends ArrayList-
+ implements Item
+ {
+ public int getType()
+ {
+ return LIST_ITEM;
+ }
+
+ public boolean isNull()
+ {
+ return ( size() == 0 );
+ }
+
+ void normalize()
+ {
+ for ( int i = size() - 1; i >= 0; i-- )
+ {
+ Item lastItem = get( i );
+
+ if ( lastItem.isNull() )
+ {
+ // remove null trailing items: 0, "", empty list
+ remove( i );
+ }
+ else if ( !( lastItem instanceof ListItem ) )
+ {
+ break;
+ }
+ }
+ }
+
+ public int compareTo( Item item )
+ {
+ if ( item == null )
+ {
+ if ( size() == 0 )
+ {
+ return 0; // 1-0 = 1- (normalize) = 1
+ }
+ Item first = get( 0 );
+ return first.compareTo( null );
+ }
+ switch ( item.getType() )
+ {
+ case INTEGER_ITEM:
+ return -1; // 1-1 < 1.0.x
+
+ case STRING_ITEM:
+ return 1; // 1-1 > 1-sp
+
+ case LIST_ITEM:
+ Iterator
- left = iterator();
+ Iterator
- right = ( (ListItem) item ).iterator();
+
+ while ( left.hasNext() || right.hasNext() )
+ {
+ Item l = left.hasNext() ? left.next() : null;
+ Item r = right.hasNext() ? right.next() : null;
+
+ // if this is shorter, then invert the compare and mul with -1
+ int result = l == null ? ( r == null ? 0 : -1 * r.compareTo( l ) ) : l.compareTo( r );
+
+ if ( result != 0 )
+ {
+ return result;
+ }
+ }
+
+ return 0;
+
+ default:
+ throw new RuntimeException( "invalid item: " + item.getClass() );
+ }
+ }
+
+ public String toString()
+ {
+ StringBuilder buffer = new StringBuilder();
+ for ( Iterator
- iter = iterator(); iter.hasNext(); )
+ {
+ Item item = iter.next();
+ if ( buffer.length() > 0 )
+ {
+ buffer.append( ( item instanceof ListItem ) ? '-' : '.' );
+ }
+ buffer.append( item );
+ }
+ return buffer.toString();
+ }
+ }
+
+ public ComparableVersion( String version )
+ {
+ parseVersion( version );
+ }
+
+ public final void parseVersion( String version )
+ {
+ this.value = version;
+
+ items = new ListItem();
+
+ version = version.toLowerCase( Locale.ENGLISH );
+
+ ListItem list = items;
+
+ Stack
- stack = new Stack
- ();
+ stack.push( list );
+
+ boolean isDigit = false;
+
+ int startIndex = 0;
+
+ for ( int i = 0; i < version.length(); i++ )
+ {
+ char c = version.charAt( i );
+
+ if ( c == '.' )
+ {
+ if ( i == startIndex )
+ {
+ list.add( IntegerItem.ZERO );
+ }
+ else
+ {
+ list.add( parseItem( isDigit, version.substring( startIndex, i ) ) );
+ }
+ startIndex = i + 1;
+ }
+ else if ( c == '-' )
+ {
+ if ( i == startIndex )
+ {
+ list.add( IntegerItem.ZERO );
+ }
+ else
+ {
+ list.add( parseItem( isDigit, version.substring( startIndex, i ) ) );
+ }
+ startIndex = i + 1;
+
+ list.add( list = new ListItem() );
+ stack.push( list );
+ }
+ else if ( Character.isDigit( c ) )
+ {
+ if ( !isDigit && i > startIndex )
+ {
+ list.add( new StringItem( version.substring( startIndex, i ), true ) );
+ startIndex = i;
+
+ list.add( list = new ListItem() );
+ stack.push( list );
+ }
+
+ isDigit = true;
+ }
+ else
+ {
+ if ( isDigit && i > startIndex )
+ {
+ list.add( parseItem( true, version.substring( startIndex, i ) ) );
+ startIndex = i;
+
+ list.add( list = new ListItem() );
+ stack.push( list );
+ }
+
+ isDigit = false;
+ }
+ }
+
+ if ( version.length() > startIndex )
+ {
+ list.add( parseItem( isDigit, version.substring( startIndex ) ) );
+ }
+
+ while ( !stack.isEmpty() )
+ {
+ list = (ListItem) stack.pop();
+ list.normalize();
+ }
+
+ canonical = items.toString();
+ }
+
+ private static Item parseItem( boolean isDigit, String buf )
+ {
+ return isDigit ? new IntegerItem( buf ) : new StringItem( buf, false );
+ }
+
+ public int compareTo( ComparableVersion o )
+ {
+ return items.compareTo( o.items );
+ }
+
+ public String toString()
+ {
+ return value;
+ }
+
+ public String getCanonical()
+ {
+ return canonical;
+ }
+
+ public boolean equals( Object o )
+ {
+ return ( o instanceof ComparableVersion ) && canonical.equals( ( (ComparableVersion) o ).canonical );
+ }
+
+ public int hashCode()
+ {
+ return canonical.hashCode();
+ }
+
+ /**
+ * Main to test version parsing and comparison.
+ *
+ * @param args the version strings to parse and compare
+ */
+ public static void main( String... args )
+ {
+ System.out.println( "Display parameters as parsed by Maven (in canonical form) and comparison result:" );
+ if ( args.length == 0 )
+ {
+ return;
+ }
+
+ ComparableVersion prev = null;
+ int i = 1;
+ for ( String version : args )
+ {
+ ComparableVersion c = new ComparableVersion( version );
+
+ if ( prev != null )
+ {
+ int compare = prev.compareTo( c );
+ System.out.println( " " + prev.toString() + ' '
+ + ( ( compare == 0 ) ? "==" : ( ( compare < 0 ) ? "<" : ">" ) ) + ' ' + version );
+ }
+
+ System.out.println( String.valueOf( i++ ) + ". " + version + " == " + c.getCanonical() );
+
+ prev = c;
+ }
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java
new file mode 100644
index 00000000..99b2b85b
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/DefaultArtifactVersion.java
@@ -0,0 +1,228 @@
+package org.apache.maven.artifact.versioning;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.StringTokenizer;
+import java.util.regex.Pattern;
+import java.util.NoSuchElementException;
+
+/**
+ * Default implementation of artifact versioning.
+ *
+ * @author
Brett Porter
+ */
+public class DefaultArtifactVersion
+ implements ArtifactVersion
+{
+ private Integer majorVersion;
+
+ private Integer minorVersion;
+
+ private Integer incrementalVersion;
+
+ private Integer buildNumber;
+
+ private String qualifier;
+
+ private ComparableVersion comparable;
+
+ public DefaultArtifactVersion( String version )
+ {
+ parseVersion( version );
+ }
+
+ @Override
+ public int hashCode()
+ {
+ return 11 + comparable.hashCode();
+ }
+
+ @Override
+ public boolean equals( Object other )
+ {
+ if ( this == other )
+ {
+ return true;
+ }
+
+ if ( !( other instanceof ArtifactVersion ) )
+ {
+ return false;
+ }
+
+ return compareTo( (ArtifactVersion) other ) == 0;
+ }
+
+ public int compareTo( ArtifactVersion otherVersion )
+ {
+ if ( otherVersion instanceof DefaultArtifactVersion )
+ {
+ return this.comparable.compareTo( ( (DefaultArtifactVersion) otherVersion ).comparable );
+ }
+ else
+ {
+ return compareTo( new DefaultArtifactVersion( otherVersion.toString() ) );
+ }
+ }
+
+ public int getMajorVersion()
+ {
+ return majorVersion != null ? majorVersion : 0;
+ }
+
+ public int getMinorVersion()
+ {
+ return minorVersion != null ? minorVersion : 0;
+ }
+
+ public int getIncrementalVersion()
+ {
+ return incrementalVersion != null ? incrementalVersion : 0;
+ }
+
+ public int getBuildNumber()
+ {
+ return buildNumber != null ? buildNumber : 0;
+ }
+
+ public String getQualifier()
+ {
+ return qualifier;
+ }
+
+ public final void parseVersion( String version )
+ {
+ comparable = new ComparableVersion( version );
+
+ int index = version.indexOf( "-" );
+
+ String part1;
+ String part2 = null;
+
+ if ( index < 0 )
+ {
+ part1 = version;
+ }
+ else
+ {
+ part1 = version.substring( 0, index );
+ part2 = version.substring( index + 1 );
+ }
+
+ if ( part2 != null )
+ {
+ try
+ {
+ if ( ( part2.length() == 1 ) || !part2.startsWith( "0" ) )
+ {
+ buildNumber = Integer.valueOf( part2 );
+ }
+ else
+ {
+ qualifier = part2;
+ }
+ }
+ catch ( NumberFormatException e )
+ {
+ qualifier = part2;
+ }
+ }
+
+ if ( ( !part1.contains( "." ) ) && !part1.startsWith( "0" ) )
+ {
+ try
+ {
+ majorVersion = Integer.valueOf( part1 );
+ }
+ catch ( NumberFormatException e )
+ {
+ // qualifier is the whole version, including "-"
+ qualifier = version;
+ buildNumber = null;
+ }
+ }
+ else
+ {
+ boolean fallback = false;
+
+ StringTokenizer tok = new StringTokenizer( part1, "." );
+ try
+ {
+ majorVersion = getNextIntegerToken( tok );
+ if ( tok.hasMoreTokens() )
+ {
+ minorVersion = getNextIntegerToken( tok );
+ }
+ if ( tok.hasMoreTokens() )
+ {
+ incrementalVersion = getNextIntegerToken( tok );
+ }
+ if ( tok.hasMoreTokens() )
+ {
+ qualifier = tok.nextToken();
+ fallback = Pattern.compile( "\\d+" ).matcher( qualifier ).matches();
+ }
+
+ // string tokenzier won't detect these and ignores them
+ if ( part1.contains( ".." ) || part1.startsWith( "." ) || part1.endsWith( "." ) )
+ {
+ fallback = true;
+ }
+ }
+ catch ( NumberFormatException e )
+ {
+ fallback = true;
+ }
+
+ if ( fallback )
+ {
+ // qualifier is the whole version, including "-"
+ qualifier = version;
+ majorVersion = null;
+ minorVersion = null;
+ incrementalVersion = null;
+ buildNumber = null;
+ }
+ }
+ }
+
+ private static Integer getNextIntegerToken( StringTokenizer tok )
+ {
+ try
+ {
+ String s = tok.nextToken();
+ if ( ( s.length() > 1 ) && s.startsWith( "0" ) )
+ {
+ throw new NumberFormatException( "Number part has a leading 0: '" + s + "'" );
+ }
+ return Integer.valueOf( s );
+ }
+ catch ( NoSuchElementException e )
+ {
+ throw new NumberFormatException( "Number is invalid" );
+ }
+ }
+
+ @Override
+ public String toString()
+ {
+ return comparable.toString();
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/InvalidVersionSpecificationException.java b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/InvalidVersionSpecificationException.java
new file mode 100644
index 00000000..adc48b93
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/InvalidVersionSpecificationException.java
@@ -0,0 +1,34 @@
+package org.apache.maven.artifact.versioning;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT 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 a version is invalid.
+ *
+ * @author Brett Porter
+ */
+public class InvalidVersionSpecificationException
+ extends Exception
+{
+ public InvalidVersionSpecificationException( String message )
+ {
+ super( message );
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/OverConstrainedVersionException.java b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/OverConstrainedVersionException.java
new file mode 100644
index 00000000..bd8f3830
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/OverConstrainedVersionException.java
@@ -0,0 +1,49 @@
+package org.apache.maven.artifact.versioning;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.artifact.Artifact;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.resolver.ArtifactResolutionException;
+
+/**
+ * Occurs when ranges exclude each other and no valid value remains.
+ *
+ * @author Brett Porter
+ */
+public class OverConstrainedVersionException
+ extends ArtifactResolutionException
+{
+ public OverConstrainedVersionException( String msg,
+ Artifact artifact )
+ {
+ super( msg, artifact );
+ }
+
+ public OverConstrainedVersionException( String msg,
+ Artifact artifact,
+ List remoteRepositories )
+ {
+ super( msg, artifact, remoteRepositories );
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/Restriction.java b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/Restriction.java
new file mode 100644
index 00000000..d73d7ea5
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/Restriction.java
@@ -0,0 +1,195 @@
+package org.apache.maven.artifact.versioning;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * Describes a restriction in versioning.
+ *
+ * @author Brett Porter
+ */
+public class Restriction
+{
+ private final ArtifactVersion lowerBound;
+
+ private final boolean lowerBoundInclusive;
+
+ private final ArtifactVersion upperBound;
+
+ private final boolean upperBoundInclusive;
+
+ public static final Restriction EVERYTHING = new Restriction( null, false, null, false );
+
+ public Restriction( ArtifactVersion lowerBound, boolean lowerBoundInclusive, ArtifactVersion upperBound,
+ boolean upperBoundInclusive )
+ {
+ this.lowerBound = lowerBound;
+ this.lowerBoundInclusive = lowerBoundInclusive;
+ this.upperBound = upperBound;
+ this.upperBoundInclusive = upperBoundInclusive;
+ }
+
+ public ArtifactVersion getLowerBound()
+ {
+ return lowerBound;
+ }
+
+ public boolean isLowerBoundInclusive()
+ {
+ return lowerBoundInclusive;
+ }
+
+ public ArtifactVersion getUpperBound()
+ {
+ return upperBound;
+ }
+
+ public boolean isUpperBoundInclusive()
+ {
+ return upperBoundInclusive;
+ }
+
+ public boolean containsVersion( ArtifactVersion version )
+ {
+ if ( lowerBound != null )
+ {
+ int comparison = lowerBound.compareTo( version );
+
+ if ( ( comparison == 0 ) && !lowerBoundInclusive )
+ {
+ return false;
+ }
+ if ( comparison > 0 )
+ {
+ return false;
+ }
+ }
+ if ( upperBound != null )
+ {
+ int comparison = upperBound.compareTo( version );
+
+ if ( ( comparison == 0 ) && !upperBoundInclusive )
+ {
+ return false;
+ }
+ if ( comparison < 0 )
+ {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode()
+ {
+ int result = 13;
+
+ if ( lowerBound == null )
+ {
+ result += 1;
+ }
+ else
+ {
+ result += lowerBound.hashCode();
+ }
+
+ result *= lowerBoundInclusive ? 1 : 2;
+
+ if ( upperBound == null )
+ {
+ result -= 3;
+ }
+ else
+ {
+ result -= upperBound.hashCode();
+ }
+
+ result *= upperBoundInclusive ? 2 : 3;
+
+ return result;
+ }
+
+ @Override
+ public boolean equals( Object other )
+ {
+ if ( this == other )
+ {
+ return true;
+ }
+
+ if ( !( other instanceof Restriction ) )
+ {
+ return false;
+ }
+
+ Restriction restriction = (Restriction) other;
+ if ( lowerBound != null )
+ {
+ if ( !lowerBound.equals( restriction.lowerBound ) )
+ {
+ return false;
+ }
+ }
+ else if ( restriction.lowerBound != null )
+ {
+ return false;
+ }
+
+ if ( lowerBoundInclusive != restriction.lowerBoundInclusive )
+ {
+ return false;
+ }
+
+ if ( upperBound != null )
+ {
+ if ( !upperBound.equals( restriction.upperBound ) )
+ {
+ return false;
+ }
+ }
+ else if ( restriction.upperBound != null )
+ {
+ return false;
+ }
+
+ return upperBoundInclusive == restriction.upperBoundInclusive;
+
+ }
+
+ public String toString()
+ {
+ StringBuilder buf = new StringBuilder();
+
+ buf.append( isLowerBoundInclusive() ? "[" : "(" );
+ if ( getLowerBound() != null )
+ {
+ buf.append( getLowerBound().toString() );
+ }
+ buf.append( "," );
+ if ( getUpperBound() != null )
+ {
+ buf.append( getUpperBound().toString() );
+ }
+ buf.append( isUpperBoundInclusive() ? "]" : ")" );
+
+ return buf.toString();
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/VersionRange.java b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/VersionRange.java
new file mode 100644
index 00000000..dd8e028c
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/VersionRange.java
@@ -0,0 +1,583 @@
+package org.apache.maven.artifact.versioning;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.Collections;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.maven.artifact.Artifact;
+
+/**
+ * Construct a version range from a specification.
+ *
+ * @author Brett Porter
+ */
+public class VersionRange
+{
+ private final ArtifactVersion recommendedVersion;
+
+ private final List restrictions;
+
+ private VersionRange( ArtifactVersion recommendedVersion,
+ List restrictions )
+ {
+ this.recommendedVersion = recommendedVersion;
+ this.restrictions = restrictions;
+ }
+
+ public ArtifactVersion getRecommendedVersion()
+ {
+ return recommendedVersion;
+ }
+
+ public List getRestrictions()
+ {
+ return restrictions;
+ }
+
+ public VersionRange cloneOf()
+ {
+ List copiedRestrictions = null;
+
+ if ( restrictions != null )
+ {
+ copiedRestrictions = new ArrayList();
+
+ if ( !restrictions.isEmpty() )
+ {
+ copiedRestrictions.addAll( restrictions );
+ }
+ }
+
+ return new VersionRange( recommendedVersion, copiedRestrictions );
+ }
+
+ /**
+ * Create a version range from a string representation
+ *
+ * Some spec examples are
+ *
+ * 1.0
Version 1.0
+ * [1.0,2.0)
Versions 1.0 (included) to 2.0 (not included)
+ * [1.0,2.0]
Versions 1.0 to 2.0 (both included)
+ * [1.5,)
Versions 1.5 and higher
+ * (,1.0],[1.2,)
Versions up to 1.0 (included) and 1.2 or higher
+ *
+ *
+ * @param spec string representation of a version or version range
+ * @return a new {@link VersionRange} object that represents the spec
+ * @throws InvalidVersionSpecificationException
+ *
+ */
+ public static VersionRange createFromVersionSpec( String spec )
+ throws InvalidVersionSpecificationException
+ {
+ if ( spec == null )
+ {
+ return null;
+ }
+
+ List restrictions = new ArrayList();
+ String process = spec;
+ ArtifactVersion version = null;
+ ArtifactVersion upperBound = null;
+ ArtifactVersion lowerBound = null;
+
+ while ( process.startsWith( "[" ) || process.startsWith( "(" ) )
+ {
+ int index1 = process.indexOf( ")" );
+ int index2 = process.indexOf( "]" );
+
+ int index = index2;
+ if ( index2 < 0 || index1 < index2 )
+ {
+ if ( index1 >= 0 )
+ {
+ index = index1;
+ }
+ }
+
+ if ( index < 0 )
+ {
+ throw new InvalidVersionSpecificationException( "Unbounded range: " + spec );
+ }
+
+ Restriction restriction = parseRestriction( process.substring( 0, index + 1 ) );
+ if ( lowerBound == null )
+ {
+ lowerBound = restriction.getLowerBound();
+ }
+ if ( upperBound != null )
+ {
+ if ( restriction.getLowerBound() == null || restriction.getLowerBound().compareTo( upperBound ) < 0 )
+ {
+ throw new InvalidVersionSpecificationException( "Ranges overlap: " + spec );
+ }
+ }
+ restrictions.add( restriction );
+ upperBound = restriction.getUpperBound();
+
+ process = process.substring( index + 1 ).trim();
+
+ if ( process.length() > 0 && process.startsWith( "," ) )
+ {
+ process = process.substring( 1 ).trim();
+ }
+ }
+
+ if ( process.length() > 0 )
+ {
+ if ( restrictions.size() > 0 )
+ {
+ throw new InvalidVersionSpecificationException(
+ "Only fully-qualified sets allowed in multiple set scenario: " + spec );
+ }
+ else
+ {
+ version = new DefaultArtifactVersion( process );
+ restrictions.add( Restriction.EVERYTHING );
+ }
+ }
+
+ return new VersionRange( version, restrictions );
+ }
+
+ private static Restriction parseRestriction( String spec )
+ throws InvalidVersionSpecificationException
+ {
+ boolean lowerBoundInclusive = spec.startsWith( "[" );
+ boolean upperBoundInclusive = spec.endsWith( "]" );
+
+ String process = spec.substring( 1, spec.length() - 1 ).trim();
+
+ Restriction restriction;
+
+ int index = process.indexOf( "," );
+
+ if ( index < 0 )
+ {
+ if ( !lowerBoundInclusive || !upperBoundInclusive )
+ {
+ throw new InvalidVersionSpecificationException( "Single version must be surrounded by []: " + spec );
+ }
+
+ ArtifactVersion version = new DefaultArtifactVersion( process );
+
+ restriction = new Restriction( version, lowerBoundInclusive, version, upperBoundInclusive );
+ }
+ else
+ {
+ String lowerBound = process.substring( 0, index ).trim();
+ String upperBound = process.substring( index + 1 ).trim();
+ if ( lowerBound.equals( upperBound ) )
+ {
+ throw new InvalidVersionSpecificationException( "Range cannot have identical boundaries: " + spec );
+ }
+
+ ArtifactVersion lowerVersion = null;
+ if ( lowerBound.length() > 0 )
+ {
+ lowerVersion = new DefaultArtifactVersion( lowerBound );
+ }
+ ArtifactVersion upperVersion = null;
+ if ( upperBound.length() > 0 )
+ {
+ upperVersion = new DefaultArtifactVersion( upperBound );
+ }
+
+ if ( upperVersion != null && lowerVersion != null && upperVersion.compareTo( lowerVersion ) < 0 )
+ {
+ throw new InvalidVersionSpecificationException( "Range defies version ordering: " + spec );
+ }
+
+ restriction = new Restriction( lowerVersion, lowerBoundInclusive, upperVersion, upperBoundInclusive );
+ }
+
+ return restriction;
+ }
+
+ public static VersionRange createFromVersion( String version )
+ {
+ List restrictions = Collections.emptyList();
+ return new VersionRange( new DefaultArtifactVersion( version ), restrictions );
+ }
+
+ /**
+ * Creates and returns a new VersionRange
that is a restriction of this
+ * version range and the specified version range.
+ *
+ * Note: Precedence is given to the recommended version from this version range over the
+ * recommended version from the specified version range.
+ *
+ *
+ * @param restriction the VersionRange
that will be used to restrict this version
+ * range.
+ * @return the VersionRange
that is a restriction of this version range and the
+ * specified version range.
+ *
+ * The restrictions of the returned version range will be an intersection of the restrictions
+ * of this version range and the specified version range if both version ranges have
+ * restrictions. Otherwise, the restrictions on the returned range will be empty.
+ *
+ *
+ * The recommended version of the returned version range will be the recommended version of
+ * this version range, provided that ranges falls within the intersected restrictions. If
+ * the restrictions are empty, this version range's recommended version is used if it is not
+ * null
. If it is null
, the specified version range's recommended
+ * version is used (provided it is non-null
). If no recommended version can be
+ * obtained, the returned version range's recommended version is set to null
.
+ *
+ * @throws NullPointerException if the specified VersionRange
is
+ * null
.
+ */
+ public VersionRange restrict( VersionRange restriction )
+ {
+ List r1 = this.restrictions;
+ List r2 = restriction.restrictions;
+ List restrictions;
+
+ if ( r1.isEmpty() || r2.isEmpty() )
+ {
+ restrictions = Collections.emptyList();
+ }
+ else
+ {
+ restrictions = intersection( r1, r2 );
+ }
+
+ ArtifactVersion version = null;
+ if ( restrictions.size() > 0 )
+ {
+ for ( Restriction r : restrictions )
+ {
+ if ( recommendedVersion != null && r.containsVersion( recommendedVersion ) )
+ {
+ // if we find the original, use that
+ version = recommendedVersion;
+ break;
+ }
+ else if ( version == null && restriction.getRecommendedVersion() != null
+ && r.containsVersion( restriction.getRecommendedVersion() ) )
+ {
+ // use this if we can, but prefer the original if possible
+ version = restriction.getRecommendedVersion();
+ }
+ }
+ }
+ // Either the original or the specified version ranges have no restrictions
+ else if ( recommendedVersion != null )
+ {
+ // Use the original recommended version since it exists
+ version = recommendedVersion;
+ }
+ else if ( restriction.recommendedVersion != null )
+ {
+ // Use the recommended version from the specified VersionRange since there is no
+ // original recommended version
+ version = restriction.recommendedVersion;
+ }
+/* TODO: should throw this immediately, but need artifact
+ else
+ {
+ throw new OverConstrainedVersionException( "Restricting incompatible version ranges" );
+ }
+*/
+
+ return new VersionRange( version, restrictions );
+ }
+
+ private List intersection( List r1, List r2 )
+ {
+ List restrictions = new ArrayList( r1.size() + r2.size() );
+ Iterator i1 = r1.iterator();
+ Iterator i2 = r2.iterator();
+ Restriction res1 = i1.next();
+ Restriction res2 = i2.next();
+
+ boolean done = false;
+ while ( !done )
+ {
+ if ( res1.getLowerBound() == null || res2.getUpperBound() == null
+ || res1.getLowerBound().compareTo( res2.getUpperBound() ) <= 0 )
+ {
+ if ( res1.getUpperBound() == null || res2.getLowerBound() == null
+ || res1.getUpperBound().compareTo( res2.getLowerBound() ) >= 0 )
+ {
+ ArtifactVersion lower;
+ ArtifactVersion upper;
+ boolean lowerInclusive;
+ boolean upperInclusive;
+
+ // overlaps
+ if ( res1.getLowerBound() == null )
+ {
+ lower = res2.getLowerBound();
+ lowerInclusive = res2.isLowerBoundInclusive();
+ }
+ else if ( res2.getLowerBound() == null )
+ {
+ lower = res1.getLowerBound();
+ lowerInclusive = res1.isLowerBoundInclusive();
+ }
+ else
+ {
+ int comparison = res1.getLowerBound().compareTo( res2.getLowerBound() );
+ if ( comparison < 0 )
+ {
+ lower = res2.getLowerBound();
+ lowerInclusive = res2.isLowerBoundInclusive();
+ }
+ else if ( comparison == 0 )
+ {
+ lower = res1.getLowerBound();
+ lowerInclusive = res1.isLowerBoundInclusive() && res2.isLowerBoundInclusive();
+ }
+ else
+ {
+ lower = res1.getLowerBound();
+ lowerInclusive = res1.isLowerBoundInclusive();
+ }
+ }
+
+ if ( res1.getUpperBound() == null )
+ {
+ upper = res2.getUpperBound();
+ upperInclusive = res2.isUpperBoundInclusive();
+ }
+ else if ( res2.getUpperBound() == null )
+ {
+ upper = res1.getUpperBound();
+ upperInclusive = res1.isUpperBoundInclusive();
+ }
+ else
+ {
+ int comparison = res1.getUpperBound().compareTo( res2.getUpperBound() );
+ if ( comparison < 0 )
+ {
+ upper = res1.getUpperBound();
+ upperInclusive = res1.isUpperBoundInclusive();
+ }
+ else if ( comparison == 0 )
+ {
+ upper = res1.getUpperBound();
+ upperInclusive = res1.isUpperBoundInclusive() && res2.isUpperBoundInclusive();
+ }
+ else
+ {
+ upper = res2.getUpperBound();
+ upperInclusive = res2.isUpperBoundInclusive();
+ }
+ }
+
+ // don't add if they are equal and one is not inclusive
+ if ( lower == null || upper == null || lower.compareTo( upper ) != 0 )
+ {
+ restrictions.add( new Restriction( lower, lowerInclusive, upper, upperInclusive ) );
+ }
+ else if ( lowerInclusive && upperInclusive )
+ {
+ restrictions.add( new Restriction( lower, lowerInclusive, upper, upperInclusive ) );
+ }
+
+ //noinspection ObjectEquality
+ if ( upper == res2.getUpperBound() )
+ {
+ // advance res2
+ if ( i2.hasNext() )
+ {
+ res2 = i2.next();
+ }
+ else
+ {
+ done = true;
+ }
+ }
+ else
+ {
+ // advance res1
+ if ( i1.hasNext() )
+ {
+ res1 = i1.next();
+ }
+ else
+ {
+ done = true;
+ }
+ }
+ }
+ else
+ {
+ // move on to next in r1
+ if ( i1.hasNext() )
+ {
+ res1 = i1.next();
+ }
+ else
+ {
+ done = true;
+ }
+ }
+ }
+ else
+ {
+ // move on to next in r2
+ if ( i2.hasNext() )
+ {
+ res2 = i2.next();
+ }
+ else
+ {
+ done = true;
+ }
+ }
+ }
+
+ return restrictions;
+ }
+
+ public ArtifactVersion getSelectedVersion( Artifact artifact )
+ throws OverConstrainedVersionException
+ {
+ ArtifactVersion version;
+ if ( recommendedVersion != null )
+ {
+ version = recommendedVersion;
+ }
+ else
+ {
+ if ( restrictions.size() == 0 )
+ {
+ throw new OverConstrainedVersionException( "The artifact has no valid ranges", artifact );
+ }
+
+ version = null;
+ }
+ return version;
+ }
+
+ public boolean isSelectedVersionKnown( Artifact artifact )
+ throws OverConstrainedVersionException
+ {
+ boolean value = false;
+ if ( recommendedVersion != null )
+ {
+ value = true;
+ }
+ else
+ {
+ if ( restrictions.size() == 0 )
+ {
+ throw new OverConstrainedVersionException( "The artifact has no valid ranges", artifact );
+ }
+ }
+ return value;
+ }
+
+ public String toString()
+ {
+ if ( recommendedVersion != null )
+ {
+ return recommendedVersion.toString();
+ }
+ else
+ {
+ StringBuilder buf = new StringBuilder();
+ for ( Iterator i = restrictions.iterator(); i.hasNext(); )
+ {
+ Restriction r = i.next();
+
+ buf.append( r.toString() );
+
+ if ( i.hasNext() )
+ {
+ buf.append( ',' );
+ }
+ }
+ return buf.toString();
+ }
+ }
+
+ public ArtifactVersion matchVersion( List versions )
+ {
+ // TODO: could be more efficient by sorting the list and then moving along the restrictions in order?
+
+ ArtifactVersion matched = null;
+ for ( ArtifactVersion version : versions )
+ {
+ if ( containsVersion( version ) )
+ {
+ // valid - check if it is greater than the currently matched version
+ if ( matched == null || version.compareTo( matched ) > 0 )
+ {
+ matched = version;
+ }
+ }
+ }
+ return matched;
+ }
+
+ public boolean containsVersion( ArtifactVersion version )
+ {
+ for ( Restriction restriction : restrictions )
+ {
+ if ( restriction.containsVersion( version ) )
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public boolean hasRestrictions()
+ {
+ return !restrictions.isEmpty() && recommendedVersion == null;
+ }
+
+ public boolean equals( Object obj )
+ {
+ if ( this == obj )
+ {
+ return true;
+ }
+ if ( !( obj instanceof VersionRange ) )
+ {
+ return false;
+ }
+ VersionRange other = (VersionRange) obj;
+
+ boolean equals =
+ recommendedVersion == other.recommendedVersion
+ || ( ( recommendedVersion != null ) && recommendedVersion.equals( other.recommendedVersion ) );
+ equals &=
+ restrictions == other.restrictions
+ || ( ( restrictions != null ) && restrictions.equals( other.restrictions ) );
+ return equals;
+ }
+
+ public int hashCode()
+ {
+ int hash = 7;
+ hash = 31 * hash + ( recommendedVersion == null ? 0 : recommendedVersion.hashCode() );
+ hash = 31 * hash + ( restrictions == null ? 0 : restrictions.hashCode() );
+ return hash;
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/repository/Proxy.java b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/repository/Proxy.java
new file mode 100644
index 00000000..ea2c0238
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/repository/Proxy.java
@@ -0,0 +1,197 @@
+package org.apache.maven.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.
+ */
+
+public class Proxy
+{
+ public static final String PROXY_SOCKS5 = "SOCKS_5";
+
+ public static final String PROXY_SOCKS4 = "SOCKS4";
+
+ public static final String PROXY_HTTP = "HTTP";
+
+ /**
+ * Proxy server host
+ */
+ private String host;
+
+ /**
+ * Username used to access the proxy server
+ */
+ private String userName;
+
+ /**
+ * Password associated with the proxy server
+ */
+ private String password;
+
+ /**
+ * Proxy server port
+ */
+ private int port;
+
+ /**
+ * Type of the proxy
+ */
+ private String protocol;
+
+ /**
+ * The non-proxy hosts. Follows Java system property format: *.foo.com|localhost
.
+ */
+ private String nonProxyHosts;
+
+ /**
+ * For NTLM proxies, specifies the NTLM host.
+ */
+ private String ntlmHost;
+
+ /**
+ * For NTLM proxies, specifies the NTLM domain.
+ */
+ private String ntlmDomain;
+
+ /**
+ * Return proxy server host name.
+ *
+ * @return proxy server host name
+ */
+ public String getHost()
+ {
+ return host;
+ }
+
+ /**
+ * Set proxy host name.
+ *
+ * @param host proxy server host name
+ */
+ public void setHost( String host )
+ {
+ this.host = host;
+ }
+
+ /**
+ * Get user's password used to login to proxy server.
+ *
+ * @return user's password at proxy host
+ */
+ public String getPassword()
+ {
+ return password;
+ }
+
+ /**
+ * Set the user's password for the proxy server.
+ *
+ * @param password password to use to login to a proxy server
+ */
+ public void setPassword( String password )
+ {
+ this.password = password;
+ }
+
+ /**
+ * Get the proxy port.
+ *
+ * @return proxy server port
+ */
+ public int getPort()
+ {
+ return port;
+ }
+
+ /**
+ * Set the proxy port.
+ *
+ * @param port proxy server port
+ */
+ public void setPort( int port )
+ {
+ this.port = port;
+ }
+
+ /**
+ * Get the proxy username.
+ *
+ * @return username for the proxy server
+ */
+ public String getUserName()
+ {
+ return userName;
+ }
+
+ /**
+ * Set the proxy username.
+ *
+ * @param userName username for the proxy server
+ */
+ public void setUserName( String userName )
+ {
+ this.userName = userName;
+ }
+
+ /**
+ * Get the type of the proxy server.
+ *
+ * @return the type of the proxy server
+ */
+ public String getProtocol()
+ {
+ return protocol;
+ }
+
+ /**
+ * @param type the type of the proxy server like SOCKSv4
+ */
+ public void setProtocol( String protocol )
+ {
+ this.protocol = protocol;
+ }
+
+ public String getNonProxyHosts()
+ {
+ return nonProxyHosts;
+ }
+
+ public void setNonProxyHosts( String nonProxyHosts )
+ {
+ this.nonProxyHosts = nonProxyHosts;
+ }
+
+ public String getNtlmHost()
+ {
+ return ntlmHost;
+ }
+
+ public void setNtlmHost( String ntlmHost )
+ {
+ this.ntlmHost = ntlmHost;
+ }
+
+ public void setNtlmDomain( String ntlmDomain )
+ {
+ this.ntlmDomain = ntlmDomain;
+ }
+
+ public String getNtlmDomain()
+ {
+ return ntlmDomain;
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/repository/legacy/metadata/ArtifactMetadata.java b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/repository/legacy/metadata/ArtifactMetadata.java
new file mode 100644
index 00000000..e66a84a9
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/main/java/org/apache/maven/repository/legacy/metadata/ArtifactMetadata.java
@@ -0,0 +1,83 @@
+package org.apache.maven.repository.legacy.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.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.metadata.RepositoryMetadataStoreException;
+
+/**
+ * Contains metadata about an artifact, and methods to retrieve/store it from an artifact repository.
+ *
+ * @author Brett Porter
+ * @todo merge with artifactmetadatasource
+ * @todo retrieval exception not appropriate for store
+ */
+public interface ArtifactMetadata
+{
+ /** Whether this metadata should be stored alongside the artifact. */
+ boolean storedInArtifactVersionDirectory();
+
+ /** Whether this metadata should be stored alongside the group. */
+ boolean storedInGroupDirectory();
+
+ String getGroupId();
+
+ String getArtifactId();
+
+ String getBaseVersion();
+
+ Object getKey();
+
+ /**
+ * Get the filename of this metadata on the local repository.
+ *
+ * @param repository the remote repository it came from
+ * @return the filename
+ */
+ String getLocalFilename( ArtifactRepository repository );
+
+ /**
+ * Get the filename of this metadata on the remote repository.
+ *
+ * @return the filename
+ */
+ String getRemoteFilename();
+
+ /**
+ * Merge a new metadata set into this piece of metadata.
+ *
+ * @param metadata the new metadata
+ * @todo this should only be needed on the repository metadata
+ */
+ void merge( ArtifactMetadata metadata );
+
+ /**
+ * Store the metadata in the local repository.
+ *
+ * @param localRepository the local repository
+ * @param remoteRepository the remote repository it came from
+ * @todo this should only be needed on the repository metadata
+ */
+ void storeInLocalRepository( ArtifactRepository localRepository,
+ ArtifactRepository remoteRepository )
+ throws RepositoryMetadataStoreException;
+
+ String extendedToString();
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/site/apt/index.apt b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/site/apt/index.apt
new file mode 100644
index 00000000..f796c118
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/site/apt/index.apt
@@ -0,0 +1,47 @@
+~~ Licensed to the Apache Software Foundation (ASF) under one
+~~ or more contributor license agreements. See the NOTICE file
+~~ distributed with this work for additional information
+~~ regarding copyright ownership. The ASF licenses this file
+~~ to you under the Apache License, Version 2.0 (the
+~~ "License"); you may not use this file except in compliance
+~~ with the License. You may obtain a copy of the License at
+~~
+~~ http://www.apache.org/licenses/LICENSE-2.0
+~~
+~~ Unless required by applicable law or agreed to in writing,
+~~ software distributed under the License is distributed on an
+~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+~~ KIND, either express or implied. See the License for the
+~~ specific language governing permissions and limitations
+~~ under the License.
+
+ -----
+ Introduction
+ -----
+ Hervé Boutemy
+ -----
+ 2014-11-30
+ -----
+
+Maven Artifact
+
+ Maven Artifact classes, providing <<>> interface ({{{./apidocs/org/apache/maven/artifact/Artifact.html}javadoc}}),
+ with its <<>> implementation ({{{./xref/org/apache/maven/artifact/DefaultArtifact.html}source}}).
+
+ The jar file is executable and provides a little tool to display how Maven parses and compares versions:
+
++----+
+$ java -jar maven-artifact-*.jar 3.2.4-alpha-1 3.2.4-SNAPSHOT 3.2.4.0
+Display parameters as parsed by Maven (in canonical form) and comparison result:
+1. 3.2.4-alpha-1 == 3.2.4.alpha.1
+ 3.2.4-alpha-1 < 3.2.4-SNAPSHOT
+2. 3.2.4-SNAPSHOT == 3.2.4.snapshot
+ 3.2.4-SNAPSHOT < 3.2.4.0
+3. 3.2.4.0 == 3.2.4
++----+
+
+* Useful entry points
+
+ * artifact version comparison {{{./apidocs/org/apache/maven/artifact/versioning/ComparableVersion.html}javadoc}},
+
+ * {{{./apidocs/org/apache/maven/artifact/versioning/VersionRange.html}version range}}.
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/site/site.xml b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/site/site.xml
new file mode 100644
index 00000000..3a16bf98
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/site/site.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/ComparableVersionTest.java b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/ComparableVersionTest.java
new file mode 100644
index 00000000..6cf372f7
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/ComparableVersionTest.java
@@ -0,0 +1,231 @@
+package org.apache.maven.artifact.versioning;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.Locale;
+
+import junit.framework.TestCase;
+
+/**
+ * Test ComparableVersion.
+ *
+ * @author Hervé Boutemy
+ */
+@SuppressWarnings( "unchecked" )
+public class ComparableVersionTest
+ extends TestCase
+{
+ private Comparable newComparable( String version )
+ {
+ ComparableVersion ret = new ComparableVersion( version );
+ String canonical = ret.getCanonical();
+ String parsedCanonical = new ComparableVersion( canonical ).getCanonical();
+
+ System.out.println( "canonical( " + version + " ) = " + canonical );
+ assertEquals( "canonical( " + version + " ) = " + canonical + " -> canonical: " + parsedCanonical, canonical,
+ parsedCanonical );
+
+ return ret;
+ }
+
+ private static final String[] VERSIONS_QUALIFIER =
+ { "1-alpha2snapshot", "1-alpha2", "1-alpha-123", "1-beta-2", "1-beta123", "1-m2", "1-m11", "1-rc", "1-cr2",
+ "1-rc123", "1-SNAPSHOT", "1", "1-sp", "1-sp2", "1-sp123", "1-abc", "1-def", "1-pom-1", "1-1-snapshot",
+ "1-1", "1-2", "1-123" };
+
+ private static final String[] VERSIONS_NUMBER =
+ { "2.0", "2-1", "2.0.a", "2.0.0.a", "2.0.2", "2.0.123", "2.1.0", "2.1-a", "2.1b", "2.1-c", "2.1-1", "2.1.0.1",
+ "2.2", "2.123", "11.a2", "11.a11", "11.b2", "11.b11", "11.m2", "11.m11", "11", "11.a", "11b", "11c", "11m" };
+
+ private void checkVersionsOrder( String[] versions )
+ {
+ Comparable[] c = new Comparable[versions.length];
+ for ( int i = 0; i < versions.length; i++ )
+ {
+ c[i] = newComparable( versions[i] );
+ }
+
+ for ( int i = 1; i < versions.length; i++ )
+ {
+ Comparable low = c[i - 1];
+ for ( int j = i; j < versions.length; j++ )
+ {
+ Comparable high = c[j];
+ assertTrue( "expected " + low + " < " + high, low.compareTo( high ) < 0 );
+ assertTrue( "expected " + high + " > " + low, high.compareTo( low ) > 0 );
+ }
+ }
+ }
+
+ private void checkVersionsEqual( String v1, String v2 )
+ {
+ Comparable c1 = newComparable( v1 );
+ Comparable c2 = newComparable( v2 );
+ assertTrue( "expected " + v1 + " == " + v2, c1.compareTo( c2 ) == 0 );
+ assertTrue( "expected " + v2 + " == " + v1, c2.compareTo( c1 ) == 0 );
+ assertTrue( "expected same hashcode for " + v1 + " and " + v2, c1.hashCode() == c2.hashCode() );
+ assertTrue( "expected " + v1 + ".equals( " + v2 + " )", c1.equals( c2 ) );
+ assertTrue( "expected " + v2 + ".equals( " + v1 + " )", c2.equals( c1 ) );
+ }
+
+ private void checkVersionsOrder( String v1, String v2 )
+ {
+ Comparable c1 = newComparable( v1 );
+ Comparable c2 = newComparable( v2 );
+ assertTrue( "expected " + v1 + " < " + v2, c1.compareTo( c2 ) < 0 );
+ assertTrue( "expected " + v2 + " > " + v1, c2.compareTo( c1 ) > 0 );
+ }
+
+ public void testVersionsQualifier()
+ {
+ checkVersionsOrder( VERSIONS_QUALIFIER );
+ }
+
+ public void testVersionsNumber()
+ {
+ checkVersionsOrder( VERSIONS_NUMBER );
+ }
+
+ public void testVersionsEqual()
+ {
+ newComparable( "1.0-alpha" );
+ checkVersionsEqual( "1", "1" );
+ checkVersionsEqual( "1", "1.0" );
+ checkVersionsEqual( "1", "1.0.0" );
+ checkVersionsEqual( "1.0", "1.0.0" );
+ checkVersionsEqual( "1", "1-0" );
+ checkVersionsEqual( "1", "1.0-0" );
+ checkVersionsEqual( "1.0", "1.0-0" );
+ // no separator between number and character
+ checkVersionsEqual( "1a", "1-a" );
+ checkVersionsEqual( "1a", "1.0-a" );
+ checkVersionsEqual( "1a", "1.0.0-a" );
+ checkVersionsEqual( "1.0a", "1-a" );
+ checkVersionsEqual( "1.0.0a", "1-a" );
+ checkVersionsEqual( "1x", "1-x" );
+ checkVersionsEqual( "1x", "1.0-x" );
+ checkVersionsEqual( "1x", "1.0.0-x" );
+ checkVersionsEqual( "1.0x", "1-x" );
+ checkVersionsEqual( "1.0.0x", "1-x" );
+
+ // aliases
+ checkVersionsEqual( "1ga", "1" );
+ checkVersionsEqual( "1final", "1" );
+ checkVersionsEqual( "1cr", "1rc" );
+
+ // special "aliases" a, b and m for alpha, beta and milestone
+ checkVersionsEqual( "1a1", "1-alpha-1" );
+ checkVersionsEqual( "1b2", "1-beta-2" );
+ checkVersionsEqual( "1m3", "1-milestone-3" );
+
+ // case insensitive
+ checkVersionsEqual( "1X", "1x" );
+ checkVersionsEqual( "1A", "1a" );
+ checkVersionsEqual( "1B", "1b" );
+ checkVersionsEqual( "1M", "1m" );
+ checkVersionsEqual( "1Ga", "1" );
+ checkVersionsEqual( "1GA", "1" );
+ checkVersionsEqual( "1Final", "1" );
+ checkVersionsEqual( "1FinaL", "1" );
+ checkVersionsEqual( "1FINAL", "1" );
+ checkVersionsEqual( "1Cr", "1Rc" );
+ checkVersionsEqual( "1cR", "1rC" );
+ checkVersionsEqual( "1m3", "1Milestone3" );
+ checkVersionsEqual( "1m3", "1MileStone3" );
+ checkVersionsEqual( "1m3", "1MILESTONE3" );
+ }
+
+ public void testVersionComparing()
+ {
+ checkVersionsOrder( "1", "2" );
+ checkVersionsOrder( "1.5", "2" );
+ checkVersionsOrder( "1", "2.5" );
+ checkVersionsOrder( "1.0", "1.1" );
+ checkVersionsOrder( "1.1", "1.2" );
+ checkVersionsOrder( "1.0.0", "1.1" );
+ checkVersionsOrder( "1.0.1", "1.1" );
+ checkVersionsOrder( "1.1", "1.2.0" );
+
+ checkVersionsOrder( "1.0-alpha-1", "1.0" );
+ checkVersionsOrder( "1.0-alpha-1", "1.0-alpha-2" );
+ checkVersionsOrder( "1.0-alpha-1", "1.0-beta-1" );
+
+ checkVersionsOrder( "1.0-beta-1", "1.0-SNAPSHOT" );
+ checkVersionsOrder( "1.0-SNAPSHOT", "1.0" );
+ checkVersionsOrder( "1.0-alpha-1-SNAPSHOT", "1.0-alpha-1" );
+
+ checkVersionsOrder( "1.0", "1.0-1" );
+ checkVersionsOrder( "1.0-1", "1.0-2" );
+ checkVersionsOrder( "1.0.0", "1.0-1" );
+
+ checkVersionsOrder( "2.0-1", "2.0.1" );
+ checkVersionsOrder( "2.0.1-klm", "2.0.1-lmn" );
+ checkVersionsOrder( "2.0.1", "2.0.1-xyz" );
+
+ checkVersionsOrder( "2.0.1", "2.0.1-123" );
+ checkVersionsOrder( "2.0.1-xyz", "2.0.1-123" );
+ }
+
+ /**
+ * Test MNG-5568 edge case
+ * which was showing transitive inconsistency: since A > B and B > C then we should have A > C
+ * otherwise sorting a list of ComparableVersions() will in some cases throw runtime exception;
+ * see Netbeans issues 240845 and
+ * 226100
+ */
+ public void testMng5568()
+ {
+ String a = "6.1.0";
+ String b = "6.1.0rc3";
+ String c = "6.1H.5-beta"; // this is the unusual version string, with 'H' in the middle
+
+ checkVersionsOrder( b, a ); // classical
+ checkVersionsOrder( b, c ); // now b < c, but before MNG-5568, we had b > c
+ checkVersionsOrder( a, c );
+ }
+
+ public void testLocaleIndependent()
+ {
+ Locale orig = Locale.getDefault();
+ Locale[] locales = { Locale.ENGLISH, new Locale( "tr" ), Locale.getDefault() };
+ try
+ {
+ for ( Locale locale : locales )
+ {
+ Locale.setDefault( locale );
+ checkVersionsEqual( "1-abcdefghijklmnopqrstuvwxyz", "1-ABCDEFGHIJKLMNOPQRSTUVWXYZ" );
+ }
+ }
+ finally
+ {
+ Locale.setDefault( orig );
+ }
+ }
+
+ public void testReuse()
+ {
+ ComparableVersion c1 = new ComparableVersion( "1" );
+ c1.parseVersion( "2" );
+
+ Comparable c2 = newComparable( "2" );
+
+ assertEquals( "reused instance should be equivalent to new instance", c1, c2 );
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java
new file mode 100644
index 00000000..fc5a2742
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/DefaultArtifactVersionTest.java
@@ -0,0 +1,223 @@
+package org.apache.maven.artifact.versioning;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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 DefaultArtifactVersion.
+ *
+ * @author Brett Porter
+ */
+public class DefaultArtifactVersionTest
+ extends TestCase
+{
+ private ArtifactVersion newArtifactVersion( String version )
+ {
+ return new DefaultArtifactVersion( version );
+ }
+
+ private void checkVersionParsing( String version, int major, int minor, int incremental, int buildnumber,
+ String qualifier )
+ {
+ ArtifactVersion artifactVersion = newArtifactVersion( version );
+ String parsed =
+ "'" + version + "' parsed as ('" + artifactVersion.getMajorVersion() + "', '"
+ + artifactVersion.getMinorVersion() + "', '" + artifactVersion.getIncrementalVersion() + "', '"
+ + artifactVersion.getBuildNumber() + "', '" + artifactVersion.getQualifier() + "'), ";
+ assertEquals( parsed + "check major version", major, artifactVersion.getMajorVersion() );
+ assertEquals( parsed + "check minor version", minor, artifactVersion.getMinorVersion() );
+ assertEquals( parsed + "check incremental version", incremental, artifactVersion.getIncrementalVersion() );
+ assertEquals( parsed + "check build number", buildnumber, artifactVersion.getBuildNumber() );
+ assertEquals( parsed + "check qualifier", qualifier, artifactVersion.getQualifier() );
+ assertEquals( "check " + version + " string value", version, artifactVersion.toString() );
+ }
+
+ public void testVersionParsing()
+ {
+ checkVersionParsing( "1", 1, 0, 0, 0, null );
+ checkVersionParsing( "1.2", 1, 2, 0, 0, null );
+ checkVersionParsing( "1.2.3", 1, 2, 3, 0, null );
+ checkVersionParsing( "1.2.3-1", 1, 2, 3, 1, null );
+ checkVersionParsing( "1.2.3-alpha-1", 1, 2, 3, 0, "alpha-1" );
+ checkVersionParsing( "1.2-alpha-1", 1, 2, 0, 0, "alpha-1" );
+ checkVersionParsing( "1.2-alpha-1-20050205.060708-1", 1, 2, 0, 0, "alpha-1-20050205.060708-1" );
+ checkVersionParsing( "RELEASE", 0, 0, 0, 0, "RELEASE" );
+ checkVersionParsing( "2.0-1", 2, 0, 0, 1, null );
+
+ // 0 at the beginning of a number has a special handling
+ checkVersionParsing( "02", 0, 0, 0, 0, "02" );
+ checkVersionParsing( "0.09", 0, 0, 0, 0, "0.09" );
+ checkVersionParsing( "0.2.09", 0, 0, 0, 0, "0.2.09" );
+ checkVersionParsing( "2.0-01", 2, 0, 0, 0, "01" );
+
+ // version schemes not really supported: fully transformed as qualifier
+ checkVersionParsing( "1.0.1b", 0, 0, 0, 0, "1.0.1b" );
+ checkVersionParsing( "1.0M2", 0, 0, 0, 0, "1.0M2" );
+ checkVersionParsing( "1.0RC2", 0, 0, 0, 0, "1.0RC2" );
+ checkVersionParsing( "1.1.2.beta1", 1, 1, 2, 0, "beta1" );
+ checkVersionParsing( "1.7.3.beta1", 1, 7, 3, 0, "beta1" );
+ checkVersionParsing( "1.7.3.0", 0, 0, 0, 0, "1.7.3.0" );
+ checkVersionParsing( "1.7.3.0-1", 0, 0, 0, 0, "1.7.3.0-1" );
+ checkVersionParsing( "PATCH-1193602", 0, 0, 0, 0, "PATCH-1193602" );
+ checkVersionParsing( "5.0.0alpha-2006020117", 0, 0, 0, 0, "5.0.0alpha-2006020117" );
+ checkVersionParsing( "1.0.0.-SNAPSHOT", 0, 0, 0, 0, "1.0.0.-SNAPSHOT" );
+ checkVersionParsing( "1..0-SNAPSHOT", 0, 0, 0, 0, "1..0-SNAPSHOT" );
+ checkVersionParsing( "1.0.-SNAPSHOT", 0, 0, 0, 0, "1.0.-SNAPSHOT" );
+ checkVersionParsing( ".1.0-SNAPSHOT", 0, 0, 0, 0, ".1.0-SNAPSHOT" );
+
+ checkVersionParsing( "1.2.3.200705301630", 0, 0, 0, 0, "1.2.3.200705301630" );
+ checkVersionParsing( "1.2.3-200705301630", 1, 2, 3, 0, "200705301630" );
+ }
+
+ public void testVersionComparing()
+ {
+ assertVersionEqual( "1", "1" );
+ assertVersionOlder( "1", "2" );
+ assertVersionOlder( "1.5", "2" );
+ assertVersionOlder( "1", "2.5" );
+ assertVersionEqual( "1", "1.0" );
+ assertVersionEqual( "1", "1.0.0" );
+ assertVersionOlder( "1.0", "1.1" );
+ assertVersionOlder( "1.1", "1.2" );
+ assertVersionOlder( "1.0.0", "1.1" );
+ assertVersionOlder( "1.1", "1.2.0" );
+
+ assertVersionOlder( "1.1.2.alpha1", "1.1.2" );
+ assertVersionOlder( "1.1.2.alpha1", "1.1.2.beta1" );
+ assertVersionOlder( "1.1.2.beta1", "1.2" );
+
+ assertVersionOlder( "1.0-alpha-1", "1.0" );
+ assertVersionOlder( "1.0-alpha-1", "1.0-alpha-2" );
+ assertVersionOlder( "1.0-alpha-2", "1.0-alpha-15" );
+ assertVersionOlder( "1.0-alpha-1", "1.0-beta-1" );
+
+ assertVersionOlder( "1.0-beta-1", "1.0-SNAPSHOT" );
+ assertVersionOlder( "1.0-SNAPSHOT", "1.0" );
+ assertVersionOlder( "1.0-alpha-1-SNAPSHOT", "1.0-alpha-1" );
+
+ assertVersionOlder( "1.0", "1.0-1" );
+ assertVersionOlder( "1.0-1", "1.0-2" );
+ assertVersionEqual( "2.0-0", "2.0" );
+ assertVersionOlder( "2.0", "2.0-1" );
+ assertVersionOlder( "2.0.0", "2.0-1" );
+ assertVersionOlder( "2.0-1", "2.0.1" );
+
+ assertVersionOlder( "2.0.1-klm", "2.0.1-lmn" );
+ assertVersionOlder( "2.0.1", "2.0.1-xyz" );
+ assertVersionOlder( "2.0.1-xyz-1", "2.0.1-1-xyz" );
+
+ assertVersionOlder( "2.0.1", "2.0.1-123" );
+ assertVersionOlder( "2.0.1-xyz", "2.0.1-123" );
+
+ assertVersionOlder( "1.2.3-10000000000", "1.2.3-10000000001" );
+ assertVersionOlder( "1.2.3-1", "1.2.3-10000000001" );
+ assertVersionOlder( "2.3.0-v200706262000", "2.3.0-v200706262130" ); // org.eclipse:emf:2.3.0-v200706262000
+ // org.eclipse.wst.common_core.feature_2.0.0.v200706041905-7C78EK9E_EkMNfNOd2d8qq
+ assertVersionOlder( "2.0.0.v200706041905-7C78EK9E_EkMNfNOd2d8qq", "2.0.0.v200706041906-7C78EK9E_EkMNfNOd2d8qq" );
+ }
+
+ public void testVersionSnapshotComparing()
+ {
+ assertVersionEqual( "1-SNAPSHOT", "1-SNAPSHOT" );
+ assertVersionOlder( "1-SNAPSHOT", "2-SNAPSHOT" );
+ assertVersionOlder( "1.5-SNAPSHOT", "2-SNAPSHOT" );
+ assertVersionOlder( "1-SNAPSHOT", "2.5-SNAPSHOT" );
+ assertVersionEqual( "1-SNAPSHOT", "1.0-SNAPSHOT" );
+ assertVersionEqual( "1-SNAPSHOT", "1.0.0-SNAPSHOT" );
+ assertVersionOlder( "1.0-SNAPSHOT", "1.1-SNAPSHOT" );
+ assertVersionOlder( "1.1-SNAPSHOT", "1.2-SNAPSHOT" );
+ assertVersionOlder( "1.0.0-SNAPSHOT", "1.1-SNAPSHOT" );
+ assertVersionOlder( "1.1-SNAPSHOT", "1.2.0-SNAPSHOT" );
+
+ // assertVersionOlder( "1.0-alpha-1-SNAPSHOT", "1.0-SNAPSHOT" );
+ assertVersionOlder( "1.0-alpha-1-SNAPSHOT", "1.0-alpha-2-SNAPSHOT" );
+ assertVersionOlder( "1.0-alpha-1-SNAPSHOT", "1.0-beta-1-SNAPSHOT" );
+
+ assertVersionOlder( "1.0-beta-1-SNAPSHOT", "1.0-SNAPSHOT-SNAPSHOT" );
+ assertVersionOlder( "1.0-SNAPSHOT-SNAPSHOT", "1.0-SNAPSHOT" );
+ assertVersionOlder( "1.0-alpha-1-SNAPSHOT-SNAPSHOT", "1.0-alpha-1-SNAPSHOT" );
+
+ assertVersionOlder( "1.0-SNAPSHOT", "1.0-1-SNAPSHOT" );
+ assertVersionOlder( "1.0-1-SNAPSHOT", "1.0-2-SNAPSHOT" );
+ // assertVersionEqual( "2.0-0-SNAPSHOT", "2.0-SNAPSHOT" );
+ assertVersionOlder( "2.0-SNAPSHOT", "2.0-1-SNAPSHOT" );
+ assertVersionOlder( "2.0.0-SNAPSHOT", "2.0-1-SNAPSHOT" );
+ assertVersionOlder( "2.0-1-SNAPSHOT", "2.0.1-SNAPSHOT" );
+
+ assertVersionOlder( "2.0.1-klm-SNAPSHOT", "2.0.1-lmn-SNAPSHOT" );
+ // assertVersionOlder( "2.0.1-xyz-SNAPSHOT", "2.0.1-SNAPSHOT" );
+ assertVersionOlder( "2.0.1-SNAPSHOT", "2.0.1-123-SNAPSHOT" );
+ assertVersionOlder( "2.0.1-xyz-SNAPSHOT", "2.0.1-123-SNAPSHOT" );
+ }
+
+ public void testSnapshotVsReleases()
+ {
+ assertVersionOlder( "1.0-RC1", "1.0-SNAPSHOT" );
+ assertVersionOlder( "1.0-rc1", "1.0-SNAPSHOT" );
+ assertVersionOlder( "1.0-rc-1", "1.0-SNAPSHOT" );
+ }
+
+ public void testHashCode()
+ {
+ ArtifactVersion v1 = newArtifactVersion( "1" );
+ ArtifactVersion v2 = newArtifactVersion( "1.0" );
+ assertEquals( true, v1.equals( v2 ) );
+ assertEquals( v1.hashCode(), v2.hashCode() );
+ }
+
+ public void testEqualsNullSafe()
+ {
+ assertFalse( newArtifactVersion( "1" ).equals( null ) );
+ }
+
+ public void testEqualsTypeSafe()
+ {
+ assertFalse( newArtifactVersion( "1" ).equals( "non-an-artifact-version-instance" ) );
+ }
+
+ public void testNonNumericVersionRepresentationReturnsANumberFormatException()
+ {
+ try
+ {
+ new DefaultArtifactVersion( "..." );
+ }
+ catch ( Exception e )
+ {
+ assertTrue( "We expect a NumberFormatException to be thrown.", e instanceof NumberFormatException );
+ }
+ }
+
+ private void assertVersionOlder( String left, String right )
+ {
+ assertTrue( left + " should be older than " + right,
+ newArtifactVersion( left ).compareTo( newArtifactVersion( right ) ) < 0 );
+ assertTrue( right + " should be newer than " + left,
+ newArtifactVersion( right ).compareTo( newArtifactVersion( left ) ) > 0 );
+ }
+
+ private void assertVersionEqual( String left, String right )
+ {
+ assertTrue( left + " should be equal to " + right,
+ newArtifactVersion( left ).compareTo( newArtifactVersion( right ) ) == 0 );
+ assertTrue( right + " should be equal to " + left,
+ newArtifactVersion( right ).compareTo( newArtifactVersion( left ) ) == 0 );
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java
new file mode 100644
index 00000000..14b16cba
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/VersionRangeTest.java
@@ -0,0 +1,730 @@
+package org.apache.maven.artifact.versioning;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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 junit.framework.TestCase;
+
+import org.apache.maven.artifact.Artifact;
+
+/**
+ * Tests version range construction.
+ *
+ * @author Brett Porter
+ */
+public class VersionRangeTest
+ extends TestCase
+{
+ private static final String CHECK_NUM_RESTRICTIONS = "check number of restrictions";
+
+ private static final String CHECK_UPPER_BOUND = "check upper bound";
+
+ private static final String CHECK_UPPER_BOUND_INCLUSIVE = "check upper bound is inclusive";
+
+ private static final String CHECK_LOWER_BOUND = "check lower bound";
+
+ private static final String CHECK_LOWER_BOUND_INCLUSIVE = "check lower bound is inclusive";
+
+ private static final String CHECK_VERSION_RECOMMENDATION = "check version recommended";
+
+ private static final String CHECK_SELECTED_VERSION_KNOWN = "check selected version known";
+
+ private static final String CHECK_SELECTED_VERSION = "check selected version";
+
+ public void testRange()
+ throws InvalidVersionSpecificationException, OverConstrainedVersionException
+ {
+ Artifact artifact = null;
+
+ VersionRange range = VersionRange.createFromVersionSpec( "(,1.0]" );
+ List restrictions = range.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
+ Restriction restriction = restrictions.get( 0 );
+ assertNull( CHECK_LOWER_BOUND, restriction.getLowerBound() );
+ assertFalse( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.0", restriction.getUpperBound().toString() );
+ assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+ assertNull( CHECK_VERSION_RECOMMENDATION, range.getRecommendedVersion() );
+ assertFalse( CHECK_SELECTED_VERSION_KNOWN, range.isSelectedVersionKnown( artifact ) );
+ assertNull( CHECK_SELECTED_VERSION, range.getSelectedVersion( artifact ) );
+
+ range = VersionRange.createFromVersionSpec( "1.0" );
+ assertEquals( CHECK_VERSION_RECOMMENDATION, "1.0", range.getRecommendedVersion().toString() );
+ restrictions = range.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertNull( CHECK_LOWER_BOUND, restriction.getLowerBound() );
+ assertFalse( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertNull( CHECK_UPPER_BOUND, restriction.getUpperBound() );
+ assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+ assertTrue( CHECK_SELECTED_VERSION_KNOWN, range.isSelectedVersionKnown( artifact ) );
+ assertEquals( CHECK_SELECTED_VERSION, "1.0", range.getSelectedVersion( artifact ).toString() );
+
+ range = VersionRange.createFromVersionSpec( "[1.0]" );
+ restrictions = range.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertEquals( CHECK_LOWER_BOUND, "1.0", restriction.getLowerBound().toString() );
+ assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.0", restriction.getUpperBound().toString() );
+ assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+ assertNull( CHECK_VERSION_RECOMMENDATION, range.getRecommendedVersion() );
+ assertFalse( CHECK_SELECTED_VERSION_KNOWN, range.isSelectedVersionKnown( artifact ) );
+ assertNull( CHECK_SELECTED_VERSION, range.getSelectedVersion( artifact ) );
+
+ range = VersionRange.createFromVersionSpec( "[1.2,1.3]" );
+ restrictions = range.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertEquals( CHECK_LOWER_BOUND, "1.2", restriction.getLowerBound().toString() );
+ assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.3", restriction.getUpperBound().toString() );
+ assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+ assertNull( CHECK_VERSION_RECOMMENDATION, range.getRecommendedVersion() );
+ assertFalse( CHECK_SELECTED_VERSION_KNOWN, range.isSelectedVersionKnown( artifact ) );
+ assertNull( CHECK_SELECTED_VERSION, range.getSelectedVersion( artifact ) );
+
+ range = VersionRange.createFromVersionSpec( "[1.0,2.0)" );
+ restrictions = range.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertEquals( CHECK_LOWER_BOUND, "1.0", restriction.getLowerBound().toString() );
+ assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "2.0", restriction.getUpperBound().toString() );
+ assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+ assertNull( CHECK_VERSION_RECOMMENDATION, range.getRecommendedVersion() );
+ assertFalse( CHECK_SELECTED_VERSION_KNOWN, range.isSelectedVersionKnown( artifact ) );
+ assertNull( CHECK_SELECTED_VERSION, range.getSelectedVersion( artifact ) );
+
+ range = VersionRange.createFromVersionSpec( "[1.5,)" );
+ restrictions = range.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertEquals( CHECK_LOWER_BOUND, "1.5", restriction.getLowerBound().toString() );
+ assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertNull( CHECK_UPPER_BOUND, restriction.getUpperBound() );
+ assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+ assertNull( CHECK_VERSION_RECOMMENDATION, range.getRecommendedVersion() );
+ assertFalse( CHECK_SELECTED_VERSION_KNOWN, range.isSelectedVersionKnown( artifact ) );
+ assertNull( CHECK_SELECTED_VERSION, range.getSelectedVersion( artifact ) );
+
+ range = VersionRange.createFromVersionSpec( "(,1.0],[1.2,)" );
+ restrictions = range.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 2, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertNull( CHECK_LOWER_BOUND, restriction.getLowerBound() );
+ assertFalse( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.0", restriction.getUpperBound().toString() );
+ assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+ assertNull( CHECK_VERSION_RECOMMENDATION, range.getRecommendedVersion() );
+ restriction = restrictions.get( 1 );
+ assertEquals( CHECK_LOWER_BOUND, "1.2", restriction.getLowerBound().toString() );
+ assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertNull( CHECK_UPPER_BOUND, restriction.getUpperBound() );
+ assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+ assertNull( CHECK_VERSION_RECOMMENDATION, range.getRecommendedVersion() );
+ assertFalse( CHECK_SELECTED_VERSION_KNOWN, range.isSelectedVersionKnown( artifact ) );
+ assertNull( CHECK_SELECTED_VERSION, range.getSelectedVersion( artifact ) );
+
+ range = VersionRange.createFromVersionSpec( "[1.0,)" );
+ assertFalse( range.containsVersion( new DefaultArtifactVersion( "1.0-SNAPSHOT" ) ) );
+
+ range = VersionRange.createFromVersionSpec( "[1.0,1.1-SNAPSHOT]" );
+ assertTrue( range.containsVersion( new DefaultArtifactVersion( "1.1-SNAPSHOT" ) ) );
+
+ range = VersionRange.createFromVersionSpec( "[5.0.9.0,5.0.10.0)" );
+ assertTrue( range.containsVersion( new DefaultArtifactVersion( "5.0.9.0" ) ) );
+ }
+
+ public void testInvalidRanges()
+ {
+ checkInvalidRange( "(1.0)" );
+ checkInvalidRange( "[1.0)" );
+ checkInvalidRange( "(1.0]" );
+ checkInvalidRange( "(1.0,1.0]" );
+ checkInvalidRange( "[1.0,1.0)" );
+ checkInvalidRange( "(1.0,1.0)" );
+ checkInvalidRange( "[1.1,1.0]" );
+ checkInvalidRange( "[1.0,1.2),1.3" );
+ // overlap
+ checkInvalidRange( "[1.0,1.2),(1.1,1.3]" );
+ // overlap
+ checkInvalidRange( "[1.1,1.3),(1.0,1.2]" );
+ // ordering
+ checkInvalidRange( "(1.1,1.2],[1.0,1.1)" );
+ }
+
+ public void testIntersections()
+ throws InvalidVersionSpecificationException
+ {
+ VersionRange range1 = VersionRange.createFromVersionSpec( "1.0" );
+ VersionRange range2 = VersionRange.createFromVersionSpec( "1.1" );
+ VersionRange mergedRange = range1.restrict( range2 );
+ // TODO: current policy is to retain the original version - is this correct, do we need strategies or is that handled elsewhere?
+// assertEquals( CHECK_VERSION_RECOMMENDATION, "1.1", mergedRange.getRecommendedVersion().toString() );
+ assertEquals( CHECK_VERSION_RECOMMENDATION, "1.0", mergedRange.getRecommendedVersion().toString() );
+ List restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
+ Restriction restriction = restrictions.get( 0 );
+ assertNull( CHECK_LOWER_BOUND, restriction.getLowerBound() );
+ assertFalse( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertNull( CHECK_UPPER_BOUND, restriction.getUpperBound() );
+ assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+ mergedRange = range2.restrict( range1 );
+ assertEquals( CHECK_VERSION_RECOMMENDATION, "1.1", mergedRange.getRecommendedVersion().toString() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertNull( CHECK_LOWER_BOUND, restriction.getLowerBound() );
+ assertFalse( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertNull( CHECK_UPPER_BOUND, restriction.getUpperBound() );
+ assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+ // TODO: test reversed restrictions on all below
+ range1 = VersionRange.createFromVersionSpec( "[1.0,)" );
+ range2 = VersionRange.createFromVersionSpec( "1.1" );
+ mergedRange = range1.restrict( range2 );
+ assertEquals( CHECK_VERSION_RECOMMENDATION, "1.1", mergedRange.getRecommendedVersion().toString() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertEquals( CHECK_LOWER_BOUND, "1.0", restriction.getLowerBound().toString() );
+ assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertNull( CHECK_UPPER_BOUND, restriction.getUpperBound() );
+ assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+ range1 = VersionRange.createFromVersionSpec( "[1.1,)" );
+ range2 = VersionRange.createFromVersionSpec( "1.1" );
+ mergedRange = range1.restrict( range2 );
+ assertEquals( CHECK_VERSION_RECOMMENDATION, "1.1", mergedRange.getRecommendedVersion().toString() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertEquals( CHECK_LOWER_BOUND, "1.1", restriction.getLowerBound().toString() );
+ assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertNull( CHECK_UPPER_BOUND, restriction.getUpperBound() );
+ assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+ range1 = VersionRange.createFromVersionSpec( "[1.1]" );
+ range2 = VersionRange.createFromVersionSpec( "1.1" );
+ mergedRange = range1.restrict( range2 );
+ assertEquals( CHECK_VERSION_RECOMMENDATION, "1.1", mergedRange.getRecommendedVersion().toString() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertEquals( CHECK_LOWER_BOUND, "1.1", restriction.getLowerBound().toString() );
+ assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.1", restriction.getLowerBound().toString() );
+ assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+ range1 = VersionRange.createFromVersionSpec( "(1.1,)" );
+ range2 = VersionRange.createFromVersionSpec( "1.1" );
+ mergedRange = range1.restrict( range2 );
+ assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertEquals( CHECK_LOWER_BOUND, "1.1", restriction.getLowerBound().toString() );
+ assertFalse( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertNull( CHECK_UPPER_BOUND, restriction.getUpperBound() );
+ assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+ range1 = VersionRange.createFromVersionSpec( "[1.2,)" );
+ range2 = VersionRange.createFromVersionSpec( "1.1" );
+ mergedRange = range1.restrict( range2 );
+ assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertEquals( CHECK_LOWER_BOUND, "1.2", restriction.getLowerBound().toString() );
+ assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertNull( CHECK_UPPER_BOUND, restriction.getUpperBound() );
+ assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+ range1 = VersionRange.createFromVersionSpec( "(,1.2]" );
+ range2 = VersionRange.createFromVersionSpec( "1.1" );
+ mergedRange = range1.restrict( range2 );
+ assertEquals( CHECK_VERSION_RECOMMENDATION, "1.1", mergedRange.getRecommendedVersion().toString() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertNull( CHECK_LOWER_BOUND, restriction.getLowerBound() );
+ assertFalse( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.2", restriction.getUpperBound().toString() );
+ assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+ range1 = VersionRange.createFromVersionSpec( "(,1.1]" );
+ range2 = VersionRange.createFromVersionSpec( "1.1" );
+ mergedRange = range1.restrict( range2 );
+ assertEquals( CHECK_VERSION_RECOMMENDATION, "1.1", mergedRange.getRecommendedVersion().toString() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertNull( CHECK_LOWER_BOUND, restriction.getLowerBound() );
+ assertFalse( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.1", restriction.getUpperBound().toString() );
+ assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+ range1 = VersionRange.createFromVersionSpec( "(,1.1)" );
+ range2 = VersionRange.createFromVersionSpec( "1.1" );
+ mergedRange = range1.restrict( range2 );
+ assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertNull( CHECK_LOWER_BOUND, restriction.getLowerBound() );
+ assertFalse( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.1", restriction.getUpperBound().toString() );
+ assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+ range1 = VersionRange.createFromVersionSpec( "(,1.0]" );
+ range2 = VersionRange.createFromVersionSpec( "1.1" );
+ mergedRange = range1.restrict( range2 );
+ assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertNull( CHECK_LOWER_BOUND, restriction.getLowerBound() );
+ assertFalse( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.0", restriction.getUpperBound().toString() );
+ assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+ range1 = VersionRange.createFromVersionSpec( "(,1.0], [1.1,)" );
+ range2 = VersionRange.createFromVersionSpec( "1.2" );
+ mergedRange = range1.restrict( range2 );
+ assertEquals( CHECK_VERSION_RECOMMENDATION, "1.2", mergedRange.getRecommendedVersion().toString() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 2, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertNull( CHECK_LOWER_BOUND, restriction.getLowerBound() );
+ assertFalse( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.0", restriction.getUpperBound().toString() );
+ assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+ restriction = restrictions.get( 1 );
+ assertEquals( CHECK_LOWER_BOUND, "1.1", restriction.getLowerBound().toString() );
+ assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertNull( CHECK_UPPER_BOUND, restriction.getUpperBound() );
+ assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+ range1 = VersionRange.createFromVersionSpec( "(,1.0], [1.1,)" );
+ range2 = VersionRange.createFromVersionSpec( "1.0.5" );
+ mergedRange = range1.restrict( range2 );
+ assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 2, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertNull( CHECK_LOWER_BOUND, restriction.getLowerBound() );
+ assertFalse( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.0", restriction.getUpperBound().toString() );
+ assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+ restriction = restrictions.get( 1 );
+ assertEquals( CHECK_LOWER_BOUND, "1.1", restriction.getLowerBound().toString() );
+ assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertNull( CHECK_UPPER_BOUND, restriction.getUpperBound() );
+ assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+ range1 = VersionRange.createFromVersionSpec( "(,1.1), (1.1,)" );
+ range2 = VersionRange.createFromVersionSpec( "1.1" );
+ mergedRange = range1.restrict( range2 );
+ assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 2, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertNull( CHECK_LOWER_BOUND, restriction.getLowerBound() );
+ assertFalse( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.1", restriction.getUpperBound().toString() );
+ assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+ restriction = restrictions.get( 1 );
+ assertEquals( CHECK_LOWER_BOUND, "1.1", restriction.getLowerBound().toString() );
+ assertFalse( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertNull( CHECK_UPPER_BOUND, restriction.getUpperBound() );
+ assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+ range1 = VersionRange.createFromVersionSpec( "[1.1,1.3]" );
+ range2 = VersionRange.createFromVersionSpec( "(1.1,)" );
+ mergedRange = range1.restrict( range2 );
+ assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertEquals( CHECK_LOWER_BOUND, "1.1", restriction.getLowerBound().toString() );
+ assertFalse( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.3", restriction.getUpperBound().toString() );
+ assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+ range1 = VersionRange.createFromVersionSpec( "(,1.3)" );
+ range2 = VersionRange.createFromVersionSpec( "[1.2,1.3]" );
+ mergedRange = range1.restrict( range2 );
+ assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertEquals( CHECK_LOWER_BOUND, "1.2", restriction.getLowerBound().toString() );
+ assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.3", restriction.getUpperBound().toString() );
+ assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+ range1 = VersionRange.createFromVersionSpec( "[1.1,1.3]" );
+ range2 = VersionRange.createFromVersionSpec( "[1.2,)" );
+ mergedRange = range1.restrict( range2 );
+ assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertEquals( CHECK_LOWER_BOUND, "1.2", restriction.getLowerBound().toString() );
+ assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.3", restriction.getUpperBound().toString() );
+ assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+ range1 = VersionRange.createFromVersionSpec( "(,1.3]" );
+ range2 = VersionRange.createFromVersionSpec( "[1.2,1.4]" );
+ mergedRange = range1.restrict( range2 );
+ assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertEquals( CHECK_LOWER_BOUND, "1.2", restriction.getLowerBound().toString() );
+ assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.3", restriction.getUpperBound().toString() );
+ assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+ range1 = VersionRange.createFromVersionSpec( "(1.2,1.3]" );
+ range2 = VersionRange.createFromVersionSpec( "[1.1,1.4]" );
+ mergedRange = range1.restrict( range2 );
+ assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertEquals( CHECK_LOWER_BOUND, "1.2", restriction.getLowerBound().toString() );
+ assertFalse( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.3", restriction.getUpperBound().toString() );
+ assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+ range1 = VersionRange.createFromVersionSpec( "(1.2,1.3)" );
+ range2 = VersionRange.createFromVersionSpec( "[1.1,1.4]" );
+ mergedRange = range1.restrict( range2 );
+ assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertEquals( CHECK_LOWER_BOUND, "1.2", restriction.getLowerBound().toString() );
+ assertFalse( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.3", restriction.getUpperBound().toString() );
+ assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+ range1 = VersionRange.createFromVersionSpec( "[1.2,1.3)" );
+ range2 = VersionRange.createFromVersionSpec( "[1.1,1.4]" );
+ mergedRange = range1.restrict( range2 );
+ assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertEquals( CHECK_LOWER_BOUND, "1.2", restriction.getLowerBound().toString() );
+ assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.3", restriction.getUpperBound().toString() );
+ assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+ range1 = VersionRange.createFromVersionSpec( "[1.0,1.1]" );
+ range2 = VersionRange.createFromVersionSpec( "[1.1,1.4]" );
+ mergedRange = range1.restrict( range2 );
+ assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertEquals( CHECK_LOWER_BOUND, "1.1", restriction.getLowerBound().toString() );
+ assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.1", restriction.getUpperBound().toString() );
+ assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+ range1 = VersionRange.createFromVersionSpec( "[1.0,1.1)" );
+ range2 = VersionRange.createFromVersionSpec( "[1.1,1.4]" );
+ mergedRange = range1.restrict( range2 );
+ assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 0, restrictions.size() );
+
+ range1 = VersionRange.createFromVersionSpec( "[1.0,1.2],[1.3,1.5]" );
+ range2 = VersionRange.createFromVersionSpec( "[1.1]" );
+ mergedRange = range1.restrict( range2 );
+ assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertEquals( CHECK_LOWER_BOUND, "1.1", restriction.getLowerBound().toString() );
+ assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.1", restriction.getUpperBound().toString() );
+ assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+ range1 = VersionRange.createFromVersionSpec( "[1.0,1.2],[1.3,1.5]" );
+ range2 = VersionRange.createFromVersionSpec( "[1.4]" );
+ mergedRange = range1.restrict( range2 );
+ assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 1, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertEquals( CHECK_LOWER_BOUND, "1.4", restriction.getLowerBound().toString() );
+ assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.4", restriction.getUpperBound().toString() );
+ assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+ range1 = VersionRange.createFromVersionSpec( "[1.0,1.2],[1.3,1.5]" );
+ range2 = VersionRange.createFromVersionSpec( "[1.1,1.4]" );
+ mergedRange = range1.restrict( range2 );
+ assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 2, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertEquals( CHECK_LOWER_BOUND, "1.1", restriction.getLowerBound().toString() );
+ assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.2", restriction.getUpperBound().toString() );
+ assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+ restriction = restrictions.get( 1 );
+ assertEquals( CHECK_LOWER_BOUND, "1.3", restriction.getLowerBound().toString() );
+ assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.4", restriction.getUpperBound().toString() );
+ assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+ range1 = VersionRange.createFromVersionSpec( "[1.0,1.2),(1.3,1.5]" );
+ range2 = VersionRange.createFromVersionSpec( "[1.1,1.4]" );
+ mergedRange = range1.restrict( range2 );
+ assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 2, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertEquals( CHECK_LOWER_BOUND, "1.1", restriction.getLowerBound().toString() );
+ assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.2", restriction.getUpperBound().toString() );
+ assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+ restriction = restrictions.get( 1 );
+ assertEquals( CHECK_LOWER_BOUND, "1.3", restriction.getLowerBound().toString() );
+ assertFalse( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.4", restriction.getUpperBound().toString() );
+ assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+ range1 = VersionRange.createFromVersionSpec( "[1.0,1.2],[1.3,1.5]" );
+ range2 = VersionRange.createFromVersionSpec( "(1.1,1.4)" );
+ mergedRange = range1.restrict( range2 );
+ assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 2, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertEquals( CHECK_LOWER_BOUND, "1.1", restriction.getLowerBound().toString() );
+ assertFalse( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.2", restriction.getUpperBound().toString() );
+ assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+ restriction = restrictions.get( 1 );
+ assertEquals( CHECK_LOWER_BOUND, "1.3", restriction.getLowerBound().toString() );
+ assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.4", restriction.getUpperBound().toString() );
+ assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+ range1 = VersionRange.createFromVersionSpec( "[1.0,1.2),(1.3,1.5]" );
+ range2 = VersionRange.createFromVersionSpec( "(1.1,1.4)" );
+ mergedRange = range1.restrict( range2 );
+ assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 2, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertEquals( CHECK_LOWER_BOUND, "1.1", restriction.getLowerBound().toString() );
+ assertFalse( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.2", restriction.getUpperBound().toString() );
+ assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+ restriction = restrictions.get( 1 );
+ assertEquals( CHECK_LOWER_BOUND, "1.3", restriction.getLowerBound().toString() );
+ assertFalse( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.4", restriction.getUpperBound().toString() );
+ assertFalse( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+ range1 = VersionRange.createFromVersionSpec( "(,1.1),(1.4,)" );
+ range2 = VersionRange.createFromVersionSpec( "[1.1,1.4]" );
+ mergedRange = range1.restrict( range2 );
+ assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 0, restrictions.size() );
+
+ range1 = VersionRange.createFromVersionSpec( "(,1.1],[1.4,)" );
+ range2 = VersionRange.createFromVersionSpec( "(1.1,1.4)" );
+ mergedRange = range1.restrict( range2 );
+ assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 0, restrictions.size() );
+
+ range1 = VersionRange.createFromVersionSpec( "[,1.1],[1.4,]" );
+ range2 = VersionRange.createFromVersionSpec( "[1.2,1.3]" );
+ mergedRange = range1.restrict( range2 );
+ assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 0, restrictions.size() );
+
+ range1 = VersionRange.createFromVersionSpec( "[1.0,1.2],[1.3,1.5]" );
+ range2 = VersionRange.createFromVersionSpec( "[1.1,1.4],[1.6,]" );
+ mergedRange = range1.restrict( range2 );
+ assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 2, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertEquals( CHECK_LOWER_BOUND, "1.1", restriction.getLowerBound().toString() );
+ assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.2", restriction.getUpperBound().toString() );
+ assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+ restriction = restrictions.get( 1 );
+ assertEquals( CHECK_LOWER_BOUND, "1.3", restriction.getLowerBound().toString() );
+ assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.4", restriction.getUpperBound().toString() );
+ assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+ range1 = VersionRange.createFromVersionSpec( "[1.0,1.2],[1.3,1.5]" );
+ range2 = VersionRange.createFromVersionSpec( "[1.1,1.4],[1.5,]" );
+ mergedRange = range1.restrict( range2 );
+ assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 3, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertEquals( CHECK_LOWER_BOUND, "1.1", restriction.getLowerBound().toString() );
+ assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.2", restriction.getUpperBound().toString() );
+ assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+ restriction = restrictions.get( 1 );
+ assertEquals( CHECK_LOWER_BOUND, "1.3", restriction.getLowerBound().toString() );
+ assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.4", restriction.getUpperBound().toString() );
+ assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+ restriction = restrictions.get( 2 );
+ assertEquals( CHECK_LOWER_BOUND, "1.5", restriction.getLowerBound().toString() );
+ assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.5", restriction.getUpperBound().toString() );
+ assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+ range1 = VersionRange.createFromVersionSpec( "[1.0,1.2],[1.3,1.7]" );
+ range2 = VersionRange.createFromVersionSpec( "[1.1,1.4],[1.5,1.6]" );
+ mergedRange = range1.restrict( range2 );
+ assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 3, restrictions.size() );
+ restriction = restrictions.get( 0 );
+ assertEquals( CHECK_LOWER_BOUND, "1.1", restriction.getLowerBound().toString() );
+ assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.2", restriction.getUpperBound().toString() );
+ assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+ restriction = restrictions.get( 1 );
+ assertEquals( CHECK_LOWER_BOUND, "1.3", restriction.getLowerBound().toString() );
+ assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.4", restriction.getUpperBound().toString() );
+ assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+ restriction = restrictions.get( 2 );
+ assertEquals( CHECK_LOWER_BOUND, "1.5", restriction.getLowerBound().toString() );
+ assertTrue( CHECK_LOWER_BOUND_INCLUSIVE, restriction.isLowerBoundInclusive() );
+ assertEquals( CHECK_UPPER_BOUND, "1.6", restriction.getUpperBound().toString() );
+ assertTrue( CHECK_UPPER_BOUND_INCLUSIVE, restriction.isUpperBoundInclusive() );
+
+ // test restricting empty sets
+ range1 = VersionRange.createFromVersionSpec( "[,1.1],[1.4,]" );
+ range2 = VersionRange.createFromVersionSpec( "[1.2,1.3]" );
+ range1 = range1.restrict( range2 );
+ mergedRange = range1.restrict( range2 );
+ assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 0, restrictions.size() );
+
+ range1 = VersionRange.createFromVersionSpec( "[,1.1],[1.4,]" );
+ range2 = VersionRange.createFromVersionSpec( "[1.2,1.3]" );
+ range2 = range1.restrict( range2 );
+ mergedRange = range1.restrict( range2 );
+ assertNull( CHECK_VERSION_RECOMMENDATION, mergedRange.getRecommendedVersion() );
+ restrictions = mergedRange.getRestrictions();
+ assertEquals( CHECK_NUM_RESTRICTIONS, 0, restrictions.size() );
+ }
+
+ public void testReleaseRangeBoundsContainsSnapshots()
+ throws InvalidVersionSpecificationException
+ {
+ VersionRange range = VersionRange.createFromVersionSpec( "[1.0,1.2]" );
+
+ assertTrue( range.containsVersion( new DefaultArtifactVersion( "1.1-SNAPSHOT" ) ) );
+ assertTrue( range.containsVersion( new DefaultArtifactVersion( "1.2-SNAPSHOT" ) ) );
+ assertFalse( range.containsVersion( new DefaultArtifactVersion( "1.0-SNAPSHOT" ) ) );
+ }
+
+ public void testSnapshotRangeBoundsCanContainSnapshots()
+ throws InvalidVersionSpecificationException
+ {
+ VersionRange range = VersionRange.createFromVersionSpec( "[1.0,1.2-SNAPSHOT]" );
+
+ assertTrue( range.containsVersion( new DefaultArtifactVersion( "1.1-SNAPSHOT" ) ) );
+ assertTrue( range.containsVersion( new DefaultArtifactVersion( "1.2-SNAPSHOT" ) ) );
+
+ range = VersionRange.createFromVersionSpec( "[1.0-SNAPSHOT,1.2]" );
+
+ assertTrue( range.containsVersion( new DefaultArtifactVersion( "1.0-SNAPSHOT" ) ) );
+ assertTrue( range.containsVersion( new DefaultArtifactVersion( "1.1-SNAPSHOT" ) ) );
+ }
+
+ public void testSnapshotSoftVersionCanContainSnapshot()
+ throws InvalidVersionSpecificationException
+ {
+ VersionRange range = VersionRange.createFromVersionSpec( "1.0-SNAPSHOT" );
+
+ assertTrue( range.containsVersion( new DefaultArtifactVersion( "1.0-SNAPSHOT" ) ) );
+ }
+
+ private void checkInvalidRange( String version )
+ {
+ try
+ {
+ VersionRange.createFromVersionSpec( version );
+ fail( "Version " + version + " should have failed to construct" );
+ }
+ catch ( InvalidVersionSpecificationException expected )
+ {
+ // expected
+ }
+ }
+
+ public void testContains() throws InvalidVersionSpecificationException
+ {
+ ArtifactVersion actualVersion = new DefaultArtifactVersion( "2.0.5" );
+ assertTrue( enforceVersion( "2.0.5", actualVersion ) );
+ assertTrue( enforceVersion( "2.0.4", actualVersion ) );
+ assertTrue( enforceVersion( "[2.0.5]", actualVersion ) );
+ assertFalse( enforceVersion( "[2.0.6,)", actualVersion ) );
+ assertFalse( enforceVersion( "[2.0.6]", actualVersion ) );
+ assertTrue( enforceVersion( "[2.0,2.1]", actualVersion ) );
+ assertFalse( enforceVersion( "[2.0,2.0.3]", actualVersion ) );
+ assertTrue( enforceVersion( "[2.0,2.0.5]", actualVersion ) );
+ assertFalse( enforceVersion( "[2.0,2.0.5)", actualVersion ) );
+ }
+
+ public boolean enforceVersion( String requiredVersionRange, ArtifactVersion actualVersion )
+ throws InvalidVersionSpecificationException
+ {
+ VersionRange vr = null;
+
+ vr = VersionRange.createFromVersionSpec( requiredVersionRange );
+
+ return vr.containsVersion( actualVersion );
+ }
+
+ public void testOrder0()
+ {
+ // assertTrue( new DefaultArtifactVersion( "1.0-alpha10" ).compareTo( new DefaultArtifactVersion( "1.0-alpha1" ) ) > 0 );
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-builder-support/pom.xml b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/pom.xml
new file mode 100644
index 00000000..791b5e4e
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/pom.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+ 4.0.0
+
+
+ org.apache.maven
+ maven
+ 3.3.3
+
+
+ maven-builder-support
+
+ Maven Builder Support
+ Support for descriptor builders (model, setting, toolchains)
+
+
+ scm:git:https://git-wip-us.apache.org/repos/asf/maven.git
+ scm:git:https://git-wip-us.apache.org/repos/asf/maven.git
+ maven-3.3.3
+
+
+
+
+ org.codehaus.plexus
+ plexus-utils
+
+
+
+
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/DefaultProblem.java b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/DefaultProblem.java
new file mode 100644
index 00000000..ad1fc40f
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/DefaultProblem.java
@@ -0,0 +1,161 @@
+package org.apache.maven.building;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * Describes a problem that was encountered during settings building. A problem can either be an exception that was
+ * thrown or a simple string message. In addition, a problem carries a hint about its source, e.g. the settings file
+ * that exhibits the problem.
+ *
+ * @author Benjamin Bentmann
+ * @author Robert Scholte
+ */
+class DefaultProblem
+ implements Problem
+{
+
+ private final String source;
+
+ private final int lineNumber;
+
+ private final int columnNumber;
+
+ private final String message;
+
+ private final Exception exception;
+
+ private final Severity severity;
+
+ /**
+ * Creates a new problem with the specified message and exception.
+ * Either {@code message} or {@code exception} is required
+ *
+ * @param message The message describing the problem, may be {@code null}.
+ * @param severity The severity level of the problem, may be {@code null} to default to
+ * {@link SettingsProblem.Severity#ERROR}.
+ * @param source A hint about the source of the problem like a file path, may be {@code null}.
+ * @param lineNumber The one-based index of the line containing the problem or {@code -1} if unknown.
+ * @param columnNumber The one-based index of the column containing the problem or {@code -1} if unknown.
+ * @param exception The exception that caused this problem, may be {@code null}.
+ */
+ public DefaultProblem( String message, Severity severity, String source, int lineNumber, int columnNumber,
+ Exception exception )
+ {
+ this.message = message;
+ this.severity = ( severity != null ) ? severity : Severity.ERROR;
+ this.source = ( source != null ) ? source : "";
+ this.lineNumber = lineNumber;
+ this.columnNumber = columnNumber;
+ this.exception = exception;
+ }
+
+ public String getSource()
+ {
+ return source;
+ }
+
+ public int getLineNumber()
+ {
+ return lineNumber;
+ }
+
+ public int getColumnNumber()
+ {
+ return columnNumber;
+ }
+
+ public String getLocation()
+ {
+ StringBuilder buffer = new StringBuilder( 256 );
+
+ if ( getSource().length() > 0 )
+ {
+ if ( buffer.length() > 0 )
+ {
+ buffer.append( ", " );
+ }
+ buffer.append( getSource() );
+ }
+
+ if ( getLineNumber() > 0 )
+ {
+ if ( buffer.length() > 0 )
+ {
+ buffer.append( ", " );
+ }
+ buffer.append( "line " ).append( getLineNumber() );
+ }
+
+ if ( getColumnNumber() > 0 )
+ {
+ if ( buffer.length() > 0 )
+ {
+ buffer.append( ", " );
+ }
+ buffer.append( "column " ).append( getColumnNumber() );
+ }
+
+ return buffer.toString();
+ }
+
+ public Exception getException()
+ {
+ return exception;
+ }
+
+ public String getMessage()
+ {
+ String msg;
+
+ if ( message != null && message.length() > 0 )
+ {
+ msg = message;
+ }
+ else
+ {
+ msg = exception.getMessage();
+
+ if ( msg == null )
+ {
+ msg = "";
+ }
+ }
+
+ return msg;
+ }
+
+ public Severity getSeverity()
+ {
+ return severity;
+ }
+
+ @Override
+ public String toString()
+ {
+ StringBuilder buffer = new StringBuilder( 128 );
+
+ buffer.append( "[" ).append( getSeverity() ).append( "] " );
+ buffer.append( getMessage() );
+ buffer.append( " @ " ).append( getLocation() );
+
+ return buffer.toString();
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/DefaultProblemCollector.java b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/DefaultProblemCollector.java
new file mode 100644
index 00000000..567f620e
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/DefaultProblemCollector.java
@@ -0,0 +1,64 @@
+package org.apache.maven.building;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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;
+
+/**
+ * Collects problems that are encountered during settings building.
+ *
+ * @author Benjamin Bentmann
+ * @author Robert Scholte
+ */
+class DefaultProblemCollector
+ implements ProblemCollector
+{
+
+ private List problems;
+
+ private String source;
+
+ public DefaultProblemCollector( List problems )
+ {
+ this.problems = ( problems != null ) ? problems : new ArrayList();
+ }
+
+ @Override
+ public List getProblems()
+ {
+ return problems;
+ }
+
+ @Override
+ public void setSource( String source )
+ {
+ this.source = source;
+ }
+
+ @Override
+ public void add( Problem.Severity severity, String message, int line, int column, Exception cause )
+ {
+ Problem problem = new DefaultProblem( message, severity, source, line, column, cause );
+
+ problems.add( problem );
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/FileSource.java b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/FileSource.java
new file mode 100644
index 00000000..1a6fc2f4
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/FileSource.java
@@ -0,0 +1,79 @@
+package org.apache.maven.building;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.io.InputStream;
+
+/**
+ * Wraps an ordinary {@link File} as a source.
+ *
+ * @author Benjamin Bentmann
+ */
+public class FileSource
+ implements Source
+{
+ private final File file;
+
+ /**
+ * Creates a new source backed by the specified file.
+ *
+ * @param file The file, must not be {@code null}.
+ */
+ public FileSource( File file )
+ {
+ if ( file == null )
+ {
+ throw new IllegalArgumentException( "no file specified" );
+ }
+ this.file = file.getAbsoluteFile();
+ }
+
+ @Override
+ public InputStream getInputStream()
+ throws IOException
+ {
+ return new FileInputStream( file );
+ }
+
+ @Override
+ public String getLocation()
+ {
+ return file.getPath();
+ }
+
+ /**
+ * Gets the file of this source.
+ *
+ * @return The underlying file, never {@code null}.
+ */
+ public File getFile()
+ {
+ return file;
+ }
+
+ @Override
+ public String toString()
+ {
+ return getLocation();
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/Problem.java b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/Problem.java
new file mode 100644
index 00000000..9ab9b3a8
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/Problem.java
@@ -0,0 +1,101 @@
+package org.apache.maven.building;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * Describes a problem that was encountered during settings building. A problem can either be an exception that was
+ * thrown or a simple string message. In addition, a problem carries a hint about its source, e.g. the settings file
+ * that exhibits the problem.
+ *
+ * @author Benjamin Bentmann
+ * @author Robert Scholte
+ */
+public interface Problem
+{
+
+ /**
+ * The different severity levels for a problem, in decreasing order.
+ */
+ enum Severity
+ {
+
+ FATAL, //
+ ERROR, //
+ WARNING //
+
+ }
+
+ /**
+ * Gets the hint about the source of the problem. While the syntax of this hint is unspecified and depends on the
+ * creator of the problem, the general expectation is that the hint provides sufficient information to the user to
+ * track the problem back to its origin. A concrete example for such a source hint can be the file path or URL from
+ * which the settings were read.
+ *
+ * @return The hint about the source of the problem or an empty string if unknown, never {@code null}.
+ */
+ String getSource();
+
+ /**
+ * Gets the one-based index of the line containing the problem. The line number should refer to some text file that
+ * is given by {@link #getSource()}.
+ *
+ * @return The one-based index of the line containing the problem or a non-positive value if unknown.
+ */
+ int getLineNumber();
+
+ /**
+ * Gets the one-based index of the column containing the problem. The column number should refer to some text file
+ * that is given by {@link #getSource()}.
+ *
+ * @return The one-based index of the column containing the problem or non-positive value if unknown.
+ */
+ int getColumnNumber();
+
+ /**
+ * Gets the location of the problem. The location is a user-friendly combination of the values from
+ * {@link #getSource()}, {@link #getLineNumber()} and {@link #getColumnNumber()}. The exact syntax of the returned
+ * value is undefined.
+ *
+ * @return The location of the problem, never {@code null}.
+ */
+ String getLocation();
+
+ /**
+ * Gets the exception that caused this problem (if any).
+ *
+ * @return The exception that caused this problem or {@code null} if not applicable.
+ */
+ Exception getException();
+
+ /**
+ * Gets the message that describes this problem.
+ *
+ * @return The message describing this problem, never {@code null}.
+ */
+ String getMessage();
+
+ /**
+ * Gets the severity level of this problem.
+ *
+ * @return The severity level of this problem, never {@code null}.
+ */
+ Severity getSeverity();
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/ProblemCollector.java b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/ProblemCollector.java
new file mode 100644
index 00000000..e7015676
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/ProblemCollector.java
@@ -0,0 +1,59 @@
+package org.apache.maven.building;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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;
+
+/**
+ * Collects problems that are encountered during settings building.
+ *
+ * @author Benjamin Bentmann
+ * @author Robert Scholte
+ */
+public interface ProblemCollector
+{
+
+ /**
+ * Adds the specified problem.
+ * Either message or exception is required
+ *
+ * @param severity The severity of the problem, must not be {@code null}.
+ * @param message The detail message of the problem, may be {@code null}.
+ * @param line The one-based index of the line containing the problem or {@code -1} if unknown.
+ * @param column The one-based index of the column containing the problem or {@code -1} if unknown.
+ * @param cause The cause of the problem, may be {@code null}.
+ */
+ void add( Problem.Severity severity, String message, int line, int column, Exception cause );
+
+ /**
+ * The next messages will be bound to this source. When calling this method again, previous messages keep
+ * their source, but the next messages will use the new source.
+ *
+ * @param source
+ */
+ void setSource( String source );
+
+ /**
+ *
+ * @return the collected Problems, never {@code null}
+ */
+ List getProblems();
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/ProblemCollectorFactory.java b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/ProblemCollectorFactory.java
new file mode 100644
index 00000000..c1c23737
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/ProblemCollectorFactory.java
@@ -0,0 +1,43 @@
+package org.apache.maven.building;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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;
+
+/**
+ *
+ * @author Robert Scholte
+ * @since 3.3.0
+ */
+public class ProblemCollectorFactory
+{
+
+ /**
+ * The default implementation is not visible, create it with this factory
+ *
+ * @param problems starting set of problems, may be {@code null}
+ * @return a new instance of a ProblemCollector
+ */
+ public static ProblemCollector newInstance( List problems )
+ {
+ return new DefaultProblemCollector( problems );
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/Source.java b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/Source.java
new file mode 100644
index 00000000..1f7510ba
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/Source.java
@@ -0,0 +1,49 @@
+package org.apache.maven.building;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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;
+
+/**
+ * Provides access to the contents of a source independently of the backing store (e.g. file system, database, memory).
+ *
+ * @author Benjamin Bentmann
+ */
+public interface Source
+{
+
+ /**
+ * Gets a byte stream to the source contents. Closing the returned stream is the responsibility of the caller.
+ *
+ * @return A byte stream to the source contents, never {@code null}.
+ */
+ InputStream getInputStream()
+ throws IOException;
+
+ /**
+ * Provides a user-friendly hint about the location of the source. This could be a local file path, a URI or just an
+ * empty string. The intention is to assist users during error reporting.
+ *
+ * @return A user-friendly hint about the location of the source, never {@code null}.
+ */
+ String getLocation();
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/StringSource.java b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/StringSource.java
new file mode 100644
index 00000000..f9d87c0b
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/StringSource.java
@@ -0,0 +1,90 @@
+package org.apache.maven.building;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.io.InputStream;
+
+/**
+ * Wraps an ordinary {@link CharSequence} as a source.
+ *
+ * @author Benjamin Bentmann
+ */
+public class StringSource
+ implements Source
+{
+
+ private String content;
+
+ private String location;
+
+ /**
+ * Creates a new source backed by the specified string.
+ *
+ * @param content The String representation, may be empty or {@code null}.
+ */
+ public StringSource( CharSequence content )
+ {
+ this( content, null );
+ }
+
+ /**
+ * Creates a new source backed by the specified string.
+ *
+ * @param content The String representation, may be empty or {@code null}.
+ * @param location The location to report for this use, may be {@code null}.
+ */
+ public StringSource( CharSequence content, String location )
+ {
+ this.content = ( content != null ) ? content.toString() : "";
+ this.location = ( location != null ) ? location : "(memory)";
+ }
+
+ @Override
+ public InputStream getInputStream()
+ throws IOException
+ {
+ return new ByteArrayInputStream( content.getBytes( "UTF-8" ) );
+ }
+
+ @Override
+ public String getLocation()
+ {
+ return location;
+ }
+
+ /**
+ * Gets the content of this source.
+ *
+ * @return The underlying character stream, never {@code null}.
+ */
+ public String getContent()
+ {
+ return content;
+ }
+
+ @Override
+ public String toString()
+ {
+ return getLocation();
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/UrlSource.java b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/UrlSource.java
new file mode 100644
index 00000000..7bd3e3c3
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/main/java/org/apache/maven/building/UrlSource.java
@@ -0,0 +1,80 @@
+package org.apache.maven.building;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.net.URL;
+
+/**
+ * Wraps an ordinary {@link URL} as a source.
+ *
+ * @author Benjamin Bentmann
+ */
+public class UrlSource
+ implements Source
+{
+
+ private URL url;
+
+ /**
+ * Creates a new source backed by the specified URL.
+ *
+ * @param url The file, must not be {@code null}.
+ */
+ public UrlSource( URL url )
+ {
+ if ( url == null )
+ {
+ throw new IllegalArgumentException( "no url specified" );
+ }
+ this.url = url;
+ }
+
+ @Override
+ public InputStream getInputStream()
+ throws IOException
+ {
+ return url.openStream();
+ }
+
+ @Override
+ public String getLocation()
+ {
+ return url.toString();
+ }
+
+ /**
+ * Gets the URL of this source.
+ *
+ * @return The underlying URL, never {@code null}.
+ */
+ public URL getUrl()
+ {
+ return url;
+ }
+
+ @Override
+ public String toString()
+ {
+ return getLocation();
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/site/site.xml b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/site/site.xml
new file mode 100644
index 00000000..3a16bf98
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/site/site.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/test/java/org/apache/maven/building/DefaultProblemCollectorTest.java b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/test/java/org/apache/maven/building/DefaultProblemCollectorTest.java
new file mode 100644
index 00000000..bf0f8477
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/test/java/org/apache/maven/building/DefaultProblemCollectorTest.java
@@ -0,0 +1,76 @@
+package org.apache.maven.building;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import static org.junit.Assert.*;
+
+import org.apache.maven.building.Problem.Severity;
+import org.junit.Test;
+
+public class DefaultProblemCollectorTest
+{
+
+ @Test
+ public void testGetProblems()
+ {
+ DefaultProblemCollector collector = new DefaultProblemCollector( null );
+ assertNotNull( collector.getProblems() );
+ assertEquals( 0, collector.getProblems().size() );
+
+ collector.add( null, "MESSAGE1", -1, -1, null );
+
+ Exception e2 = new Exception();
+ collector.add( Severity.WARNING, null, 42, 127, e2 );
+
+ assertEquals( 2, collector.getProblems().size() );
+
+ Problem p1 = collector.getProblems().get(0);
+ assertEquals( Severity.ERROR, p1.getSeverity() );
+ assertEquals( "MESSAGE1",p1.getMessage() );
+ assertEquals( -1, p1.getLineNumber() );
+ assertEquals( -1, p1.getColumnNumber() );
+ assertEquals( null, p1.getException() );
+
+ Problem p2 = collector.getProblems().get(1);
+ assertEquals( Severity.WARNING, p2.getSeverity() );
+ assertEquals( "",p2.getMessage() );
+ assertEquals( 42, p2.getLineNumber() );
+ assertEquals( 127, p2.getColumnNumber() );
+ assertEquals( e2, p2.getException() );
+ }
+
+ @Test
+ public void testSetSource()
+ {
+ DefaultProblemCollector collector = new DefaultProblemCollector( null );
+
+ collector.add( null, "PROBLEM1", -1, -1, null );
+
+ collector.setSource( "SOURCE_PROBLEM2" );
+ collector.add( null, "PROBLEM2", -1, -1, null );
+
+ collector.setSource( "SOURCE_PROBLEM3" );
+ collector.add( null, "PROBLEM3", -1, -1, null );
+
+ assertEquals( "", collector.getProblems().get( 0 ).getSource() );
+ assertEquals( "SOURCE_PROBLEM2", collector.getProblems().get( 1 ).getSource() );
+ assertEquals( "SOURCE_PROBLEM3", collector.getProblems().get( 2 ).getSource() );
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/test/java/org/apache/maven/building/DefaultProblemTest.java b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/test/java/org/apache/maven/building/DefaultProblemTest.java
new file mode 100644
index 00000000..80a20da9
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/test/java/org/apache/maven/building/DefaultProblemTest.java
@@ -0,0 +1,136 @@
+package org.apache.maven.building;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertSame;
+
+import org.apache.maven.building.Problem.Severity;
+import org.junit.Test;
+
+public class DefaultProblemTest
+{
+
+ @Test
+ public void testGetSeverity()
+ {
+ DefaultProblem problem = new DefaultProblem( null, null, null, -1, -1, null );
+ assertEquals( Severity.ERROR, problem.getSeverity() );
+
+ problem = new DefaultProblem( null, Severity.FATAL, null, -1, -1, null );
+ assertEquals( Severity.FATAL, problem.getSeverity() );
+
+ problem = new DefaultProblem( null, Severity.ERROR, null, -1, -1, null );
+ assertEquals( Severity.ERROR, problem.getSeverity() );
+
+ problem = new DefaultProblem( null, Severity.WARNING, null, -1, -1, null );
+ assertEquals( Severity.WARNING, problem.getSeverity() );
+ }
+
+ @Test
+ public void testGetLineNumber()
+ {
+ DefaultProblem problem = new DefaultProblem( null, null, null, -1, -1, null );
+ assertEquals( -1, problem.getLineNumber() );
+
+ problem = new DefaultProblem( null, null, null, 42, -1, null );
+ assertEquals( 42, problem.getLineNumber() );
+
+ problem = new DefaultProblem( null, null, null, Integer.MAX_VALUE, -1, null );
+ assertEquals( Integer.MAX_VALUE, problem.getLineNumber() );
+
+ // this case is not specified, might also return -1
+ problem = new DefaultProblem( null, null, null, Integer.MIN_VALUE, -1, null );
+ assertEquals( Integer.MIN_VALUE, problem.getLineNumber() );
+ }
+
+ @Test
+ public void testGetColumnNumber()
+ {
+ DefaultProblem problem = new DefaultProblem( null, null, null, -1, -1, null );
+ assertEquals( -1, problem.getColumnNumber() );
+
+ problem = new DefaultProblem( null, null, null, -1, 42, null );
+ assertEquals( 42, problem.getColumnNumber() );
+
+ problem = new DefaultProblem( null, null, null, -1, Integer.MAX_VALUE, null );
+ assertEquals( Integer.MAX_VALUE, problem.getColumnNumber() );
+
+ // this case is not specified, might also return -1
+ problem = new DefaultProblem( null, null, null, -1, Integer.MIN_VALUE, null );
+ assertEquals( Integer.MIN_VALUE, problem.getColumnNumber() );
+ }
+
+ @Test
+ public void testGetException()
+ {
+ DefaultProblem problem = new DefaultProblem( null, null, null, -1, -1, null );
+ assertEquals( null, problem.getException() );
+
+ Exception e = new Exception();
+ problem = new DefaultProblem( null, null, null, -1, -1, e );
+ assertSame( e, problem.getException() );
+ }
+
+ @Test
+ public void testGetSource()
+ {
+ DefaultProblem problem = new DefaultProblem( null, null, null, -1, -1, null );
+ assertEquals( "", problem.getSource() );
+
+ problem = new DefaultProblem( null, null, "", -1, -1, null );
+ assertEquals( "", problem.getSource() );
+
+ problem = new DefaultProblem( null, null, "SOURCE", -1, -1, null );
+ assertEquals( "SOURCE", problem.getSource() );
+ }
+
+ @Test
+ public void testGetLocation()
+ {
+ DefaultProblem problem = new DefaultProblem( null, null, null, -1, -1, null );
+ assertEquals( "", problem.getLocation() );
+
+ problem = new DefaultProblem( null, null, "SOURCE", -1, -1, null );
+ assertEquals( "SOURCE", problem.getLocation() );
+
+ problem = new DefaultProblem( null, null, null, 42, -1, null );
+ assertEquals( "line 42", problem.getLocation() );
+
+ problem = new DefaultProblem( null, null, null, -1, 127, null );
+ assertEquals( "column 127", problem.getLocation() );
+
+ problem = new DefaultProblem( null, null, "SOURCE", 42, 127, null );
+ assertEquals( "SOURCE, line 42, column 127", problem.getLocation() );
+ }
+
+ @Test
+ public void testGetMessage()
+ {
+ DefaultProblem problem = new DefaultProblem( "MESSAGE", null, null, -1, -1, null );
+ assertEquals( "MESSAGE", problem.getMessage() );
+
+ problem = new DefaultProblem( null, null, null, -1, -1, new Exception() );
+ assertEquals( "", problem.getMessage() );
+
+ problem = new DefaultProblem( null, null, null, -1, -1, new Exception( "EXCEPTION MESSAGE" ) );
+ assertEquals( "EXCEPTION MESSAGE", problem.getMessage() );
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/test/java/org/apache/maven/building/FileSourceTest.java b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/test/java/org/apache/maven/building/FileSourceTest.java
new file mode 100644
index 00000000..086adda8
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/test/java/org/apache/maven/building/FileSourceTest.java
@@ -0,0 +1,93 @@
+package org.apache.maven.building;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+import java.io.File;
+import java.io.InputStream;
+import java.util.Scanner;
+
+import org.junit.Test;
+
+public class FileSourceTest
+{
+
+ @Test
+ public void testFileSource()
+ {
+ try
+ {
+ new FileSource( null );
+ fail( "Should fail, since you must specify a file" );
+ }
+ catch ( IllegalArgumentException e )
+ {
+ assertEquals( "no file specified", e.getMessage() );
+ }
+ }
+
+ @Test
+ public void testGetInputStream()
+ throws Exception
+ {
+ File txtFile = new File( "target/test-classes/source.txt" );
+ FileSource source = new FileSource( txtFile );
+
+ Scanner scanner = null;
+ InputStream is = null;
+ try
+ {
+ is = source.getInputStream();
+
+ scanner = new Scanner( is );
+ assertEquals( "Hello World!", scanner.nextLine() );
+ }
+ finally
+ {
+ if ( scanner != null )
+ {
+ scanner.close();
+ }
+ if ( is != null )
+ {
+ is.close();
+ }
+ }
+ }
+
+ @Test
+ public void testGetLocation()
+ {
+ File txtFile = new File( "target/test-classes/source.txt" );
+ FileSource source = new FileSource( txtFile );
+ assertEquals( txtFile.getAbsolutePath(), source.getLocation() );
+ }
+
+ @Test
+ public void testGetFile()
+ {
+ File txtFile = new File( "target/test-classes/source.txt" );
+ FileSource source = new FileSource( txtFile );
+ assertEquals( txtFile.getAbsoluteFile(), source.getFile() );
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/test/java/org/apache/maven/building/ProblemCollectorFactoryTest.java b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/test/java/org/apache/maven/building/ProblemCollectorFactoryTest.java
new file mode 100644
index 00000000..44c7906c
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/test/java/org/apache/maven/building/ProblemCollectorFactoryTest.java
@@ -0,0 +1,45 @@
+package org.apache.maven.building;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotSame;
+
+import java.util.Collections;
+
+import org.junit.Test;
+
+public class ProblemCollectorFactoryTest
+{
+
+ @Test
+ public void testNewInstance()
+ {
+ ProblemCollector collector1 = ProblemCollectorFactory.newInstance( null );
+
+ Problem problem = new DefaultProblem( "MESSAGE1", null, null, -1, -1, null );
+ ProblemCollector collector2 = ProblemCollectorFactory.newInstance( Collections.singletonList( problem ) );
+
+ assertNotSame( collector1, collector2 );
+ assertEquals( 0, collector1.getProblems().size() );
+ assertEquals( 1, collector2.getProblems().size() );
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/test/java/org/apache/maven/building/StringSourceTest.java b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/test/java/org/apache/maven/building/StringSourceTest.java
new file mode 100644
index 00000000..013b8a4d
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/test/java/org/apache/maven/building/StringSourceTest.java
@@ -0,0 +1,79 @@
+package org.apache.maven.building;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.InputStream;
+import java.util.Scanner;
+
+import org.junit.Test;
+
+public class StringSourceTest
+{
+ @Test
+ public void testGetInputStream()
+ throws Exception
+ {
+ StringSource source = new StringSource( "Hello World!" );
+
+ Scanner scanner = null;
+ InputStream is = null;
+ try
+ {
+ is = source.getInputStream();
+
+ scanner = new Scanner( is );
+ assertEquals( "Hello World!", scanner.nextLine() );
+ }
+ finally
+ {
+ if ( scanner != null )
+ {
+ scanner.close();
+ }
+ if ( is != null )
+ {
+ is.close();
+ }
+ }
+ }
+
+ @Test
+ public void testGetLocation()
+ {
+ StringSource source = new StringSource( "Hello World!" );
+ assertEquals( "(memory)", source.getLocation() );
+
+ source = new StringSource( "Hello World!", "LOCATION" );
+ assertEquals( "LOCATION", source.getLocation() );
+ }
+
+ @Test
+ public void testGetContent()
+ {
+ StringSource source = new StringSource( null );
+ assertEquals( "", source.getContent() );
+
+ source = new StringSource( "Hello World!", "LOCATION" );
+ assertEquals( "Hello World!", source.getContent() );
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/test/java/org/apache/maven/building/UrlSourceTest.java b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/test/java/org/apache/maven/building/UrlSourceTest.java
new file mode 100644
index 00000000..5524c9b3
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/test/java/org/apache/maven/building/UrlSourceTest.java
@@ -0,0 +1,87 @@
+package org.apache.maven.building;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+import java.io.File;
+import java.io.InputStream;
+import java.net.URL;
+import java.util.Scanner;
+
+import org.junit.Test;
+
+public class UrlSourceTest
+{
+
+ @Test
+ public void testUrlSource()
+ {
+ try
+ {
+ new UrlSource( null );
+ fail( "Should fail, since you must specify a url" );
+ }
+ catch ( IllegalArgumentException e )
+ {
+ assertEquals( "no url specified", e.getMessage() );
+ }
+ }
+
+ @Test
+ public void testGetInputStream()
+ throws Exception
+ {
+ URL txtFile = new File( "target/test-classes/source.txt" ).toURI().toURL();
+ UrlSource source = new UrlSource( txtFile );
+
+ Scanner scanner = null;
+ InputStream is = null;
+ try
+ {
+ is = source.getInputStream();
+
+ scanner = new Scanner( is );
+ assertEquals( "Hello World!", scanner.nextLine() );
+ }
+ finally
+ {
+ if ( scanner != null )
+ {
+ scanner.close();
+ }
+ if ( is != null )
+ {
+ is.close();
+ }
+ }
+ }
+
+ @Test
+ public void testGetLocation()
+ throws Exception
+ {
+ URL txtFile = new File( "target/test-classes/source.txt" ).toURI().toURL();
+ UrlSource source = new UrlSource( txtFile );
+ assertEquals( txtFile.toExternalForm(), source.getLocation() );
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/test/resources/source.txt b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/test/resources/source.txt
new file mode 100644
index 00000000..c57eff55
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-builder-support/src/test/resources/source.txt
@@ -0,0 +1 @@
+Hello World!
\ No newline at end of file
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/pom.xml b/framework/src/maven/apache-maven-3.3.3/maven-compat/pom.xml
new file mode 100644
index 00000000..1b4c6c1a
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/pom.xml
@@ -0,0 +1,115 @@
+
+
+
+
+
+ 4.0.0
+
+
+ org.apache.maven
+ maven
+ 3.3.3
+
+
+ maven-compat
+
+ Maven Compat
+ Maven2 classes maintained as compatibility layer.
+
+
+ scm:git:https://git-wip-us.apache.org/repos/asf/maven.git
+ scm:git:https://git-wip-us.apache.org/repos/asf/maven.git
+ maven-3.3.3
+
+
+
+ false
+
+
+
+
+ org.apache.maven
+ maven-model
+
+
+ org.apache.maven
+ maven-model-builder
+
+
+ org.apache.maven
+ maven-settings
+
+
+ org.apache.maven
+ maven-artifact
+
+
+ org.apache.maven
+ maven-core
+
+
+ org.codehaus.plexus
+ plexus-utils
+
+
+ org.codehaus.plexus
+ plexus-interpolation
+
+
+ org.eclipse.sisu
+ org.eclipse.sisu.plexus
+
+
+ org.codehaus.plexus
+ plexus-component-annotations
+
+
+ org.apache.maven.wagon
+ wagon-provider-api
+
+
+
+ org.apache.maven.wagon
+ wagon-file
+ test
+
+
+ org.eclipse.aether
+ aether-connector-basic
+ test
+
+
+ org.eclipse.aether
+ aether-transport-wagon
+ test
+
+
+
+
+
+
+ org.codehaus.plexus
+ plexus-component-metadata
+
+
+ org.codehaus.modello
+ modello-maven-plugin
+
+ 1.0.0
+
+ src/main/mdo/profiles.mdo
+ src/main/mdo/paramdoc.mdo
+
+
+
+
+
+
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/ArtifactScopeEnum.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/ArtifactScopeEnum.java
new file mode 100644
index 00000000..7051e3bf
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/ArtifactScopeEnum.java
@@ -0,0 +1,133 @@
+package org.apache.maven.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.
+ */
+
+/**
+ * Type safe reincarnation of Artifact scope. Also supplies the DEFAULT_SCOPE as well
+ * as convenience method to deal with scope relationships.
+ *
+ * @author Oleg Gusakov
+ *
+ */
+
+public enum ArtifactScopeEnum
+{
+ compile( 1 ), test( 2 ), runtime( 3 ), provided( 4 ), system( 5 ), runtime_plus_system( 6 );
+
+ public static final ArtifactScopeEnum DEFAULT_SCOPE = compile;
+
+ private int id;
+
+ // Constructor
+ ArtifactScopeEnum( int id )
+ {
+ this.id = id;
+ }
+
+ int getId()
+ {
+ return id;
+ }
+
+
+ /**
+ * Helper method to simplify null processing
+ *
+ * @return
+ */
+ public static final ArtifactScopeEnum checkScope( ArtifactScopeEnum scope )
+ {
+ return scope == null ? DEFAULT_SCOPE : scope;
+ }
+
+ /**
+ *
+ * @return unsafe String representation of this scope.
+ */
+ public String getScope()
+ {
+ if ( id == 1 )
+ {
+ return Artifact.SCOPE_COMPILE;
+ }
+ else if ( id == 2 )
+ {
+ return Artifact.SCOPE_TEST;
+
+ }
+ else if ( id == 3 )
+ {
+ return Artifact.SCOPE_RUNTIME;
+
+ }
+ else if ( id == 4 )
+ {
+ return Artifact.SCOPE_PROVIDED;
+ }
+ else if ( id == 5 )
+ {
+ return Artifact.SCOPE_SYSTEM;
+ }
+ else
+ {
+ return Artifact.SCOPE_RUNTIME_PLUS_SYSTEM;
+ }
+ }
+
+ private static final ArtifactScopeEnum [][][] COMPLIANCY_SETS = {
+ { { compile }, { compile, provided, system } }
+ , { { test }, { compile, test, provided, system } }
+ , { { runtime }, { compile, runtime, system } }
+ , { { provided }, { compile, test, provided } }
+ };
+
+ /**
+ * scope relationship function. Used by the graph conflict resolution policies
+ *
+ * @param scope
+ * @return true is supplied scope is an inclusive sub-scope of current one.
+ */
+ public boolean encloses( ArtifactScopeEnum scope )
+ {
+ final ArtifactScopeEnum s = checkScope( scope );
+
+ // system scope is historic only - and simple
+ if ( id == system.id )
+ {
+ return scope.id == system.id;
+ }
+
+ for ( ArtifactScopeEnum[][] set : COMPLIANCY_SETS )
+ {
+ if ( id == set[0][0].id )
+ {
+ for ( ArtifactScopeEnum ase : set[1] )
+ {
+ if ( s.id == ase.id )
+ {
+ return true;
+ }
+ }
+ break;
+ }
+ }
+ return false;
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/ArtifactStatus.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/ArtifactStatus.java
new file mode 100644
index 00000000..3bd1e341
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/ArtifactStatus.java
@@ -0,0 +1,124 @@
+package org.apache.maven.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.HashMap;
+import java.util.Map;
+
+/**
+ * Type safe enumeration for the artifact status field.
+ *
+ * @author Brett Porter
+ */
+public final class ArtifactStatus
+ implements Comparable
+{
+ /**
+ * No trust - no information about status.
+ */
+ public static final ArtifactStatus NONE = new ArtifactStatus( "none", 0 );
+
+ /**
+ * No trust - information was generated with defaults.
+ */
+ public static final ArtifactStatus GENERATED = new ArtifactStatus( "generated", 1 );
+
+ /**
+ * Low trust - was converted from the Maven 1.x repository.
+ */
+ public static final ArtifactStatus CONVERTED = new ArtifactStatus( "converted", 2 );
+
+ /**
+ * Moderate trust - it was deployed directly from a partner.
+ */
+ public static final ArtifactStatus PARTNER = new ArtifactStatus( "partner", 3 );
+
+ /**
+ * Moderate trust - it was deployed directly by a user.
+ */
+ public static final ArtifactStatus DEPLOYED = new ArtifactStatus( "deployed", 4 );
+
+ /**
+ * Trusted, as it has had its data verified by hand.
+ */
+ public static final ArtifactStatus VERIFIED = new ArtifactStatus( "verified", 5 );
+
+ private final int rank;
+
+ private final String key;
+
+ private static Map map;
+
+ private ArtifactStatus( String key, int rank )
+ {
+ this.rank = rank;
+ this.key = key;
+
+ if ( map == null )
+ {
+ map = new HashMap();
+ }
+ map.put( key, this );
+ }
+
+ public static ArtifactStatus valueOf( String status )
+ {
+ ArtifactStatus retVal = null;
+
+ if ( status != null )
+ {
+ retVal = map.get( status );
+ }
+
+ return retVal != null ? retVal : NONE;
+ }
+
+ public boolean equals( Object o )
+ {
+ if ( this == o )
+ {
+ return true;
+ }
+ if ( o == null || getClass() != o.getClass() )
+ {
+ return false;
+ }
+
+ final ArtifactStatus that = (ArtifactStatus) o;
+
+ return rank == that.rank;
+
+ }
+
+ public int hashCode()
+ {
+ return rank;
+ }
+
+ public String toString()
+ {
+ return key;
+ }
+
+ public int compareTo( ArtifactStatus s )
+ {
+ return rank - s.rank;
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/UnknownRepositoryLayoutException.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/UnknownRepositoryLayoutException.java
new file mode 100644
index 00000000..5abe1105
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/UnknownRepositoryLayoutException.java
@@ -0,0 +1,54 @@
+package org.apache.maven.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.codehaus.plexus.component.repository.exception.ComponentLookupException;
+
+/**
+ * Exception which is meant to occur when a layout specified for a particular
+ * repository doesn't have a corresponding {@link ArtifactRepositoryLayout}
+ * component in the current container.
+ *
+ * @author jdcasey
+ */
+public class UnknownRepositoryLayoutException
+ extends InvalidRepositoryException
+{
+
+ private final String layoutId;
+
+ public UnknownRepositoryLayoutException( String repositoryId, String layoutId )
+ {
+ super( "Cannot find ArtifactRepositoryLayout instance for: " + layoutId, repositoryId );
+ this.layoutId = layoutId;
+ }
+
+ public UnknownRepositoryLayoutException( String repositoryId, String layoutId, ComponentLookupException e )
+ {
+ super( "Cannot find ArtifactRepositoryLayout instance for: " + layoutId, repositoryId, e );
+ this.layoutId = layoutId;
+ }
+
+ public String getLayoutId()
+ {
+ return layoutId;
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/deployer/ArtifactDeployer.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/deployer/ArtifactDeployer.java
new file mode 100644
index 00000000..072552cc
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/deployer/ArtifactDeployer.java
@@ -0,0 +1,61 @@
+package org.apache.maven.artifact.deployer;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.maven.artifact.Artifact;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+
+public interface ArtifactDeployer
+{
+ String ROLE = ArtifactDeployer.class.getName();
+
+ /**
+ * Deploy an artifact from a particular directory. The artifact handler is used to determine the
+ * filename of the source file.
+ *
+ * @param basedir the directory where the artifact is stored
+ * @param finalName the name of the artifact without extension
+ * @param artifact the artifact definition
+ * @param deploymentRepository the repository to deploy to
+ * @param localRepository the local repository to install into
+ * @throws ArtifactDeploymentException if an error occurred deploying the artifact
+ * @deprecated to be removed before 2.0 after the install/deploy plugins use the alternate
+ * method
+ */
+ @Deprecated
+ void deploy( String basedir, String finalName, Artifact artifact, ArtifactRepository deploymentRepository,
+ ArtifactRepository localRepository )
+ throws ArtifactDeploymentException;
+
+ /**
+ * Deploy an artifact from a particular file.
+ *
+ * @param source the file to deploy
+ * @param artifact the artifact definition
+ * @param deploymentRepository the repository to deploy to
+ * @param localRepository the local repository to install into
+ * @throws ArtifactDeploymentException if an error occurred deploying the artifact
+ */
+ void deploy( File source, Artifact artifact, ArtifactRepository deploymentRepository,
+ ArtifactRepository localRepository )
+ throws ArtifactDeploymentException;
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/deployer/ArtifactDeploymentException.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/deployer/ArtifactDeploymentException.java
new file mode 100644
index 00000000..6e44ed3c
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/deployer/ArtifactDeploymentException.java
@@ -0,0 +1,43 @@
+package org.apache.maven.artifact.deployer;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT 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 Jason van Zyl
+ */
+public class ArtifactDeploymentException
+ extends Exception
+{
+ public ArtifactDeploymentException( String message )
+ {
+ super( message );
+ }
+
+ public ArtifactDeploymentException( Throwable cause )
+ {
+ super( cause );
+ }
+
+ public ArtifactDeploymentException( String message,
+ Throwable cause )
+ {
+ super( message, cause );
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java
new file mode 100644
index 00000000..abbab821
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java
@@ -0,0 +1,161 @@
+package org.apache.maven.artifact.deployer;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.concurrent.ConcurrentHashMap;
+
+import org.apache.maven.RepositoryUtils;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.metadata.ArtifactMetadata;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.DefaultArtifactRepository;
+import org.apache.maven.artifact.repository.LegacyLocalRepositoryManager;
+import org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadata;
+import org.apache.maven.artifact.repository.metadata.MetadataBridge;
+import org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadata;
+import org.apache.maven.plugin.LegacySupport;
+import org.apache.maven.project.artifact.ProjectArtifactMetadata;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
+import org.codehaus.plexus.logging.AbstractLogEnabled;
+import org.eclipse.aether.RepositorySystem;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.RequestTrace;
+import org.eclipse.aether.deployment.DeployRequest;
+import org.eclipse.aether.deployment.DeployResult;
+import org.eclipse.aether.deployment.DeploymentException;
+import org.eclipse.aether.metadata.MergeableMetadata;
+import org.eclipse.aether.repository.RemoteRepository;
+import org.eclipse.aether.util.artifact.SubArtifact;
+
+@Component( role = ArtifactDeployer.class, instantiationStrategy = "per-lookup" )
+public class DefaultArtifactDeployer
+ extends AbstractLogEnabled
+ implements ArtifactDeployer
+{
+
+ @Requirement
+ private RepositorySystem repoSystem;
+
+ @Requirement
+ private LegacySupport legacySupport;
+
+ private Map relatedMetadata = new ConcurrentHashMap();
+
+ /**
+ * @deprecated we want to use the artifact method only, and ensure artifact.file is set
+ * correctly.
+ */
+ @Deprecated
+ public void deploy( String basedir, String finalName, Artifact artifact, ArtifactRepository deploymentRepository,
+ ArtifactRepository localRepository )
+ throws ArtifactDeploymentException
+ {
+ String extension = artifact.getArtifactHandler().getExtension();
+ File source = new File( basedir, finalName + "." + extension );
+ deploy( source, artifact, deploymentRepository, localRepository );
+ }
+
+ public void deploy( File source, Artifact artifact, ArtifactRepository deploymentRepository,
+ ArtifactRepository localRepository )
+ throws ArtifactDeploymentException
+ {
+ RepositorySystemSession session =
+ LegacyLocalRepositoryManager.overlay( localRepository, legacySupport.getRepositorySession(), repoSystem );
+
+ DeployRequest request = new DeployRequest();
+
+ request.setTrace( RequestTrace.newChild( null, legacySupport.getSession().getCurrentProject() ) );
+
+ org.eclipse.aether.artifact.Artifact mainArtifact = RepositoryUtils.toArtifact( artifact );
+ mainArtifact = mainArtifact.setFile( source );
+ request.addArtifact( mainArtifact );
+
+ String versionKey = artifact.getGroupId() + ':' + artifact.getArtifactId();
+ String snapshotKey = null;
+ if ( artifact.isSnapshot() )
+ {
+ snapshotKey = versionKey + ':' + artifact.getBaseVersion();
+ request.addMetadata( relatedMetadata.get( snapshotKey ) );
+ }
+ request.addMetadata( relatedMetadata.get( versionKey ) );
+
+ for ( ArtifactMetadata metadata : artifact.getMetadataList() )
+ {
+ if ( metadata instanceof ProjectArtifactMetadata )
+ {
+ org.eclipse.aether.artifact.Artifact pomArtifact = new SubArtifact( mainArtifact, "", "pom" );
+ pomArtifact = pomArtifact.setFile( ( (ProjectArtifactMetadata) metadata ).getFile() );
+ request.addArtifact( pomArtifact );
+ }
+ else if ( metadata instanceof SnapshotArtifactRepositoryMetadata
+ || metadata instanceof ArtifactRepositoryMetadata )
+ {
+ // eaten, handled by repo system
+ }
+ else
+ {
+ request.addMetadata( new MetadataBridge( metadata ) );
+ }
+ }
+
+ RemoteRepository remoteRepo = RepositoryUtils.toRepo( deploymentRepository );
+ /*
+ * NOTE: This provides backward-compat with maven-deploy-plugin:2.4 which bypasses the repository factory when
+ * using an alternative deployment location.
+ */
+ if ( deploymentRepository instanceof DefaultArtifactRepository
+ && deploymentRepository.getAuthentication() == null )
+ {
+ RemoteRepository.Builder builder = new RemoteRepository.Builder( remoteRepo );
+ builder.setAuthentication( session.getAuthenticationSelector().getAuthentication( remoteRepo ) );
+ builder.setProxy( session.getProxySelector().getProxy( remoteRepo ) );
+ remoteRepo = builder.build();
+ }
+ request.setRepository( remoteRepo );
+
+ DeployResult result;
+ try
+ {
+ result = repoSystem.deploy( session, request );
+ }
+ catch ( DeploymentException e )
+ {
+ throw new ArtifactDeploymentException( e.getMessage(), e );
+ }
+
+ for ( Object metadata : result.getMetadata() )
+ {
+ if ( metadata.getClass().getName().endsWith( ".internal.VersionsMetadata" ) )
+ {
+ relatedMetadata.put( versionKey, (MergeableMetadata) metadata );
+ }
+ if ( snapshotKey != null && metadata.getClass().getName().endsWith( ".internal.RemoteSnapshotMetadata" ) )
+ {
+ relatedMetadata.put( snapshotKey, (MergeableMetadata) metadata );
+ }
+ }
+
+ artifact.setResolvedVersion( result.getArtifacts().iterator().next().getVersion() );
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/installer/ArtifactInstallationException.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/installer/ArtifactInstallationException.java
new file mode 100644
index 00000000..9f1e45b9
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/installer/ArtifactInstallationException.java
@@ -0,0 +1,43 @@
+package org.apache.maven.artifact.installer;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT 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 Jason van Zyl
+ */
+public class ArtifactInstallationException
+ extends Exception
+{
+ public ArtifactInstallationException( String message )
+ {
+ super( message );
+ }
+
+ public ArtifactInstallationException( Throwable cause )
+ {
+ super( cause );
+ }
+
+ public ArtifactInstallationException( String message,
+ Throwable cause )
+ {
+ super( message, cause );
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/installer/ArtifactInstaller.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/installer/ArtifactInstaller.java
new file mode 100644
index 00000000..376eba20
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/installer/ArtifactInstaller.java
@@ -0,0 +1,60 @@
+package org.apache.maven.artifact.installer;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.maven.artifact.Artifact;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+
+/**
+ * @author Michal Maczka
+ */
+public interface ArtifactInstaller
+{
+ String ROLE = ArtifactInstaller.class.getName();
+
+ /**
+ * Install an artifact from a particular directory. The artifact handler is used to determine
+ * the filename of the source file.
+ *
+ * @param basedir the directory where the artifact is stored
+ * @param finalName the name of the artifact sans extension
+ * @param artifact the artifact definition
+ * @param localRepository the local repository to install into
+ * @throws ArtifactInstallationException if an error occurred installing the artifact
+ * @deprecated to be removed before 2.0 after the instlal/deploy plugins use the alternate
+ * method
+ */
+ @Deprecated
+ void install( String basedir, String finalName, Artifact artifact, ArtifactRepository localRepository )
+ throws ArtifactInstallationException;
+
+ /**
+ * Install an artifact from a particular file.
+ *
+ * @param source the file to install
+ * @param artifact the artifact definition
+ * @param localRepository the local repository to install into
+ * @throws ArtifactInstallationException if an error occurred installing the artifact
+ */
+ void install( File source, Artifact artifact, ArtifactRepository localRepository )
+ throws ArtifactInstallationException;
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java
new file mode 100644
index 00000000..a2529757
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java
@@ -0,0 +1,135 @@
+package org.apache.maven.artifact.installer;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.maven.RepositoryUtils;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.metadata.ArtifactMetadata;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.LegacyLocalRepositoryManager;
+import org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadata;
+import org.apache.maven.artifact.repository.metadata.MetadataBridge;
+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.plugin.LegacySupport;
+import org.apache.maven.project.artifact.ProjectArtifactMetadata;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
+import org.codehaus.plexus.logging.AbstractLogEnabled;
+import org.eclipse.aether.RepositorySystem;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.RequestTrace;
+import org.eclipse.aether.installation.InstallRequest;
+import org.eclipse.aether.installation.InstallationException;
+import org.eclipse.aether.util.artifact.SubArtifact;
+
+/**
+ * @author Jason van Zyl
+ */
+@Component( role = ArtifactInstaller.class )
+public class DefaultArtifactInstaller
+ extends AbstractLogEnabled
+ implements ArtifactInstaller
+{
+
+ @Requirement
+ private RepositorySystem repoSystem;
+
+ @Requirement
+ private LegacySupport legacySupport;
+
+ /** @deprecated we want to use the artifact method only, and ensure artifact.file is set correctly. */
+ @Deprecated
+ public void install( String basedir, String finalName, Artifact artifact, ArtifactRepository localRepository )
+ throws ArtifactInstallationException
+ {
+ String extension = artifact.getArtifactHandler().getExtension();
+ File source = new File( basedir, finalName + "." + extension );
+
+ install( source, artifact, localRepository );
+ }
+
+ public void install( File source, Artifact artifact, ArtifactRepository localRepository )
+ throws ArtifactInstallationException
+ {
+ RepositorySystemSession session =
+ LegacyLocalRepositoryManager.overlay( localRepository, legacySupport.getRepositorySession(), repoSystem );
+
+ InstallRequest request = new InstallRequest();
+
+ request.setTrace( RequestTrace.newChild( null, legacySupport.getSession().getCurrentProject() ) );
+
+ org.eclipse.aether.artifact.Artifact mainArtifact = RepositoryUtils.toArtifact( artifact );
+ mainArtifact = mainArtifact.setFile( source );
+ request.addArtifact( mainArtifact );
+
+ for ( ArtifactMetadata metadata : artifact.getMetadataList() )
+ {
+ if ( metadata instanceof ProjectArtifactMetadata )
+ {
+ org.eclipse.aether.artifact.Artifact pomArtifact = new SubArtifact( mainArtifact, "", "pom" );
+ pomArtifact = pomArtifact.setFile( ( (ProjectArtifactMetadata) metadata ).getFile() );
+ request.addArtifact( pomArtifact );
+ }
+ else if ( metadata instanceof SnapshotArtifactRepositoryMetadata
+ || metadata instanceof ArtifactRepositoryMetadata )
+ {
+ // eaten, handled by repo system
+ }
+ else
+ {
+ request.addMetadata( new MetadataBridge( metadata ) );
+ }
+ }
+
+ try
+ {
+ repoSystem.install( session, request );
+ }
+ catch ( InstallationException e )
+ {
+ throw new ArtifactInstallationException( e.getMessage(), e );
+ }
+
+ /*
+ * NOTE: Not used by Maven core, only here to provide backward-compat with plugins like the Install Plugin.
+ */
+
+ if ( artifact.isSnapshot() )
+ {
+ Snapshot snapshot = new Snapshot();
+ snapshot.setLocalCopy( true );
+ artifact.addMetadata( new SnapshotArtifactRepositoryMetadata( artifact, snapshot ) );
+ }
+
+ Versioning versioning = new Versioning();
+ versioning.updateTimestamp();
+ versioning.addVersion( artifact.getBaseVersion() );
+ if ( artifact.isRelease() )
+ {
+ versioning.setRelease( artifact.getBaseVersion() );
+ }
+ artifact.addMetadata( new ArtifactRepositoryMetadata( artifact, versioning ) );
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java
new file mode 100644
index 00000000..29876e24
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java
@@ -0,0 +1,182 @@
+package org.apache.maven.artifact.manager;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.artifact.Artifact;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
+import org.apache.maven.execution.MavenExecutionRequest;
+import org.apache.maven.execution.MavenSession;
+import org.apache.maven.plugin.LegacySupport;
+import org.apache.maven.repository.MirrorSelector;
+import org.apache.maven.settings.Mirror;
+import org.apache.maven.settings.Proxy;
+import org.apache.maven.settings.Server;
+import org.apache.maven.settings.crypto.DefaultSettingsDecryptionRequest;
+import org.apache.maven.settings.crypto.SettingsDecrypter;
+import org.apache.maven.settings.crypto.SettingsDecryptionResult;
+import org.apache.maven.wagon.ResourceDoesNotExistException;
+import org.apache.maven.wagon.TransferFailedException;
+import org.apache.maven.wagon.authentication.AuthenticationInfo;
+import org.apache.maven.wagon.proxy.ProxyInfo;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
+import org.codehaus.plexus.logging.Logger;
+
+@Component( role = WagonManager.class )
+public class DefaultWagonManager
+ extends org.apache.maven.repository.legacy.DefaultWagonManager
+ implements WagonManager
+{
+
+ // NOTE: This must use a different field name than in the super class or IoC has no chance to inject the loggers
+ @Requirement
+ private Logger log;
+
+ @Requirement
+ private LegacySupport legacySupport;
+
+ @Requirement
+ private SettingsDecrypter settingsDecrypter;
+
+ @Requirement
+ private MirrorSelector mirrorSelector;
+
+ @Requirement
+ private ArtifactRepositoryFactory artifactRepositoryFactory;
+
+ public AuthenticationInfo getAuthenticationInfo( String id )
+ {
+ MavenSession session = legacySupport.getSession();
+
+ if ( session != null && id != null )
+ {
+ MavenExecutionRequest request = session.getRequest();
+
+ if ( request != null )
+ {
+ List servers = request.getServers();
+
+ if ( servers != null )
+ {
+ for ( Server server : servers )
+ {
+ if ( id.equalsIgnoreCase( server.getId() ) )
+ {
+ SettingsDecryptionResult result =
+ settingsDecrypter.decrypt( new DefaultSettingsDecryptionRequest( server ) );
+ server = result.getServer();
+
+ AuthenticationInfo authInfo = new AuthenticationInfo();
+ authInfo.setUserName( server.getUsername() );
+ authInfo.setPassword( server.getPassword() );
+ authInfo.setPrivateKey( server.getPrivateKey() );
+ authInfo.setPassphrase( server.getPassphrase() );
+
+ return authInfo;
+ }
+ }
+ }
+ }
+ }
+
+ // empty one to prevent NPE
+ return new AuthenticationInfo();
+ }
+
+ public ProxyInfo getProxy( String protocol )
+ {
+ MavenSession session = legacySupport.getSession();
+
+ if ( session != null && protocol != null )
+ {
+ MavenExecutionRequest request = session.getRequest();
+
+ if ( request != null )
+ {
+ List proxies = request.getProxies();
+
+ if ( proxies != null )
+ {
+ for ( Proxy proxy : proxies )
+ {
+ if ( proxy.isActive() && protocol.equalsIgnoreCase( proxy.getProtocol() ) )
+ {
+ SettingsDecryptionResult result =
+ settingsDecrypter.decrypt( new DefaultSettingsDecryptionRequest( proxy ) );
+ proxy = result.getProxy();
+
+ ProxyInfo proxyInfo = new ProxyInfo();
+ proxyInfo.setHost( proxy.getHost() );
+ proxyInfo.setType( proxy.getProtocol() );
+ proxyInfo.setPort( proxy.getPort() );
+ proxyInfo.setNonProxyHosts( proxy.getNonProxyHosts() );
+ proxyInfo.setUserName( proxy.getUsername() );
+ proxyInfo.setPassword( proxy.getPassword() );
+
+ return proxyInfo;
+ }
+ }
+ }
+ }
+ }
+
+ return null;
+ }
+
+ public void getArtifact( Artifact artifact, ArtifactRepository repository )
+ throws TransferFailedException, ResourceDoesNotExistException
+ {
+ getArtifact( artifact, repository, null, false );
+ }
+
+ public void getArtifact( Artifact artifact, List remoteRepositories )
+ throws TransferFailedException, ResourceDoesNotExistException
+ {
+ getArtifact( artifact, remoteRepositories, null, false );
+ }
+
+ @Deprecated
+ public ArtifactRepository getMirrorRepository( ArtifactRepository repository )
+ {
+
+ Mirror mirror = mirrorSelector.getMirror( repository, legacySupport.getSession().getSettings().getMirrors() );
+
+ if ( mirror != null )
+ {
+ String id = mirror.getId();
+ if ( id == null )
+ {
+ // TODO: this should be illegal in settings.xml
+ id = repository.getId();
+ }
+
+ log.debug( "Using mirror: " + mirror.getUrl() + " (id: " + id + ")" );
+
+ repository = artifactRepositoryFactory.createArtifactRepository( id, mirror.getUrl(),
+ repository.getLayout(), repository.getSnapshots(),
+ repository.getReleases() );
+ }
+ return repository;
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/manager/WagonConfigurationException.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/manager/WagonConfigurationException.java
new file mode 100644
index 00000000..8065116f
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/manager/WagonConfigurationException.java
@@ -0,0 +1,38 @@
+package org.apache.maven.artifact.manager;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT 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 Olivier Lamy
+ */
+@Deprecated
+public class WagonConfigurationException
+ extends org.apache.maven.repository.legacy.WagonConfigurationException
+{
+ public WagonConfigurationException( String repositoryId, String message, Throwable cause )
+ {
+ super( repositoryId, message, cause );
+ }
+
+ public WagonConfigurationException( String repositoryId, String message )
+ {
+ super( repositoryId, message );
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/manager/WagonManager.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/manager/WagonManager.java
new file mode 100644
index 00000000..fb7ca8b6
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/manager/WagonManager.java
@@ -0,0 +1,56 @@
+package org.apache.maven.artifact.manager;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.artifact.Artifact;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.wagon.ResourceDoesNotExistException;
+import org.apache.maven.wagon.TransferFailedException;
+import org.apache.maven.wagon.authentication.AuthenticationInfo;
+import org.apache.maven.wagon.proxy.ProxyInfo;
+
+/**
+ * Manages Wagon related operations in Maven.
+ *
+ * @author Michal Maczka
+ */
+@Deprecated
+public interface WagonManager
+ extends org.apache.maven.repository.legacy.WagonManager
+{
+ /**
+ * this method is only here for backward compat (project-info-reports:dependencies)
+ * the default implementation will return an empty AuthenticationInfo
+ */
+ AuthenticationInfo getAuthenticationInfo( String id );
+
+ ProxyInfo getProxy( String protocol );
+
+ void getArtifact( Artifact artifact, ArtifactRepository repository )
+ throws TransferFailedException, ResourceDoesNotExistException;
+
+ void getArtifact( Artifact artifact, List remoteRepositories )
+ throws TransferFailedException, ResourceDoesNotExistException;
+
+ ArtifactRepository getMirrorRepository( ArtifactRepository repository );
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/ArtifactRepositoryFactory.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/ArtifactRepositoryFactory.java
new file mode 100644
index 00000000..ac18b3ad
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/ArtifactRepositoryFactory.java
@@ -0,0 +1,55 @@
+package org.apache.maven.artifact.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.artifact.UnknownRepositoryLayoutException;
+import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
+
+/** @author jdcasey */
+public interface ArtifactRepositoryFactory
+{
+ String ROLE = ArtifactRepositoryFactory.class.getName();
+
+ String DEFAULT_LAYOUT_ID = "default";
+
+ String LOCAL_REPOSITORY_ID = "local";
+
+ @Deprecated
+ ArtifactRepositoryLayout getLayout( String layoutId )
+ throws UnknownRepositoryLayoutException;
+
+ @Deprecated
+ ArtifactRepository createDeploymentArtifactRepository( String id, String url, String layoutId, boolean uniqueVersion )
+ throws UnknownRepositoryLayoutException;
+
+ ArtifactRepository createDeploymentArtifactRepository( String id, String url, ArtifactRepositoryLayout layout,
+ boolean uniqueVersion );
+
+ ArtifactRepository createArtifactRepository( String id, String url, String layoutId,
+ ArtifactRepositoryPolicy snapshots, ArtifactRepositoryPolicy releases )
+ throws UnknownRepositoryLayoutException;
+
+ ArtifactRepository createArtifactRepository( String id, String url, ArtifactRepositoryLayout repositoryLayout,
+ ArtifactRepositoryPolicy snapshots, ArtifactRepositoryPolicy releases );
+
+ void setGlobalUpdatePolicy( String snapshotPolicy );
+
+ void setGlobalChecksumPolicy( String checksumPolicy );
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepository.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepository.java
new file mode 100644
index 00000000..e0a55879
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepository.java
@@ -0,0 +1,267 @@
+package org.apache.maven.artifact.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 java.util.List;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.metadata.ArtifactMetadata;
+import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
+import org.apache.maven.repository.Proxy;
+import org.apache.maven.wagon.repository.Repository;
+
+/**
+ * This class is an abstraction of the location from/to resources can be
+ * transfered.
+ *
+ * @author Michal Maczka
+ */
+@Deprecated
+public class DefaultArtifactRepository
+ extends Repository
+ implements ArtifactRepository
+{
+ private ArtifactRepositoryLayout layout;
+
+ private ArtifactRepositoryPolicy snapshots;
+
+ private ArtifactRepositoryPolicy releases;
+
+ private boolean blacklisted;
+
+ private Authentication authentication;
+
+ private Proxy proxy;
+
+ private List mirroredRepositories = Collections.emptyList();
+
+ /**
+ * Create a local repository or a test repository.
+ *
+ * @param id the unique identifier of the repository
+ * @param url the URL of the repository
+ * @param layout the layout of the repository
+ */
+ public DefaultArtifactRepository( String id, String url, ArtifactRepositoryLayout layout )
+ {
+ this( id, url, layout, null, null );
+ }
+
+ /**
+ * Create a remote deployment repository.
+ *
+ * @param id the unique identifier of the repository
+ * @param url the URL of the repository
+ * @param layout the layout of the repository
+ * @param uniqueVersion whether to assign each snapshot a unique version
+ */
+ public DefaultArtifactRepository( String id, String url, ArtifactRepositoryLayout layout, boolean uniqueVersion )
+ {
+ super( id, url );
+ this.layout = layout;
+ }
+
+ /**
+ * Create a remote download repository.
+ *
+ * @param id the unique identifier of the repository
+ * @param url the URL of the repository
+ * @param layout the layout of the repository
+ * @param snapshots the policies to use for snapshots
+ * @param releases the policies to use for releases
+ */
+ public DefaultArtifactRepository( String id, String url, ArtifactRepositoryLayout layout,
+ ArtifactRepositoryPolicy snapshots, ArtifactRepositoryPolicy releases )
+ {
+ super( id, url );
+
+ this.layout = layout;
+
+ if ( snapshots == null )
+ {
+ snapshots = new ArtifactRepositoryPolicy( true, ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS,
+ ArtifactRepositoryPolicy.CHECKSUM_POLICY_IGNORE );
+ }
+
+ this.snapshots = snapshots;
+
+ if ( releases == null )
+ {
+ releases = new ArtifactRepositoryPolicy( true, ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS,
+ ArtifactRepositoryPolicy.CHECKSUM_POLICY_IGNORE );
+ }
+
+ this.releases = releases;
+ }
+
+ public String pathOf( Artifact artifact )
+ {
+ return layout.pathOf( artifact );
+ }
+
+ public String pathOfRemoteRepositoryMetadata( ArtifactMetadata artifactMetadata )
+ {
+ return layout.pathOfRemoteRepositoryMetadata( artifactMetadata );
+ }
+
+ public String pathOfLocalRepositoryMetadata( ArtifactMetadata metadata, ArtifactRepository repository )
+ {
+ return layout.pathOfLocalRepositoryMetadata( metadata, repository );
+ }
+
+ public void setLayout( ArtifactRepositoryLayout layout )
+ {
+ this.layout = layout;
+ }
+
+ public ArtifactRepositoryLayout getLayout()
+ {
+ return layout;
+ }
+
+ public void setSnapshotUpdatePolicy( ArtifactRepositoryPolicy snapshots )
+ {
+ this.snapshots = snapshots;
+ }
+
+ public ArtifactRepositoryPolicy getSnapshots()
+ {
+ return snapshots;
+ }
+
+ public void setReleaseUpdatePolicy( ArtifactRepositoryPolicy releases )
+ {
+ this.releases = releases;
+ }
+
+ public ArtifactRepositoryPolicy getReleases()
+ {
+ return releases;
+ }
+
+ public String getKey()
+ {
+ return getId();
+ }
+
+ public boolean isBlacklisted()
+ {
+ return blacklisted;
+ }
+
+ public void setBlacklisted( boolean blacklisted )
+ {
+ this.blacklisted = blacklisted;
+ }
+
+ public String toString()
+ {
+ StringBuilder sb = new StringBuilder();
+
+ sb.append( " id: " ).append( getId() ).append( "\n" );
+ sb.append( " url: " ).append( getUrl() ).append( "\n" );
+ sb.append( " layout: " ).append( layout != null ? layout : "none" ).append( "\n" );
+
+ if ( snapshots != null )
+ {
+ sb.append( "snapshots: [enabled => " ).append( snapshots.isEnabled() );
+ sb.append( ", update => " ).append( snapshots.getUpdatePolicy() ).append( "]\n" );
+ }
+
+ if ( releases != null )
+ {
+ sb.append( " releases: [enabled => " ).append( releases.isEnabled() );
+ sb.append( ", update => " ).append( releases.getUpdatePolicy() ).append( "]\n" );
+ }
+
+ return sb.toString();
+ }
+
+ public Artifact find( Artifact artifact )
+ {
+ File artifactFile = new File( getBasedir(), pathOf( artifact ) );
+
+ // We need to set the file here or the resolver will fail with an NPE, not fully equipped to deal
+ // with multiple local repository implementations yet.
+ artifact.setFile( artifactFile );
+
+ if ( artifactFile.exists() )
+ {
+ artifact.setResolved( true );
+ }
+
+ return artifact;
+ }
+
+ public List findVersions( Artifact artifact )
+ {
+ return Collections.emptyList();
+ }
+
+ public boolean isProjectAware()
+ {
+ return false;
+ }
+
+ public Authentication getAuthentication()
+ {
+ return authentication;
+ }
+
+ public void setAuthentication( Authentication authentication )
+ {
+ this.authentication = authentication;
+ }
+
+ public Proxy getProxy()
+ {
+ return proxy;
+ }
+
+ public void setProxy( Proxy proxy )
+ {
+ this.proxy = proxy;
+ }
+
+ public boolean isUniqueVersion()
+ {
+ return true;
+ }
+
+ public List getMirroredRepositories()
+ {
+ return mirroredRepositories;
+ }
+
+ public void setMirroredRepositories( List mirroredRepositories )
+ {
+ if ( mirroredRepositories != null )
+ {
+ this.mirroredRepositories = mirroredRepositories;
+ }
+ else
+ {
+ this.mirroredRepositories = Collections.emptyList();
+ }
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepositoryFactory.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepositoryFactory.java
new file mode 100644
index 00000000..658dbdac
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepositoryFactory.java
@@ -0,0 +1,124 @@
+package org.apache.maven.artifact.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.Arrays;
+import java.util.List;
+
+import org.apache.maven.artifact.UnknownRepositoryLayoutException;
+import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
+import org.apache.maven.plugin.LegacySupport;
+import org.apache.maven.repository.RepositorySystem;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
+import org.eclipse.aether.RepositorySystemSession;
+
+/**
+ * @author jdcasey
+ */
+@Component( role = ArtifactRepositoryFactory.class )
+public class DefaultArtifactRepositoryFactory
+ implements ArtifactRepositoryFactory
+{
+
+ @Requirement
+ private org.apache.maven.repository.legacy.repository.ArtifactRepositoryFactory factory;
+
+ @Requirement
+ private LegacySupport legacySupport;
+
+ @Requirement
+ private RepositorySystem repositorySystem;
+
+ public ArtifactRepositoryLayout getLayout( String layoutId )
+ throws UnknownRepositoryLayoutException
+ {
+ return factory.getLayout( layoutId );
+ }
+
+ public ArtifactRepository createDeploymentArtifactRepository( String id, String url, String layoutId,
+ boolean uniqueVersion )
+ throws UnknownRepositoryLayoutException
+ {
+ return injectSession( factory.createDeploymentArtifactRepository( id, url, layoutId, uniqueVersion ), false );
+ }
+
+ public ArtifactRepository createDeploymentArtifactRepository( String id, String url,
+ ArtifactRepositoryLayout repositoryLayout,
+ boolean uniqueVersion )
+ {
+ return injectSession( factory.createDeploymentArtifactRepository( id, url, repositoryLayout, uniqueVersion ),
+ false );
+ }
+
+ public ArtifactRepository createArtifactRepository( String id, String url, String layoutId,
+ ArtifactRepositoryPolicy snapshots,
+ ArtifactRepositoryPolicy releases )
+ throws UnknownRepositoryLayoutException
+ {
+ return injectSession( factory.createArtifactRepository( id, url, layoutId, snapshots, releases ), true );
+ }
+
+ public ArtifactRepository createArtifactRepository( String id, String url,
+ ArtifactRepositoryLayout repositoryLayout,
+ ArtifactRepositoryPolicy snapshots,
+ ArtifactRepositoryPolicy releases )
+ {
+ return injectSession( factory.createArtifactRepository( id, url, repositoryLayout, snapshots, releases ), true );
+ }
+
+ public void setGlobalUpdatePolicy( String updatePolicy )
+ {
+ factory.setGlobalUpdatePolicy( updatePolicy );
+ }
+
+ public void setGlobalChecksumPolicy( String checksumPolicy )
+ {
+ factory.setGlobalChecksumPolicy( checksumPolicy );
+ }
+
+ private ArtifactRepository injectSession( ArtifactRepository repository, boolean mirrors )
+ {
+ RepositorySystemSession session = legacySupport.getRepositorySession();
+
+ if ( session != null && repository != null && !isLocalRepository( repository ) )
+ {
+ List repositories = Arrays.asList( repository );
+
+ if ( mirrors )
+ {
+ repositorySystem.injectMirror( session, repositories );
+ }
+
+ repositorySystem.injectProxy( session, repositories );
+
+ repositorySystem.injectAuthentication( session, repositories );
+ }
+
+ return repository;
+ }
+
+ private boolean isLocalRepository( ArtifactRepository repository )
+ {
+ // unfortunately, the API doesn't allow to tell a remote repo and the local repo apart...
+ return "local".equals( repository.getId() );
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/layout/FlatRepositoryLayout.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/layout/FlatRepositoryLayout.java
new file mode 100644
index 00000000..8553a312
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/layout/FlatRepositoryLayout.java
@@ -0,0 +1,92 @@
+package org.apache.maven.artifact.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.artifact.Artifact;
+import org.apache.maven.artifact.handler.ArtifactHandler;
+import org.apache.maven.artifact.metadata.ArtifactMetadata;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.codehaus.plexus.component.annotations.Component;
+
+/**
+ * The code in this class is taken from DefaultRepositorylayout, located at:
+ * http://svn.apache.org/viewvc/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/DefaultRepositoryLayout.java
+ *
+ */
+@Component( role = ArtifactRepositoryLayout.class, hint = "flat" )
+public class FlatRepositoryLayout
+ implements ArtifactRepositoryLayout
+{
+ private static final char ARTIFACT_SEPARATOR = '-';
+
+ private static final char GROUP_SEPARATOR = '.';
+
+ public String getId()
+ {
+ return "flat";
+ }
+
+ public String pathOf( Artifact artifact )
+ {
+ ArtifactHandler artifactHandler = artifact.getArtifactHandler();
+
+ StringBuilder path = new StringBuilder( 128 );
+
+ path.append( artifact.getArtifactId() ).append( ARTIFACT_SEPARATOR ).append( artifact.getVersion() );
+
+ if ( artifact.hasClassifier() )
+ {
+ path.append( ARTIFACT_SEPARATOR ).append( artifact.getClassifier() );
+ }
+
+ if ( artifactHandler.getExtension() != null && artifactHandler.getExtension().length() > 0 )
+ {
+ path.append( GROUP_SEPARATOR ).append( artifactHandler.getExtension() );
+ }
+
+ return path.toString();
+ }
+
+ public String pathOfLocalRepositoryMetadata( ArtifactMetadata metadata, ArtifactRepository repository )
+ {
+ return pathOfRepositoryMetadata( metadata.getLocalFilename( repository ) );
+ }
+
+ private String pathOfRepositoryMetadata( String filename )
+ {
+ StringBuilder path = new StringBuilder( 128 );
+
+ path.append( filename );
+
+ return path.toString();
+ }
+
+ public String pathOfRemoteRepositoryMetadata( ArtifactMetadata metadata )
+ {
+ return pathOfRepositoryMetadata( metadata.getRemoteFilename() );
+ }
+
+ @Override
+ public String toString()
+ {
+ return getId();
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java
new file mode 100644
index 00000000..e7937134
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java
@@ -0,0 +1,558 @@
+package org.apache.maven.artifact.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.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.Reader;
+import java.io.Writer;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.maven.artifact.metadata.ArtifactMetadata;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
+import org.apache.maven.artifact.repository.DefaultRepositoryRequest;
+import org.apache.maven.artifact.repository.RepositoryRequest;
+import org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader;
+import org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Writer;
+import org.apache.maven.repository.legacy.UpdateCheckManager;
+import org.apache.maven.repository.legacy.WagonManager;
+import org.apache.maven.wagon.ResourceDoesNotExistException;
+import org.apache.maven.wagon.TransferFailedException;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
+import org.codehaus.plexus.logging.AbstractLogEnabled;
+import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.ReaderFactory;
+import org.codehaus.plexus.util.WriterFactory;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+
+/**
+ * @author Jason van Zyl
+ */
+@Component( role = RepositoryMetadataManager.class )
+public class DefaultRepositoryMetadataManager
+ extends AbstractLogEnabled
+ implements RepositoryMetadataManager
+{
+ @Requirement
+ private WagonManager wagonManager;
+
+ @Requirement
+ private UpdateCheckManager updateCheckManager;
+
+ public void resolve( RepositoryMetadata metadata, List remoteRepositories,
+ ArtifactRepository localRepository )
+ throws RepositoryMetadataResolutionException
+ {
+ RepositoryRequest request = new DefaultRepositoryRequest();
+ request.setLocalRepository( localRepository );
+ request.setRemoteRepositories( remoteRepositories );
+ resolve( metadata, request );
+ }
+
+ public void resolve( RepositoryMetadata metadata, RepositoryRequest request )
+ throws RepositoryMetadataResolutionException
+ {
+ ArtifactRepository localRepo = request.getLocalRepository();
+ List remoteRepositories = request.getRemoteRepositories();
+
+ if ( !request.isOffline() )
+ {
+ Date localCopyLastModified = null;
+ if ( metadata.getBaseVersion() != null )
+ {
+ localCopyLastModified = getLocalCopyLastModified( localRepo, metadata );
+ }
+
+ for ( ArtifactRepository repository : remoteRepositories )
+ {
+ ArtifactRepositoryPolicy policy = metadata.getPolicy( repository );
+
+ File file =
+ new File( localRepo.getBasedir(), localRepo.pathOfLocalRepositoryMetadata( metadata, repository ) );
+ boolean update;
+
+ if ( !policy.isEnabled() )
+ {
+ update = false;
+
+ if ( getLogger().isDebugEnabled() )
+ {
+ getLogger().debug(
+ "Skipping update check for " + metadata.getKey() + " (" + file
+ + ") from disabled repository " + repository.getId() + " ("
+ + repository.getUrl() + ")" );
+ }
+ }
+ else if ( request.isForceUpdate() )
+ {
+ update = true;
+ }
+ else if ( localCopyLastModified != null && !policy.checkOutOfDate( localCopyLastModified ) )
+ {
+ update = false;
+
+ if ( getLogger().isDebugEnabled() )
+ {
+ getLogger().debug(
+ "Skipping update check for " + metadata.getKey() + " (" + file
+ + ") from repository " + repository.getId() + " (" + repository.getUrl()
+ + ") in favor of local copy" );
+ }
+ }
+ else
+ {
+ update = updateCheckManager.isUpdateRequired( metadata, repository, file );
+ }
+
+ if ( update )
+ {
+ getLogger().info( metadata.getKey() + ": checking for updates from " + repository.getId() );
+ try
+ {
+ wagonManager.getArtifactMetadata( metadata, repository, file, policy.getChecksumPolicy() );
+ }
+ catch ( ResourceDoesNotExistException e )
+ {
+ getLogger().debug( metadata + " could not be found on repository: " + repository.getId() );
+
+ // delete the local copy so the old details aren't used.
+ if ( file.exists() )
+ {
+ if ( !file.delete() )
+ {
+ // sleep for 10ms just in case this is windows holding a file lock
+ try
+ {
+ Thread.sleep( 10 );
+ }
+ catch ( InterruptedException ie )
+ {
+ // ignore
+ }
+ file.delete(); // if this fails, forget about it
+ }
+ }
+ }
+ catch ( TransferFailedException e )
+ {
+ getLogger().warn( metadata + " could not be retrieved from repository: " + repository.getId()
+ + " due to an error: " + e.getMessage() );
+ getLogger().debug( "Exception", e );
+ }
+ finally
+ {
+ updateCheckManager.touch( metadata, repository, file );
+ }
+ }
+
+ // TODO: should this be inside the above check?
+ // touch file so that this is not checked again until interval has passed
+ if ( file.exists() )
+ {
+ file.setLastModified( System.currentTimeMillis() );
+ }
+ }
+ }
+
+ try
+ {
+ mergeMetadata( metadata, remoteRepositories, localRepo );
+ }
+ catch ( RepositoryMetadataStoreException e )
+ {
+ throw new RepositoryMetadataResolutionException( "Unable to store local copy of metadata: "
+ + e.getMessage(), e );
+ }
+ }
+
+ private Date getLocalCopyLastModified( ArtifactRepository localRepository, RepositoryMetadata metadata )
+ {
+ String metadataPath = localRepository.pathOfLocalRepositoryMetadata( metadata, localRepository );
+ File metadataFile = new File( localRepository.getBasedir(), metadataPath );
+ return metadataFile.isFile() ? new Date( metadataFile.lastModified() ) : null;
+ }
+
+ private void mergeMetadata( RepositoryMetadata metadata, List remoteRepositories,
+ ArtifactRepository localRepository )
+ throws RepositoryMetadataStoreException
+ {
+ // TODO: currently this is first wins, but really we should take the latest by comparing either the
+ // snapshot timestamp, or some other timestamp later encoded into the metadata.
+ // TODO: this needs to be repeated here so the merging doesn't interfere with the written metadata
+ // - we'd be much better having a pristine input, and an ongoing metadata for merging instead
+
+ Map previousMetadata = new HashMap();
+ ArtifactRepository selected = null;
+ for ( ArtifactRepository repository : remoteRepositories )
+ {
+ ArtifactRepositoryPolicy policy = metadata.getPolicy( repository );
+
+ if ( policy.isEnabled() && loadMetadata( metadata, repository, localRepository, previousMetadata ) )
+ {
+ metadata.setRepository( repository );
+ selected = repository;
+ }
+ }
+ if ( loadMetadata( metadata, localRepository, localRepository, previousMetadata ) )
+ {
+ metadata.setRepository( null );
+ selected = localRepository;
+ }
+
+ updateSnapshotMetadata( metadata, previousMetadata, selected, localRepository );
+ }
+
+ private void updateSnapshotMetadata( RepositoryMetadata metadata,
+ Map previousMetadata,
+ ArtifactRepository selected, ArtifactRepository localRepository )
+ throws RepositoryMetadataStoreException
+ {
+ // TODO: this could be a lot nicer... should really be in the snapshot transformation?
+ if ( metadata.isSnapshot() )
+ {
+ Metadata prevMetadata = metadata.getMetadata();
+
+ for ( ArtifactRepository repository : previousMetadata.keySet() )
+ {
+ Metadata m = previousMetadata.get( repository );
+ if ( repository.equals( selected ) )
+ {
+ if ( m.getVersioning() == null )
+ {
+ m.setVersioning( new Versioning() );
+ }
+
+ if ( m.getVersioning().getSnapshot() == null )
+ {
+ m.getVersioning().setSnapshot( new Snapshot() );
+ }
+ }
+ else
+ {
+ if ( ( m.getVersioning() != null ) && ( m.getVersioning().getSnapshot() != null )
+ && m.getVersioning().getSnapshot().isLocalCopy() )
+ {
+ m.getVersioning().getSnapshot().setLocalCopy( false );
+ metadata.setMetadata( m );
+ metadata.storeInLocalRepository( localRepository, repository );
+ }
+ }
+ }
+
+ metadata.setMetadata( prevMetadata );
+ }
+ }
+
+ private boolean loadMetadata( RepositoryMetadata repoMetadata, ArtifactRepository remoteRepository,
+ ArtifactRepository localRepository, Map previousMetadata )
+ {
+ boolean setRepository = false;
+
+ File metadataFile =
+ new File( localRepository.getBasedir(), localRepository.pathOfLocalRepositoryMetadata( repoMetadata,
+ remoteRepository ) );
+
+ if ( metadataFile.exists() )
+ {
+ Metadata metadata;
+
+ try
+ {
+ metadata = readMetadata( metadataFile );
+ }
+ catch ( RepositoryMetadataReadException e )
+ {
+ if ( getLogger().isDebugEnabled() )
+ {
+ getLogger().warn( e.getMessage(), e );
+ }
+ else
+ {
+ getLogger().warn( e.getMessage() );
+ }
+ return setRepository;
+ }
+
+ if ( repoMetadata.isSnapshot() && ( previousMetadata != null ) )
+ {
+ previousMetadata.put( remoteRepository, metadata );
+ }
+
+ if ( repoMetadata.getMetadata() != null )
+ {
+ setRepository = repoMetadata.getMetadata().merge( metadata );
+ }
+ else
+ {
+ repoMetadata.setMetadata( metadata );
+ setRepository = true;
+ }
+ }
+ return setRepository;
+ }
+
+ /** @todo share with DefaultPluginMappingManager. */
+ protected Metadata readMetadata( File mappingFile )
+ throws RepositoryMetadataReadException
+ {
+ Metadata result;
+
+ Reader reader = null;
+ try
+ {
+ reader = ReaderFactory.newXmlReader( mappingFile );
+
+ MetadataXpp3Reader mappingReader = new MetadataXpp3Reader();
+
+ result = mappingReader.read( reader, false );
+ }
+ catch ( FileNotFoundException e )
+ {
+ throw new RepositoryMetadataReadException( "Cannot read metadata from '" + mappingFile + "'", e );
+ }
+ catch ( IOException e )
+ {
+ throw new RepositoryMetadataReadException( "Cannot read metadata from '" + mappingFile + "': "
+ + e.getMessage(), e );
+ }
+ catch ( XmlPullParserException e )
+ {
+ throw new RepositoryMetadataReadException( "Cannot read metadata from '" + mappingFile + "': "
+ + e.getMessage(), e );
+ }
+ finally
+ {
+ IOUtil.close( reader );
+ }
+
+ return result;
+ }
+
+ /**
+ * Ensures the last updated timestamp of the specified metadata does not refer to the future and fixes the local
+ * metadata if necessary to allow proper merging/updating of metadata during deployment.
+ */
+ private void fixTimestamp( File metadataFile, Metadata metadata, Metadata reference )
+ {
+ boolean changed = false;
+
+ if ( metadata != null && reference != null )
+ {
+ Versioning versioning = metadata.getVersioning();
+ Versioning versioningRef = reference.getVersioning();
+ if ( versioning != null && versioningRef != null )
+ {
+ String lastUpdated = versioning.getLastUpdated();
+ String now = versioningRef.getLastUpdated();
+ if ( lastUpdated != null && now != null && now.compareTo( lastUpdated ) < 0 )
+ {
+ getLogger().warn(
+ "The last updated timestamp in " + metadataFile + " refers to the future (now = "
+ + now + ", lastUpdated = " + lastUpdated
+ + "). Please verify that the clocks of all"
+ + " deploying machines are reasonably synchronized." );
+ versioning.setLastUpdated( now );
+ changed = true;
+ }
+ }
+ }
+
+ if ( changed )
+ {
+ getLogger().debug( "Repairing metadata in " + metadataFile );
+
+ Writer writer = null;
+ try
+ {
+ writer = WriterFactory.newXmlWriter( metadataFile );
+ new MetadataXpp3Writer().write( writer, metadata );
+ }
+ catch ( IOException e )
+ {
+ String msg = "Could not write fixed metadata to " + metadataFile + ": " + e.getMessage();
+ if ( getLogger().isDebugEnabled() )
+ {
+ getLogger().warn( msg, e );
+ }
+ else
+ {
+ getLogger().warn( msg );
+ }
+ }
+ finally
+ {
+ IOUtil.close( writer );
+ }
+ }
+ }
+
+ public void resolveAlways( RepositoryMetadata metadata, ArtifactRepository localRepository,
+ ArtifactRepository remoteRepository )
+ throws RepositoryMetadataResolutionException
+ {
+ File file;
+ try
+ {
+ file = getArtifactMetadataFromDeploymentRepository( metadata, localRepository, remoteRepository );
+ }
+ catch ( TransferFailedException e )
+ {
+ throw new RepositoryMetadataResolutionException( metadata + " could not be retrieved from repository: "
+ + remoteRepository.getId() + " due to an error: " + e.getMessage(), e );
+ }
+
+ try
+ {
+ if ( file.exists() )
+ {
+ Metadata prevMetadata = readMetadata( file );
+ metadata.setMetadata( prevMetadata );
+ }
+ }
+ catch ( RepositoryMetadataReadException e )
+ {
+ throw new RepositoryMetadataResolutionException( e.getMessage(), e );
+ }
+ }
+
+ private File getArtifactMetadataFromDeploymentRepository( ArtifactMetadata metadata,
+ ArtifactRepository localRepo,
+ ArtifactRepository remoteRepository )
+ throws TransferFailedException
+ {
+ File file =
+ new File( localRepo.getBasedir(), localRepo.pathOfLocalRepositoryMetadata( metadata, remoteRepository ) );
+
+ try
+ {
+ wagonManager.getArtifactMetadataFromDeploymentRepository( metadata, remoteRepository, file,
+ ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN );
+ }
+ catch ( ResourceDoesNotExistException e )
+ {
+ getLogger().info( metadata + " could not be found on repository: " + remoteRepository.getId()
+ + ", so will be created" );
+
+ // delete the local copy so the old details aren't used.
+ if ( file.exists() )
+ {
+ if ( !file.delete() )
+ {
+ // sleep for 10ms just in case this is windows holding a file lock
+ try
+ {
+ Thread.sleep( 10 );
+ }
+ catch ( InterruptedException ie )
+ {
+ // ignore
+ }
+ file.delete(); // if this fails, forget about it
+ }
+ }
+ }
+ finally
+ {
+ if ( metadata instanceof RepositoryMetadata )
+ {
+ updateCheckManager.touch( (RepositoryMetadata) metadata, remoteRepository, file );
+ }
+ }
+ return file;
+ }
+
+ public void deploy( ArtifactMetadata metadata, ArtifactRepository localRepository,
+ ArtifactRepository deploymentRepository )
+ throws RepositoryMetadataDeploymentException
+ {
+ File file;
+ if ( metadata instanceof RepositoryMetadata )
+ {
+ getLogger().info( "Retrieving previous metadata from " + deploymentRepository.getId() );
+ try
+ {
+ file = getArtifactMetadataFromDeploymentRepository( metadata, localRepository, deploymentRepository );
+ }
+ catch ( TransferFailedException e )
+ {
+ throw new RepositoryMetadataDeploymentException( metadata + " could not be retrieved from repository: "
+ + deploymentRepository.getId() + " due to an error: " + e.getMessage(), e );
+ }
+
+ if ( file.isFile() )
+ {
+ try
+ {
+ fixTimestamp( file, readMetadata( file ), ( (RepositoryMetadata) metadata ).getMetadata() );
+ }
+ catch ( RepositoryMetadataReadException e )
+ {
+ // will be reported via storeInlocalRepository
+ }
+ }
+ }
+ else
+ {
+ // It's a POM - we don't need to retrieve it first
+ file =
+ new File( localRepository.getBasedir(),
+ localRepository.pathOfLocalRepositoryMetadata( metadata, deploymentRepository ) );
+ }
+
+ try
+ {
+ metadata.storeInLocalRepository( localRepository, deploymentRepository );
+ }
+ catch ( RepositoryMetadataStoreException e )
+ {
+ throw new RepositoryMetadataDeploymentException( "Error installing metadata: " + e.getMessage(), e );
+ }
+
+ try
+ {
+ wagonManager.putArtifactMetadata( file, metadata, deploymentRepository );
+ }
+ catch ( TransferFailedException e )
+ {
+ throw new RepositoryMetadataDeploymentException( "Error while deploying metadata: " + e.getMessage(), e );
+ }
+ }
+
+ public void install( ArtifactMetadata metadata, ArtifactRepository localRepository )
+ throws RepositoryMetadataInstallationException
+ {
+ try
+ {
+ metadata.storeInLocalRepository( localRepository, localRepository );
+ }
+ catch ( RepositoryMetadataStoreException e )
+ {
+ throw new RepositoryMetadataInstallationException( "Error installing metadata: " + e.getMessage(), e );
+ }
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/GroupRepositoryMetadata.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/GroupRepositoryMetadata.java
new file mode 100644
index 00000000..490b47f3
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/GroupRepositoryMetadata.java
@@ -0,0 +1,119 @@
+package org.apache.maven.artifact.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.artifact.repository.ArtifactRepository;
+
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * Metadata for the group directory of the repository.
+ *
+ * @author Brett Porter
+ */
+public class GroupRepositoryMetadata
+ extends AbstractRepositoryMetadata
+{
+ private final String groupId;
+
+ public GroupRepositoryMetadata( String groupId )
+ {
+ super( new Metadata() );
+ this.groupId = groupId;
+ }
+
+ public boolean storedInGroupDirectory()
+ {
+ return true;
+ }
+
+ public boolean storedInArtifactVersionDirectory()
+ {
+ return false;
+ }
+
+ public String getGroupId()
+ {
+ return groupId;
+ }
+
+ public String getArtifactId()
+ {
+ return null;
+ }
+
+ public String getBaseVersion()
+ {
+ return null;
+ }
+
+ public void addPluginMapping( String goalPrefix,
+ String artifactId )
+ {
+ addPluginMapping( goalPrefix, artifactId, artifactId );
+ }
+
+ public void addPluginMapping( String goalPrefix,
+ String artifactId,
+ String name )
+ {
+ List plugins = getMetadata().getPlugins();
+ boolean found = false;
+ for ( Iterator i = plugins.iterator(); i.hasNext() && !found; )
+ {
+ Plugin plugin = (Plugin) i.next();
+ if ( plugin.getPrefix().equals( goalPrefix ) )
+ {
+ found = true;
+ }
+ }
+ if ( !found )
+ {
+ Plugin plugin = new Plugin();
+ plugin.setPrefix( goalPrefix );
+ plugin.setArtifactId( artifactId );
+ plugin.setName( name );
+
+
+ getMetadata().addPlugin( plugin );
+ }
+ }
+
+ public Object getKey()
+ {
+ return groupId;
+ }
+
+ public boolean isSnapshot()
+ {
+ return false;
+ }
+
+ public ArtifactRepository getRepository()
+ {
+ return null;
+ }
+
+ public void setRepository( ArtifactRepository remoteRepository )
+ {
+ // intentionally blank
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/MetadataBridge.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/MetadataBridge.java
new file mode 100644
index 00000000..bf199218
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/MetadataBridge.java
@@ -0,0 +1,172 @@
+package org.apache.maven.artifact.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.io.File;
+import java.util.Collections;
+import java.util.Map;
+
+import org.apache.maven.artifact.metadata.ArtifactMetadata;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.DefaultArtifactRepository;
+import org.codehaus.plexus.util.FileUtils;
+import org.eclipse.aether.RepositoryException;
+import org.eclipse.aether.metadata.AbstractMetadata;
+import org.eclipse.aether.metadata.MergeableMetadata;
+import org.eclipse.aether.metadata.Metadata;
+
+/**
+ * Warning: This is an internal utility class that is only public for technical reasons, it is not part
+ * of the public API. In particular, this class can be changed or deleted without prior notice.
+ *
+ * @author Benjamin Bentmann
+ */
+public final class MetadataBridge
+ extends AbstractMetadata
+ implements MergeableMetadata
+{
+
+ private ArtifactMetadata metadata;
+
+ private boolean merged;
+
+ public MetadataBridge( ArtifactMetadata metadata )
+ {
+ this.metadata = metadata;
+ }
+
+ public void merge( File current, File result )
+ throws RepositoryException
+ {
+ try
+ {
+ if ( current.exists() )
+ {
+ FileUtils.copyFile( current, result );
+ }
+ ArtifactRepository localRepo = new MetadataRepository( result );
+ metadata.storeInLocalRepository( localRepo, localRepo );
+ merged = true;
+ }
+ catch ( Exception e )
+ {
+ throw new RepositoryException( e.getMessage(), e );
+ }
+ }
+
+ public boolean isMerged()
+ {
+ return merged;
+ }
+
+ public String getGroupId()
+ {
+ return emptify( metadata.getGroupId() );
+ }
+
+ public String getArtifactId()
+ {
+ return metadata.storedInGroupDirectory() ? "" : emptify( metadata.getArtifactId() );
+ }
+
+ public String getVersion()
+ {
+ return metadata.storedInArtifactVersionDirectory() ? emptify( metadata.getBaseVersion() ) : "";
+ }
+
+ public String getType()
+ {
+ return metadata.getRemoteFilename();
+ }
+
+ private String emptify( String string )
+ {
+ return ( string != null ) ? string : "";
+ }
+
+ public File getFile()
+ {
+ return null;
+ }
+
+ public MetadataBridge setFile( File file )
+ {
+ return this;
+ }
+
+ public Nature getNature()
+ {
+ if ( metadata instanceof RepositoryMetadata )
+ {
+ switch ( ( (RepositoryMetadata) metadata ).getNature() )
+ {
+ case RepositoryMetadata.RELEASE_OR_SNAPSHOT:
+ return Nature.RELEASE_OR_SNAPSHOT;
+ case RepositoryMetadata.SNAPSHOT:
+ return Nature.SNAPSHOT;
+ default:
+ return Nature.RELEASE;
+ }
+ }
+ else
+ {
+ return Nature.RELEASE;
+ }
+ }
+
+ public Map getProperties()
+ {
+ return Collections.emptyMap();
+ }
+
+ @Override
+ public Metadata setProperties( Map properties )
+ {
+ return this;
+ }
+
+ @SuppressWarnings( "deprecation" )
+ static class MetadataRepository
+ extends DefaultArtifactRepository
+ {
+
+ private File metadataFile;
+
+ public MetadataRepository( File metadataFile )
+ {
+ super( "local", "", null );
+ this.metadataFile = metadataFile;
+ }
+
+ @Override
+ public String getBasedir()
+ {
+ return metadataFile.getParent();
+ }
+
+ @Override
+ public String pathOfLocalRepositoryMetadata( ArtifactMetadata metadata, ArtifactRepository repository )
+ {
+ return metadataFile.getName();
+ }
+
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/MetadataUtils.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/MetadataUtils.java
new file mode 100644
index 00000000..bdc4a795
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/MetadataUtils.java
@@ -0,0 +1,39 @@
+package org.apache.maven.artifact.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.
+ */
+
+/**
+ * Assists in handling repository metadata.
+ *
+ * @author Benjamin Bentmann
+ */
+class MetadataUtils
+{
+
+ public static Metadata cloneMetadata( Metadata src )
+ {
+ if ( src == null )
+ {
+ return null;
+ }
+ return src.clone();
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataReadException.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataReadException.java
new file mode 100644
index 00000000..23e59841
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataReadException.java
@@ -0,0 +1,40 @@
+package org.apache.maven.artifact.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.
+ */
+
+/**
+ * Problem storing the repository metadata in the local repository.
+ *
+ * @author Brett Porter
+ */
+public class RepositoryMetadataReadException
+ extends Exception
+{
+ public RepositoryMetadataReadException( String message )
+ {
+ super( message );
+ }
+
+ public RepositoryMetadataReadException( String message,
+ Exception e )
+ {
+ super( message, e );
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/SnapshotArtifactRepositoryMetadata.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/SnapshotArtifactRepositoryMetadata.java
new file mode 100644
index 00000000..359ab2ce
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/SnapshotArtifactRepositoryMetadata.java
@@ -0,0 +1,98 @@
+package org.apache.maven.artifact.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.artifact.Artifact;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+
+/**
+ * Metadata for the artifact version directory of the repository.
+ *
+ * @author Brett Porter
+ * @todo split instantiation (versioning, plugin mappings) from definition
+ */
+public class SnapshotArtifactRepositoryMetadata
+ extends AbstractRepositoryMetadata
+{
+ private Artifact artifact;
+
+ public SnapshotArtifactRepositoryMetadata( Artifact artifact )
+ {
+ super( createMetadata( artifact, null ) );
+ this.artifact = artifact;
+ }
+
+ public SnapshotArtifactRepositoryMetadata( Artifact artifact,
+ Snapshot snapshot )
+ {
+ super( createMetadata( artifact, createVersioning( snapshot ) ) );
+ this.artifact = artifact;
+ }
+
+ public boolean storedInGroupDirectory()
+ {
+ return false;
+ }
+
+ public boolean storedInArtifactVersionDirectory()
+ {
+ return true;
+ }
+
+ public String getGroupId()
+ {
+ return artifact.getGroupId();
+ }
+
+ public String getArtifactId()
+ {
+ return artifact.getArtifactId();
+ }
+
+ public String getBaseVersion()
+ {
+ return artifact.getBaseVersion();
+ }
+
+ public Object getKey()
+ {
+ return "snapshot " + artifact.getGroupId() + ":" + artifact.getArtifactId() + ":" + artifact.getBaseVersion();
+ }
+
+ public boolean isSnapshot()
+ {
+ return artifact.isSnapshot();
+ }
+
+ public int getNature()
+ {
+ return isSnapshot() ? SNAPSHOT : RELEASE;
+ }
+
+ public ArtifactRepository getRepository()
+ {
+ return artifact.getRepository();
+ }
+
+ public void setRepository( ArtifactRepository remoteRepository )
+ {
+ artifact.setRepository( remoteRepository );
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactCollector.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactCollector.java
new file mode 100644
index 00000000..5ef86022
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactCollector.java
@@ -0,0 +1,42 @@
+package org.apache.maven.artifact.resolver;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.Set;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
+
+@Deprecated
+public interface ArtifactCollector
+ extends org.apache.maven.repository.legacy.resolver.LegacyArtifactCollector
+{
+
+ @Deprecated
+ ArtifactResolutionResult collect( Set artifacts, Artifact originatingArtifact,
+ ArtifactRepository localRepository, List remoteRepositories,
+ ArtifactMetadataSource source, ArtifactFilter filter,
+ List listeners )
+ throws ArtifactResolutionException;
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolver.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolver.java
new file mode 100644
index 00000000..0ca940a1
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolver.java
@@ -0,0 +1,108 @@
+package org.apache.maven.artifact.resolver;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.Set;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
+import org.apache.maven.wagon.events.TransferListener;
+
+/**
+ * @author Jason van Zyl
+ */
+// Just hide the one method we want behind the RepositorySystem interface.
+public interface ArtifactResolver
+{
+
+ ArtifactResolutionResult resolve( ArtifactResolutionRequest request );
+
+ // The rest is deprecated
+
+ // USED BY MAVEN ASSEMBLY PLUGIN 2.2-beta-2
+ @Deprecated
+ String ROLE = ArtifactResolver.class.getName();
+
+ // USED BY SUREFIRE, DEPENDENCY PLUGIN
+ @Deprecated
+ ArtifactResolutionResult resolveTransitively( Set artifacts, Artifact originatingArtifact,
+ ArtifactRepository localRepository,
+ List remoteRepositories,
+ ArtifactMetadataSource source, ArtifactFilter filter )
+ throws ArtifactResolutionException, ArtifactNotFoundException;
+
+ // USED BY MAVEN ASSEMBLY PLUGIN
+ @Deprecated
+ ArtifactResolutionResult resolveTransitively( Set artifacts, Artifact originatingArtifact,
+ Map managedVersions, ArtifactRepository localRepository,
+ List remoteRepositories,
+ ArtifactMetadataSource source )
+ throws ArtifactResolutionException, ArtifactNotFoundException;
+
+ // USED BY MAVEN ASSEMBLY PLUGIN
+ @Deprecated
+ ArtifactResolutionResult resolveTransitively( Set artifacts, Artifact originatingArtifact,
+ Map managedVersions, ArtifactRepository localRepository,
+ List remoteRepositories,
+ ArtifactMetadataSource source, ArtifactFilter filter )
+ throws ArtifactResolutionException, ArtifactNotFoundException;
+
+ @Deprecated
+ ArtifactResolutionResult resolveTransitively( Set artifacts, Artifact originatingArtifact,
+ List remoteRepositories,
+ ArtifactRepository localRepository, ArtifactMetadataSource source )
+ throws ArtifactResolutionException, ArtifactNotFoundException;
+
+ @Deprecated
+ ArtifactResolutionResult resolveTransitively( Set artifacts, Artifact originatingArtifact,
+ Map managedVersions, ArtifactRepository localRepository,
+ List remoteRepositories,
+ ArtifactMetadataSource source, ArtifactFilter filter,
+ List listeners )
+ throws ArtifactResolutionException, ArtifactNotFoundException;
+
+ @Deprecated
+ ArtifactResolutionResult resolveTransitively( Set artifacts, Artifact originatingArtifact,
+ List remoteRepositories,
+ ArtifactRepository localRepository, ArtifactMetadataSource source,
+ List listeners )
+ throws ArtifactResolutionException, ArtifactNotFoundException;
+
+ // USED BY REMOTE RESOURCES PLUGIN, DEPENDENCY PLUGIN
+ @Deprecated
+ void resolve( Artifact artifact, List remoteRepositories, ArtifactRepository localRepository )
+ throws ArtifactResolutionException, ArtifactNotFoundException;
+
+ // USED BY REMOTE RESOURCES PLUGIN
+ @Deprecated
+ void resolve( Artifact artifact, List remoteRepositories, ArtifactRepository localRepository,
+ TransferListener downloadMonitor )
+ throws ArtifactResolutionException, ArtifactNotFoundException;
+
+ // USED BY DEPENDENCY PLUGIN, ARCHETYPE DOWNLOADER
+ @Deprecated
+ void resolveAlways( Artifact artifact, List remoteRepositories,
+ ArtifactRepository localRepository )
+ throws ArtifactResolutionException, ArtifactNotFoundException;
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DebugResolutionListener.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DebugResolutionListener.java
new file mode 100644
index 00000000..b066e4c0
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DebugResolutionListener.java
@@ -0,0 +1,167 @@
+package org.apache.maven.artifact.resolver;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.Set;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.versioning.VersionRange;
+import org.codehaus.plexus.logging.Logger;
+
+/**
+ * Send resolution events to the debug log.
+ *
+ * @author Brett Porter
+ */
+public class DebugResolutionListener
+ implements ResolutionListener, ResolutionListenerForDepMgmt
+{
+ private Logger logger;
+
+ private String indent = "";
+
+ private static Set ignoredArtifacts = new HashSet();
+
+ public DebugResolutionListener( Logger logger )
+ {
+ this.logger = logger;
+ }
+
+ public void testArtifact( Artifact node )
+ {
+ }
+
+ public void startProcessChildren( Artifact artifact )
+ {
+ indent += " ";
+ }
+
+ public void endProcessChildren( Artifact artifact )
+ {
+ indent = indent.substring( 2 );
+ }
+
+ public void includeArtifact( Artifact artifact )
+ {
+ logger.debug( indent + artifact + " (selected for " + artifact.getScope() + ")" );
+ }
+
+ public void omitForNearer( Artifact omitted, Artifact kept )
+ {
+ String omittedVersion = omitted.getVersion();
+ String keptVersion = kept.getVersion();
+
+ if ( omittedVersion != null ? !omittedVersion.equals( keptVersion ) : keptVersion != null )
+ {
+ logger.debug( indent + omitted + " (removed - nearer found: " + kept.getVersion() + ")" );
+ }
+ }
+
+ public void omitForCycle( Artifact omitted )
+ {
+ logger.debug( indent + omitted + " (removed - causes a cycle in the graph)" );
+ }
+
+ public void updateScopeCurrentPom( Artifact artifact, String ignoredScope )
+ {
+ logger.debug( indent + artifact + " (not setting artifactScope to: " + ignoredScope + "; local artifactScope "
+ + artifact.getScope() + " wins)" );
+
+ // TODO: better way than static? this might hide messages in a reactor
+ if ( !ignoredArtifacts.contains( artifact ) )
+ {
+ logger.warn( "\n\tArtifact " + artifact + " retains local artifactScope '" + artifact.getScope()
+ + "' overriding broader artifactScope '" + ignoredScope + "'\n"
+ + "\tgiven by a dependency. If this is not intended, modify or remove the local artifactScope.\n" );
+ ignoredArtifacts.add( artifact );
+ }
+ }
+
+ public void updateScope( Artifact artifact, String scope )
+ {
+ logger.debug( indent + artifact + " (setting artifactScope to: " + scope + ")" );
+ }
+
+ public void selectVersionFromRange( Artifact artifact )
+ {
+ logger.debug( indent + artifact + " (setting version to: " + artifact.getVersion() + " from range: "
+ + artifact.getVersionRange() + ")" );
+ }
+
+ public void restrictRange( Artifact artifact, Artifact replacement, VersionRange newRange )
+ {
+ logger.debug( indent + artifact + " (range restricted from: " + artifact.getVersionRange() + " and: "
+ + replacement.getVersionRange() + " to: " + newRange + " )" );
+ }
+
+ /**
+ * The logic used here used to be a copy of the logic used in the DefaultArtifactCollector, and this method was
+ * called right before the actual version/artifactScope changes were done. However, a different set of conditionals (and
+ * more information) is needed to be able to determine when and if the version and/or artifactScope changes. See the two
+ * added methods, manageArtifactVersion and manageArtifactScope.
+ */
+ public void manageArtifact( Artifact artifact, Artifact replacement )
+ {
+ String msg = indent + artifact;
+ msg += " (";
+ if ( replacement.getVersion() != null )
+ {
+ msg += "applying version: " + replacement.getVersion() + ";";
+ }
+ if ( replacement.getScope() != null )
+ {
+ msg += "applying artifactScope: " + replacement.getScope();
+ }
+ msg += ")";
+ logger.debug( msg );
+ }
+
+ public void manageArtifactVersion( Artifact artifact, Artifact replacement )
+ {
+ // only show msg if a change is actually taking place
+ if ( !replacement.getVersion().equals( artifact.getVersion() ) )
+ {
+ String msg = indent + artifact + " (applying version: " + replacement.getVersion() + ")";
+ logger.debug( msg );
+ }
+ }
+
+ public void manageArtifactScope( Artifact artifact, Artifact replacement )
+ {
+ // only show msg if a change is actually taking place
+ if ( !replacement.getScope().equals( artifact.getScope() ) )
+ {
+ String msg = indent + artifact + " (applying artifactScope: " + replacement.getScope() + ")";
+ logger.debug( msg );
+ }
+ }
+
+ public void manageArtifactSystemPath( Artifact artifact, Artifact replacement )
+ {
+ // only show msg if a change is actually taking place
+ if ( !replacement.getScope().equals( artifact.getScope() ) )
+ {
+ String msg = indent + artifact + " (applying system path: " + replacement.getFile() + ")";
+ logger.debug( msg );
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
new file mode 100644
index 00000000..cefb9e28
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java
@@ -0,0 +1,30 @@
+package org.apache.maven.artifact.resolver;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR 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.component.annotations.Component;
+
+@Deprecated
+@Component( role = ArtifactCollector.class )
+public class DefaultArtifactCollector
+ extends org.apache.maven.repository.legacy.resolver.DefaultLegacyArtifactCollector
+ implements ArtifactCollector
+{
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
new file mode 100644
index 00000000..1631a013
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
@@ -0,0 +1,643 @@
+package org.apache.maven.artifact.resolver;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.Executor;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.ThreadFactory;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.regex.Matcher;
+
+import org.apache.maven.RepositoryUtils;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException;
+import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
+import org.apache.maven.artifact.metadata.ResolutionGroup;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.LegacyLocalRepositoryManager;
+import org.apache.maven.artifact.repository.RepositoryRequest;
+import org.apache.maven.artifact.repository.metadata.Snapshot;
+import org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadata;
+import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
+import org.apache.maven.execution.MavenSession;
+import org.apache.maven.plugin.LegacySupport;
+import org.apache.maven.repository.legacy.metadata.DefaultMetadataResolutionRequest;
+import org.apache.maven.repository.legacy.metadata.MetadataResolutionRequest;
+import org.apache.maven.repository.legacy.resolver.conflict.ConflictResolver;
+import org.apache.maven.wagon.events.TransferListener;
+import org.codehaus.plexus.PlexusContainer;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
+import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+import org.codehaus.plexus.logging.Logger;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.Disposable;
+import org.eclipse.aether.RepositorySystem;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.repository.LocalRepositoryManager;
+import org.eclipse.aether.resolution.ArtifactRequest;
+import org.eclipse.aether.resolution.ArtifactResult;
+
+/**
+ * @author Jason van Zyl
+ */
+@Component( role = ArtifactResolver.class )
+public class DefaultArtifactResolver
+ implements ArtifactResolver, Disposable
+{
+ @Requirement
+ private Logger logger;
+
+ @Requirement
+ protected ArtifactFactory artifactFactory;
+
+ @Requirement
+ private ArtifactCollector artifactCollector;
+
+ @Requirement
+ private ResolutionErrorHandler resolutionErrorHandler;
+
+ @Requirement
+ private ArtifactMetadataSource source;
+
+ @Requirement
+ private PlexusContainer container;
+
+ @Requirement
+ private LegacySupport legacySupport;
+
+ @Requirement
+ private RepositorySystem repoSystem;
+
+ private final Executor executor;
+
+ public DefaultArtifactResolver()
+ {
+ int threads = Integer.getInteger( "maven.artifact.threads", 5 );
+ if ( threads <= 1 )
+ {
+ executor = new Executor()
+ {
+ public void execute( Runnable command )
+ {
+ command.run();
+ }
+ };
+ }
+ else
+ {
+ executor =
+ new ThreadPoolExecutor( threads, threads, 3, TimeUnit.SECONDS, new LinkedBlockingQueue(),
+ new DaemonThreadCreator() );
+ }
+ }
+
+ private RepositorySystemSession getSession( ArtifactRepository localRepository )
+ {
+ return LegacyLocalRepositoryManager.overlay( localRepository, legacySupport.getRepositorySession(), repoSystem );
+ }
+
+ private void injectSession1( RepositoryRequest request, MavenSession session )
+ {
+ if ( session != null )
+ {
+ request.setOffline( session.isOffline() );
+ request.setForceUpdate( session.getRequest().isUpdateSnapshots() );
+ }
+ }
+
+ private void injectSession2( ArtifactResolutionRequest request, MavenSession session )
+ {
+ injectSession1( request, session );
+
+ if ( session != null )
+ {
+ request.setServers( session.getRequest().getServers() );
+ request.setMirrors( session.getRequest().getMirrors() );
+ request.setProxies( session.getRequest().getProxies() );
+ }
+ }
+
+ public void resolve( Artifact artifact, List remoteRepositories,
+ ArtifactRepository localRepository, TransferListener resolutionListener )
+ throws ArtifactResolutionException, ArtifactNotFoundException
+ {
+ resolve( artifact, remoteRepositories, getSession( localRepository ) );
+ }
+
+ public void resolveAlways( Artifact artifact, List remoteRepositories,
+ ArtifactRepository localRepository )
+ throws ArtifactResolutionException, ArtifactNotFoundException
+ {
+ resolve( artifact, remoteRepositories, getSession( localRepository ) );
+ }
+
+ private void resolve( Artifact artifact, List remoteRepositories,
+ RepositorySystemSession session )
+ throws ArtifactResolutionException, ArtifactNotFoundException
+ {
+ if ( artifact == null )
+ {
+ return;
+ }
+
+ if ( Artifact.SCOPE_SYSTEM.equals( artifact.getScope() ) )
+ {
+ File systemFile = artifact.getFile();
+
+ if ( systemFile == null )
+ {
+ throw new ArtifactNotFoundException( "System artifact: " + artifact + " has no file attached", artifact );
+ }
+
+ if ( !systemFile.exists() )
+ {
+ throw new ArtifactNotFoundException( "System artifact: " + artifact + " not found in path: " + systemFile, artifact );
+ }
+
+ if ( !systemFile.isFile() )
+ {
+ throw new ArtifactNotFoundException( "System artifact: " + artifact + " is not a file: " + systemFile, artifact );
+ }
+
+ artifact.setResolved( true );
+
+ return;
+ }
+
+ if ( !artifact.isResolved() )
+ {
+ ArtifactResult result;
+
+ try
+ {
+ ArtifactRequest artifactRequest = new ArtifactRequest();
+ artifactRequest.setArtifact( RepositoryUtils.toArtifact( artifact ) );
+ artifactRequest.setRepositories( RepositoryUtils.toRepos( remoteRepositories ) );
+
+ // Maven 2.x quirk: an artifact always points at the local repo, regardless whether resolved or not
+ LocalRepositoryManager lrm = session.getLocalRepositoryManager();
+ String path = lrm.getPathForLocalArtifact( artifactRequest.getArtifact() );
+ artifact.setFile( new File( lrm.getRepository().getBasedir(), path ) );
+
+ result = repoSystem.resolveArtifact( session, artifactRequest );
+ }
+ catch ( org.eclipse.aether.resolution.ArtifactResolutionException e )
+ {
+ if ( e.getCause() instanceof org.eclipse.aether.transfer.ArtifactNotFoundException )
+ {
+ throw new ArtifactNotFoundException( e.getMessage(), artifact, remoteRepositories, e );
+ }
+ else
+ {
+ throw new ArtifactResolutionException( e.getMessage(), artifact, remoteRepositories, e );
+ }
+ }
+
+ artifact.selectVersion( result.getArtifact().getVersion() );
+ artifact.setFile( result.getArtifact().getFile() );
+ artifact.setResolved( true );
+
+ if ( artifact.isSnapshot() )
+ {
+ Matcher matcher = Artifact.VERSION_FILE_PATTERN.matcher( artifact.getVersion() );
+ if ( matcher.matches() )
+ {
+ Snapshot snapshot = new Snapshot();
+ snapshot.setTimestamp( matcher.group( 2 ) );
+ try
+ {
+ snapshot.setBuildNumber( Integer.parseInt( matcher.group( 3 ) ) );
+ artifact.addMetadata( new SnapshotArtifactRepositoryMetadata( artifact, snapshot ) );
+ }
+ catch ( NumberFormatException e )
+ {
+ logger.warn( "Invalid artifact version " + artifact.getVersion() + ": " + e.getMessage() );
+ }
+ }
+ }
+ }
+ }
+
+ public ArtifactResolutionResult resolveTransitively( Set artifacts, Artifact originatingArtifact,
+ ArtifactRepository localRepository,
+ List remoteRepositories,
+ ArtifactMetadataSource source, ArtifactFilter filter )
+ throws ArtifactResolutionException, ArtifactNotFoundException
+ {
+ return resolveTransitively( artifacts, originatingArtifact, Collections.EMPTY_MAP, localRepository,
+ remoteRepositories, source, filter );
+
+ }
+
+ public ArtifactResolutionResult resolveTransitively( Set artifacts, Artifact originatingArtifact,
+ Map managedVersions, ArtifactRepository localRepository,
+ List remoteRepositories,
+ ArtifactMetadataSource source )
+ throws ArtifactResolutionException, ArtifactNotFoundException
+ {
+ return resolveTransitively( artifacts, originatingArtifact, managedVersions, localRepository,
+ remoteRepositories, source, null );
+ }
+
+ public ArtifactResolutionResult resolveTransitively( Set artifacts, Artifact originatingArtifact,
+ Map managedVersions, ArtifactRepository localRepository,
+ List remoteRepositories,
+ ArtifactMetadataSource source, ArtifactFilter filter )
+ throws ArtifactResolutionException, ArtifactNotFoundException
+ {
+ return resolveTransitively( artifacts, originatingArtifact, managedVersions, localRepository,
+ remoteRepositories, source, filter, null );
+ }
+
+ public ArtifactResolutionResult resolveTransitively( Set artifacts, Artifact originatingArtifact,
+ List remoteRepositories,
+ ArtifactRepository localRepository,
+ ArtifactMetadataSource source )
+ throws ArtifactResolutionException, ArtifactNotFoundException
+ {
+ return resolveTransitively( artifacts, originatingArtifact, localRepository, remoteRepositories, source, null );
+ }
+
+ public ArtifactResolutionResult resolveTransitively( Set artifacts, Artifact originatingArtifact,
+ List remoteRepositories,
+ ArtifactRepository localRepository,
+ ArtifactMetadataSource source,
+ List listeners )
+ throws ArtifactResolutionException, ArtifactNotFoundException
+ {
+ return resolveTransitively( artifacts, originatingArtifact, Collections.EMPTY_MAP, localRepository,
+ remoteRepositories, source, null, listeners );
+ }
+
+ public ArtifactResolutionResult resolveTransitively( Set artifacts, Artifact originatingArtifact,
+ Map managedVersions, ArtifactRepository localRepository,
+ List remoteRepositories,
+ ArtifactMetadataSource source, ArtifactFilter filter,
+ List listeners )
+ throws ArtifactResolutionException, ArtifactNotFoundException
+ {
+ return resolveTransitively( artifacts, originatingArtifact, managedVersions, localRepository,
+ remoteRepositories, source, filter, listeners, null );
+ }
+
+ public ArtifactResolutionResult resolveTransitively( Set artifacts, Artifact originatingArtifact,
+ Map managedVersions, ArtifactRepository localRepository,
+ List remoteRepositories,
+ ArtifactMetadataSource source, ArtifactFilter filter,
+ List listeners,
+ List conflictResolvers )
+ throws ArtifactResolutionException, ArtifactNotFoundException
+ {
+ ArtifactResolutionRequest request = new ArtifactResolutionRequest()
+ .setArtifact( originatingArtifact )
+ .setResolveRoot( false )
+ // This is required by the surefire plugin
+ .setArtifactDependencies( artifacts )
+ .setManagedVersionMap( managedVersions )
+ .setLocalRepository( localRepository )
+ .setRemoteRepositories( remoteRepositories )
+ .setCollectionFilter( filter )
+ .setListeners( listeners );
+
+ injectSession2( request, legacySupport.getSession() );
+
+ return resolveWithExceptions( request );
+ }
+
+ public ArtifactResolutionResult resolveWithExceptions( ArtifactResolutionRequest request )
+ throws ArtifactResolutionException, ArtifactNotFoundException
+ {
+ ArtifactResolutionResult result = resolve( request );
+
+ // We have collected all the problems so let's mimic the way the old code worked and just blow up right here.
+ // That's right lets just let it rip right here and send a big incomprehensible blob of text at unsuspecting
+ // users. Bad dog!
+
+ resolutionErrorHandler.throwErrors( request, result );
+
+ return result;
+ }
+
+ // ------------------------------------------------------------------------
+ //
+ // ------------------------------------------------------------------------
+
+ public ArtifactResolutionResult resolve( ArtifactResolutionRequest request )
+ {
+ Artifact rootArtifact = request.getArtifact();
+ Set artifacts = request.getArtifactDependencies();
+ Map managedVersions = request.getManagedVersionMap();
+ List listeners = request.getListeners();
+ ArtifactFilter collectionFilter = request.getCollectionFilter();
+ ArtifactFilter resolutionFilter = request.getResolutionFilter();
+ RepositorySystemSession session = getSession( request.getLocalRepository() );
+
+ //TODO: hack because metadata isn't generated in m2e correctly and i want to run the maven i have in the workspace
+ if ( source == null )
+ {
+ try
+ {
+ source = container.lookup( ArtifactMetadataSource.class );
+ }
+ catch ( ComponentLookupException e )
+ {
+ // won't happen
+ }
+ }
+
+ if ( listeners == null )
+ {
+ listeners = new ArrayList();
+
+ if ( logger.isDebugEnabled() )
+ {
+ listeners.add( new DebugResolutionListener( logger ) );
+ }
+
+ listeners.add( new WarningResolutionListener( logger ) );
+ }
+
+ ArtifactResolutionResult result = new ArtifactResolutionResult();
+
+ // The root artifact may, or may not be resolved so we need to check before we attempt to resolve.
+ // This is often an artifact like a POM that is taken from disk and we already have hold of the
+ // file reference. But this may be a Maven Plugin that we need to resolve from a remote repository
+ // as well as its dependencies.
+
+ if ( request.isResolveRoot() /* && rootArtifact.getFile() == null */ )
+ {
+ try
+ {
+ resolve( rootArtifact, request.getRemoteRepositories(), session );
+ }
+ catch ( ArtifactResolutionException e )
+ {
+ result.addErrorArtifactException( e );
+ return result;
+ }
+ catch ( ArtifactNotFoundException e )
+ {
+ result.addMissingArtifact( request.getArtifact() );
+ return result;
+ }
+ }
+
+ ArtifactResolutionRequest collectionRequest = request;
+
+ if ( request.isResolveTransitively() )
+ {
+ MetadataResolutionRequest metadataRequest = new DefaultMetadataResolutionRequest( request );
+
+ metadataRequest.setArtifact( rootArtifact );
+ metadataRequest.setResolveManagedVersions( managedVersions == null );
+
+ try
+ {
+ ResolutionGroup resolutionGroup = source.retrieve( metadataRequest );
+
+ if ( managedVersions == null )
+ {
+ managedVersions = resolutionGroup.getManagedVersions();
+ }
+
+ Set directArtifacts = resolutionGroup.getArtifacts();
+
+ if ( artifacts == null || artifacts.isEmpty() )
+ {
+ artifacts = directArtifacts;
+ }
+ else
+ {
+ List allArtifacts = new ArrayList();
+ allArtifacts.addAll( artifacts );
+ allArtifacts.addAll( directArtifacts );
+
+ Map mergedArtifacts = new LinkedHashMap();
+ for ( Artifact artifact : allArtifacts )
+ {
+ String conflictId = artifact.getDependencyConflictId();
+ if ( !mergedArtifacts.containsKey( conflictId ) )
+ {
+ mergedArtifacts.put( conflictId, artifact );
+ }
+ }
+
+ artifacts = new LinkedHashSet( mergedArtifacts.values() );
+ }
+
+ collectionRequest = new ArtifactResolutionRequest( request );
+ collectionRequest.setServers( request.getServers() );
+ collectionRequest.setMirrors( request.getMirrors() );
+ collectionRequest.setProxies( request.getProxies() );
+ collectionRequest.setRemoteRepositories( resolutionGroup.getResolutionRepositories() );
+ }
+ catch ( ArtifactMetadataRetrievalException e )
+ {
+ ArtifactResolutionException are =
+ new ArtifactResolutionException( "Unable to get dependency information for " + rootArtifact.getId()
+ + ": " + e.getMessage(), rootArtifact, metadataRequest.getRemoteRepositories(), e );
+ result.addMetadataResolutionException( are );
+ return result;
+ }
+ }
+
+ if ( artifacts == null || artifacts.isEmpty() )
+ {
+ if ( request.isResolveRoot() )
+ {
+ result.addArtifact( rootArtifact );
+ }
+ return result;
+ }
+
+ // After the collection we will have the artifact object in the result but they will not be resolved yet.
+ result =
+ artifactCollector.collect( artifacts, rootArtifact, managedVersions, collectionRequest, source,
+ collectionFilter, listeners, null );
+
+ // We have metadata retrieval problems, or there are cycles that have been detected
+ // so we give this back to the calling code and let them deal with this information
+ // appropriately.
+
+ if ( result.hasMetadataResolutionExceptions() || result.hasVersionRangeViolations() || result.hasCircularDependencyExceptions() )
+ {
+ return result;
+ }
+
+ if ( result.getArtifactResolutionNodes() != null )
+ {
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+
+ CountDownLatch latch = new CountDownLatch( result.getArtifactResolutionNodes().size() );
+
+ for ( ResolutionNode node : result.getArtifactResolutionNodes() )
+ {
+ Artifact artifact = node.getArtifact();
+
+ if ( resolutionFilter == null || resolutionFilter.include( artifact ) )
+ {
+ executor.execute( new ResolveTask( classLoader, latch, artifact, session,
+ node.getRemoteRepositories(), result ) );
+ }
+ else
+ {
+ latch.countDown();
+ }
+ }
+ try
+ {
+ latch.await();
+ }
+ catch ( InterruptedException e )
+ {
+ result.addErrorArtifactException( new ArtifactResolutionException( "Resolution interrupted",
+ rootArtifact, e ) );
+ }
+ }
+
+ // We want to send the root artifact back in the result but we need to do this after the other dependencies
+ // have been resolved.
+ if ( request.isResolveRoot() )
+ {
+ // Add the root artifact (as the first artifact to retain logical order of class path!)
+ Set allArtifacts = new LinkedHashSet();
+ allArtifacts.add( rootArtifact );
+ allArtifacts.addAll( result.getArtifacts() );
+ result.setArtifacts( allArtifacts );
+ }
+
+ return result;
+ }
+
+ public void resolve( Artifact artifact, List remoteRepositories, ArtifactRepository localRepository )
+ throws ArtifactResolutionException, ArtifactNotFoundException
+ {
+ resolve( artifact, remoteRepositories, localRepository, null );
+ }
+
+ /**
+ * ThreadCreator for creating daemon threads with fixed ThreadGroup-name.
+ */
+ static final class DaemonThreadCreator
+ implements ThreadFactory
+ {
+ static final String THREADGROUP_NAME = "org.apache.maven.artifact.resolver.DefaultArtifactResolver";
+
+ static final ThreadGroup GROUP = new ThreadGroup( THREADGROUP_NAME );
+
+ static final AtomicInteger THREAD_NUMBER = new AtomicInteger( 1 );
+
+ public Thread newThread( Runnable r )
+ {
+ Thread newThread = new Thread( GROUP, r, "resolver-" + THREAD_NUMBER.getAndIncrement() );
+ newThread.setDaemon( true );
+ newThread.setContextClassLoader( null );
+ return newThread;
+ }
+ }
+
+ private class ResolveTask
+ implements Runnable
+ {
+
+ private final ClassLoader classLoader;
+
+ private final CountDownLatch latch;
+
+ private final Artifact artifact;
+
+ private final RepositorySystemSession session;
+
+ private final List remoteRepositories;
+
+ private final ArtifactResolutionResult result;
+
+ public ResolveTask( ClassLoader classLoader, CountDownLatch latch, Artifact artifact, RepositorySystemSession session,
+ List remoteRepositories, ArtifactResolutionResult result )
+ {
+ this.classLoader = classLoader;
+ this.latch = latch;
+ this.artifact = artifact;
+ this.session = session;
+ this.remoteRepositories = remoteRepositories;
+ this.result = result;
+ }
+
+ public void run()
+ {
+ ClassLoader old = Thread.currentThread().getContextClassLoader();
+ try
+ {
+ Thread.currentThread().setContextClassLoader( classLoader );
+ resolve( artifact, remoteRepositories, session );
+ }
+ catch ( ArtifactNotFoundException anfe )
+ {
+ // These are cases where the artifact just isn't present in any of the remote repositories
+ // because it wasn't deployed, or it was deployed in the wrong place.
+
+ synchronized ( result )
+ {
+ result.addMissingArtifact( artifact );
+ }
+ }
+ catch ( ArtifactResolutionException e )
+ {
+ // This is really a wagon TransferFailedException so something went wrong after we successfully
+ // retrieved the metadata.
+
+ synchronized ( result )
+ {
+ result.addErrorArtifactException( e );
+ }
+ }
+ finally
+ {
+ latch.countDown();
+ Thread.currentThread().setContextClassLoader( old );
+
+ }
+ }
+
+ }
+
+ @Override
+ public void dispose()
+ {
+ if ( executor instanceof ExecutorService )
+ {
+ ( (ExecutorService) executor ).shutdownNow();
+ }
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ResolutionListenerForDepMgmt.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ResolutionListenerForDepMgmt.java
new file mode 100644
index 00000000..06da7e3e
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ResolutionListenerForDepMgmt.java
@@ -0,0 +1,43 @@
+package org.apache.maven.artifact.resolver;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 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;
+
+/**
+ * Do not use!
+ *
+ * Should only be implmemented by DebugResolutionListener. Remove this
+ * when the ResolutionListener interface deprecation of the manageArtifact
+ * method (and the [yet to be done] addition of these methods to that
+ * interface) has had a chance to propagate to all interested plugins.
+ */
+@Deprecated
+public interface ResolutionListenerForDepMgmt
+{
+ void manageArtifactVersion( Artifact artifact,
+ Artifact replacement );
+
+ void manageArtifactScope( Artifact artifact,
+ Artifact replacement );
+
+ void manageArtifactSystemPath( Artifact artifact,
+ Artifact replacement );
+}
\ No newline at end of file
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/UnresolvedArtifacts.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/UnresolvedArtifacts.java
new file mode 100644
index 00000000..b9ccf706
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/UnresolvedArtifacts.java
@@ -0,0 +1,66 @@
+package org.apache.maven.artifact.resolver;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.artifact.Artifact;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+
+/**
+ * A simple recording of the Artifacts that could not be resolved for a given resolution request, along with
+ * the remote repositories where attempts were made to resolve the artifacts.
+ *
+ * @author Jason van Zyl
+ */
+public class UnresolvedArtifacts
+{
+ private Artifact originatingArtifact;
+
+ private List artifacts;
+
+ private List remoteRepositories;
+
+ public UnresolvedArtifacts( Artifact originatingArtifact,
+ List artifacts,
+ List remoteRepositories )
+ {
+ this.originatingArtifact = originatingArtifact;
+
+ this.artifacts = artifacts;
+
+ this.remoteRepositories = remoteRepositories;
+ }
+
+ public Artifact getOriginatingArtifact()
+ {
+ return originatingArtifact;
+ }
+
+ public List getArtifacts()
+ {
+ return artifacts;
+ }
+
+ public List getRemoteRepositories()
+ {
+ return remoteRepositories;
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/WarningResolutionListener.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/WarningResolutionListener.java
new file mode 100644
index 00000000..825d595a
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/WarningResolutionListener.java
@@ -0,0 +1,90 @@
+package org.apache.maven.artifact.resolver;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 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.versioning.VersionRange;
+import org.codehaus.plexus.logging.Logger;
+
+/**
+ * Send resolution warning events to the warning log.
+ *
+ * @author Brett Porter
+ */
+public class WarningResolutionListener
+ implements ResolutionListener
+{
+ private Logger logger;
+
+ public WarningResolutionListener( Logger logger )
+ {
+ this.logger = logger;
+ }
+
+ public void testArtifact( Artifact node )
+ {
+ }
+
+ public void startProcessChildren( Artifact artifact )
+ {
+ }
+
+ public void endProcessChildren( Artifact artifact )
+ {
+ }
+
+ public void includeArtifact( Artifact artifact )
+ {
+ }
+
+ public void omitForNearer( Artifact omitted,
+ Artifact kept )
+ {
+ }
+
+ public void omitForCycle( Artifact omitted )
+ {
+ }
+
+ public void updateScopeCurrentPom( Artifact artifact,
+ String scope )
+ {
+ }
+
+ public void updateScope( Artifact artifact,
+ String scope )
+ {
+ }
+
+ public void manageArtifact( Artifact artifact,
+ Artifact replacement )
+ {
+ }
+
+ public void selectVersionFromRange( Artifact artifact )
+ {
+ }
+
+ public void restrictRange( Artifact artifact,
+ Artifact replacement,
+ VersionRange newRange )
+ {
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/InversionArtifactFilter.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/InversionArtifactFilter.java
new file mode 100644
index 00000000..0499db51
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/InversionArtifactFilter.java
@@ -0,0 +1,65 @@
+package org.apache.maven.artifact.resolver.filter;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 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;
+
+public class InversionArtifactFilter
+ implements ArtifactFilter
+{
+ private final ArtifactFilter toInvert;
+
+ public InversionArtifactFilter( ArtifactFilter toInvert )
+ {
+ this.toInvert = toInvert;
+ }
+
+ public boolean include( Artifact artifact )
+ {
+ return !toInvert.include( artifact );
+ }
+
+ @Override
+ public int hashCode()
+ {
+ int hash = 17;
+ hash = hash * 31 + toInvert.hashCode();
+ return hash;
+ }
+
+ @Override
+ public boolean equals( Object obj )
+ {
+ if ( this == obj )
+ {
+ return true;
+ }
+
+ if ( !( obj instanceof InversionArtifactFilter ) )
+ {
+ return false;
+ }
+
+ InversionArtifactFilter other = (InversionArtifactFilter) obj;
+
+ return toInvert.equals( other.toInvert );
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/OrArtifactFilter.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/OrArtifactFilter.java
new file mode 100644
index 00000000..8cd02ccf
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/OrArtifactFilter.java
@@ -0,0 +1,93 @@
+package org.apache.maven.artifact.resolver.filter;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.util.Collection;
+import java.util.LinkedHashSet;
+import java.util.Set;
+
+import org.apache.maven.artifact.Artifact;
+
+/**
+ * Apply multiple filters, accepting an artifact if at least one of the filters accepts it.
+ *
+ * @author Benjamin Bentmann
+ */
+public class OrArtifactFilter
+ implements ArtifactFilter
+{
+
+ private Set filters;
+
+ public OrArtifactFilter()
+ {
+ this.filters = new LinkedHashSet();
+ }
+
+ public OrArtifactFilter( Collection filters )
+ {
+ this.filters = new LinkedHashSet( filters );
+ }
+
+ public boolean include( Artifact artifact )
+ {
+ for ( ArtifactFilter filter : filters )
+ {
+ if ( filter.include( artifact ) )
+ {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ public void add( ArtifactFilter artifactFilter )
+ {
+ filters.add( artifactFilter );
+ }
+
+ @Override
+ public int hashCode()
+ {
+ int hash = 17;
+ hash = hash * 31 + filters.hashCode();
+ return hash;
+ }
+
+ @Override
+ public boolean equals( Object obj )
+ {
+ if ( this == obj )
+ {
+ return true;
+ }
+
+ if ( !( obj instanceof OrArtifactFilter ) )
+ {
+ return false;
+ }
+
+ OrArtifactFilter other = (OrArtifactFilter) obj;
+
+ return filters.equals( other.filters );
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/TypeArtifactFilter.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/TypeArtifactFilter.java
new file mode 100644
index 00000000..76c39ec3
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/resolver/filter/TypeArtifactFilter.java
@@ -0,0 +1,66 @@
+package org.apache.maven.artifact.resolver.filter;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 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;
+
+/** Artifact Filter which filters on artifact type */
+public class TypeArtifactFilter
+ implements ArtifactFilter
+{
+ private String type = "jar";
+
+ public TypeArtifactFilter( String type )
+ {
+ this.type = type;
+ }
+
+ public boolean include( Artifact artifact )
+ {
+ return type.equals( artifact.getType() );
+ }
+
+ @Override
+ public int hashCode()
+ {
+ int hash = 17;
+ hash = hash * 31 + type.hashCode();
+ return hash;
+ }
+
+ @Override
+ public boolean equals( Object obj )
+ {
+ if ( this == obj )
+ {
+ return true;
+ }
+
+ if ( !( obj instanceof TypeArtifactFilter ) )
+ {
+ return false;
+ }
+
+ TypeArtifactFilter other = (TypeArtifactFilter) obj;
+
+ return type.equals( other.type );
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/versioning/ManagedVersionMap.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/versioning/ManagedVersionMap.java
new file mode 100644
index 00000000..86b49499
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/artifact/versioning/ManagedVersionMap.java
@@ -0,0 +1,56 @@
+package org.apache.maven.artifact.versioning;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.Map;
+
+import org.apache.maven.artifact.Artifact;
+
+@Deprecated
+public class ManagedVersionMap
+ extends HashMap
+{
+ public ManagedVersionMap( Map map )
+ {
+ super();
+ if ( map != null )
+ {
+ putAll( map );
+ }
+ }
+
+ public String toString()
+ {
+ StringBuilder buffer = new StringBuilder( "ManagedVersionMap (" + size() + " entries)\n" );
+ Iterator iter = keySet().iterator();
+ while ( iter.hasNext() )
+ {
+ String key = iter.next();
+ buffer.append( key ).append( "=" ).append( get( key ) );
+ if ( iter.hasNext() )
+ {
+ buffer.append( "\n" );
+ }
+ }
+ return buffer.toString();
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/execution/DefaultRuntimeInformation.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/execution/DefaultRuntimeInformation.java
new file mode 100644
index 00000000..7767aff1
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/execution/DefaultRuntimeInformation.java
@@ -0,0 +1,64 @@
+package org.apache.maven.execution;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 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.versioning.ArtifactVersion;
+import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
+import org.codehaus.plexus.util.StringUtils;
+
+/**
+ * Describes runtime information about the application.
+ *
+ * @author Brett Porter
+ */
+@Deprecated
+@Component( role = RuntimeInformation.class )
+public class DefaultRuntimeInformation
+ implements RuntimeInformation, Initializable
+{
+
+ @Requirement
+ private org.apache.maven.rtinfo.RuntimeInformation rtInfo;
+
+ private ArtifactVersion applicationVersion;
+
+ public ArtifactVersion getApplicationVersion()
+ {
+ return applicationVersion;
+ }
+
+ public void initialize()
+ throws InitializationException
+ {
+ String mavenVersion = rtInfo.getMavenVersion();
+
+ if ( StringUtils.isEmpty( mavenVersion ) )
+ {
+ throw new InitializationException( "Unable to read Maven version from maven-core" );
+ }
+
+ applicationVersion = new DefaultArtifactVersion( mavenVersion );
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/execution/RuntimeInformation.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/execution/RuntimeInformation.java
new file mode 100644
index 00000000..22e522d2
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/execution/RuntimeInformation.java
@@ -0,0 +1,34 @@
+package org.apache.maven.execution;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 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.versioning.ArtifactVersion;
+
+/**
+ * Describes runtime information about the application.
+ *
+ * @deprecated Use {@link org.apache.maven.rtinfo.RuntimeInformation} instead.
+ * @author Brett Porter
+ */
+@Deprecated
+public interface RuntimeInformation
+{
+ ArtifactVersion getApplicationVersion();
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/DefaultMavenProfilesBuilder.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/DefaultMavenProfilesBuilder.java
new file mode 100644
index 00000000..4745749b
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/DefaultMavenProfilesBuilder.java
@@ -0,0 +1,93 @@
+package org.apache.maven.profiles;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 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.profiles.io.xpp3.ProfilesXpp3Reader;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.interpolation.EnvarBasedValueSource;
+import org.codehaus.plexus.interpolation.RegexBasedInterpolator;
+import org.codehaus.plexus.logging.AbstractLogEnabled;
+import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.ReaderFactory;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.Reader;
+import java.io.StringReader;
+import java.io.StringWriter;
+
+@Deprecated
+@Component( role = MavenProfilesBuilder.class )
+public class DefaultMavenProfilesBuilder
+ extends AbstractLogEnabled
+ implements MavenProfilesBuilder
+{
+ private static final String PROFILES_XML_FILE = "profiles.xml";
+
+ public ProfilesRoot buildProfiles( File basedir )
+ throws IOException, XmlPullParserException
+ {
+ File profilesXml = new File( basedir, PROFILES_XML_FILE );
+
+ ProfilesRoot profilesRoot = null;
+
+ if ( profilesXml.exists() )
+ {
+ ProfilesXpp3Reader reader = new ProfilesXpp3Reader();
+ Reader profileReader = null;
+ try
+ {
+ profileReader = ReaderFactory.newXmlReader( profilesXml );
+
+ StringWriter sWriter = new StringWriter();
+
+ IOUtil.copy( profileReader, sWriter );
+
+ String rawInput = sWriter.toString();
+
+ try
+ {
+ RegexBasedInterpolator interpolator = new RegexBasedInterpolator();
+ interpolator.addValueSource( new EnvarBasedValueSource() );
+
+ rawInput = interpolator.interpolate( rawInput, "settings" );
+ }
+ catch ( Exception e )
+ {
+ getLogger().warn( "Failed to initialize environment variable resolver. Skipping environment "
+ + "substitution in " + PROFILES_XML_FILE + "." );
+ getLogger().debug( "Failed to initialize envar resolver. Skipping resolution.", e );
+ }
+
+ StringReader sReader = new StringReader( rawInput );
+
+ profilesRoot = reader.read( sReader );
+ }
+ finally
+ {
+ IOUtil.close( profileReader );
+ }
+ }
+
+ return profilesRoot;
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/DefaultProfileManager.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/DefaultProfileManager.java
new file mode 100644
index 00000000..3b99e9e2
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/DefaultProfileManager.java
@@ -0,0 +1,248 @@
+package org.apache.maven.profiles;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.model.Activation;
+import org.apache.maven.model.Profile;
+import org.apache.maven.model.building.ModelProblem;
+import org.apache.maven.model.building.ModelProblemCollector;
+import org.apache.maven.model.profile.DefaultProfileActivationContext;
+import org.apache.maven.model.profile.ProfileSelector;
+import org.apache.maven.profiles.activation.ProfileActivationException;
+import org.codehaus.plexus.MutablePlexusContainer;
+import org.codehaus.plexus.PlexusContainer;
+import org.codehaus.plexus.component.annotations.Requirement;
+import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+import org.codehaus.plexus.logging.Logger;
+
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import org.apache.maven.model.building.ModelProblemCollectorRequest;
+
+@Deprecated
+public class DefaultProfileManager
+ implements ProfileManager
+{
+
+ @Requirement
+ private Logger logger;
+
+ @Requirement
+ private ProfileSelector profileSelector;
+
+ private List activatedIds = new ArrayList();
+
+ private List deactivatedIds = new ArrayList();
+
+ private List defaultIds = new ArrayList();
+
+ private Map profilesById = new LinkedHashMap();
+
+ private Properties requestProperties;
+
+ /**
+ * @deprecated without passing in the system properties, the SystemPropertiesProfileActivator will not work
+ * correctly in embedded envirnments.
+ */
+ public DefaultProfileManager( PlexusContainer container )
+ {
+ this( container, null );
+ }
+
+ /**
+ * the properties passed to the profile manager are the props that
+ * are passed to maven, possibly containing profile activator properties
+ *
+ */
+ public DefaultProfileManager( PlexusContainer container, Properties props )
+ {
+ try
+ {
+ this.profileSelector = container.lookup( ProfileSelector.class );
+ this.logger = ( (MutablePlexusContainer) container ).getLogger();
+ }
+ catch ( ComponentLookupException e )
+ {
+ throw new IllegalStateException( e );
+ }
+ this.requestProperties = props;
+ }
+
+ public Properties getRequestProperties()
+ {
+ return requestProperties;
+ }
+
+ public Map getProfilesById()
+ {
+ return profilesById;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.maven.profiles.ProfileManager#addProfile(org.apache.maven.model.Profile)
+ */
+ public void addProfile( Profile profile )
+ {
+ String profileId = profile.getId();
+
+ Profile existing = (Profile) profilesById.get( profileId );
+ if ( existing != null )
+ {
+ logger.warn( "Overriding profile: \'" + profileId + "\' (source: " + existing.getSource()
+ + ") with new instance from source: " + profile.getSource() );
+ }
+
+ profilesById.put( profile.getId(), profile );
+
+ Activation activation = profile.getActivation();
+
+ if ( activation != null && activation.isActiveByDefault() )
+ {
+ activateAsDefault( profileId );
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.maven.profiles.ProfileManager#explicitlyActivate(java.lang.String)
+ */
+ public void explicitlyActivate( String profileId )
+ {
+ if ( !activatedIds.contains( profileId ) )
+ {
+ logger.debug( "Profile with id: \'" + profileId + "\' has been explicitly activated." );
+
+ activatedIds.add( profileId );
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.maven.profiles.ProfileManager#explicitlyActivate(java.util.List)
+ */
+ public void explicitlyActivate( List profileIds )
+ {
+ for ( Object profileId1 : profileIds )
+ {
+ String profileId = (String) profileId1;
+
+ explicitlyActivate( profileId );
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.maven.profiles.ProfileManager#explicitlyDeactivate(java.lang.String)
+ */
+ public void explicitlyDeactivate( String profileId )
+ {
+ if ( !deactivatedIds.contains( profileId ) )
+ {
+ logger.debug( "Profile with id: \'" + profileId + "\' has been explicitly deactivated." );
+
+ deactivatedIds.add( profileId );
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.maven.profiles.ProfileManager#explicitlyDeactivate(java.util.List)
+ */
+ public void explicitlyDeactivate( List profileIds )
+ {
+ for ( Object profileId1 : profileIds )
+ {
+ String profileId = (String) profileId1;
+
+ explicitlyDeactivate( profileId );
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.maven.profiles.ProfileManager#getActiveProfiles()
+ */
+ public List getActiveProfiles()
+ throws ProfileActivationException
+ {
+ DefaultProfileActivationContext context = new DefaultProfileActivationContext();
+ context.setActiveProfileIds( activatedIds );
+ context.setInactiveProfileIds( deactivatedIds );
+ context.setSystemProperties( System.getProperties() );
+ context.setUserProperties( requestProperties );
+
+ final List errors = new ArrayList();
+
+ List profiles =
+ profileSelector.getActiveProfiles( profilesById.values(), context, new ModelProblemCollector()
+ {
+
+ public void add( ModelProblemCollectorRequest req )
+ {
+ if ( !ModelProblem.Severity.WARNING.equals( req.getSeverity() ) )
+ {
+ errors.add( new ProfileActivationException( req.getMessage(), req.getException() ) );
+ }
+ }
+ } );
+
+ if ( !errors.isEmpty() )
+ {
+ throw errors.get( 0 );
+ }
+
+ return profiles;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.maven.profiles.ProfileManager#addProfiles(java.util.List)
+ */
+ public void addProfiles( List profiles )
+ {
+ for ( Object profile1 : profiles )
+ {
+ Profile profile = (Profile) profile1;
+
+ addProfile( profile );
+ }
+ }
+
+ public void activateAsDefault( String profileId )
+ {
+ if ( !defaultIds.contains( profileId ) )
+ {
+ defaultIds.add( profileId );
+ }
+ }
+
+ public List getExplicitlyActivatedIds()
+ {
+ return activatedIds;
+ }
+
+ public List getExplicitlyDeactivatedIds()
+ {
+ return deactivatedIds;
+ }
+
+ public List getIdsActivatedByDefault()
+ {
+ return defaultIds;
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/MavenProfilesBuilder.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/MavenProfilesBuilder.java
new file mode 100644
index 00000000..32fb6aaa
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/MavenProfilesBuilder.java
@@ -0,0 +1,37 @@
+package org.apache.maven.profiles;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR 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.xml.pull.XmlPullParserException;
+
+import java.io.File;
+import java.io.IOException;
+
+/**
+ * @author jdcasey
+ */
+@Deprecated
+public interface MavenProfilesBuilder
+{
+ String ROLE = MavenProfilesBuilder.class.getName();
+
+ ProfilesRoot buildProfiles( File basedir )
+ throws IOException, XmlPullParserException;
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/ProfileManager.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/ProfileManager.java
new file mode 100644
index 00000000..ddda3d7f
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/ProfileManager.java
@@ -0,0 +1,58 @@
+package org.apache.maven.profiles;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.model.Profile;
+import org.apache.maven.profiles.activation.ProfileActivationException;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+@Deprecated
+public interface ProfileManager
+{
+
+ void addProfile( Profile profile );
+
+ void explicitlyActivate( String profileId );
+
+ void explicitlyActivate( List profileIds );
+
+ void explicitlyDeactivate( String profileId );
+
+ void explicitlyDeactivate( List profileIds );
+
+ List getActiveProfiles()
+ throws ProfileActivationException;
+
+ void addProfiles( List profiles );
+
+ Map getProfilesById();
+
+ List getExplicitlyActivatedIds();
+
+ List getExplicitlyDeactivatedIds();
+
+ List getIdsActivatedByDefault();
+
+ Properties getRequestProperties();
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/ProfilesConversionUtils.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/ProfilesConversionUtils.java
new file mode 100644
index 00000000..72527b09
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/ProfilesConversionUtils.java
@@ -0,0 +1,151 @@
+package org.apache.maven.profiles;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.model.Activation;
+import org.apache.maven.model.ActivationFile;
+import org.apache.maven.model.ActivationProperty;
+import org.apache.maven.model.Profile;
+import org.apache.maven.model.Repository;
+
+import java.util.List;
+
+@Deprecated
+public class ProfilesConversionUtils
+{
+ private ProfilesConversionUtils()
+ {
+ }
+
+ public static Profile convertFromProfileXmlProfile( org.apache.maven.profiles.Profile profileXmlProfile )
+ {
+ Profile profile = new Profile();
+
+ profile.setId( profileXmlProfile.getId() );
+
+ profile.setSource( "profiles.xml" );
+
+ org.apache.maven.profiles.Activation profileActivation = profileXmlProfile.getActivation();
+
+ if ( profileActivation != null )
+ {
+ Activation activation = new Activation();
+
+ activation.setActiveByDefault( profileActivation.isActiveByDefault() );
+
+ activation.setJdk( profileActivation.getJdk() );
+
+ org.apache.maven.profiles.ActivationProperty profileProp = profileActivation.getProperty();
+
+ if ( profileProp != null )
+ {
+ ActivationProperty prop = new ActivationProperty();
+
+ prop.setName( profileProp.getName() );
+ prop.setValue( profileProp.getValue() );
+
+ activation.setProperty( prop );
+ }
+
+
+ ActivationOS profileOs = profileActivation.getOs();
+
+ if ( profileOs != null )
+ {
+ org.apache.maven.model.ActivationOS os = new org.apache.maven.model.ActivationOS();
+
+ os.setArch( profileOs.getArch() );
+ os.setFamily( profileOs.getFamily() );
+ os.setName( profileOs.getName() );
+ os.setVersion( profileOs.getVersion() );
+
+ activation.setOs( os );
+ }
+
+ org.apache.maven.profiles.ActivationFile profileFile = profileActivation.getFile();
+
+ if ( profileFile != null )
+ {
+ ActivationFile file = new ActivationFile();
+
+ file.setExists( profileFile.getExists() );
+ file.setMissing( profileFile.getMissing() );
+
+ activation.setFile( file );
+ }
+
+ profile.setActivation( activation );
+ }
+
+ profile.setProperties( profileXmlProfile.getProperties() );
+
+ List repos = profileXmlProfile.getRepositories();
+ if ( repos != null )
+ {
+ for ( Object repo : repos )
+ {
+ profile.addRepository( convertFromProfileXmlRepository( (org.apache.maven.profiles.Repository) repo ) );
+ }
+ }
+
+ List pluginRepos = profileXmlProfile.getPluginRepositories();
+ if ( pluginRepos != null )
+ {
+ for ( Object pluginRepo : pluginRepos )
+ {
+ profile.addPluginRepository(
+ convertFromProfileXmlRepository( (org.apache.maven.profiles.Repository) pluginRepo ) );
+ }
+ }
+
+ return profile;
+ }
+
+ private static Repository convertFromProfileXmlRepository( org.apache.maven.profiles.Repository profileXmlRepo )
+ {
+ Repository repo = new Repository();
+
+ repo.setId( profileXmlRepo.getId() );
+ repo.setLayout( profileXmlRepo.getLayout() );
+ repo.setName( profileXmlRepo.getName() );
+ repo.setUrl( profileXmlRepo.getUrl() );
+
+ if ( profileXmlRepo.getSnapshots() != null )
+ {
+ repo.setSnapshots( convertRepositoryPolicy( profileXmlRepo.getSnapshots() ) );
+ }
+ if ( profileXmlRepo.getReleases() != null )
+ {
+ repo.setReleases( convertRepositoryPolicy( profileXmlRepo.getReleases() ) );
+ }
+
+ return repo;
+ }
+
+ private static org.apache.maven.model.RepositoryPolicy convertRepositoryPolicy( RepositoryPolicy profileXmlRepo )
+ {
+ org.apache.maven.model.RepositoryPolicy policy = new org.apache.maven.model.RepositoryPolicy();
+ policy.setEnabled( profileXmlRepo.isEnabled() );
+ policy.setUpdatePolicy( profileXmlRepo.getUpdatePolicy() );
+ policy.setChecksumPolicy( profileXmlRepo.getChecksumPolicy() );
+ return policy;
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/activation/DetectedProfileActivator.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/activation/DetectedProfileActivator.java
new file mode 100644
index 00000000..5d6a8bf6
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/activation/DetectedProfileActivator.java
@@ -0,0 +1,35 @@
+package org.apache.maven.profiles.activation;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.model.Profile;
+
+@Deprecated
+public abstract class DetectedProfileActivator
+ implements ProfileActivator
+{
+ public boolean canDetermineActivation( Profile profile )
+ {
+ return canDetectActivation( profile );
+ }
+
+ protected abstract boolean canDetectActivation( Profile profile );
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/activation/FileProfileActivator.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/activation/FileProfileActivator.java
new file mode 100644
index 00000000..de4ba2ed
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/activation/FileProfileActivator.java
@@ -0,0 +1,109 @@
+package org.apache.maven.profiles.activation;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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 org.apache.maven.model.Activation;
+import org.apache.maven.model.ActivationFile;
+import org.apache.maven.model.Profile;
+import org.codehaus.plexus.interpolation.EnvarBasedValueSource;
+import org.codehaus.plexus.interpolation.InterpolationException;
+import org.codehaus.plexus.interpolation.MapBasedValueSource;
+import org.codehaus.plexus.interpolation.RegexBasedInterpolator;
+import org.codehaus.plexus.logging.LogEnabled;
+import org.codehaus.plexus.logging.Logger;
+import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.util.StringUtils;
+
+@Deprecated
+public class FileProfileActivator
+ extends DetectedProfileActivator
+ implements LogEnabled
+{
+ private Logger logger;
+
+ protected boolean canDetectActivation( Profile profile )
+ {
+ return profile.getActivation() != null && profile.getActivation().getFile() != null;
+ }
+
+ public boolean isActive( Profile profile )
+ {
+ Activation activation = profile.getActivation();
+
+ ActivationFile actFile = activation.getFile();
+
+ if ( actFile != null )
+ {
+ // check if the file exists, if it does then the profile will be active
+ String fileString = actFile.getExists();
+
+ RegexBasedInterpolator interpolator = new RegexBasedInterpolator();
+ try
+ {
+ interpolator.addValueSource( new EnvarBasedValueSource() );
+ }
+ catch ( IOException e )
+ {
+ // ignored
+ }
+ interpolator.addValueSource( new MapBasedValueSource( System.getProperties() ) );
+
+ try
+ {
+ if ( StringUtils.isNotEmpty( fileString ) )
+ {
+ fileString = StringUtils.replace( interpolator.interpolate( fileString, "" ), "\\", "/" );
+ return FileUtils.fileExists( fileString );
+ }
+
+ // check if the file is missing, if it is then the profile will be active
+ fileString = actFile.getMissing();
+
+ if ( StringUtils.isNotEmpty( fileString ) )
+ {
+ fileString = StringUtils.replace( interpolator.interpolate( fileString, "" ), "\\", "/" );
+ return !FileUtils.fileExists( fileString );
+ }
+ }
+ catch ( InterpolationException e )
+ {
+ if ( logger.isDebugEnabled() )
+ {
+ logger.debug( "Failed to interpolate missing file location for profile activator: " + fileString,
+ e );
+ }
+ else
+ {
+ logger.warn( "Failed to interpolate missing file location for profile activator: " + fileString
+ + ". Run in debug mode (-X) for more information." );
+ }
+ }
+ }
+
+ return false;
+ }
+
+ public void enableLogging( Logger logger )
+ {
+ this.logger = logger;
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/activation/JdkPrefixProfileActivator.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/activation/JdkPrefixProfileActivator.java
new file mode 100644
index 00000000..dfae95f6
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/activation/JdkPrefixProfileActivator.java
@@ -0,0 +1,97 @@
+package org.apache.maven.profiles.activation;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 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.versioning.DefaultArtifactVersion;
+import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
+import org.apache.maven.artifact.versioning.VersionRange;
+import org.apache.maven.model.Activation;
+import org.apache.maven.model.Profile;
+import org.codehaus.plexus.util.StringUtils;
+
+@Deprecated
+public class JdkPrefixProfileActivator
+ extends DetectedProfileActivator
+{
+ private static final String JDK_VERSION = System.getProperty( "java.version" );
+
+ public boolean isActive( Profile profile )
+ throws ProfileActivationException
+ {
+ Activation activation = profile.getActivation();
+
+ String jdk = activation.getJdk();
+
+ // null case is covered by canDetermineActivation(), so we can do a straight startsWith() here.
+ if ( jdk.startsWith( "[" ) || jdk.startsWith( "(" ) )
+ {
+ try
+ {
+ return matchJdkVersionRange( jdk );
+ }
+ catch ( InvalidVersionSpecificationException e )
+ {
+ throw new ProfileActivationException( "Invalid JDK version in profile '" + profile.getId() + "': "
+ + e.getMessage() );
+ }
+ }
+
+ boolean reverse = false;
+
+ if ( jdk.startsWith( "!" ) )
+ {
+ reverse = true;
+ jdk = jdk.substring( 1 );
+ }
+
+ if ( getJdkVersion().startsWith( jdk ) )
+ {
+ return !reverse;
+ }
+ else
+ {
+ return reverse;
+ }
+ }
+
+ private boolean matchJdkVersionRange( String jdk )
+ throws InvalidVersionSpecificationException
+ {
+ VersionRange jdkVersionRange = VersionRange.createFromVersionSpec( convertJdkToMavenVersion( jdk ) );
+ DefaultArtifactVersion jdkVersion = new DefaultArtifactVersion( convertJdkToMavenVersion( getJdkVersion() ) );
+ return jdkVersionRange.containsVersion( jdkVersion );
+ }
+
+ private String convertJdkToMavenVersion( String jdk )
+ {
+ return jdk.replaceAll( "_", "-" );
+ }
+
+ protected String getJdkVersion()
+ {
+ return JDK_VERSION;
+ }
+
+ protected boolean canDetectActivation( Profile profile )
+ {
+ return profile.getActivation() != null && StringUtils.isNotEmpty( profile.getActivation().getJdk() );
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/activation/OperatingSystemProfileActivator.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/activation/OperatingSystemProfileActivator.java
new file mode 100644
index 00000000..7464a303
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/activation/OperatingSystemProfileActivator.java
@@ -0,0 +1,161 @@
+package org.apache.maven.profiles.activation;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.model.Activation;
+import org.apache.maven.model.ActivationOS;
+import org.apache.maven.model.Profile;
+import org.codehaus.plexus.util.Os;
+
+@Deprecated
+public class OperatingSystemProfileActivator
+ implements ProfileActivator
+{
+
+ public boolean canDetermineActivation( Profile profile )
+ {
+ Activation activation = profile.getActivation();
+ return activation != null && activation.getOs() != null;
+ }
+
+ public boolean isActive( Profile profile )
+ {
+ Activation activation = profile.getActivation();
+ ActivationOS os = activation.getOs();
+
+ boolean result = ensureAtLeastOneNonNull( os );
+
+ if ( result && os.getFamily() != null )
+ {
+ result = determineFamilyMatch( os.getFamily() );
+ }
+ if ( result && os.getName() != null )
+ {
+ result = determineNameMatch( os.getName() );
+ }
+ if ( result && os.getArch() != null )
+ {
+ result = determineArchMatch( os.getArch() );
+ }
+ if ( result && os.getVersion() != null )
+ {
+ result = determineVersionMatch( os.getVersion() );
+ }
+ return result;
+ }
+
+ private boolean ensureAtLeastOneNonNull( ActivationOS os )
+ {
+ return os.getArch() != null || os.getFamily() != null || os.getName() != null || os.getVersion() != null;
+ }
+
+ private boolean determineVersionMatch( String version )
+ {
+ String test = version;
+ boolean reverse = false;
+
+ if ( test.startsWith( "!" ) )
+ {
+ reverse = true;
+ test = test.substring( 1 );
+ }
+
+ boolean result = Os.isVersion( test );
+
+ if ( reverse )
+ {
+ return !result;
+ }
+ else
+ {
+ return result;
+ }
+ }
+
+ private boolean determineArchMatch( String arch )
+ {
+ String test = arch;
+ boolean reverse = false;
+
+ if ( test.startsWith( "!" ) )
+ {
+ reverse = true;
+ test = test.substring( 1 );
+ }
+
+ boolean result = Os.isArch( test );
+
+ if ( reverse )
+ {
+ return !result;
+ }
+ else
+ {
+ return result;
+ }
+ }
+
+ private boolean determineNameMatch( String name )
+ {
+ String test = name;
+ boolean reverse = false;
+
+ if ( test.startsWith( "!" ) )
+ {
+ reverse = true;
+ test = test.substring( 1 );
+ }
+
+ boolean result = Os.isName( test );
+
+ if ( reverse )
+ {
+ return !result;
+ }
+ else
+ {
+ return result;
+ }
+ }
+
+ private boolean determineFamilyMatch( String family )
+ {
+ String test = family;
+ boolean reverse = false;
+
+ if ( test.startsWith( "!" ) )
+ {
+ reverse = true;
+ test = test.substring( 1 );
+ }
+
+ boolean result = Os.isFamily( test );
+
+ if ( reverse )
+ {
+ return !result;
+ }
+ else
+ {
+ return result;
+ }
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/activation/ProfileActivationException.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/activation/ProfileActivationException.java
new file mode 100644
index 00000000..7fc372cb
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/activation/ProfileActivationException.java
@@ -0,0 +1,39 @@
+package org.apache.maven.profiles.activation;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+@Deprecated
+public class ProfileActivationException
+ extends Exception
+{
+
+ private static final long serialVersionUID = -90820222109103638L;
+
+ public ProfileActivationException( String message, Throwable cause )
+ {
+ super( message, cause );
+ }
+
+ public ProfileActivationException( String message )
+ {
+ super( message );
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/activation/ProfileActivator.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/activation/ProfileActivator.java
new file mode 100644
index 00000000..d0a9ecb5
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/activation/ProfileActivator.java
@@ -0,0 +1,33 @@
+package org.apache.maven.profiles.activation;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.model.Profile;
+
+@Deprecated
+public interface ProfileActivator
+{
+ final String ROLE = ProfileActivator.class.getName();
+
+ boolean canDetermineActivation( Profile profile );
+
+ boolean isActive( Profile profile )
+ throws ProfileActivationException;
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/activation/SystemPropertyProfileActivator.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/activation/SystemPropertyProfileActivator.java
new file mode 100644
index 00000000..a03267dc
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/profiles/activation/SystemPropertyProfileActivator.java
@@ -0,0 +1,114 @@
+package org.apache.maven.profiles.activation;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.Properties;
+import org.apache.maven.model.Activation;
+import org.apache.maven.model.ActivationProperty;
+import org.apache.maven.model.Profile;
+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.util.StringUtils;
+
+@Deprecated
+public class SystemPropertyProfileActivator
+ extends DetectedProfileActivator implements Contextualizable
+{
+ private Properties properties;
+
+ public void contextualize( Context context )
+ throws ContextException
+ {
+ properties = (Properties) context.get( "SystemProperties" );
+ }
+
+ protected boolean canDetectActivation( Profile profile )
+ {
+ return profile.getActivation() != null && profile.getActivation().getProperty() != null;
+ }
+
+ public boolean isActive( Profile profile )
+ throws ProfileActivationException
+ {
+ Activation activation = profile.getActivation();
+
+ ActivationProperty property = activation.getProperty();
+
+ if ( property != null )
+ {
+ String name = property.getName();
+ boolean reverseName = false;
+
+ if ( name == null )
+ {
+ throw new ProfileActivationException( "The property name is required to activate the profile '"
+ + profile.getId() + "'" );
+ }
+
+ if ( name.startsWith( "!" ) )
+ {
+ reverseName = true;
+ name = name.substring( 1 );
+ }
+
+ String sysValue = properties.getProperty( name );
+
+ String propValue = property.getValue();
+ if ( StringUtils.isNotEmpty( propValue ) )
+ {
+ boolean reverseValue = false;
+ if ( propValue.startsWith( "!" ) )
+ {
+ reverseValue = true;
+ propValue = propValue.substring( 1 );
+ }
+
+ // we have a value, so it has to match the system value...
+ boolean result = propValue.equals( sysValue );
+
+ if ( reverseValue )
+ {
+ return !result;
+ }
+ else
+ {
+ return result;
+ }
+ }
+ else
+ {
+ boolean result = StringUtils.isNotEmpty( sysValue );
+
+ if ( reverseName )
+ {
+ return !result;
+ }
+ else
+ {
+ return result;
+ }
+ }
+ }
+
+ return false;
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
new file mode 100644
index 00000000..fff2de10
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
@@ -0,0 +1,324 @@
+package org.apache.maven.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.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Properties;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.InvalidRepositoryException;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
+import org.apache.maven.artifact.resolver.ArtifactResolutionException;
+import org.apache.maven.execution.MavenExecutionRequest;
+import org.apache.maven.execution.MavenSession;
+import org.apache.maven.model.Repository;
+import org.apache.maven.model.building.ModelBuildingException;
+import org.apache.maven.model.building.ModelBuildingRequest;
+import org.apache.maven.model.building.ModelSource;
+import org.apache.maven.model.building.UrlModelSource;
+import org.apache.maven.plugin.LegacySupport;
+import org.apache.maven.profiles.ProfileManager;
+import org.apache.maven.properties.internal.EnvironmentUtils;
+import org.apache.maven.repository.RepositorySystem;
+import org.apache.maven.wagon.events.TransferListener;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
+
+/**
+ */
+@Component( role = MavenProjectBuilder.class )
+@Deprecated
+public class DefaultMavenProjectBuilder
+ implements MavenProjectBuilder
+{
+
+ @Requirement
+ private ProjectBuilder projectBuilder;
+
+ @Requirement
+ private RepositorySystem repositorySystem;
+
+ @Requirement
+ private LegacySupport legacySupport;
+
+ // ----------------------------------------------------------------------
+ // MavenProjectBuilder Implementation
+ // ----------------------------------------------------------------------
+
+ private ProjectBuildingRequest toRequest( ProjectBuilderConfiguration configuration )
+ {
+ DefaultProjectBuildingRequest request = new DefaultProjectBuildingRequest();
+
+ request.setValidationLevel( ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_2_0 );
+ request.setResolveDependencies( false );
+
+ request.setLocalRepository( configuration.getLocalRepository() );
+ request.setBuildStartTime( configuration.getBuildStartTime() );
+ request.setUserProperties( configuration.getUserProperties() );
+ request.setSystemProperties( configuration.getExecutionProperties() );
+
+ ProfileManager profileManager = configuration.getGlobalProfileManager();
+ if ( profileManager != null )
+ {
+ request.setActiveProfileIds( profileManager.getExplicitlyActivatedIds() );
+ request.setInactiveProfileIds( profileManager.getExplicitlyDeactivatedIds() );
+ }
+ else
+ {
+ /*
+ * MNG-4900: Hack to workaround deficiency of legacy API which makes it impossible for plugins to access the
+ * global profile manager which is required to build a POM like a CLI invocation does. Failure to consider
+ * the activated profiles can cause repo declarations to be lost which in turn will result in artifact
+ * resolution failures, in particular when using the enhanced local repo which guards access to local files
+ * based on the configured remote repos.
+ */
+ MavenSession session = legacySupport.getSession();
+ if ( session != null )
+ {
+ MavenExecutionRequest req = session.getRequest();
+ if ( req != null )
+ {
+ request.setActiveProfileIds( req.getActiveProfiles() );
+ request.setInactiveProfileIds( req.getInactiveProfiles() );
+ }
+ }
+ }
+
+ return request;
+ }
+
+ private ProjectBuildingRequest injectSession( ProjectBuildingRequest request )
+ {
+ MavenSession session = legacySupport.getSession();
+ if ( session != null )
+ {
+ request.setRepositorySession( session.getRepositorySession() );
+ request.setSystemProperties( session.getSystemProperties() );
+ if ( request.getUserProperties().isEmpty() )
+ {
+ request.setUserProperties( session.getUserProperties() );
+ }
+
+ MavenExecutionRequest req = session.getRequest();
+ if ( req != null )
+ {
+ request.setRemoteRepositories( req.getRemoteRepositories() );
+ }
+ }
+ else
+ {
+ Properties props = new Properties();
+ EnvironmentUtils.addEnvVars( props );
+ props.putAll( System.getProperties() );
+ request.setSystemProperties( props );
+ }
+
+ return request;
+ }
+
+ @SuppressWarnings( "unchecked" )
+ private List normalizeToArtifactRepositories( List> repositories,
+ ProjectBuildingRequest request )
+ throws ProjectBuildingException
+ {
+ /*
+ * This provides backward-compat with 2.x that allowed plugins like the maven-remote-resources-plugin:1.0 to
+ * populate the builder configuration with model repositories instead of artifact repositories.
+ */
+
+ if ( repositories != null )
+ {
+ boolean normalized = false;
+
+ List repos = new ArrayList( repositories.size() );
+
+ for ( Object repository : repositories )
+ {
+ if ( repository instanceof Repository )
+ {
+ try
+ {
+ ArtifactRepository repo = repositorySystem.buildArtifactRepository( (Repository) repository );
+ repositorySystem.injectMirror( request.getRepositorySession(), Arrays.asList( repo ) );
+ repositorySystem.injectProxy( request.getRepositorySession(), Arrays.asList( repo ) );
+ repositorySystem.injectAuthentication( request.getRepositorySession(), Arrays.asList( repo ) );
+ repos.add( repo );
+ }
+ catch ( InvalidRepositoryException e )
+ {
+ throw new ProjectBuildingException( "", "Invalid remote repository " + repository, e );
+ }
+ normalized = true;
+ }
+ else
+ {
+ repos.add( (ArtifactRepository) repository );
+ }
+ }
+
+ if ( normalized )
+ {
+ return repos;
+ }
+ }
+
+ return (List) repositories;
+ }
+
+ private ProjectBuildingException transformError( ProjectBuildingException e )
+ {
+ if ( e.getCause() instanceof ModelBuildingException )
+ {
+ return new InvalidProjectModelException( e.getProjectId(), e.getMessage(), e.getPomFile() );
+ }
+
+ return e;
+ }
+
+ public MavenProject build( File pom, ProjectBuilderConfiguration configuration )
+ throws ProjectBuildingException
+ {
+ ProjectBuildingRequest request = injectSession( toRequest( configuration ) );
+
+ try
+ {
+ return projectBuilder.build( pom, request ).getProject();
+ }
+ catch ( ProjectBuildingException e )
+ {
+ throw transformError( e );
+ }
+ }
+
+ // This is used by the SITE plugin.
+ public MavenProject build( File pom, ArtifactRepository localRepository, ProfileManager profileManager )
+ throws ProjectBuildingException
+ {
+ ProjectBuilderConfiguration configuration = new DefaultProjectBuilderConfiguration();
+ configuration.setLocalRepository( localRepository );
+ configuration.setGlobalProfileManager( profileManager );
+
+ return build( pom, configuration );
+ }
+
+ public MavenProject buildFromRepository( Artifact artifact, List remoteRepositories,
+ ProjectBuilderConfiguration configuration, boolean allowStubModel )
+ throws ProjectBuildingException
+ {
+ ProjectBuildingRequest request = injectSession( toRequest( configuration ) );
+ request.setRemoteRepositories( normalizeToArtifactRepositories( remoteRepositories, request ) );
+ request.setProcessPlugins( false );
+ request.setValidationLevel( ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL );
+
+ try
+ {
+ return projectBuilder.build( artifact, allowStubModel, request ).getProject();
+ }
+ catch ( ProjectBuildingException e )
+ {
+ throw transformError( e );
+ }
+ }
+
+ public MavenProject buildFromRepository( Artifact artifact, List remoteRepositories,
+ ArtifactRepository localRepository, boolean allowStubModel )
+ throws ProjectBuildingException
+ {
+ ProjectBuilderConfiguration configuration = new DefaultProjectBuilderConfiguration();
+ configuration.setLocalRepository( localRepository );
+
+ return buildFromRepository( artifact, remoteRepositories, configuration, allowStubModel );
+ }
+
+ public MavenProject buildFromRepository( Artifact artifact, List remoteRepositories,
+ ArtifactRepository localRepository )
+ throws ProjectBuildingException
+ {
+ return buildFromRepository( artifact, remoteRepositories, localRepository, true );
+ }
+
+ /**
+ * This is used for pom-less execution like running archetype:generate. I am taking out the profile handling and the
+ * interpolation of the base directory until we spec this out properly.
+ */
+ public MavenProject buildStandaloneSuperProject( ProjectBuilderConfiguration configuration )
+ throws ProjectBuildingException
+ {
+ ProjectBuildingRequest request = injectSession( toRequest( configuration ) );
+ request.setProcessPlugins( false );
+ request.setValidationLevel( ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL );
+
+ ModelSource modelSource = new UrlModelSource( getClass().getResource( "standalone.xml" ) );
+
+ MavenProject project = projectBuilder.build( modelSource, request ).getProject();
+ project.setExecutionRoot( true );
+ return project;
+ }
+
+ public MavenProject buildStandaloneSuperProject( ArtifactRepository localRepository )
+ throws ProjectBuildingException
+ {
+ return buildStandaloneSuperProject( localRepository, null );
+ }
+
+ public MavenProject buildStandaloneSuperProject( ArtifactRepository localRepository, ProfileManager profileManager )
+ throws ProjectBuildingException
+ {
+ ProjectBuilderConfiguration configuration = new DefaultProjectBuilderConfiguration();
+ configuration.setLocalRepository( localRepository );
+ configuration.setGlobalProfileManager( profileManager );
+
+ return buildStandaloneSuperProject( configuration );
+ }
+
+ public MavenProject buildWithDependencies( File pom, ArtifactRepository localRepository,
+ ProfileManager profileManager, TransferListener transferListener )
+ throws ProjectBuildingException, ArtifactResolutionException, ArtifactNotFoundException
+ {
+ ProjectBuilderConfiguration configuration = new DefaultProjectBuilderConfiguration();
+ configuration.setLocalRepository( localRepository );
+ configuration.setGlobalProfileManager( profileManager );
+
+ ProjectBuildingRequest request = injectSession( toRequest( configuration ) );
+
+ request.setResolveDependencies( true );
+
+ try
+ {
+ return projectBuilder.build( pom, request ).getProject();
+ }
+ catch ( ProjectBuildingException e )
+ {
+ throw transformError( e );
+ }
+ }
+
+ public MavenProject buildWithDependencies( File pom, ArtifactRepository localRepository,
+ ProfileManager profileManager )
+ throws ProjectBuildingException, ArtifactResolutionException, ArtifactNotFoundException
+ {
+ return buildWithDependencies( pom, localRepository, profileManager, null );
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/DefaultProjectBuilderConfiguration.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/DefaultProjectBuilderConfiguration.java
new file mode 100644
index 00000000..d08f18e0
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/DefaultProjectBuilderConfiguration.java
@@ -0,0 +1,107 @@
+package org.apache.maven.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.Date;
+import java.util.Properties;
+
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.profiles.ProfileManager;
+
+@Deprecated
+public class DefaultProjectBuilderConfiguration
+ implements ProjectBuilderConfiguration
+{
+
+ private ProfileManager globalProfileManager;
+
+ private ArtifactRepository localRepository;
+
+ private Properties userProperties;
+
+ private Properties executionProperties = System.getProperties();
+
+ private Date buildStartTime;
+
+ public DefaultProjectBuilderConfiguration()
+ {
+ }
+
+ public ProjectBuilderConfiguration setGlobalProfileManager( ProfileManager globalProfileManager )
+ {
+ this.globalProfileManager = globalProfileManager;
+ return this;
+ }
+
+ public ProfileManager getGlobalProfileManager()
+ {
+ return globalProfileManager;
+ }
+
+ public ProjectBuilderConfiguration setLocalRepository( ArtifactRepository localRepository )
+ {
+ this.localRepository = localRepository;
+ return this;
+ }
+
+ public ArtifactRepository getLocalRepository()
+ {
+ return localRepository;
+ }
+
+ public ProjectBuilderConfiguration setUserProperties( Properties userProperties )
+ {
+ this.userProperties = userProperties;
+ return this;
+ }
+
+ public Properties getUserProperties()
+ {
+ if ( userProperties == null )
+ {
+ userProperties = new Properties();
+ }
+
+ return userProperties;
+ }
+
+ public Properties getExecutionProperties()
+ {
+ return executionProperties;
+ }
+
+ public ProjectBuilderConfiguration setExecutionProperties( Properties executionProperties )
+ {
+ this.executionProperties = executionProperties;
+ return this;
+ }
+
+ public Date getBuildStartTime()
+ {
+ return buildStartTime;
+ }
+
+ public ProjectBuilderConfiguration setBuildStartTime( Date buildStartTime )
+ {
+ this.buildStartTime = buildStartTime;
+ return this;
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/InvalidProjectModelException.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/InvalidProjectModelException.java
new file mode 100644
index 00000000..cf85aa9e
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/InvalidProjectModelException.java
@@ -0,0 +1,74 @@
+package org.apache.maven.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.io.File;
+
+import org.apache.maven.project.validation.ModelValidationResult;
+
+@Deprecated
+public class InvalidProjectModelException
+ extends ProjectBuildingException
+{
+ private ModelValidationResult validationResult;
+
+ public InvalidProjectModelException( String projectId, String message, File pomLocation )
+ {
+ super( projectId, message, pomLocation );
+ }
+
+ /**
+ * @param projectId
+ * @param pomLocation absolute path of the pom file
+ * @param message
+ * @param validationResult
+ * @deprecated use {@link File} constructor for pomLocation
+ */
+ public InvalidProjectModelException( String projectId, String pomLocation, String message,
+ ModelValidationResult validationResult )
+ {
+ this( projectId, message, new File( pomLocation ), validationResult );
+ }
+
+ public InvalidProjectModelException( String projectId, String message, File pomFile,
+ ModelValidationResult validationResult )
+ {
+ super( projectId, message, pomFile );
+
+ this.validationResult = validationResult;
+ }
+
+ /**
+ * @param projectId
+ * @param pomLocation absolute path of the pom file
+ * @param message
+ * @deprecated use {@link File} constructor for pomLocation
+ */
+ public InvalidProjectModelException( String projectId, String pomLocation, String message )
+ {
+ this( projectId, message, new File( pomLocation ) );
+ }
+
+ public final ModelValidationResult getValidationResult()
+ {
+ return validationResult;
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/MavenProjectBuilder.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/MavenProjectBuilder.java
new file mode 100644
index 00000000..c44d8dbc
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/MavenProjectBuilder.java
@@ -0,0 +1,76 @@
+package org.apache.maven.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.io.File;
+import java.util.List;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
+import org.apache.maven.artifact.resolver.ArtifactResolutionException;
+import org.apache.maven.profiles.ProfileManager;
+import org.apache.maven.wagon.events.TransferListener;
+
+/**
+ * @deprecated use {@link ProjectBuilder} instead
+ */
+@Deprecated
+public interface MavenProjectBuilder
+{
+
+ MavenProject build( File pom, ProjectBuilderConfiguration configuration )
+ throws ProjectBuildingException;
+
+ //TODO maven-site-plugin -- Vincent, Dennis and Lukas are checking but this doesn't appear to be required anymore.
+ MavenProject build( File pom, ArtifactRepository localRepository, ProfileManager profileManager )
+ throws ProjectBuildingException;
+
+ //TODO remote-resources-plugin
+ MavenProject buildFromRepository( Artifact artifact, List remoteRepositories,
+ ArtifactRepository localRepository )
+ throws ProjectBuildingException;
+
+ //TODO remote-resources-plugin
+ MavenProject buildFromRepository( Artifact artifact, List remoteRepositories,
+ ArtifactRepository localRepository, boolean allowStubModel )
+ throws ProjectBuildingException;
+
+ // TODO: this is only to provide a project for plugins that don't need a project to execute but need some
+ // of the values from a MavenProject. Ideally this should be something internal and nothing outside Maven
+ // would ever need this so it should not be exposed in a public API
+ MavenProject buildStandaloneSuperProject( ProjectBuilderConfiguration configuration )
+ throws ProjectBuildingException;
+
+ MavenProject buildStandaloneSuperProject( ArtifactRepository localRepository )
+ throws ProjectBuildingException;
+
+ MavenProject buildStandaloneSuperProject( ArtifactRepository localRepository, ProfileManager profileManager )
+ throws ProjectBuildingException;
+
+ MavenProject buildWithDependencies( File pom, ArtifactRepository localRepository,
+ ProfileManager globalProfileManager, TransferListener transferListener )
+ throws ProjectBuildingException, ArtifactResolutionException, ArtifactNotFoundException;
+
+ MavenProject buildWithDependencies( File pom, ArtifactRepository localRepository,
+ ProfileManager globalProfileManager )
+ throws ProjectBuildingException, ArtifactResolutionException, ArtifactNotFoundException;
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/MissingRepositoryElementException.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/MissingRepositoryElementException.java
new file mode 100644
index 00000000..17c267e3
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/MissingRepositoryElementException.java
@@ -0,0 +1,38 @@
+package org.apache.maven.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.artifact.InvalidRepositoryException;
+
+public class MissingRepositoryElementException
+ extends InvalidRepositoryException
+{
+
+ public MissingRepositoryElementException( String message, String repositoryId )
+ {
+ super( message, repositoryId );
+ }
+
+ public MissingRepositoryElementException( String message )
+ {
+ super( message, "-unknown-" );
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/ModelUtils.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/ModelUtils.java
new file mode 100644
index 00000000..1af061d3
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/ModelUtils.java
@@ -0,0 +1,367 @@
+package org.apache.maven.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.ArrayList;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
+import org.apache.maven.model.Dependency;
+import org.apache.maven.model.Plugin;
+import org.apache.maven.model.PluginContainer;
+import org.apache.maven.model.PluginExecution;
+import org.apache.maven.model.Repository;
+import org.codehaus.plexus.util.xml.Xpp3Dom;
+
+/** @deprecated */
+@Deprecated
+public final class ModelUtils
+{
+
+ /**
+ * This should be the resulting ordering of plugins after merging:
+ *
+ * Given:
+ *
+ * parent: X -> A -> B -> D -> E
+ * child: Y -> A -> C -> D -> F
+ *
+ * Result:
+ *
+ * X -> Y -> A -> B -> C -> D -> E -> F
+ */
+ public static void mergePluginLists( PluginContainer childContainer, PluginContainer parentContainer,
+ boolean handleAsInheritance )
+ {
+ if ( ( childContainer == null ) || ( parentContainer == null ) )
+ {
+ // nothing to do.
+ return;
+ }
+
+ List parentPlugins = parentContainer.getPlugins();
+
+ if ( ( parentPlugins != null ) && !parentPlugins.isEmpty() )
+ {
+ parentPlugins = new ArrayList( parentPlugins );
+
+ // If we're processing this merge as an inheritance, we have to build up a list of
+ // plugins that were considered for inheritance.
+ if ( handleAsInheritance )
+ {
+ for ( Iterator it = parentPlugins.iterator(); it.hasNext(); )
+ {
+ Plugin plugin = it.next();
+
+ String inherited = plugin.getInherited();
+
+ if ( ( inherited != null ) && !Boolean.valueOf( inherited ) )
+ {
+ it.remove();
+ }
+ }
+ }
+
+ List assembledPlugins = new ArrayList();
+
+ Map childPlugins = childContainer.getPluginsAsMap();
+
+ for ( Plugin parentPlugin : parentPlugins )
+ {
+ String parentInherited = parentPlugin.getInherited();
+
+ // only merge plugin definition from the parent if at least one
+ // of these is true:
+ // 1. we're not processing the plugins in an inheritance-based merge
+ // 2. the parent's flag is not set
+ // 3. the parent's flag is set to true
+ if ( !handleAsInheritance || ( parentInherited == null )
+ || Boolean.valueOf( parentInherited ) )
+ {
+ Plugin childPlugin = childPlugins.get( parentPlugin.getKey() );
+
+ if ( ( childPlugin != null ) && !assembledPlugins.contains( childPlugin ) )
+ {
+ Plugin assembledPlugin = childPlugin;
+
+ mergePluginDefinitions( childPlugin, parentPlugin, handleAsInheritance );
+
+ // fix for MNG-2221 (assembly cache was not being populated for later reference):
+ assembledPlugins.add( assembledPlugin );
+ }
+
+ // if we're processing this as an inheritance-based merge, and
+ // the parent's flag is not set, then we need to
+ // clear the inherited flag in the merge result.
+ if ( handleAsInheritance && ( parentInherited == null ) )
+ {
+ parentPlugin.unsetInheritanceApplied();
+ }
+ }
+
+ // very important to use the parentPlugins List, rather than parentContainer.getPlugins()
+ // since this list is a local one, and may have been modified during processing.
+ List results =
+ ModelUtils.orderAfterMerge( assembledPlugins, parentPlugins, childContainer.getPlugins() );
+
+ childContainer.setPlugins( results );
+
+ childContainer.flushPluginMap();
+ }
+ }
+ }
+
+ public static List orderAfterMerge( List merged, List highPrioritySource,
+ List lowPrioritySource )
+ {
+ List results = new ArrayList();
+
+ if ( !merged.isEmpty() )
+ {
+ results.addAll( merged );
+ }
+
+ List missingFromResults = new ArrayList();
+
+ List> sources = new ArrayList>();
+
+ sources.add( highPrioritySource );
+ sources.add( lowPrioritySource );
+
+ for ( List source : sources )
+ {
+ for ( Plugin item : source )
+ {
+ if ( results.contains( item ) )
+ {
+ if ( !missingFromResults.isEmpty() )
+ {
+ int idx = results.indexOf( item );
+
+ if ( idx < 0 )
+ {
+ idx = 0;
+ }
+
+ results.addAll( idx, missingFromResults );
+
+ missingFromResults.clear();
+ }
+ }
+ else
+ {
+ missingFromResults.add( item );
+ }
+ }
+
+ if ( !missingFromResults.isEmpty() )
+ {
+ results.addAll( missingFromResults );
+
+ missingFromResults.clear();
+ }
+ }
+
+ return results;
+ }
+
+
+ public static void mergePluginDefinitions( Plugin child, Plugin parent, boolean handleAsInheritance )
+ {
+ if ( ( child == null ) || ( parent == null ) )
+ {
+ // nothing to do.
+ return;
+ }
+
+ if ( parent.isExtensions() )
+ {
+ child.setExtensions( true );
+ }
+
+ if ( ( child.getVersion() == null ) && ( parent.getVersion() != null ) )
+ {
+ child.setVersion( parent.getVersion() );
+ }
+
+ Xpp3Dom childConfiguration = (Xpp3Dom) child.getConfiguration();
+ Xpp3Dom parentConfiguration = (Xpp3Dom) parent.getConfiguration();
+
+ childConfiguration = Xpp3Dom.mergeXpp3Dom( childConfiguration, parentConfiguration );
+
+ child.setConfiguration( childConfiguration );
+
+ child.setDependencies( mergeDependencyList( child.getDependencies(), parent.getDependencies() ) );
+
+ // from here to the end of the method is dealing with merging of the section.
+ String parentInherited = parent.getInherited();
+
+ boolean parentIsInherited = ( parentInherited == null ) || Boolean.valueOf( parentInherited );
+
+ List parentExecutions = parent.getExecutions();
+
+ if ( ( parentExecutions != null ) && !parentExecutions.isEmpty() )
+ {
+ List mergedExecutions = new ArrayList();
+
+ Map assembledExecutions = new TreeMap();
+
+ Map childExecutions = child.getExecutionsAsMap();
+
+ for ( PluginExecution parentExecution : parentExecutions )
+ {
+ String inherited = parentExecution.getInherited();
+
+ boolean parentExecInherited =
+ parentIsInherited && ( ( inherited == null ) || Boolean.valueOf( inherited ) );
+
+ if ( !handleAsInheritance || parentExecInherited )
+ {
+ PluginExecution assembled = parentExecution;
+
+ PluginExecution childExecution = childExecutions.get( parentExecution.getId() );
+
+ if ( childExecution != null )
+ {
+ mergePluginExecutionDefinitions( childExecution, parentExecution );
+
+ assembled = childExecution;
+ }
+ else if ( handleAsInheritance && ( parentInherited == null ) )
+ {
+ parentExecution.unsetInheritanceApplied();
+ }
+
+ assembledExecutions.put( assembled.getId(), assembled );
+ mergedExecutions.add( assembled );
+ }
+ }
+
+ for ( PluginExecution childExecution : child.getExecutions() )
+ {
+ if ( !assembledExecutions.containsKey( childExecution.getId() ) )
+ {
+ mergedExecutions.add( childExecution );
+ }
+ }
+
+ child.setExecutions( mergedExecutions );
+
+ child.flushExecutionMap();
+ }
+
+ }
+
+ private static void mergePluginExecutionDefinitions( PluginExecution child, PluginExecution parent )
+ {
+ if ( child.getPhase() == null )
+ {
+ child.setPhase( parent.getPhase() );
+ }
+
+ List parentGoals = parent.getGoals();
+ List childGoals = child.getGoals();
+
+ List goals = new ArrayList();
+
+ if ( ( childGoals != null ) && !childGoals.isEmpty() )
+ {
+ goals.addAll( childGoals );
+ }
+
+ if ( parentGoals != null )
+ {
+ for ( String goal : parentGoals )
+ {
+ if ( !goals.contains( goal ) )
+ {
+ goals.add( goal );
+ }
+ }
+ }
+
+ child.setGoals( goals );
+
+ Xpp3Dom childConfiguration = (Xpp3Dom) child.getConfiguration();
+ Xpp3Dom parentConfiguration = (Xpp3Dom) parent.getConfiguration();
+
+ childConfiguration = Xpp3Dom.mergeXpp3Dom( childConfiguration, parentConfiguration );
+
+ child.setConfiguration( childConfiguration );
+ }
+
+ public static List mergeRepositoryLists( List dominant, List recessive )
+ {
+ List repositories = new ArrayList();
+
+ for ( Repository repository : dominant )
+ {
+ repositories.add( repository );
+ }
+
+ for ( Repository repository : recessive )
+ {
+ if ( !repositories.contains( repository ) )
+ {
+ repositories.add( repository );
+ }
+ }
+
+ return repositories;
+ }
+
+ public static void mergeFilterLists( List childFilters, List parentFilters )
+ {
+ for ( String f : parentFilters )
+ {
+ if ( !childFilters.contains( f ) )
+ {
+ childFilters.add( f );
+ }
+ }
+ }
+
+ private static List mergeDependencyList( List child, List parent )
+ {
+ Map depsMap = new LinkedHashMap();
+
+ if ( parent != null )
+ {
+ for ( Dependency dependency : parent )
+ {
+ depsMap.put( dependency.getManagementKey(), dependency );
+ }
+ }
+
+ if ( child != null )
+ {
+ for ( Dependency dependency : child )
+ {
+ depsMap.put( dependency.getManagementKey(), dependency );
+ }
+ }
+
+ return new ArrayList( depsMap.values() );
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/ProjectBuilderConfiguration.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/ProjectBuilderConfiguration.java
new file mode 100644
index 00000000..ddfad3cb
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/ProjectBuilderConfiguration.java
@@ -0,0 +1,55 @@
+package org.apache.maven.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.Date;
+import java.util.Properties;
+
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.profiles.ProfileManager;
+
+/**
+ * @deprecated use {@link ProjectBuildingRequest} instead
+ */
+@Deprecated
+public interface ProjectBuilderConfiguration
+{
+
+ ArtifactRepository getLocalRepository();
+
+ ProfileManager getGlobalProfileManager();
+
+ Properties getUserProperties();
+
+ Properties getExecutionProperties();
+
+ ProjectBuilderConfiguration setGlobalProfileManager( ProfileManager globalProfileManager );
+
+ ProjectBuilderConfiguration setLocalRepository( ArtifactRepository localRepository );
+
+ ProjectBuilderConfiguration setUserProperties( Properties userProperties );
+
+ ProjectBuilderConfiguration setExecutionProperties( Properties executionProperties );
+
+ Date getBuildStartTime();
+
+ ProjectBuilderConfiguration setBuildStartTime( Date buildStartTime );
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/ProjectUtils.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/ProjectUtils.java
new file mode 100644
index 00000000..b70d3cff
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/ProjectUtils.java
@@ -0,0 +1,118 @@
+package org.apache.maven.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.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.maven.artifact.InvalidRepositoryException;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
+import org.apache.maven.model.DeploymentRepository;
+import org.apache.maven.model.Repository;
+import org.apache.maven.plugin.LegacySupport;
+import org.apache.maven.repository.RepositorySystem;
+import org.codehaus.plexus.PlexusContainer;
+import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+import org.eclipse.aether.RepositorySystemSession;
+
+// This class needs to stick around because it was exposed the the remote resources plugin started using it instead of
+// getting the repositories from the project.
+
+@Deprecated
+public final class ProjectUtils
+{
+
+ private ProjectUtils()
+ {
+ }
+
+ public static List buildArtifactRepositories( List repositories,
+ ArtifactRepositoryFactory artifactRepositoryFactory,
+ PlexusContainer c )
+ throws InvalidRepositoryException
+ {
+
+ List remoteRepositories = new ArrayList();
+
+ for ( Repository r : repositories )
+ {
+ remoteRepositories.add( buildArtifactRepository( r, artifactRepositoryFactory, c ) );
+ }
+
+ return remoteRepositories;
+ }
+
+ public static ArtifactRepository buildDeploymentArtifactRepository( DeploymentRepository repo,
+ ArtifactRepositoryFactory artifactRepositoryFactory,
+ PlexusContainer c )
+ throws InvalidRepositoryException
+ {
+ return buildArtifactRepository( repo, artifactRepositoryFactory, c );
+ }
+
+ public static ArtifactRepository buildArtifactRepository( Repository repo,
+ ArtifactRepositoryFactory artifactRepositoryFactory,
+ PlexusContainer c )
+ throws InvalidRepositoryException
+ {
+ RepositorySystem repositorySystem = rs( c );
+ RepositorySystemSession session = rss( c );
+
+ ArtifactRepository repository = repositorySystem.buildArtifactRepository( repo );
+
+ if ( session != null )
+ {
+ repositorySystem.injectMirror( session, Arrays.asList( repository ) );
+ repositorySystem.injectProxy( session, Arrays.asList( repository ) );
+ repositorySystem.injectAuthentication( session, Arrays.asList( repository ) );
+ }
+
+ return repository;
+ }
+
+ private static RepositorySystem rs( PlexusContainer c )
+ {
+ try
+ {
+ return c.lookup( RepositorySystem.class );
+ }
+ catch ( ComponentLookupException e )
+ {
+ throw new IllegalStateException( e );
+ }
+ }
+
+ private static RepositorySystemSession rss( PlexusContainer c )
+ {
+ try
+ {
+ LegacySupport legacySupport = c.lookup( LegacySupport.class );
+
+ return legacySupport.getRepositorySession();
+ }
+ catch ( ComponentLookupException e )
+ {
+ throw new IllegalStateException( e );
+ }
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java
new file mode 100644
index 00000000..4b08eb96
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java
@@ -0,0 +1,752 @@
+package org.apache.maven.project.inheritance;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.Collection;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.StringTokenizer;
+import java.util.TreeMap;
+
+import org.apache.maven.model.Build;
+import org.apache.maven.model.Dependency;
+import org.apache.maven.model.DependencyManagement;
+import org.apache.maven.model.DeploymentRepository;
+import org.apache.maven.model.DistributionManagement;
+import org.apache.maven.model.Extension;
+import org.apache.maven.model.Model;
+import org.apache.maven.model.PluginManagement;
+import org.apache.maven.model.ReportPlugin;
+import org.apache.maven.model.ReportSet;
+import org.apache.maven.model.Reporting;
+import org.apache.maven.model.Resource;
+import org.apache.maven.model.Scm;
+import org.apache.maven.model.Site;
+import org.apache.maven.project.ModelUtils;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.util.StringUtils;
+import org.codehaus.plexus.util.xml.Xpp3Dom;
+
+@Component( role = ModelInheritanceAssembler.class )
+public class DefaultModelInheritanceAssembler
+ implements ModelInheritanceAssembler
+{
+ // TODO: Remove this!
+ @SuppressWarnings( "unchecked" )
+ public void assembleBuildInheritance( Build childBuild, Build parentBuild, boolean handleAsInheritance )
+ {
+ // The build has been set but we want to step in here and fill in
+ // values that have not been set by the child.
+
+ if ( childBuild.getSourceDirectory() == null )
+ {
+ childBuild.setSourceDirectory( parentBuild.getSourceDirectory() );
+ }
+
+ if ( childBuild.getScriptSourceDirectory() == null )
+ {
+ childBuild.setScriptSourceDirectory( parentBuild.getScriptSourceDirectory() );
+ }
+
+ if ( childBuild.getTestSourceDirectory() == null )
+ {
+ childBuild.setTestSourceDirectory( parentBuild.getTestSourceDirectory() );
+ }
+
+ if ( childBuild.getOutputDirectory() == null )
+ {
+ childBuild.setOutputDirectory( parentBuild.getOutputDirectory() );
+ }
+
+ if ( childBuild.getTestOutputDirectory() == null )
+ {
+ childBuild.setTestOutputDirectory( parentBuild.getTestOutputDirectory() );
+ }
+
+ // Extensions are accumulated
+ mergeExtensionLists( childBuild, parentBuild );
+
+ if ( childBuild.getDirectory() == null )
+ {
+ childBuild.setDirectory( parentBuild.getDirectory() );
+ }
+
+ if ( childBuild.getDefaultGoal() == null )
+ {
+ childBuild.setDefaultGoal( parentBuild.getDefaultGoal() );
+ }
+
+ if ( childBuild.getFinalName() == null )
+ {
+ childBuild.setFinalName( parentBuild.getFinalName() );
+ }
+
+ ModelUtils.mergeFilterLists( childBuild.getFilters(), parentBuild.getFilters() );
+
+ List resources = childBuild.getResources();
+ if ( ( resources == null ) || resources.isEmpty() )
+ {
+ childBuild.setResources( parentBuild.getResources() );
+ }
+
+ resources = childBuild.getTestResources();
+ if ( ( resources == null ) || resources.isEmpty() )
+ {
+ childBuild.setTestResources( parentBuild.getTestResources() );
+ }
+
+ // Plugins are aggregated if Plugin.inherit != false
+ ModelUtils.mergePluginLists( childBuild, parentBuild, handleAsInheritance );
+
+ // Plugin management :: aggregate
+ PluginManagement dominantPM = childBuild.getPluginManagement();
+ PluginManagement recessivePM = parentBuild.getPluginManagement();
+
+ if ( ( dominantPM == null ) && ( recessivePM != null ) )
+ {
+ // FIXME: Filter out the inherited == false stuff!
+ childBuild.setPluginManagement( recessivePM );
+ }
+ else
+ {
+ ModelUtils.mergePluginLists( childBuild.getPluginManagement(), parentBuild.getPluginManagement(), false );
+ }
+ }
+
+ private void assembleScmInheritance( Model child, Model parent, String childPathAdjustment, boolean appendPaths )
+ {
+ if ( parent.getScm() != null )
+ {
+ Scm parentScm = parent.getScm();
+
+ Scm childScm = child.getScm();
+
+ if ( childScm == null )
+ {
+ childScm = new Scm();
+
+ child.setScm( childScm );
+ }
+
+ if ( StringUtils.isEmpty( childScm.getConnection() ) && !StringUtils.isEmpty( parentScm.getConnection() ) )
+ {
+ childScm.setConnection(
+ appendPath( parentScm.getConnection(), child.getArtifactId(), childPathAdjustment, appendPaths ) );
+ }
+
+ if ( StringUtils.isEmpty( childScm.getDeveloperConnection() )
+ && !StringUtils.isEmpty( parentScm.getDeveloperConnection() ) )
+ {
+ childScm
+ .setDeveloperConnection( appendPath( parentScm.getDeveloperConnection(), child.getArtifactId(),
+ childPathAdjustment, appendPaths ) );
+ }
+
+ if ( StringUtils.isEmpty( childScm.getUrl() ) && !StringUtils.isEmpty( parentScm.getUrl() ) )
+ {
+ childScm.setUrl(
+ appendPath( parentScm.getUrl(), child.getArtifactId(), childPathAdjustment, appendPaths ) );
+ }
+ }
+ }
+
+ public void copyModel( Model dest, Model source )
+ {
+ assembleModelInheritance( dest, source, null, false );
+ }
+
+ public void assembleModelInheritance( Model child, Model parent, String childPathAdjustment )
+ {
+ assembleModelInheritance( child, parent, childPathAdjustment, true );
+ }
+
+ public void assembleModelInheritance( Model child, Model parent )
+ {
+ assembleModelInheritance( child, parent, null, true );
+ }
+
+ private void assembleModelInheritance( Model child, Model parent, String childPathAdjustment, boolean appendPaths )
+ {
+ // cannot inherit from null parent.
+ if ( parent == null )
+ {
+ return;
+ }
+
+ // Group id
+ if ( child.getGroupId() == null )
+ {
+ child.setGroupId( parent.getGroupId() );
+ }
+
+ // version
+ if ( child.getVersion() == null )
+ {
+ // The parent version may have resolved to something different, so we take what we asked for...
+ // instead of - child.setVersion( parent.getVersion() );
+
+ if ( child.getParent() != null )
+ {
+ child.setVersion( child.getParent().getVersion() );
+ }
+ }
+
+ // inceptionYear
+ if ( child.getInceptionYear() == null )
+ {
+ child.setInceptionYear( parent.getInceptionYear() );
+ }
+
+ // url
+ if ( child.getUrl() == null )
+ {
+ if ( parent.getUrl() != null )
+ {
+ child.setUrl( appendPath( parent.getUrl(), child.getArtifactId(), childPathAdjustment, appendPaths ) );
+ }
+ else
+ {
+ child.setUrl( parent.getUrl() );
+ }
+ }
+
+ assembleDistributionInheritence( child, parent, childPathAdjustment, appendPaths );
+
+ // issueManagement
+ if ( child.getIssueManagement() == null )
+ {
+ child.setIssueManagement( parent.getIssueManagement() );
+ }
+
+ // description
+ if ( child.getDescription() == null )
+ {
+ child.setDescription( parent.getDescription() );
+ }
+
+ // Organization
+ if ( child.getOrganization() == null )
+ {
+ child.setOrganization( parent.getOrganization() );
+ }
+
+ // Scm
+ assembleScmInheritance( child, parent, childPathAdjustment, appendPaths );
+
+ // ciManagement
+ if ( child.getCiManagement() == null )
+ {
+ child.setCiManagement( parent.getCiManagement() );
+ }
+
+ // developers
+ if ( child.getDevelopers().size() == 0 )
+ {
+ child.setDevelopers( parent.getDevelopers() );
+ }
+
+ // licenses
+ if ( child.getLicenses().size() == 0 )
+ {
+ child.setLicenses( parent.getLicenses() );
+ }
+
+ // developers
+ if ( child.getContributors().size() == 0 )
+ {
+ child.setContributors( parent.getContributors() );
+ }
+
+ // mailingLists
+ if ( child.getMailingLists().size() == 0 )
+ {
+ child.setMailingLists( parent.getMailingLists() );
+ }
+
+ // Build
+ assembleBuildInheritance( child, parent );
+
+ assembleDependencyInheritance( child, parent );
+
+ child.setRepositories( ModelUtils.mergeRepositoryLists( child.getRepositories(), parent.getRepositories() ) );
+// child.setPluginRepositories(
+// ModelUtils.mergeRepositoryLists( child.getPluginRepositories(), parent.getPluginRepositories() ) );
+
+ assembleReportingInheritance( child, parent );
+
+ assembleDependencyManagementInheritance( child, parent );
+
+ Properties props = new Properties();
+ props.putAll( parent.getProperties() );
+ props.putAll( child.getProperties() );
+
+ child.setProperties( props );
+ }
+
+ // TODO: Remove this!
+ @SuppressWarnings( "unchecked" )
+ private void assembleDependencyManagementInheritance( Model child, Model parent )
+ {
+ DependencyManagement parentDepMgmt = parent.getDependencyManagement();
+
+ DependencyManagement childDepMgmt = child.getDependencyManagement();
+
+ if ( parentDepMgmt != null )
+ {
+ if ( childDepMgmt == null )
+ {
+ child.setDependencyManagement( parentDepMgmt );
+ }
+ else
+ {
+ List childDeps = childDepMgmt.getDependencies();
+
+ Map mappedChildDeps = new TreeMap();
+ for ( Dependency dep : childDeps )
+ {
+ mappedChildDeps.put( dep.getManagementKey(), dep );
+ }
+
+ for ( Dependency dep : parentDepMgmt.getDependencies() )
+ {
+ if ( !mappedChildDeps.containsKey( dep.getManagementKey() ) )
+ {
+ childDepMgmt.addDependency( dep );
+ }
+ }
+ }
+ }
+ }
+
+ private void assembleReportingInheritance( Model child, Model parent )
+ {
+ // Reports :: aggregate
+ Reporting childReporting = child.getReporting();
+ Reporting parentReporting = parent.getReporting();
+
+ if ( parentReporting != null )
+ {
+ if ( childReporting == null )
+ {
+ childReporting = new Reporting();
+ child.setReporting( childReporting );
+ }
+
+ childReporting.setExcludeDefaults( parentReporting.isExcludeDefaults() );
+
+ if ( StringUtils.isEmpty( childReporting.getOutputDirectory() ) )
+ {
+ childReporting.setOutputDirectory( parentReporting.getOutputDirectory() );
+ }
+
+ mergeReportPluginLists( childReporting, parentReporting, true );
+ }
+ }
+
+ private static void mergeReportPluginLists( Reporting child, Reporting parent, boolean handleAsInheritance )
+ {
+ if ( ( child == null ) || ( parent == null ) )
+ {
+ // nothing to do.
+ return;
+ }
+
+ List parentPlugins = parent.getPlugins();
+
+ if ( ( parentPlugins != null ) && !parentPlugins.isEmpty() )
+ {
+ Map assembledPlugins = new TreeMap();
+
+ Map childPlugins = child.getReportPluginsAsMap();
+
+ for ( ReportPlugin parentPlugin : parentPlugins )
+ {
+ String parentInherited = parentPlugin.getInherited();
+
+ if ( !handleAsInheritance || ( parentInherited == null ) || Boolean.valueOf( parentInherited ) )
+ {
+
+ ReportPlugin assembledPlugin = parentPlugin;
+
+ ReportPlugin childPlugin = childPlugins.get( parentPlugin.getKey() );
+
+ if ( childPlugin != null )
+ {
+ assembledPlugin = childPlugin;
+
+ mergeReportPluginDefinitions( childPlugin, parentPlugin, handleAsInheritance );
+ }
+
+ if ( handleAsInheritance && ( parentInherited == null ) )
+ {
+ assembledPlugin.unsetInheritanceApplied();
+ }
+
+ assembledPlugins.put( assembledPlugin.getKey(), assembledPlugin );
+ }
+ }
+
+ for ( ReportPlugin childPlugin : childPlugins.values() )
+ {
+ if ( !assembledPlugins.containsKey( childPlugin.getKey() ) )
+ {
+ assembledPlugins.put( childPlugin.getKey(), childPlugin );
+ }
+ }
+
+ child.setPlugins( new ArrayList( assembledPlugins.values() ) );
+
+ child.flushReportPluginMap();
+ }
+ }
+
+ private static void mergeReportSetDefinitions( ReportSet child, ReportSet parent )
+ {
+ List parentReports = parent.getReports();
+ List childReports = child.getReports();
+
+ List reports = new ArrayList();
+
+ if ( ( childReports != null ) && !childReports.isEmpty() )
+ {
+ reports.addAll( childReports );
+ }
+
+ if ( parentReports != null )
+ {
+ for ( String report : parentReports )
+ {
+ if ( !reports.contains( report ) )
+ {
+ reports.add( report );
+ }
+ }
+ }
+
+ child.setReports( reports );
+
+ Xpp3Dom childConfiguration = (Xpp3Dom) child.getConfiguration();
+ Xpp3Dom parentConfiguration = (Xpp3Dom) parent.getConfiguration();
+
+ childConfiguration = Xpp3Dom.mergeXpp3Dom( childConfiguration, parentConfiguration );
+
+ child.setConfiguration( childConfiguration );
+ }
+
+
+ public static void mergeReportPluginDefinitions( ReportPlugin child, ReportPlugin parent,
+ boolean handleAsInheritance )
+ {
+ if ( ( child == null ) || ( parent == null ) )
+ {
+ // nothing to do.
+ return;
+ }
+
+ if ( ( child.getVersion() == null ) && ( parent.getVersion() != null ) )
+ {
+ child.setVersion( parent.getVersion() );
+ }
+
+ // from here to the end of the method is dealing with merging of the section.
+ String parentInherited = parent.getInherited();
+
+ boolean parentIsInherited = ( parentInherited == null ) || Boolean.valueOf( parentInherited );
+
+ List parentReportSets = parent.getReportSets();
+
+ if ( ( parentReportSets != null ) && !parentReportSets.isEmpty() )
+ {
+ Map assembledReportSets = new TreeMap();
+
+ Map childReportSets = child.getReportSetsAsMap();
+
+ for ( Object parentReportSet1 : parentReportSets )
+ {
+ ReportSet parentReportSet = (ReportSet) parentReportSet1;
+
+ if ( !handleAsInheritance || parentIsInherited )
+ {
+ ReportSet assembledReportSet = parentReportSet;
+
+ ReportSet childReportSet = childReportSets.get( parentReportSet.getId() );
+
+ if ( childReportSet != null )
+ {
+ mergeReportSetDefinitions( childReportSet, parentReportSet );
+
+ assembledReportSet = childReportSet;
+ }
+ else if ( handleAsInheritance && ( parentInherited == null ) )
+ {
+ parentReportSet.unsetInheritanceApplied();
+ }
+
+ assembledReportSets.put( assembledReportSet.getId(), assembledReportSet );
+ }
+ }
+
+ for ( Map.Entry entry : childReportSets.entrySet() )
+ {
+ String id = entry.getKey();
+
+ if ( !assembledReportSets.containsKey( id ) )
+ {
+ assembledReportSets.put( id, entry.getValue() );
+ }
+ }
+
+ child.setReportSets( new ArrayList( assembledReportSets.values() ) );
+
+ child.flushReportSetMap();
+ }
+
+ }
+
+ // TODO: Remove this!
+ @SuppressWarnings( "unchecked" )
+ private void assembleDependencyInheritance( Model child, Model parent )
+ {
+ Map depsMap = new LinkedHashMap();
+
+ List deps = parent.getDependencies();
+
+ if ( deps != null )
+ {
+ for ( Dependency dependency : deps )
+ {
+ depsMap.put( dependency.getManagementKey(), dependency );
+ }
+ }
+
+ deps = child.getDependencies();
+
+ if ( deps != null )
+ {
+ for ( Dependency dependency : deps )
+ {
+ depsMap.put( dependency.getManagementKey(), dependency );
+ }
+ }
+
+ child.setDependencies( new ArrayList( depsMap.values() ) );
+ }
+
+ private void assembleBuildInheritance( Model child, Model parent )
+ {
+ Build childBuild = child.getBuild();
+ Build parentBuild = parent.getBuild();
+
+ if ( parentBuild != null )
+ {
+ if ( childBuild == null )
+ {
+ childBuild = new Build();
+ child.setBuild( childBuild );
+ }
+
+ assembleBuildInheritance( childBuild, parentBuild, true );
+ }
+ }
+
+ private void assembleDistributionInheritence( Model child, Model parent, String childPathAdjustment,
+ boolean appendPaths )
+ {
+ if ( parent.getDistributionManagement() != null )
+ {
+ DistributionManagement parentDistMgmt = parent.getDistributionManagement();
+
+ DistributionManagement childDistMgmt = child.getDistributionManagement();
+
+ if ( childDistMgmt == null )
+ {
+ childDistMgmt = new DistributionManagement();
+
+ child.setDistributionManagement( childDistMgmt );
+ }
+
+ if ( childDistMgmt.getSite() == null )
+ {
+ if ( parentDistMgmt.getSite() != null )
+ {
+ Site site = new Site();
+
+ childDistMgmt.setSite( site );
+
+ site.setId( parentDistMgmt.getSite().getId() );
+
+ site.setName( parentDistMgmt.getSite().getName() );
+
+ site.setUrl( parentDistMgmt.getSite().getUrl() );
+
+ if ( site.getUrl() != null )
+ {
+ site.setUrl(
+ appendPath( site.getUrl(), child.getArtifactId(), childPathAdjustment, appendPaths ) );
+ }
+ }
+ }
+
+ if ( childDistMgmt.getRepository() == null )
+ {
+ if ( parentDistMgmt.getRepository() != null )
+ {
+ DeploymentRepository repository = copyDistributionRepository( parentDistMgmt.getRepository() );
+ childDistMgmt.setRepository( repository );
+ }
+ }
+
+ if ( childDistMgmt.getSnapshotRepository() == null )
+ {
+ if ( parentDistMgmt.getSnapshotRepository() != null )
+ {
+ DeploymentRepository repository =
+ copyDistributionRepository( parentDistMgmt.getSnapshotRepository() );
+ childDistMgmt.setSnapshotRepository( repository );
+ }
+ }
+
+ if ( StringUtils.isEmpty( childDistMgmt.getDownloadUrl() ) )
+ {
+ childDistMgmt.setDownloadUrl( parentDistMgmt.getDownloadUrl() );
+ }
+
+ // NOTE: We SHOULD NOT be inheriting status, since this is an assessment of the POM quality.
+ // NOTE: We SHOULD NOT be inheriting relocation, since this relates to a single POM
+ }
+ }
+
+ private static DeploymentRepository copyDistributionRepository( DeploymentRepository parentRepository )
+ {
+ DeploymentRepository repository = new DeploymentRepository();
+
+ repository.setId( parentRepository.getId() );
+
+ repository.setName( parentRepository.getName() );
+
+ repository.setUrl( parentRepository.getUrl() );
+
+ repository.setLayout( parentRepository.getLayout() );
+
+ repository.setUniqueVersion( parentRepository.isUniqueVersion() );
+
+ return repository;
+ }
+
+ // TODO: This should eventually be migrated to DefaultPathTranslator.
+ protected String appendPath( String parentPath, String childPath, String pathAdjustment, boolean appendPaths )
+ {
+ String uncleanPath = parentPath;
+
+ if ( appendPaths )
+ {
+ if ( pathAdjustment != null )
+ {
+ uncleanPath += "/" + pathAdjustment;
+ }
+
+ if ( childPath != null )
+ {
+ uncleanPath += "/" + childPath;
+ }
+ }
+
+ String cleanedPath = "";
+
+ int protocolIdx = uncleanPath.indexOf( "://" );
+
+ if ( protocolIdx > -1 )
+ {
+ cleanedPath = uncleanPath.substring( 0, protocolIdx + 3 );
+ uncleanPath = uncleanPath.substring( protocolIdx + 3 );
+ }
+
+ if ( uncleanPath.startsWith( "/" ) )
+ {
+ cleanedPath += "/";
+ }
+
+ return cleanedPath + resolvePath( uncleanPath );
+ }
+
+ // TODO: Move this to plexus-utils' PathTool.
+ private static String resolvePath( String uncleanPath )
+ {
+ LinkedList pathElements = new LinkedList();
+
+ StringTokenizer tokenizer = new StringTokenizer( uncleanPath, "/" );
+
+ while ( tokenizer.hasMoreTokens() )
+ {
+ String token = tokenizer.nextToken();
+
+ if ( token.equals( "" ) )
+ {
+ // Empty path entry ("...//.."), remove.
+ }
+ else if ( token.equals( ".." ) )
+ {
+ if ( pathElements.isEmpty() )
+ {
+ // FIXME: somehow report to the user
+ // that there are too many '..' elements.
+ // For now, ignore the extra '..'.
+ }
+ else
+ {
+ pathElements.removeLast();
+ }
+ }
+ else
+ {
+ pathElements.addLast( token );
+ }
+ }
+
+ StringBuilder cleanedPath = new StringBuilder();
+
+ while ( !pathElements.isEmpty() )
+ {
+ cleanedPath.append( pathElements.removeFirst() );
+ if ( !pathElements.isEmpty() )
+ {
+ cleanedPath.append( '/' );
+ }
+ }
+
+ return cleanedPath.toString();
+ }
+
+ private static void mergeExtensionLists( Build childBuild, Build parentBuild )
+ {
+ for ( Extension e : parentBuild.getExtensions() )
+ {
+ if ( !childBuild.getExtensions().contains( e ) )
+ {
+ childBuild.addExtension( e );
+ }
+ }
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/inheritance/ModelInheritanceAssembler.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/inheritance/ModelInheritanceAssembler.java
new file mode 100644
index 00000000..ef4edca5
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/inheritance/ModelInheritanceAssembler.java
@@ -0,0 +1,41 @@
+package org.apache.maven.project.inheritance;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.model.Build;
+import org.apache.maven.model.Model;
+
+/**
+ * @author Jason van Zyl
+ * @deprecated
+ */
+@Deprecated
+public interface ModelInheritanceAssembler
+{
+ String ROLE = ModelInheritanceAssembler.class.getName();
+
+ void assembleModelInheritance( Model child, Model parent, String childPathAdjustment );
+
+ void assembleModelInheritance( Model child, Model parent );
+
+ void assembleBuildInheritance( Build childBuild, Build parentBuild, boolean handleAsInheriance );
+
+ void copyModel( Model dest, Model source );
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/interpolation/AbstractStringBasedModelInterpolator.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/interpolation/AbstractStringBasedModelInterpolator.java
new file mode 100644
index 00000000..dfc3deec
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/interpolation/AbstractStringBasedModelInterpolator.java
@@ -0,0 +1,407 @@
+package org.apache.maven.project.interpolation;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.model.Model;
+import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
+import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
+import org.apache.maven.project.DefaultProjectBuilderConfiguration;
+import org.apache.maven.project.ProjectBuilderConfiguration;
+import org.apache.maven.project.path.PathTranslator;
+import org.codehaus.plexus.component.annotations.Requirement;
+import org.codehaus.plexus.interpolation.AbstractValueSource;
+import org.codehaus.plexus.interpolation.InterpolationException;
+import org.codehaus.plexus.interpolation.InterpolationPostProcessor;
+import org.codehaus.plexus.interpolation.Interpolator;
+import org.codehaus.plexus.interpolation.MapBasedValueSource;
+import org.codehaus.plexus.interpolation.ObjectBasedValueSource;
+import org.codehaus.plexus.interpolation.PrefixAwareRecursionInterceptor;
+import org.codehaus.plexus.interpolation.PrefixedObjectValueSource;
+import org.codehaus.plexus.interpolation.PrefixedValueSourceWrapper;
+import org.codehaus.plexus.interpolation.RecursionInterceptor;
+import org.codehaus.plexus.interpolation.ValueSource;
+import org.codehaus.plexus.logging.AbstractLogEnabled;
+import org.codehaus.plexus.logging.Logger;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+/**
+ * Use a regular expression search to find and resolve expressions within the POM.
+ *
+ * @author jdcasey Created on Feb 3, 2005
+ * @todo Consolidate this logic with the PluginParameterExpressionEvaluator, minus deprecations/bans.
+ */
+@Deprecated
+public abstract class AbstractStringBasedModelInterpolator
+ extends AbstractLogEnabled
+ implements ModelInterpolator, Initializable
+{
+ private static final List PROJECT_PREFIXES = Arrays.asList( "pom.", "project." );
+
+ private static final List TRANSLATED_PATH_EXPRESSIONS;
+
+ static
+ {
+ List translatedPrefixes = new ArrayList();
+
+ // MNG-1927, MNG-2124, MNG-3355:
+ // If the build section is present and the project directory is non-null, we should make
+ // sure interpolation of the directories below uses translated paths.
+ // Afterward, we'll double back and translate any paths that weren't covered during interpolation via the
+ // code below...
+ translatedPrefixes.add( "build.directory" );
+ translatedPrefixes.add( "build.outputDirectory" );
+ translatedPrefixes.add( "build.testOutputDirectory" );
+ translatedPrefixes.add( "build.sourceDirectory" );
+ translatedPrefixes.add( "build.testSourceDirectory" );
+ translatedPrefixes.add( "build.scriptSourceDirectory" );
+ translatedPrefixes.add( "reporting.outputDirectory" );
+
+ TRANSLATED_PATH_EXPRESSIONS = translatedPrefixes;
+ }
+
+ @Requirement
+ private PathTranslator pathTranslator;
+
+ private Interpolator interpolator;
+
+ private RecursionInterceptor recursionInterceptor;
+
+ // for testing.
+ protected AbstractStringBasedModelInterpolator( PathTranslator pathTranslator )
+ {
+ this.pathTranslator = pathTranslator;
+ }
+
+ /**
+ * @todo: Remove the throws clause.
+ * @throws IOException This exception is not thrown any more, and needs to be removed.
+ */
+ protected AbstractStringBasedModelInterpolator()
+ {
+ }
+
+ public Model interpolate( Model model, Map context )
+ throws ModelInterpolationException
+ {
+ return interpolate( model, context, true );
+ }
+
+ /**
+ * Serialize the inbound Model instance to a StringWriter, perform the regex replacement to resolve
+ * POM expressions, then re-parse into the resolved Model instance.
+ *
+ * NOTE: This will result in a different instance of Model being returned!!!
+ *
+ * @param model The inbound Model instance, to serialize and reference for expression resolution
+ * @param context The other context map to be used during resolution
+ * @return The resolved instance of the inbound Model. This is a different instance!
+ *
+ * @deprecated Use {@link ModelInterpolator#interpolate(Model, File, ProjectBuilderConfiguration, boolean)} instead.
+ */
+ public Model interpolate( Model model, Map context, boolean strict )
+ throws ModelInterpolationException
+ {
+ Properties props = new Properties();
+ props.putAll( context );
+
+ return interpolate( model,
+ null,
+ new DefaultProjectBuilderConfiguration().setExecutionProperties( props ),
+ true );
+ }
+
+ public Model interpolate( Model model,
+ File projectDir,
+ ProjectBuilderConfiguration config,
+ boolean debugEnabled )
+ throws ModelInterpolationException
+ {
+ StringWriter sWriter = new StringWriter( 1024 );
+
+ MavenXpp3Writer writer = new MavenXpp3Writer();
+ try
+ {
+ writer.write( sWriter, model );
+ }
+ catch ( IOException e )
+ {
+ throw new ModelInterpolationException( "Cannot serialize project model for interpolation.", e );
+ }
+
+ String serializedModel = sWriter.toString();
+ serializedModel = interpolate( serializedModel, model, projectDir, config, debugEnabled );
+
+ StringReader sReader = new StringReader( serializedModel );
+
+ MavenXpp3Reader modelReader = new MavenXpp3Reader();
+ try
+ {
+ model = modelReader.read( sReader );
+ }
+ catch ( IOException e )
+ {
+ throw new ModelInterpolationException(
+ "Cannot read project model from interpolating filter of serialized version.", e );
+ }
+ catch ( XmlPullParserException e )
+ {
+ throw new ModelInterpolationException(
+ "Cannot read project model from interpolating filter of serialized version.", e );
+ }
+
+ return model;
+ }
+
+ /**
+ * Interpolates all expressions in the src parameter.
+ *
+ * The algorithm used for each expression is:
+ *
+ * If it starts with either "pom." or "project.", the expression is evaluated against the model.
+ * If the value is null, get the value from the context.
+ * If the value is null, but the context contains the expression, don't replace the expression string
+ * with the value, and continue to find other expressions.
+ * If the value is null, get it from the model properties.
+ *
+ * @param overrideContext
+ * @param outputDebugMessages
+ */
+ public String interpolate( String src,
+ Model model,
+ final File projectDir,
+ ProjectBuilderConfiguration config,
+ boolean debug )
+ throws ModelInterpolationException
+ {
+ try
+ {
+ List valueSources = createValueSources( model, projectDir, config );
+ List postProcessors = createPostProcessors( model, projectDir, config );
+
+ return interpolateInternal( src, valueSources, postProcessors, debug );
+ }
+ finally
+ {
+ interpolator.clearAnswers();
+ }
+ }
+
+ protected List createValueSources( final Model model, final File projectDir,
+ final ProjectBuilderConfiguration config )
+ {
+ String timestampFormat = DEFAULT_BUILD_TIMESTAMP_FORMAT;
+
+ Properties modelProperties = model.getProperties();
+ if ( modelProperties != null )
+ {
+ timestampFormat = modelProperties.getProperty( BUILD_TIMESTAMP_FORMAT_PROPERTY, timestampFormat );
+ }
+
+ ValueSource modelValueSource1 = new PrefixedObjectValueSource( PROJECT_PREFIXES, model, false );
+ ValueSource modelValueSource2 = new ObjectBasedValueSource( model );
+
+ ValueSource basedirValueSource = new PrefixedValueSourceWrapper( new AbstractValueSource( false )
+ {
+ public Object getValue( String expression )
+ {
+ if ( projectDir != null && "basedir".equals( expression ) )
+ {
+ return projectDir.getAbsolutePath();
+ }
+ return null;
+ }
+ }, PROJECT_PREFIXES, true );
+ ValueSource baseUriValueSource = new PrefixedValueSourceWrapper( new AbstractValueSource( false )
+ {
+ public Object getValue( String expression )
+ {
+ if ( projectDir != null && "baseUri".equals( expression ) )
+ {
+ return projectDir.getAbsoluteFile().toURI().toString();
+ }
+ return null;
+ }
+ }, PROJECT_PREFIXES, false );
+
+ List valueSources = new ArrayList( 9 );
+
+ // NOTE: Order counts here!
+ valueSources.add( basedirValueSource );
+ valueSources.add( baseUriValueSource );
+ valueSources.add( new BuildTimestampValueSource( config.getBuildStartTime(), timestampFormat ) );
+ valueSources.add( modelValueSource1 );
+ valueSources.add( new MapBasedValueSource( config.getUserProperties() ) );
+ valueSources.add( new MapBasedValueSource( modelProperties ) );
+ valueSources.add( new MapBasedValueSource( config.getExecutionProperties() ) );
+ valueSources.add( new AbstractValueSource( false )
+ {
+ public Object getValue( String expression )
+ {
+ return config.getExecutionProperties().getProperty( "env." + expression );
+ }
+ } );
+ valueSources.add( modelValueSource2 );
+
+ return valueSources;
+ }
+
+ protected List createPostProcessors( final Model model, final File projectDir,
+ final ProjectBuilderConfiguration config )
+ {
+ return Collections.singletonList( (InterpolationPostProcessor) new PathTranslatingPostProcessor(
+ PROJECT_PREFIXES,
+ TRANSLATED_PATH_EXPRESSIONS,
+ projectDir,
+ pathTranslator ) );
+ }
+
+ @SuppressWarnings( "unchecked" )
+ protected String interpolateInternal( String src, List valueSources,
+ List postProcessors, boolean debug )
+ throws ModelInterpolationException
+ {
+ if ( !src.contains( "${" ) )
+ {
+ return src;
+ }
+
+ Logger logger = getLogger();
+
+ String result = src;
+ synchronized ( this )
+ {
+
+ for ( ValueSource vs : valueSources )
+ {
+ interpolator.addValueSource( vs );
+ }
+
+ for ( InterpolationPostProcessor postProcessor : postProcessors )
+ {
+ interpolator.addPostProcessor( postProcessor );
+ }
+
+ try
+ {
+ try
+ {
+ result = interpolator.interpolate( result, recursionInterceptor );
+ }
+ catch ( InterpolationException e )
+ {
+ throw new ModelInterpolationException( e.getMessage(), e );
+ }
+
+ if ( debug )
+ {
+ List feedback = interpolator.getFeedback();
+ if ( feedback != null && !feedback.isEmpty() )
+ {
+ logger.debug( "Maven encountered the following problems during initial POM interpolation:" );
+
+ Object last = null;
+ for ( Object next : feedback )
+ {
+ if ( next instanceof Throwable )
+ {
+ if ( last == null )
+ {
+ logger.debug( "", ( (Throwable) next ) );
+ }
+ else
+ {
+ logger.debug( String.valueOf( last ), ( (Throwable) next ) );
+ }
+ }
+ else
+ {
+ if ( last != null )
+ {
+ logger.debug( String.valueOf( last ) );
+ }
+
+ last = next;
+ }
+ }
+
+ if ( last != null )
+ {
+ logger.debug( String.valueOf( last ) );
+ }
+ }
+ }
+
+ interpolator.clearFeedback();
+ }
+ finally
+ {
+ for ( ValueSource vs : valueSources )
+ {
+ interpolator.removeValuesSource( vs );
+ }
+
+ for ( InterpolationPostProcessor postProcessor : postProcessors )
+ {
+ interpolator.removePostProcessor( postProcessor );
+ }
+ }
+ }
+
+ return result;
+ }
+
+ protected RecursionInterceptor getRecursionInterceptor()
+ {
+ return recursionInterceptor;
+ }
+
+ protected void setRecursionInterceptor( RecursionInterceptor recursionInterceptor )
+ {
+ this.recursionInterceptor = recursionInterceptor;
+ }
+
+ protected abstract Interpolator createInterpolator();
+
+ public void initialize()
+ throws InitializationException
+ {
+ interpolator = createInterpolator();
+ recursionInterceptor = new PrefixAwareRecursionInterceptor( PROJECT_PREFIXES );
+ }
+
+ protected final Interpolator getInterpolator()
+ {
+ return interpolator;
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/interpolation/BuildTimestampValueSource.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/interpolation/BuildTimestampValueSource.java
new file mode 100644
index 00000000..f6319fa6
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/interpolation/BuildTimestampValueSource.java
@@ -0,0 +1,63 @@
+package org.apache.maven.project.interpolation;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.SimpleDateFormat;
+import java.util.Date;
+
+import org.codehaus.plexus.interpolation.AbstractValueSource;
+
+/**
+ *
+ */
+@Deprecated
+public class BuildTimestampValueSource
+ extends AbstractValueSource
+{
+
+ private final Date startTime;
+
+ private final String format;
+
+ private String formattedDate;
+
+ public BuildTimestampValueSource( Date startTime, String format )
+ {
+ super( false );
+ this.startTime = startTime;
+ this.format = format;
+ }
+
+ public Object getValue( String expression )
+ {
+ if ( "build.timestamp".equals( expression ) || "maven.build.timestamp".equals( expression ) )
+ {
+ if ( formattedDate == null && startTime != null )
+ {
+ formattedDate = new SimpleDateFormat( format ).format( startTime );
+ }
+
+ return formattedDate;
+ }
+
+ return null;
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/interpolation/ModelInterpolationException.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/interpolation/ModelInterpolationException.java
new file mode 100644
index 00000000..5b02880b
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/interpolation/ModelInterpolationException.java
@@ -0,0 +1,72 @@
+package org.apache.maven.project.interpolation;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT 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 jdcasey
+ *
+ * Created on Feb 2, 2005
+ */
+@SuppressWarnings( "serial" )
+@Deprecated
+public class ModelInterpolationException
+ extends Exception
+{
+ private String expression;
+
+ private String originalMessage;
+
+ public ModelInterpolationException( String message )
+ {
+ super( message );
+ }
+
+ public ModelInterpolationException( String message, Throwable cause )
+ {
+ super( message, cause );
+ }
+
+ public ModelInterpolationException( String expression, String message, Throwable cause )
+ {
+ super( "The POM expression: " + expression + " could not be evaluated. Reason: " + message, cause );
+
+ this.expression = expression;
+ this.originalMessage = message;
+ }
+
+ public ModelInterpolationException( String expression, String message )
+ {
+ super( "The POM expression: " + expression + " could not be evaluated. Reason: " + message );
+
+ this.expression = expression;
+ this.originalMessage = message;
+ }
+
+ public String getExpression()
+ {
+ return expression;
+ }
+
+ public String getOriginalMessage()
+ {
+ return originalMessage;
+ }
+
+}
\ No newline at end of file
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/interpolation/ModelInterpolator.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/interpolation/ModelInterpolator.java
new file mode 100644
index 00000000..e1556eaf
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/interpolation/ModelInterpolator.java
@@ -0,0 +1,66 @@
+package org.apache.maven.project.interpolation;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.model.Model;
+import org.apache.maven.project.ProjectBuilderConfiguration;
+
+import java.io.File;
+import java.util.Map;
+
+/**
+ * @author jdcasey
+ *
+ * Created on Feb 2, 2005
+ */
+@Deprecated
+public interface ModelInterpolator
+{
+ String DEFAULT_BUILD_TIMESTAMP_FORMAT = "yyyyMMdd-HHmm";
+
+ String BUILD_TIMESTAMP_FORMAT_PROPERTY = "maven.build.timestamp.format";
+
+ String ROLE = ModelInterpolator.class.getName();
+
+ /**
+ * @deprecated Use {@link ModelInterpolator#interpolate(Model, File, ProjectBuilderConfiguration, boolean)} instead.
+ */
+ Model interpolate( Model project, Map context )
+ throws ModelInterpolationException;
+
+ /**
+ * @deprecated Use {@link ModelInterpolator#interpolate(Model, File, ProjectBuilderConfiguration, boolean)} instead.
+ */
+ Model interpolate( Model model, Map context, boolean strict )
+ throws ModelInterpolationException;
+
+ Model interpolate( Model model,
+ File projectDir,
+ ProjectBuilderConfiguration config,
+ boolean debugEnabled )
+ throws ModelInterpolationException;
+
+ String interpolate( String src,
+ Model model,
+ File projectDir,
+ ProjectBuilderConfiguration config,
+ boolean debugEnabled )
+ throws ModelInterpolationException;
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/interpolation/PathTranslatingPostProcessor.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/interpolation/PathTranslatingPostProcessor.java
new file mode 100644
index 00000000..da2ba056
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/interpolation/PathTranslatingPostProcessor.java
@@ -0,0 +1,64 @@
+package org.apache.maven.project.interpolation;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 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.project.path.PathTranslator;
+import org.codehaus.plexus.interpolation.InterpolationPostProcessor;
+import org.codehaus.plexus.interpolation.util.ValueSourceUtils;
+
+import java.io.File;
+import java.util.List;
+
+/**
+ *
+ */
+@Deprecated
+public class PathTranslatingPostProcessor
+ implements InterpolationPostProcessor
+{
+
+ private final List unprefixedPathKeys;
+ private final File projectDir;
+ private final PathTranslator pathTranslator;
+ private final List expressionPrefixes;
+
+ public PathTranslatingPostProcessor( List expressionPrefixes, List unprefixedPathKeys,
+ File projectDir, PathTranslator pathTranslator )
+ {
+ this.expressionPrefixes = expressionPrefixes;
+ this.unprefixedPathKeys = unprefixedPathKeys;
+ this.projectDir = projectDir;
+ this.pathTranslator = pathTranslator;
+ }
+
+ public Object execute( String expression,
+ Object value )
+ {
+ expression = ValueSourceUtils.trimPrefix( expression, expressionPrefixes, true );
+
+ if ( projectDir != null && value != null && unprefixedPathKeys.contains( expression ) )
+ {
+ return pathTranslator.alignToBaseDirectory( String.valueOf( value ), projectDir );
+ }
+
+ return value;
+ }
+
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java
new file mode 100644
index 00000000..4e251aee
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java
@@ -0,0 +1,58 @@
+package org.apache.maven.project.interpolation;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES 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.Properties;
+
+import org.apache.maven.project.path.PathTranslator;
+import org.codehaus.plexus.interpolation.Interpolator;
+import org.codehaus.plexus.interpolation.RegexBasedInterpolator;
+
+/**
+ * Use a regular expression search to find and resolve expressions within the POM.
+ *
+ * @author jdcasey Created on Feb 3, 2005
+ * @todo Consolidate this logic with the PluginParameterExpressionEvaluator, minus deprecations/bans.
+ */
+@Deprecated
+public class RegexBasedModelInterpolator
+ extends AbstractStringBasedModelInterpolator
+{
+
+ public RegexBasedModelInterpolator()
+ throws IOException
+ {
+ }
+
+ public RegexBasedModelInterpolator( PathTranslator pathTranslator )
+ {
+ super( pathTranslator );
+ }
+
+ public RegexBasedModelInterpolator( Properties envars )
+ {
+ }
+
+ protected Interpolator createInterpolator()
+ {
+ return new RegexBasedInterpolator( true );
+ }
+}
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/interpolation/StringSearchModelInterpolator.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/interpolation/StringSearchModelInterpolator.java
new file mode 100644
index 00000000..864f57f0
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/project/interpolation/StringSearchModelInterpolator.java
@@ -0,0 +1,410 @@
+package org.apache.maven.project.interpolation;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.model.Model;
+import org.apache.maven.project.ProjectBuilderConfiguration;
+import org.apache.maven.project.path.PathTranslator;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.interpolation.InterpolationPostProcessor;
+import org.codehaus.plexus.interpolation.Interpolator;
+import org.codehaus.plexus.interpolation.StringSearchInterpolator;
+import org.codehaus.plexus.interpolation.ValueSource;
+import org.codehaus.plexus.logging.Logger;
+
+import java.io.File;
+import java.lang.reflect.Array;
+import java.lang.reflect.Field;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.WeakHashMap;
+
+@Deprecated
+@Component( role = ModelInterpolator.class )
+public class StringSearchModelInterpolator
+ extends AbstractStringBasedModelInterpolator
+{
+
+ private static final Map, Field[]> fieldsByClass = new WeakHashMap, Field[]>();
+ private static final Map, Boolean> fieldIsPrimitiveByClass = new WeakHashMap, Boolean>();
+
+ public StringSearchModelInterpolator()
+ {
+ }
+
+ public StringSearchModelInterpolator( PathTranslator pathTranslator )
+ {
+ super( pathTranslator );
+ }
+
+ public Model interpolate( Model model, File projectDir, ProjectBuilderConfiguration config, boolean debugEnabled )
+ throws ModelInterpolationException
+ {
+ interpolateObject( model, model, projectDir, config, debugEnabled );
+
+ return model;
+ }
+
+ protected void interpolateObject( Object obj, Model model, File projectDir, ProjectBuilderConfiguration config,
+ boolean debugEnabled )
+ throws ModelInterpolationException
+ {
+ try
+ {
+ List valueSources = createValueSources( model, projectDir, config );
+ List postProcessors = createPostProcessors( model, projectDir, config );
+
+ InterpolateObjectAction action =
+ new InterpolateObjectAction( obj, valueSources, postProcessors, debugEnabled,
+ this, getLogger() );
+
+ ModelInterpolationException error = AccessController.doPrivileged( action );
+
+ if ( error != null )
+ {
+ throw error;
+ }
+ }
+ finally
+ {
+ getInterpolator().clearAnswers();
+ }
+ }
+
+ protected Interpolator createInterpolator()
+ {
+ StringSearchInterpolator interpolator = new StringSearchInterpolator();
+ interpolator.setCacheAnswers( true );
+
+ return interpolator;
+ }
+
+ private static final class InterpolateObjectAction implements PrivilegedAction
+ {
+
+ private final boolean debugEnabled;
+ private final LinkedList interpolationTargets;
+ private final StringSearchModelInterpolator modelInterpolator;
+ private final Logger logger;
+ private final List valueSources;
+ private final List postProcessors;
+
+ public InterpolateObjectAction( Object target, List valueSources,
+ List postProcessors, boolean debugEnabled,
+ StringSearchModelInterpolator modelInterpolator, Logger logger )
+ {
+ this.valueSources = valueSources;
+ this.postProcessors = postProcessors;
+ this.debugEnabled = debugEnabled;
+
+ this.interpolationTargets = new LinkedList