From 926610fc5362f0725abdb01bf96b88bfb222430f Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Thu, 14 Jun 2007 15:25:42 +0000 Subject: [PATCH] [MRM-410] Dependency Tree is not shown in artifact details screen. Adding support libs. git-svn-id: https://svn.apache.org/repos/asf/maven/archiva/trunk@547277 13f79535-47bb-0310-9956-ffa450edef68 --- .../ProjectModelToDatabaseConsumer.java | 7 +- archiva-base/archiva-dependency-graph/pom.xml | 105 + .../dependency/DependencyGraphFactory.java | 200 + .../dependency/graph/DependencyGraph.java | 228 + .../graph/DependencyGraphBuilder.java | 51 + .../dependency/graph/DependencyGraphEdge.java | 188 + .../dependency/graph/DependencyGraphKeys.java | 79 + .../dependency/graph/DependencyGraphNode.java | 191 + .../graph/DependencyGraphUtils.java | 289 ++ .../graph/DependencyResolutionEvent.java | 57 + .../dependency/graph/GraphListener.java | 16 + .../dependency/graph/GraphPhaseEvent.java | 79 + .../archiva/dependency/graph/GraphTask.java | 44 + .../dependency/graph/GraphTaskException.java | 42 + .../graph/PotentialCyclicEdgeProducer.java | 31 + .../graph/functors/EdgeCyclicPredicate.java | 55 + .../graph/functors/EdgeDisabledPredicate.java | 48 + .../functors/EdgeExactScopePredicate.java | 71 + .../graph/functors/EdgeExcludedPredicate.java | 54 + .../graph/functors/EdgeFromPredicate.java | 62 + .../graph/functors/EdgeScopeClosure.java | 49 + .../graph/functors/EdgeToPredicate.java | 55 + .../functors/EdgeWithinScopePredicate.java | 54 + .../functors/NodeFromParentPredicate.java | 46 + .../graph/functors/NodeInEdgePredicate.java | 54 + .../graph/functors/NodePredicate.java | 59 + .../graph/functors/OrphanedNodePredicate.java | 56 + .../ToArtifactReferenceTransformer.java | 43 + .../UnresolvedGraphNodePredicate.java | 53 + .../tasks/AbstractReduceEdgeVisitor.java | 43 + .../tasks/DependencyManagementApplier.java | 218 + .../tasks/DependencyManagementStack.java | 152 + .../graph/tasks/FlagCyclicEdgesTask.java | 34 + .../graph/tasks/FlagCyclicEdgesVisitor.java | 70 + .../graph/tasks/FlagExcludedEdgesTask.java | 52 + .../graph/tasks/FlagExcludedEdgesVisitor.java | 86 + .../dependency/graph/tasks/GraphCopier.java | 81 + .../PopulateDependencyManagementTask.java | 53 + .../graph/tasks/PopulateGraphMasterTask.java | 92 + .../graph/tasks/ReduceEnabledEdgesTask.java | 35 + .../tasks/ReduceEnabledEdgesVisitor.java | 42 + .../graph/tasks/ReduceScopeTask.java | 50 + .../graph/tasks/ReduceScopeVisitor.java | 51 + .../tasks/ReduceTransitiveEdgesTask.java | 53 + .../tasks/ReduceTransitiveEdgesVisitor.java | 161 + .../graph/tasks/RefineConflictsTask.java | 98 + .../graph/tasks/RefineConflictsVisitor.java | 303 ++ .../graph/tasks/ResolveGraphTask.java | 114 + .../graph/tasks/UpdateScopesTask.java | 35 + .../graph/tasks/UpdateScopesVisitor.java | 82 + .../dependency/graph/walk/BaseVisitor.java | 73 + .../graph/walk/DependencyGraphVisitor.java | 76 + .../graph/walk/DependencyGraphWalker.java | 89 + .../graph/walk/WalkBreadthFirstSearch.java | 157 + .../graph/walk/WalkDepthFirstSearch.java | 145 + ...bstractDependencyGraphFactoryTestCase.java | 392 ++ .../graph/AbstractMemoryRepository.java | 175 + .../archiva/dependency/graph/AllTests.java | 51 + .../ArchivaCommonDependencyGraphTest.java | 77 + .../graph/ArchivaCommonMemoryRepository.java | 3469 ++++++++++++++ .../ArchivaWebappDependencyGraphTest.java | 200 + .../graph/ArchivaWebappMemoryRepository.java | 3469 ++++++++++++++ .../ArchivaXmlToolsDependencyGraphTest.java | 86 + .../ArchivaXmlToolsMemoryRepository.java | 3469 ++++++++++++++ .../ContinuumStoreDependencyGraphTest.java | 98 + .../graph/ContinuumStoreMemoryRepository.java | 4142 +++++++++++++++++ .../DepManDeepVersionDependencyGraphTest.java | 74 + .../DepManDeepVersionMemoryRepository.java | 77 + .../dependency/graph/GraphvizDotTool.java | 346 ++ .../maven/archiva/dependency/graph/Keys.java | 47 + ...tInfoReportsPluginDependencyGraphTest.java | 139 + ...jectInfoReportsPluginMemoryRepository.java | 1040 +++++ .../dependency/graph/MemoryRepository.java | 35 + ...emoryRepositoryDependencyGraphBuilder.java | 96 + .../graph/SimpleDependencyGraphTest.java | 71 + .../graph/SimpleMemoryRepository.java | 48 + .../WagonManagerDependencyGraphTest.java | 104 + .../graph/WagonManagerMemoryRepository.java | 772 +++ .../graph/functors/ToKeyTransformer.java | 67 + .../tasks/DependencyManagementStackTest.java | 227 + .../graph/walk/DependencyGraphWalkerTest.java | 231 + .../dependency/graph/walk/WalkCollector.java | 98 + .../maven/archiva/model/DependencyScope.java | 57 + .../src/main/mdo/archiva-base.xml | 122 +- .../archiva/model/DependencyScopeTest.java | 73 + archiva-base/archiva-repository-layer/pom.xml | 5 + .../repository/project/ProjectModelMerge.java | 61 +- .../ProjectModelBasedGraphBuilder.java | 116 + .../filters/EffectiveProjectModelFilter.java | 91 +- .../filters/ProjectModelExpressionFilter.java | 22 +- .../readers/ProjectModel400Reader.java | 15 + .../ProjectModelResolutionListener.java | 78 + .../resolvers/ProjectModelResolverStack.java | 244 + .../EffectiveProjectModelFilterTest.java | 2 +- archiva-base/pom.xml | 1 + tools/maven-archivadev-plugin/pom.xml | 96 + ...chivaDependencyResolutionTestCaseMojo.java | 133 + .../dev/functors/ArtifactComparator.java | 63 + .../DependencyNodeToArtifactTransformer.java | 44 + .../functors/MatchingDependencyPredicate.java | 66 + .../plugins/dev/testgen/AbstractCreator.java | 349 ++ .../testgen/DependencyGraphTestCreator.java | 366 ++ .../plugins/dev/testgen/DependencyUtils.java | 83 + .../dev/testgen/MemoryRepositoryCreator.java | 439 ++ .../plugins/dev/utils/VariableNames.java | 50 + tools/pom.xml | 37 + 106 files changed, 26434 insertions(+), 90 deletions(-) create mode 100644 archiva-base/archiva-dependency-graph/pom.xml create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/DependencyGraphFactory.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraph.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphBuilder.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphEdge.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphKeys.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphNode.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphUtils.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyResolutionEvent.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/GraphListener.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/GraphPhaseEvent.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/GraphTask.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/GraphTaskException.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/PotentialCyclicEdgeProducer.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeCyclicPredicate.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeDisabledPredicate.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeExactScopePredicate.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeExcludedPredicate.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeFromPredicate.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeScopeClosure.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeToPredicate.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeWithinScopePredicate.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/NodeFromParentPredicate.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/NodeInEdgePredicate.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/NodePredicate.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/OrphanedNodePredicate.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/ToArtifactReferenceTransformer.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/UnresolvedGraphNodePredicate.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/AbstractReduceEdgeVisitor.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/DependencyManagementApplier.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/DependencyManagementStack.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/FlagCyclicEdgesTask.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/FlagCyclicEdgesVisitor.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/FlagExcludedEdgesTask.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/FlagExcludedEdgesVisitor.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/GraphCopier.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/PopulateDependencyManagementTask.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/PopulateGraphMasterTask.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceEnabledEdgesTask.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceEnabledEdgesVisitor.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceScopeTask.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceScopeVisitor.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceTransitiveEdgesTask.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceTransitiveEdgesVisitor.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/RefineConflictsTask.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/RefineConflictsVisitor.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ResolveGraphTask.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/UpdateScopesTask.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/UpdateScopesVisitor.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/BaseVisitor.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/DependencyGraphVisitor.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/DependencyGraphWalker.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/WalkBreadthFirstSearch.java create mode 100644 archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/WalkDepthFirstSearch.java create mode 100644 archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/AbstractDependencyGraphFactoryTestCase.java create mode 100644 archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/AbstractMemoryRepository.java create mode 100644 archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/AllTests.java create mode 100644 archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaCommonDependencyGraphTest.java create mode 100644 archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaCommonMemoryRepository.java create mode 100644 archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaWebappDependencyGraphTest.java create mode 100644 archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaWebappMemoryRepository.java create mode 100644 archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaXmlToolsDependencyGraphTest.java create mode 100644 archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaXmlToolsMemoryRepository.java create mode 100644 archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ContinuumStoreDependencyGraphTest.java create mode 100644 archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ContinuumStoreMemoryRepository.java create mode 100644 archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/DepManDeepVersionDependencyGraphTest.java create mode 100644 archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/DepManDeepVersionMemoryRepository.java create mode 100644 archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/GraphvizDotTool.java create mode 100644 archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/Keys.java create mode 100644 archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MavenProjectInfoReportsPluginDependencyGraphTest.java create mode 100644 archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MavenProjectInfoReportsPluginMemoryRepository.java create mode 100644 archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MemoryRepository.java create mode 100644 archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MemoryRepositoryDependencyGraphBuilder.java create mode 100644 archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/SimpleDependencyGraphTest.java create mode 100644 archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/SimpleMemoryRepository.java create mode 100644 archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/WagonManagerDependencyGraphTest.java create mode 100644 archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/WagonManagerMemoryRepository.java create mode 100644 archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/functors/ToKeyTransformer.java create mode 100644 archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/tasks/DependencyManagementStackTest.java create mode 100644 archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/walk/DependencyGraphWalkerTest.java create mode 100644 archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/walk/WalkCollector.java create mode 100644 archiva-base/archiva-model/src/test/java/org/apache/maven/archiva/model/DependencyScopeTest.java create mode 100644 archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/dependencies/ProjectModelBasedGraphBuilder.java create mode 100644 archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/ProjectModelResolutionListener.java create mode 100644 archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/ProjectModelResolverStack.java create mode 100644 tools/maven-archivadev-plugin/pom.xml create mode 100644 tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/CreateArchivaDependencyResolutionTestCaseMojo.java create mode 100644 tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/functors/ArtifactComparator.java create mode 100644 tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/functors/DependencyNodeToArtifactTransformer.java create mode 100644 tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/functors/MatchingDependencyPredicate.java create mode 100644 tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/testgen/AbstractCreator.java create mode 100644 tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/testgen/DependencyGraphTestCreator.java create mode 100644 tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/testgen/DependencyUtils.java create mode 100644 tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/testgen/MemoryRepositoryCreator.java create mode 100644 tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/utils/VariableNames.java create mode 100644 tools/pom.xml diff --git a/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ProjectModelToDatabaseConsumer.java b/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ProjectModelToDatabaseConsumer.java index 688e52add..f3d43ca38 100644 --- a/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ProjectModelToDatabaseConsumer.java +++ b/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ProjectModelToDatabaseConsumer.java @@ -300,18 +300,19 @@ public class ProjectModelToDatabaseConsumer { synchronized ( effectiveModelFilter ) { - effectiveModelFilter.clearResolvers(); + effectiveModelFilter.getProjectModelResolverStack().clearResolvers(); // Add the database resolver first! - effectiveModelFilter.addProjectModelResolver( databaseResolver ); + effectiveModelFilter.getProjectModelResolverStack().addProjectModelResolver( databaseResolver ); List ret = this.resolverFactory.getAllResolvers(); Iterator it = ret.iterator(); while ( it.hasNext() ) { ProjectModelResolver resolver = (ProjectModelResolver) it.next(); + // TODO: Use listener to perform database saving of found models, instead of wrapped resolver. ProjectModelResolver wrapped = new WrappedDatabaseProjectModelResolver( dao, resolver ); - effectiveModelFilter.addProjectModelResolver( wrapped ); + effectiveModelFilter.getProjectModelResolverStack().addProjectModelResolver( wrapped ); } } } diff --git a/archiva-base/archiva-dependency-graph/pom.xml b/archiva-base/archiva-dependency-graph/pom.xml new file mode 100644 index 000000000..7ade00459 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/pom.xml @@ -0,0 +1,105 @@ + + + + + + org.apache.maven.archiva + archiva-base + 1.0-alpha-2-SNAPSHOT + + 4.0.0 + archiva-dependency-graph + Archiva Base :: Dependency Graph + + + org.apache.maven.archiva + archiva-configuration + + + org.apache.maven.archiva + archiva-model + + + org.apache.maven.archiva + archiva-xml-tools + + + org.codehaus.plexus + plexus-expression-evaluator + + + org.codehaus.plexus + plexus-utils + + + org.codehaus.plexus + plexus-component-api + + + org.codehaus.plexus + plexus-container-default + + + org.slf4j + slf4j-log4j12 + + + org.codehaus.plexus.cache + plexus-cache-api + compile + + + org.codehaus.plexus.cache + plexus-cache-ehcache + compile + + + xmlunit + xmlunit + test + + + org.codehaus.plexus.registry + plexus-registry-commons + test + + + easymock + easymock + test + + + + + + org.codehaus.plexus + plexus-maven-plugin + + + descriptor + + descriptor + + + + + + + diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/DependencyGraphFactory.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/DependencyGraphFactory.java new file mode 100644 index 000000000..0c8bcfa23 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/DependencyGraphFactory.java @@ -0,0 +1,200 @@ +package org.apache.maven.archiva.dependency; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.dependency.graph.DependencyGraph; +import org.apache.maven.archiva.dependency.graph.DependencyGraphBuilder; +import org.apache.maven.archiva.dependency.graph.GraphListener; +import org.apache.maven.archiva.dependency.graph.GraphPhaseEvent; +import org.apache.maven.archiva.dependency.graph.GraphTask; +import org.apache.maven.archiva.dependency.graph.GraphTaskException; +import org.apache.maven.archiva.dependency.graph.PotentialCyclicEdgeProducer; +import org.apache.maven.archiva.dependency.graph.tasks.FlagCyclicEdgesTask; +import org.apache.maven.archiva.dependency.graph.tasks.FlagExcludedEdgesTask; +import org.apache.maven.archiva.dependency.graph.tasks.PopulateGraphMasterTask; +import org.apache.maven.archiva.dependency.graph.tasks.ReduceEnabledEdgesTask; +import org.apache.maven.archiva.dependency.graph.tasks.ReduceScopeTask; +import org.apache.maven.archiva.dependency.graph.tasks.ReduceTransitiveEdgesTask; +import org.apache.maven.archiva.dependency.graph.tasks.RefineConflictsTask; +import org.apache.maven.archiva.dependency.graph.tasks.UpdateScopesTask; +import org.apache.maven.archiva.model.DependencyScope; +import org.apache.maven.archiva.model.VersionedReference; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +/** + * DependencyGraphFactory + * + * @author Joakim Erdfelt + * @version $Id$ + * + * @plexus.component role="org.apache.maven.archiva.dependency.DependencyGraphFactory" + */ +public class DependencyGraphFactory +{ + private GraphTask taskFlagCyclicEdges; + + private PopulateGraphMasterTask taskPopulateGraph; + + private ReduceScopeTask taskReduceScope; + + private List listeners; + + private DependencyGraphBuilder graphBuilder; + + private List tasks; + + public DependencyGraphFactory() + { + listeners = new ArrayList(); + + taskFlagCyclicEdges = new FlagCyclicEdgesTask(); + taskPopulateGraph = new PopulateGraphMasterTask(); + taskReduceScope = new ReduceScopeTask( DependencyScope.TEST ); + + tasks = new ArrayList(); + + /* Take the basic graph, and expand the nodes fully, including depman. + */ + tasks.add( taskPopulateGraph ); + + /* Identify, flag, and disable excluded edges. + */ + tasks.add( new FlagExcludedEdgesTask() ); + + /* Reduce the edges of the graph to only those that are enabled. + */ + tasks.add( new ReduceEnabledEdgesTask() ); + + /* Identify dependencies that conflict, resolve to single node. + * + * This will ... + * 1) filter the distant conflicts away for the nearer ones. + * 2) same distance nodes will pick 'newest' version. + * + * This can cause a collapsing of node versions. + */ + tasks.add( new RefineConflictsTask() ); + + /* Reduce the scope of the graph to those visible by the 'test' scope. + */ + tasks.add( taskReduceScope ); + + /* Reduce the edges of the graph. Use the transitive reduction algorithm + * to remove redundant edges. + */ + tasks.add( new ReduceTransitiveEdgesTask() ); + + /* Update the scopes of the edges to conform to the parent setting. + */ + tasks.add( new UpdateScopesTask() ); + } + + public void addGraphListener( GraphListener listener ) + { + this.listeners.add( listener ); + } + + /** + * Get the Graph for a specific Versioned Project Reference. + * + * @param versionedProjectReference + * @return + */ + public DependencyGraph getGraph( VersionedReference versionedProjectReference ) + throws GraphTaskException + { + DependencyGraph graph = graphBuilder.createGraph( versionedProjectReference ); + + triggerGraphPhase( GraphPhaseEvent.GRAPH_NEW, null, graph ); + + Iterator it = this.tasks.iterator(); + while ( it.hasNext() ) + { + GraphTask task = (GraphTask) it.next(); + try + { + triggerGraphPhase( GraphPhaseEvent.GRAPH_TASK_PRE, task, graph ); + task.executeTask( graph ); + if ( task instanceof PotentialCyclicEdgeProducer ) + { + taskFlagCyclicEdges.executeTask( graph ); + } + triggerGraphPhase( GraphPhaseEvent.GRAPH_TASK_POST, task, graph ); + } + catch ( GraphTaskException e ) + { + triggerGraphError( e, graph ); + throw e; + } + catch ( Exception e ) + { + GraphTaskException gte = new GraphTaskException( e.getMessage(), e ); + triggerGraphError( gte, graph ); + throw gte; + } + } + + triggerGraphPhase( GraphPhaseEvent.GRAPH_DONE, null, graph ); + + return graph; + } + + public void removeGraphListener( GraphListener listener ) + { + this.listeners.remove( listener ); + } + + public void setDesiredScope( String scope ) + { + taskReduceScope.setScope( scope ); + } + + public void setGraphBuilder( DependencyGraphBuilder graphBuilder ) + { + this.graphBuilder = graphBuilder; + taskPopulateGraph.setBuilder( graphBuilder ); + } + + private void triggerGraphError( GraphTaskException e, DependencyGraph graph ) + { + Iterator it = listeners.iterator(); + while ( it.hasNext() ) + { + GraphListener listener = (GraphListener) it.next(); + listener.graphError( e, graph ); + } + } + + private void triggerGraphPhase( int type, GraphTask task, DependencyGraph graph ) + { + GraphPhaseEvent evt = new GraphPhaseEvent( type, task, graph ); + + Iterator it = listeners.iterator(); + while ( it.hasNext() ) + { + GraphListener listener = (GraphListener) it.next(); + listener.graphPhaseEvent( evt ); + } + } + +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraph.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraph.java new file mode 100644 index 000000000..b0a86a2b1 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraph.java @@ -0,0 +1,228 @@ +package org.apache.maven.archiva.dependency.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections.map.ListOrderedMap; +import org.apache.maven.archiva.dependency.graph.functors.EdgeFromPredicate; +import org.apache.maven.archiva.dependency.graph.functors.EdgeToPredicate; +import org.apache.maven.archiva.model.ArtifactReference; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +/** + * DependencyGraph + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class DependencyGraph +{ + public static final int DISABLED_CYCLIC = 0; + + public static final int DISABLED_EXCLUDED = 1; + + public static final int DISABLED_OPTIONAL = 2; + + public static final int DISABLED_NEARER_DEP = 3; + + public static final int DISABLED_NEARER_EDGE = 4; + + private DependencyGraphNode rootNode; + + private Set edges = new HashSet(); + + private ListOrderedMap nodes = new ListOrderedMap(); + + public DependencyGraph( String groupId, String artifactId, String version ) + { + ArtifactReference rootRef = new ArtifactReference(); + rootRef.setGroupId( groupId ); + rootRef.setArtifactId( artifactId ); + rootRef.setVersion( version ); + rootRef.setClassifier( "" ); + rootRef.setType( "pom" ); + + this.rootNode = new DependencyGraphNode( rootRef ); + } + + public DependencyGraph( DependencyGraphNode root ) + { + this.rootNode = root; + } + + public Collection getEdges() + { + return edges; + } + + public Collection getNodes() + { + return nodes.values(); + } + + public DependencyGraphNode getRootNode() + { + return rootNode; + } + + public void setRootNode( DependencyGraphNode rootNode ) + { + this.rootNode = rootNode; + } + + /** + * Add the edge to the {@link DependencyGraph}. + * + * @param edge the edge to add. + */ + public void addEdge( final DependencyGraphEdge edge ) + { + if ( edge.getNodeFrom() == null ) + { + throw new IllegalArgumentException( "edge.nodeFrom cannot be null." ); + } + + if ( edge.getNodeTo() == null ) + { + throw new IllegalArgumentException( "edge.nodeTo cannot be null." ); + } + + this.edges.add( edge ); + } + + public DependencyGraphNode addNode( DependencyGraphNode node ) + { + if ( node == null ) + { + throw new IllegalArgumentException( "Unable to add a null node." ); + } + + if ( node.getArtifact() == null ) + { + throw new IllegalArgumentException( "Unable to add a node with a null artifact reference." ); + } + + int prevNodeIdx = this.nodes.indexOf( node ); + + // Found it in the node tree? + if ( prevNodeIdx >= 0 ) + { + // Merge new node into existing node. + DependencyGraphNode previousNode = (DependencyGraphNode) this.nodes.get( prevNodeIdx ); + + if ( CollectionUtils.isNotEmpty( node.getExcludes() ) ) + { + previousNode.getExcludes().addAll( node.getExcludes() ); + } + + if ( CollectionUtils.isNotEmpty( node.getDependencyManagement() ) ) + { + previousNode.getDependencyManagement().addAll( node.getDependencyManagement() ); + } + + if ( node.isFromParent() ) + { + previousNode.setFromParent( true ); + } + + // Return newly merged node (from existing node) + return previousNode; + } + + // This is a new node, didn't exist before, just save it. + this.nodes.put( node.getArtifact(), node ); + + return node; + } + + public boolean hasNode( DependencyGraphNode node ) + { + return this.nodes.containsKey( node.getArtifact() ); + } + + public boolean hasEdge( DependencyGraphEdge edge ) + { + return this.edges.contains( edge ); + } + + /** + * Get the list of edges from the provided node. + * + * @param node the node to use as the 'from' side of an edge. + * @return the edges from the provided node. + */ + public List getEdgesFrom( DependencyGraphNode node ) + { + List ret = new ArrayList(); + CollectionUtils.select( this.edges, new EdgeFromPredicate( node.getArtifact() ), ret ); + return ret; + } + + /** + * Get the list of edges to the provided node. + * + * @param node the node to use as the 'to' side of an edge. + * @return the edges to the provided node. + */ + public List getEdgesTo( DependencyGraphNode node ) + { + List ret = new ArrayList(); + CollectionUtils.select( this.edges, new EdgeToPredicate( node.getArtifact() ), ret ); + return ret; + } + + /** + * Get the node for the specified artifact reference. + * + * @param ref the artifact reference to use to find the node. + * @return the node that was found. (null if not found) + */ + public DependencyGraphNode getNode( ArtifactReference ref ) + { + return (DependencyGraphNode) this.nodes.get( ref ); + } + + public void removeEdge( DependencyGraphEdge edge ) + { + this.edges.remove( edge ); + } + + public void removeNode( DependencyGraphNode node ) + { + List edges = getEdgesFrom( node ); + if ( !edges.isEmpty() ) + { + System.out.println( "Removing node left <" + edges + "> hanging edges." ); + } + + edges = getEdgesTo( node ); + if ( !edges.isEmpty() ) + { + System.out.println( "Removing node left <" + edges + "> hanging edges." ); + } + + this.nodes.remove( node.getArtifact() ); + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphBuilder.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphBuilder.java new file mode 100644 index 000000000..8a17a044e --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphBuilder.java @@ -0,0 +1,51 @@ +package org.apache.maven.archiva.dependency.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.model.VersionedReference; + +/** + * DependencyGraphBuilder + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public interface DependencyGraphBuilder +{ + /** + * Given a node and a versioned project rexpandeference, resolve the details of the node, creating + * any dependencies and edges as needed. + * + * @param graph the graph to add nodes and edges to. + * @param node the node where the resolution should occur. + * @param versionedProjectReference the versioned project reference for the node + * that needs to be resolved. + */ + public void resolveNode( DependencyGraph graph, DependencyGraphNode node, + VersionedReference versionedProjectReference ); + + /** + * Create a new graph, with the root of the graph for the node specified. + * + * @param versionedProjectReference the root node for the graph. + * @return the new DependencyGraph, complete with root node and direct dependencies. + */ + public DependencyGraph createGraph( VersionedReference versionedProjectReference ); +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphEdge.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphEdge.java new file mode 100644 index 000000000..8774dbefc --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphEdge.java @@ -0,0 +1,188 @@ +package org.apache.maven.archiva.dependency.graph; + +import org.apache.maven.archiva.model.ArtifactReference; +import org.apache.maven.archiva.model.DependencyScope; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +/** + * DependencyGraphEdge + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class DependencyGraphEdge +{ + private ArtifactReference nodeFrom; + + private ArtifactReference nodeTo; + + private String scope; + + private boolean disabled = false; + + private int disabledType; + + private String disabledReason; + + public DependencyGraphEdge( ArtifactReference fromNode, ArtifactReference toNode ) + { + super(); + this.nodeFrom = fromNode; + this.nodeTo = toNode; + this.scope = DependencyScope.COMPILE; + } + + public boolean equals( Object obj ) + { + if ( this == obj ) + { + return true; + } + if ( obj == null ) + { + return false; + } + if ( getClass() != obj.getClass() ) + { + return false; + } + final DependencyGraphEdge other = (DependencyGraphEdge) obj; + if ( nodeFrom == null ) + { + if ( other.nodeFrom != null ) + { + return false; + } + } + else if ( !nodeFrom.equals( other.nodeFrom ) ) + { + return false; + } + if ( nodeTo == null ) + { + if ( other.nodeTo != null ) + { + return false; + } + } + else if ( !nodeTo.equals( other.nodeTo ) ) + { + return false; + } + return true; + } + + public String getDisabledReason() + { + return disabledReason; + } + + public int getDisabledType() + { + return disabledType; + } + + public ArtifactReference getNodeFrom() + { + return nodeFrom; + } + + public ArtifactReference getNodeTo() + { + return nodeTo; + } + + public String getScope() + { + return scope; + } + + public int hashCode() + { + final int PRIME = 31; + int result = 1; + result = PRIME * result + ( ( nodeFrom == null ) ? 0 : nodeFrom.hashCode() ); + result = PRIME * result + ( ( nodeTo == null ) ? 0 : nodeTo.hashCode() ); + return result; + } + + public boolean isDisabled() + { + return disabled; + } + + public void setDisabled( boolean disabled ) + { + this.disabled = disabled; + if( this.disabled == false ) + { + this.disabledReason = null; + this.disabledType = -1; + } + } + + public void setDisabledReason( String disabledReason ) + { + this.disabledReason = disabledReason; + } + + public void setDisabledType( int disabledType ) + { + this.disabledType = disabledType; + } + + public void setNodeFrom( ArtifactReference ref ) + { + this.nodeFrom = ref; + } + + public void setNodeFrom( DependencyGraphNode node ) + { + this.nodeFrom = node.getArtifact(); + } + + public void setNodeTo( ArtifactReference ref ) + { + this.nodeTo = ref; + } + + public void setNodeTo( DependencyGraphNode node ) + { + this.nodeTo = node.getArtifact(); + } + + public void setScope( String scope ) + { + this.scope = scope; + } + + public String toString() + { + StringBuffer sb = new StringBuffer(); + + sb.append( "GraphEdge[" ); + sb.append( "from=" ).append( DependencyGraphKeys.toKey( nodeFrom ) ); + sb.append( ",to=" ).append( DependencyGraphKeys.toKey( nodeTo ) ); + sb.append( "]" ); + + return sb.toString(); + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphKeys.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphKeys.java new file mode 100644 index 000000000..813af39cc --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphKeys.java @@ -0,0 +1,79 @@ +package org.apache.maven.archiva.dependency.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.lang.StringUtils; +import org.apache.maven.archiva.model.ArtifactReference; +import org.apache.maven.archiva.model.Dependency; +import org.apache.maven.archiva.model.Exclusion; + +/** + * Key generation for the various objects used within the DependencyGraph. + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class DependencyGraphKeys +{ + public static String toManagementKey( DependencyGraphNode node ) + { + return toManagementKey( node.getArtifact() ); + } + + public static String toManagementKey( ArtifactReference ref ) + { + StringBuffer key = new StringBuffer(); + key.append( ref.getGroupId() ).append( ":" ); + key.append( ref.getArtifactId() ); + return key.toString(); + } + + public static String toManagementKey( Dependency ref ) + { + StringBuffer key = new StringBuffer(); + key.append( ref.getGroupId() ).append( ":" ); + key.append( ref.getArtifactId() ); + return key.toString(); + } + + public static String toManagementKey( Exclusion ref ) + { + StringBuffer key = new StringBuffer(); + key.append( ref.getGroupId() ).append( ":" ); + key.append( ref.getArtifactId() ); + return key.toString(); + } + + public static String toKey( DependencyGraphNode node ) + { + return toKey( node.getArtifact() ); + } + + public static String toKey( ArtifactReference ref ) + { + StringBuffer key = new StringBuffer(); + key.append( ref.getGroupId() ).append( ":" ); + key.append( ref.getArtifactId() ).append( ":" ); + key.append( ref.getVersion() ).append( ":" ); + key.append( StringUtils.defaultString( ref.getClassifier() ) ).append( ":" ); + key.append( ref.getType() ); + return key.toString(); + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphNode.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphNode.java new file mode 100644 index 000000000..90a44b124 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphNode.java @@ -0,0 +1,191 @@ +package org.apache.maven.archiva.dependency.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.model.ArtifactReference; +import org.apache.maven.archiva.model.Dependency; +import org.apache.maven.archiva.model.Exclusion; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +/** + * DependencyGraphNode + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class DependencyGraphNode +{ + /** + * The artifact reference for this node. + */ + private ArtifactReference artifact; + + /** + * The project level dependency management section for this artifact. + */ + private List dependencyManagement = new ArrayList(); + + /** + * The list of excluded groupId:artifactId for this node's sub-nodes. + */ + private Set excludes = new HashSet(); + + /** + * Flag indicating that this node has been resolved from disk. + * Initially this is set to false, when the node is added due to a dependency entry in the + * project's pom. + * When the resolver comes through and reads the model for this node, it sets this to true. + */ + private boolean resolved = false; + + /** + * Flag indicating that this dependency exists because of a parent dependency. + * TODO: move this to DependencyGraphEdge (where it really belongs) + */ + private boolean fromParent = false; + + /** + * Booleaning indicating that this node is in conflict with another node in the graph. + * If this is true, that means this node is flagged for removal. + */ + private boolean conflicted = false; + + public DependencyGraphNode( ArtifactReference artifact ) + { + super(); + this.artifact = artifact; + } + + public void addExclude( Exclusion exclusion ) + { + this.excludes.add( DependencyGraphKeys.toManagementKey( exclusion ) ); + } + + public boolean equals( Object obj ) + { + if ( this == obj ) + { + return true; + } + if ( obj == null ) + { + return false; + } + if ( getClass() != obj.getClass() ) + { + return false; + } + final DependencyGraphNode other = (DependencyGraphNode) obj; + if ( artifact == null ) + { + if ( other.artifact != null ) + { + return false; + } + } + else if ( !artifact.equals( other.artifact ) ) + { + return false; + } + return true; + } + + public ArtifactReference getArtifact() + { + return artifact; + } + + public List getDependencyManagement() + { + return dependencyManagement; + } + + public Set getExcludes() + { + return excludes; + } + + public int hashCode() + { + final int PRIME = 31; + int result = 1; + result = PRIME * result + ( ( artifact == null ) ? 0 : artifact.hashCode() ); + return result; + } + + public boolean isConflicted() + { + return conflicted; + } + + public boolean isResolved() + { + return resolved; + } + + public void addDependencyManagement( Dependency dep ) + { + this.dependencyManagement.add( dep ); + } + + public void setArtifact( ArtifactReference artifact ) + { + this.artifact = artifact; + } + + public void setConflicted( boolean conflicted ) + { + this.conflicted = conflicted; + } + + public void setDependencyManagement( List dependencyManagement ) + { + this.dependencyManagement = dependencyManagement; + } + + public void setExcludes( Set excludes ) + { + this.excludes = excludes; + } + + public void setResolved( boolean resolved ) + { + this.resolved = resolved; + } + + public String toString() + { + return DependencyGraphKeys.toKey( artifact ); + } + + public boolean isFromParent() + { + return fromParent; + } + + public void setFromParent( boolean fromParent ) + { + this.fromParent = fromParent; + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphUtils.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphUtils.java new file mode 100644 index 000000000..64da0edac --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyGraphUtils.java @@ -0,0 +1,289 @@ +package org.apache.maven.archiva.dependency.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections.Predicate; +import org.apache.commons.collections.functors.AndPredicate; +import org.apache.commons.collections.functors.NotPredicate; +import org.apache.commons.lang.StringUtils; +import org.apache.maven.archiva.dependency.graph.functors.NodePredicate; +import org.apache.maven.archiva.dependency.graph.functors.OrphanedNodePredicate; +import org.apache.maven.archiva.model.ArchivaProjectModel; +import org.apache.maven.archiva.model.ArtifactReference; +import org.apache.maven.archiva.model.Dependency; +import org.apache.maven.archiva.model.DependencyScope; +import org.apache.maven.archiva.model.Exclusion; +import org.apache.maven.archiva.model.VersionedReference; + +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Set; + +/** + * Utilities for manipulating the DependencyGraph. + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class DependencyGraphUtils +{ + /** + * Standard way to add a model to the graph. + * + * NOTE: Used by archiva-repository-layer runtime and archiva-dependency-graph tests. + * + * @param model the model to add + * @param graph the graph to add it to + * @param fromNode the node to add it from. + */ + public static void addNodeFromModel( ArchivaProjectModel model, DependencyGraph graph, DependencyGraphNode fromNode ) + { + if ( model == null ) + { + throw new IllegalStateException( "Unable to add null model for " + + DependencyGraphKeys.toKey( fromNode.getArtifact() ) ); + } + + if ( model.getRelocation() != null ) + { + // We need to CHANGE this node. + ArtifactReference refTO = new ArtifactReference(); + + refTO.setGroupId( fromNode.getArtifact().getGroupId() ); + refTO.setArtifactId( fromNode.getArtifact().getArtifactId() ); + refTO.setVersion( fromNode.getArtifact().getVersion() ); + refTO.setClassifier( fromNode.getArtifact().getClassifier() ); + refTO.setType( fromNode.getArtifact().getType() ); + + VersionedReference relocation = model.getRelocation(); + + if ( StringUtils.isNotBlank( relocation.getGroupId() ) ) + { + refTO.setGroupId( relocation.getGroupId() ); + } + + if ( StringUtils.isNotBlank( relocation.getArtifactId() ) ) + { + refTO.setArtifactId( relocation.getArtifactId() ); + } + + if ( StringUtils.isNotBlank( relocation.getVersion() ) ) + { + refTO.setVersion( relocation.getVersion() ); + } + + DependencyGraphNode nodeTO = new DependencyGraphNode( refTO ); + + graph.addNode( nodeTO ); + collapseNodes( graph, fromNode, nodeTO ); + return; + } + + boolean isRootNode = graph.getRootNode().equals( fromNode ); + + Iterator it; + + if ( CollectionUtils.isNotEmpty( model.getDependencyManagement() ) ) + { + it = model.getDependencyManagement().iterator(); + while ( it.hasNext() ) + { + Dependency dependency = (Dependency) it.next(); + fromNode.addDependencyManagement( dependency ); + } + } + + if ( CollectionUtils.isNotEmpty( model.getDependencies() ) ) + { + it = model.getDependencies().iterator(); + while ( it.hasNext() ) + { + Dependency dependency = (Dependency) it.next(); + + String scope = dependency.getScope(); + + // Test scopes *NOT* from root node can be skipped. + if ( DependencyScope.TEST.equals( scope ) && !isRootNode ) + { + // skip add of test scope + continue; + } + + ArtifactReference artifactRef = new ArtifactReference(); + artifactRef.setGroupId( dependency.getGroupId() ); + artifactRef.setArtifactId( dependency.getArtifactId() ); + artifactRef.setVersion( dependency.getVersion() ); + artifactRef.setClassifier( dependency.getClassifier() ); + artifactRef.setType( dependency.getType() ); + + DependencyGraphNode toNode = new DependencyGraphNode( artifactRef ); + + if ( CollectionUtils.isNotEmpty( dependency.getExclusions() ) ) + { + Iterator itexclusion = dependency.getExclusions().iterator(); + while ( itexclusion.hasNext() ) + { + Exclusion exclusion = (Exclusion) itexclusion.next(); + toNode.addExclude( exclusion ); + } + } + + if ( dependency.isFromParent() ) + { + toNode.setFromParent( true ); + } + + // Add node (to) + graph.addNode( toNode ); + + DependencyGraphEdge edge = new DependencyGraphEdge( fromNode.getArtifact(), toNode.getArtifact() ); + edge.setScope( StringUtils.defaultIfEmpty( dependency.getScope(), DependencyScope.COMPILE ) ); + + if ( dependency.isOptional() ) + { + edge.setDisabled( true ); + edge.setDisabledType( DependencyGraph.DISABLED_OPTIONAL ); + edge.setDisabledReason( "Optional Dependency" ); + } + + graph.addEdge( edge ); + } + } + + fromNode.setResolved( true ); + graph.addNode( fromNode ); + } + + /** + * Clean out any nodes that may have become orphaned in the graph. + * + * @param graph the graph to check. + */ + public static void cleanupOrphanedNodes( DependencyGraph graph ) + { + boolean done = false; + + Predicate orphanedNodePredicate = new OrphanedNodePredicate( graph ); + Predicate notRootNode = NotPredicate.getInstance( new NodePredicate( graph.getRootNode().getArtifact() ) ); + Predicate orphanedChildNodePredicate = AndPredicate.getInstance( notRootNode, orphanedNodePredicate ); + + while ( !done ) + { + // Find orphaned node. + DependencyGraphNode orphanedNode = (DependencyGraphNode) CollectionUtils.find( graph.getNodes(), + orphanedChildNodePredicate ); + + if ( orphanedNode == null ) + { + done = true; + break; + } + + // Remove edges FROM orphaned node. + List edgesFrom = graph.getEdgesFrom( orphanedNode ); + + Iterator it = edgesFrom.iterator(); + while ( it.hasNext() ) + { + DependencyGraphEdge edge = (DependencyGraphEdge) it.next(); + graph.removeEdge( edge ); + } + + // Remove orphaned node. + graph.removeNode( orphanedNode ); + } + } + + /** + * Functionaly similar to {@link #collapseVersions(DependencyGraph, ArtifactReference, String, String)}, but + * in a new, easier to use, format. + * + * 1) Removes the FROM edges connected to the FROM node + * 2) Moves the TO edges connected to the FROM node to the TO node. + * 3) Removes the FROM node (which is now orphaned) + * + * @param graph the graph to perform operation on + * @param nodeFrom the node to collapse from + * @param nodeTo the node to collapse to + */ + public static void collapseNodes( DependencyGraph graph, DependencyGraphNode nodeFROM, DependencyGraphNode nodeTO ) + { + Iterator it; + + Set edgesToRemove = new HashSet(); + + // 1) Remove all of the edge.from references from nodeFROM + List fromEdges = graph.getEdgesFrom( nodeFROM ); + if ( CollectionUtils.isNotEmpty( fromEdges ) ) + { + edgesToRemove.addAll( fromEdges ); + } + + // 2) Swing all of the edge.to references from nodeFROM to nodeTO. + // System.out.println( "Swinging incoming edges from " + nodeFROM ); + // System.out.println( " to " + nodeTO ); + List toEdges = graph.getEdgesTo( nodeFROM ); + it = toEdges.iterator(); + while ( it.hasNext() ) + { + DependencyGraphEdge edge = (DependencyGraphEdge) it.next(); + + // Identify old edge to remove. + edgesToRemove.add( edge ); + + // Clone edge, set edge.to and add to graph. + DependencyGraphEdge newedge = clone( edge ); + newedge.setNodeTo( nodeTO ); + // System.out.println( " edge from: " + edge ); + // System.out.println( " to: " + newedge ); + graph.addEdge( newedge ); + } + + // Actually remove the old edges. + it = edgesToRemove.iterator(); + while ( it.hasNext() ) + { + DependencyGraphEdge edge = (DependencyGraphEdge) it.next(); + graph.removeEdge( edge ); + } + + // 3) Remove the nodeFROM + graph.removeNode( nodeFROM ); + } + + /** + * Create a clone of an edge. + * + * @param edge the edge to clone. + * @return the cloned edge. + */ + public static DependencyGraphEdge clone( DependencyGraphEdge edge ) + { + DependencyGraphEdge cloned = new DependencyGraphEdge( edge.getNodeFrom(), edge.getNodeTo() ); + cloned.setDisabled( edge.isDisabled() ); + cloned.setDisabledReason( edge.getDisabledReason() ); + cloned.setDisabledType( edge.getDisabledType() ); + cloned.setScope( edge.getScope() ); + + return cloned; + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyResolutionEvent.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyResolutionEvent.java new file mode 100644 index 000000000..65b925508 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/DependencyResolutionEvent.java @@ -0,0 +1,57 @@ +package org.apache.maven.archiva.dependency.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +/** + * DependencyResolutionEvent + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class DependencyResolutionEvent +{ + public static final int ADDING_MODEL = 1; + + public static final int DEP_CONFLICT_OMIT_FOR_NEARER = 2; + + public static final int CYCLE_BROKEN = 3; + + public static final int APPLYING_DEPENDENCY_MANAGEMENT = 4; + + private int type; + + private DependencyGraph graph; + + public DependencyResolutionEvent( int type, DependencyGraph graph ) + { + this.type = type; + this.graph = graph; + } + + public DependencyGraph getGraph() + { + return graph; + } + + public int getType() + { + return type; + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/GraphListener.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/GraphListener.java new file mode 100644 index 000000000..90a995cf6 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/GraphListener.java @@ -0,0 +1,16 @@ +package org.apache.maven.archiva.dependency.graph; + +/** + * GraphListener + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public interface GraphListener +{ + public void graphError( GraphTaskException e, DependencyGraph currentGraph ); + + public void graphPhaseEvent( GraphPhaseEvent event ); + + public void dependencyResolutionEvent( DependencyResolutionEvent event ); +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/GraphPhaseEvent.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/GraphPhaseEvent.java new file mode 100644 index 000000000..ad235951c --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/GraphPhaseEvent.java @@ -0,0 +1,79 @@ +package org.apache.maven.archiva.dependency.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +/** + * GraphPhaseEvent + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class GraphPhaseEvent +{ + /** + * Graph Phase Event Type - New Graph has been created. No tasks have been run yet. + * NOTE: {{@link #getTask()} will be null for this type. + */ + public static final int GRAPH_NEW = 0; + + /** + * Graph Phase Event Type - Graph Task is about to run. + */ + public static final int GRAPH_TASK_PRE = 1; + + /** + * Graph Phase Event Type - Graph Task has finished. + */ + public static final int GRAPH_TASK_POST = 2; + + /** + * Graph Phase Event Type - All Graph Tasks are done. + * NOTE: {{@link #getTask()} will be null for this type. + */ + public static final int GRAPH_DONE = 10; + + private int type; + + private GraphTask task; + + private DependencyGraph graph; + + public GraphPhaseEvent( int type, GraphTask task, DependencyGraph graph ) + { + this.type = type; + this.task = task; + this.graph = graph; + } + + public DependencyGraph getGraph() + { + return graph; + } + + public GraphTask getTask() + { + return task; + } + + public int getType() + { + return type; + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/GraphTask.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/GraphTask.java new file mode 100644 index 000000000..00aeeab82 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/GraphTask.java @@ -0,0 +1,44 @@ +package org.apache.maven.archiva.dependency.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +/** + * A Graph Task. + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public interface GraphTask +{ + /** + * Get the id for this task. + * + * @return the id for this task. (used in Exception messages and {@link GraphPhaseEvent}) + */ + public String getTaskId(); + + /** + * Execute the Graph Task. + * + * @param graph the graph to execute the task on. + */ + public void executeTask( DependencyGraph graph ) + throws GraphTaskException; +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/GraphTaskException.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/GraphTaskException.java new file mode 100644 index 000000000..21925f0fd --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/GraphTaskException.java @@ -0,0 +1,42 @@ +package org.apache.maven.archiva.dependency.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.common.ArchivaException; + +/** + * GraphTaskException + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class GraphTaskException + extends ArchivaException +{ + public GraphTaskException( String message, Throwable cause ) + { + super( message, cause ); + } + + public GraphTaskException( String message ) + { + super( message ); + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/PotentialCyclicEdgeProducer.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/PotentialCyclicEdgeProducer.java new file mode 100644 index 000000000..b5210ea26 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/PotentialCyclicEdgeProducer.java @@ -0,0 +1,31 @@ +package org.apache.maven.archiva.dependency.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +/** + * A tag for a {@link GraphTask} that has the potential to produce a cyclic edge. + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public interface PotentialCyclicEdgeProducer +{ + /* no interface, just a tag */ +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeCyclicPredicate.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeCyclicPredicate.java new file mode 100644 index 000000000..28923b935 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeCyclicPredicate.java @@ -0,0 +1,55 @@ +package org.apache.maven.archiva.dependency.graph.functors; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.collections.Predicate; +import org.apache.maven.archiva.dependency.graph.DependencyGraph; +import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; + +/** + * EdgeCyclicPredicate + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class EdgeCyclicPredicate + implements Predicate +{ + private static Predicate INSTANCE = new EdgeCyclicPredicate(); + + public static Predicate getInstance() + { + return INSTANCE; + } + + public boolean evaluate( Object object ) + { + boolean satisfies = false; + + if ( object instanceof DependencyGraphEdge ) + { + DependencyGraphEdge edge = (DependencyGraphEdge) object; + satisfies = ( edge.isDisabled() && ( edge.getDisabledType() == DependencyGraph.DISABLED_CYCLIC ) ); + } + + return satisfies; + } + +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeDisabledPredicate.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeDisabledPredicate.java new file mode 100644 index 000000000..93aed532d --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeDisabledPredicate.java @@ -0,0 +1,48 @@ +package org.apache.maven.archiva.dependency.graph.functors; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.collections.Predicate; +import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; + +/** + * EdgeDisabledPredicate + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class EdgeDisabledPredicate + implements Predicate +{ + + public boolean evaluate( Object object ) + { + boolean satisfies = false; + + if ( object instanceof DependencyGraphEdge ) + { + DependencyGraphEdge edge = (DependencyGraphEdge) object; + satisfies = edge.isDisabled(); + } + + return satisfies; + } + +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeExactScopePredicate.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeExactScopePredicate.java new file mode 100644 index 000000000..69d02e44e --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeExactScopePredicate.java @@ -0,0 +1,71 @@ +package org.apache.maven.archiva.dependency.graph.functors; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.collections.Predicate; +import org.apache.commons.lang.StringUtils; +import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; +import org.apache.maven.archiva.model.DependencyScope; + +/** + * EdgeExactScopePredicate + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class EdgeExactScopePredicate + implements Predicate +{ + private String scope; + + public EdgeExactScopePredicate( String scope ) + { + this.scope = scope; + } + + public EdgeExactScopePredicate() + { + // The universal default for scope. + this.scope = DependencyScope.COMPILE; + } + + public boolean evaluate( Object object ) + { + boolean satisfies = false; + + if ( object instanceof DependencyGraphEdge ) + { + DependencyGraphEdge edge = (DependencyGraphEdge) object; + satisfies = StringUtils.equals( edge.getScope(), scope ); + } + + return satisfies; + } + + public String getScope() + { + return scope; + } + + public void setScope( String scope ) + { + this.scope = scope; + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeExcludedPredicate.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeExcludedPredicate.java new file mode 100644 index 000000000..ec24bc0f7 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeExcludedPredicate.java @@ -0,0 +1,54 @@ +package org.apache.maven.archiva.dependency.graph.functors; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.collections.Predicate; +import org.apache.maven.archiva.dependency.graph.DependencyGraph; +import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; + +/** + * EdgeExcludedPredicate + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class EdgeExcludedPredicate + implements Predicate +{ + private static Predicate INSTANCE = new EdgeExcludedPredicate(); + + public static Predicate getInstance() + { + return INSTANCE; + } + + public boolean evaluate( Object object ) + { + boolean satisfies = false; + + if ( object instanceof DependencyGraphEdge ) + { + DependencyGraphEdge edge = (DependencyGraphEdge) object; + satisfies = ( edge.isDisabled() && ( edge.getDisabledType() == DependencyGraph.DISABLED_EXCLUDED ) ); + } + + return satisfies; + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeFromPredicate.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeFromPredicate.java new file mode 100644 index 000000000..42512dca0 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeFromPredicate.java @@ -0,0 +1,62 @@ +package org.apache.maven.archiva.dependency.graph.functors; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.collections.Predicate; +import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; +import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; +import org.apache.maven.archiva.model.ArtifactReference; + +/** + * Predicate returns true on any DependencyGraphEdge which has a + * specific FROM node. + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class EdgeFromPredicate + implements Predicate +{ + private ArtifactReference nodeRef; + + public EdgeFromPredicate( ArtifactReference ref ) + { + this.nodeRef = ref; + } + + public EdgeFromPredicate( DependencyGraphNode node ) + { + this( node.getArtifact() ); + } + + public boolean evaluate( Object object ) + { + boolean satisfies = false; + + if ( object instanceof DependencyGraphEdge ) + { + DependencyGraphEdge edge = (DependencyGraphEdge) object; + satisfies = edge.getNodeFrom().equals( nodeRef ); + } + + return satisfies; + } + +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeScopeClosure.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeScopeClosure.java new file mode 100644 index 000000000..b4bdeb02f --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeScopeClosure.java @@ -0,0 +1,49 @@ +package org.apache.maven.archiva.dependency.graph.functors; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.collections.Closure; +import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; + +/** + * Closure to set the edge scope. + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class EdgeScopeClosure + implements Closure +{ + private String scope; + + public EdgeScopeClosure( String scope ) + { + this.scope = scope; + } + + public void execute( Object input ) + { + if ( input instanceof DependencyGraphEdge ) + { + DependencyGraphEdge edge = (DependencyGraphEdge) input; + edge.setScope( scope ); + } + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeToPredicate.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeToPredicate.java new file mode 100644 index 000000000..6fb221954 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeToPredicate.java @@ -0,0 +1,55 @@ +package org.apache.maven.archiva.dependency.graph.functors; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.collections.Predicate; +import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; +import org.apache.maven.archiva.model.ArtifactReference; + +/** + * EdgeToPredicate + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class EdgeToPredicate + implements Predicate +{ + private ArtifactReference nodeRef; + + public EdgeToPredicate( ArtifactReference ref ) + { + this.nodeRef = ref; + } + + public boolean evaluate( Object object ) + { + boolean satisfies = false; + + if ( object instanceof DependencyGraphEdge ) + { + DependencyGraphEdge edge = (DependencyGraphEdge) object; + satisfies = edge.getNodeTo().equals( nodeRef ); + } + + return satisfies; + } + +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeWithinScopePredicate.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeWithinScopePredicate.java new file mode 100644 index 000000000..8330bb552 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/EdgeWithinScopePredicate.java @@ -0,0 +1,54 @@ +package org.apache.maven.archiva.dependency.graph.functors; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.collections.Predicate; +import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; +import org.apache.maven.archiva.model.DependencyScope; + +/** + * EdgeWithinScopePredicate + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class EdgeWithinScopePredicate + implements Predicate +{ + private String scope; + + public EdgeWithinScopePredicate( String scope ) + { + this.scope = scope; + } + + public boolean evaluate( Object object ) + { + boolean satisfies = false; + + if ( object instanceof DependencyGraphEdge ) + { + DependencyGraphEdge edge = (DependencyGraphEdge) object; + satisfies = DependencyScope.isWithinScope( edge.getScope(), scope ); + } + + return satisfies; + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/NodeFromParentPredicate.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/NodeFromParentPredicate.java new file mode 100644 index 000000000..b57497834 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/NodeFromParentPredicate.java @@ -0,0 +1,46 @@ +package org.apache.maven.archiva.dependency.graph.functors; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.collections.Predicate; +import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; + +/** + * Predicate for nodes that are flagged as from parent pom reference. + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class NodeFromParentPredicate + implements Predicate +{ + + public boolean evaluate( Object object ) + { + boolean satisfies = false; + if ( object instanceof DependencyGraphNode ) + { + DependencyGraphNode node = (DependencyGraphNode) object; + satisfies = node.isFromParent(); + } + return satisfies; + } + +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/NodeInEdgePredicate.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/NodeInEdgePredicate.java new file mode 100644 index 000000000..846e487df --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/NodeInEdgePredicate.java @@ -0,0 +1,54 @@ +package org.apache.maven.archiva.dependency.graph.functors; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.collections.Predicate; +import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; +import org.apache.maven.archiva.model.ArtifactReference; + +/** + * NodeInEdgePredicate + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class NodeInEdgePredicate + implements Predicate +{ + private ArtifactReference nodeRef; + + public NodeInEdgePredicate( ArtifactReference ref ) + { + this.nodeRef = ref; + } + + public boolean evaluate( Object object ) + { + boolean satisfies = false; + + if ( object instanceof DependencyGraphEdge ) + { + DependencyGraphEdge edge = (DependencyGraphEdge) object; + satisfies = ( edge.getNodeFrom().equals( nodeRef ) || edge.getNodeTo().equals( nodeRef ) ); + } + + return satisfies; + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/NodePredicate.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/NodePredicate.java new file mode 100644 index 000000000..e1cc22bf3 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/NodePredicate.java @@ -0,0 +1,59 @@ +package org.apache.maven.archiva.dependency.graph.functors; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.collections.Predicate; +import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; +import org.apache.maven.archiva.model.ArtifactReference; + +/** + * NodePredicate + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class NodePredicate + implements Predicate +{ + private ArtifactReference ref; + + public NodePredicate( ArtifactReference ref ) + { + this.ref = ref; + } + + public NodePredicate( DependencyGraphNode node ) + { + this( node.getArtifact() ); + } + + public boolean evaluate( Object object ) + { + boolean satisfies = false; + + if ( object instanceof DependencyGraphNode ) + { + DependencyGraphNode node = (DependencyGraphNode) object; + satisfies = ref.equals( node.getArtifact() ); + } + + return satisfies; + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/OrphanedNodePredicate.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/OrphanedNodePredicate.java new file mode 100644 index 000000000..54f0ca40f --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/OrphanedNodePredicate.java @@ -0,0 +1,56 @@ +package org.apache.maven.archiva.dependency.graph.functors; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections.Predicate; +import org.apache.maven.archiva.dependency.graph.DependencyGraph; +import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; + +/** + * OrphanedNodePredicate + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class OrphanedNodePredicate + implements Predicate +{ + private DependencyGraph graph; + + public OrphanedNodePredicate( DependencyGraph graph ) + { + this.graph = graph; + } + + public boolean evaluate( Object object ) + { + boolean satisfies = false; + + if ( object instanceof DependencyGraphNode ) + { + DependencyGraphNode node = (DependencyGraphNode) object; + satisfies = CollectionUtils.isEmpty( graph.getEdgesTo( node ) ); + } + + return satisfies; + } + +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/ToArtifactReferenceTransformer.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/ToArtifactReferenceTransformer.java new file mode 100644 index 000000000..bde317c52 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/ToArtifactReferenceTransformer.java @@ -0,0 +1,43 @@ +package org.apache.maven.archiva.dependency.graph.functors; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.collections.Transformer; +import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; + +/** + * Transform some common dependency graph objects into their + * ArtifactReference form. + */ +public class ToArtifactReferenceTransformer + implements Transformer +{ + public Object transform( Object input ) + { + if ( input instanceof DependencyGraphNode ) + { + return ( (DependencyGraphNode) input ).getArtifact(); + } + + // TODO: Add more objects to transform here. + + return input; + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/UnresolvedGraphNodePredicate.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/UnresolvedGraphNodePredicate.java new file mode 100644 index 000000000..b3325728f --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/functors/UnresolvedGraphNodePredicate.java @@ -0,0 +1,53 @@ +package org.apache.maven.archiva.dependency.graph.functors; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.collections.Predicate; +import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; + +/** + * Predicate for unresolved {@link DependencyGraphNode} objects. + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class UnresolvedGraphNodePredicate + implements Predicate +{ + private static UnresolvedGraphNodePredicate INSTANCE = new UnresolvedGraphNodePredicate(); + + public static Predicate getInstance() + { + return INSTANCE; + } + + public boolean evaluate( Object object ) + { + boolean satisfies = false; + + if ( object instanceof DependencyGraphNode ) + { + DependencyGraphNode node = (DependencyGraphNode) object; + satisfies = !( node.isResolved() ); + } + + return satisfies; + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/AbstractReduceEdgeVisitor.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/AbstractReduceEdgeVisitor.java new file mode 100644 index 000000000..ec20b5120 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/AbstractReduceEdgeVisitor.java @@ -0,0 +1,43 @@ +package org.apache.maven.archiva.dependency.graph.tasks; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.dependency.graph.DependencyGraph; +import org.apache.maven.archiva.dependency.graph.DependencyGraphUtils; +import org.apache.maven.archiva.dependency.graph.walk.BaseVisitor; +import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphVisitor; + +/** + * AbstractReduceEdgeVisitor + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public abstract class AbstractReduceEdgeVisitor + extends BaseVisitor + implements DependencyGraphVisitor +{ + public void finishGraph( DependencyGraph graph ) + { + super.finishGraph( graph ); + + DependencyGraphUtils.cleanupOrphanedNodes( graph ); + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/DependencyManagementApplier.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/DependencyManagementApplier.java new file mode 100644 index 000000000..6e7e9806f --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/DependencyManagementApplier.java @@ -0,0 +1,218 @@ +package org.apache.maven.archiva.dependency.graph.tasks; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.lang.StringUtils; +import org.apache.maven.archiva.dependency.graph.DependencyGraph; +import org.apache.maven.archiva.dependency.graph.DependencyGraphBuilder; +import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; +import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; +import org.apache.maven.archiva.dependency.graph.DependencyGraphUtils; +import org.apache.maven.archiva.dependency.graph.tasks.DependencyManagementStack.Rules; +import org.apache.maven.archiva.dependency.graph.walk.BaseVisitor; +import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphVisitor; +import org.apache.maven.archiva.model.ArtifactReference; +import org.apache.maven.archiva.model.VersionedReference; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +/** + * Takes a stack of DependencyManagement objects and applies them to the node in question. + * This merely sets the version / scope / and exclusions on the nodes, as defined by DependencyManagement. + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class DependencyManagementApplier + extends BaseVisitor + implements DependencyGraphVisitor +{ + private DependencyManagementStack depStack = new DependencyManagementStack(); + + private DependencyGraphBuilder builder; + + /** + * Map of changes to node versions (that will likely cause a reorganization of + * the graph), this is tracked until the walk is complete, at which point the + * changes are applied to the graph. + * + * Performing graph changes of this scope during a walk of graph is hazardous, + * as you will be moving nodes around, mergeing nodes, dropping edges, etc. + */ + private Map nodeVersionChanges = new HashMap(); + + private int nodesAdded = 0; + + public void discoverGraph( DependencyGraph graph ) + { + super.discoverGraph( graph ); + nodeVersionChanges.clear(); + depStack.reset(); + nodesAdded = 0; + } + + public void discoverNode( DependencyGraphNode node ) + { + super.discoverNode( node ); + + depStack.push( node ); + + List edgesFrom = graph.getEdgesFrom( node ); + Iterator it = edgesFrom.iterator(); + while ( it.hasNext() ) + { + DependencyGraphEdge edge = (DependencyGraphEdge) it.next(); + Rules rules = depStack.getRules( edge ); + + if ( rules == null ) + { + // No rules for edge, skip it. + continue; + } + + DependencyGraphNode subnode = graph.getNode( edge.getNodeTo() ); + + /* There are 3 steps to processing the DependencyManagement. */ + + /* 1) Add exclusions to node ________________________________________________ */ + node.getExcludes().addAll( rules.exclusions ); + + /* 2) Track version changes to node _________________________________________ */ + + // This is the version as specified by the rules. + String specifiedVersion = rules.artifact.getVersion(); + + // This is the version as being tracked by the nodeVersionChanges map. + String trackedVersion = (String) nodeVersionChanges.get( edge.getNodeTo() ); + + // This is the version of the subnode. + String nodeVersion = subnode.getArtifact().getVersion(); + + // This is the actual version as determined by tracked and subnode + String actualVersion = StringUtils.defaultString( trackedVersion, nodeVersion ); + + // If the specified version changes the actual version ... + if ( !StringUtils.equals( specifiedVersion, actualVersion ) ) + { + // ... save this new value to be track ( for processing in #finishedGraph ) + nodeVersionChanges.put( edge.getNodeTo(), specifiedVersion ); + } + + /* 3) Update scope to edge __________________________________________________ */ + + if ( StringUtils.isNotBlank( rules.scope ) ) + { + edge.setScope( rules.scope ); + } + } + } + + public void finishNode( DependencyGraphNode node ) + { + super.finishNode( node ); + + depStack.pop(); + } + + public void finishGraph( DependencyGraph graph ) + { + super.finishGraph( graph ); + + Iterator it = this.nodeVersionChanges.keySet().iterator(); + while ( it.hasNext() ) + { + ArtifactReference ref = (ArtifactReference) it.next(); + String toVersion = (String) this.nodeVersionChanges.get( ref ); + + collapseVersions( graph, ref, ref.getVersion(), toVersion ); + } + } + + /** + * Collapses Versions of nodes. + * + * Takes two nodes, with differing versions. + * + * 1) Removes the FROM edges connected to the FROM node + * 2) Moves the TO edges connected to the FROM node to the TO node. + * 3) Removes the FROM node (which is now orphaned) + * + * @param graph the graph to perform operation on + * @param fromRef the artifact reference of the FROM node. + * @param fromVersion the version of the FROM node + * @param toVersion the version of the TO node + */ + private void collapseVersions( DependencyGraph graph, ArtifactReference fromRef, String fromVersion, + String toVersion ) + { + if ( StringUtils.equals( fromVersion, toVersion ) ) + { + // No point in doing anything. nothing has changed. + return; + } + + ArtifactReference toRef = new ArtifactReference(); + toRef.setGroupId( fromRef.getGroupId() ); + toRef.setArtifactId( fromRef.getArtifactId() ); + toRef.setVersion( toVersion ); + toRef.setClassifier( fromRef.getClassifier() ); + toRef.setType( fromRef.getType() ); + + DependencyGraphNode nodeFROM = graph.getNode( fromRef ); + DependencyGraphNode nodeTO = graph.getNode( toRef ); + + if ( nodeTO == null ) + { + // new node doesn't exist in graph (yet) + nodeTO = new DependencyGraphNode( toRef ); + nodeTO.setResolved( false ); + + graph.addNode( nodeTO ); + + VersionedReference projectRef = new VersionedReference(); + projectRef.setGroupId( toRef.getGroupId() ); + projectRef.setArtifactId( toRef.getArtifactId() ); + projectRef.setVersion( toRef.getVersion() ); + + builder.resolveNode( graph, nodeTO, projectRef ); + nodesAdded++; + } + + DependencyGraphUtils.collapseNodes( graph, nodeFROM, nodeTO ); + } + + public DependencyGraphBuilder getBuilder() + { + return builder; + } + + public void setBuilder( DependencyGraphBuilder builder ) + { + this.builder = builder; + } + + public boolean hasCreatedNodes() + { + return ( nodesAdded > 0 ); + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/DependencyManagementStack.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/DependencyManagementStack.java new file mode 100644 index 000000000..c9563044b --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/DependencyManagementStack.java @@ -0,0 +1,152 @@ +package org.apache.maven.archiva.dependency.graph.tasks; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.collections.iterators.ReverseListIterator; +import org.apache.commons.lang.StringUtils; +import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; +import org.apache.maven.archiva.dependency.graph.DependencyGraphKeys; +import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; +import org.apache.maven.archiva.model.ArtifactReference; +import org.apache.maven.archiva.model.Dependency; +import org.apache.maven.archiva.model.Exclusion; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Stack; + +/** + * DependencyManagementStack + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class DependencyManagementStack +{ + public class Rules + { + public ArtifactReference artifact; + + public String scope; + + public Set exclusions = new HashSet(); + + public void addAllExclusions( List depExclusions ) + { + Iterator it = depExclusions.iterator(); + while ( it.hasNext() ) + { + Exclusion ref = (Exclusion) it.next(); + String key = DependencyGraphKeys.toManagementKey( ref ); + exclusions.add( key ); + } + } + } + + private Stack depmanStack = new Stack(); + + private Map depMap = new HashMap(); + + private void generateDepMap() + { + depMap.clear(); + + // Using a reverse iterator to ensure that we read the + // stack from last in to first in + ReverseListIterator it = new ReverseListIterator( depmanStack ); + while ( it.hasNext() ) + { + DependencyGraphNode node = (DependencyGraphNode) it.next(); + + addDependencies( node.getDependencyManagement() ); + } + } + + private void addDependencies( List dependencies ) + { + Iterator it = dependencies.iterator(); + while ( it.hasNext() ) + { + Dependency dep = (Dependency) it.next(); + String key = DependencyGraphKeys.toManagementKey( dep ); + + Rules merged = (Rules) depMap.get( key ); + if ( merged == null ) + { + // New map entry. + merged = new Rules(); + merged.artifact = new ArtifactReference(); + merged.artifact.setGroupId( dep.getGroupId() ); + merged.artifact.setArtifactId( dep.getArtifactId() ); + merged.artifact.setClassifier( dep.getClassifier() ); + merged.artifact.setType( dep.getType() ); + } + + merged.artifact.setVersion( dep.getVersion() ); + if ( StringUtils.isNotBlank( dep.getScope() ) ) + { + merged.scope = dep.getScope(); + } + + merged.addAllExclusions( dep.getExclusions() ); + + depMap.put( key, merged ); + } + } + + public Rules getRules( DependencyGraphEdge edge ) + { + return getRules( edge.getNodeTo() ); + } + + public Rules getRules( DependencyGraphNode node ) + { + return getRules( node.getArtifact() ); + } + + public Rules getRules( ArtifactReference ref ) + { + String key = DependencyGraphKeys.toManagementKey( ref ); + return (Rules) depMap.get( key ); + } + + public void push( DependencyGraphNode node ) + { + depmanStack.push( node ); + generateDepMap(); + } + + public DependencyGraphNode pop() + { + DependencyGraphNode node = (DependencyGraphNode) depmanStack.pop(); + generateDepMap(); + return node; + } + + public void reset() + { + depmanStack.clear(); + depMap.clear(); + } +} \ No newline at end of file diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/FlagCyclicEdgesTask.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/FlagCyclicEdgesTask.java new file mode 100644 index 000000000..9206b7035 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/FlagCyclicEdgesTask.java @@ -0,0 +1,34 @@ +package org.apache.maven.archiva.dependency.graph.tasks; + +import org.apache.maven.archiva.dependency.graph.DependencyGraph; +import org.apache.maven.archiva.dependency.graph.GraphTask; +import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphWalker; +import org.apache.maven.archiva.dependency.graph.walk.WalkDepthFirstSearch; + +/** + * FlagCyclicEdgesTask + * + * @author Joakim Erdfelt + * @version $Id$ + * + * @plexus.component + * role="org.apache.maven.archiva.dependency.graph.GraphTask" + * role-hint="flag-cyclic-edges" + * instantiation-strategy="per-lookup" + */ +public class FlagCyclicEdgesTask + implements GraphTask +{ + + public void executeTask( DependencyGraph graph ) + { + DependencyGraphWalker walker = new WalkDepthFirstSearch(); + FlagExcludedEdgesVisitor excludedEdgeResolver = new FlagExcludedEdgesVisitor(); + walker.visit( graph, excludedEdgeResolver ); + } + + public String getTaskId() + { + return "flag-cyclic-edges"; + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/FlagCyclicEdgesVisitor.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/FlagCyclicEdgesVisitor.java new file mode 100644 index 000000000..27d719a15 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/FlagCyclicEdgesVisitor.java @@ -0,0 +1,70 @@ +package org.apache.maven.archiva.dependency.graph.tasks; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.dependency.graph.DependencyGraph; +import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; +import org.apache.maven.archiva.dependency.graph.walk.BaseVisitor; +import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphVisitor; +import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphWalker; +import org.apache.maven.archiva.model.ArtifactReference; + +import java.util.HashSet; +import java.util.Set; + +/** + * FlagCyclicEdgesVisitor + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class FlagCyclicEdgesVisitor + extends BaseVisitor + implements DependencyGraphVisitor +{ + private DependencyGraphWalker walker; + + private Set cyclicEdges = new HashSet(); + + public FlagCyclicEdgesVisitor( DependencyGraphWalker walker ) + { + this.walker = walker; + } + + public void discoverEdge( DependencyGraphEdge edge ) + { + ArtifactReference artifact = edge.getNodeTo(); + + // Process for cyclic edges. + if ( walker.getNodeVisitState( artifact ) == DependencyGraphWalker.PROCESSING ) + { + edge.setDisabled( true ); + edge.setDisabledType( DependencyGraph.DISABLED_CYCLIC ); + edge.setDisabledReason( "Cycle detected" ); + // TODO: insert into reason the path for the cycle that was detected. + cyclicEdges.add( edge ); + } + } + + public Set getCyclicEdges() + { + return cyclicEdges; + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/FlagExcludedEdgesTask.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/FlagExcludedEdgesTask.java new file mode 100644 index 000000000..6b3476bef --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/FlagExcludedEdgesTask.java @@ -0,0 +1,52 @@ +package org.apache.maven.archiva.dependency.graph.tasks; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.dependency.graph.DependencyGraph; +import org.apache.maven.archiva.dependency.graph.GraphTask; +import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphWalker; +import org.apache.maven.archiva.dependency.graph.walk.WalkDepthFirstSearch; + +/** + * FlagExcludedEdgesTask + * + * @author Joakim Erdfelt + * @version $Id$ + * + * @plexus.component + * role="org.apache.maven.archiva.dependency.graph.GraphTask" + * role-hint="flag-excluded-edges" + * instantiation-strategy="per-lookup" + */ +public class FlagExcludedEdgesTask + implements GraphTask +{ + public void executeTask( DependencyGraph graph ) + { + DependencyGraphWalker walker = new WalkDepthFirstSearch(); + FlagExcludedEdgesVisitor excludedEdgeResolver = new FlagExcludedEdgesVisitor(); + walker.visit( graph, excludedEdgeResolver ); + } + + public String getTaskId() + { + return "flag-excluded-edges"; + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/FlagExcludedEdgesVisitor.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/FlagExcludedEdgesVisitor.java new file mode 100644 index 000000000..6681aed0b --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/FlagExcludedEdgesVisitor.java @@ -0,0 +1,86 @@ +package org.apache.maven.archiva.dependency.graph.tasks; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.dependency.graph.DependencyGraph; +import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; +import org.apache.maven.archiva.dependency.graph.DependencyGraphKeys; +import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; +import org.apache.maven.archiva.dependency.graph.walk.BaseVisitor; +import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphVisitor; +import org.apache.maven.archiva.model.ArtifactReference; + +import java.util.Iterator; +import java.util.Stack; + +/** + * FlagExcludedEdgesVisitor + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class FlagExcludedEdgesVisitor + extends BaseVisitor + implements DependencyGraphVisitor +{ + private Stack nodePath = new Stack(); + + public void discoverEdge( DependencyGraphEdge edge ) + { + ArtifactReference artifact = edge.getNodeTo(); + + // Process for excluded edges. + String toKey = DependencyGraphKeys.toManagementKey( artifact ); + Iterator it = this.nodePath.iterator(); + while ( it.hasNext() ) + { + DependencyGraphNode pathNode = (DependencyGraphNode) it.next(); + + // Process dependency declared exclusions. + if ( pathNode.getExcludes().contains( toKey ) ) + { + edge.setDisabled( true ); + edge.setDisabledType( DependencyGraph.DISABLED_EXCLUDED ); + String whoExcluded = DependencyGraphKeys.toKey( pathNode ); + edge.setDisabledReason( "Specifically Excluded by " + whoExcluded ); + break; + } + } + } + + public void discoverNode( DependencyGraphNode node ) + { + super.discoverNode( node ); + nodePath.push( node ); + } + + public void finishNode( DependencyGraphNode node ) + { + super.finishNode( node ); + DependencyGraphNode pathNode = (DependencyGraphNode) nodePath.pop(); + if ( !node.equals( pathNode ) ) + { + String pathNodeKey = ArtifactReference.toKey( pathNode.getArtifact() ); + String finishNodeKey = ArtifactReference.toKey( node.getArtifact() ); + throw new IllegalStateException( "Encountered bad visitor state. Expected finish on node " + pathNodeKey + + ", but instead got notified of node " + finishNodeKey ); + } + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/GraphCopier.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/GraphCopier.java new file mode 100644 index 000000000..6682e052b --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/GraphCopier.java @@ -0,0 +1,81 @@ +package org.apache.maven.archiva.dependency.graph.tasks; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.dependency.graph.DependencyGraph; +import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; +import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; +import org.apache.maven.archiva.dependency.graph.walk.BaseVisitor; +import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphVisitor; + +/** + * GraphCopier + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class GraphCopier + extends BaseVisitor + implements DependencyGraphVisitor +{ + protected DependencyGraph copiedGraph; + + public DependencyGraph getGraph() + { + return copiedGraph; + } + + public void setGraph( DependencyGraph graph ) + { + this.copiedGraph = graph; + } + + public void discoverNode( DependencyGraphNode node ) + { + if ( copiedGraph == null ) + { + copiedGraph = new DependencyGraph( node ); + } + } + + /** + * Be sure to override and NOT call this method in your sub class, + * if you want to copy edges based on some kind of criteria. + */ + public void discoverEdge( DependencyGraphEdge edge ) + { + copyEdge( edge ); + } + + public void copyEdge( DependencyGraphEdge edge ) + { + DependencyGraphNode nodeFrom = graph.getNode( edge.getNodeFrom() ); + DependencyGraphNode nodeTo = graph.getNode( edge.getNodeTo() ); + + this.copiedGraph.addNode( nodeFrom ); + this.copiedGraph.addNode( nodeTo ); + this.copiedGraph.addEdge( edge ); + } + + public void reset() + { + this.copiedGraph = null; + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/PopulateDependencyManagementTask.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/PopulateDependencyManagementTask.java new file mode 100644 index 000000000..baa000923 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/PopulateDependencyManagementTask.java @@ -0,0 +1,53 @@ +package org.apache.maven.archiva.dependency.graph.tasks; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.dependency.graph.DependencyGraph; +import org.apache.maven.archiva.dependency.graph.GraphTask; +import org.apache.maven.archiva.dependency.graph.PotentialCyclicEdgeProducer; +import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphWalker; +import org.apache.maven.archiva.dependency.graph.walk.WalkDepthFirstSearch; + +/** + * PopulateDependencyManagementTask + * + * @author Joakim Erdfelt + * @version $Id$ + * + * @plexus.component + * role="org.apache.maven.archiva.dependency.graph.GraphTask" + * role-hint="populate-dependency-management" + * instantiation-strategy="per-lookup" + */ +public class PopulateDependencyManagementTask + implements GraphTask, PotentialCyclicEdgeProducer +{ + public void executeTask( DependencyGraph graph ) + { + DependencyGraphWalker walker = new WalkDepthFirstSearch(); + DependencyManagementApplier depManApplier = new DependencyManagementApplier(); + walker.visit( graph, depManApplier ); + } + + public String getTaskId() + { + return "populate-dependency-management"; + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/PopulateGraphMasterTask.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/PopulateGraphMasterTask.java new file mode 100644 index 000000000..11498c86b --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/PopulateGraphMasterTask.java @@ -0,0 +1,92 @@ +package org.apache.maven.archiva.dependency.graph.tasks; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.dependency.graph.DependencyGraph; +import org.apache.maven.archiva.dependency.graph.DependencyGraphBuilder; +import org.apache.maven.archiva.dependency.graph.DependencyGraphUtils; +import org.apache.maven.archiva.dependency.graph.GraphTask; +import org.apache.maven.archiva.dependency.graph.GraphTaskException; +import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphWalker; +import org.apache.maven.archiva.dependency.graph.walk.WalkDepthFirstSearch; + +/** + * PopulateGraphMasterTask - will perform a resolve / depman apply loop until the graph is fully populated. + * + * @author Joakim Erdfelt + * @version $Id$ + * + * @plexus.component + * role="org.apache.maven.archiva.dependency.graph.GraphTask" + * role-hint="populate-graph" + * instantiation-strategy="per-lookup" + */ +public class PopulateGraphMasterTask + implements GraphTask +{ + private DependencyGraphBuilder builder; + + private ResolveGraphTask resolveGraphTask = new ResolveGraphTask(); + + private DependencyManagementApplier depManApplier = new DependencyManagementApplier(); + + public void executeTask( DependencyGraph graph ) + throws GraphTaskException + { + DependencyGraphWalker walker = new WalkDepthFirstSearch(); + + boolean done = false; + int maxiters = 5; + + while ( !done ) + { + resolveGraphTask.executeTask( graph ); + walker.visit( graph, depManApplier ); + + if ( !depManApplier.hasCreatedNodes() || ( maxiters < 0 ) ) + { + done = true; + break; + } + + maxiters--; + } + + DependencyGraphUtils.cleanupOrphanedNodes( graph ); + } + + public String getTaskId() + { + return "populate-graph"; + } + + public DependencyGraphBuilder getBuilder() + { + return builder; + } + + public void setBuilder( DependencyGraphBuilder builder ) + { + this.builder = builder; + this.resolveGraphTask.setBuilder( builder ); + this.depManApplier.setBuilder( builder ); + } + +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceEnabledEdgesTask.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceEnabledEdgesTask.java new file mode 100644 index 000000000..dbb928277 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceEnabledEdgesTask.java @@ -0,0 +1,35 @@ +package org.apache.maven.archiva.dependency.graph.tasks; + +import org.apache.commons.collections.functors.TruePredicate; +import org.apache.maven.archiva.dependency.graph.DependencyGraph; +import org.apache.maven.archiva.dependency.graph.GraphTask; +import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphWalker; +import org.apache.maven.archiva.dependency.graph.walk.WalkDepthFirstSearch; + +/** + * ReduceEnabledEdgesTask + * + * @author Joakim Erdfelt + * @version $Id$ + * + * @plexus.component + * role="org.apache.maven.archiva.dependency.graph.GraphTask" + * role-hint="reduce-enabled-edges" + * instantiation-strategy="per-lookup" + */ +public class ReduceEnabledEdgesTask + implements GraphTask +{ + public void executeTask( DependencyGraph graph ) + { + DependencyGraphWalker walker = new WalkDepthFirstSearch(); + walker.setEdgePredicate( TruePredicate.getInstance() ); + ReduceEnabledEdgesVisitor reduceEnabledEdgesResolver = new ReduceEnabledEdgesVisitor(); + walker.visit( graph, reduceEnabledEdgesResolver ); + } + + public String getTaskId() + { + return "reduce-enabled-edges"; + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceEnabledEdgesVisitor.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceEnabledEdgesVisitor.java new file mode 100644 index 000000000..16ab9bfd4 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceEnabledEdgesVisitor.java @@ -0,0 +1,42 @@ +package org.apache.maven.archiva.dependency.graph.tasks; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; +import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphVisitor; + +/** + * Removes all disabled edges from the graph. + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class ReduceEnabledEdgesVisitor + extends AbstractReduceEdgeVisitor + implements DependencyGraphVisitor +{ + public void discoverEdge( DependencyGraphEdge edge ) + { + if ( edge.isDisabled() ) + { + super.graph.removeEdge( edge ); + } + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceScopeTask.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceScopeTask.java new file mode 100644 index 000000000..63b2a3f13 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceScopeTask.java @@ -0,0 +1,50 @@ +package org.apache.maven.archiva.dependency.graph.tasks; + +import org.apache.maven.archiva.dependency.graph.DependencyGraph; +import org.apache.maven.archiva.dependency.graph.GraphTask; +import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphWalker; +import org.apache.maven.archiva.dependency.graph.walk.WalkDepthFirstSearch; + +/** + * ReduceScopeTask + * + * @author Joakim Erdfelt + * @version $Id$ + * + * @plexus.component + * role="org.apache.maven.archiva.dependency.graph.GraphTask" + * role-hint="reduce-scope" + * instantiation-strategy="per-lookup" + */ +public class ReduceScopeTask + implements GraphTask +{ + private String scope; + + public ReduceScopeTask( String scope ) + { + this.scope = scope; + } + + public void executeTask( DependencyGraph graph ) + { + DependencyGraphWalker walker = new WalkDepthFirstSearch(); + ReduceScopeVisitor reduceScopeResolver = new ReduceScopeVisitor( this.scope ); + walker.visit( graph, reduceScopeResolver ); + } + + public String getScope() + { + return scope; + } + + public void setScope( String scope ) + { + this.scope = scope; + } + + public String getTaskId() + { + return "reduce-scope"; + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceScopeVisitor.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceScopeVisitor.java new file mode 100644 index 000000000..783678798 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceScopeVisitor.java @@ -0,0 +1,51 @@ +package org.apache.maven.archiva.dependency.graph.tasks; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.collections.Predicate; +import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; +import org.apache.maven.archiva.dependency.graph.functors.EdgeWithinScopePredicate; +import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphVisitor; + +/** + * ReduceScopeVisitor + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class ReduceScopeVisitor + extends AbstractReduceEdgeVisitor + implements DependencyGraphVisitor +{ + private Predicate scopedPredicate; + + public ReduceScopeVisitor( String scope ) + { + scopedPredicate = new EdgeWithinScopePredicate( scope ); + } + + public void discoverEdge( DependencyGraphEdge edge ) + { + if ( !scopedPredicate.evaluate( edge ) ) + { + super.graph.removeEdge( edge ); + } + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceTransitiveEdgesTask.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceTransitiveEdgesTask.java new file mode 100644 index 000000000..0addf9a5b --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceTransitiveEdgesTask.java @@ -0,0 +1,53 @@ +package org.apache.maven.archiva.dependency.graph.tasks; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.dependency.graph.DependencyGraph; +import org.apache.maven.archiva.dependency.graph.GraphTask; +import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphWalker; +import org.apache.maven.archiva.dependency.graph.walk.WalkBreadthFirstSearch; + +/** + * ReduceTransitiveEdgesTask + * + * @author Joakim Erdfelt + * @version $Id$ + * + * @plexus.component + * role="org.apache.maven.archiva.dependency.graph.GraphTask" + * role-hint="reduce-transitive-edges" + * instantiation-strategy="per-lookup" + */ +public class ReduceTransitiveEdgesTask + implements GraphTask +{ + + public void executeTask( DependencyGraph graph ) + { + DependencyGraphWalker walker = new WalkBreadthFirstSearch(); + ReduceTransitiveEdgesVisitor reduceTransitiveEdgesResolver = new ReduceTransitiveEdgesVisitor(); + walker.visit( graph, reduceTransitiveEdgesResolver ); + } + + public String getTaskId() + { + return "reduce-transitive-edges"; + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceTransitiveEdgesVisitor.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceTransitiveEdgesVisitor.java new file mode 100644 index 000000000..37c397aa9 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ReduceTransitiveEdgesVisitor.java @@ -0,0 +1,161 @@ +package org.apache.maven.archiva.dependency.graph.tasks; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.dependency.graph.DependencyGraph; +import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; +import org.apache.maven.archiva.dependency.graph.DependencyGraphKeys; +import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; +import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphVisitor; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +/** + * Perform a transitive reduction of the graph. + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class ReduceTransitiveEdgesVisitor + extends AbstractReduceEdgeVisitor + implements DependencyGraphVisitor +{ + class EdgeInfo + { + public DependencyGraphEdge edge; + + public int depth = Integer.MAX_VALUE; + } + + class EdgeInfoDepthComparator + implements Comparator + { + public int compare( Object obj0, Object obj1 ) + { + EdgeInfo edgeInfo0 = (EdgeInfo) obj0; + EdgeInfo edgeInfo1 = (EdgeInfo) obj1; + + return edgeInfo0.depth - edgeInfo1.depth; + } + } + + /** + * A Map of <(Node To) ArtifactReference, Map of <(Node From) ArtifactReference, EdgeInfo>> + */ + private Map /*>*/nodeDistanceMap = new HashMap(); + + private int currentDepth; + + public void discoverGraph( DependencyGraph graph ) + { + super.discoverGraph( graph ); + nodeDistanceMap.clear(); + currentDepth = 0; + } + + public void discoverEdge( DependencyGraphEdge edge ) + { + /* WARNING: it is unwise to remove the edge at this point. + * as modifying the graph as it's being walked is dangerous. + * + * Just record the edge's current depth. + */ + + String nodeTo = DependencyGraphKeys.toKey( edge.getNodeTo() ); + String nodeFrom = DependencyGraphKeys.toKey( edge.getNodeFrom() ); + + // Get sub-map + Map edgeInfoMap = (Map) nodeDistanceMap.get( nodeTo ); + + // Create sub-map if not present (yet) + if ( edgeInfoMap == null ) + { + edgeInfoMap = new HashMap(); + nodeDistanceMap.put( nodeTo, edgeInfoMap ); + } + + // Get sub-map-value. + EdgeInfo edgeInfo = (EdgeInfo) edgeInfoMap.get( nodeFrom ); + + if ( edgeInfo == null ) + { + // Create a new edgeinfo. + edgeInfo = new EdgeInfo(); + edgeInfo.edge = edge; + edgeInfo.depth = currentDepth; + edgeInfoMap.put( nodeFrom, edgeInfo ); + } + // test the current depth, if it is less than previous depth, save it + else if ( currentDepth < edgeInfo.depth ) + { + edgeInfo.depth = currentDepth; + edgeInfoMap.put( nodeFrom, edgeInfo ); + } + + nodeDistanceMap.put( nodeTo, edgeInfoMap ); + } + + public void discoverNode( DependencyGraphNode node ) + { + super.discoverNode( node ); + currentDepth++; + + } + + public void finishNode( DependencyGraphNode node ) + { + super.finishNode( node ); + currentDepth--; + } + + public void finishGraph( DependencyGraph graph ) + { + super.finishGraph( graph ); + + // Now we prune/remove the edges that are transitive in nature. + + Comparator edgeInfoDepthComparator = new EdgeInfoDepthComparator(); + + Iterator it = nodeDistanceMap.values().iterator(); + while ( it.hasNext() ) + { + Map edgeInfoMap = (Map) it.next(); + + if ( edgeInfoMap.size() > 1 ) + { + List edgeInfos = new ArrayList(); + edgeInfos.addAll( edgeInfoMap.values() ); + Collections.sort( edgeInfos, edgeInfoDepthComparator ); + + for ( int i = 1; i < edgeInfos.size(); i++ ) + { + EdgeInfo edgeInfo = (EdgeInfo) edgeInfos.get( i ); + graph.removeEdge( edgeInfo.edge ); + } + } + } + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/RefineConflictsTask.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/RefineConflictsTask.java new file mode 100644 index 000000000..d8b524e80 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/RefineConflictsTask.java @@ -0,0 +1,98 @@ +package org.apache.maven.archiva.dependency.graph.tasks; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections.map.MultiValueMap; +import org.apache.maven.archiva.dependency.graph.DependencyGraph; +import org.apache.maven.archiva.dependency.graph.DependencyGraphKeys; +import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; +import org.apache.maven.archiva.dependency.graph.GraphTask; +import org.apache.maven.archiva.dependency.graph.PotentialCyclicEdgeProducer; +import org.apache.maven.archiva.dependency.graph.functors.ToArtifactReferenceTransformer; +import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphWalker; +import org.apache.maven.archiva.dependency.graph.walk.WalkDepthFirstSearch; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; + +/** + * RefineConflictsTask + * + * @author Joakim Erdfelt + * @version $Id$ + * + * @plexus.component + * role="org.apache.maven.archiva.dependency.graph.GraphTask" + * role-hint="refine-conflicts" + * instantiation-strategy="per-lookup" + */ +public class RefineConflictsTask + implements GraphTask, PotentialCyclicEdgeProducer +{ + + public void executeTask( DependencyGraph graph ) + { + Iterator it; + DependencyGraphWalker walker = new WalkDepthFirstSearch(); + RefineConflictsVisitor refineConflictsVisitor = new RefineConflictsVisitor(); + + MultiValueMap depMap = new MultiValueMap(); + + // Identify deps that need to be resolved. + it = graph.getNodes().iterator(); + while ( it.hasNext() ) + { + DependencyGraphNode node = (DependencyGraphNode) it.next(); + String key = DependencyGraphKeys.toManagementKey( node.getArtifact() ); + // This will add this node to the specified key, not replace a previous one. + depMap.put( key, node ); + } + + // Process those depMap entries with more than 1 value. + ToArtifactReferenceTransformer nodeToArtifact = new ToArtifactReferenceTransformer(); + + it = depMap.entrySet().iterator(); + while ( it.hasNext() ) + { + Map.Entry entry = (Entry) it.next(); + Collection nodes = (Collection) entry.getValue(); + if ( nodes.size() > 1 ) + { + List conflictingArtifacts = new ArrayList(); + conflictingArtifacts.addAll( nodes ); + CollectionUtils.transform( conflictingArtifacts, nodeToArtifact ); + + refineConflictsVisitor.resetConflictingArtifacts(); + refineConflictsVisitor.addAllConflictingArtifacts( conflictingArtifacts ); + walker.visit( graph, refineConflictsVisitor ); + } + } + } + + public String getTaskId() + { + return "refine-conflicts"; + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/RefineConflictsVisitor.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/RefineConflictsVisitor.java new file mode 100644 index 000000000..1982ad0ac --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/RefineConflictsVisitor.java @@ -0,0 +1,303 @@ +package org.apache.maven.archiva.dependency.graph.tasks; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections.MapUtils; +import org.apache.commons.collections.Predicate; +import org.apache.commons.collections.comparators.ReverseComparator; +import org.apache.commons.collections.functors.NotPredicate; +import org.apache.commons.collections.list.TypedList; +import org.apache.maven.archiva.common.utils.VersionComparator; +import org.apache.maven.archiva.dependency.graph.DependencyGraph; +import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; +import org.apache.maven.archiva.dependency.graph.DependencyGraphKeys; +import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; +import org.apache.maven.archiva.dependency.graph.DependencyGraphUtils; +import org.apache.maven.archiva.dependency.graph.walk.BaseVisitor; +import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphVisitor; +import org.apache.maven.archiva.model.ArtifactReference; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * RefineConflictsVisitor + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class RefineConflictsVisitor + extends BaseVisitor + implements DependencyGraphVisitor +{ + class DepthComparator + implements Comparator + { + public int compare( Object obj0, Object obj1 ) + { + NodeLocation nodeLoc0 = (NodeLocation) obj0; + NodeLocation nodeLoc1 = (NodeLocation) obj1; + + return nodeLoc0.depth - nodeLoc1.depth; + } + } + + class NodeLocation + { + public ArtifactReference artifact; + + public DependencyGraphEdge edge; + + public int depth; + + public NodeLocation( ArtifactReference artifact, DependencyGraphEdge edge, int depth ) + { + this.artifact = artifact; + this.edge = edge; + this.depth = depth; + } + } + + class NodeLocationPredicate + implements Predicate + { + private ArtifactReference artifact; + + public NodeLocationPredicate( ArtifactReference artifact ) + { + this.artifact = artifact; + } + + public NodeLocationPredicate( DependencyGraphNode node ) + { + this( node.getArtifact() ); + } + + public boolean evaluate( Object object ) + { + boolean satisfies = false; + + if ( object instanceof NodeLocation ) + { + NodeLocation nodeloc = (NodeLocation) object; + satisfies = nodeloc.artifact.equals( artifact ); + } + + return satisfies; + } + + } + + class NodeLocationVersionComparator + implements Comparator + { + public int compare( Object o1, Object o2 ) + { + if ( o1 == null && o2 == null ) + { + return 0; + } + + if ( o1 == null && o2 != null ) + { + return 1; + } + + if ( o1 != null && o2 == null ) + { + return -1; + } + + if ( ( o1 instanceof NodeLocation ) && ( o2 instanceof NodeLocation ) ) + { + String version1 = ( (NodeLocation) o1 ).artifact.getVersion(); + String version2 = ( (NodeLocation) o2 ).artifact.getVersion(); + + VersionComparator.getInstance().compare( version1, version2 ); + } + + return 0; + } + } + + class DistantNodeLocationPredicate + implements Predicate + { + private int cutoff; + + public DistantNodeLocationPredicate( int distantCutoff ) + { + this.cutoff = distantCutoff; + } + + public boolean evaluate( Object object ) + { + boolean satisfies = false; + + if ( object instanceof NodeLocation ) + { + NodeLocation nodeloc = (NodeLocation) object; + satisfies = ( nodeloc.depth >= this.cutoff ); + } + + return satisfies; + } + } + + private List conflictingArtifacts; + + private Map foundNodesMap = new HashMap(); + + private int currentDepth = 0; + + private DependencyGraph currentGraph; + + public RefineConflictsVisitor() + { + conflictingArtifacts = TypedList.decorate( new ArrayList(), ArtifactReference.class ); + } + + public void discoverGraph( DependencyGraph graph ) + { + super.discoverGraph( graph ); + this.currentGraph = graph; + this.foundNodesMap.clear(); + } + + public void discoverNode( DependencyGraphNode node ) + { + super.discoverNode( node ); + + currentDepth++; + + List edgesFrom = currentGraph.getEdgesFrom( node ); + Iterator it = edgesFrom.iterator(); + while ( it.hasNext() ) + { + DependencyGraphEdge edge = (DependencyGraphEdge) it.next(); + if ( this.conflictingArtifacts.contains( edge.getNodeTo() ) ) + { + String nodeKey = DependencyGraphKeys.toKey( edge.getNodeTo() ); + // Check for existing NodeLocation with same key + NodeLocation nodeloc = (NodeLocation) this.foundNodesMap.get( nodeKey ); + + if ( ( nodeloc == null ) || ( currentDepth < nodeloc.depth ) ) + { + nodeloc = new NodeLocation( edge.getNodeTo(), edge, currentDepth ); + this.foundNodesMap.put( nodeKey, nodeloc ); + } + } + } + } + + public void finishGraph( DependencyGraph graph ) + { + super.finishGraph( graph ); + + if ( MapUtils.isEmpty( this.foundNodesMap ) ) + { + return; + } + + // Find winning node. + ArtifactReference winningArtifact = findWinningArtifact( this.foundNodesMap.values() ); + DependencyGraphNode winningNode = graph.getNode( winningArtifact ); + + // Gather up Losing Nodes. + Set losingNodes = new HashSet(); + Predicate losersPredicate = NotPredicate.getInstance( new NodeLocationPredicate( winningArtifact ) ); + CollectionUtils.select( this.foundNodesMap.values(), losersPredicate, losingNodes ); + + // Swing losing nodes to winning node. + Iterator it = losingNodes.iterator(); + while ( it.hasNext() ) + { + NodeLocation losingNodeLoc = (NodeLocation) it.next(); + DependencyGraphNode losingNode = graph.getNode( losingNodeLoc.artifact ); + DependencyGraphUtils.collapseNodes( graph, losingNode, winningNode ); + } + } + + private ArtifactReference findWinningArtifact( Collection nodes ) + { + List remainingNodes = new ArrayList(); + remainingNodes.addAll( nodes ); + + /* .\ Filter by Depth \.____________________________________________________ */ + + // Sort by depth. + Collections.sort( remainingNodes, new DepthComparator() ); + + // Determine 'closest' node depth. + NodeLocation nearestNode = (NodeLocation) remainingNodes.get( 0 ); + int nearest = nearestNode.depth; + + // Filter out distant nodes. + Predicate distantLocations = new DistantNodeLocationPredicate( nearest ); + CollectionUtils.filter( remainingNodes, distantLocations ); + + // Do we have 1 node left? + if ( remainingNodes.size() == 1 ) + { + // A winner! + NodeLocation nodeloc = (NodeLocation) remainingNodes.get( 0 ); + return nodeloc.artifact; + } + + /* .\ Filter by Newest Version \.___________________________________________ */ + + // We have 2 or more nodes that are equal distance from the root. + // Determine which one is 'newest' based on version id. + Collections.sort( remainingNodes, new ReverseComparator( new NodeLocationVersionComparator() ) ); + + NodeLocation nodeloc = (NodeLocation) remainingNodes.get( 0 ); + return nodeloc.artifact; + } + + public void finishNode( DependencyGraphNode node ) + { + super.finishNode( node ); + currentDepth--; + } + + public List getConflictingArtifacts() + { + return conflictingArtifacts; + } + + public void addAllConflictingArtifacts( Collection nodes ) + { + this.conflictingArtifacts.addAll( nodes ); + } + + public void resetConflictingArtifacts() + { + this.conflictingArtifacts.clear(); + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ResolveGraphTask.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ResolveGraphTask.java new file mode 100644 index 000000000..b5731386d --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/ResolveGraphTask.java @@ -0,0 +1,114 @@ +package org.apache.maven.archiva.dependency.graph.tasks; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.collections.CollectionUtils; +import org.apache.maven.archiva.dependency.graph.DependencyGraph; +import org.apache.maven.archiva.dependency.graph.DependencyGraphBuilder; +import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; +import org.apache.maven.archiva.dependency.graph.GraphTask; +import org.apache.maven.archiva.dependency.graph.PotentialCyclicEdgeProducer; +import org.apache.maven.archiva.dependency.graph.functors.UnresolvedGraphNodePredicate; +import org.apache.maven.archiva.model.VersionedReference; + +/** + * Loop through the unresolved nodes and resolve them, until there + * are no more unresolved nodes. + * + * @author Joakim Erdfelt + * @version $Id$ + * + * @plexus.component + * role="org.apache.maven.archiva.dependency.graph.GraphTask" + * role-hint="resolve-graph" + * instantiation-strategy="per-lookup" + */ +public class ResolveGraphTask + implements GraphTask, PotentialCyclicEdgeProducer +{ + private DependencyGraphBuilder builder; + + private int resolvedCount = 0; + + private VersionedReference toVersionedReference( DependencyGraphNode node ) + { + VersionedReference ref = new VersionedReference(); + ref.setGroupId( node.getArtifact().getGroupId() ); + ref.setArtifactId( node.getArtifact().getArtifactId() ); + ref.setVersion( node.getArtifact().getVersion() ); + + return ref; + } + + public void executeTask( DependencyGraph graph ) + { + resolvedCount = 0; + VersionedReference rootRef = toVersionedReference( graph.getRootNode() ); + + if ( !graph.getRootNode().isResolved() ) + { + builder.resolveNode( graph, graph.getRootNode(), rootRef ); + resolvedCount++; + } + + boolean done = false; + + while ( !done ) + { + DependencyGraphNode node = findUnresolvedNode( graph ); + if ( node == null ) + { + done = true; + break; + } + + VersionedReference otherRef = toVersionedReference( node ); + + builder.resolveNode( graph, node, otherRef ); + resolvedCount++; + } + } + + private DependencyGraphNode findUnresolvedNode( DependencyGraph graph ) + { + return (DependencyGraphNode) CollectionUtils + .find( graph.getNodes(), UnresolvedGraphNodePredicate.getInstance() ); + } + + public DependencyGraphBuilder getBuilder() + { + return builder; + } + + public void setBuilder( DependencyGraphBuilder graphBuilder ) + { + this.builder = graphBuilder; + } + + public String getTaskId() + { + return "resolve-graph"; + } + + public int getResolvedCount() + { + return resolvedCount; + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/UpdateScopesTask.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/UpdateScopesTask.java new file mode 100644 index 000000000..8b585de21 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/UpdateScopesTask.java @@ -0,0 +1,35 @@ +package org.apache.maven.archiva.dependency.graph.tasks; + +import org.apache.maven.archiva.dependency.graph.DependencyGraph; +import org.apache.maven.archiva.dependency.graph.GraphTask; +import org.apache.maven.archiva.dependency.graph.GraphTaskException; +import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphWalker; +import org.apache.maven.archiva.dependency.graph.walk.WalkDepthFirstSearch; + +/** + * Update the scopes of the edges to what their parent node says. + * + * @author Joakim Erdfelt + * @version $Id$ + * + * @plexus.component + * role="org.apache.maven.archiva.dependency.graph.GraphTask" + * role-hint="update-scopes" + * instantiation-strategy="per-lookup" + */ +public class UpdateScopesTask + implements GraphTask +{ + public void executeTask( DependencyGraph graph ) + throws GraphTaskException + { + DependencyGraphWalker walker = new WalkDepthFirstSearch(); + UpdateScopesVisitor updateScopes = new UpdateScopesVisitor(); + walker.visit( graph, updateScopes ); + } + + public String getTaskId() + { + return "update-scopes"; + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/UpdateScopesVisitor.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/UpdateScopesVisitor.java new file mode 100644 index 000000000..691701d96 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/tasks/UpdateScopesVisitor.java @@ -0,0 +1,82 @@ +package org.apache.maven.archiva.dependency.graph.tasks; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.collections.Predicate; +import org.apache.maven.archiva.dependency.graph.DependencyGraph; +import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; +import org.apache.maven.archiva.dependency.graph.functors.EdgeFromPredicate; +import org.apache.maven.archiva.dependency.graph.walk.BaseVisitor; +import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphVisitor; +import org.apache.maven.archiva.model.DependencyScope; + +import java.util.Stack; + +/** + * UpdateScopesVisitor + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class UpdateScopesVisitor + extends BaseVisitor + implements DependencyGraphVisitor +{ + private Stack scopeStack; + + private Predicate rootEdgePredicate; + + public UpdateScopesVisitor() + { + scopeStack = new Stack(); + // Default setting. + scopeStack.add( DependencyScope.COMPILE ); + } + + public void discoverGraph( DependencyGraph graph ) + { + super.discoverGraph( graph ); + rootEdgePredicate = new EdgeFromPredicate( graph.getRootNode() ); + } + + public void discoverEdge( DependencyGraphEdge edge ) + { + super.discoverEdge( edge ); + + String scope = edge.getScope(); + + if ( !rootEdgePredicate.evaluate( edge ) ) + { + // Not a root edge. Set the scope. + scope = (String) scopeStack.peek(); + edge.setScope( scope ); + } + + // Push the scope used onto the stack. + scopeStack.push( scope ); + } + + public void finishEdge( DependencyGraphEdge edge ) + { + super.finishEdge( edge ); + + scopeStack.pop(); + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/BaseVisitor.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/BaseVisitor.java new file mode 100644 index 000000000..c19597fe3 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/BaseVisitor.java @@ -0,0 +1,73 @@ +package org.apache.maven.archiva.dependency.graph.walk; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.dependency.graph.DependencyGraph; +import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; +import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; + +/** + * The Baseline Visitor. + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class BaseVisitor + implements DependencyGraphVisitor +{ + private static DependencyGraphVisitor INSTANCE = new BaseVisitor(); + + protected DependencyGraph graph; + + public static DependencyGraphVisitor getInstance() + { + return INSTANCE; + } + + public void discoverEdge( DependencyGraphEdge edge ) + { + /* do nothing */ + } + + public void discoverGraph( DependencyGraph graph ) + { + this.graph = graph; + } + + public void discoverNode( DependencyGraphNode node ) + { + /* do nothing */ + } + + public void finishEdge( DependencyGraphEdge edge ) + { + /* do nothing */ + } + + public void finishGraph( DependencyGraph graph ) + { + /* do nothing */ + } + + public void finishNode( DependencyGraphNode node ) + { + /* do nothing */ + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/DependencyGraphVisitor.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/DependencyGraphVisitor.java new file mode 100644 index 000000000..1f3305a48 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/DependencyGraphVisitor.java @@ -0,0 +1,76 @@ +package org.apache.maven.archiva.dependency.graph.walk; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.dependency.graph.DependencyGraph; +import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; +import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; + +/** + * Interface for progress during search. + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public interface DependencyGraphVisitor +{ + /** + * Called once, for when the graph itself is discovered. + * + * @param graph the graph that was discovered. + */ + public void discoverGraph( DependencyGraph graph ); + + /** + * Called for each node, when that node is visited. + * + * @param node the node that is being visited. + */ + public void discoverNode( DependencyGraphNode node ); + + /** + * Called for each edge, when that edge is visited. + * + * @param edge the edge that is being visited. + */ + public void discoverEdge( DependencyGraphEdge edge ); + + /** + * Called for each edge, when that edge has been fully visited. + * + * @param edge the edge that was finished being visited. + */ + public void finishEdge( DependencyGraphEdge edge ); + + /** + * Called for each node, when the node has been fully visited. + * + * @param node the node that was finished being visited. + */ + public void finishNode( DependencyGraphNode node ); + + /** + * Called once, for when the graph is finished being visited. + * + * @param graph the graph that finished being visited. + */ + public void finishGraph( DependencyGraph graph ); + +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/DependencyGraphWalker.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/DependencyGraphWalker.java new file mode 100644 index 000000000..ae7447f6c --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/DependencyGraphWalker.java @@ -0,0 +1,89 @@ +package org.apache.maven.archiva.dependency.graph.walk; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.collections.Predicate; +import org.apache.maven.archiva.dependency.graph.DependencyGraph; +import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; +import org.apache.maven.archiva.model.ArtifactReference; + +/** + * Walk nodes of the {@link DependencyGraph}. + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public interface DependencyGraphWalker +{ + /** + * A {@link #getNodeVisitState(ArtifactReference)} for a node not yet seen in the walker. + */ + public static final Integer UNSEEN = new Integer( 0 ); + + /** + * A {@link #getNodeVisitState(ArtifactReference)} for a node that is actively being processed, + * but not yet finished processing. + */ + public static final Integer PROCESSING = new Integer( 1 ); + + /** + * A {@link #getNodeVisitState(ArtifactReference)} for a node that has been seen, and fully processed. + */ + public static final Integer SEEN = new Integer( 2 ); + + /** + * For a provided node, get the current node visit state. + * + * @param node the node that you are interested in. + * @return the state of that node. (Can be {@link #UNSEEN}, {@link #PROCESSING}, or {@link #SEEN} ) + */ + public Integer getNodeVisitState( ArtifactReference artifact ); + + /** + * Get the predicate used to determine if the walker should traverse an edge (or not). + * + * @return the Predicate that returns true for edges that should be traversed. + */ + public Predicate getEdgePredicate(); + + /** + * Set the predicate used for edge traversal + * + * @param edgePredicate the Predicate that returns true for edges that should be traversed. + */ + public void setEdgePredicate( Predicate edgePredicate ); + + /** + * Visit every node and edge in the graph from the startNode. + * + * @param graph the graph to visit. + * @param startNode the node to start the visit on. + * @param visitor the visitor object to use during this visit. + */ + public void visit( DependencyGraph graph, DependencyGraphNode startNode, DependencyGraphVisitor visitor ); + + /** + * Visit every node and edge in the entire graph. + * + * @param graph the graph to visit. + * @param visitor the visitor object to use during this visit. + */ + public void visit( DependencyGraph graph, DependencyGraphVisitor visitor ); +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/WalkBreadthFirstSearch.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/WalkBreadthFirstSearch.java new file mode 100644 index 000000000..a9b0903e4 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/WalkBreadthFirstSearch.java @@ -0,0 +1,157 @@ +package org.apache.maven.archiva.dependency.graph.walk; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.collections.Predicate; +import org.apache.commons.collections.functors.NotPredicate; +import org.apache.maven.archiva.dependency.graph.DependencyGraph; +import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; +import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; +import org.apache.maven.archiva.dependency.graph.functors.EdgeDisabledPredicate; +import org.apache.maven.archiva.model.ArtifactReference; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + +/** + * WalkBreadthFirstSearch + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class WalkBreadthFirstSearch + implements DependencyGraphWalker +{ + private Map nodeVisitStates = new HashMap(); + + private Predicate edgePredicate; + + public WalkBreadthFirstSearch() + { + this.edgePredicate = NotPredicate.getInstance( new EdgeDisabledPredicate() ); + } + + public Predicate getEdgePredicate() + { + return this.edgePredicate; + } + + public void setEdgePredicate( Predicate edgePredicate ) + { + this.edgePredicate = edgePredicate; + } + + public Integer getNodeVisitState( DependencyGraphNode node ) + { + return (Integer) nodeVisitStates.get( node.getArtifact() ); + } + + public Integer getNodeVisitState( ArtifactReference artifact ) + { + return (Integer) nodeVisitStates.get( artifact ); + } + + public void setNodeVisitState( DependencyGraphNode node, Integer state ) + { + this.nodeVisitStates.put( node.getArtifact(), state ); + } + + public void setNodeVisitState( ArtifactReference artifact, Integer state ) + { + this.nodeVisitStates.put( artifact, state ); + } + + private void visitEdge( DependencyGraph graph, DependencyGraphEdge e, DependencyGraphVisitor visitor ) + { + visitor.discoverEdge( e ); + + DependencyGraphNode node = graph.getNode( e.getNodeTo() ); + + if ( getNodeVisitState( node ) == UNSEEN ) + { + setNodeVisitState( node, PROCESSING ); + } + + visitor.finishEdge( e ); + } + + private void visitNode( DependencyGraph graph, DependencyGraphNode node, DependencyGraphVisitor visitor ) + { + setNodeVisitState( node, PROCESSING ); + + visitor.discoverNode( node ); + + Iterator edges; + // First dive down edges. + edges = graph.getEdgesFrom( node ).iterator(); + while ( edges.hasNext() ) + { + DependencyGraphEdge e = (DependencyGraphEdge) edges.next(); + if ( this.edgePredicate.evaluate( e ) ) + { + visitEdge( graph, e, visitor ); + } + } + + // Next move down edges. + edges = graph.getEdgesFrom( node ).iterator(); + while ( edges.hasNext() ) + { + DependencyGraphEdge e = (DependencyGraphEdge) edges.next(); + + if ( this.edgePredicate.evaluate( e ) ) + { + DependencyGraphNode nodeTo = graph.getNode( e.getNodeTo() ); + Integer state = getNodeVisitState( nodeTo ); + if ( ( state == UNSEEN ) || ( state == PROCESSING ) ) + { + visitNode( graph, nodeTo, visitor ); + } + } + } + + visitor.finishNode( node ); + + setNodeVisitState( node, SEEN ); + } + + public void visit( DependencyGraph graph, DependencyGraphVisitor visitor ) + { + visit( graph, graph.getRootNode(), visitor ); + } + + public void visit( DependencyGraph graph, DependencyGraphNode startNode, DependencyGraphVisitor visitor ) + { + nodeVisitStates.clear(); + + Iterator nodes = graph.getNodes().iterator(); + while ( nodes.hasNext() ) + { + setNodeVisitState( (DependencyGraphNode) nodes.next(), UNSEEN ); + } + + visitor.discoverGraph( graph ); + + visitNode( graph, startNode, visitor ); + + visitor.finishGraph( graph ); + } +} diff --git a/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/WalkDepthFirstSearch.java b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/WalkDepthFirstSearch.java new file mode 100644 index 000000000..0387b57e6 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/main/java/org/apache/maven/archiva/dependency/graph/walk/WalkDepthFirstSearch.java @@ -0,0 +1,145 @@ +package org.apache.maven.archiva.dependency.graph.walk; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.collections.Predicate; +import org.apache.commons.collections.functors.NotPredicate; +import org.apache.maven.archiva.dependency.graph.DependencyGraph; +import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; +import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; +import org.apache.maven.archiva.dependency.graph.functors.EdgeDisabledPredicate; +import org.apache.maven.archiva.model.ArtifactReference; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + +/** + * Perform a walk of the graph using the DepthFirstSearch algorithm. + * + * NOTE: Default edgePredicate is to NOT traverse disabled edges. + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class WalkDepthFirstSearch + implements DependencyGraphWalker +{ + private Map nodeVisitStates = new HashMap(); + + private Predicate edgePredicate; + + public WalkDepthFirstSearch() + { + this.edgePredicate = NotPredicate.getInstance( new EdgeDisabledPredicate() ); + } + + public Predicate getEdgePredicate() + { + return this.edgePredicate; + } + + public void setEdgePredicate( Predicate edgePredicate ) + { + this.edgePredicate = edgePredicate; + } + + public Integer getNodeVisitState( DependencyGraphNode node ) + { + if ( node == null ) + { + return SEEN; + } + + return (Integer) nodeVisitStates.get( node.getArtifact() ); + } + + public Integer getNodeVisitState( ArtifactReference artifact ) + { + return (Integer) nodeVisitStates.get( artifact ); + } + + public void setNodeVisitState( DependencyGraphNode node, Integer state ) + { + this.nodeVisitStates.put( node.getArtifact(), state ); + } + + public void setNodeVisitState( ArtifactReference artifact, Integer state ) + { + this.nodeVisitStates.put( artifact, state ); + } + + private void visitEdge( DependencyGraph graph, DependencyGraphEdge e, DependencyGraphVisitor visitor ) + { + visitor.discoverEdge( e ); + + DependencyGraphNode node = graph.getNode( e.getNodeTo() ); + + if ( getNodeVisitState( node ) == UNSEEN ) + { + visitNode( graph, node, visitor ); + } + + visitor.finishEdge( e ); + } + + private void visitNode( DependencyGraph graph, DependencyGraphNode node, DependencyGraphVisitor visitor ) + { + setNodeVisitState( node, PROCESSING ); + + visitor.discoverNode( node ); + + Iterator edges = graph.getEdgesFrom( node ).iterator(); + while ( edges.hasNext() ) + { + DependencyGraphEdge e = (DependencyGraphEdge) edges.next(); + if ( this.edgePredicate.evaluate( e ) ) + { + visitEdge( graph, e, visitor ); + } + } + + visitor.finishNode( node ); + + setNodeVisitState( node, SEEN ); + } + + public void visit( DependencyGraph graph, DependencyGraphVisitor visitor ) + { + visit( graph, graph.getRootNode(), visitor ); + } + + public void visit( DependencyGraph graph, DependencyGraphNode startNode, DependencyGraphVisitor visitor ) + { + nodeVisitStates.clear(); + + Iterator nodes = graph.getNodes().iterator(); + while ( nodes.hasNext() ) + { + setNodeVisitState( (DependencyGraphNode) nodes.next(), UNSEEN ); + } + + visitor.discoverGraph( graph ); + + visitNode( graph, startNode, visitor ); + + visitor.finishGraph( graph ); + } +} diff --git a/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/AbstractDependencyGraphFactoryTestCase.java b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/AbstractDependencyGraphFactoryTestCase.java new file mode 100644 index 000000000..c2d75d083 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/AbstractDependencyGraphFactoryTestCase.java @@ -0,0 +1,392 @@ +package org.apache.maven.archiva.dependency.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections.Predicate; +import org.apache.commons.collections.functors.AndPredicate; +import org.apache.commons.collections.functors.NotPredicate; +import org.apache.commons.lang.StringUtils; +import org.apache.maven.archiva.dependency.graph.functors.EdgeExactScopePredicate; +import org.apache.maven.archiva.dependency.graph.functors.EdgeFromPredicate; +import org.apache.maven.archiva.dependency.graph.functors.NodeFromParentPredicate; +import org.apache.maven.archiva.dependency.graph.functors.NodePredicate; +import org.apache.maven.archiva.dependency.graph.functors.ToKeyTransformer; +import org.apache.maven.archiva.model.ArchivaProjectModel; +import org.apache.maven.archiva.model.ArtifactReference; +import org.apache.maven.archiva.model.Dependency; +import org.apache.maven.archiva.model.VersionedReference; +import org.codehaus.plexus.PlexusTestCase; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; + +/** + * AbstractDependencyGraphFactoryTestCase + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public abstract class AbstractDependencyGraphFactoryTestCase + extends PlexusTestCase +{ + public class ExpectedEdge + { + public String from; + + public String to; + + public ExpectedEdge( String from, String to ) + { + this.from = from; + this.to = to; + } + } + + public class GraphEdgePredicate + implements Predicate + { + private String edgeFrom; + + private String edgeTo; + + public GraphEdgePredicate( String edgeFrom, String edgeTo ) + { + this.edgeFrom = edgeFrom; + this.edgeTo = edgeTo; + } + + public boolean evaluate( Object object ) + { + boolean satisfies = false; + + if ( object instanceof DependencyGraphEdge ) + { + DependencyGraphEdge edge = (DependencyGraphEdge) object; + String actualFrom = ArtifactReference.toKey( edge.getNodeFrom() ); + String actualTo = ArtifactReference.toKey( edge.getNodeTo() ); + + satisfies = ( StringUtils.equals( edgeFrom, actualFrom ) && StringUtils.equals( edgeTo, actualTo ) ); + } + + return satisfies; + } + } + + protected void assertDirectNodes( DependencyGraph graph, List expectedNodes, String scope ) + { + Iterator it; + DependencyGraphNode rootNode = graph.getRootNode(); + List rootEdges = graph.getEdgesFrom( rootNode ); + List actualEdges = new ArrayList(); + + Predicate directDep = NotPredicate.getInstance( new NodeFromParentPredicate() ); + Predicate scopedDirectDeps = AndPredicate.getInstance( new EdgeExactScopePredicate( scope ), directDep ); + CollectionUtils.select( rootEdges, scopedDirectDeps, actualEdges ); + // CollectionUtils.select( rootEdges, new EdgeExactScopePredicate( scope ), actualEdges ); + + if ( expectedNodes.size() != actualEdges.size() ) + { + StringBuffer sb = new StringBuffer(); + + sb.append( "Direct node.count with <" ).append( scope ).append( "> edges from [" ); + sb.append( DependencyGraphKeys.toKey( rootNode.getArtifact() ) ).append( "]" ).append( " expected:<" ); + sb.append( expectedNodes.size() ).append( "> but was:<" ); + sb.append( actualEdges.size() ).append( ">" ); + + CollectionUtils.transform( actualEdges, new ToKeyTransformer() ); + + Collection missingActualKeys = CollectionUtils.subtract( actualEdges, expectedNodes ); + it = missingActualKeys.iterator(); + while ( it.hasNext() ) + { + sb.append( "\n (Extra Actual) " ).append( (String) it.next() ); + } + + Collection missingExpectedKeys = CollectionUtils.subtract( expectedNodes, actualEdges ); + it = missingExpectedKeys.iterator(); + while ( it.hasNext() ) + { + sb.append( "\n (Extra Expected) " ).append( (String) it.next() ); + } + + fail( sb.toString() ); + } + + it = actualEdges.iterator(); + while ( it.hasNext() ) + { + DependencyGraphEdge edge = (DependencyGraphEdge) it.next(); + String actualKey = DependencyGraphKeys.toKey( edge.getNodeTo() ); + assertTrue( "Direct <" + scope + "> node To [" + actualKey + "] exists in expectedNodes.", expectedNodes + .contains( actualKey ) ); + } + } + + protected void assertEdges( DependencyGraph graph, List expectedEdges ) + { + assertNotNull( "Graph.edges should never be null.", graph.getEdges() ); + assertEquals( "Graph.edges.size()", expectedEdges.size(), graph.getEdges().size() ); + + Iterator it = expectedEdges.iterator(); + while ( it.hasNext() ) + { + ExpectedEdge expectedEdge = (ExpectedEdge) it.next(); + Predicate edgePredicate = new GraphEdgePredicate( expectedEdge.from, expectedEdge.to ); + + DependencyGraphEdge edge = (DependencyGraphEdge) CollectionUtils.find( graph.getEdges(), edgePredicate ); + if ( edge == null ) + { + fail( "Unable to find expected edge from:<" + expectedEdge.from + "> to:<" + expectedEdge.to + ">" ); + } + } + } + + protected void assertGraph( DependencyGraph graph, String rootRefKey, List expectedNodeKeys ) + { + assertNotNull( "Graph.nodes should never be null.", graph.getNodes() ); + assertTrue( "Graph.nodes.size() should always be 1 or better.", graph.getNodes().size() >= 1 ); + + ArtifactReference rootRef = graph.getRootNode().getArtifact(); + StringBuffer actualRootRef = new StringBuffer(); + actualRootRef.append( rootRef.getGroupId() ).append( ":" ); + actualRootRef.append( rootRef.getArtifactId() ).append( ":" ); + actualRootRef.append( rootRef.getVersion() ); + + assertEquals( "Graph.root", rootRefKey, actualRootRef.toString() ); + + Iterator it; + List actualNodes = new ArrayList(); + + Predicate notRootNode = NotPredicate.getInstance( new NodePredicate( graph.getRootNode() ) ); + CollectionUtils.select( graph.getNodes(), notRootNode, actualNodes ); + + boolean fail = false; + StringBuffer sb = new StringBuffer(); + + if ( expectedNodeKeys.size() != actualNodes.size() ) + { + sb.append( "node.count expected:<" ); + sb.append( expectedNodeKeys.size() ).append( "> but was:<" ); + sb.append( actualNodes.size() ).append( ">" ); + fail = true; + } + + CollectionUtils.transform( actualNodes, new ToKeyTransformer() ); + + Collection missingActualKeys = CollectionUtils.subtract( actualNodes, expectedNodeKeys ); + it = missingActualKeys.iterator(); + while ( it.hasNext() ) + { + sb.append( "\n (Extra Actual) " ).append( (String) it.next() ); + fail = true; + } + + Collection missingExpectedKeys = CollectionUtils.subtract( expectedNodeKeys, actualNodes ); + it = missingExpectedKeys.iterator(); + while ( it.hasNext() ) + { + sb.append( "\n (Extra Expected) " ).append( (String) it.next() ); + fail = true; + } + + if( fail ) + { + fail( sb.toString() ); + } + + /* + it = actualNodes.iterator(); + while ( it.hasNext() ) + { + DependencyGraphNode node = (DependencyGraphNode) it.next(); + assertNotNull( "Artifact reference in node should not be null.", node.getArtifact() ); + String key = ArtifactReference.toKey( node.getArtifact() ); + assertTrue( "Artifact reference [" + key + "] should be in expectedNodeKeys.", expectedNodeKeys + .contains( key ) ); + } + */ + } + + protected void assertNodes( DependencyGraph graph, List expectedNodeKeys ) + { + assertNotNull( "Graph.nodes should never be null.", graph.getNodes() ); + assertTrue( "Graph.nodes.size() should always be 1 or better.", graph.getNodes().size() >= 1 ); + // assertEquals( "Graph.nodes.size()", expectedNodeKeys.size(), graph.getNodes().size() ); + + Iterator it; + List actualNodes = new ArrayList(); + actualNodes.addAll( graph.getNodes() ); + + if ( expectedNodeKeys.size() != actualNodes.size() ) + { + StringBuffer sb = new StringBuffer(); + + sb.append( "node.count expected:<" ); + sb.append( expectedNodeKeys.size() ).append( "> but was:<" ); + sb.append( actualNodes.size() ).append( ">" ); + + CollectionUtils.transform( actualNodes, new ToKeyTransformer() ); + + Collection missingActualKeys = CollectionUtils.subtract( actualNodes, expectedNodeKeys ); + it = missingActualKeys.iterator(); + while ( it.hasNext() ) + { + sb.append( "\n (Extra Actual) " ).append( (String) it.next() ); + } + + Collection missingExpectedKeys = CollectionUtils.subtract( expectedNodeKeys, actualNodes ); + it = missingExpectedKeys.iterator(); + while ( it.hasNext() ) + { + sb.append( "\n (Extra Expected) " ).append( (String) it.next() ); + } + + fail( sb.toString() ); + } + + it = graph.getNodes().iterator(); + while ( it.hasNext() ) + { + DependencyGraphNode node = (DependencyGraphNode) it.next(); + assertNotNull( "Artifact reference in node should not be null.", node.getArtifact() ); + String key = ArtifactReference.toKey( node.getArtifact() ); + assertTrue( "Artifact reference [" + key + "] should be in expectedNodeKeys.", expectedNodeKeys + .contains( key ) ); + } + } + + protected void assertRootNode( DependencyGraph graph, String expectedKey ) + { + DependencyGraphNode node = graph.getRootNode(); + + String actualKey = DependencyGraphKeys.toKey( node.getArtifact() ); + assertEquals( "Root Node", expectedKey, actualKey ); + } + + protected void assertTransientNodes( DependencyGraph graph, List expectedNodes, String scope ) + { + Iterator it; + + // Gather up the transient nodes from the DependencyGraph. + List actualEdges = new ArrayList(); + + DependencyGraphNode rootNode = graph.getRootNode(); + + Predicate transientDep = NotPredicate.getInstance( new EdgeFromPredicate( rootNode.getArtifact() ) ); + Predicate edgeByExactScope = new EdgeExactScopePredicate( scope ); + Predicate transitiveEdgesByScopePredicate = AndPredicate.getInstance( transientDep, edgeByExactScope ); + + CollectionUtils.select( graph.getEdges(), transitiveEdgesByScopePredicate, actualEdges ); + + if ( expectedNodes.size() != actualEdges.size() ) + { + StringBuffer sb = new StringBuffer(); + + sb.append( "Transient node.count with <" ).append( scope ).append( "> edges from [" ); + sb.append( DependencyGraphKeys.toKey( rootNode.getArtifact() ) ).append( "]" ).append( " expected:<" ); + sb.append( expectedNodes.size() ).append( "> but was:<" ); + sb.append( actualEdges.size() ).append( ">" ); + + CollectionUtils.transform( actualEdges, new ToKeyTransformer() ); + + Collection missingActualKeys = CollectionUtils.subtract( actualEdges, expectedNodes ); + it = missingActualKeys.iterator(); + while ( it.hasNext() ) + { + sb.append( "\n (Extra Actual) " ).append( (String) it.next() ); + } + + Collection missingExpectedKeys = CollectionUtils.subtract( expectedNodes, actualEdges ); + it = missingExpectedKeys.iterator(); + while ( it.hasNext() ) + { + sb.append( "\n (Extra Expected) " ).append( (String) it.next() ); + } + + fail( sb.toString() ); + } + + it = actualEdges.iterator(); + while ( it.hasNext() ) + { + DependencyGraphEdge edge = (DependencyGraphEdge) it.next(); + String actualKey = DependencyGraphKeys.toKey( edge.getNodeTo() ); + assertTrue( "Transient Node To [" + actualKey + "] exists in expectedNodes.", expectedNodes + .contains( actualKey ) ); + } + } + + protected Dependency toDependency( String key ) + { + String parts[] = StringUtils.splitPreserveAllTokens( key, ':' ); + + assertEquals( "Dependency key [" + key + "] should be 5 parts.", 5, parts.length ); + + Dependency dep = new Dependency(); + + dep.setGroupId( parts[0] ); + dep.setArtifactId( parts[1] ); + dep.setVersion( parts[2] ); + dep.setClassifier( parts[3] ); + dep.setType( parts[4] ); + + return dep; + } + + protected ArchivaProjectModel toModel( String key, Dependency deps[] ) + { + String parts[] = StringUtils.splitPreserveAllTokens( key, ':' ); + + assertEquals( "Dependency key [" + key + "] should be 3 parts.", 3, parts.length ); + + ArchivaProjectModel model = new ArchivaProjectModel(); + model.setGroupId( parts[0] ); + model.setArtifactId( parts[1] ); + model.setVersion( parts[2] ); + model.setOrigin( "testcase" ); + model.setPackaging( "jar" ); + + if ( deps != null ) + { + for ( int i = 0; i < deps.length; i++ ) + { + Dependency dep = deps[i]; + model.addDependency( dep ); + } + } + + return model; + } + + protected VersionedReference toVersionedReference( String key ) + { + String parts[] = StringUtils.splitPreserveAllTokens( key, ':' ); + assertEquals( "Versioned Reference [" + key + "] part count.", 3, parts.length ); + + VersionedReference ref = new VersionedReference(); + ref.setGroupId( parts[0] ); + ref.setArtifactId( parts[1] ); + ref.setVersion( parts[2] ); + return ref; + } +} diff --git a/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/AbstractMemoryRepository.java b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/AbstractMemoryRepository.java new file mode 100644 index 000000000..e117da528 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/AbstractMemoryRepository.java @@ -0,0 +1,175 @@ +package org.apache.maven.archiva.dependency.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.lang.StringUtils; +import org.apache.maven.archiva.model.ArchivaProjectModel; +import org.apache.maven.archiva.model.Dependency; +import org.apache.maven.archiva.model.Exclusion; +import org.apache.maven.archiva.model.VersionedReference; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +/** + * AbstractMemoryRepository + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public abstract class AbstractMemoryRepository + implements MemoryRepository +{ + private Map modelMap = new HashMap(); + + public AbstractMemoryRepository() + { + initialize(); + } + + public void addModel( ArchivaProjectModel model ) + { + String key = Keys.toKey( model ); + modelMap.put( key, model ); + } + + public ArchivaProjectModel getProjectModel( String groupId, String artifactId, String version ) + { + String key = Keys.toKey( groupId, artifactId, version ); + + return (ArchivaProjectModel) modelMap.get( key ); + } + + public abstract void initialize(); + + protected void addExclusion( Dependency dependency, String key ) + { + String parts[] = StringUtils.splitPreserveAllTokens( key, ':' ); + + if ( parts.length != 2 ) + { + throw new IllegalArgumentException( "Exclusion key [" + key + "] should be 2 parts. (detected " + + parts.length + " instead)" ); + } + + Exclusion exclusion = new Exclusion(); + exclusion.setGroupId( parts[0] ); + exclusion.setArtifactId( parts[1] ); + + dependency.addExclusion( exclusion ); + } + + protected Dependency toDependency( String key ) + { + String parts[] = StringUtils.splitPreserveAllTokens( key, ':' ); + + if ( parts.length != 5 ) + { + throw new IllegalArgumentException( "Dependency key [" + key + "] should be 5 parts. (detected " + + parts.length + " instead)" ); + } + + Dependency dep = new Dependency(); + + dep.setGroupId( parts[0] ); + dep.setArtifactId( parts[1] ); + dep.setVersion( parts[2] ); + dep.setClassifier( parts[3] ); + dep.setType( parts[4] ); + + return dep; + } + + protected Dependency toDependency( String key, String scope ) + { + Dependency dependency = toDependency( key ); + dependency.setScope( scope ); + + return dependency; + } + + protected ArchivaProjectModel toModel( String key ) + { + return toModel( key, Collections.EMPTY_LIST ); + } + + protected ArchivaProjectModel toModel( String key, Dependency deps[] ) + { + List depList = new ArrayList(); + + if ( deps != null ) + { + depList.addAll( Arrays.asList( deps ) ); + } + + return toModel( key, depList ); + } + + protected ArchivaProjectModel toModel( String key, List deps ) + { + String parts[] = StringUtils.splitPreserveAllTokens( key, ':' ); + + if ( parts.length != 3 ) + { + throw new IllegalArgumentException( "Project/Model key [" + key + "] should be 3 parts. (detected " + + parts.length + " instead)" ); + } + + ArchivaProjectModel model = new ArchivaProjectModel(); + model.setGroupId( parts[0] ); + model.setArtifactId( parts[1] ); + model.setVersion( parts[2] ); + model.setOrigin( "testcase" ); + model.setPackaging( "jar" ); + + Iterator it = deps.iterator(); + while ( it.hasNext() ) + { + Dependency dep = (Dependency) it.next(); + model.addDependency( dep ); + } + + return model; + } + + protected VersionedReference toParent( String key ) + { + String parts[] = StringUtils.splitPreserveAllTokens( key, ':' ); + + if ( parts.length != 3 ) + { + throw new IllegalArgumentException( "Parent key [" + key + "] should be 3 parts. (detected " + parts.length + + " instead)" ); + } + + VersionedReference ref = new VersionedReference(); + ref.setGroupId( parts[0] ); + ref.setArtifactId( parts[1] ); + ref.setVersion( parts[2] ); + + return ref; + } + +} diff --git a/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/AllTests.java b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/AllTests.java new file mode 100644 index 000000000..ba8eba0e0 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/AllTests.java @@ -0,0 +1,51 @@ +package org.apache.maven.archiva.dependency.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import junit.framework.Test; +import junit.framework.TestSuite; + +/** + * Utility class to aide IDE developers. + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class AllTests +{ + + public static Test suite() + { + TestSuite suite = new TestSuite( "Test for org.apache.maven.archiva.repository.project.dependencies" ); + //$JUnit-BEGIN$ + suite.addTestSuite( ArchivaWebappDependencyGraphTest.class ); + suite.addTestSuite( GraphvizDotTool.class ); + suite.addTestSuite( DepManDeepVersionDependencyGraphTest.class ); + suite.addTestSuite( SimpleDependencyGraphTest.class ); + suite.addTestSuite( MavenProjectInfoReportsPluginDependencyGraphTest.class ); + suite.addTestSuite( ArchivaCommonDependencyGraphTest.class ); + suite.addTestSuite( WagonManagerDependencyGraphTest.class ); + suite.addTestSuite( ContinuumStoreDependencyGraphTest.class ); + suite.addTestSuite( ArchivaXmlToolsDependencyGraphTest.class ); + //$JUnit-END$ + return suite; + } + +} diff --git a/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaCommonDependencyGraphTest.java b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaCommonDependencyGraphTest.java new file mode 100644 index 000000000..26a598127 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaCommonDependencyGraphTest.java @@ -0,0 +1,77 @@ +package org.apache.maven.archiva.dependency.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.dependency.DependencyGraphFactory; +import org.apache.maven.archiva.model.DependencyScope; +import org.apache.maven.archiva.model.VersionedReference; + +import java.util.ArrayList; +import java.util.List; + +/** + * ArchivaCommonDependencyGraphTest + * + * DependencyGraphTest for testing org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT + * + * Generated by archivadev:generate-dependency-tests plugin + * @version $Id$ + */ +public class ArchivaCommonDependencyGraphTest + extends AbstractDependencyGraphFactoryTestCase +{ + public void testResolvedDepsToNodes() + throws GraphTaskException + { + MemoryRepositoryDependencyGraphBuilder graphBuilder = + new MemoryRepositoryDependencyGraphBuilder(); + MemoryRepository repository = new ArchivaCommonMemoryRepository(); + graphBuilder.setMemoryRepository( repository ); + + // Create the factory, and add the test resolver. + DependencyGraphFactory factory = new DependencyGraphFactory(); + factory.setGraphBuilder( graphBuilder ); + factory.setDesiredScope( DependencyScope.TEST ); + + // Get the model to resolve from + VersionedReference rootRef = toVersionedReference( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT"); + + // Perform the resolution. + DependencyGraph graph = factory.getGraph( rootRef ); + + // Test the results. + assertNotNull( "Graph shouldn't be null.", graph ); + + String expectedRootRef = "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT"; + List expectedNodes = new ArrayList(); + + // Check for all nodes, regardless of scope. + expectedNodes.clear(); + expectedNodes.add( "commons-lang:commons-lang:2.2::jar" ); + expectedNodes.add( "junit:junit:3.8.1::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-utils:1.4::jar" ); + + assertGraph( graph, expectedRootRef, expectedNodes ); + } + +} diff --git a/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaCommonMemoryRepository.java b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaCommonMemoryRepository.java new file mode 100644 index 000000000..c41474dfe --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaCommonMemoryRepository.java @@ -0,0 +1,3469 @@ +package org.apache.maven.archiva.dependency.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.model.ArchivaProjectModel; +import org.apache.maven.archiva.model.Dependency; +import org.apache.maven.archiva.model.VersionedReference; + +/** + * ArchivaCommonMemoryRepository + * + * MemoryRepository for testing org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT + * + * Generated by archivadev:generate-dependency-tests plugin + * @version $Id$ + */ +public class ArchivaCommonMemoryRepository + extends AbstractMemoryRepository +{ + public void initialize() + { + ArchivaProjectModel model; + Dependency dep; + + model = toModel( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependencyManagement( toDependency( "javax.activation:activation:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-applet:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-artifact-converter:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-artifact-reports:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-converter:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-core:1.0-alpha-2-SNAPSHOT-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-core-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-database-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-indexer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-lucene-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-plexus-application:1.0-alpha-2-SNAPSHOT::plexus-application" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-policies:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-proxy:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-report-manager:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-scheduled:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-security:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-signature-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-transaction:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT::war" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); + model.addDependencyManagement( toDependency( "commons-io:commons-io:1.2::jar" ) ); + model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependencyManagement( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + model.addDependencyManagement( toDependency( "commons-logging:commons-logging-api:1.0.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.derby:derby:10.1.3.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.derby:derbytools:10.1.3.1::jar" ) ); + model.addDependencyManagement( toDependency( "dom4j:dom4j:1.6.1::jar" ) ); + model.addDependencyManagement( toDependency( "easymock:easymock:1.2_Java1.3::jar" ) ); + model.addDependencyManagement( toDependency( "hsqldb:hsqldb:1.8.0.7::jar" ) ); + model.addDependencyManagement( toDependency( "jaxen:jaxen:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); + model.addDependencyManagement( toDependency( "jdom:jdom:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "jpox:jpox:1.1.7::jar" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:jsp-api:2.0::jar" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); + model.addDependencyManagement( toDependency( "log4j:log4j:1.2.8::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.lucene:lucene-core:2.0.0::jar" ) ); + model.addDependencyManagement( toDependency( "javax.mail:mail:1.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-project:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-repository-metadata:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-app-configuration-web:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-model-converter:2.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-appserver-host:2.0-alpha-8::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-appserver-service-jetty:2.0-alpha-8::plexus-service" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-cli:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-command-line:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-i18n:1.0-beta-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-naming:1.0-alpha-3::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1::war" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-simple:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:servlet-api:2.4::jar" ) ); + model.addDependencyManagement( toDependency( "opensymphony:sitemesh:2.2.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar" ) ); + model.addDependencyManagement( toDependency( "taglibs:standard:1.1.2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "opensymphony:webwork:2.2.4::jar" ) ); + model.addDependencyManagement( toDependency( "xmlunit:xmlunit:1.0::jar" ) ); + model.addProperty( "wagon.version", "1.0-beta-2" ); + model.addProperty( "redback.version", "1.0-alpha-1" ); + model.addProperty( "maven.version", "2.0.5" ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "javax.activation:activation:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-applet:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-artifact-converter:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-artifact-reports:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-converter:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-core:1.0-alpha-2-SNAPSHOT-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-core-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-database-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-indexer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-lucene-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-plexus-application:1.0-alpha-2-SNAPSHOT::plexus-application" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-policies:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-proxy:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-report-manager:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-scheduled:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-security:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-signature-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-transaction:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT::war" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); + model.addDependencyManagement( toDependency( "commons-io:commons-io:1.2::jar" ) ); + model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependencyManagement( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + model.addDependencyManagement( toDependency( "commons-logging:commons-logging-api:1.0.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.derby:derby:10.1.3.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.derby:derbytools:10.1.3.1::jar" ) ); + model.addDependencyManagement( toDependency( "dom4j:dom4j:1.6.1::jar" ) ); + model.addDependencyManagement( toDependency( "easymock:easymock:1.2_Java1.3::jar" ) ); + model.addDependencyManagement( toDependency( "hsqldb:hsqldb:1.8.0.7::jar" ) ); + model.addDependencyManagement( toDependency( "jaxen:jaxen:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); + model.addDependencyManagement( toDependency( "jdom:jdom:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "jpox:jpox:1.1.7::jar" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:jsp-api:2.0::jar" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); + model.addDependencyManagement( toDependency( "log4j:log4j:1.2.8::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.lucene:lucene-core:2.0.0::jar" ) ); + model.addDependencyManagement( toDependency( "javax.mail:mail:1.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-project:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-repository-metadata:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-app-configuration-web:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-model-converter:2.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-appserver-host:2.0-alpha-8::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-appserver-service-jetty:2.0-alpha-8::plexus-service" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-cli:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-command-line:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-i18n:1.0-beta-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-naming:1.0-alpha-3::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1::war" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-simple:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:servlet-api:2.4::jar" ) ); + model.addDependencyManagement( toDependency( "opensymphony:sitemesh:2.2.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar" ) ); + model.addDependencyManagement( toDependency( "taglibs:standard:1.1.2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "opensymphony:webwork:2.2.4::jar" ) ); + model.addDependencyManagement( toDependency( "xmlunit:xmlunit:1.0::jar" ) ); + model.addProperty( "wagon.version", "1.0-beta-2" ); + model.addProperty( "maven.version", "2.0.5" ); + model.addProperty( "redback.version", "1.0-alpha-1" ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-parent:5" ); + model.setParentProject( toParent( "org.apache:apache:3" ) ); + addModel( model ); + + model = toModel( "org.apache:apache:3" ); + addModel( model ); + + model = toModel( "junit:junit:3.8.1" ); + addModel( model ); + + model = toModel( "javax.activation:activation:1.1" ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-applet:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-web:1.0-alpha-2-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-web:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-artifact-converter:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-transaction:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.shared:maven-model-converter:2.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-repository-metadata:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-external:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + model.addDependencyManagement( toDependency( "classworlds:classworlds:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0.3" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0.3" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.4" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-utils:1.0.4" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "classworlds:classworlds:1.1-alpha-2" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-utils:1.1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-beta-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven:maven-parent:4" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-parent:4" ); + model.setParentProject( toParent( "org.apache:apache:3" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-provider-test:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-beta-2" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8" ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-beta-2" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-beta-2::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4" ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7::jar", "compile" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); + model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7" ); + model.setParentProject( toParent( "plexus:plexus-containers:1.0.2" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-containers:1.0.2" ); + model.setParentProject( toParent( "plexus:plexus-root:1.0.3" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-root:1.0.3" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-utils:1.0.2" ); + model.setParentProject( toParent( "plexus:plexus-root:1.0.3" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + model.addDependency( toDependency( "com.jcraft:jsch:0.1.27::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "com.jcraft:jsch:0.1.27" ); + dep = toDependency( "com.jcraft:jzlib:1.0.7::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "com.jcraft:jzlib:1.0.7" ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh-external:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-file:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-shared:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); + dep = toDependency( "plexus:plexus-jetty-httpd:1.0-beta-1::jar", "test" ); + addExclusion( dep, "plexus:plexus-container-default" ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-http-shared:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + model.addDependency( toDependency( "jtidy:jtidy:4aug2000r7-dev::jar" ) ); + addModel( model ); + + model = toModel( "jtidy:jtidy:4aug2000r7-dev" ); + addModel( model ); + + model = toModel( "xml-apis:xml-apis:1.0.b2" ); + addModel( model ); + + model = toModel( "plexus:plexus-jetty-httpd:1.0-beta-1" ); + model.setParentProject( toParent( "plexus:plexus-components:1.0" ) ); + model.addDependency( toDependency( "jetty:jetty:4.2.10::jar" ) ); + model.addDependency( toDependency( "servletapi:servletapi:2.3::jar" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-components:1.0" ); + model.setParentProject( toParent( "plexus:plexus-root:1.0" ) ); + model.addDependency( toDependency( "plexus:plexus-container-default:1.0-alpha-2::jar" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-root:1.0" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-container-default:1.0-alpha-2" ); + addModel( model ); + + model = toModel( "jetty:jetty:4.2.10" ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar", "runtime" ) ); + addModel( model ); + + model = toModel( "javax.servlet:servlet-api:2.3" ); + addModel( model ); + + model = toModel( "servletapi:servletapi:2.3" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "javax.servlet" ); + model.getRelocation().setArtifactId( "servlet-api" ); + model.getRelocation().setVersion( "2.3" ); + addModel( model ); + + model = toModel( "easymock:easymock:1.2_Java1.3" ); + addModel( model ); + + model = toModel( "classworlds:classworlds:1.1" ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact-manager:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-transaction:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-digest:1.1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.12" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4.1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-components:1.1.12" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.10" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-20" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-20" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.9" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-19" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-19" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-utils:1.3" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.8" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-20" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "jmock:jmock:1.0.1" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-utils:1.4.1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.11" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.11" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-utils:1.4" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-22" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-22" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.shared:maven-model-converter:2.1" ); + model.setParentProject( toParent( "org.apache.maven.shared:maven-shared-components:7" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model-v3:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + model.addDependency( toDependency( "dom4j:dom4j:1.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.shared:maven-shared-components:7" ); + model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-model-v3:2.0" ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-model:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven:2.0.4" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-7::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-external:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-7::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-6::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-alpha-6" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon:1.0-alpha-6" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-6" ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-7" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); + model.addDependency( toDependency( "com.jcraft:jsch:0.1.24::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-alpha-6" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-6::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); + addModel( model ); + + model = toModel( "com.jcraft:jsch:0.1.24" ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh-external:1.0-alpha-6" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-file:1.0-alpha-7" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-6" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); + dep = toDependency( "plexus:plexus-jetty-httpd:1.0-beta-1::jar", "test" ); + addExclusion( dep, "plexus:plexus-container-default" ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "dom4j:dom4j:1.4" ); + model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); + model.addDependency( toDependency( "jaxen:jaxen:1.0-FCS::jar" ) ); + model.addDependency( toDependency( "saxpath:saxpath:1.0-FCS::jar" ) ); + model.addDependency( toDependency( "msv:msv:20020414::jar" ) ); + model.addDependency( toDependency( "relaxngDatatype:relaxngDatatype:20020414::jar" ) ); + model.addDependency( toDependency( "isorelax:isorelax:20020414::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "junitperf:junitperf:1.8::jar", "test" ) ); + model.addDependency( toDependency( "xerces:xerces:2.0.2::jar", "test" ) ); + model.addDependency( toDependency( "xalan:xalan:2.3.1::jar", "test" ) ); + model.addDependency( toDependency( "jtidy:jtidy:4aug2000r7-dev::jar", "test" ) ); + model.addDependency( toDependency( "pull-parser:pull-parser:2::jar", "test" ) ); + addModel( model ); + + model = toModel( "jaxen:jaxen:1.0-FCS" ); + addModel( model ); + + model = toModel( "saxpath:saxpath:1.0-FCS" ); + addModel( model ); + + model = toModel( "msv:msv:20020414" ); + addModel( model ); + + model = toModel( "relaxngDatatype:relaxngDatatype:20020414" ); + addModel( model ); + + model = toModel( "isorelax:isorelax:20020414" ); + addModel( model ); + + model = toModel( "junitperf:junitperf:1.8" ); + addModel( model ); + + model = toModel( "xerces:xerces:2.0.2" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "xerces" ); + model.getRelocation().setArtifactId( "xercesImpl" ); + addModel( model ); + + model = toModel( "xerces:xercesImpl:2.0.2" ); + addModel( model ); + + model = toModel( "xalan:xalan:2.3.1" ); + addModel( model ); + + model = toModel( "pull-parser:pull-parser:2" ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-artifact-reports:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-reporting:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-report-manager:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.7::jar", "test" ) ); + model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-reporting:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-report-manager:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-reporting:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); + dep = toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ); + addExclusion( dep, "xerces:xercesImpl" ); + addExclusion( dep, "xerces:xmlParserAPIs" ); + model.addDependency( dep ); + dep = toDependency( "jpox:jpox:1.1.7::jar", "compile" ); + addExclusion( dep, "javax.sql:jdbc-stdext" ); + model.addDependency( dep ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); + dep = toDependency( "commons-logging:commons-logging:1.0.4::jar" ); + addExclusion( dep, "logkit:logkit" ); + model.addDependency( dep ); + model.addDependency( toDependency( "log4j:log4j:1.2.8::jar" ) ); + model.addDependency( toDependency( "org.apache.derby:derby:10.1.3.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar", "test" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.7::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.derby:derbytools:10.1.3.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); + model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); + addModel( model ); + + model = toModel( "javax.jdo:jdo2-api:2.0" ); + model.addDependency( toDependency( "geronimo-spec:geronimo-spec-jta:1.0.1B-rc2::jar" ) ); + dep = toDependency( "xerces:xerces:2.4.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xml-apis:xml-apis:1.0.b2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "geronimo-spec:geronimo-spec-jta:1.0.1B-rc2" ); + addModel( model ); + + model = toModel( "xerces:xerces:2.4.0" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "xerces" ); + model.getRelocation().setArtifactId( "xercesImpl" ); + addModel( model ); + + model = toModel( "xerces:xercesImpl:2.4.0" ); + addModel( model ); + + model = toModel( "commons-lang:commons-lang:2.2" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-collections:commons-collections:3.2" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-io:commons-io:1.2" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-policies:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); + model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); + dep = toDependency( "dom4j:dom4j:1.6.1::jar" ); + addExclusion( dep, "xom:xom" ); + model.addDependency( dep ); + dep = toDependency( "jaxen:jaxen:1.1::jar" ); + addExclusion( dep, "jdom:jdom" ); + addExclusion( dep, "xom:xom" ); + model.addDependency( dep ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar" ) ); + addModel( model ); + + model = toModel( "dom4j:dom4j:1.6.1" ); + dep = toDependency( "jaxme:jaxme-api:0.3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "jaxen:jaxen:1.1-beta-6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "msv:xsdlib:20030807::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "msv:relaxngDatatype:20030807::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "pull-parser:pull-parser:2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xpp3:xpp3:1.1.3.3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "stax:stax-api:1.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); + model.addDependency( toDependency( "junitperf:junitperf:1.8::jar", "test" ) ); + model.addDependency( toDependency( "stax:stax-ri:1.0::jar", "test" ) ); + model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar", "test" ) ); + model.addDependency( toDependency( "xalan:xalan:2.5.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "jaxme:jaxme-api:0.3" ); + addModel( model ); + + model = toModel( "jaxen:jaxen:1.1-beta-6" ); + addModel( model ); + + model = toModel( "msv:xsdlib:20030807" ); + addModel( model ); + + model = toModel( "msv:relaxngDatatype:20030807" ); + addModel( model ); + + model = toModel( "xpp3:xpp3:1.1.3.3" ); + addModel( model ); + + model = toModel( "stax:stax-api:1.0" ); + addModel( model ); + + model = toModel( "stax:stax-ri:1.0" ); + addModel( model ); + + model = toModel( "xerces:xercesImpl:2.6.2" ); + addModel( model ); + + model = toModel( "xalan:xalan:2.5.1" ); + addModel( model ); + + model = toModel( "jaxen:jaxen:1.1" ); + model.addDependency( toDependency( "dom4j:dom4j:1.6.1::jar" ) ); + model.addDependency( toDependency( "jdom:jdom:1.0::jar" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:1.3.02::jar" ) ); + model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar" ) ); + model.addDependency( toDependency( "xom:xom:1.0::jar" ) ); + addModel( model ); + + model = toModel( "jdom:jdom:1.0" ); + dep = toDependency( "xerces:xercesImpl:2.6.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xml-apis:xml-apis:1.0.b2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "jaxen:jaxen:1.0-FCS::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "saxpath:saxpath:1.0-FCS::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xalan:xalan:2.5.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "xerces:xercesImpl:2.6.0" ); + addModel( model ); + + model = toModel( "xalan:xalan:2.5.0" ); + addModel( model ); + + model = toModel( "xml-apis:xml-apis:1.3.02" ); + addModel( model ); + + model = toModel( "xom:xom:1.0" ); + model.addDependency( toDependency( "xerces:xmlParserAPIs:2.6.2::jar" ) ); + model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar" ) ); + model.addDependency( toDependency( "xalan:xalan:2.6.0::jar" ) ); + model.addDependency( toDependency( "com.ibm.icu:icu4j:2.6.1::jar" ) ); + addModel( model ); + + model = toModel( "xerces:xmlParserAPIs:2.6.2" ); + addModel( model ); + + model = toModel( "xalan:xalan:2.6.0" ); + model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); + dep = toDependency( "xerces:xercesImpl:2.6.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "xml-apis:xml-apis:2.0.2" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "xml-apis" ); + model.getRelocation().setArtifactId( "xml-apis" ); + model.getRelocation().setVersion( "1.0.b2" ); + addModel( model ); + + model = toModel( "com.ibm.icu:icu4j:2.6.1" ); + addModel( model ); + + model = toModel( "org.slf4j:slf4j-log4j12:1.2" ); + model.setParentProject( toParent( "org.slf4j:slf4j-parent:1.2" ) ); + model.addDependency( toDependency( "org.slf4j:slf4j-api:1.2::jar" ) ); + model.addDependency( toDependency( "log4j:log4j:1.2.13::jar" ) ); + addModel( model ); + + model = toModel( "org.slf4j:slf4j-parent:1.2" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.slf4j:slf4j-api:1.2" ); + model.setParentProject( toParent( "org.slf4j:slf4j-parent:1.2" ) ); + addModel( model ); + + model = toModel( "log4j:log4j:1.2.13" ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-policies:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus.cache:plexus-cache-providers-parent:1.0-alpha-2" ) ); + model.addDependency( toDependency( "net.sf.ehcache:ehcache:1.2.4::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.cache:plexus-cache-providers-parent:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus.cache:plexus-cache-parent:1.0-alpha-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-test:1.0-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.cache:plexus-cache-parent:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16::jar" ) ); + model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-components:1.1.9" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-16" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-16" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-16" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-lang:commons-lang:2.1" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus.cache:plexus-cache-parent:1.0-alpha-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.cache:plexus-cache-test:1.0-alpha-2" ); + addModel( model ); + + model = toModel( "net.sf.ehcache:ehcache:1.2.4" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar", "compile" ) ); + dep = toDependency( "org.hibernate:hibernate:3.2.0.cr3::jar", "test" ); + addExclusion( dep, "javax.transaction:jta" ); + addExclusion( dep, "javax.security:jacc" ); + model.addDependency( dep ); + dep = toDependency( "net.sf.hibernate:hibernate:2.1.8::jar", "test" ); + addExclusion( dep, "javax.transaction:jta" ); + addExclusion( dep, "javax.security:jacc" ); + model.addDependency( dep ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "test" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "httpunit:httpunit:1.6::jar", "test" ) ); + model.addDependency( toDependency( "commons-httpclient:commons-httpclient:3.0.1::jar", "test" ) ); + model.addDependency( toDependency( "com.cenqua.clover:clover:1.3.13::jar", "test" ) ); + model.addDependency( toDependency( "checkstyle:checkstyle:4.1::jar", "test" ) ); + model.addDependency( toDependency( "checkstyle:checkstyle-optional:4.1::jar", "test" ) ); + model.addDependency( toDependency( "commons-httpclient:commons-httpclient:3.0.1::jar", "test" ) ); + model.addDependency( toDependency( "httpunit:httpunit:1.6.1::jar", "test" ) ); + model.addDependency( toDependency( "httpunit:httpunit:1.6.1::jar", "test" ) ); + model.addProperty( "licenseFile", "${basedir}/tools/clover.license" ); + addModel( model ); + + model = toModel( "commons-logging:commons-logging:1.0.4" ); + dep = toDependency( "log4j:log4j:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "logkit:logkit:1.0.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + dep = toDependency( "avalon-framework:avalon-framework:4.1.3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "log4j:log4j:1.2.6" ); + addModel( model ); + + model = toModel( "logkit:logkit:1.0.1" ); + addModel( model ); + + model = toModel( "junit:junit:3.7" ); + addModel( model ); + + model = toModel( "avalon-framework:avalon-framework:4.1.3" ); + addModel( model ); + + model = toModel( "org.hibernate:hibernate:3.2.0.cr3" ); + addModel( model ); + + model = toModel( "net.sf.hibernate:hibernate:2.1.8" ); + addModel( model ); + + model = toModel( "javax.servlet:servlet-api:2.4" ); + addModel( model ); + + model = toModel( "httpunit:httpunit:1.6" ); + model.addDependency( toDependency( "xerces:xmlParserAPIs:2.2.1::jar" ) ); + model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar" ) ); + model.addDependency( toDependency( "nekohtml:nekohtml:0.9.1::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependency( toDependency( "rhino:js:1.5R4.1::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar" ) ); + model.addDependency( toDependency( "jtidy:jtidy:4aug2000r7-dev::jar" ) ); + model.addDependency( toDependency( "javax.activation:activation:1.0.2::jar", "test" ) ); + model.addDependency( toDependency( "javax.mail:mail:1.3.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "xerces:xmlParserAPIs:2.2.1" ); + addModel( model ); + + model = toModel( "nekohtml:nekohtml:0.9.1" ); + model.addDependency( toDependency( "xerces:xerces:2.4.0::jar" ) ); + addModel( model ); + + model = toModel( "rhino:js:1.5R4.1" ); + addModel( model ); + + model = toModel( "javax.activation:activation:1.0.2" ); + addModel( model ); + + model = toModel( "javax.mail:mail:1.3.1" ); + model.addDependency( toDependency( "javax.activation:activation:1.0.2::jar", "compile" ) ); + addModel( model ); + + model = toModel( "commons-httpclient:commons-httpclient:3.0.1" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + model.addDependency( toDependency( "commons-codec:commons-codec:1.2::jar" ) ); + addModel( model ); + + model = toModel( "commons-logging:commons-logging:1.0.3" ); + dep = toDependency( "log4j:log4j:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "logkit:logkit:1.0.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-codec:commons-codec:1.2" ); + addModel( model ); + + model = toModel( "com.cenqua.clover:clover:1.3.13" ); + addModel( model ); + + model = toModel( "checkstyle:checkstyle:4.1" ); + model.addDependency( toDependency( "antlr:antlr:2.7.2::jar" ) ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils-core:1.7.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + addModel( model ); + + model = toModel( "antlr:antlr:2.7.2" ); + addModel( model ); + + model = toModel( "commons-beanutils:commons-beanutils-core:1.7.0" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-logging:commons-logging:1.0" ); + addModel( model ); + + model = toModel( "commons-collections:commons-collections:2.0" ); + addModel( model ); + + model = toModel( "commons-collections:commons-collections:2.1" ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "checkstyle:checkstyle-optional:4.1" ); + model.addDependency( toDependency( "checkstyle:checkstyle:4.1::jar" ) ); + addModel( model ); + + model = toModel( "httpunit:httpunit:1.6.1" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-logging:1.0.4" ) ); + model.addDependency( toDependency( "org.slf4j:slf4j-simple:1.2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-logging-provider-test:1.0.4::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-logging:1.0.4" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.11" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-logging-provider-test:1.0.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-logging-provider-test:1.0.4" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-22" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + addModel( model ); + + model = toModel( "org.slf4j:slf4j-simple:1.2" ); + model.setParentProject( toParent( "org.slf4j:slf4j-parent:1.2" ) ); + model.addDependency( toDependency( "org.slf4j:slf4j-api:1.2::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.12" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-2::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-17" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-17::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-17" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-17::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-17" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-17" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-2" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry-providers:1.0-alpha-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-2::jar", "test" ) ); + dep = toDependency( "commons-configuration:commons-configuration:1.3::jar" ); + addExclusion( dep, "commons-beanutils:commons-beanutils-core" ); + addExclusion( dep, "xerces:xerces" ); + addExclusion( dep, "xerces:xercesImpl" ); + addExclusion( dep, "xalan:xalan" ); + addExclusion( dep, "xml-apis:xml-apis" ); + addExclusion( dep, "servletapi:servletapi" ); + model.addDependency( dep ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.7.0::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry-providers:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-2" ) ); + addModel( model ); + + model = toModel( "commons-configuration:commons-configuration:1.3" ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.1::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging-api:1.0.4::jar" ) ); + model.addDependency( toDependency( "commons-digester:commons-digester:1.6::jar" ) ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils-core:1.7.0::jar" ) ); + model.addDependency( toDependency( "commons-codec:commons-codec:1.3::jar" ) ); + model.addDependency( toDependency( "commons-jxpath:commons-jxpath:1.2::jar" ) ); + model.addDependency( toDependency( "xerces:xerces:2.2.1::jar" ) ); + model.addDependency( toDependency( "xalan:xalan:2.7.0::jar" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); + dep = toDependency( "servletapi:servletapi:2.4::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "spice:spice-jndikit:1.1::jar", "test" ) ); + model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.1::jar", "test" ) ); + model.addDependency( toDependency( "commons-pool:commons-pool:1.1::jar", "test" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.7.2.2::jar", "test" ) ); + model.addDependency( toDependency( "dbunit:dbunit:2.1::jar", "test" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "junit-addons:junit-addons:1.4::jar", "test" ) ); + model.addDependency( toDependency( "mockobjects:mockobjects-core:0.09::jar", "test" ) ); + model.addDependency( toDependency( "mockobjects:mockobjects-jdk1.4-j2ee1.3:0.09::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-collections:commons-collections:3.1" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-logging:commons-logging-api:1.0.4" ); + addModel( model ); + + model = toModel( "commons-digester:commons-digester:1.6" ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.6::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-beanutils:commons-beanutils:1.6" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-codec:commons-codec:1.3" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-jxpath:commons-jxpath:1.2" ); + model.addDependency( toDependency( "xerces:xerces:1.2.3::jar" ) ); + model.addDependency( toDependency( "servletapi:servletapi:2.2::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8::jar" ) ); + model.addDependency( toDependency( "ant:ant-optional:1.5.1::jar" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); + model.addDependency( toDependency( "jdom:jdom:b9::jar" ) ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.4::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); + addModel( model ); + + model = toModel( "xerces:xerces:1.2.3" ); + addModel( model ); + + model = toModel( "servletapi:servletapi:2.2" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "javax.servlet" ); + model.getRelocation().setArtifactId( "servlet-api" ); + model.getRelocation().setVersion( "2.2" ); + addModel( model ); + + model = toModel( "javax.servlet:servlet-api:2.2" ); + addModel( model ); + + model = toModel( "junit:junit:3.8" ); + addModel( model ); + + model = toModel( "ant:ant-optional:1.5.1" ); + addModel( model ); + + model = toModel( "jdom:jdom:b9" ); + addModel( model ); + + model = toModel( "commons-beanutils:commons-beanutils:1.4" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "xerces:xerces:2.2.1" ); + addModel( model ); + + model = toModel( "xalan:xalan:2.7.0" ); + model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); + dep = toDependency( "xerces:xercesImpl:2.6.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "servletapi:servletapi:2.4" ); + addModel( model ); + + model = toModel( "spice:spice-jndikit:1.1" ); + addModel( model ); + + model = toModel( "commons-dbcp:commons-dbcp:1.1" ); + addModel( model ); + + model = toModel( "commons-pool:commons-pool:1.1" ); + addModel( model ); + + model = toModel( "hsqldb:hsqldb:1.7.2.2" ); + addModel( model ); + + model = toModel( "dbunit:dbunit:2.1" ); + addModel( model ); + + model = toModel( "junit-addons:junit-addons:1.4" ); + addModel( model ); + + model = toModel( "mockobjects:mockobjects-core:0.09" ); + addModel( model ); + + model = toModel( "mockobjects:mockobjects-jdk1.4-j2ee1.3:0.09" ); + addModel( model ); + + model = toModel( "commons-beanutils:commons-beanutils:1.7.0" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.6" ) ); + model.addDependency( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); + dep = toDependency( "jpox:jpox:1.1.1::jar", "test" ); + addExclusion( dep, "javax.sql:jdbc-stdext" ); + model.addDependency( dep ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.7.3.0::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-components:1.1.6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "jpox:jpox:1.1.1" ); + model.setParentProject( toParent( "jpox:jpox-parent:1.1.1" ) ); + model.addDependency( toDependency( "log4j:log4j:1.2.8::jar" ) ); + model.addDependency( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); + model.addDependency( toDependency( "javax.resource:connector:1.0::jar" ) ); + dep = toDependency( "javax.security:jaas:1.0.01::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "javax.sql:jdbc-stdext:2.0::jar" ) ); + dep = toDependency( "ant:ant:1.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "jpox:jpox-dbcp:1.1.1::jar", "test" ) ); + model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.2::jar", "test" ) ); + model.addDependency( toDependency( "commons-pool:commons-pool:1.2::jar", "test" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.1::jar", "test" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "jpox:jpox-parent:1.1.1" ); + addModel( model ); + + model = toModel( "log4j:log4j:1.2.8" ); + addModel( model ); + + model = toModel( "javax.resource:connector:1.0" ); + addModel( model ); + + model = toModel( "javax.security:jaas:1.0.01" ); + addModel( model ); + + model = toModel( "javax.sql:jdbc-stdext:2.0" ); + addModel( model ); + + model = toModel( "ant:ant:1.6" ); + addModel( model ); + + model = toModel( "jpox:jpox-dbcp:1.1.1" ); + addModel( model ); + + model = toModel( "commons-dbcp:commons-dbcp:1.2" ); + addModel( model ); + + model = toModel( "commons-pool:commons-pool:1.2" ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); + model.addDependency( toDependency( "xerces:xerces:2.0.2::jar" ) ); + addModel( model ); + + model = toModel( "hsqldb:hsqldb:1.7.3.0" ); + addModel( model ); + + model = toModel( "jpox:jpox:1.1.7" ); + model.setParentProject( toParent( "jpox:jpox-parent:1.1.7" ) ); + model.addDependency( toDependency( "log4j:log4j:1.2.8::jar" ) ); + model.addDependency( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); + model.addDependency( toDependency( "javax.resource:connector:1.0::jar" ) ); + model.addDependency( toDependency( "javax.transaction:jta:1.0.1B::jar" ) ); + dep = toDependency( "ant:ant:1.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "jpox:jpox-parent:1.1.7" ); + addModel( model ); + + model = toModel( "javax.transaction:jta:1.0.1B" ); + addModel( model ); + + model = toModel( "org.apache.derby:derby:10.1.3.1" ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2::jar", "compile" ) ); + model.addDependency( toDependency( "xmlunit:xmlunit:1.0::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); + model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-components:1.1.7" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "xmlunit:xmlunit:1.0" ); + addModel( model ); + + model = toModel( "hsqldb:hsqldb:1.8.0.7" ); + addModel( model ); + + model = toModel( "org.apache.derby:derbytools:10.1.3.1" ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-converter:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-artifact-converter:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.shared:maven-model-converter:2.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-i18n:1.0-beta-6::jar" ) ); + model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.7::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-i18n:1.0-beta-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.4" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-components:1.1.4" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-core:1.0-alpha-2-SNAPSHOT-SNAPSHOT" ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-core-consumers:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-database-consumers:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-artifact-reports:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-indexer:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.lucene:lucene-core:2.0.0::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); + model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.lucene:lucene-core:2.0.0" ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-lucene-consumers:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-indexer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-plexus-application:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-web-standalone:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT::war" ) ); + model.addProperty( "archivaVersion", "1.0-alpha-2-SNAPSHOT" ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-web-standalone:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-web:1.0-alpha-2-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-web:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-report-manager:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-scheduled:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-indexer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-proxy:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-security:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-core-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-lucene-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-signature-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-applet:1.0-alpha-2-SNAPSHOT::jar", "provided" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); + model.addDependency( toDependency( "opensymphony:sitemesh:2.2.1::jar" ) ); + model.addDependency( toDependency( "taglibs:standard:1.1.2::jar" ) ); + model.addDependency( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.shared:maven-app-configuration-web:1.0::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar", "runtime" ) ); + model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar", "runtime" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar", "runtime" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar", "runtime" ) ); + model.addDependency( toDependency( "opensymphony:webwork:2.2.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1::war", "runtime" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-simple:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.apache.derby:derby:10.1.3.1::jar", "provided" ) ); + model.addDependency( toDependency( "javax.mail:mail:1.4::jar", "provided" ) ); + model.addDependency( toDependency( "javax.activation:activation:1.1::jar", "provided" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-scheduled:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database-consumers:1.0-alpha-2-SNAPSHOT::jar", "test" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.7::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "backport-util-concurrent:backport-util-concurrent:3.0::jar" ) ); + addModel( model ); + + model = toModel( "backport-util-concurrent:backport-util-concurrent:3.0" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.6" ) ); + model.addDependency( toDependency( "quartz:quartz:1.4.5::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.2::jar" ) ); + addModel( model ); + + model = toModel( "quartz:quartz:1.4.5" ); + addModel( model ); + + model = toModel( "commons-logging:commons-logging:1.0.2" ); + dep = toDependency( "log4j:log4j:1.1.3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "logkit:logkit:1.0.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "log4j:log4j:1.1.3" ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-proxy:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + dep = toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ); + addExclusion( dep, "org.codehaus.plexus:plexus-container-default" ); + model.addDependency( dep ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); + model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-security:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-web:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.derby:derby:10.1.3.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); + dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); + addExclusion( dep, "com.bea.xml:jsr173-ri" ); + model.addDependency( dep ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.woodstox:wstx-asl:3.2.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); + dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); + addExclusion( dep, "com.bea.xml:jsr173-ri" ); + model.addDependency( dep ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + dep = toDependency( "stax:stax:1.1.1-dev::jar", "test" ); + addExclusion( dep, "xmlbeans:xmlbeans-jsr173-api" ); + model.addDependency( dep ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-jdo:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-users:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-=keys=:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-memory:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-keys:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-jdo:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authorization-rbac:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-cached:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1::war" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "xalan:xalan:2.7.0::jar" ) ); + model.addDependencyManagement( toDependency( "xml-apis:xml-apis:1.3.03::jar" ) ); + model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependencyManagement( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); + model.addDependencyManagement( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + model.addDependencyManagement( toDependency( "hsqldb:hsqldb:1.8.0.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.derby:derby:10.1.3.1::jar" ) ); + model.addProperty( "security.version", "1.0-alpha-1" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-1::jar" ) ); + dep = toDependency( "commons-configuration:commons-configuration:1.3::jar" ); + addExclusion( dep, "commons-beanutils:commons-beanutils-core" ); + addExclusion( dep, "xerces:xerces" ); + addExclusion( dep, "xerces:xercesImpl" ); + addExclusion( dep, "xalan:xalan" ); + addExclusion( dep, "xml-apis:xml-apis" ); + addExclusion( dep, "servletapi:servletapi" ); + model.addDependency( dep ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.7.0::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry-providers:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-logging:1.0.2" ) ); + model.addDependency( toDependency( "log4j:log4j:1.2.8::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-logging-provider-test:1.0-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-logging:1.0.2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-logging-provider-test:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-logging:1.0.2" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-memory:1.0-alpha-1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authorization:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authorization:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-jdo:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users-providers:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); + model.addDependency( toDependency( "net.sf.ehcache:ehcache:1.2.4::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users-jdo:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); + dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); + addExclusion( dep, "com.bea.xml:jsr173-ri" ); + model.addDependency( dep ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + model.addDependency( toDependency( "woodstox:wstx-asl:3.2.0::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-utils:1.2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.5" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.5" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-common:1.0-alpha-1" ) ); + dep = toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ); + addExclusion( dep, "xerces:xercesImpl" ); + addExclusion( dep, "xerces:xmlParserAPIs" ); + model.addDependency( dep ); + dep = toDependency( "jpox:jpox:1.1.7::jar", "compile" ); + addExclusion( dep, "javax.sql:jdbc-stdext" ); + model.addDependency( dep ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-common:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "hsqldb:hsqldb:1.8.0.4" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1" ); + addModel( model ); + + model = toModel( "net.java.dev.stax-utils:stax-utils:20060502" ); + model.addDependency( toDependency( "com.bea.xml:jsr173-ri:1.0::jar" ) ); + addModel( model ); + + model = toModel( "com.bea.xml:jsr173-ri:1.0" ); + model.addDependency( toDependency( "javax.xml:jsr173:1.0::jar" ) ); + addModel( model ); + + model = toModel( "javax.xml:jsr173:1.0" ); + addModel( model ); + + model = toModel( "stax:stax-api:1.0.1" ); + addModel( model ); + + model = toModel( "woodstox:wstx-asl:3.2.0" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "org.codehaus.woodstox" ); + addModel( model ); + + model = toModel( "org.codehaus.woodstox:wstx-asl:3.2.0" ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.0::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-digest:1.0" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-jdo:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys-providers:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys-jdo:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); + dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); + addExclusion( dep, "com.bea.xml:jsr173-ri" ); + model.addDependency( dep ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + model.addDependency( toDependency( "woodstox:wstx-asl:3.2.0::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication-memory:1.0-alpha-1" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication-users:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication-providers:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication-=keys=:1.0-alpha-1" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication-keys:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authorization-rbac:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authorization-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-cached:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authorization-providers:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authorization:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-cached:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); + dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); + addExclusion( dep, "com.bea.xml:jsr173-ri" ); + model.addDependency( dep ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + dep = toDependency( "stax:stax:1.1.1-dev::jar", "test" ); + addExclusion( dep, "xmlbeans:xmlbeans-jsr173-api" ); + model.addDependency( dep ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1" ); + addModel( model ); + + model = toModel( "stax:stax:1.1.1-dev" ); + model.addDependency( toDependency( "xmlbeans:xmlbeans-jsr173-api:2.0-dev::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + addModel( model ); + + model = toModel( "xmlbeans:xmlbeans-jsr173-api:2.0-dev" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-xwork:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-users:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-keys:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-rbac:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "org.extremecomponents:extremecomponents:1.0.1::jar" ) ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils-bean-collections:1.7.0::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); + dep = toDependency( "org.codehaus.plexus:plexus-velocity:1.1.2::jar" ); + addExclusion( dep, "plexus:plexus-utils" ); + addExclusion( dep, "commons-logging:commons-logging-api" ); + model.addDependency( dep ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependency( toDependency( "taglibs:standard:1.1.2::jar" ) ); + model.addDependency( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependency( toDependency( "opensymphony:sitemesh:2.2.1::jar" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-xwork:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-integrations:1.0-alpha-1" ) ); + model.addDependencyManagement( toDependency( "taglibs:standard:1.1.2::jar" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-integrations:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "taglibs:standard:1.1.2" ); + addModel( model ); + + model = toModel( "javax.servlet:jstl:1.1.2" ); + model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); + addModel( model ); + + model = toModel( "javax.servlet:jsp-api:2.0" ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.12" ) ); + model.addDependency( toDependency( "org.easymock:easymock:2.2::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-17::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); + model.addDependency( toDependency( "opensymphony:xwork:1.2.1::jar" ) ); + model.addDependency( toDependency( "opensymphony:webwork:2.2.4::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + addModel( model ); + + model = toModel( "org.easymock:easymock:2.2" ); + addModel( model ); + + model = toModel( "opensymphony:xwork:1.2.1" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.rifers:rife-continuations:0.0.2::jar" ) ); + model.addDependency( toDependency( "opensymphony:oscore:2.2.4::jar" ) ); + model.addDependency( toDependency( "ognl:ognl:2.6.7::jar" ) ); + dep = toDependency( "org.springframework:spring-core:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-aop:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-beans:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-context:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-web:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "org.springframework:spring-mock:1.2.6::jar", "test" ) ); + dep = toDependency( "cglib:cglib:2.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependency( toDependency( "mockobjects:mockobjects-core:0.09::jar", "test" ) ); + model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + model.addDependency( toDependency( "easymock:easymockclassextension:1.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.rifers:rife-continuations:0.0.2" ); + addModel( model ); + + model = toModel( "opensymphony:oscore:2.2.4" ); + addModel( model ); + + model = toModel( "ognl:ognl:2.6.7" ); + addModel( model ); + + model = toModel( "org.springframework:spring-core:1.2.6" ); + model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + dep = toDependency( "log4j:log4j:1.2.9::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.1::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar", "provided" ) ); + addModel( model ); + + model = toModel( "org.springframework:spring-parent:1.2.6" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + dep = toDependency( "log4j:log4j:1.2.9::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "cglib:cglib:2.1_3::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "commons-attributes:commons-attributes-compiler:2.1::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "org.hibernate:hibernate:3.0.5::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "org.hibernate:hibernate-annotations:3.0beta2::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "struts:struts:1.2.7::jar" ); + addExclusion( dep, "servletapi:servletapi" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "jasperreports:jasperreports:1.0.3::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "freemarker:freemarker:2.3.4::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + model.addDependencyManagement( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependencyManagement( toDependency( "aopalliance:aopalliance:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "oro:oro:2.0.8::jar" ) ); + dep = toDependency( "commons-pool:commons-pool:1.2::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "com.jamonapi:jamon:1.0::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + model.addDependencyManagement( toDependency( "xdoclet:xjavadoc:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "javax.mail:mail:1.3.2::jar" ) ); + dep = toDependency( "velocity:velocity:1.4::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + model.addDependencyManagement( toDependency( "commons-collections:commons-collections:3.1::jar" ) ); + model.addDependencyManagement( toDependency( "xml-apis:xml-apis:1.0.b2::jar", "provided" ) ); + model.addDependencyManagement( toDependency( "javax.transaction:jta:1.0.1B::jar" ) ); + dep = toDependency( "jotm:jotm:2.0.10::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "net.sf.hibernate:hibernate:2.1.8::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "c3p0:c3p0:0.9.0.2::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "commons-dbcp:commons-dbcp:1.2.1::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "com.experlog:xapool:1.5.0::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); + dep = toDependency( "com.oracle.toplink:toplink:10.1.3::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "ojb:db-ojb:1.0.3::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "javax.jdo:jdo:2.0-20050809.1515::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "com.ibatis:ibatis-sqlmap:1.3.1::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "com.ibatis:ibatis2-sqlmap:2.1.5.582::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "javax.jms:jms:1.1::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "javax.ejb:ejb:2.0::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "javax.xml:jaxrpc-api:1.1::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "commons-httpclient:commons-httpclient:3.0-rc4::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "com.caucho:burlap:2.1.12::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "com.caucho:hessian:2.1.12::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + model.addDependencyManagement( toDependency( "javax.resource:connector:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "ehcache:ehcache:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "quartz:quartz:1.5.1::jar" ) ); + model.addDependencyManagement( toDependency( "com.servlets:cos:05Nov2002::jar" ) ); + model.addDependencyManagement( toDependency( "easymock:easymock:1.2_RC2_Java1.3::jar", "test" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:jstl:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "taglibs:standard:1.0.6::jar" ) ); + dep = toDependency( "javax.faces:jsf-api:1.1::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "velocity-tools:velocity-tools-generic:1.1::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "velocity-tools:velocity-tools-view:1.1::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "poi:poi:2.5.1-final-20040804::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "itext:itext:1.3::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "net.sourceforge.jexcelapi:jxl:2.5.7::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + addModel( model ); + + model = toModel( "log4j:log4j:1.2.9" ); + addModel( model ); + + model = toModel( "cglib:cglib:2.1_3" ); + addModel( model ); + + model = toModel( "commons-attributes:commons-attributes-compiler:2.1" ); + model.addDependency( toDependency( "commons-attributes:commons-attributes-api:2.1::jar" ) ); + addModel( model ); + + model = toModel( "commons-attributes:commons-attributes-api:2.1" ); + model.addDependency( toDependency( "ant:ant:1.5::jar" ) ); + model.addDependency( toDependency( "qdox:qdox:1.5::jar" ) ); + addModel( model ); + + model = toModel( "ant:ant:1.5" ); + addModel( model ); + + model = toModel( "qdox:qdox:1.5" ); + addModel( model ); + + model = toModel( "org.hibernate:hibernate:3.0.5" ); + addModel( model ); + + model = toModel( "org.hibernate:hibernate-annotations:3.0beta2" ); + addModel( model ); + + model = toModel( "struts:struts:1.2.7" ); + addModel( model ); + + model = toModel( "jasperreports:jasperreports:1.0.3" ); + addModel( model ); + + model = toModel( "freemarker:freemarker:2.3.4" ); + addModel( model ); + + model = toModel( "aopalliance:aopalliance:1.0" ); + addModel( model ); + + model = toModel( "oro:oro:2.0.8" ); + addModel( model ); + + model = toModel( "com.jamonapi:jamon:1.0" ); + addModel( model ); + + model = toModel( "xdoclet:xjavadoc:1.1" ); + addModel( model ); + + model = toModel( "javax.mail:mail:1.3.2" ); + model.addDependency( toDependency( "javax.activation:activation:1.0.2::jar", "compile" ) ); + addModel( model ); + + model = toModel( "velocity:velocity:1.4" ); + model.addDependency( toDependency( "velocity:velocity-dep:1.4::jar", "runtime" ) ); + addModel( model ); + + model = toModel( "velocity:velocity-dep:1.4" ); + addModel( model ); + + model = toModel( "jotm:jotm:2.0.10" ); + addModel( model ); + + model = toModel( "c3p0:c3p0:0.9.0.2" ); + addModel( model ); + + model = toModel( "commons-dbcp:commons-dbcp:1.2.1" ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); + model.addDependency( toDependency( "commons-pool:commons-pool:1.2::jar" ) ); + dep = toDependency( "javax.sql:jdbc-stdext:2.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); + model.addDependency( toDependency( "xerces:xerces:2.0.2::jar" ) ); + addModel( model ); + + model = toModel( "com.experlog:xapool:1.5.0" ); + addModel( model ); + + model = toModel( "com.oracle.toplink:toplink:10.1.3" ); + addModel( model ); + + model = toModel( "ojb:db-ojb:1.0.3" ); + addModel( model ); + + model = toModel( "javax.jdo:jdo:2.0-20050809.1515" ); + addModel( model ); + + model = toModel( "com.ibatis:ibatis-sqlmap:1.3.1" ); + addModel( model ); + + model = toModel( "com.ibatis:ibatis2-sqlmap:2.1.5.582" ); + addModel( model ); + + model = toModel( "javax.jms:jms:1.1" ); + addModel( model ); + + model = toModel( "javax.ejb:ejb:2.0" ); + addModel( model ); + + model = toModel( "javax.xml:jaxrpc-api:1.1" ); + addModel( model ); + + model = toModel( "commons-httpclient:commons-httpclient:3.0-rc4" ); + addModel( model ); + + model = toModel( "com.caucho:burlap:2.1.12" ); + addModel( model ); + + model = toModel( "com.caucho:hessian:2.1.12" ); + addModel( model ); + + model = toModel( "ehcache:ehcache:1.1" ); + addModel( model ); + + model = toModel( "quartz:quartz:1.5.1" ); + addModel( model ); + + model = toModel( "com.servlets:cos:05Nov2002" ); + addModel( model ); + + model = toModel( "easymock:easymock:1.2_RC2_Java1.3" ); + addModel( model ); + + model = toModel( "javax.servlet:jstl:1.0" ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar", "provided" ) ); + addModel( model ); + + model = toModel( "taglibs:standard:1.0.6" ); + addModel( model ); + + model = toModel( "javax.faces:jsf-api:1.1" ); + addModel( model ); + + model = toModel( "velocity-tools:velocity-tools-generic:1.1" ); + addModel( model ); + + model = toModel( "velocity-tools:velocity-tools-view:1.1" ); + addModel( model ); + + model = toModel( "poi:poi:2.5.1-final-20040804" ); + addModel( model ); + + model = toModel( "itext:itext:1.3" ); + addModel( model ); + + model = toModel( "net.sourceforge.jexcelapi:jxl:2.5.7" ); + addModel( model ); + + model = toModel( "org.springframework:spring-aop:1.2.6" ); + model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); + model.addDependency( toDependency( "org.springframework:spring-beans:1.2.6::jar" ) ); + model.addDependency( toDependency( "aopalliance:aopalliance:1.0::jar" ) ); + model.addDependency( toDependency( "oro:oro:2.0.8::jar" ) ); + dep = toDependency( "commons-pool:commons-pool:1.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "commons-attributes:commons-attributes-compiler:2.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "com.jamonapi:jamon:1.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "cglib:cglib:2.1_3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "xdoclet:xjavadoc:1.1::jar", "test" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + addModel( model ); + + model = toModel( "org.springframework:spring-beans:1.2.6" ); + model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); + model.addDependency( toDependency( "org.springframework:spring-core:1.2.6::jar" ) ); + dep = toDependency( "cglib:cglib:2.1_3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependency( toDependency( "javax.mail:mail:1.3.2::jar", "test" ) ); + model.addDependency( toDependency( "org.hibernate:hibernate:3.0.5::jar", "test" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.springframework:spring-context:1.2.6" ); + model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); + model.addDependency( toDependency( "org.springframework:spring-aop:1.2.6::jar" ) ); + dep = toDependency( "velocity:velocity:1.4::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "freemarker:freemarker:2.3.4::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "jasperreports:jasperreports:1.0.3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "org.springframework:spring-web:1.2.6" ); + model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); + model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependency( toDependency( "javax.servlet:jstl:1.0::jar" ) ); + model.addDependency( toDependency( "org.springframework:spring-context:1.2.6::jar" ) ); + dep = toDependency( "log4j:log4j:1.2.9::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "struts:struts:1.2.7::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "com.servlets:cos:05Nov2002::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "taglibs:standard:1.0.6::jar" ) ); + dep = toDependency( "javax.faces:jsf-api:1.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "org.springframework:spring-mock:1.2.6" ); + model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); + dep = toDependency( "org.springframework:spring-jdbc:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-web:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.springframework:spring-jdbc:1.2.6" ); + addModel( model ); + + model = toModel( "cglib:cglib:2.1" ); + model.addDependency( toDependency( "asm:asm:1.5.3::jar" ) ); + model.addDependency( toDependency( "asm:asm-util:1.3.4::jar" ) ); + model.addDependency( toDependency( "aspectwerkz:aspectwerkz-core:0.8.1::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "asm:asm:1.5.3" ); + addModel( model ); + + model = toModel( "asm:asm-util:1.3.4" ); + addModel( model ); + + model = toModel( "aspectwerkz:aspectwerkz-core:0.8.1" ); + addModel( model ); + + model = toModel( "easymock:easymockclassextension:1.1" ); + addModel( model ); + + model = toModel( "opensymphony:webwork:2.2.4" ); + model.addDependency( toDependency( "opensymphony:xwork:1.2.1::jar" ) ); + dep = toDependency( "opensymphony:xwork-tiger:1.2.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "freemarker:freemarker:2.3.4::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + dep = toDependency( "commons-lang:commons-lang:2.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "dwr:dwr:1.1-beta-3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "velocity:velocity:1.4::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "velocity-tools:velocity-tools:1.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "commons-fileupload:commons-fileupload:1.1.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "servlets.com:cos:05Nov2002::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "opensymphony:pell-multipart:2.1.5::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "opensymphony:sitemesh:2.2.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "jetty:org.mortbay.jetty:5.1.4::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "eclipse:jdtcore:3.1.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "jasperreports:jasperreports:1.1.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "jfree:jfreechart:1.0.0::jar" ); + addExclusion( dep, "gnujaxp:gnujaxp" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.apache.struts.tiles:tiles-core:0.2-SNAPSHOT::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "commons-digester:commons-digester:1.7::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "portlet-api:portlet-api:1.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.apache.pluto:pluto:1.0.1-rc4::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-10-SNAPSHOT::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "picocontainer:picocontainer:1.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "picocontainer:picocontainer-gems:1.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "nanocontainer:nanocontainer:1.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "nanocontainer:nanocontainer-nanowar:1.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-beans:1.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-core:1.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-context:1.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-web:1.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-mock:1.2::jar", "compile" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xpp3:xpp3:1.1.3.4-RC8::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "junit:junit:3.8.1::jar", "compile" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); + model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + model.addDependency( toDependency( "easymock:easymockclassextension:1.1::jar", "test" ) ); + model.addDependency( toDependency( "jmock:jmock-cglib:1.0.1::jar", "test" ) ); + model.addDependency( toDependency( "mockobjects:mockobjects-core:0.09::jar", "test" ) ); + model.addDependency( toDependency( "mockobjects:mockobjects-jdk1.3:0.09::jar", "test" ) ); + model.addDependency( toDependency( "mockobjects:mockobjects-alt-jdk1.3:0.09::jar", "test" ) ); + model.addDependency( toDependency( "mockobjects:mockobjects-alt-jdk1.3-j2ee1.3:0.09::jar", "test" ) ); + model.addDependency( toDependency( "mockobjects:mockobjects-jdk1.3-j2ee1.3:0.09::jar", "test" ) ); + addModel( model ); + + model = toModel( "opensymphony:xwork-tiger:1.2.1" ); + addModel( model ); + + model = toModel( "commons-lang:commons-lang:2.0" ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "dwr:dwr:1.1-beta-3" ); + addModel( model ); + + model = toModel( "velocity-tools:velocity-tools:1.1" ); + addModel( model ); + + model = toModel( "commons-fileupload:commons-fileupload:1.1.1" ); + addModel( model ); + + model = toModel( "servlets.com:cos:05Nov2002" ); + addModel( model ); + + model = toModel( "opensymphony:pell-multipart:2.1.5" ); + addModel( model ); + + model = toModel( "opensymphony:sitemesh:2.2.1" ); + addModel( model ); + + model = toModel( "jetty:org.mortbay.jetty:5.1.4" ); + addModel( model ); + + model = toModel( "eclipse:jdtcore:3.1.0" ); + addModel( model ); + + model = toModel( "jasperreports:jasperreports:1.1.0" ); + addModel( model ); + + model = toModel( "jfree:jfreechart:1.0.0" ); + addModel( model ); + + model = toModel( "org.apache.struts.tiles:tiles-core:0.2-SNAPSHOT" ); + addModel( model ); + + model = toModel( "commons-digester:commons-digester:1.7" ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.6::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "portlet-api:portlet-api:1.0" ); + addModel( model ); + + model = toModel( "org.apache.pluto:pluto:1.0.1-rc4" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-10-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0.6-SNAPSHOT" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1::jar" ) ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0.6-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.8-SNAPSHOT" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "picocontainer:picocontainer:1.2" ); + addModel( model ); + + model = toModel( "picocontainer:picocontainer-gems:1.2" ); + addModel( model ); + + model = toModel( "nanocontainer:nanocontainer:1.0" ); + addModel( model ); + + model = toModel( "nanocontainer:nanocontainer-nanowar:1.0" ); + addModel( model ); + + model = toModel( "org.springframework:spring-beans:1.2" ); + addModel( model ); + + model = toModel( "org.springframework:spring-core:1.2" ); + addModel( model ); + + model = toModel( "org.springframework:spring-context:1.2" ); + addModel( model ); + + model = toModel( "org.springframework:spring-web:1.2" ); + addModel( model ); + + model = toModel( "org.springframework:spring-mock:1.2" ); + addModel( model ); + + model = toModel( "xpp3:xpp3:1.1.3.4-RC8" ); + addModel( model ); + + model = toModel( "jmock:jmock-cglib:1.0.1" ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar" ) ); + model.addDependency( toDependency( "cglib:cglib-full:2.0::jar" ) ); + addModel( model ); + + model = toModel( "cglib:cglib-full:2.0" ); + addModel( model ); + + model = toModel( "mockobjects:mockobjects-jdk1.3:0.09" ); + addModel( model ); + + model = toModel( "mockobjects:mockobjects-alt-jdk1.3:0.09" ); + addModel( model ); + + model = toModel( "mockobjects:mockobjects-alt-jdk1.3-j2ee1.3:0.09" ); + addModel( model ); + + model = toModel( "mockobjects:mockobjects-jdk1.3-j2ee1.3:0.09" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-sender:1.0-alpha-6" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-mail-sender:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-senders:1.0-alpha-6" ) ); + model.addDependency( toDependency( "javax.mail:mail:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-test:1.0-alpha-6::jar", "test" ) ); + dep = toDependency( "org.codehaus.plexus:plexus-naming:1.0-alpha-1::jar", "test" ); + addExclusion( dep, "geronimo-spec:geronimo-spec-javamail" ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-mail-senders:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-sender:1.0-alpha-6" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); + addModel( model ); + + model = toModel( "javax.mail:mail:1.4" ); + model.addDependency( toDependency( "javax.activation:activation:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-mail-sender-test:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-senders:1.0-alpha-6" ) ); + model.addDependency( toDependency( "dumbster:dumbster:1.5::jar" ) ); + addModel( model ); + + model = toModel( "dumbster:dumbster:1.5" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-naming:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.6" ) ); + model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); + model.addDependency( toDependency( "directory-naming:naming-java:0.8::jar" ) ); + model.addDependency( toDependency( "directory-naming:naming-factory:0.8::jar" ) ); + model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.2.1::jar" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.7.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "directory-naming:naming-core:0.8" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + addModel( model ); + + model = toModel( "directory-naming:naming-java:0.8" ); + model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + addModel( model ); + + model = toModel( "directory-naming:naming-factory:0.8" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); + model.addDependency( toDependency( "geronimo-spec:geronimo-spec-javamail:1.3.1-rc1::jar" ) ); + addModel( model ); + + model = toModel( "geronimo-spec:geronimo-spec-javamail:1.3.1-rc1" ); + addModel( model ); + + model = toModel( "hsqldb:hsqldb:1.7.1" ); + addModel( model ); + + model = toModel( "org.extremecomponents:extremecomponents:1.0.1" ); + dep = toDependency( "avalon-framework:avalon-framework:4.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "batik:batik:1.5-fop-0.20-5::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.7.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.0::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.0::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + dep = toDependency( "fop:fop:0.20.5::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + dep = toDependency( "poi:poi:2.5.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "servletapi:servletapi:2.3::jar", "provided" ) ); + model.addDependency( toDependency( "taglibs:standard:1.0.2::jar" ) ); + dep = toDependency( "xalan:xalan:2.5.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xerces:xercesImpl:2.6.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xml-apis:xml-apis:2.0.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "avalon-framework:avalon-framework:4.0" ); + addModel( model ); + + model = toModel( "batik:batik:1.5-fop-0.20-5" ); + addModel( model ); + + model = toModel( "commons-collections:commons-collections:3.0" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "fop:fop:0.20.5" ); + addModel( model ); + + model = toModel( "poi:poi:2.5.1" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "poi" ); + model.getRelocation().setArtifactId( "poi" ); + model.getRelocation().setVersion( "2.5.1-final-20040804" ); + addModel( model ); + + model = toModel( "taglibs:standard:1.0.2" ); + addModel( model ); + + model = toModel( "xerces:xercesImpl:2.6.1" ); + addModel( model ); + + model = toModel( "commons-beanutils:commons-beanutils-bean-collections:1.7.0" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-velocity:1.1.2" ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7::jar", "compile" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); + model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar", "compile" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar", "compile" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging-api:1.0.4::jar", "compile" ) ); + model.addDependency( toDependency( "velocity:velocity:1.4::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-integrations:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "taglibs:standard:1.1.2::jar" ) ); + model.addDependency( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-xwork:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "xml-apis:xml-apis:1.3.03" ); + model.setParentProject( toParent( "org.apache:apache:1" ) ); + addModel( model ); + + model = toModel( "org.apache:apache:1" ); + addModel( model ); + + model = toModel( "org.codehaus.woodstox:wstx-asl:3.2.1" ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-signature-consumers:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.shared:maven-app-configuration-model:1.0" ); + model.setParentProject( toParent( "org.apache.maven.shared:maven-app-configuration:1.0" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.shared:maven-app-configuration:1.0" ); + model.setParentProject( toParent( "org.apache.maven.shared:maven-shared-components:7" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.shared:maven-app-configuration-web:1.0" ); + model.setParentProject( toParent( "org.apache.maven.shared:maven-app-configuration:1.0" ) ); + model.addDependency( toDependency( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-project:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar", "runtime" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-project:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-test:2.0.4::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-profile:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-settings:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact-test:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact-manager:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-7::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-repository-metadata:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-profile:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-simple:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus.webdav:plexus-webdav-providers-parent:1.0-alpha-2" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); + model.addDependency( toDependency( "it.could:webdav:0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-providers-parent:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus.webdav:plexus-webdav-parent:1.0-alpha-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-api:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-test:1.0-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-parent:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.12" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-api:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus.webdav:plexus-webdav-parent:1.0-alpha-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-test:1.0-alpha-2" ); + addModel( model ); + + model = toModel( "it.could:webdav:0.4" ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar", "runtime" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-model:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-project:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-test:2.0.5::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-profile:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-settings:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact-test:2.0.5" ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-profile:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-appserver-host:2.0-alpha-8" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-appserver:2.0-alpha-8" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); + model.addDependency( toDependency( "mx4j:mx4j:3.0.1::jar" ) ); + model.addDependency( toDependency( "mx4j:mx4j-remote:3.0.1::jar" ) ); + model.addDependency( toDependency( "org.livetribe:livetribe-slp:1.0.2::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-appserver:2.0-alpha-8" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.11" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); + addModel( model ); + + model = toModel( "mx4j:mx4j:3.0.1" ); + addModel( model ); + + model = toModel( "mx4j:mx4j-remote:3.0.1" ); + addModel( model ); + + model = toModel( "org.livetribe:livetribe-slp:1.0.2" ); + model.setParentProject( toParent( "org.livetribe:livetribe:1.0" ) ); + model.addDependency( toDependency( "backport-util-concurrent:backport-util-concurrent:2.2::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.livetribe:livetribe:1.0" ); + addModel( model ); + + model = toModel( "backport-util-concurrent:backport-util-concurrent:2.2" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-appserver-service-jetty:2.0-alpha-8" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-appserver-services:2.0-alpha-8" ) ); + model.addDependency( toDependency( "ant:ant:1.6.2::jar" ) ); + model.addDependency( toDependency( "jetty:org.mortbay.jetty:5.1.10::jar" ) ); + model.addDependency( toDependency( "tomcat:jasper-compiler:5.5.15::jar" ) ); + model.addDependency( toDependency( "tomcat:jasper-runtime:5.5.15::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar" ) ); + model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar" ) ); + dep = toDependency( "commons-el:commons-el:1.0::jar", "runtime" ); + addExclusion( dep, "log4j:log4j" ); + addExclusion( dep, "commons-logging:commons-logging" ); + addExclusion( dep, "logkit:logkit" ); + model.addDependency( dep ); + model.addDependency( toDependency( "jetty:org.mortbay.jetty.plus:5.1.10::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging-api:1.0.4::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.derby:derby:10.1.3.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-appserver-services:2.0-alpha-8" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-appserver:2.0-alpha-8" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-appserver-host:2.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "ant:ant:1.6.2" ); + dep = toDependency( "xerces:xerces-impl:2.6.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xml-apis:xml-apis:2.6.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "xerces:xerces-impl:2.6.2" ); + addModel( model ); + + model = toModel( "xml-apis:xml-apis:2.6.2" ); + addModel( model ); + + model = toModel( "jetty:org.mortbay.jetty:5.1.10" ); + addModel( model ); + + model = toModel( "tomcat:jasper-compiler:5.5.15" ); + model.setParentProject( toParent( "tomcat:tomcat-parent:5.5.15" ) ); + model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar" ) ); + model.addDependency( toDependency( "ant:ant:1.6.5::jar" ) ); + addModel( model ); + + model = toModel( "tomcat:tomcat-parent:5.5.15" ); + model.setParentProject( toParent( "org.apache:apache:3" ) ); + model.addDependencyManagement( toDependency( "commons-logging:commons-logging-api:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "ant:ant:1.6.5" ); + dep = toDependency( "xerces:xerces-impl:2.6.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xml-apis:xml-apis:2.6.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "tomcat:jasper-runtime:5.5.15" ); + model.setParentProject( toParent( "tomcat:tomcat-parent:5.5.15" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar" ) ); + model.addDependency( toDependency( "commons-el:commons-el:1.0::jar" ) ); + addModel( model ); + + model = toModel( "commons-el:commons-el:1.0" ); + model.addDependency( toDependency( "servletapi:servletapi:2.4-20040521::jar", "provided" ) ); + model.addDependency( toDependency( "jspapi:jsp-api:2.0-20040521::jar", "provided" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + addModel( model ); + + model = toModel( "servletapi:servletapi:2.4-20040521" ); + addModel( model ); + + model = toModel( "jspapi:jsp-api:2.0-20040521" ); + addModel( model ); + + model = toModel( "jetty:org.mortbay.jetty.plus:5.1.10" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-cli:1.1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-tools:1.0.8" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-14::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + dep = toDependency( "commons-cli:commons-cli:1.0::jar" ); + addExclusion( dep, "commons-lang:commons-lang" ); + addExclusion( dep, "commons-logging:commons-logging" ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-tools:1.0.8" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-14::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-14" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-14" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-13::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5::jar" ) ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-14" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-13::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-13" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0.7-alpha-3" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0.7-alpha-3" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-13::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + addModel( model ); + + model = toModel( "commons-cli:commons-cli:1.0" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:1.0::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-lang:commons-lang:1.0" ); + model.addDependency( toDependency( "junit:junit:3.7::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-command-line:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.4" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-naming:1.0-alpha-3" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); + model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); + model.addDependency( toDependency( "directory-naming:naming-java:0.8::jar" ) ); + model.addDependency( toDependency( "directory-naming:naming-factory:0.8::jar" ) ); + model.addDependency( toDependency( "directory-naming:naming-config:0.8::jar" ) ); + model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.2.1::jar" ) ); + model.addDependency( toDependency( "commons-pool:commons-pool:1.2::jar" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.7.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "directory-naming:naming-config:0.8" ); + model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); + model.addDependency( toDependency( "directory-naming:naming-factory:0.8::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:1.0.1::jar" ) ); + model.addDependency( toDependency( "commons-digester:commons-digester:1.4.1::jar" ) ); + model.addDependency( toDependency( "directory-naming:naming-java:0.8::jar" ) ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.6.1::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.1::jar" ) ); + model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.0::jar" ) ); + model.addDependency( toDependency( "commons-pool:commons-pool:1.0.1::jar" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.7.1::jar" ) ); + addModel( model ); + + model = toModel( "commons-lang:commons-lang:1.0.1" ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-digester:commons-digester:1.4.1" ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.6::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-beanutils:commons-beanutils:1.6.1" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-dbcp:commons-dbcp:1.0" ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:1.0-b1::jar" ) ); + model.addDependency( toDependency( "commons-pool:commons-pool:1.0::jar" ) ); + model.addDependency( toDependency( "jdbc:jdbc:2.0::jar" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar" ) ); + addModel( model ); + + model = toModel( "commons-lang:commons-lang:1.0-b1" ); + addModel( model ); + + model = toModel( "commons-pool:commons-pool:1.0" ); + addModel( model ); + + model = toModel( "jdbc:jdbc:2.0" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "javax.sql" ); + model.getRelocation().setArtifactId( "jdbc-stdext" ); + model.getRelocation().setVersion( "2.0" ); + addModel( model ); + + model = toModel( "commons-pool:commons-pool:1.0.1" ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + } +} diff --git a/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaWebappDependencyGraphTest.java b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaWebappDependencyGraphTest.java new file mode 100644 index 000000000..b3bb2a1fa --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaWebappDependencyGraphTest.java @@ -0,0 +1,200 @@ +package org.apache.maven.archiva.dependency.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.dependency.DependencyGraphFactory; +import org.apache.maven.archiva.model.DependencyScope; +import org.apache.maven.archiva.model.VersionedReference; + +import java.util.ArrayList; +import java.util.List; + +/** + * ArchivaWebappDependencyGraphTest + * + * DependencyGraphTest for testing org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT + * + * Generated by archivadev:generate-dependency-tests plugin + * @version $Id$ + */ +public class ArchivaWebappDependencyGraphTest + extends AbstractDependencyGraphFactoryTestCase +{ + public void testResolvedDepsToNodes() + throws GraphTaskException + { + MemoryRepositoryDependencyGraphBuilder graphBuilder = + new MemoryRepositoryDependencyGraphBuilder(); + MemoryRepository repository = new ArchivaWebappMemoryRepository(); + graphBuilder.setMemoryRepository( repository ); + + // Create the factory, and add the test resolver. + DependencyGraphFactory factory = new DependencyGraphFactory(); + factory.setGraphBuilder( graphBuilder ); + factory.setDesiredScope( DependencyScope.TEST ); + + // Get the model to resolve from + VersionedReference rootRef = toVersionedReference( "org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT"); + + // Perform the resolution. + DependencyGraph graph = factory.getGraph( rootRef ); + + // Test the results. + assertNotNull( "Graph shouldn't be null.", graph ); + + String expectedRootRef = "org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT"; + List expectedNodes = new ArrayList(); + + // Check for all nodes, regardless of scope. + expectedNodes.clear(); + expectedNodes.add( "ant:ant-optional:1.5.1::jar" ); + expectedNodes.add( "backport-util-concurrent:backport-util-concurrent:3.0::jar" ); + expectedNodes.add( "classworlds:classworlds:1.1::jar" ); + expectedNodes.add( "commons-beanutils:commons-beanutils:1.7.0::jar" ); + expectedNodes.add( "commons-beanutils:commons-beanutils-bean-collections:1.7.0::jar" ); + expectedNodes.add( "commons-codec:commons-codec:1.3::jar" ); + expectedNodes.add( "commons-collections:commons-collections:3.2::jar" ); + expectedNodes.add( "commons-configuration:commons-configuration:1.3::jar" ); + expectedNodes.add( "commons-digester:commons-digester:1.6::jar" ); + expectedNodes.add( "commons-io:commons-io:1.2::jar" ); + expectedNodes.add( "commons-jxpath:commons-jxpath:1.2::jar" ); + expectedNodes.add( "commons-lang:commons-lang:2.2::jar" ); + expectedNodes.add( "commons-logging:commons-logging:1.0.4::jar" ); + expectedNodes.add( "commons-logging:commons-logging-api:1.0.4::jar" ); + expectedNodes.add( "dom4j:dom4j:1.6.1::jar" ); + expectedNodes.add( "freemarker:freemarker:2.3.4::jar" ); + expectedNodes.add( "geronimo-spec:geronimo-spec-jta:1.0.1B-rc2::jar" ); + expectedNodes.add( "it.could:webdav:0.4::jar" ); + expectedNodes.add( "javax.activation:activation:1.1::jar" ); + expectedNodes.add( "javax.jdo:jdo2-api:2.0::jar" ); + expectedNodes.add( "javax.mail:mail:1.4::jar" ); + expectedNodes.add( "javax.resource:connector:1.0::jar" ); + expectedNodes.add( "javax.servlet:jsp-api:2.0::jar" ); + expectedNodes.add( "javax.servlet:jstl:1.1.2::jar" ); + expectedNodes.add( "javax.servlet:servlet-api:2.4::jar" ); + expectedNodes.add( "javax.transaction:jta:1.0.1B::jar" ); + expectedNodes.add( "jaxen:jaxen:1.1::jar" ); + expectedNodes.add( "jdom:jdom:1.0::jar" ); + expectedNodes.add( "jpox:jpox:1.1.7::jar" ); + expectedNodes.add( "jtidy:jtidy:4aug2000r7-dev::jar" ); + expectedNodes.add( "junit:junit:3.8.1::jar" ); + expectedNodes.add( "log4j:log4j:1.2.8::jar" ); + expectedNodes.add( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); + expectedNodes.add( "net.sf.ehcache:ehcache:1.2.4::jar" ); + expectedNodes.add( "ognl:ognl:2.6.7::jar" ); + expectedNodes.add( "opensymphony:oscore:2.2.4::jar" ); + expectedNodes.add( "opensymphony:sitemesh:2.2.1::jar" ); + expectedNodes.add( "opensymphony:webwork:2.2.4::jar" ); + expectedNodes.add( "opensymphony:xwork:1.2.1::jar" ); + expectedNodes.add( "org.apache.derby:derby:10.1.3.1::jar" ); + expectedNodes.add( "org.apache.lucene:lucene-core:2.0.0::jar" ); + expectedNodes.add( "org.apache.maven:maven-artifact:2.0.5::jar" ); + expectedNodes.add( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ); + expectedNodes.add( "org.apache.maven:maven-model:2.0.5::jar" ); + expectedNodes.add( "org.apache.maven:maven-profile:2.0.5::jar" ); + expectedNodes.add( "org.apache.maven:maven-project:2.0.5::jar" ); + expectedNodes.add( "org.apache.maven:maven-repository-metadata:2.0.5::jar" ); + expectedNodes.add( "org.apache.maven:maven-settings:2.0.5::jar" ); + expectedNodes.add( "org.apache.maven.archiva:archiva-applet:1.0-alpha-2-SNAPSHOT::jar" ); + expectedNodes.add( "org.apache.maven.archiva:archiva-artifact-reports:1.0-alpha-2-SNAPSHOT::jar" ); + expectedNodes.add( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ); + expectedNodes.add( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ); + expectedNodes.add( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ); + expectedNodes.add( "org.apache.maven.archiva:archiva-core-consumers:1.0-alpha-2-SNAPSHOT::jar" ); + expectedNodes.add( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ); + expectedNodes.add( "org.apache.maven.archiva:archiva-database-consumers:1.0-alpha-2-SNAPSHOT::jar" ); + expectedNodes.add( "org.apache.maven.archiva:archiva-indexer:1.0-alpha-2-SNAPSHOT::jar" ); + expectedNodes.add( "org.apache.maven.archiva:archiva-lucene-consumers:1.0-alpha-2-SNAPSHOT::jar" ); + expectedNodes.add( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ); + expectedNodes.add( "org.apache.maven.archiva:archiva-policies:1.0-alpha-2-SNAPSHOT::jar" ); + expectedNodes.add( "org.apache.maven.archiva:archiva-proxy:1.0-alpha-2-SNAPSHOT::jar" ); + expectedNodes.add( "org.apache.maven.archiva:archiva-report-manager:1.0-alpha-2-SNAPSHOT::jar" ); + expectedNodes.add( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ); + expectedNodes.add( "org.apache.maven.archiva:archiva-scheduled:1.0-alpha-2-SNAPSHOT::jar" ); + expectedNodes.add( "org.apache.maven.archiva:archiva-security:1.0-alpha-2-SNAPSHOT::jar" ); + expectedNodes.add( "org.apache.maven.archiva:archiva-signature-consumers:1.0-alpha-2-SNAPSHOT::jar" ); + expectedNodes.add( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT::jar" ); + expectedNodes.add( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ); + expectedNodes.add( "org.apache.maven.shared:maven-app-configuration-web:1.0::jar" ); + expectedNodes.add( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ); + expectedNodes.add( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar" ); + expectedNodes.add( "org.apache.maven.wagon:wagon-http-shared:1.0-beta-2::jar" ); + expectedNodes.add( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-digest:1.1::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-utils:1.4::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-velocity:1.1.2::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ); + expectedNodes.add( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2::jar" ); + expectedNodes.add( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2::jar" ); + expectedNodes.add( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ); + expectedNodes.add( "org.codehaus.plexus.redback:redback-authentication-keys:1.0-alpha-1::jar" ); + expectedNodes.add( "org.codehaus.plexus.redback:redback-authentication-users:1.0-alpha-1::jar" ); + expectedNodes.add( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ); + expectedNodes.add( "org.codehaus.plexus.redback:redback-authorization-rbac:1.0-alpha-1::jar" ); + expectedNodes.add( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ); + expectedNodes.add( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ); + expectedNodes.add( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ); + expectedNodes.add( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1::jar" ); + expectedNodes.add( "org.codehaus.plexus.redback:redback-keys-jdo:1.0-alpha-1::jar" ); + expectedNodes.add( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ); + expectedNodes.add( "org.codehaus.plexus.redback:redback-rbac-cached:1.0-alpha-1::jar" ); + expectedNodes.add( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1::jar" ); + expectedNodes.add( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ); + expectedNodes.add( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ); + expectedNodes.add( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ); + expectedNodes.add( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ); + expectedNodes.add( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ); + expectedNodes.add( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ); + expectedNodes.add( "org.codehaus.plexus.redback:redback-users-jdo:1.0-alpha-1::jar" ); + expectedNodes.add( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1::war" ); + expectedNodes.add( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ); + expectedNodes.add( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ); + expectedNodes.add( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar" ); + expectedNodes.add( "org.codehaus.plexus.webdav:plexus-webdav-api:1.0-alpha-2::jar" ); + expectedNodes.add( "org.codehaus.plexus.webdav:plexus-webdav-simple:1.0-alpha-2::jar" ); + expectedNodes.add( "org.codehaus.woodstox:wstx-asl:3.2.1::jar" ); + expectedNodes.add( "org.extremecomponents:extremecomponents:1.0.1::jar" ); + expectedNodes.add( "org.rifers:rife-continuations:0.0.2::jar" ); + expectedNodes.add( "org.slf4j:slf4j-api:1.2::jar" ); + expectedNodes.add( "org.slf4j:slf4j-log4j12:1.2::jar" ); + expectedNodes.add( "org.slf4j:slf4j-simple:1.2::jar" ); + expectedNodes.add( "quartz:quartz:1.4.5::jar" ); + expectedNodes.add( "stax:stax-api:1.0.1::jar" ); + expectedNodes.add( "taglibs:standard:1.1.2::jar" ); + expectedNodes.add( "velocity:velocity:1.4::jar" ); + expectedNodes.add( "velocity:velocity-dep:1.4::jar" ); + expectedNodes.add( "xerces:xercesImpl:2.6.2::jar" ); + expectedNodes.add( "xml-apis:xml-apis:1.3.03::jar" ); + + assertGraph( graph, expectedRootRef, expectedNodes ); + } + +} diff --git a/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaWebappMemoryRepository.java b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaWebappMemoryRepository.java new file mode 100644 index 000000000..ab19663bb --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaWebappMemoryRepository.java @@ -0,0 +1,3469 @@ +package org.apache.maven.archiva.dependency.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.model.ArchivaProjectModel; +import org.apache.maven.archiva.model.Dependency; +import org.apache.maven.archiva.model.VersionedReference; + +/** + * ArchivaWebappMemoryRepository + * + * MemoryRepository for testing org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT + * + * Generated by archivadev:generate-dependency-tests plugin + * @version $Id$ + */ +public class ArchivaWebappMemoryRepository + extends AbstractMemoryRepository +{ + public void initialize() + { + ArchivaProjectModel model; + Dependency dep; + + model = toModel( "org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-web:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-report-manager:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-scheduled:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-indexer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-proxy:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-security:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-core-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-lucene-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-signature-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-applet:1.0-alpha-2-SNAPSHOT::jar", "provided" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); + model.addDependency( toDependency( "opensymphony:sitemesh:2.2.1::jar" ) ); + model.addDependency( toDependency( "taglibs:standard:1.1.2::jar" ) ); + model.addDependency( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.shared:maven-app-configuration-web:1.0::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar", "runtime" ) ); + model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar", "runtime" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar", "runtime" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar", "runtime" ) ); + model.addDependency( toDependency( "opensymphony:webwork:2.2.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1::war", "runtime" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-simple:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.apache.derby:derby:10.1.3.1::jar", "provided" ) ); + model.addDependency( toDependency( "javax.mail:mail:1.4::jar", "provided" ) ); + model.addDependency( toDependency( "javax.activation:activation:1.1::jar", "provided" ) ); + model.addDependencyManagement( toDependency( "javax.activation:activation:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-applet:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-artifact-converter:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-artifact-reports:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-converter:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-core:1.0-alpha-2-SNAPSHOT-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-core-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-database-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-indexer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-lucene-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-plexus-application:1.0-alpha-2-SNAPSHOT::plexus-application" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-policies:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-proxy:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-report-manager:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-scheduled:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-security:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-signature-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-transaction:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT::war" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); + model.addDependencyManagement( toDependency( "commons-io:commons-io:1.2::jar" ) ); + model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependencyManagement( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + model.addDependencyManagement( toDependency( "commons-logging:commons-logging-api:1.0.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.derby:derby:10.1.3.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.derby:derbytools:10.1.3.1::jar" ) ); + model.addDependencyManagement( toDependency( "dom4j:dom4j:1.6.1::jar" ) ); + model.addDependencyManagement( toDependency( "easymock:easymock:1.2_Java1.3::jar" ) ); + model.addDependencyManagement( toDependency( "hsqldb:hsqldb:1.8.0.7::jar" ) ); + model.addDependencyManagement( toDependency( "jaxen:jaxen:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); + model.addDependencyManagement( toDependency( "jdom:jdom:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "jpox:jpox:1.1.7::jar" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:jsp-api:2.0::jar" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); + model.addDependencyManagement( toDependency( "log4j:log4j:1.2.8::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.lucene:lucene-core:2.0.0::jar" ) ); + model.addDependencyManagement( toDependency( "javax.mail:mail:1.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-project:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-repository-metadata:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-app-configuration-web:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-model-converter:2.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-appserver-host:2.0-alpha-8::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-appserver-service-jetty:2.0-alpha-8::plexus-service" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-cli:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-command-line:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-i18n:1.0-beta-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-naming:1.0-alpha-3::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1::war" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-simple:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:servlet-api:2.4::jar" ) ); + model.addDependencyManagement( toDependency( "opensymphony:sitemesh:2.2.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar" ) ); + model.addDependencyManagement( toDependency( "taglibs:standard:1.1.2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "opensymphony:webwork:2.2.4::jar" ) ); + model.addDependencyManagement( toDependency( "xmlunit:xmlunit:1.0::jar" ) ); + model.addProperty( "wagon.version", "1.0-beta-2" ); + model.addProperty( "redback.version", "1.0-alpha-1" ); + model.addProperty( "maven.version", "2.0.5" ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-web:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "javax.activation:activation:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-applet:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-artifact-converter:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-artifact-reports:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-converter:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-core:1.0-alpha-2-SNAPSHOT-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-core-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-database-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-indexer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-lucene-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-plexus-application:1.0-alpha-2-SNAPSHOT::plexus-application" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-policies:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-proxy:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-report-manager:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-scheduled:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-security:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-signature-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-transaction:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT::war" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); + model.addDependencyManagement( toDependency( "commons-io:commons-io:1.2::jar" ) ); + model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependencyManagement( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + model.addDependencyManagement( toDependency( "commons-logging:commons-logging-api:1.0.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.derby:derby:10.1.3.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.derby:derbytools:10.1.3.1::jar" ) ); + model.addDependencyManagement( toDependency( "dom4j:dom4j:1.6.1::jar" ) ); + model.addDependencyManagement( toDependency( "easymock:easymock:1.2_Java1.3::jar" ) ); + model.addDependencyManagement( toDependency( "hsqldb:hsqldb:1.8.0.7::jar" ) ); + model.addDependencyManagement( toDependency( "jaxen:jaxen:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); + model.addDependencyManagement( toDependency( "jdom:jdom:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "jpox:jpox:1.1.7::jar" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:jsp-api:2.0::jar" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); + model.addDependencyManagement( toDependency( "log4j:log4j:1.2.8::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.lucene:lucene-core:2.0.0::jar" ) ); + model.addDependencyManagement( toDependency( "javax.mail:mail:1.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-project:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-repository-metadata:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-app-configuration-web:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-model-converter:2.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-appserver-host:2.0-alpha-8::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-appserver-service-jetty:2.0-alpha-8::plexus-service" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-cli:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-command-line:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-i18n:1.0-beta-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-naming:1.0-alpha-3::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1::war" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-simple:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:servlet-api:2.4::jar" ) ); + model.addDependencyManagement( toDependency( "opensymphony:sitemesh:2.2.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar" ) ); + model.addDependencyManagement( toDependency( "taglibs:standard:1.1.2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "opensymphony:webwork:2.2.4::jar" ) ); + model.addDependencyManagement( toDependency( "xmlunit:xmlunit:1.0::jar" ) ); + model.addProperty( "wagon.version", "1.0-beta-2" ); + model.addProperty( "maven.version", "2.0.5" ); + model.addProperty( "redback.version", "1.0-alpha-1" ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-parent:5" ); + model.setParentProject( toParent( "org.apache:apache:3" ) ); + addModel( model ); + + model = toModel( "org.apache:apache:3" ); + addModel( model ); + + model = toModel( "junit:junit:3.8.1" ); + addModel( model ); + + model = toModel( "javax.activation:activation:1.1" ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-applet:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-web:1.0-alpha-2-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-artifact-converter:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-transaction:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.shared:maven-model-converter:2.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-repository-metadata:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-external:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + model.addDependencyManagement( toDependency( "classworlds:classworlds:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0.3" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0.3" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.4" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-utils:1.0.4" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "classworlds:classworlds:1.1-alpha-2" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-utils:1.1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-beta-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven:maven-parent:4" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-parent:4" ); + model.setParentProject( toParent( "org.apache:apache:3" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-provider-test:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-beta-2" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8" ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-beta-2" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-beta-2::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4" ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7::jar", "compile" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); + model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7" ); + model.setParentProject( toParent( "plexus:plexus-containers:1.0.2" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-containers:1.0.2" ); + model.setParentProject( toParent( "plexus:plexus-root:1.0.3" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-root:1.0.3" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-utils:1.0.2" ); + model.setParentProject( toParent( "plexus:plexus-root:1.0.3" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + model.addDependency( toDependency( "com.jcraft:jsch:0.1.27::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "com.jcraft:jsch:0.1.27" ); + dep = toDependency( "com.jcraft:jzlib:1.0.7::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "com.jcraft:jzlib:1.0.7" ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh-external:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-file:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-shared:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); + dep = toDependency( "plexus:plexus-jetty-httpd:1.0-beta-1::jar", "test" ); + addExclusion( dep, "plexus:plexus-container-default" ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-http-shared:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + model.addDependency( toDependency( "jtidy:jtidy:4aug2000r7-dev::jar" ) ); + addModel( model ); + + model = toModel( "jtidy:jtidy:4aug2000r7-dev" ); + addModel( model ); + + model = toModel( "xml-apis:xml-apis:1.0.b2" ); + addModel( model ); + + model = toModel( "plexus:plexus-jetty-httpd:1.0-beta-1" ); + model.setParentProject( toParent( "plexus:plexus-components:1.0" ) ); + model.addDependency( toDependency( "jetty:jetty:4.2.10::jar" ) ); + model.addDependency( toDependency( "servletapi:servletapi:2.3::jar" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-components:1.0" ); + model.setParentProject( toParent( "plexus:plexus-root:1.0" ) ); + model.addDependency( toDependency( "plexus:plexus-container-default:1.0-alpha-2::jar" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-root:1.0" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-container-default:1.0-alpha-2" ); + addModel( model ); + + model = toModel( "jetty:jetty:4.2.10" ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar", "runtime" ) ); + addModel( model ); + + model = toModel( "javax.servlet:servlet-api:2.3" ); + addModel( model ); + + model = toModel( "servletapi:servletapi:2.3" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "javax.servlet" ); + model.getRelocation().setArtifactId( "servlet-api" ); + model.getRelocation().setVersion( "2.3" ); + addModel( model ); + + model = toModel( "easymock:easymock:1.2_Java1.3" ); + addModel( model ); + + model = toModel( "classworlds:classworlds:1.1" ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact-manager:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-transaction:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-digest:1.1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.12" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4.1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-components:1.1.12" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.10" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-20" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-20" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.9" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-19" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-19" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-utils:1.3" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.8" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-20" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "jmock:jmock:1.0.1" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-utils:1.4.1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.11" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.11" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-utils:1.4" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-22" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-22" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.shared:maven-model-converter:2.1" ); + model.setParentProject( toParent( "org.apache.maven.shared:maven-shared-components:7" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model-v3:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + model.addDependency( toDependency( "dom4j:dom4j:1.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.shared:maven-shared-components:7" ); + model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-model-v3:2.0" ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-model:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven:2.0.4" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-7::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-external:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-7::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-6::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-alpha-6" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon:1.0-alpha-6" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-6" ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-7" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); + model.addDependency( toDependency( "com.jcraft:jsch:0.1.24::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-alpha-6" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-6::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); + addModel( model ); + + model = toModel( "com.jcraft:jsch:0.1.24" ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh-external:1.0-alpha-6" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-file:1.0-alpha-7" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-6" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); + dep = toDependency( "plexus:plexus-jetty-httpd:1.0-beta-1::jar", "test" ); + addExclusion( dep, "plexus:plexus-container-default" ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "dom4j:dom4j:1.4" ); + model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); + model.addDependency( toDependency( "jaxen:jaxen:1.0-FCS::jar" ) ); + model.addDependency( toDependency( "saxpath:saxpath:1.0-FCS::jar" ) ); + model.addDependency( toDependency( "msv:msv:20020414::jar" ) ); + model.addDependency( toDependency( "relaxngDatatype:relaxngDatatype:20020414::jar" ) ); + model.addDependency( toDependency( "isorelax:isorelax:20020414::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "junitperf:junitperf:1.8::jar", "test" ) ); + model.addDependency( toDependency( "xerces:xerces:2.0.2::jar", "test" ) ); + model.addDependency( toDependency( "xalan:xalan:2.3.1::jar", "test" ) ); + model.addDependency( toDependency( "jtidy:jtidy:4aug2000r7-dev::jar", "test" ) ); + model.addDependency( toDependency( "pull-parser:pull-parser:2::jar", "test" ) ); + addModel( model ); + + model = toModel( "jaxen:jaxen:1.0-FCS" ); + addModel( model ); + + model = toModel( "saxpath:saxpath:1.0-FCS" ); + addModel( model ); + + model = toModel( "msv:msv:20020414" ); + addModel( model ); + + model = toModel( "relaxngDatatype:relaxngDatatype:20020414" ); + addModel( model ); + + model = toModel( "isorelax:isorelax:20020414" ); + addModel( model ); + + model = toModel( "junitperf:junitperf:1.8" ); + addModel( model ); + + model = toModel( "xerces:xerces:2.0.2" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "xerces" ); + model.getRelocation().setArtifactId( "xercesImpl" ); + addModel( model ); + + model = toModel( "xerces:xercesImpl:2.0.2" ); + addModel( model ); + + model = toModel( "xalan:xalan:2.3.1" ); + addModel( model ); + + model = toModel( "pull-parser:pull-parser:2" ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-artifact-reports:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-reporting:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-report-manager:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.7::jar", "test" ) ); + model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-reporting:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-report-manager:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-reporting:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); + dep = toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ); + addExclusion( dep, "xerces:xercesImpl" ); + addExclusion( dep, "xerces:xmlParserAPIs" ); + model.addDependency( dep ); + dep = toDependency( "jpox:jpox:1.1.7::jar", "compile" ); + addExclusion( dep, "javax.sql:jdbc-stdext" ); + model.addDependency( dep ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); + dep = toDependency( "commons-logging:commons-logging:1.0.4::jar" ); + addExclusion( dep, "logkit:logkit" ); + model.addDependency( dep ); + model.addDependency( toDependency( "log4j:log4j:1.2.8::jar" ) ); + model.addDependency( toDependency( "org.apache.derby:derby:10.1.3.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar", "test" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.7::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.derby:derbytools:10.1.3.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); + model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + addModel( model ); + + model = toModel( "commons-lang:commons-lang:2.2" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-22" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + addModel( model ); + + model = toModel( "javax.jdo:jdo2-api:2.0" ); + model.addDependency( toDependency( "geronimo-spec:geronimo-spec-jta:1.0.1B-rc2::jar" ) ); + dep = toDependency( "xerces:xerces:2.4.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xml-apis:xml-apis:1.0.b2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "geronimo-spec:geronimo-spec-jta:1.0.1B-rc2" ); + addModel( model ); + + model = toModel( "xerces:xerces:2.4.0" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "xerces" ); + model.getRelocation().setArtifactId( "xercesImpl" ); + addModel( model ); + + model = toModel( "xerces:xercesImpl:2.4.0" ); + addModel( model ); + + model = toModel( "commons-collections:commons-collections:3.2" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-io:commons-io:1.2" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-policies:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); + model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); + dep = toDependency( "dom4j:dom4j:1.6.1::jar" ); + addExclusion( dep, "xom:xom" ); + model.addDependency( dep ); + dep = toDependency( "jaxen:jaxen:1.1::jar" ); + addExclusion( dep, "jdom:jdom" ); + addExclusion( dep, "xom:xom" ); + model.addDependency( dep ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar" ) ); + addModel( model ); + + model = toModel( "dom4j:dom4j:1.6.1" ); + dep = toDependency( "jaxme:jaxme-api:0.3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "jaxen:jaxen:1.1-beta-6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "msv:xsdlib:20030807::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "msv:relaxngDatatype:20030807::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "pull-parser:pull-parser:2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xpp3:xpp3:1.1.3.3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "stax:stax-api:1.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); + model.addDependency( toDependency( "junitperf:junitperf:1.8::jar", "test" ) ); + model.addDependency( toDependency( "stax:stax-ri:1.0::jar", "test" ) ); + model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar", "test" ) ); + model.addDependency( toDependency( "xalan:xalan:2.5.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "jaxme:jaxme-api:0.3" ); + addModel( model ); + + model = toModel( "jaxen:jaxen:1.1-beta-6" ); + addModel( model ); + + model = toModel( "msv:xsdlib:20030807" ); + addModel( model ); + + model = toModel( "msv:relaxngDatatype:20030807" ); + addModel( model ); + + model = toModel( "xpp3:xpp3:1.1.3.3" ); + addModel( model ); + + model = toModel( "stax:stax-api:1.0" ); + addModel( model ); + + model = toModel( "stax:stax-ri:1.0" ); + addModel( model ); + + model = toModel( "xerces:xercesImpl:2.6.2" ); + addModel( model ); + + model = toModel( "xalan:xalan:2.5.1" ); + addModel( model ); + + model = toModel( "jaxen:jaxen:1.1" ); + model.addDependency( toDependency( "dom4j:dom4j:1.6.1::jar" ) ); + model.addDependency( toDependency( "jdom:jdom:1.0::jar" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:1.3.02::jar" ) ); + model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar" ) ); + model.addDependency( toDependency( "xom:xom:1.0::jar" ) ); + addModel( model ); + + model = toModel( "jdom:jdom:1.0" ); + dep = toDependency( "xerces:xercesImpl:2.6.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xml-apis:xml-apis:1.0.b2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "jaxen:jaxen:1.0-FCS::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "saxpath:saxpath:1.0-FCS::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xalan:xalan:2.5.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "xerces:xercesImpl:2.6.0" ); + addModel( model ); + + model = toModel( "xalan:xalan:2.5.0" ); + addModel( model ); + + model = toModel( "xml-apis:xml-apis:1.3.02" ); + addModel( model ); + + model = toModel( "xom:xom:1.0" ); + model.addDependency( toDependency( "xerces:xmlParserAPIs:2.6.2::jar" ) ); + model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar" ) ); + model.addDependency( toDependency( "xalan:xalan:2.6.0::jar" ) ); + model.addDependency( toDependency( "com.ibm.icu:icu4j:2.6.1::jar" ) ); + addModel( model ); + + model = toModel( "xerces:xmlParserAPIs:2.6.2" ); + addModel( model ); + + model = toModel( "xalan:xalan:2.6.0" ); + model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); + dep = toDependency( "xerces:xercesImpl:2.6.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "xml-apis:xml-apis:2.0.2" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "xml-apis" ); + model.getRelocation().setArtifactId( "xml-apis" ); + model.getRelocation().setVersion( "1.0.b2" ); + addModel( model ); + + model = toModel( "com.ibm.icu:icu4j:2.6.1" ); + addModel( model ); + + model = toModel( "org.slf4j:slf4j-log4j12:1.2" ); + model.setParentProject( toParent( "org.slf4j:slf4j-parent:1.2" ) ); + model.addDependency( toDependency( "org.slf4j:slf4j-api:1.2::jar" ) ); + model.addDependency( toDependency( "log4j:log4j:1.2.13::jar" ) ); + addModel( model ); + + model = toModel( "org.slf4j:slf4j-parent:1.2" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.slf4j:slf4j-api:1.2" ); + model.setParentProject( toParent( "org.slf4j:slf4j-parent:1.2" ) ); + addModel( model ); + + model = toModel( "log4j:log4j:1.2.13" ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-policies:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus.cache:plexus-cache-providers-parent:1.0-alpha-2" ) ); + model.addDependency( toDependency( "net.sf.ehcache:ehcache:1.2.4::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.cache:plexus-cache-providers-parent:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus.cache:plexus-cache-parent:1.0-alpha-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-test:1.0-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.cache:plexus-cache-parent:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16::jar" ) ); + model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-components:1.1.9" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-16" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-16" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-16" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-lang:commons-lang:2.1" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus.cache:plexus-cache-parent:1.0-alpha-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.cache:plexus-cache-test:1.0-alpha-2" ); + addModel( model ); + + model = toModel( "net.sf.ehcache:ehcache:1.2.4" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar", "compile" ) ); + dep = toDependency( "org.hibernate:hibernate:3.2.0.cr3::jar", "test" ); + addExclusion( dep, "javax.transaction:jta" ); + addExclusion( dep, "javax.security:jacc" ); + model.addDependency( dep ); + dep = toDependency( "net.sf.hibernate:hibernate:2.1.8::jar", "test" ); + addExclusion( dep, "javax.transaction:jta" ); + addExclusion( dep, "javax.security:jacc" ); + model.addDependency( dep ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "test" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "httpunit:httpunit:1.6::jar", "test" ) ); + model.addDependency( toDependency( "commons-httpclient:commons-httpclient:3.0.1::jar", "test" ) ); + model.addDependency( toDependency( "com.cenqua.clover:clover:1.3.13::jar", "test" ) ); + model.addDependency( toDependency( "checkstyle:checkstyle:4.1::jar", "test" ) ); + model.addDependency( toDependency( "checkstyle:checkstyle-optional:4.1::jar", "test" ) ); + model.addDependency( toDependency( "commons-httpclient:commons-httpclient:3.0.1::jar", "test" ) ); + model.addDependency( toDependency( "httpunit:httpunit:1.6.1::jar", "test" ) ); + model.addDependency( toDependency( "httpunit:httpunit:1.6.1::jar", "test" ) ); + model.addProperty( "licenseFile", "${basedir}/tools/clover.license" ); + addModel( model ); + + model = toModel( "commons-logging:commons-logging:1.0.4" ); + dep = toDependency( "log4j:log4j:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "logkit:logkit:1.0.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + dep = toDependency( "avalon-framework:avalon-framework:4.1.3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "log4j:log4j:1.2.6" ); + addModel( model ); + + model = toModel( "logkit:logkit:1.0.1" ); + addModel( model ); + + model = toModel( "junit:junit:3.7" ); + addModel( model ); + + model = toModel( "avalon-framework:avalon-framework:4.1.3" ); + addModel( model ); + + model = toModel( "org.hibernate:hibernate:3.2.0.cr3" ); + addModel( model ); + + model = toModel( "net.sf.hibernate:hibernate:2.1.8" ); + addModel( model ); + + model = toModel( "javax.servlet:servlet-api:2.4" ); + addModel( model ); + + model = toModel( "httpunit:httpunit:1.6" ); + model.addDependency( toDependency( "xerces:xmlParserAPIs:2.2.1::jar" ) ); + model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar" ) ); + model.addDependency( toDependency( "nekohtml:nekohtml:0.9.1::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependency( toDependency( "rhino:js:1.5R4.1::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar" ) ); + model.addDependency( toDependency( "jtidy:jtidy:4aug2000r7-dev::jar" ) ); + model.addDependency( toDependency( "javax.activation:activation:1.0.2::jar", "test" ) ); + model.addDependency( toDependency( "javax.mail:mail:1.3.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "xerces:xmlParserAPIs:2.2.1" ); + addModel( model ); + + model = toModel( "nekohtml:nekohtml:0.9.1" ); + model.addDependency( toDependency( "xerces:xerces:2.4.0::jar" ) ); + addModel( model ); + + model = toModel( "rhino:js:1.5R4.1" ); + addModel( model ); + + model = toModel( "javax.activation:activation:1.0.2" ); + addModel( model ); + + model = toModel( "javax.mail:mail:1.3.1" ); + model.addDependency( toDependency( "javax.activation:activation:1.0.2::jar", "compile" ) ); + addModel( model ); + + model = toModel( "commons-httpclient:commons-httpclient:3.0.1" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + model.addDependency( toDependency( "commons-codec:commons-codec:1.2::jar" ) ); + addModel( model ); + + model = toModel( "commons-logging:commons-logging:1.0.3" ); + dep = toDependency( "log4j:log4j:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "logkit:logkit:1.0.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-codec:commons-codec:1.2" ); + addModel( model ); + + model = toModel( "com.cenqua.clover:clover:1.3.13" ); + addModel( model ); + + model = toModel( "checkstyle:checkstyle:4.1" ); + model.addDependency( toDependency( "antlr:antlr:2.7.2::jar" ) ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils-core:1.7.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + addModel( model ); + + model = toModel( "antlr:antlr:2.7.2" ); + addModel( model ); + + model = toModel( "commons-beanutils:commons-beanutils-core:1.7.0" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-logging:commons-logging:1.0" ); + addModel( model ); + + model = toModel( "commons-collections:commons-collections:2.0" ); + addModel( model ); + + model = toModel( "commons-collections:commons-collections:2.1" ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "checkstyle:checkstyle-optional:4.1" ); + model.addDependency( toDependency( "checkstyle:checkstyle:4.1::jar" ) ); + addModel( model ); + + model = toModel( "httpunit:httpunit:1.6.1" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-logging:1.0.4" ) ); + model.addDependency( toDependency( "org.slf4j:slf4j-simple:1.2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-logging-provider-test:1.0.4::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-logging:1.0.4" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.11" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-logging-provider-test:1.0.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-logging-provider-test:1.0.4" ); + addModel( model ); + + model = toModel( "org.slf4j:slf4j-simple:1.2" ); + model.setParentProject( toParent( "org.slf4j:slf4j-parent:1.2" ) ); + model.addDependency( toDependency( "org.slf4j:slf4j-api:1.2::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.12" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-2::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-17" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-17::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-17" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-17::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-17" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-17" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-2" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry-providers:1.0-alpha-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-2::jar", "test" ) ); + dep = toDependency( "commons-configuration:commons-configuration:1.3::jar" ); + addExclusion( dep, "commons-beanutils:commons-beanutils-core" ); + addExclusion( dep, "xerces:xerces" ); + addExclusion( dep, "xerces:xercesImpl" ); + addExclusion( dep, "xalan:xalan" ); + addExclusion( dep, "xml-apis:xml-apis" ); + addExclusion( dep, "servletapi:servletapi" ); + model.addDependency( dep ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.7.0::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry-providers:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-2" ) ); + addModel( model ); + + model = toModel( "commons-configuration:commons-configuration:1.3" ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.1::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging-api:1.0.4::jar" ) ); + model.addDependency( toDependency( "commons-digester:commons-digester:1.6::jar" ) ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils-core:1.7.0::jar" ) ); + model.addDependency( toDependency( "commons-codec:commons-codec:1.3::jar" ) ); + model.addDependency( toDependency( "commons-jxpath:commons-jxpath:1.2::jar" ) ); + model.addDependency( toDependency( "xerces:xerces:2.2.1::jar" ) ); + model.addDependency( toDependency( "xalan:xalan:2.7.0::jar" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); + dep = toDependency( "servletapi:servletapi:2.4::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "spice:spice-jndikit:1.1::jar", "test" ) ); + model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.1::jar", "test" ) ); + model.addDependency( toDependency( "commons-pool:commons-pool:1.1::jar", "test" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.7.2.2::jar", "test" ) ); + model.addDependency( toDependency( "dbunit:dbunit:2.1::jar", "test" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "junit-addons:junit-addons:1.4::jar", "test" ) ); + model.addDependency( toDependency( "mockobjects:mockobjects-core:0.09::jar", "test" ) ); + model.addDependency( toDependency( "mockobjects:mockobjects-jdk1.4-j2ee1.3:0.09::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-collections:commons-collections:3.1" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-logging:commons-logging-api:1.0.4" ); + addModel( model ); + + model = toModel( "commons-digester:commons-digester:1.6" ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.6::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-beanutils:commons-beanutils:1.6" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-codec:commons-codec:1.3" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-jxpath:commons-jxpath:1.2" ); + model.addDependency( toDependency( "xerces:xerces:1.2.3::jar" ) ); + model.addDependency( toDependency( "servletapi:servletapi:2.2::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8::jar" ) ); + model.addDependency( toDependency( "ant:ant-optional:1.5.1::jar" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); + model.addDependency( toDependency( "jdom:jdom:b9::jar" ) ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.4::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); + addModel( model ); + + model = toModel( "xerces:xerces:1.2.3" ); + addModel( model ); + + model = toModel( "servletapi:servletapi:2.2" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "javax.servlet" ); + model.getRelocation().setArtifactId( "servlet-api" ); + model.getRelocation().setVersion( "2.2" ); + addModel( model ); + + model = toModel( "javax.servlet:servlet-api:2.2" ); + addModel( model ); + + model = toModel( "junit:junit:3.8" ); + addModel( model ); + + model = toModel( "ant:ant-optional:1.5.1" ); + addModel( model ); + + model = toModel( "jdom:jdom:b9" ); + addModel( model ); + + model = toModel( "commons-beanutils:commons-beanutils:1.4" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "xerces:xerces:2.2.1" ); + addModel( model ); + + model = toModel( "xalan:xalan:2.7.0" ); + model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); + dep = toDependency( "xerces:xercesImpl:2.6.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "servletapi:servletapi:2.4" ); + addModel( model ); + + model = toModel( "spice:spice-jndikit:1.1" ); + addModel( model ); + + model = toModel( "commons-dbcp:commons-dbcp:1.1" ); + addModel( model ); + + model = toModel( "commons-pool:commons-pool:1.1" ); + addModel( model ); + + model = toModel( "hsqldb:hsqldb:1.7.2.2" ); + addModel( model ); + + model = toModel( "dbunit:dbunit:2.1" ); + addModel( model ); + + model = toModel( "junit-addons:junit-addons:1.4" ); + addModel( model ); + + model = toModel( "mockobjects:mockobjects-core:0.09" ); + addModel( model ); + + model = toModel( "mockobjects:mockobjects-jdk1.4-j2ee1.3:0.09" ); + addModel( model ); + + model = toModel( "commons-beanutils:commons-beanutils:1.7.0" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.6" ) ); + model.addDependency( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); + dep = toDependency( "jpox:jpox:1.1.1::jar", "test" ); + addExclusion( dep, "javax.sql:jdbc-stdext" ); + model.addDependency( dep ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.7.3.0::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-components:1.1.6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "jpox:jpox:1.1.1" ); + model.setParentProject( toParent( "jpox:jpox-parent:1.1.1" ) ); + model.addDependency( toDependency( "log4j:log4j:1.2.8::jar" ) ); + model.addDependency( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); + model.addDependency( toDependency( "javax.resource:connector:1.0::jar" ) ); + dep = toDependency( "javax.security:jaas:1.0.01::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "javax.sql:jdbc-stdext:2.0::jar" ) ); + dep = toDependency( "ant:ant:1.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "jpox:jpox-dbcp:1.1.1::jar", "test" ) ); + model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.2::jar", "test" ) ); + model.addDependency( toDependency( "commons-pool:commons-pool:1.2::jar", "test" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.1::jar", "test" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "jpox:jpox-parent:1.1.1" ); + addModel( model ); + + model = toModel( "log4j:log4j:1.2.8" ); + addModel( model ); + + model = toModel( "javax.resource:connector:1.0" ); + addModel( model ); + + model = toModel( "javax.security:jaas:1.0.01" ); + addModel( model ); + + model = toModel( "javax.sql:jdbc-stdext:2.0" ); + addModel( model ); + + model = toModel( "ant:ant:1.6" ); + addModel( model ); + + model = toModel( "jpox:jpox-dbcp:1.1.1" ); + addModel( model ); + + model = toModel( "commons-dbcp:commons-dbcp:1.2" ); + addModel( model ); + + model = toModel( "commons-pool:commons-pool:1.2" ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); + model.addDependency( toDependency( "xerces:xerces:2.0.2::jar" ) ); + addModel( model ); + + model = toModel( "hsqldb:hsqldb:1.7.3.0" ); + addModel( model ); + + model = toModel( "jpox:jpox:1.1.7" ); + model.setParentProject( toParent( "jpox:jpox-parent:1.1.7" ) ); + model.addDependency( toDependency( "log4j:log4j:1.2.8::jar" ) ); + model.addDependency( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); + model.addDependency( toDependency( "javax.resource:connector:1.0::jar" ) ); + model.addDependency( toDependency( "javax.transaction:jta:1.0.1B::jar" ) ); + dep = toDependency( "ant:ant:1.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "jpox:jpox-parent:1.1.7" ); + addModel( model ); + + model = toModel( "javax.transaction:jta:1.0.1B" ); + addModel( model ); + + model = toModel( "org.apache.derby:derby:10.1.3.1" ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2::jar", "compile" ) ); + model.addDependency( toDependency( "xmlunit:xmlunit:1.0::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); + model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-components:1.1.7" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "xmlunit:xmlunit:1.0" ); + addModel( model ); + + model = toModel( "hsqldb:hsqldb:1.8.0.7" ); + addModel( model ); + + model = toModel( "org.apache.derby:derbytools:10.1.3.1" ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-converter:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-artifact-converter:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.shared:maven-model-converter:2.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-i18n:1.0-beta-6::jar" ) ); + model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.7::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-i18n:1.0-beta-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.4" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-components:1.1.4" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-core:1.0-alpha-2-SNAPSHOT-SNAPSHOT" ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-core-consumers:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-database-consumers:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-artifact-reports:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-indexer:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.lucene:lucene-core:2.0.0::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); + model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.lucene:lucene-core:2.0.0" ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-lucene-consumers:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-indexer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-plexus-application:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-web-standalone:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT::war" ) ); + model.addProperty( "archivaVersion", "1.0-alpha-2-SNAPSHOT" ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-web-standalone:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-web:1.0-alpha-2-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-proxy:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + dep = toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ); + addExclusion( dep, "org.codehaus.plexus:plexus-container-default" ); + model.addDependency( dep ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); + model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-scheduled:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database-consumers:1.0-alpha-2-SNAPSHOT::jar", "test" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.7::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "backport-util-concurrent:backport-util-concurrent:3.0::jar" ) ); + addModel( model ); + + model = toModel( "backport-util-concurrent:backport-util-concurrent:3.0" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.6" ) ); + model.addDependency( toDependency( "quartz:quartz:1.4.5::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.2::jar" ) ); + addModel( model ); + + model = toModel( "quartz:quartz:1.4.5" ); + addModel( model ); + + model = toModel( "commons-logging:commons-logging:1.0.2" ); + dep = toDependency( "log4j:log4j:1.1.3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "logkit:logkit:1.0.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "log4j:log4j:1.1.3" ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-security:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-web:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.derby:derby:10.1.3.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); + dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); + addExclusion( dep, "com.bea.xml:jsr173-ri" ); + model.addDependency( dep ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.woodstox:wstx-asl:3.2.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); + dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); + addExclusion( dep, "com.bea.xml:jsr173-ri" ); + model.addDependency( dep ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + dep = toDependency( "stax:stax:1.1.1-dev::jar", "test" ); + addExclusion( dep, "xmlbeans:xmlbeans-jsr173-api" ); + model.addDependency( dep ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-jdo:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-users:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-=keys=:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-memory:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-keys:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-jdo:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authorization-rbac:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-cached:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1::war" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "xalan:xalan:2.7.0::jar" ) ); + model.addDependencyManagement( toDependency( "xml-apis:xml-apis:1.3.03::jar" ) ); + model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependencyManagement( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); + model.addDependencyManagement( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + model.addDependencyManagement( toDependency( "hsqldb:hsqldb:1.8.0.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.derby:derby:10.1.3.1::jar" ) ); + model.addProperty( "security.version", "1.0-alpha-1" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-1::jar" ) ); + dep = toDependency( "commons-configuration:commons-configuration:1.3::jar" ); + addExclusion( dep, "commons-beanutils:commons-beanutils-core" ); + addExclusion( dep, "xerces:xerces" ); + addExclusion( dep, "xerces:xercesImpl" ); + addExclusion( dep, "xalan:xalan" ); + addExclusion( dep, "xml-apis:xml-apis" ); + addExclusion( dep, "servletapi:servletapi" ); + model.addDependency( dep ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.7.0::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry-providers:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-logging:1.0.2" ) ); + model.addDependency( toDependency( "log4j:log4j:1.2.8::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-logging-provider-test:1.0-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-logging:1.0.2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-logging-provider-test:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-logging:1.0.2" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-memory:1.0-alpha-1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authorization:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authorization:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-jdo:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users-providers:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); + model.addDependency( toDependency( "net.sf.ehcache:ehcache:1.2.4::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users-jdo:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); + dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); + addExclusion( dep, "com.bea.xml:jsr173-ri" ); + model.addDependency( dep ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + model.addDependency( toDependency( "woodstox:wstx-asl:3.2.0::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-utils:1.2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.5" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.5" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-common:1.0-alpha-1" ) ); + dep = toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ); + addExclusion( dep, "xerces:xercesImpl" ); + addExclusion( dep, "xerces:xmlParserAPIs" ); + model.addDependency( dep ); + dep = toDependency( "jpox:jpox:1.1.7::jar", "compile" ); + addExclusion( dep, "javax.sql:jdbc-stdext" ); + model.addDependency( dep ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-common:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "hsqldb:hsqldb:1.8.0.4" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1" ); + addModel( model ); + + model = toModel( "net.java.dev.stax-utils:stax-utils:20060502" ); + model.addDependency( toDependency( "com.bea.xml:jsr173-ri:1.0::jar" ) ); + addModel( model ); + + model = toModel( "com.bea.xml:jsr173-ri:1.0" ); + model.addDependency( toDependency( "javax.xml:jsr173:1.0::jar" ) ); + addModel( model ); + + model = toModel( "javax.xml:jsr173:1.0" ); + addModel( model ); + + model = toModel( "stax:stax-api:1.0.1" ); + addModel( model ); + + model = toModel( "woodstox:wstx-asl:3.2.0" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "org.codehaus.woodstox" ); + addModel( model ); + + model = toModel( "org.codehaus.woodstox:wstx-asl:3.2.0" ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.0::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-digest:1.0" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-jdo:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys-providers:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys-jdo:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); + dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); + addExclusion( dep, "com.bea.xml:jsr173-ri" ); + model.addDependency( dep ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + model.addDependency( toDependency( "woodstox:wstx-asl:3.2.0::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication-memory:1.0-alpha-1" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication-users:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication-providers:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication-=keys=:1.0-alpha-1" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication-keys:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authorization-rbac:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authorization-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-cached:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authorization-providers:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authorization:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-cached:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); + dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); + addExclusion( dep, "com.bea.xml:jsr173-ri" ); + model.addDependency( dep ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + dep = toDependency( "stax:stax:1.1.1-dev::jar", "test" ); + addExclusion( dep, "xmlbeans:xmlbeans-jsr173-api" ); + model.addDependency( dep ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1" ); + addModel( model ); + + model = toModel( "stax:stax:1.1.1-dev" ); + model.addDependency( toDependency( "xmlbeans:xmlbeans-jsr173-api:2.0-dev::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + addModel( model ); + + model = toModel( "xmlbeans:xmlbeans-jsr173-api:2.0-dev" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-xwork:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-users:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-keys:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-rbac:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "org.extremecomponents:extremecomponents:1.0.1::jar" ) ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils-bean-collections:1.7.0::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); + dep = toDependency( "org.codehaus.plexus:plexus-velocity:1.1.2::jar" ); + addExclusion( dep, "plexus:plexus-utils" ); + addExclusion( dep, "commons-logging:commons-logging-api" ); + model.addDependency( dep ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependency( toDependency( "taglibs:standard:1.1.2::jar" ) ); + model.addDependency( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependency( toDependency( "opensymphony:sitemesh:2.2.1::jar" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-xwork:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-integrations:1.0-alpha-1" ) ); + model.addDependencyManagement( toDependency( "taglibs:standard:1.1.2::jar" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-integrations:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "taglibs:standard:1.1.2" ); + addModel( model ); + + model = toModel( "javax.servlet:jstl:1.1.2" ); + model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); + addModel( model ); + + model = toModel( "javax.servlet:jsp-api:2.0" ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.12" ) ); + model.addDependency( toDependency( "org.easymock:easymock:2.2::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-17::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); + model.addDependency( toDependency( "opensymphony:xwork:1.2.1::jar" ) ); + model.addDependency( toDependency( "opensymphony:webwork:2.2.4::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + addModel( model ); + + model = toModel( "org.easymock:easymock:2.2" ); + addModel( model ); + + model = toModel( "opensymphony:xwork:1.2.1" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.rifers:rife-continuations:0.0.2::jar" ) ); + model.addDependency( toDependency( "opensymphony:oscore:2.2.4::jar" ) ); + model.addDependency( toDependency( "ognl:ognl:2.6.7::jar" ) ); + dep = toDependency( "org.springframework:spring-core:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-aop:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-beans:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-context:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-web:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "org.springframework:spring-mock:1.2.6::jar", "test" ) ); + dep = toDependency( "cglib:cglib:2.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependency( toDependency( "mockobjects:mockobjects-core:0.09::jar", "test" ) ); + model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + model.addDependency( toDependency( "easymock:easymockclassextension:1.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.rifers:rife-continuations:0.0.2" ); + addModel( model ); + + model = toModel( "opensymphony:oscore:2.2.4" ); + addModel( model ); + + model = toModel( "ognl:ognl:2.6.7" ); + addModel( model ); + + model = toModel( "org.springframework:spring-core:1.2.6" ); + model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + dep = toDependency( "log4j:log4j:1.2.9::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.1::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar", "provided" ) ); + addModel( model ); + + model = toModel( "org.springframework:spring-parent:1.2.6" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + dep = toDependency( "log4j:log4j:1.2.9::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "cglib:cglib:2.1_3::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "commons-attributes:commons-attributes-compiler:2.1::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "org.hibernate:hibernate:3.0.5::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "org.hibernate:hibernate-annotations:3.0beta2::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "struts:struts:1.2.7::jar" ); + addExclusion( dep, "servletapi:servletapi" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "jasperreports:jasperreports:1.0.3::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "freemarker:freemarker:2.3.4::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + model.addDependencyManagement( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependencyManagement( toDependency( "aopalliance:aopalliance:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "oro:oro:2.0.8::jar" ) ); + dep = toDependency( "commons-pool:commons-pool:1.2::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "com.jamonapi:jamon:1.0::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + model.addDependencyManagement( toDependency( "xdoclet:xjavadoc:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "javax.mail:mail:1.3.2::jar" ) ); + dep = toDependency( "velocity:velocity:1.4::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + model.addDependencyManagement( toDependency( "commons-collections:commons-collections:3.1::jar" ) ); + model.addDependencyManagement( toDependency( "xml-apis:xml-apis:1.0.b2::jar", "provided" ) ); + model.addDependencyManagement( toDependency( "javax.transaction:jta:1.0.1B::jar" ) ); + dep = toDependency( "jotm:jotm:2.0.10::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "net.sf.hibernate:hibernate:2.1.8::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "c3p0:c3p0:0.9.0.2::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "commons-dbcp:commons-dbcp:1.2.1::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "com.experlog:xapool:1.5.0::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); + dep = toDependency( "com.oracle.toplink:toplink:10.1.3::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "ojb:db-ojb:1.0.3::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "javax.jdo:jdo:2.0-20050809.1515::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "com.ibatis:ibatis-sqlmap:1.3.1::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "com.ibatis:ibatis2-sqlmap:2.1.5.582::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "javax.jms:jms:1.1::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "javax.ejb:ejb:2.0::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "javax.xml:jaxrpc-api:1.1::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "commons-httpclient:commons-httpclient:3.0-rc4::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "com.caucho:burlap:2.1.12::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "com.caucho:hessian:2.1.12::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + model.addDependencyManagement( toDependency( "javax.resource:connector:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "ehcache:ehcache:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "quartz:quartz:1.5.1::jar" ) ); + model.addDependencyManagement( toDependency( "com.servlets:cos:05Nov2002::jar" ) ); + model.addDependencyManagement( toDependency( "easymock:easymock:1.2_RC2_Java1.3::jar", "test" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:jstl:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "taglibs:standard:1.0.6::jar" ) ); + dep = toDependency( "javax.faces:jsf-api:1.1::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "velocity-tools:velocity-tools-generic:1.1::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "velocity-tools:velocity-tools-view:1.1::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "poi:poi:2.5.1-final-20040804::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "itext:itext:1.3::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "net.sourceforge.jexcelapi:jxl:2.5.7::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + addModel( model ); + + model = toModel( "log4j:log4j:1.2.9" ); + addModel( model ); + + model = toModel( "cglib:cglib:2.1_3" ); + addModel( model ); + + model = toModel( "commons-attributes:commons-attributes-compiler:2.1" ); + model.addDependency( toDependency( "commons-attributes:commons-attributes-api:2.1::jar" ) ); + addModel( model ); + + model = toModel( "commons-attributes:commons-attributes-api:2.1" ); + model.addDependency( toDependency( "ant:ant:1.5::jar" ) ); + model.addDependency( toDependency( "qdox:qdox:1.5::jar" ) ); + addModel( model ); + + model = toModel( "ant:ant:1.5" ); + addModel( model ); + + model = toModel( "qdox:qdox:1.5" ); + addModel( model ); + + model = toModel( "org.hibernate:hibernate:3.0.5" ); + addModel( model ); + + model = toModel( "org.hibernate:hibernate-annotations:3.0beta2" ); + addModel( model ); + + model = toModel( "struts:struts:1.2.7" ); + addModel( model ); + + model = toModel( "jasperreports:jasperreports:1.0.3" ); + addModel( model ); + + model = toModel( "freemarker:freemarker:2.3.4" ); + addModel( model ); + + model = toModel( "aopalliance:aopalliance:1.0" ); + addModel( model ); + + model = toModel( "oro:oro:2.0.8" ); + addModel( model ); + + model = toModel( "com.jamonapi:jamon:1.0" ); + addModel( model ); + + model = toModel( "xdoclet:xjavadoc:1.1" ); + addModel( model ); + + model = toModel( "javax.mail:mail:1.3.2" ); + model.addDependency( toDependency( "javax.activation:activation:1.0.2::jar", "compile" ) ); + addModel( model ); + + model = toModel( "velocity:velocity:1.4" ); + model.addDependency( toDependency( "velocity:velocity-dep:1.4::jar", "runtime" ) ); + addModel( model ); + + model = toModel( "velocity:velocity-dep:1.4" ); + addModel( model ); + + model = toModel( "jotm:jotm:2.0.10" ); + addModel( model ); + + model = toModel( "c3p0:c3p0:0.9.0.2" ); + addModel( model ); + + model = toModel( "commons-dbcp:commons-dbcp:1.2.1" ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); + model.addDependency( toDependency( "commons-pool:commons-pool:1.2::jar" ) ); + dep = toDependency( "javax.sql:jdbc-stdext:2.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); + model.addDependency( toDependency( "xerces:xerces:2.0.2::jar" ) ); + addModel( model ); + + model = toModel( "com.experlog:xapool:1.5.0" ); + addModel( model ); + + model = toModel( "com.oracle.toplink:toplink:10.1.3" ); + addModel( model ); + + model = toModel( "ojb:db-ojb:1.0.3" ); + addModel( model ); + + model = toModel( "javax.jdo:jdo:2.0-20050809.1515" ); + addModel( model ); + + model = toModel( "com.ibatis:ibatis-sqlmap:1.3.1" ); + addModel( model ); + + model = toModel( "com.ibatis:ibatis2-sqlmap:2.1.5.582" ); + addModel( model ); + + model = toModel( "javax.jms:jms:1.1" ); + addModel( model ); + + model = toModel( "javax.ejb:ejb:2.0" ); + addModel( model ); + + model = toModel( "javax.xml:jaxrpc-api:1.1" ); + addModel( model ); + + model = toModel( "commons-httpclient:commons-httpclient:3.0-rc4" ); + addModel( model ); + + model = toModel( "com.caucho:burlap:2.1.12" ); + addModel( model ); + + model = toModel( "com.caucho:hessian:2.1.12" ); + addModel( model ); + + model = toModel( "ehcache:ehcache:1.1" ); + addModel( model ); + + model = toModel( "quartz:quartz:1.5.1" ); + addModel( model ); + + model = toModel( "com.servlets:cos:05Nov2002" ); + addModel( model ); + + model = toModel( "easymock:easymock:1.2_RC2_Java1.3" ); + addModel( model ); + + model = toModel( "javax.servlet:jstl:1.0" ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar", "provided" ) ); + addModel( model ); + + model = toModel( "taglibs:standard:1.0.6" ); + addModel( model ); + + model = toModel( "javax.faces:jsf-api:1.1" ); + addModel( model ); + + model = toModel( "velocity-tools:velocity-tools-generic:1.1" ); + addModel( model ); + + model = toModel( "velocity-tools:velocity-tools-view:1.1" ); + addModel( model ); + + model = toModel( "poi:poi:2.5.1-final-20040804" ); + addModel( model ); + + model = toModel( "itext:itext:1.3" ); + addModel( model ); + + model = toModel( "net.sourceforge.jexcelapi:jxl:2.5.7" ); + addModel( model ); + + model = toModel( "org.springframework:spring-aop:1.2.6" ); + model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); + model.addDependency( toDependency( "org.springframework:spring-beans:1.2.6::jar" ) ); + model.addDependency( toDependency( "aopalliance:aopalliance:1.0::jar" ) ); + model.addDependency( toDependency( "oro:oro:2.0.8::jar" ) ); + dep = toDependency( "commons-pool:commons-pool:1.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "commons-attributes:commons-attributes-compiler:2.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "com.jamonapi:jamon:1.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "cglib:cglib:2.1_3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "xdoclet:xjavadoc:1.1::jar", "test" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + addModel( model ); + + model = toModel( "org.springframework:spring-beans:1.2.6" ); + model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); + model.addDependency( toDependency( "org.springframework:spring-core:1.2.6::jar" ) ); + dep = toDependency( "cglib:cglib:2.1_3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependency( toDependency( "javax.mail:mail:1.3.2::jar", "test" ) ); + model.addDependency( toDependency( "org.hibernate:hibernate:3.0.5::jar", "test" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.springframework:spring-context:1.2.6" ); + model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); + model.addDependency( toDependency( "org.springframework:spring-aop:1.2.6::jar" ) ); + dep = toDependency( "velocity:velocity:1.4::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "freemarker:freemarker:2.3.4::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "jasperreports:jasperreports:1.0.3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "org.springframework:spring-web:1.2.6" ); + model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); + model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependency( toDependency( "javax.servlet:jstl:1.0::jar" ) ); + model.addDependency( toDependency( "org.springframework:spring-context:1.2.6::jar" ) ); + dep = toDependency( "log4j:log4j:1.2.9::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "struts:struts:1.2.7::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "com.servlets:cos:05Nov2002::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "taglibs:standard:1.0.6::jar" ) ); + dep = toDependency( "javax.faces:jsf-api:1.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "org.springframework:spring-mock:1.2.6" ); + model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); + dep = toDependency( "org.springframework:spring-jdbc:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-web:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.springframework:spring-jdbc:1.2.6" ); + addModel( model ); + + model = toModel( "cglib:cglib:2.1" ); + model.addDependency( toDependency( "asm:asm:1.5.3::jar" ) ); + model.addDependency( toDependency( "asm:asm-util:1.3.4::jar" ) ); + model.addDependency( toDependency( "aspectwerkz:aspectwerkz-core:0.8.1::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "asm:asm:1.5.3" ); + addModel( model ); + + model = toModel( "asm:asm-util:1.3.4" ); + addModel( model ); + + model = toModel( "aspectwerkz:aspectwerkz-core:0.8.1" ); + addModel( model ); + + model = toModel( "easymock:easymockclassextension:1.1" ); + addModel( model ); + + model = toModel( "opensymphony:webwork:2.2.4" ); + model.addDependency( toDependency( "opensymphony:xwork:1.2.1::jar" ) ); + dep = toDependency( "opensymphony:xwork-tiger:1.2.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "freemarker:freemarker:2.3.4::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + dep = toDependency( "commons-lang:commons-lang:2.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "dwr:dwr:1.1-beta-3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "velocity:velocity:1.4::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "velocity-tools:velocity-tools:1.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "commons-fileupload:commons-fileupload:1.1.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "servlets.com:cos:05Nov2002::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "opensymphony:pell-multipart:2.1.5::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "opensymphony:sitemesh:2.2.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "jetty:org.mortbay.jetty:5.1.4::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "eclipse:jdtcore:3.1.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "jasperreports:jasperreports:1.1.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "jfree:jfreechart:1.0.0::jar" ); + addExclusion( dep, "gnujaxp:gnujaxp" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.apache.struts.tiles:tiles-core:0.2-SNAPSHOT::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "commons-digester:commons-digester:1.7::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "portlet-api:portlet-api:1.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.apache.pluto:pluto:1.0.1-rc4::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-10-SNAPSHOT::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "picocontainer:picocontainer:1.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "picocontainer:picocontainer-gems:1.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "nanocontainer:nanocontainer:1.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "nanocontainer:nanocontainer-nanowar:1.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-beans:1.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-core:1.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-context:1.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-web:1.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-mock:1.2::jar", "compile" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xpp3:xpp3:1.1.3.4-RC8::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "junit:junit:3.8.1::jar", "compile" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); + model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + model.addDependency( toDependency( "easymock:easymockclassextension:1.1::jar", "test" ) ); + model.addDependency( toDependency( "jmock:jmock-cglib:1.0.1::jar", "test" ) ); + model.addDependency( toDependency( "mockobjects:mockobjects-core:0.09::jar", "test" ) ); + model.addDependency( toDependency( "mockobjects:mockobjects-jdk1.3:0.09::jar", "test" ) ); + model.addDependency( toDependency( "mockobjects:mockobjects-alt-jdk1.3:0.09::jar", "test" ) ); + model.addDependency( toDependency( "mockobjects:mockobjects-alt-jdk1.3-j2ee1.3:0.09::jar", "test" ) ); + model.addDependency( toDependency( "mockobjects:mockobjects-jdk1.3-j2ee1.3:0.09::jar", "test" ) ); + addModel( model ); + + model = toModel( "opensymphony:xwork-tiger:1.2.1" ); + addModel( model ); + + model = toModel( "commons-lang:commons-lang:2.0" ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "dwr:dwr:1.1-beta-3" ); + addModel( model ); + + model = toModel( "velocity-tools:velocity-tools:1.1" ); + addModel( model ); + + model = toModel( "commons-fileupload:commons-fileupload:1.1.1" ); + addModel( model ); + + model = toModel( "servlets.com:cos:05Nov2002" ); + addModel( model ); + + model = toModel( "opensymphony:pell-multipart:2.1.5" ); + addModel( model ); + + model = toModel( "opensymphony:sitemesh:2.2.1" ); + addModel( model ); + + model = toModel( "jetty:org.mortbay.jetty:5.1.4" ); + addModel( model ); + + model = toModel( "eclipse:jdtcore:3.1.0" ); + addModel( model ); + + model = toModel( "jasperreports:jasperreports:1.1.0" ); + addModel( model ); + + model = toModel( "jfree:jfreechart:1.0.0" ); + addModel( model ); + + model = toModel( "org.apache.struts.tiles:tiles-core:0.2-SNAPSHOT" ); + addModel( model ); + + model = toModel( "commons-digester:commons-digester:1.7" ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.6::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "portlet-api:portlet-api:1.0" ); + addModel( model ); + + model = toModel( "org.apache.pluto:pluto:1.0.1-rc4" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-10-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0.6-SNAPSHOT" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1::jar" ) ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0.6-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.8-SNAPSHOT" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "picocontainer:picocontainer:1.2" ); + addModel( model ); + + model = toModel( "picocontainer:picocontainer-gems:1.2" ); + addModel( model ); + + model = toModel( "nanocontainer:nanocontainer:1.0" ); + addModel( model ); + + model = toModel( "nanocontainer:nanocontainer-nanowar:1.0" ); + addModel( model ); + + model = toModel( "org.springframework:spring-beans:1.2" ); + addModel( model ); + + model = toModel( "org.springframework:spring-core:1.2" ); + addModel( model ); + + model = toModel( "org.springframework:spring-context:1.2" ); + addModel( model ); + + model = toModel( "org.springframework:spring-web:1.2" ); + addModel( model ); + + model = toModel( "org.springframework:spring-mock:1.2" ); + addModel( model ); + + model = toModel( "xpp3:xpp3:1.1.3.4-RC8" ); + addModel( model ); + + model = toModel( "jmock:jmock-cglib:1.0.1" ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar" ) ); + model.addDependency( toDependency( "cglib:cglib-full:2.0::jar" ) ); + addModel( model ); + + model = toModel( "cglib:cglib-full:2.0" ); + addModel( model ); + + model = toModel( "mockobjects:mockobjects-jdk1.3:0.09" ); + addModel( model ); + + model = toModel( "mockobjects:mockobjects-alt-jdk1.3:0.09" ); + addModel( model ); + + model = toModel( "mockobjects:mockobjects-alt-jdk1.3-j2ee1.3:0.09" ); + addModel( model ); + + model = toModel( "mockobjects:mockobjects-jdk1.3-j2ee1.3:0.09" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-sender:1.0-alpha-6" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-mail-sender:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-senders:1.0-alpha-6" ) ); + model.addDependency( toDependency( "javax.mail:mail:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-test:1.0-alpha-6::jar", "test" ) ); + dep = toDependency( "org.codehaus.plexus:plexus-naming:1.0-alpha-1::jar", "test" ); + addExclusion( dep, "geronimo-spec:geronimo-spec-javamail" ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-mail-senders:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-sender:1.0-alpha-6" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); + addModel( model ); + + model = toModel( "javax.mail:mail:1.4" ); + model.addDependency( toDependency( "javax.activation:activation:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-mail-sender-test:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-senders:1.0-alpha-6" ) ); + model.addDependency( toDependency( "dumbster:dumbster:1.5::jar" ) ); + addModel( model ); + + model = toModel( "dumbster:dumbster:1.5" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-naming:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.6" ) ); + model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); + model.addDependency( toDependency( "directory-naming:naming-java:0.8::jar" ) ); + model.addDependency( toDependency( "directory-naming:naming-factory:0.8::jar" ) ); + model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.2.1::jar" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.7.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "directory-naming:naming-core:0.8" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + addModel( model ); + + model = toModel( "directory-naming:naming-java:0.8" ); + model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + addModel( model ); + + model = toModel( "directory-naming:naming-factory:0.8" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); + model.addDependency( toDependency( "geronimo-spec:geronimo-spec-javamail:1.3.1-rc1::jar" ) ); + addModel( model ); + + model = toModel( "geronimo-spec:geronimo-spec-javamail:1.3.1-rc1" ); + addModel( model ); + + model = toModel( "hsqldb:hsqldb:1.7.1" ); + addModel( model ); + + model = toModel( "org.extremecomponents:extremecomponents:1.0.1" ); + dep = toDependency( "avalon-framework:avalon-framework:4.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "batik:batik:1.5-fop-0.20-5::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.7.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.0::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.0::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + dep = toDependency( "fop:fop:0.20.5::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + dep = toDependency( "poi:poi:2.5.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "servletapi:servletapi:2.3::jar", "provided" ) ); + model.addDependency( toDependency( "taglibs:standard:1.0.2::jar" ) ); + dep = toDependency( "xalan:xalan:2.5.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xerces:xercesImpl:2.6.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xml-apis:xml-apis:2.0.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "avalon-framework:avalon-framework:4.0" ); + addModel( model ); + + model = toModel( "batik:batik:1.5-fop-0.20-5" ); + addModel( model ); + + model = toModel( "commons-collections:commons-collections:3.0" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "fop:fop:0.20.5" ); + addModel( model ); + + model = toModel( "poi:poi:2.5.1" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "poi" ); + model.getRelocation().setArtifactId( "poi" ); + model.getRelocation().setVersion( "2.5.1-final-20040804" ); + addModel( model ); + + model = toModel( "taglibs:standard:1.0.2" ); + addModel( model ); + + model = toModel( "xerces:xercesImpl:2.6.1" ); + addModel( model ); + + model = toModel( "commons-beanutils:commons-beanutils-bean-collections:1.7.0" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-velocity:1.1.2" ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7::jar", "compile" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); + model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar", "compile" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar", "compile" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging-api:1.0.4::jar", "compile" ) ); + model.addDependency( toDependency( "velocity:velocity:1.4::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-integrations:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "taglibs:standard:1.1.2::jar" ) ); + model.addDependency( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-xwork:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "xml-apis:xml-apis:1.3.03" ); + model.setParentProject( toParent( "org.apache:apache:1" ) ); + addModel( model ); + + model = toModel( "org.apache:apache:1" ); + addModel( model ); + + model = toModel( "org.codehaus.woodstox:wstx-asl:3.2.1" ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-signature-consumers:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-model:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-project:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-test:2.0.5::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-profile:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-settings:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact-test:2.0.5" ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-profile:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.shared:maven-app-configuration-model:1.0" ); + model.setParentProject( toParent( "org.apache.maven.shared:maven-app-configuration:1.0" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.shared:maven-app-configuration:1.0" ); + model.setParentProject( toParent( "org.apache.maven.shared:maven-shared-components:7" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.shared:maven-app-configuration-web:1.0" ); + model.setParentProject( toParent( "org.apache.maven.shared:maven-app-configuration:1.0" ) ); + model.addDependency( toDependency( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-project:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar", "runtime" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-project:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-test:2.0.4::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-profile:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-settings:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact-test:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact-manager:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-7::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-repository-metadata:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-profile:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-appserver-host:2.0-alpha-8" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-appserver:2.0-alpha-8" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); + model.addDependency( toDependency( "mx4j:mx4j:3.0.1::jar" ) ); + model.addDependency( toDependency( "mx4j:mx4j-remote:3.0.1::jar" ) ); + model.addDependency( toDependency( "org.livetribe:livetribe-slp:1.0.2::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-appserver:2.0-alpha-8" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.11" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); + addModel( model ); + + model = toModel( "mx4j:mx4j:3.0.1" ); + addModel( model ); + + model = toModel( "mx4j:mx4j-remote:3.0.1" ); + addModel( model ); + + model = toModel( "org.livetribe:livetribe-slp:1.0.2" ); + model.setParentProject( toParent( "org.livetribe:livetribe:1.0" ) ); + model.addDependency( toDependency( "backport-util-concurrent:backport-util-concurrent:2.2::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.livetribe:livetribe:1.0" ); + addModel( model ); + + model = toModel( "backport-util-concurrent:backport-util-concurrent:2.2" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-appserver-service-jetty:2.0-alpha-8" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-appserver-services:2.0-alpha-8" ) ); + model.addDependency( toDependency( "ant:ant:1.6.2::jar" ) ); + model.addDependency( toDependency( "jetty:org.mortbay.jetty:5.1.10::jar" ) ); + model.addDependency( toDependency( "tomcat:jasper-compiler:5.5.15::jar" ) ); + model.addDependency( toDependency( "tomcat:jasper-runtime:5.5.15::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar" ) ); + model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar" ) ); + dep = toDependency( "commons-el:commons-el:1.0::jar", "runtime" ); + addExclusion( dep, "log4j:log4j" ); + addExclusion( dep, "commons-logging:commons-logging" ); + addExclusion( dep, "logkit:logkit" ); + model.addDependency( dep ); + model.addDependency( toDependency( "jetty:org.mortbay.jetty.plus:5.1.10::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging-api:1.0.4::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.derby:derby:10.1.3.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-appserver-services:2.0-alpha-8" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-appserver:2.0-alpha-8" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-appserver-host:2.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "ant:ant:1.6.2" ); + dep = toDependency( "xerces:xerces-impl:2.6.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xml-apis:xml-apis:2.6.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "xerces:xerces-impl:2.6.2" ); + addModel( model ); + + model = toModel( "xml-apis:xml-apis:2.6.2" ); + addModel( model ); + + model = toModel( "jetty:org.mortbay.jetty:5.1.10" ); + addModel( model ); + + model = toModel( "tomcat:jasper-compiler:5.5.15" ); + model.setParentProject( toParent( "tomcat:tomcat-parent:5.5.15" ) ); + model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar" ) ); + model.addDependency( toDependency( "ant:ant:1.6.5::jar" ) ); + addModel( model ); + + model = toModel( "tomcat:tomcat-parent:5.5.15" ); + model.setParentProject( toParent( "org.apache:apache:3" ) ); + model.addDependencyManagement( toDependency( "commons-logging:commons-logging-api:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "ant:ant:1.6.5" ); + dep = toDependency( "xerces:xerces-impl:2.6.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xml-apis:xml-apis:2.6.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "tomcat:jasper-runtime:5.5.15" ); + model.setParentProject( toParent( "tomcat:tomcat-parent:5.5.15" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar" ) ); + model.addDependency( toDependency( "commons-el:commons-el:1.0::jar" ) ); + addModel( model ); + + model = toModel( "commons-el:commons-el:1.0" ); + model.addDependency( toDependency( "servletapi:servletapi:2.4-20040521::jar", "provided" ) ); + model.addDependency( toDependency( "jspapi:jsp-api:2.0-20040521::jar", "provided" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + addModel( model ); + + model = toModel( "servletapi:servletapi:2.4-20040521" ); + addModel( model ); + + model = toModel( "jspapi:jsp-api:2.0-20040521" ); + addModel( model ); + + model = toModel( "jetty:org.mortbay.jetty.plus:5.1.10" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-cli:1.1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-tools:1.0.8" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-14::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + dep = toDependency( "commons-cli:commons-cli:1.0::jar" ); + addExclusion( dep, "commons-lang:commons-lang" ); + addExclusion( dep, "commons-logging:commons-logging" ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-tools:1.0.8" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-14::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-14" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-14" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-13::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5::jar" ) ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-14" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-13::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-13" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0.7-alpha-3" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0.7-alpha-3" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-13::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + addModel( model ); + + model = toModel( "commons-cli:commons-cli:1.0" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:1.0::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-lang:commons-lang:1.0" ); + model.addDependency( toDependency( "junit:junit:3.7::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-command-line:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.4" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-naming:1.0-alpha-3" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); + model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); + model.addDependency( toDependency( "directory-naming:naming-java:0.8::jar" ) ); + model.addDependency( toDependency( "directory-naming:naming-factory:0.8::jar" ) ); + model.addDependency( toDependency( "directory-naming:naming-config:0.8::jar" ) ); + model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.2.1::jar" ) ); + model.addDependency( toDependency( "commons-pool:commons-pool:1.2::jar" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.7.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "directory-naming:naming-config:0.8" ); + model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); + model.addDependency( toDependency( "directory-naming:naming-factory:0.8::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:1.0.1::jar" ) ); + model.addDependency( toDependency( "commons-digester:commons-digester:1.4.1::jar" ) ); + model.addDependency( toDependency( "directory-naming:naming-java:0.8::jar" ) ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.6.1::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.1::jar" ) ); + model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.0::jar" ) ); + model.addDependency( toDependency( "commons-pool:commons-pool:1.0.1::jar" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.7.1::jar" ) ); + addModel( model ); + + model = toModel( "commons-lang:commons-lang:1.0.1" ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-digester:commons-digester:1.4.1" ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.6::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-beanutils:commons-beanutils:1.6.1" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-dbcp:commons-dbcp:1.0" ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:1.0-b1::jar" ) ); + model.addDependency( toDependency( "commons-pool:commons-pool:1.0::jar" ) ); + model.addDependency( toDependency( "jdbc:jdbc:2.0::jar" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar" ) ); + addModel( model ); + + model = toModel( "commons-lang:commons-lang:1.0-b1" ); + addModel( model ); + + model = toModel( "commons-pool:commons-pool:1.0" ); + addModel( model ); + + model = toModel( "jdbc:jdbc:2.0" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "javax.sql" ); + model.getRelocation().setArtifactId( "jdbc-stdext" ); + model.getRelocation().setVersion( "2.0" ); + addModel( model ); + + model = toModel( "commons-pool:commons-pool:1.0.1" ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-simple:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus.webdav:plexus-webdav-providers-parent:1.0-alpha-2" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); + model.addDependency( toDependency( "it.could:webdav:0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-providers-parent:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus.webdav:plexus-webdav-parent:1.0-alpha-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-api:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-test:1.0-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-parent:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.12" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-api:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus.webdav:plexus-webdav-parent:1.0-alpha-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-test:1.0-alpha-2" ); + addModel( model ); + + model = toModel( "it.could:webdav:0.4" ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar", "runtime" ) ); + addModel( model ); + + } +} diff --git a/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaXmlToolsDependencyGraphTest.java b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaXmlToolsDependencyGraphTest.java new file mode 100644 index 000000000..6733b8900 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaXmlToolsDependencyGraphTest.java @@ -0,0 +1,86 @@ +package org.apache.maven.archiva.dependency.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.dependency.DependencyGraphFactory; +import org.apache.maven.archiva.model.DependencyScope; +import org.apache.maven.archiva.model.VersionedReference; + +import java.util.ArrayList; +import java.util.List; + +/** + * ArchivaXmlToolsDependencyGraphTest + * + * DependencyGraphTest for testing org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT + * + * Generated by archivadev:generate-dependency-tests plugin + * @version $Id$ + */ +public class ArchivaXmlToolsDependencyGraphTest + extends AbstractDependencyGraphFactoryTestCase +{ + public void testResolvedDepsToNodes() + throws GraphTaskException + { + MemoryRepositoryDependencyGraphBuilder graphBuilder = + new MemoryRepositoryDependencyGraphBuilder(); + MemoryRepository repository = new ArchivaXmlToolsMemoryRepository(); + graphBuilder.setMemoryRepository( repository ); + + // Create the factory, and add the test resolver. + DependencyGraphFactory factory = new DependencyGraphFactory(); + factory.setGraphBuilder( graphBuilder ); + factory.setDesiredScope( DependencyScope.TEST ); + + // Get the model to resolve from + VersionedReference rootRef = toVersionedReference( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT"); + + // Perform the resolution. + DependencyGraph graph = factory.getGraph( rootRef ); + + // Test the results. + assertNotNull( "Graph shouldn't be null.", graph ); + + String expectedRootRef = "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT"; + List expectedNodes = new ArrayList(); + + // Check for all nodes, regardless of scope. + expectedNodes.clear(); + expectedNodes.add( "commons-collections:commons-collections:3.2::jar" ); + expectedNodes.add( "commons-lang:commons-lang:2.2::jar" ); + expectedNodes.add( "dom4j:dom4j:1.6.1::jar" ); + expectedNodes.add( "jaxen:jaxen:1.1::jar" ); + expectedNodes.add( "junit:junit:3.8.1::jar" ); + expectedNodes.add( "log4j:log4j:1.2.8::jar" ); + expectedNodes.add( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-utils:1.4::jar" ); + expectedNodes.add( "org.slf4j:slf4j-api:1.2::jar" ); + expectedNodes.add( "org.slf4j:slf4j-log4j12:1.2::jar" ); + expectedNodes.add( "xerces:xercesImpl:2.6.2::jar" ); + expectedNodes.add( "xml-apis:xml-apis:1.0.b2::jar" ); + + assertGraph( graph, expectedRootRef, expectedNodes ); + } + +} diff --git a/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaXmlToolsMemoryRepository.java b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaXmlToolsMemoryRepository.java new file mode 100644 index 000000000..3fd53ce76 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ArchivaXmlToolsMemoryRepository.java @@ -0,0 +1,3469 @@ +package org.apache.maven.archiva.dependency.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.model.ArchivaProjectModel; +import org.apache.maven.archiva.model.Dependency; +import org.apache.maven.archiva.model.VersionedReference; + +/** + * ArchivaXmlToolsMemoryRepository + * + * MemoryRepository for testing org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT + * + * Generated by archivadev:generate-dependency-tests plugin + * @version $Id$ + */ +public class ArchivaXmlToolsMemoryRepository + extends AbstractMemoryRepository +{ + public void initialize() + { + ArchivaProjectModel model; + Dependency dep; + + model = toModel( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); + dep = toDependency( "dom4j:dom4j:1.6.1::jar" ); + addExclusion( dep, "xom:xom" ); + model.addDependency( dep ); + dep = toDependency( "jaxen:jaxen:1.1::jar" ); + addExclusion( dep, "jdom:jdom" ); + addExclusion( dep, "xom:xom" ); + model.addDependency( dep ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar" ) ); + model.addDependencyManagement( toDependency( "javax.activation:activation:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-applet:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-artifact-converter:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-artifact-reports:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-converter:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-core:1.0-alpha-2-SNAPSHOT-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-core-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-database-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-indexer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-lucene-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-plexus-application:1.0-alpha-2-SNAPSHOT::plexus-application" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-policies:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-proxy:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-report-manager:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-scheduled:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-security:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-signature-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-transaction:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT::war" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); + model.addDependencyManagement( toDependency( "commons-io:commons-io:1.2::jar" ) ); + model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependencyManagement( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + model.addDependencyManagement( toDependency( "commons-logging:commons-logging-api:1.0.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.derby:derby:10.1.3.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.derby:derbytools:10.1.3.1::jar" ) ); + model.addDependencyManagement( toDependency( "dom4j:dom4j:1.6.1::jar" ) ); + model.addDependencyManagement( toDependency( "easymock:easymock:1.2_Java1.3::jar" ) ); + model.addDependencyManagement( toDependency( "hsqldb:hsqldb:1.8.0.7::jar" ) ); + model.addDependencyManagement( toDependency( "jaxen:jaxen:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); + model.addDependencyManagement( toDependency( "jdom:jdom:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "jpox:jpox:1.1.7::jar" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:jsp-api:2.0::jar" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); + model.addDependencyManagement( toDependency( "log4j:log4j:1.2.8::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.lucene:lucene-core:2.0.0::jar" ) ); + model.addDependencyManagement( toDependency( "javax.mail:mail:1.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-project:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-repository-metadata:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-app-configuration-web:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-model-converter:2.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-appserver-host:2.0-alpha-8::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-appserver-service-jetty:2.0-alpha-8::plexus-service" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-cli:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-command-line:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-i18n:1.0-beta-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-naming:1.0-alpha-3::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1::war" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-simple:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:servlet-api:2.4::jar" ) ); + model.addDependencyManagement( toDependency( "opensymphony:sitemesh:2.2.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar" ) ); + model.addDependencyManagement( toDependency( "taglibs:standard:1.1.2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "opensymphony:webwork:2.2.4::jar" ) ); + model.addDependencyManagement( toDependency( "xmlunit:xmlunit:1.0::jar" ) ); + model.addProperty( "wagon.version", "1.0-beta-2" ); + model.addProperty( "redback.version", "1.0-alpha-1" ); + model.addProperty( "maven.version", "2.0.5" ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "javax.activation:activation:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-applet:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-artifact-converter:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-artifact-reports:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-converter:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-core:1.0-alpha-2-SNAPSHOT-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-core-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-database-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-indexer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-lucene-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-plexus-application:1.0-alpha-2-SNAPSHOT::plexus-application" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-policies:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-proxy:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-report-manager:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-scheduled:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-security:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-signature-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-transaction:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT::war" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); + model.addDependencyManagement( toDependency( "commons-io:commons-io:1.2::jar" ) ); + model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependencyManagement( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + model.addDependencyManagement( toDependency( "commons-logging:commons-logging-api:1.0.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.derby:derby:10.1.3.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.derby:derbytools:10.1.3.1::jar" ) ); + model.addDependencyManagement( toDependency( "dom4j:dom4j:1.6.1::jar" ) ); + model.addDependencyManagement( toDependency( "easymock:easymock:1.2_Java1.3::jar" ) ); + model.addDependencyManagement( toDependency( "hsqldb:hsqldb:1.8.0.7::jar" ) ); + model.addDependencyManagement( toDependency( "jaxen:jaxen:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); + model.addDependencyManagement( toDependency( "jdom:jdom:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "jpox:jpox:1.1.7::jar" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:jsp-api:2.0::jar" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); + model.addDependencyManagement( toDependency( "log4j:log4j:1.2.8::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.lucene:lucene-core:2.0.0::jar" ) ); + model.addDependencyManagement( toDependency( "javax.mail:mail:1.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-project:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-repository-metadata:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-app-configuration-web:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-model-converter:2.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-appserver-host:2.0-alpha-8::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-appserver-service-jetty:2.0-alpha-8::plexus-service" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-cli:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-command-line:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-i18n:1.0-beta-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-naming:1.0-alpha-3::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1::war" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-simple:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:servlet-api:2.4::jar" ) ); + model.addDependencyManagement( toDependency( "opensymphony:sitemesh:2.2.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar" ) ); + model.addDependencyManagement( toDependency( "taglibs:standard:1.1.2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "opensymphony:webwork:2.2.4::jar" ) ); + model.addDependencyManagement( toDependency( "xmlunit:xmlunit:1.0::jar" ) ); + model.addProperty( "wagon.version", "1.0-beta-2" ); + model.addProperty( "maven.version", "2.0.5" ); + model.addProperty( "redback.version", "1.0-alpha-1" ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-parent:5" ); + model.setParentProject( toParent( "org.apache:apache:3" ) ); + addModel( model ); + + model = toModel( "org.apache:apache:3" ); + addModel( model ); + + model = toModel( "junit:junit:3.8.1" ); + addModel( model ); + + model = toModel( "javax.activation:activation:1.1" ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-applet:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-web:1.0-alpha-2-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-web:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-artifact-converter:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-transaction:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.shared:maven-model-converter:2.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-repository-metadata:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-external:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + model.addDependencyManagement( toDependency( "classworlds:classworlds:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0.3" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0.3" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.4" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-utils:1.0.4" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "classworlds:classworlds:1.1-alpha-2" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-utils:1.1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-beta-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven:maven-parent:4" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-parent:4" ); + model.setParentProject( toParent( "org.apache:apache:3" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-provider-test:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-beta-2" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8" ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-beta-2" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-beta-2::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4" ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7::jar", "compile" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); + model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7" ); + model.setParentProject( toParent( "plexus:plexus-containers:1.0.2" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-containers:1.0.2" ); + model.setParentProject( toParent( "plexus:plexus-root:1.0.3" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-root:1.0.3" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-utils:1.0.2" ); + model.setParentProject( toParent( "plexus:plexus-root:1.0.3" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + model.addDependency( toDependency( "com.jcraft:jsch:0.1.27::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "com.jcraft:jsch:0.1.27" ); + dep = toDependency( "com.jcraft:jzlib:1.0.7::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "com.jcraft:jzlib:1.0.7" ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh-external:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-file:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-shared:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); + dep = toDependency( "plexus:plexus-jetty-httpd:1.0-beta-1::jar", "test" ); + addExclusion( dep, "plexus:plexus-container-default" ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-http-shared:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + model.addDependency( toDependency( "jtidy:jtidy:4aug2000r7-dev::jar" ) ); + addModel( model ); + + model = toModel( "jtidy:jtidy:4aug2000r7-dev" ); + addModel( model ); + + model = toModel( "xml-apis:xml-apis:1.0.b2" ); + addModel( model ); + + model = toModel( "plexus:plexus-jetty-httpd:1.0-beta-1" ); + model.setParentProject( toParent( "plexus:plexus-components:1.0" ) ); + model.addDependency( toDependency( "jetty:jetty:4.2.10::jar" ) ); + model.addDependency( toDependency( "servletapi:servletapi:2.3::jar" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-components:1.0" ); + model.setParentProject( toParent( "plexus:plexus-root:1.0" ) ); + model.addDependency( toDependency( "plexus:plexus-container-default:1.0-alpha-2::jar" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-root:1.0" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-container-default:1.0-alpha-2" ); + addModel( model ); + + model = toModel( "jetty:jetty:4.2.10" ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar", "runtime" ) ); + addModel( model ); + + model = toModel( "javax.servlet:servlet-api:2.3" ); + addModel( model ); + + model = toModel( "servletapi:servletapi:2.3" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "javax.servlet" ); + model.getRelocation().setArtifactId( "servlet-api" ); + model.getRelocation().setVersion( "2.3" ); + addModel( model ); + + model = toModel( "easymock:easymock:1.2_Java1.3" ); + addModel( model ); + + model = toModel( "classworlds:classworlds:1.1" ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact-manager:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-transaction:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-digest:1.1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.12" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4.1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-components:1.1.12" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.10" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-20" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-20" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.9" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-19" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-19" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-utils:1.3" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.8" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-20" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "jmock:jmock:1.0.1" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-utils:1.4.1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.11" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.11" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-utils:1.4" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-22" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-22" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.shared:maven-model-converter:2.1" ); + model.setParentProject( toParent( "org.apache.maven.shared:maven-shared-components:7" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model-v3:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + model.addDependency( toDependency( "dom4j:dom4j:1.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.shared:maven-shared-components:7" ); + model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-model-v3:2.0" ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-model:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven:2.0.4" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-7::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-external:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-7::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-6::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-alpha-6" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon:1.0-alpha-6" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-6" ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-7" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); + model.addDependency( toDependency( "com.jcraft:jsch:0.1.24::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-alpha-6" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-6::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); + addModel( model ); + + model = toModel( "com.jcraft:jsch:0.1.24" ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh-external:1.0-alpha-6" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-file:1.0-alpha-7" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-6" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); + dep = toDependency( "plexus:plexus-jetty-httpd:1.0-beta-1::jar", "test" ); + addExclusion( dep, "plexus:plexus-container-default" ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "dom4j:dom4j:1.4" ); + model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); + model.addDependency( toDependency( "jaxen:jaxen:1.0-FCS::jar" ) ); + model.addDependency( toDependency( "saxpath:saxpath:1.0-FCS::jar" ) ); + model.addDependency( toDependency( "msv:msv:20020414::jar" ) ); + model.addDependency( toDependency( "relaxngDatatype:relaxngDatatype:20020414::jar" ) ); + model.addDependency( toDependency( "isorelax:isorelax:20020414::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "junitperf:junitperf:1.8::jar", "test" ) ); + model.addDependency( toDependency( "xerces:xerces:2.0.2::jar", "test" ) ); + model.addDependency( toDependency( "xalan:xalan:2.3.1::jar", "test" ) ); + model.addDependency( toDependency( "jtidy:jtidy:4aug2000r7-dev::jar", "test" ) ); + model.addDependency( toDependency( "pull-parser:pull-parser:2::jar", "test" ) ); + addModel( model ); + + model = toModel( "jaxen:jaxen:1.0-FCS" ); + addModel( model ); + + model = toModel( "saxpath:saxpath:1.0-FCS" ); + addModel( model ); + + model = toModel( "msv:msv:20020414" ); + addModel( model ); + + model = toModel( "relaxngDatatype:relaxngDatatype:20020414" ); + addModel( model ); + + model = toModel( "isorelax:isorelax:20020414" ); + addModel( model ); + + model = toModel( "junitperf:junitperf:1.8" ); + addModel( model ); + + model = toModel( "xerces:xerces:2.0.2" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "xerces" ); + model.getRelocation().setArtifactId( "xercesImpl" ); + addModel( model ); + + model = toModel( "xerces:xercesImpl:2.0.2" ); + addModel( model ); + + model = toModel( "xalan:xalan:2.3.1" ); + addModel( model ); + + model = toModel( "pull-parser:pull-parser:2" ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-artifact-reports:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-reporting:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-report-manager:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.7::jar", "test" ) ); + model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-reporting:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-report-manager:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-reporting:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); + dep = toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ); + addExclusion( dep, "xerces:xercesImpl" ); + addExclusion( dep, "xerces:xmlParserAPIs" ); + model.addDependency( dep ); + dep = toDependency( "jpox:jpox:1.1.7::jar", "compile" ); + addExclusion( dep, "javax.sql:jdbc-stdext" ); + model.addDependency( dep ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); + dep = toDependency( "commons-logging:commons-logging:1.0.4::jar" ); + addExclusion( dep, "logkit:logkit" ); + model.addDependency( dep ); + model.addDependency( toDependency( "log4j:log4j:1.2.8::jar" ) ); + model.addDependency( toDependency( "org.apache.derby:derby:10.1.3.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar", "test" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.7::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.derby:derbytools:10.1.3.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); + model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + addModel( model ); + + model = toModel( "commons-lang:commons-lang:2.2" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-22" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + addModel( model ); + + model = toModel( "javax.jdo:jdo2-api:2.0" ); + model.addDependency( toDependency( "geronimo-spec:geronimo-spec-jta:1.0.1B-rc2::jar" ) ); + dep = toDependency( "xerces:xerces:2.4.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xml-apis:xml-apis:1.0.b2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "geronimo-spec:geronimo-spec-jta:1.0.1B-rc2" ); + addModel( model ); + + model = toModel( "xerces:xerces:2.4.0" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "xerces" ); + model.getRelocation().setArtifactId( "xercesImpl" ); + addModel( model ); + + model = toModel( "xerces:xercesImpl:2.4.0" ); + addModel( model ); + + model = toModel( "commons-collections:commons-collections:3.2" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-io:commons-io:1.2" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-policies:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); + model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-policies:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus.cache:plexus-cache-providers-parent:1.0-alpha-2" ) ); + model.addDependency( toDependency( "net.sf.ehcache:ehcache:1.2.4::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.cache:plexus-cache-providers-parent:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus.cache:plexus-cache-parent:1.0-alpha-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-test:1.0-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.cache:plexus-cache-parent:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16::jar" ) ); + model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-components:1.1.9" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-16" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-16" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-16" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-lang:commons-lang:2.1" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus.cache:plexus-cache-parent:1.0-alpha-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.cache:plexus-cache-test:1.0-alpha-2" ); + addModel( model ); + + model = toModel( "net.sf.ehcache:ehcache:1.2.4" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar", "compile" ) ); + dep = toDependency( "org.hibernate:hibernate:3.2.0.cr3::jar", "test" ); + addExclusion( dep, "javax.transaction:jta" ); + addExclusion( dep, "javax.security:jacc" ); + model.addDependency( dep ); + dep = toDependency( "net.sf.hibernate:hibernate:2.1.8::jar", "test" ); + addExclusion( dep, "javax.transaction:jta" ); + addExclusion( dep, "javax.security:jacc" ); + model.addDependency( dep ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "test" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "httpunit:httpunit:1.6::jar", "test" ) ); + model.addDependency( toDependency( "commons-httpclient:commons-httpclient:3.0.1::jar", "test" ) ); + model.addDependency( toDependency( "com.cenqua.clover:clover:1.3.13::jar", "test" ) ); + model.addDependency( toDependency( "checkstyle:checkstyle:4.1::jar", "test" ) ); + model.addDependency( toDependency( "checkstyle:checkstyle-optional:4.1::jar", "test" ) ); + model.addDependency( toDependency( "commons-httpclient:commons-httpclient:3.0.1::jar", "test" ) ); + model.addDependency( toDependency( "httpunit:httpunit:1.6.1::jar", "test" ) ); + model.addDependency( toDependency( "httpunit:httpunit:1.6.1::jar", "test" ) ); + model.addProperty( "licenseFile", "${basedir}/tools/clover.license" ); + addModel( model ); + + model = toModel( "commons-logging:commons-logging:1.0.4" ); + dep = toDependency( "log4j:log4j:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "logkit:logkit:1.0.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + dep = toDependency( "avalon-framework:avalon-framework:4.1.3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "log4j:log4j:1.2.6" ); + addModel( model ); + + model = toModel( "logkit:logkit:1.0.1" ); + addModel( model ); + + model = toModel( "junit:junit:3.7" ); + addModel( model ); + + model = toModel( "avalon-framework:avalon-framework:4.1.3" ); + addModel( model ); + + model = toModel( "org.hibernate:hibernate:3.2.0.cr3" ); + addModel( model ); + + model = toModel( "net.sf.hibernate:hibernate:2.1.8" ); + addModel( model ); + + model = toModel( "javax.servlet:servlet-api:2.4" ); + addModel( model ); + + model = toModel( "httpunit:httpunit:1.6" ); + model.addDependency( toDependency( "xerces:xmlParserAPIs:2.2.1::jar" ) ); + model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar" ) ); + model.addDependency( toDependency( "nekohtml:nekohtml:0.9.1::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependency( toDependency( "rhino:js:1.5R4.1::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar" ) ); + model.addDependency( toDependency( "jtidy:jtidy:4aug2000r7-dev::jar" ) ); + model.addDependency( toDependency( "javax.activation:activation:1.0.2::jar", "test" ) ); + model.addDependency( toDependency( "javax.mail:mail:1.3.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "xerces:xmlParserAPIs:2.2.1" ); + addModel( model ); + + model = toModel( "xerces:xercesImpl:2.6.2" ); + addModel( model ); + + model = toModel( "nekohtml:nekohtml:0.9.1" ); + model.addDependency( toDependency( "xerces:xerces:2.4.0::jar" ) ); + addModel( model ); + + model = toModel( "rhino:js:1.5R4.1" ); + addModel( model ); + + model = toModel( "javax.activation:activation:1.0.2" ); + addModel( model ); + + model = toModel( "javax.mail:mail:1.3.1" ); + model.addDependency( toDependency( "javax.activation:activation:1.0.2::jar", "compile" ) ); + addModel( model ); + + model = toModel( "commons-httpclient:commons-httpclient:3.0.1" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + model.addDependency( toDependency( "commons-codec:commons-codec:1.2::jar" ) ); + addModel( model ); + + model = toModel( "commons-logging:commons-logging:1.0.3" ); + dep = toDependency( "log4j:log4j:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "logkit:logkit:1.0.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-codec:commons-codec:1.2" ); + addModel( model ); + + model = toModel( "com.cenqua.clover:clover:1.3.13" ); + addModel( model ); + + model = toModel( "checkstyle:checkstyle:4.1" ); + model.addDependency( toDependency( "antlr:antlr:2.7.2::jar" ) ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils-core:1.7.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + addModel( model ); + + model = toModel( "antlr:antlr:2.7.2" ); + addModel( model ); + + model = toModel( "commons-beanutils:commons-beanutils-core:1.7.0" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-logging:commons-logging:1.0" ); + addModel( model ); + + model = toModel( "commons-collections:commons-collections:2.0" ); + addModel( model ); + + model = toModel( "commons-collections:commons-collections:2.1" ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "checkstyle:checkstyle-optional:4.1" ); + model.addDependency( toDependency( "checkstyle:checkstyle:4.1::jar" ) ); + addModel( model ); + + model = toModel( "httpunit:httpunit:1.6.1" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-logging:1.0.4" ) ); + model.addDependency( toDependency( "org.slf4j:slf4j-simple:1.2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-logging-provider-test:1.0.4::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-logging:1.0.4" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.11" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-logging-provider-test:1.0.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-logging-provider-test:1.0.4" ); + addModel( model ); + + model = toModel( "org.slf4j:slf4j-simple:1.2" ); + model.setParentProject( toParent( "org.slf4j:slf4j-parent:1.2" ) ); + model.addDependency( toDependency( "org.slf4j:slf4j-api:1.2::jar" ) ); + addModel( model ); + + model = toModel( "org.slf4j:slf4j-parent:1.2" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.slf4j:slf4j-api:1.2" ); + model.setParentProject( toParent( "org.slf4j:slf4j-parent:1.2" ) ); + addModel( model ); + + model = toModel( "org.slf4j:slf4j-log4j12:1.2" ); + model.setParentProject( toParent( "org.slf4j:slf4j-parent:1.2" ) ); + model.addDependency( toDependency( "org.slf4j:slf4j-api:1.2::jar" ) ); + model.addDependency( toDependency( "log4j:log4j:1.2.13::jar" ) ); + addModel( model ); + + model = toModel( "log4j:log4j:1.2.13" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.12" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-2::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-17" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-17::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-17" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-17::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-17" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-17" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-2" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry-providers:1.0-alpha-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-2::jar", "test" ) ); + dep = toDependency( "commons-configuration:commons-configuration:1.3::jar" ); + addExclusion( dep, "commons-beanutils:commons-beanutils-core" ); + addExclusion( dep, "xerces:xerces" ); + addExclusion( dep, "xerces:xercesImpl" ); + addExclusion( dep, "xalan:xalan" ); + addExclusion( dep, "xml-apis:xml-apis" ); + addExclusion( dep, "servletapi:servletapi" ); + model.addDependency( dep ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.7.0::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry-providers:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-2" ) ); + addModel( model ); + + model = toModel( "commons-configuration:commons-configuration:1.3" ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.1::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging-api:1.0.4::jar" ) ); + model.addDependency( toDependency( "commons-digester:commons-digester:1.6::jar" ) ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils-core:1.7.0::jar" ) ); + model.addDependency( toDependency( "commons-codec:commons-codec:1.3::jar" ) ); + model.addDependency( toDependency( "commons-jxpath:commons-jxpath:1.2::jar" ) ); + model.addDependency( toDependency( "xerces:xerces:2.2.1::jar" ) ); + model.addDependency( toDependency( "xalan:xalan:2.7.0::jar" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); + dep = toDependency( "servletapi:servletapi:2.4::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "spice:spice-jndikit:1.1::jar", "test" ) ); + model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.1::jar", "test" ) ); + model.addDependency( toDependency( "commons-pool:commons-pool:1.1::jar", "test" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.7.2.2::jar", "test" ) ); + model.addDependency( toDependency( "dbunit:dbunit:2.1::jar", "test" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "junit-addons:junit-addons:1.4::jar", "test" ) ); + model.addDependency( toDependency( "mockobjects:mockobjects-core:0.09::jar", "test" ) ); + model.addDependency( toDependency( "mockobjects:mockobjects-jdk1.4-j2ee1.3:0.09::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-collections:commons-collections:3.1" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-logging:commons-logging-api:1.0.4" ); + addModel( model ); + + model = toModel( "commons-digester:commons-digester:1.6" ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.6::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-beanutils:commons-beanutils:1.6" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-codec:commons-codec:1.3" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-jxpath:commons-jxpath:1.2" ); + model.addDependency( toDependency( "xerces:xerces:1.2.3::jar" ) ); + model.addDependency( toDependency( "servletapi:servletapi:2.2::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8::jar" ) ); + model.addDependency( toDependency( "ant:ant-optional:1.5.1::jar" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); + model.addDependency( toDependency( "jdom:jdom:b9::jar" ) ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.4::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); + addModel( model ); + + model = toModel( "xerces:xerces:1.2.3" ); + addModel( model ); + + model = toModel( "servletapi:servletapi:2.2" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "javax.servlet" ); + model.getRelocation().setArtifactId( "servlet-api" ); + model.getRelocation().setVersion( "2.2" ); + addModel( model ); + + model = toModel( "javax.servlet:servlet-api:2.2" ); + addModel( model ); + + model = toModel( "junit:junit:3.8" ); + addModel( model ); + + model = toModel( "ant:ant-optional:1.5.1" ); + addModel( model ); + + model = toModel( "xml-apis:xml-apis:2.0.2" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "xml-apis" ); + model.getRelocation().setArtifactId( "xml-apis" ); + model.getRelocation().setVersion( "1.0.b2" ); + addModel( model ); + + model = toModel( "jdom:jdom:b9" ); + addModel( model ); + + model = toModel( "commons-beanutils:commons-beanutils:1.4" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "xerces:xerces:2.2.1" ); + addModel( model ); + + model = toModel( "xalan:xalan:2.7.0" ); + model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); + dep = toDependency( "xerces:xercesImpl:2.6.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "xerces:xercesImpl:2.6.0" ); + addModel( model ); + + model = toModel( "servletapi:servletapi:2.4" ); + addModel( model ); + + model = toModel( "spice:spice-jndikit:1.1" ); + addModel( model ); + + model = toModel( "commons-dbcp:commons-dbcp:1.1" ); + addModel( model ); + + model = toModel( "commons-pool:commons-pool:1.1" ); + addModel( model ); + + model = toModel( "hsqldb:hsqldb:1.7.2.2" ); + addModel( model ); + + model = toModel( "dbunit:dbunit:2.1" ); + addModel( model ); + + model = toModel( "junit-addons:junit-addons:1.4" ); + addModel( model ); + + model = toModel( "mockobjects:mockobjects-core:0.09" ); + addModel( model ); + + model = toModel( "mockobjects:mockobjects-jdk1.4-j2ee1.3:0.09" ); + addModel( model ); + + model = toModel( "commons-beanutils:commons-beanutils:1.7.0" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.6" ) ); + model.addDependency( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); + dep = toDependency( "jpox:jpox:1.1.1::jar", "test" ); + addExclusion( dep, "javax.sql:jdbc-stdext" ); + model.addDependency( dep ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.7.3.0::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-components:1.1.6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "jpox:jpox:1.1.1" ); + model.setParentProject( toParent( "jpox:jpox-parent:1.1.1" ) ); + model.addDependency( toDependency( "log4j:log4j:1.2.8::jar" ) ); + model.addDependency( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); + model.addDependency( toDependency( "javax.resource:connector:1.0::jar" ) ); + dep = toDependency( "javax.security:jaas:1.0.01::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "javax.sql:jdbc-stdext:2.0::jar" ) ); + dep = toDependency( "ant:ant:1.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "jpox:jpox-dbcp:1.1.1::jar", "test" ) ); + model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.2::jar", "test" ) ); + model.addDependency( toDependency( "commons-pool:commons-pool:1.2::jar", "test" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.1::jar", "test" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "jpox:jpox-parent:1.1.1" ); + addModel( model ); + + model = toModel( "log4j:log4j:1.2.8" ); + addModel( model ); + + model = toModel( "javax.resource:connector:1.0" ); + addModel( model ); + + model = toModel( "javax.security:jaas:1.0.01" ); + addModel( model ); + + model = toModel( "javax.sql:jdbc-stdext:2.0" ); + addModel( model ); + + model = toModel( "ant:ant:1.6" ); + addModel( model ); + + model = toModel( "jpox:jpox-dbcp:1.1.1" ); + addModel( model ); + + model = toModel( "commons-dbcp:commons-dbcp:1.2" ); + addModel( model ); + + model = toModel( "commons-pool:commons-pool:1.2" ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); + model.addDependency( toDependency( "xerces:xerces:2.0.2::jar" ) ); + addModel( model ); + + model = toModel( "hsqldb:hsqldb:1.7.3.0" ); + addModel( model ); + + model = toModel( "jpox:jpox:1.1.7" ); + model.setParentProject( toParent( "jpox:jpox-parent:1.1.7" ) ); + model.addDependency( toDependency( "log4j:log4j:1.2.8::jar" ) ); + model.addDependency( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); + model.addDependency( toDependency( "javax.resource:connector:1.0::jar" ) ); + model.addDependency( toDependency( "javax.transaction:jta:1.0.1B::jar" ) ); + dep = toDependency( "ant:ant:1.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "jpox:jpox-parent:1.1.7" ); + addModel( model ); + + model = toModel( "javax.transaction:jta:1.0.1B" ); + addModel( model ); + + model = toModel( "org.apache.derby:derby:10.1.3.1" ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2::jar", "compile" ) ); + model.addDependency( toDependency( "xmlunit:xmlunit:1.0::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); + model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-components:1.1.7" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "xmlunit:xmlunit:1.0" ); + addModel( model ); + + model = toModel( "hsqldb:hsqldb:1.8.0.7" ); + addModel( model ); + + model = toModel( "org.apache.derby:derbytools:10.1.3.1" ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-converter:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-artifact-converter:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.shared:maven-model-converter:2.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-i18n:1.0-beta-6::jar" ) ); + model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.7::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-i18n:1.0-beta-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.4" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-components:1.1.4" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-core:1.0-alpha-2-SNAPSHOT-SNAPSHOT" ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-core-consumers:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-database-consumers:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-artifact-reports:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-indexer:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-model:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.lucene:lucene-core:2.0.0::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); + model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.lucene:lucene-core:2.0.0" ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-lucene-consumers:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-indexer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-consumer-api:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-plexus-application:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-web-standalone:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT::war" ) ); + model.addProperty( "archivaVersion", "1.0-alpha-2-SNAPSHOT" ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-web-standalone:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-web:1.0-alpha-2-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-web:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-report-manager:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-scheduled:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-indexer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-proxy:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-security:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-core-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-lucene-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-signature-consumers:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-applet:1.0-alpha-2-SNAPSHOT::jar", "provided" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); + model.addDependency( toDependency( "opensymphony:sitemesh:2.2.1::jar" ) ); + model.addDependency( toDependency( "taglibs:standard:1.1.2::jar" ) ); + model.addDependency( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.shared:maven-app-configuration-web:1.0::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar", "runtime" ) ); + model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar", "runtime" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar", "runtime" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar", "runtime" ) ); + model.addDependency( toDependency( "opensymphony:webwork:2.2.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-api:1.0-alpha-2::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.cache:plexus-cache-ehcache:1.0-alpha-2::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1::war", "runtime" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-simple:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.apache.derby:derby:10.1.3.1::jar", "provided" ) ); + model.addDependency( toDependency( "javax.mail:mail:1.4::jar", "provided" ) ); + model.addDependency( toDependency( "javax.activation:activation:1.1::jar", "provided" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-scheduled:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-parent:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-database-consumers:1.0-alpha-2-SNAPSHOT::jar", "test" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.7::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "backport-util-concurrent:backport-util-concurrent:3.0::jar" ) ); + addModel( model ); + + model = toModel( "backport-util-concurrent:backport-util-concurrent:3.0" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.6" ) ); + model.addDependency( toDependency( "quartz:quartz:1.4.5::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.2::jar" ) ); + addModel( model ); + + model = toModel( "quartz:quartz:1.4.5" ); + addModel( model ); + + model = toModel( "commons-logging:commons-logging:1.0.2" ); + dep = toDependency( "log4j:log4j:1.1.3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "logkit:logkit:1.0.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "log4j:log4j:1.1.3" ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-proxy:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-base:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-configuration:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.archiva:archiva-repository-layer:1.0-alpha-2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "commons-io:commons-io:1.2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + dep = toDependency( "org.codehaus.plexus:plexus-digest:1.1::jar" ); + addExclusion( dep, "org.codehaus.plexus:plexus-container-default" ); + model.addDependency( dep ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-22::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar", "test" ) ); + model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-slf4j-logging:1.1-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.slf4j:slf4j-log4j12:1.2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-security:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-web:1.0-alpha-2-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.derby:derby:10.1.3.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); + dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); + addExclusion( dep, "com.bea.xml:jsr173-ri" ); + model.addDependency( dep ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.woodstox:wstx-asl:3.2.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); + dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); + addExclusion( dep, "com.bea.xml:jsr173-ri" ); + model.addDependency( dep ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + dep = toDependency( "stax:stax:1.1.1-dev::jar", "test" ); + addExclusion( dep, "xmlbeans:xmlbeans-jsr173-api" ); + model.addDependency( dep ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-jdo:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-users:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-=keys=:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-memory:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-keys:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-jdo:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authorization-rbac:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-cached:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1::war" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "xalan:xalan:2.7.0::jar" ) ); + model.addDependencyManagement( toDependency( "xml-apis:xml-apis:1.3.03::jar" ) ); + model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependencyManagement( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); + model.addDependencyManagement( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + model.addDependencyManagement( toDependency( "hsqldb:hsqldb:1.8.0.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.derby:derby:10.1.3.1::jar" ) ); + model.addProperty( "security.version", "1.0-alpha-1" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-1::jar" ) ); + dep = toDependency( "commons-configuration:commons-configuration:1.3::jar" ); + addExclusion( dep, "commons-beanutils:commons-beanutils-core" ); + addExclusion( dep, "xerces:xerces" ); + addExclusion( dep, "xerces:xercesImpl" ); + addExclusion( dep, "xalan:xalan" ); + addExclusion( dep, "xml-apis:xml-apis" ); + addExclusion( dep, "servletapi:servletapi" ); + model.addDependency( dep ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.7.0::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry-providers:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-logging:1.0.2" ) ); + model.addDependency( toDependency( "log4j:log4j:1.2.8::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-logging-provider-test:1.0-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-logging:1.0.2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-logging-provider-test:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-logging:1.0.2" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-memory:1.0-alpha-1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authorization:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authorization:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-jdo:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users-providers:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); + model.addDependency( toDependency( "net.sf.ehcache:ehcache:1.2.4::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users-jdo:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); + dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); + addExclusion( dep, "com.bea.xml:jsr173-ri" ); + model.addDependency( dep ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + model.addDependency( toDependency( "woodstox:wstx-asl:3.2.0::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-utils:1.2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.5" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.5" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-common:1.0-alpha-1" ) ); + dep = toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ); + addExclusion( dep, "xerces:xercesImpl" ); + addExclusion( dep, "xerces:xmlParserAPIs" ); + model.addDependency( dep ); + dep = toDependency( "jpox:jpox:1.1.7::jar", "compile" ); + addExclusion( dep, "javax.sql:jdbc-stdext" ); + model.addDependency( dep ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-common:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "hsqldb:hsqldb:1.8.0.4" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1" ); + addModel( model ); + + model = toModel( "net.java.dev.stax-utils:stax-utils:20060502" ); + model.addDependency( toDependency( "com.bea.xml:jsr173-ri:1.0::jar" ) ); + addModel( model ); + + model = toModel( "com.bea.xml:jsr173-ri:1.0" ); + model.addDependency( toDependency( "javax.xml:jsr173:1.0::jar" ) ); + addModel( model ); + + model = toModel( "javax.xml:jsr173:1.0" ); + addModel( model ); + + model = toModel( "stax:stax-api:1.0.1" ); + addModel( model ); + + model = toModel( "woodstox:wstx-asl:3.2.0" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "org.codehaus.woodstox" ); + addModel( model ); + + model = toModel( "org.codehaus.woodstox:wstx-asl:3.2.0" ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.0::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-digest:1.0" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-jdo:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys-providers:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys-jdo:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); + dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); + addExclusion( dep, "com.bea.xml:jsr173-ri" ); + model.addDependency( dep ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + model.addDependency( toDependency( "woodstox:wstx-asl:3.2.0::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication-memory:1.0-alpha-1" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication-users:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication-providers:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication-=keys=:1.0-alpha-1" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication-keys:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authorization-rbac:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authorization-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-cached:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authorization-providers:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authorization:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-cached:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); + dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); + addExclusion( dep, "com.bea.xml:jsr173-ri" ); + model.addDependency( dep ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + dep = toDependency( "stax:stax:1.1.1-dev::jar", "test" ); + addExclusion( dep, "xmlbeans:xmlbeans-jsr173-api" ); + model.addDependency( dep ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1" ); + addModel( model ); + + model = toModel( "stax:stax:1.1.1-dev" ); + model.addDependency( toDependency( "xmlbeans:xmlbeans-jsr173-api:2.0-dev::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + addModel( model ); + + model = toModel( "xmlbeans:xmlbeans-jsr173-api:2.0-dev" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-xwork:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-users:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-keys:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-rbac:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "org.extremecomponents:extremecomponents:1.0.1::jar" ) ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils-bean-collections:1.7.0::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); + dep = toDependency( "org.codehaus.plexus:plexus-velocity:1.1.2::jar" ); + addExclusion( dep, "plexus:plexus-utils" ); + addExclusion( dep, "commons-logging:commons-logging-api" ); + model.addDependency( dep ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependency( toDependency( "taglibs:standard:1.1.2::jar" ) ); + model.addDependency( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependency( toDependency( "opensymphony:sitemesh:2.2.1::jar" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-xwork:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-integrations:1.0-alpha-1" ) ); + model.addDependencyManagement( toDependency( "taglibs:standard:1.1.2::jar" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-integrations:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "taglibs:standard:1.1.2" ); + addModel( model ); + + model = toModel( "javax.servlet:jstl:1.1.2" ); + model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); + addModel( model ); + + model = toModel( "javax.servlet:jsp-api:2.0" ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.12" ) ); + model.addDependency( toDependency( "org.easymock:easymock:2.2::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-17::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); + model.addDependency( toDependency( "opensymphony:xwork:1.2.1::jar" ) ); + model.addDependency( toDependency( "opensymphony:webwork:2.2.4::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + addModel( model ); + + model = toModel( "org.easymock:easymock:2.2" ); + addModel( model ); + + model = toModel( "opensymphony:xwork:1.2.1" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.rifers:rife-continuations:0.0.2::jar" ) ); + model.addDependency( toDependency( "opensymphony:oscore:2.2.4::jar" ) ); + model.addDependency( toDependency( "ognl:ognl:2.6.7::jar" ) ); + dep = toDependency( "org.springframework:spring-core:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-aop:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-beans:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-context:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-web:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "org.springframework:spring-mock:1.2.6::jar", "test" ) ); + dep = toDependency( "cglib:cglib:2.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependency( toDependency( "mockobjects:mockobjects-core:0.09::jar", "test" ) ); + model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + model.addDependency( toDependency( "easymock:easymockclassextension:1.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.rifers:rife-continuations:0.0.2" ); + addModel( model ); + + model = toModel( "opensymphony:oscore:2.2.4" ); + addModel( model ); + + model = toModel( "ognl:ognl:2.6.7" ); + addModel( model ); + + model = toModel( "org.springframework:spring-core:1.2.6" ); + model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + dep = toDependency( "log4j:log4j:1.2.9::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.1::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar", "provided" ) ); + addModel( model ); + + model = toModel( "org.springframework:spring-parent:1.2.6" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + dep = toDependency( "log4j:log4j:1.2.9::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "cglib:cglib:2.1_3::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "commons-attributes:commons-attributes-compiler:2.1::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "org.hibernate:hibernate:3.0.5::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "org.hibernate:hibernate-annotations:3.0beta2::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "struts:struts:1.2.7::jar" ); + addExclusion( dep, "servletapi:servletapi" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "jasperreports:jasperreports:1.0.3::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "freemarker:freemarker:2.3.4::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + model.addDependencyManagement( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependencyManagement( toDependency( "aopalliance:aopalliance:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "oro:oro:2.0.8::jar" ) ); + dep = toDependency( "commons-pool:commons-pool:1.2::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "com.jamonapi:jamon:1.0::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + model.addDependencyManagement( toDependency( "xdoclet:xjavadoc:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "javax.mail:mail:1.3.2::jar" ) ); + dep = toDependency( "velocity:velocity:1.4::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + model.addDependencyManagement( toDependency( "commons-collections:commons-collections:3.1::jar" ) ); + model.addDependencyManagement( toDependency( "xml-apis:xml-apis:1.0.b2::jar", "provided" ) ); + model.addDependencyManagement( toDependency( "javax.transaction:jta:1.0.1B::jar" ) ); + dep = toDependency( "jotm:jotm:2.0.10::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "net.sf.hibernate:hibernate:2.1.8::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "c3p0:c3p0:0.9.0.2::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "commons-dbcp:commons-dbcp:1.2.1::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "com.experlog:xapool:1.5.0::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); + dep = toDependency( "com.oracle.toplink:toplink:10.1.3::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "ojb:db-ojb:1.0.3::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "javax.jdo:jdo:2.0-20050809.1515::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "com.ibatis:ibatis-sqlmap:1.3.1::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "com.ibatis:ibatis2-sqlmap:2.1.5.582::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "javax.jms:jms:1.1::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "javax.ejb:ejb:2.0::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "javax.xml:jaxrpc-api:1.1::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "commons-httpclient:commons-httpclient:3.0-rc4::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "com.caucho:burlap:2.1.12::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "com.caucho:hessian:2.1.12::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + model.addDependencyManagement( toDependency( "javax.resource:connector:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "ehcache:ehcache:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "quartz:quartz:1.5.1::jar" ) ); + model.addDependencyManagement( toDependency( "com.servlets:cos:05Nov2002::jar" ) ); + model.addDependencyManagement( toDependency( "easymock:easymock:1.2_RC2_Java1.3::jar", "test" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:jstl:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "taglibs:standard:1.0.6::jar" ) ); + dep = toDependency( "javax.faces:jsf-api:1.1::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "velocity-tools:velocity-tools-generic:1.1::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "velocity-tools:velocity-tools-view:1.1::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "poi:poi:2.5.1-final-20040804::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "itext:itext:1.3::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "net.sourceforge.jexcelapi:jxl:2.5.7::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + addModel( model ); + + model = toModel( "log4j:log4j:1.2.9" ); + addModel( model ); + + model = toModel( "cglib:cglib:2.1_3" ); + addModel( model ); + + model = toModel( "commons-attributes:commons-attributes-compiler:2.1" ); + model.addDependency( toDependency( "commons-attributes:commons-attributes-api:2.1::jar" ) ); + addModel( model ); + + model = toModel( "commons-attributes:commons-attributes-api:2.1" ); + model.addDependency( toDependency( "ant:ant:1.5::jar" ) ); + model.addDependency( toDependency( "qdox:qdox:1.5::jar" ) ); + addModel( model ); + + model = toModel( "ant:ant:1.5" ); + addModel( model ); + + model = toModel( "qdox:qdox:1.5" ); + addModel( model ); + + model = toModel( "org.hibernate:hibernate:3.0.5" ); + addModel( model ); + + model = toModel( "org.hibernate:hibernate-annotations:3.0beta2" ); + addModel( model ); + + model = toModel( "struts:struts:1.2.7" ); + addModel( model ); + + model = toModel( "jasperreports:jasperreports:1.0.3" ); + addModel( model ); + + model = toModel( "freemarker:freemarker:2.3.4" ); + addModel( model ); + + model = toModel( "aopalliance:aopalliance:1.0" ); + addModel( model ); + + model = toModel( "oro:oro:2.0.8" ); + addModel( model ); + + model = toModel( "com.jamonapi:jamon:1.0" ); + addModel( model ); + + model = toModel( "xdoclet:xjavadoc:1.1" ); + addModel( model ); + + model = toModel( "javax.mail:mail:1.3.2" ); + model.addDependency( toDependency( "javax.activation:activation:1.0.2::jar", "compile" ) ); + addModel( model ); + + model = toModel( "velocity:velocity:1.4" ); + model.addDependency( toDependency( "velocity:velocity-dep:1.4::jar", "runtime" ) ); + addModel( model ); + + model = toModel( "velocity:velocity-dep:1.4" ); + addModel( model ); + + model = toModel( "jotm:jotm:2.0.10" ); + addModel( model ); + + model = toModel( "c3p0:c3p0:0.9.0.2" ); + addModel( model ); + + model = toModel( "commons-dbcp:commons-dbcp:1.2.1" ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); + model.addDependency( toDependency( "commons-pool:commons-pool:1.2::jar" ) ); + dep = toDependency( "javax.sql:jdbc-stdext:2.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); + model.addDependency( toDependency( "xerces:xerces:2.0.2::jar" ) ); + addModel( model ); + + model = toModel( "com.experlog:xapool:1.5.0" ); + addModel( model ); + + model = toModel( "com.oracle.toplink:toplink:10.1.3" ); + addModel( model ); + + model = toModel( "ojb:db-ojb:1.0.3" ); + addModel( model ); + + model = toModel( "javax.jdo:jdo:2.0-20050809.1515" ); + addModel( model ); + + model = toModel( "com.ibatis:ibatis-sqlmap:1.3.1" ); + addModel( model ); + + model = toModel( "com.ibatis:ibatis2-sqlmap:2.1.5.582" ); + addModel( model ); + + model = toModel( "javax.jms:jms:1.1" ); + addModel( model ); + + model = toModel( "javax.ejb:ejb:2.0" ); + addModel( model ); + + model = toModel( "javax.xml:jaxrpc-api:1.1" ); + addModel( model ); + + model = toModel( "commons-httpclient:commons-httpclient:3.0-rc4" ); + addModel( model ); + + model = toModel( "com.caucho:burlap:2.1.12" ); + addModel( model ); + + model = toModel( "com.caucho:hessian:2.1.12" ); + addModel( model ); + + model = toModel( "ehcache:ehcache:1.1" ); + addModel( model ); + + model = toModel( "quartz:quartz:1.5.1" ); + addModel( model ); + + model = toModel( "com.servlets:cos:05Nov2002" ); + addModel( model ); + + model = toModel( "easymock:easymock:1.2_RC2_Java1.3" ); + addModel( model ); + + model = toModel( "javax.servlet:jstl:1.0" ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar", "provided" ) ); + addModel( model ); + + model = toModel( "taglibs:standard:1.0.6" ); + addModel( model ); + + model = toModel( "javax.faces:jsf-api:1.1" ); + addModel( model ); + + model = toModel( "velocity-tools:velocity-tools-generic:1.1" ); + addModel( model ); + + model = toModel( "velocity-tools:velocity-tools-view:1.1" ); + addModel( model ); + + model = toModel( "poi:poi:2.5.1-final-20040804" ); + addModel( model ); + + model = toModel( "itext:itext:1.3" ); + addModel( model ); + + model = toModel( "net.sourceforge.jexcelapi:jxl:2.5.7" ); + addModel( model ); + + model = toModel( "org.springframework:spring-aop:1.2.6" ); + model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); + model.addDependency( toDependency( "org.springframework:spring-beans:1.2.6::jar" ) ); + model.addDependency( toDependency( "aopalliance:aopalliance:1.0::jar" ) ); + model.addDependency( toDependency( "oro:oro:2.0.8::jar" ) ); + dep = toDependency( "commons-pool:commons-pool:1.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "commons-attributes:commons-attributes-compiler:2.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "com.jamonapi:jamon:1.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "cglib:cglib:2.1_3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "xdoclet:xjavadoc:1.1::jar", "test" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + addModel( model ); + + model = toModel( "org.springframework:spring-beans:1.2.6" ); + model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); + model.addDependency( toDependency( "org.springframework:spring-core:1.2.6::jar" ) ); + dep = toDependency( "cglib:cglib:2.1_3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependency( toDependency( "javax.mail:mail:1.3.2::jar", "test" ) ); + model.addDependency( toDependency( "org.hibernate:hibernate:3.0.5::jar", "test" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.springframework:spring-context:1.2.6" ); + model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); + model.addDependency( toDependency( "org.springframework:spring-aop:1.2.6::jar" ) ); + dep = toDependency( "velocity:velocity:1.4::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "freemarker:freemarker:2.3.4::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "jasperreports:jasperreports:1.0.3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "org.springframework:spring-web:1.2.6" ); + model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); + model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependency( toDependency( "javax.servlet:jstl:1.0::jar" ) ); + model.addDependency( toDependency( "org.springframework:spring-context:1.2.6::jar" ) ); + dep = toDependency( "log4j:log4j:1.2.9::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "struts:struts:1.2.7::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "com.servlets:cos:05Nov2002::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "taglibs:standard:1.0.6::jar" ) ); + dep = toDependency( "javax.faces:jsf-api:1.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "org.springframework:spring-mock:1.2.6" ); + model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); + dep = toDependency( "org.springframework:spring-jdbc:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-web:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.springframework:spring-jdbc:1.2.6" ); + addModel( model ); + + model = toModel( "cglib:cglib:2.1" ); + model.addDependency( toDependency( "asm:asm:1.5.3::jar" ) ); + model.addDependency( toDependency( "asm:asm-util:1.3.4::jar" ) ); + model.addDependency( toDependency( "aspectwerkz:aspectwerkz-core:0.8.1::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "asm:asm:1.5.3" ); + addModel( model ); + + model = toModel( "asm:asm-util:1.3.4" ); + addModel( model ); + + model = toModel( "aspectwerkz:aspectwerkz-core:0.8.1" ); + addModel( model ); + + model = toModel( "easymock:easymockclassextension:1.1" ); + addModel( model ); + + model = toModel( "opensymphony:webwork:2.2.4" ); + model.addDependency( toDependency( "opensymphony:xwork:1.2.1::jar" ) ); + dep = toDependency( "opensymphony:xwork-tiger:1.2.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "freemarker:freemarker:2.3.4::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + dep = toDependency( "commons-lang:commons-lang:2.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "dwr:dwr:1.1-beta-3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "velocity:velocity:1.4::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "velocity-tools:velocity-tools:1.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "commons-fileupload:commons-fileupload:1.1.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "servlets.com:cos:05Nov2002::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "opensymphony:pell-multipart:2.1.5::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "opensymphony:sitemesh:2.2.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "jetty:org.mortbay.jetty:5.1.4::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "eclipse:jdtcore:3.1.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "jasperreports:jasperreports:1.1.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "jfree:jfreechart:1.0.0::jar" ); + addExclusion( dep, "gnujaxp:gnujaxp" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.apache.struts.tiles:tiles-core:0.2-SNAPSHOT::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "commons-digester:commons-digester:1.7::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "portlet-api:portlet-api:1.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.apache.pluto:pluto:1.0.1-rc4::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-10-SNAPSHOT::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "picocontainer:picocontainer:1.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "picocontainer:picocontainer-gems:1.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "nanocontainer:nanocontainer:1.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "nanocontainer:nanocontainer-nanowar:1.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-beans:1.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-core:1.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-context:1.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-web:1.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-mock:1.2::jar", "compile" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xpp3:xpp3:1.1.3.4-RC8::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "junit:junit:3.8.1::jar", "compile" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); + model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + model.addDependency( toDependency( "easymock:easymockclassextension:1.1::jar", "test" ) ); + model.addDependency( toDependency( "jmock:jmock-cglib:1.0.1::jar", "test" ) ); + model.addDependency( toDependency( "mockobjects:mockobjects-core:0.09::jar", "test" ) ); + model.addDependency( toDependency( "mockobjects:mockobjects-jdk1.3:0.09::jar", "test" ) ); + model.addDependency( toDependency( "mockobjects:mockobjects-alt-jdk1.3:0.09::jar", "test" ) ); + model.addDependency( toDependency( "mockobjects:mockobjects-alt-jdk1.3-j2ee1.3:0.09::jar", "test" ) ); + model.addDependency( toDependency( "mockobjects:mockobjects-jdk1.3-j2ee1.3:0.09::jar", "test" ) ); + addModel( model ); + + model = toModel( "opensymphony:xwork-tiger:1.2.1" ); + addModel( model ); + + model = toModel( "commons-lang:commons-lang:2.0" ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "dwr:dwr:1.1-beta-3" ); + addModel( model ); + + model = toModel( "velocity-tools:velocity-tools:1.1" ); + addModel( model ); + + model = toModel( "commons-fileupload:commons-fileupload:1.1.1" ); + addModel( model ); + + model = toModel( "servlets.com:cos:05Nov2002" ); + addModel( model ); + + model = toModel( "opensymphony:pell-multipart:2.1.5" ); + addModel( model ); + + model = toModel( "opensymphony:sitemesh:2.2.1" ); + addModel( model ); + + model = toModel( "jetty:org.mortbay.jetty:5.1.4" ); + addModel( model ); + + model = toModel( "eclipse:jdtcore:3.1.0" ); + addModel( model ); + + model = toModel( "jasperreports:jasperreports:1.1.0" ); + addModel( model ); + + model = toModel( "jfree:jfreechart:1.0.0" ); + addModel( model ); + + model = toModel( "org.apache.struts.tiles:tiles-core:0.2-SNAPSHOT" ); + addModel( model ); + + model = toModel( "commons-digester:commons-digester:1.7" ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.6::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "portlet-api:portlet-api:1.0" ); + addModel( model ); + + model = toModel( "org.apache.pluto:pluto:1.0.1-rc4" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-10-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0.6-SNAPSHOT" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1::jar" ) ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0.6-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.8-SNAPSHOT" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "picocontainer:picocontainer:1.2" ); + addModel( model ); + + model = toModel( "picocontainer:picocontainer-gems:1.2" ); + addModel( model ); + + model = toModel( "nanocontainer:nanocontainer:1.0" ); + addModel( model ); + + model = toModel( "nanocontainer:nanocontainer-nanowar:1.0" ); + addModel( model ); + + model = toModel( "org.springframework:spring-beans:1.2" ); + addModel( model ); + + model = toModel( "org.springframework:spring-core:1.2" ); + addModel( model ); + + model = toModel( "org.springframework:spring-context:1.2" ); + addModel( model ); + + model = toModel( "org.springframework:spring-web:1.2" ); + addModel( model ); + + model = toModel( "org.springframework:spring-mock:1.2" ); + addModel( model ); + + model = toModel( "xpp3:xpp3:1.1.3.4-RC8" ); + addModel( model ); + + model = toModel( "jmock:jmock-cglib:1.0.1" ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar" ) ); + model.addDependency( toDependency( "cglib:cglib-full:2.0::jar" ) ); + addModel( model ); + + model = toModel( "cglib:cglib-full:2.0" ); + addModel( model ); + + model = toModel( "mockobjects:mockobjects-jdk1.3:0.09" ); + addModel( model ); + + model = toModel( "mockobjects:mockobjects-alt-jdk1.3:0.09" ); + addModel( model ); + + model = toModel( "mockobjects:mockobjects-alt-jdk1.3-j2ee1.3:0.09" ); + addModel( model ); + + model = toModel( "mockobjects:mockobjects-jdk1.3-j2ee1.3:0.09" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-sender:1.0-alpha-6" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-mail-sender:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-senders:1.0-alpha-6" ) ); + model.addDependency( toDependency( "javax.mail:mail:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-test:1.0-alpha-6::jar", "test" ) ); + dep = toDependency( "org.codehaus.plexus:plexus-naming:1.0-alpha-1::jar", "test" ); + addExclusion( dep, "geronimo-spec:geronimo-spec-javamail" ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-mail-senders:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-sender:1.0-alpha-6" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); + addModel( model ); + + model = toModel( "javax.mail:mail:1.4" ); + model.addDependency( toDependency( "javax.activation:activation:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-mail-sender-test:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-senders:1.0-alpha-6" ) ); + model.addDependency( toDependency( "dumbster:dumbster:1.5::jar" ) ); + addModel( model ); + + model = toModel( "dumbster:dumbster:1.5" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-naming:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.6" ) ); + model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); + model.addDependency( toDependency( "directory-naming:naming-java:0.8::jar" ) ); + model.addDependency( toDependency( "directory-naming:naming-factory:0.8::jar" ) ); + model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.2.1::jar" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.7.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "directory-naming:naming-core:0.8" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + addModel( model ); + + model = toModel( "directory-naming:naming-java:0.8" ); + model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + addModel( model ); + + model = toModel( "directory-naming:naming-factory:0.8" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); + model.addDependency( toDependency( "geronimo-spec:geronimo-spec-javamail:1.3.1-rc1::jar" ) ); + addModel( model ); + + model = toModel( "geronimo-spec:geronimo-spec-javamail:1.3.1-rc1" ); + addModel( model ); + + model = toModel( "hsqldb:hsqldb:1.7.1" ); + addModel( model ); + + model = toModel( "org.extremecomponents:extremecomponents:1.0.1" ); + dep = toDependency( "avalon-framework:avalon-framework:4.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "batik:batik:1.5-fop-0.20-5::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.7.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.0::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.0::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + dep = toDependency( "fop:fop:0.20.5::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + dep = toDependency( "poi:poi:2.5.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "servletapi:servletapi:2.3::jar", "provided" ) ); + model.addDependency( toDependency( "taglibs:standard:1.0.2::jar" ) ); + dep = toDependency( "xalan:xalan:2.5.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xerces:xercesImpl:2.6.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xml-apis:xml-apis:2.0.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "avalon-framework:avalon-framework:4.0" ); + addModel( model ); + + model = toModel( "batik:batik:1.5-fop-0.20-5" ); + addModel( model ); + + model = toModel( "commons-collections:commons-collections:3.0" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "fop:fop:0.20.5" ); + addModel( model ); + + model = toModel( "poi:poi:2.5.1" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "poi" ); + model.getRelocation().setArtifactId( "poi" ); + model.getRelocation().setVersion( "2.5.1-final-20040804" ); + addModel( model ); + + model = toModel( "taglibs:standard:1.0.2" ); + addModel( model ); + + model = toModel( "xalan:xalan:2.5.1" ); + addModel( model ); + + model = toModel( "xerces:xercesImpl:2.6.1" ); + addModel( model ); + + model = toModel( "commons-beanutils:commons-beanutils-bean-collections:1.7.0" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-velocity:1.1.2" ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7::jar", "compile" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); + model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar", "compile" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar", "compile" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging-api:1.0.4::jar", "compile" ) ); + model.addDependency( toDependency( "velocity:velocity:1.4::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-integrations:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "taglibs:standard:1.1.2::jar" ) ); + model.addDependency( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-xwork:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "xml-apis:xml-apis:1.3.03" ); + model.setParentProject( toParent( "org.apache:apache:1" ) ); + addModel( model ); + + model = toModel( "org.apache:apache:1" ); + addModel( model ); + + model = toModel( "org.codehaus.woodstox:wstx-asl:3.2.1" ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-signature-consumers:1.0-alpha-2-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.archiva:archiva-consumers:1.0-alpha-2-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.shared:maven-app-configuration-model:1.0" ); + model.setParentProject( toParent( "org.apache.maven.shared:maven-app-configuration:1.0" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.shared:maven-app-configuration:1.0" ); + model.setParentProject( toParent( "org.apache.maven.shared:maven-shared-components:7" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.shared:maven-app-configuration-web:1.0" ); + model.setParentProject( toParent( "org.apache.maven.shared:maven-app-configuration:1.0" ) ); + model.addDependency( toDependency( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-project:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar", "runtime" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-project:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-test:2.0.4::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-profile:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-settings:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact-test:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact-manager:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-7::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-repository-metadata:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-profile:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-simple:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus.webdav:plexus-webdav-providers-parent:1.0-alpha-2" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); + model.addDependency( toDependency( "it.could:webdav:0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-providers-parent:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus.webdav:plexus-webdav-parent:1.0-alpha-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-api:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-test:1.0-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-parent:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.12" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-api:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus.webdav:plexus-webdav-parent:1.0-alpha-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-test:1.0-alpha-2" ); + addModel( model ); + + model = toModel( "it.could:webdav:0.4" ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar", "runtime" ) ); + addModel( model ); + + model = toModel( "dom4j:dom4j:1.6.1" ); + dep = toDependency( "jaxme:jaxme-api:0.3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "jaxen:jaxen:1.1-beta-6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "msv:xsdlib:20030807::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "msv:relaxngDatatype:20030807::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "pull-parser:pull-parser:2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xpp3:xpp3:1.1.3.3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "stax:stax-api:1.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); + model.addDependency( toDependency( "junitperf:junitperf:1.8::jar", "test" ) ); + model.addDependency( toDependency( "stax:stax-ri:1.0::jar", "test" ) ); + model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar", "test" ) ); + model.addDependency( toDependency( "xalan:xalan:2.5.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "jaxme:jaxme-api:0.3" ); + addModel( model ); + + model = toModel( "jaxen:jaxen:1.1-beta-6" ); + addModel( model ); + + model = toModel( "msv:xsdlib:20030807" ); + addModel( model ); + + model = toModel( "msv:relaxngDatatype:20030807" ); + addModel( model ); + + model = toModel( "xpp3:xpp3:1.1.3.3" ); + addModel( model ); + + model = toModel( "stax:stax-api:1.0" ); + addModel( model ); + + model = toModel( "stax:stax-ri:1.0" ); + addModel( model ); + + model = toModel( "jaxen:jaxen:1.1" ); + model.addDependency( toDependency( "dom4j:dom4j:1.6.1::jar" ) ); + model.addDependency( toDependency( "jdom:jdom:1.0::jar" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:1.3.02::jar" ) ); + model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar" ) ); + model.addDependency( toDependency( "xom:xom:1.0::jar" ) ); + addModel( model ); + + model = toModel( "jdom:jdom:1.0" ); + dep = toDependency( "xerces:xercesImpl:2.6.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xml-apis:xml-apis:1.0.b2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "jaxen:jaxen:1.0-FCS::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "saxpath:saxpath:1.0-FCS::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xalan:xalan:2.5.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "xalan:xalan:2.5.0" ); + addModel( model ); + + model = toModel( "xml-apis:xml-apis:1.3.02" ); + addModel( model ); + + model = toModel( "xom:xom:1.0" ); + model.addDependency( toDependency( "xerces:xmlParserAPIs:2.6.2::jar" ) ); + model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar" ) ); + model.addDependency( toDependency( "xalan:xalan:2.6.0::jar" ) ); + model.addDependency( toDependency( "com.ibm.icu:icu4j:2.6.1::jar" ) ); + addModel( model ); + + model = toModel( "xerces:xmlParserAPIs:2.6.2" ); + addModel( model ); + + model = toModel( "xalan:xalan:2.6.0" ); + model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); + dep = toDependency( "xerces:xercesImpl:2.6.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "com.ibm.icu:icu4j:2.6.1" ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-model:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-project:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-test:2.0.5::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-profile:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-settings:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact-test:2.0.5" ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-profile:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-appserver-host:2.0-alpha-8" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-appserver:2.0-alpha-8" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); + model.addDependency( toDependency( "mx4j:mx4j:3.0.1::jar" ) ); + model.addDependency( toDependency( "mx4j:mx4j-remote:3.0.1::jar" ) ); + model.addDependency( toDependency( "org.livetribe:livetribe-slp:1.0.2::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-appserver:2.0-alpha-8" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.11" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); + addModel( model ); + + model = toModel( "mx4j:mx4j:3.0.1" ); + addModel( model ); + + model = toModel( "mx4j:mx4j-remote:3.0.1" ); + addModel( model ); + + model = toModel( "org.livetribe:livetribe-slp:1.0.2" ); + model.setParentProject( toParent( "org.livetribe:livetribe:1.0" ) ); + model.addDependency( toDependency( "backport-util-concurrent:backport-util-concurrent:2.2::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.livetribe:livetribe:1.0" ); + addModel( model ); + + model = toModel( "backport-util-concurrent:backport-util-concurrent:2.2" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-appserver-service-jetty:2.0-alpha-8" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-appserver-services:2.0-alpha-8" ) ); + model.addDependency( toDependency( "ant:ant:1.6.2::jar" ) ); + model.addDependency( toDependency( "jetty:org.mortbay.jetty:5.1.10::jar" ) ); + model.addDependency( toDependency( "tomcat:jasper-compiler:5.5.15::jar" ) ); + model.addDependency( toDependency( "tomcat:jasper-runtime:5.5.15::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar" ) ); + model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar" ) ); + dep = toDependency( "commons-el:commons-el:1.0::jar", "runtime" ); + addExclusion( dep, "log4j:log4j" ); + addExclusion( dep, "commons-logging:commons-logging" ); + addExclusion( dep, "logkit:logkit" ); + model.addDependency( dep ); + model.addDependency( toDependency( "jetty:org.mortbay.jetty.plus:5.1.10::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging-api:1.0.4::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.derby:derby:10.1.3.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-appserver-services:2.0-alpha-8" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-appserver:2.0-alpha-8" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-appserver-host:2.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "ant:ant:1.6.2" ); + dep = toDependency( "xerces:xerces-impl:2.6.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xml-apis:xml-apis:2.6.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "xerces:xerces-impl:2.6.2" ); + addModel( model ); + + model = toModel( "xml-apis:xml-apis:2.6.2" ); + addModel( model ); + + model = toModel( "jetty:org.mortbay.jetty:5.1.10" ); + addModel( model ); + + model = toModel( "tomcat:jasper-compiler:5.5.15" ); + model.setParentProject( toParent( "tomcat:tomcat-parent:5.5.15" ) ); + model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar" ) ); + model.addDependency( toDependency( "ant:ant:1.6.5::jar" ) ); + addModel( model ); + + model = toModel( "tomcat:tomcat-parent:5.5.15" ); + model.setParentProject( toParent( "org.apache:apache:3" ) ); + model.addDependencyManagement( toDependency( "commons-logging:commons-logging-api:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "ant:ant:1.6.5" ); + dep = toDependency( "xerces:xerces-impl:2.6.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xml-apis:xml-apis:2.6.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "tomcat:jasper-runtime:5.5.15" ); + model.setParentProject( toParent( "tomcat:tomcat-parent:5.5.15" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar" ) ); + model.addDependency( toDependency( "commons-el:commons-el:1.0::jar" ) ); + addModel( model ); + + model = toModel( "commons-el:commons-el:1.0" ); + model.addDependency( toDependency( "servletapi:servletapi:2.4-20040521::jar", "provided" ) ); + model.addDependency( toDependency( "jspapi:jsp-api:2.0-20040521::jar", "provided" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + addModel( model ); + + model = toModel( "servletapi:servletapi:2.4-20040521" ); + addModel( model ); + + model = toModel( "jspapi:jsp-api:2.0-20040521" ); + addModel( model ); + + model = toModel( "jetty:org.mortbay.jetty.plus:5.1.10" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-cli:1.1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-tools:1.0.8" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-14::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + dep = toDependency( "commons-cli:commons-cli:1.0::jar" ); + addExclusion( dep, "commons-lang:commons-lang" ); + addExclusion( dep, "commons-logging:commons-logging" ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-tools:1.0.8" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-14::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-14" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-14" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-13::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5::jar" ) ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-14" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-13::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-13" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0.7-alpha-3" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0.7-alpha-3" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-5::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-13::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + addModel( model ); + + model = toModel( "commons-cli:commons-cli:1.0" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:1.0::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-lang:commons-lang:1.0" ); + model.addDependency( toDependency( "junit:junit:3.7::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-command-line:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.4" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-naming:1.0-alpha-3" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); + model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); + model.addDependency( toDependency( "directory-naming:naming-java:0.8::jar" ) ); + model.addDependency( toDependency( "directory-naming:naming-factory:0.8::jar" ) ); + model.addDependency( toDependency( "directory-naming:naming-config:0.8::jar" ) ); + model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.2.1::jar" ) ); + model.addDependency( toDependency( "commons-pool:commons-pool:1.2::jar" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.7.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "directory-naming:naming-config:0.8" ); + model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); + model.addDependency( toDependency( "directory-naming:naming-factory:0.8::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:1.0.1::jar" ) ); + model.addDependency( toDependency( "commons-digester:commons-digester:1.4.1::jar" ) ); + model.addDependency( toDependency( "directory-naming:naming-java:0.8::jar" ) ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.6.1::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.1::jar" ) ); + model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.0::jar" ) ); + model.addDependency( toDependency( "commons-pool:commons-pool:1.0.1::jar" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.7.1::jar" ) ); + addModel( model ); + + model = toModel( "commons-lang:commons-lang:1.0.1" ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-digester:commons-digester:1.4.1" ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.6::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-beanutils:commons-beanutils:1.6.1" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-dbcp:commons-dbcp:1.0" ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:1.0-b1::jar" ) ); + model.addDependency( toDependency( "commons-pool:commons-pool:1.0::jar" ) ); + model.addDependency( toDependency( "jdbc:jdbc:2.0::jar" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar" ) ); + addModel( model ); + + model = toModel( "commons-lang:commons-lang:1.0-b1" ); + addModel( model ); + + model = toModel( "commons-pool:commons-pool:1.0" ); + addModel( model ); + + model = toModel( "jdbc:jdbc:2.0" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "javax.sql" ); + model.getRelocation().setArtifactId( "jdbc-stdext" ); + model.getRelocation().setVersion( "2.0" ); + addModel( model ); + + model = toModel( "commons-pool:commons-pool:1.0.1" ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + } +} diff --git a/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ContinuumStoreDependencyGraphTest.java b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ContinuumStoreDependencyGraphTest.java new file mode 100644 index 000000000..e55bf17d1 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ContinuumStoreDependencyGraphTest.java @@ -0,0 +1,98 @@ +package org.apache.maven.archiva.dependency.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.dependency.DependencyGraphFactory; +import org.apache.maven.archiva.model.DependencyScope; +import org.apache.maven.archiva.model.VersionedReference; + +import java.util.ArrayList; +import java.util.List; + +/** + * ContinuumStoreDependencyGraphTest + * + * DependencyGraphTest for testing org.apache.maven.continuum:continuum-store:1.1-SNAPSHOT + * + * Generated by archivadev:generate-dependency-tests plugin + * @version $Id$ + */ +public class ContinuumStoreDependencyGraphTest + extends AbstractDependencyGraphFactoryTestCase +{ + public void testResolvedDepsToNodes() + throws GraphTaskException + { + MemoryRepositoryDependencyGraphBuilder graphBuilder = + new MemoryRepositoryDependencyGraphBuilder(); + MemoryRepository repository = new ContinuumStoreMemoryRepository(); + graphBuilder.setMemoryRepository( repository ); + + // Create the factory, and add the test resolver. + DependencyGraphFactory factory = new DependencyGraphFactory(); + factory.setGraphBuilder( graphBuilder ); + factory.setDesiredScope( DependencyScope.TEST ); + + // Get the model to resolve from + VersionedReference rootRef = toVersionedReference( "org.apache.maven.continuum:continuum-store:1.1-SNAPSHOT"); + + // Perform the resolution. + DependencyGraph graph = factory.getGraph( rootRef ); + + // Test the results. + assertNotNull( "Graph shouldn't be null.", graph ); + + String expectedRootRef = "org.apache.maven.continuum:continuum-store:1.1-SNAPSHOT"; + List expectedNodes = new ArrayList(); + + // Check for all nodes, regardless of scope. + expectedNodes.clear(); + expectedNodes.add( "ant:ant:1.6::jar" ); + expectedNodes.add( "geronimo-spec:geronimo-spec-jta:1.0.1B-rc2::jar" ); + expectedNodes.add( "hsqldb:hsqldb:1.7.3.3::jar" ); + expectedNodes.add( "jakarta-regexp:jakarta-regexp:1.4::jar" ); + expectedNodes.add( "javax.jdo:jdo2-api:2.0::jar" ); + expectedNodes.add( "javax.resource:connector:1.0::jar" ); + expectedNodes.add( "javax.transaction:jta:1.0.1B::jar" ); + expectedNodes.add( "jmock:jmock:1.0.1::jar" ); + expectedNodes.add( "jpox:jpox:1.1.7::jar" ); + expectedNodes.add( "jpox:jpox-enhancer:1.1.7::jar" ); + expectedNodes.add( "junit:junit:3.8.1::jar" ); + expectedNodes.add( "log4j:log4j:1.2.8::jar" ); + expectedNodes.add( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); + expectedNodes.add( "ognl:ognl:2.6.7::jar" ); + expectedNodes.add( "org.apache.bcel:bcel:5.2::jar" ); + expectedNodes.add( "org.apache.maven.continuum:continuum-api:1.1-SNAPSHOT::jar" ); + expectedNodes.add( "org.apache.maven.continuum:continuum-model:1.1-SNAPSHOT::jar" ); + expectedNodes.add( "org.apache.maven.continuum:continuum-test:1.1-SNAPSHOT::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-formica:1.0-beta-13::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-i18n:1.0-beta-6::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-utils:1.4::jar" ); + expectedNodes.add( "oro:oro:2.0.6::jar" ); + expectedNodes.add( "stax:stax-api:1.0.1::jar" ); + + assertGraph( graph, expectedRootRef, expectedNodes ); + } + +} diff --git a/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ContinuumStoreMemoryRepository.java b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ContinuumStoreMemoryRepository.java new file mode 100644 index 000000000..0ca081578 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ContinuumStoreMemoryRepository.java @@ -0,0 +1,4142 @@ +package org.apache.maven.archiva.dependency.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.model.ArchivaProjectModel; +import org.apache.maven.archiva.model.Dependency; +import org.apache.maven.archiva.model.VersionedReference; + +/** + * ContinuumStoreMemoryRepository + * + * MemoryRepository for testing org.apache.maven.continuum:continuum-store:1.1-SNAPSHOT + * + * Generated by archivadev:generate-dependency-tests plugin + * @version $Id$ + */ +public class ContinuumStoreMemoryRepository + extends AbstractMemoryRepository +{ + public void initialize() + { + ArchivaProjectModel model; + Dependency dep; + + model = toModel( "org.apache.maven.continuum:continuum-store:1.1-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.continuum:continuum-parent:1.1-SNAPSHOT" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.continuum:continuum-test:1.1-SNAPSHOT::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.continuum:continuum-model:1.1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.continuum:continuum-api:1.1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.7.3.3::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + dep = toDependency( "org.apache.maven:maven-core:2.0.5::jar" ); + addExclusion( dep, "classworlds:classworlds" ); + model.addDependencyManagement( dep ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-project:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-settings:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-api:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-manager-plexus:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-bazaar:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-clearcase:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-cvsjava:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-cvsexe:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-hg:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-local:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-perforce:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-starteam:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-svnexe:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-synergy:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-vss:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-external:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-webdav:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-model:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-api:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-configuration:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-store:1.1-SNAPSHOT:tests:jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-store:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-core:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-test:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-web:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-xmlrpc-api:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-xmlrpc-client:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-xmlrpc-server:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-plexus-application:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-notifier-api:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-notifier-irc:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-notifier-jabber:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-notifier-msn:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-notifier-wagon:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-release:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-security:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-webapp:1.1-SNAPSHOT::war" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-app-configuration-web:1.0::jar" ) ); + dep = toDependency( "jpox:jpox:1.1.7::jar" ); + addExclusion( dep, "javax.sql:jdbc-stdext" ); + model.addDependencyManagement( dep ); + dep = toDependency( "jpox:jpox-enhancer:1.1.7::jar" ); + addExclusion( dep, "javax.sql:jdbc-stdext" ); + model.addDependencyManagement( dep ); + model.addDependencyManagement( toDependency( "jpox:jpox-dbcp:1.1.7::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-formica:1.0-beta-13::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-velocity:1.1.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-simple:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-test:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-notification:1.0-alpha-5::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.derby:derby:10.1.3.1::jar" ) ); + model.addDependencyManagement( toDependency( "hsqldb:hsqldb:1.7.3.3::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1::war" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); + model.addProperty( "continuumWebappVersion", "1.1-SNAPSHOT" ); + model.addProperty( "wagon.version", "1.0-beta-2" ); + model.addProperty( "maven.version", "2.0.5" ); + model.addProperty( "maven-scm.version", "1.0" ); + model.addProperty( "redback.version", "1.0-alpha-1" ); + model.addProperty( "mail-sender.version", "1.0-alpha-6" ); + addModel( model ); + + model = toModel( "org.apache.maven.continuum:continuum-parent:1.1-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); + dep = toDependency( "org.apache.maven:maven-core:2.0.5::jar" ); + addExclusion( dep, "classworlds:classworlds" ); + model.addDependencyManagement( dep ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-project:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-settings:2.0.5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-api:1.0-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-manager-plexus:1.0-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-bazaar:1.0-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-clearcase:1.0-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-cvsjava:1.0-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-cvsexe:1.0-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-hg:1.0-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-local:1.0-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-perforce:1.0-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-starteam:1.0-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-svnexe:1.0-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-synergy:1.0-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.scm:maven-scm-provider-vss:1.0-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-external:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-webdav:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-model:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-api:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-configuration:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-store:1.1-SNAPSHOT:tests:jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-store:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-core:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-test:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-web:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-xmlrpc-api:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-xmlrpc-client:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-xmlrpc-server:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-plexus-application:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-notifier-api:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-notifier-irc:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-notifier-jabber:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-notifier-msn:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-notifier-wagon:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-release:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-security:1.1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.continuum:continuum-webapp:1.1-SNAPSHOT::war" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.shared:maven-app-configuration-web:1.0::jar" ) ); + dep = toDependency( "jpox:jpox:1.1.7::jar" ); + addExclusion( dep, "javax.sql:jdbc-stdext" ); + model.addDependencyManagement( dep ); + dep = toDependency( "jpox:jpox-enhancer:1.1.7::jar" ); + addExclusion( dep, "javax.sql:jdbc-stdext" ); + model.addDependencyManagement( dep ); + model.addDependencyManagement( toDependency( "jpox:jpox-dbcp:1.1.7::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-formica:1.0-beta-13::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-velocity:1.1.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-simple:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-test:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-notification:1.0-alpha-5::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.derby:derby:10.1.3.1::jar" ) ); + model.addDependencyManagement( toDependency( "hsqldb:hsqldb:1.7.3.3::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1-SNAPSHOT::war" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addProperty( "continuumWebappVersion", "1.1-SNAPSHOT" ); + model.addProperty( "wagon.version", "1.0-beta-2" ); + model.addProperty( "maven.version", "2.0.5" ); + model.addProperty( "maven-scm.version", "1.0-SNAPSHOT" ); + model.addProperty( "redback.version", "1.0-alpha-1-SNAPSHOT" ); + model.addProperty( "mail-sender.version", "1.0-alpha-6" ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-parent:5" ); + model.setParentProject( toParent( "org.apache:apache:3" ) ); + addModel( model ); + + model = toModel( "org.apache:apache:3" ); + addModel( model ); + + model = toModel( "junit:junit:3.8.1" ); + addModel( model ); + + model = toModel( "jmock:jmock:1.0.1" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-20" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-20" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.10" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.9" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-19" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-19" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-utils:1.3" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.8" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-20" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-19::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-core:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar", "runtime" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-plugin-parameter-documenter:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar", "runtime" ) ); + model.addDependency( toDependency( "org.apache.maven.reporting:maven-reporting-api:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-profile:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-error-diagnostics:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-project:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-plugin-registry:2.0.5::jar" ) ); + dep = toDependency( "commons-cli:commons-cli:1.0::jar" ); + addExclusion( dep, "commons-lang:commons-lang" ); + addExclusion( dep, "commons-logging:commons-logging" ); + model.addDependency( dep ); + model.addDependency( toDependency( "org.apache.maven:maven-plugin-api:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-external:1.0-beta-2::jar", "runtime" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-plugin-descriptor:2.0.5::jar" ) ); + dep = toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ); + addExclusion( dep, "plexus:plexus-utils" ); + addExclusion( dep, "org.codehaus.plexus:plexus-container-default" ); + model.addDependency( dep ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-monitor:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2::jar", "runtime" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-external:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + model.addDependencyManagement( toDependency( "classworlds:classworlds:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0.3" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0.3" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.4" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-utils:1.0.4" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "classworlds:classworlds:1.1-alpha-2" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-utils:1.1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-beta-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven:maven-parent:4" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-parent:4" ); + model.setParentProject( toParent( "org.apache:apache:3" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-provider-test:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-beta-2" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8" ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-beta-2" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-beta-2::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4" ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7::jar", "compile" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); + model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7" ); + model.setParentProject( toParent( "plexus:plexus-containers:1.0.2" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-containers:1.0.2" ); + model.setParentProject( toParent( "plexus:plexus-root:1.0.3" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-root:1.0.3" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-utils:1.0.2" ); + model.setParentProject( toParent( "plexus:plexus-root:1.0.3" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + model.addDependency( toDependency( "com.jcraft:jsch:0.1.27::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "com.jcraft:jsch:0.1.27" ); + dep = toDependency( "com.jcraft:jzlib:1.0.7::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "com.jcraft:jzlib:1.0.7" ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh-external:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-file:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-shared:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); + dep = toDependency( "plexus:plexus-jetty-httpd:1.0-beta-1::jar", "test" ); + addExclusion( dep, "plexus:plexus-container-default" ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-http-shared:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + model.addDependency( toDependency( "jtidy:jtidy:4aug2000r7-dev::jar" ) ); + addModel( model ); + + model = toModel( "jtidy:jtidy:4aug2000r7-dev" ); + addModel( model ); + + model = toModel( "xml-apis:xml-apis:1.0.b2" ); + addModel( model ); + + model = toModel( "plexus:plexus-jetty-httpd:1.0-beta-1" ); + model.setParentProject( toParent( "plexus:plexus-components:1.0" ) ); + model.addDependency( toDependency( "jetty:jetty:4.2.10::jar" ) ); + model.addDependency( toDependency( "servletapi:servletapi:2.3::jar" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-components:1.0" ); + model.setParentProject( toParent( "plexus:plexus-root:1.0" ) ); + model.addDependency( toDependency( "plexus:plexus-container-default:1.0-alpha-2::jar" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-root:1.0" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-container-default:1.0-alpha-2" ); + addModel( model ); + + model = toModel( "jetty:jetty:4.2.10" ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar", "runtime" ) ); + addModel( model ); + + model = toModel( "javax.servlet:servlet-api:2.3" ); + addModel( model ); + + model = toModel( "servletapi:servletapi:2.3" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "javax.servlet" ); + model.getRelocation().setArtifactId( "servlet-api" ); + model.getRelocation().setVersion( "2.3" ); + addModel( model ); + + model = toModel( "easymock:easymock:1.2_Java1.3" ); + addModel( model ); + + model = toModel( "classworlds:classworlds:1.1" ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-settings:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-model:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-plugin-parameter-documenter:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.reporting:maven-reporting-api:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven.reporting:maven-reporting:2.0.5" ) ); + model.addDependency( toDependency( "org.apache.maven.doxia:doxia-sink-api:1.0-alpha-7::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.reporting:maven-reporting:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.doxia:doxia-sink-api:1.0-alpha-7" ); + model.setParentProject( toParent( "org.apache.maven.doxia:doxia:1.0-alpha-7" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.doxia:doxia:1.0-alpha-7" ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-profile:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-repository-metadata:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-error-diagnostics:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-project:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-test:2.0.5::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-profile:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact-test:2.0.5" ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact-manager:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-plugin-registry:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "commons-cli:commons-cli:1.0" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:1.0::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-logging:commons-logging:1.0" ); + addModel( model ); + + model = toModel( "commons-lang:commons-lang:1.0" ); + model.addDependency( toDependency( "junit:junit:3.7::jar" ) ); + addModel( model ); + + model = toModel( "junit:junit:3.7" ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-plugin-api:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-plugin-descriptor:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-plugin-api:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-monitor:2.0.5" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.5" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-api:1.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm:1.0-SNAPSHOT" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm:1.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-manager-plexus:1.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-managers:1.0-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-managers:1.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm:1.0-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-api:1.0-SNAPSHOT::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-bazaar:1.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-SNAPSHOT" ) ); + model.addDependency( toDependency( "regexp:regexp:1.3::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-providers:1.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm:1.0-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-api:1.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-test:1.0-SNAPSHOT::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-test:1.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm:1.0-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-api:1.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-manager-plexus:1.0-SNAPSHOT::jar" ) ); + addModel( model ); + + model = toModel( "regexp:regexp:1.3" ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-clearcase:1.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-cvsjava:1.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers-cvs:1.0-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvs-commons:1.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.netbeans.lib:cvsclient:20060125::jar" ) ); + model.addDependency( toDependency( "ch.ethz.ganymed:ganymed-ssh2:build210::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvstest:1.0-SNAPSHOT::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-providers-cvs:1.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-cvs-commons:1.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers-cvs:1.0-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvstest:1.0-SNAPSHOT::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-cvstest:1.0-SNAPSHOT" ); + addModel( model ); + + model = toModel( "org.netbeans.lib:cvsclient:20060125" ); + addModel( model ); + + model = toModel( "ch.ethz.ganymed:ganymed-ssh2:build210" ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-cvsexe:1.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers-cvs:1.0-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvstest:1.0-SNAPSHOT::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvs-commons:1.0-SNAPSHOT::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-hg:1.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-SNAPSHOT" ) ); + model.addDependency( toDependency( "regexp:regexp:1.3::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-local:1.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-perforce:1.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-SNAPSHOT" ) ); + model.addDependency( toDependency( "regexp:regexp:1.3::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-starteam:1.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-svnexe:1.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers-svn:1.0-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-svn-commons:1.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-svntest:1.0-SNAPSHOT::jar", "test" ) ); + model.addDependency( toDependency( "regexp:regexp:1.3::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-providers-svn:1.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-svn-commons:1.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers-svn:1.0-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-svntest:1.0-SNAPSHOT" ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-synergy:1.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-vss:1.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-webdav:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + model.addDependency( toDependency( "slide:slide-webdavlib:2.1::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar", "runtime" ) ); + model.addDependency( toDependency( "it.could:webdav:0.4::jar", "test" ) ); + model.addDependency( toDependency( "org.mortbay.jetty:jetty:4.2.12::jar", "test" ) ); + addModel( model ); + + model = toModel( "slide:slide-webdavlib:2.1" ); + model.addDependency( toDependency( "commons-httpclient:commons-httpclient:2.0.2::jar" ) ); + model.addDependency( toDependency( "jdom:jdom:1.0::jar" ) ); + model.addDependency( toDependency( "de.zeigermann.xml:xml-im-exporter:1.1::jar" ) ); + addModel( model ); + + model = toModel( "commons-httpclient:commons-httpclient:2.0.2" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + addModel( model ); + + model = toModel( "commons-logging:commons-logging:1.0.3" ); + dep = toDependency( "log4j:log4j:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "logkit:logkit:1.0.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "log4j:log4j:1.2.6" ); + addModel( model ); + + model = toModel( "logkit:logkit:1.0.1" ); + addModel( model ); + + model = toModel( "jdom:jdom:1.0" ); + dep = toDependency( "xerces:xercesImpl:2.6.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xml-apis:xml-apis:1.0.b2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "jaxen:jaxen:1.0-FCS::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "saxpath:saxpath:1.0-FCS::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xalan:xalan:2.5.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "xerces:xercesImpl:2.6.0" ); + addModel( model ); + + model = toModel( "jaxen:jaxen:1.0-FCS" ); + addModel( model ); + + model = toModel( "saxpath:saxpath:1.0-FCS" ); + addModel( model ); + + model = toModel( "xalan:xalan:2.5.0" ); + addModel( model ); + + model = toModel( "de.zeigermann.xml:xml-im-exporter:1.1" ); + addModel( model ); + + model = toModel( "commons-logging:commons-logging:1.0.4" ); + dep = toDependency( "log4j:log4j:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "logkit:logkit:1.0.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + dep = toDependency( "avalon-framework:avalon-framework:4.1.3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "avalon-framework:avalon-framework:4.1.3" ); + addModel( model ); + + model = toModel( "it.could:webdav:0.4" ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar", "runtime" ) ); + addModel( model ); + + model = toModel( "org.mortbay.jetty:jetty:4.2.12" ); + addModel( model ); + + model = toModel( "org.apache.maven.continuum:continuum-model:1.1-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.continuum:continuum-parent:1.1-SNAPSHOT" ) ); + dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); + addExclusion( dep, "com.bea.xml:jsr173-ri" ); + model.addDependency( dep ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + addModel( model ); + + model = toModel( "net.java.dev.stax-utils:stax-utils:20060502" ); + model.addDependency( toDependency( "com.bea.xml:jsr173-ri:1.0::jar" ) ); + addModel( model ); + + model = toModel( "com.bea.xml:jsr173-ri:1.0" ); + model.addDependency( toDependency( "javax.xml:jsr173:1.0::jar" ) ); + addModel( model ); + + model = toModel( "javax.xml:jsr173:1.0" ); + addModel( model ); + + model = toModel( "stax:stax-api:1.0.1" ); + addModel( model ); + + model = toModel( "org.apache.maven.continuum:continuum-api:1.1-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.continuum:continuum-parent:1.1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-formica:1.0-beta-13::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.continuum:continuum-model:1.1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-formica:1.0-beta-13" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); + model.addDependency( toDependency( "oro:oro:2.0.6::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-i18n:1.0-beta-6::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "ognl:ognl:2.6.7::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-components:1.1.9" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-16" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-16" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-16" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "oro:oro:2.0.6" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-i18n:1.0-beta-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.4" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-components:1.1.4" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-utils:1.4" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + addModel( model ); + + model = toModel( "ognl:ognl:2.6.7" ); + addModel( model ); + + model = toModel( "org.apache.maven.continuum:continuum-configuration:1.1-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.continuum:continuum-parent:1.1-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.continuum:continuum-core:1.1-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.continuum:continuum-parent:1.1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-notification:1.0-alpha-5::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.continuum:continuum-notifier-api:1.1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-svnexe:1.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-velocity:1.1.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.continuum:continuum-api:1.1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-command-line:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-api:1.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-project:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-core:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-formica:1.0-beta-13::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-action:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "jpox:jpox:1.1.7::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.continuum:continuum-store:1.1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-manager-plexus:1.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "velocity:velocity:1.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.continuum:continuum-release:1.1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.continuum:continuum-security:1.1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.7.3.3::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.continuum:continuum-test:1.1-SNAPSHOT::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.continuum:continuum-security:1.1-SNAPSHOT::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.continuum:continuum-configuration:1.1-SNAPSHOT::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-local:1.0-SNAPSHOT::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.derby:derby:10.1.3.1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-test:1.0-alpha-6::jar", "test" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar", "test" ) ); + model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-simple:1.0-alpha-6::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-quartz:1.0-alpha-3" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.6" ) ); + model.addDependency( toDependency( "quartz:quartz:1.4.5::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.2::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-components:1.1.6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "quartz:quartz:1.4.5" ); + addModel( model ); + + model = toModel( "commons-logging:commons-logging:1.0.2" ); + dep = toDependency( "log4j:log4j:1.1.3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "logkit:logkit:1.0.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "log4j:log4j:1.1.3" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-sender:1.0-alpha-6" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-mail-sender:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-notification:1.0-alpha-5" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.4" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.continuum:continuum-notifier-api:1.1-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.continuum:continuum-notifiers:1.1-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.continuum:continuum-notifiers:1.1-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.continuum:continuum-parent:1.1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.continuum:continuum-api:1.1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-notification:1.0-alpha-5::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-velocity:1.1.4" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.8" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); + model.addDependency( toDependency( "velocity:velocity:1.4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-components:1.1.8" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-15::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-15::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-15" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-15" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-6::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-15" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-15::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-15" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-15" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-15::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-6::jar" ) ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-collections:commons-collections:2.0" ); + addModel( model ); + + model = toModel( "velocity:velocity:1.4" ); + model.addDependency( toDependency( "velocity:velocity-dep:1.4::jar", "runtime" ) ); + addModel( model ); + + model = toModel( "velocity:velocity-dep:1.4" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-command-line:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.4" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.6" ) ); + model.addDependency( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); + dep = toDependency( "jpox:jpox:1.1.1::jar", "test" ); + addExclusion( dep, "javax.sql:jdbc-stdext" ); + model.addDependency( dep ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.7.3.0::jar", "test" ) ); + addModel( model ); + + model = toModel( "javax.jdo:jdo2-api:2.0" ); + model.addDependency( toDependency( "geronimo-spec:geronimo-spec-jta:1.0.1B-rc2::jar" ) ); + dep = toDependency( "xerces:xerces:2.4.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xml-apis:xml-apis:1.0.b2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "geronimo-spec:geronimo-spec-jta:1.0.1B-rc2" ); + addModel( model ); + + model = toModel( "xerces:xerces:2.4.0" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "xerces" ); + model.getRelocation().setArtifactId( "xercesImpl" ); + addModel( model ); + + model = toModel( "xerces:xercesImpl:2.4.0" ); + addModel( model ); + + model = toModel( "jpox:jpox:1.1.1" ); + model.setParentProject( toParent( "jpox:jpox-parent:1.1.1" ) ); + model.addDependency( toDependency( "log4j:log4j:1.2.8::jar" ) ); + model.addDependency( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); + model.addDependency( toDependency( "javax.resource:connector:1.0::jar" ) ); + dep = toDependency( "javax.security:jaas:1.0.01::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "javax.sql:jdbc-stdext:2.0::jar" ) ); + dep = toDependency( "ant:ant:1.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "jpox:jpox-dbcp:1.1.1::jar", "test" ) ); + model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.2::jar", "test" ) ); + model.addDependency( toDependency( "commons-pool:commons-pool:1.2::jar", "test" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.1::jar", "test" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "jpox:jpox-parent:1.1.1" ); + addModel( model ); + + model = toModel( "log4j:log4j:1.2.8" ); + addModel( model ); + + model = toModel( "javax.resource:connector:1.0" ); + addModel( model ); + + model = toModel( "javax.security:jaas:1.0.01" ); + addModel( model ); + + model = toModel( "javax.sql:jdbc-stdext:2.0" ); + addModel( model ); + + model = toModel( "ant:ant:1.6" ); + addModel( model ); + + model = toModel( "jpox:jpox-dbcp:1.1.1" ); + addModel( model ); + + model = toModel( "commons-dbcp:commons-dbcp:1.2" ); + addModel( model ); + + model = toModel( "commons-pool:commons-pool:1.2" ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); + model.addDependency( toDependency( "xerces:xerces:2.0.2::jar" ) ); + addModel( model ); + + model = toModel( "commons-collections:commons-collections:2.1" ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "xml-apis:xml-apis:2.0.2" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "xml-apis" ); + model.getRelocation().setArtifactId( "xml-apis" ); + model.getRelocation().setVersion( "1.0.b2" ); + addModel( model ); + + model = toModel( "xerces:xerces:2.0.2" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "xerces" ); + model.getRelocation().setArtifactId( "xercesImpl" ); + addModel( model ); + + model = toModel( "xerces:xercesImpl:2.0.2" ); + addModel( model ); + + model = toModel( "commons-collections:commons-collections:3.1" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "hsqldb:hsqldb:1.7.3.0" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-action:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.4" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "backport-util-concurrent:backport-util-concurrent:3.0::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-components:1.1.7" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "backport-util-concurrent:backport-util-concurrent:3.0" ); + addModel( model ); + + model = toModel( "jpox:jpox:1.1.7" ); + model.setParentProject( toParent( "jpox:jpox-parent:1.1.7" ) ); + model.addDependency( toDependency( "log4j:log4j:1.2.8::jar" ) ); + model.addDependency( toDependency( "javax.jdo:jdo2-api:2.0::jar" ) ); + model.addDependency( toDependency( "javax.resource:connector:1.0::jar" ) ); + model.addDependency( toDependency( "javax.transaction:jta:1.0.1B::jar" ) ); + dep = toDependency( "ant:ant:1.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "jpox:jpox-parent:1.1.7" ); + addModel( model ); + + model = toModel( "javax.transaction:jta:1.0.1B" ); + addModel( model ); + + model = toModel( "org.apache.maven.continuum:continuum-release:1.1-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.continuum:continuum-parent:1.1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.continuum:continuum-api:1.1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-project:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.5::jar" ) ); + dep = toDependency( "org.apache.maven.release:maven-release-manager:1.0-alpha-1::jar" ); + addExclusion( dep, "classworlds:classworlds" ); + model.addDependency( dep ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-taskqueue:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-api:1.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-manager-plexus:1.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-bazaar:1.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-clearcase:1.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvsjava:1.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvsexe:1.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-local:1.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-perforce:1.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-starteam:1.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-svnexe:1.0-SNAPSHOT::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.release:maven-release-manager:1.0-alpha-1" ); + model.setParentProject( toParent( "org.apache.maven.release:maven-release:1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + dep = toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-6::jar" ); + addExclusion( dep, "plexus:plexus-utils" ); + model.addDependency( dep ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-project:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-api:1.0-rc1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-manager-plexus:1.0-rc1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-bazaar:1.0-rc1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-clearcase:1.0-rc1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvsexe:1.0-rc1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvsjava:1.0-rc1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-hg:1.0-rc1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-perforce:1.0-rc1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-starteam:1.0-rc1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-svnexe:1.0-rc1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-synergy:1.0-rc1::jar" ) ); + model.addDependency( toDependency( "jdom:jdom:1.0::jar" ) ); + dep = toDependency( "jaxen:jaxen:1.1-beta-8::jar" ); + addExclusion( dep, "dom4j:dom4j" ); + addExclusion( dep, "xerces:xmlParserAPIs" ); + addExclusion( dep, "xerces:xercesImpl" ); + addExclusion( dep, "xom:xom" ); + model.addDependency( dep ); + model.addDependency( toDependency( "org.apache.maven.shared:maven-plugin-testing-harness:1.0-beta-1::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-test:1.0-rc1::jar", "test" ) ); + model.addDependency( toDependency( "jmock:jmock-cglib:1.0.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.release:maven-release:1" ); + model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-17" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-17::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-17" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-17::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-17" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-17" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-interactivity:1.0-alpha-6" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-interactivity:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-model:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven:2.0" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-5::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5" ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-5" ); + model.addDependency( toDependency( "com.jcraft:jsch:0.1.23::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar", "compile" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); + model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar", "compile" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-5::jar", "test" ) ); + addModel( model ); + + model = toModel( "com.jcraft:jsch:0.1.23" ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-5" ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-file:1.0-alpha-5" ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar", "test" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-5::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-5" ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar", "test" ) ); + model.addDependency( toDependency( "servletapi:servletapi:2.3::jar", "test" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "test" ) ); + model.addDependency( toDependency( "jetty:jetty:4.2.10::jar", "test" ) ); + model.addDependency( toDependency( "plexus:plexus-jetty-httpd:1.0-beta-1::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-5::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-project:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-test:2.0::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-profile:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact-test:2.0" ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-profile:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact-manager:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-5::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-repository-metadata:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-settings:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-api:1.0-rc1" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm:1.0-rc1" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm:1.0-rc1" ); + model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-manager-plexus:1.0-rc1" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-managers:1.0-rc1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-managers:1.0-rc1" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm:1.0-rc1" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-api:1.0-rc1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-bazaar:1.0-rc1" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-rc1" ) ); + model.addDependency( toDependency( "regexp:regexp:1.3::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-providers:1.0-rc1" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm:1.0-rc1" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-api:1.0-rc1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-test:1.0-rc1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-test:1.0-rc1" ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-clearcase:1.0-rc1" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-rc1" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-cvsexe:1.0-rc1" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers-cvs:1.0-rc1" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvstest:1.0-rc1::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvs-commons:1.0-rc1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-providers-cvs:1.0-rc1" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-rc1" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-cvstest:1.0-rc1" ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-cvs-commons:1.0-rc1" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers-cvs:1.0-rc1" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvstest:1.0-rc1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-cvsjava:1.0-rc1" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers-cvs:1.0-rc1" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvs-commons:1.0-rc1::jar" ) ); + model.addDependency( toDependency( "org.netbeans.lib:cvsclient:20060125::jar" ) ); + model.addDependency( toDependency( "ch.ethz.ganymed:ganymed-ssh2:build210::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvstest:1.0-rc1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-hg:1.0-rc1" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-rc1" ) ); + model.addDependency( toDependency( "regexp:regexp:1.3::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-perforce:1.0-rc1" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-rc1" ) ); + model.addDependency( toDependency( "regexp:regexp:1.3::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-starteam:1.0-rc1" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-rc1" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-svnexe:1.0-rc1" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers-svn:1.0-rc1" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-svn-commons:1.0-rc1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-svntest:1.0-rc1::jar", "test" ) ); + model.addDependency( toDependency( "regexp:regexp:1.3::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-providers-svn:1.0-rc1" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-rc1" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-svn-commons:1.0-rc1" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers-svn:1.0-rc1" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-svntest:1.0-rc1" ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-synergy:1.0-rc1" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-rc1" ) ); + addModel( model ); + + model = toModel( "jaxen:jaxen:1.1-beta-8" ); + model.addDependency( toDependency( "dom4j:dom4j:1.6.1::jar" ) ); + model.addDependency( toDependency( "jdom:jdom:1.0::jar" ) ); + model.addDependency( toDependency( "xerces:xmlParserAPIs:2.6.2::jar" ) ); + model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar" ) ); + model.addDependency( toDependency( "xom:xom:1.0b3::jar" ) ); + addModel( model ); + + model = toModel( "dom4j:dom4j:1.6.1" ); + dep = toDependency( "jaxme:jaxme-api:0.3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "jaxen:jaxen:1.1-beta-6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "msv:xsdlib:20030807::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "msv:relaxngDatatype:20030807::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "pull-parser:pull-parser:2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xpp3:xpp3:1.1.3.3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "stax:stax-api:1.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); + model.addDependency( toDependency( "junitperf:junitperf:1.8::jar", "test" ) ); + model.addDependency( toDependency( "stax:stax-ri:1.0::jar", "test" ) ); + model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar", "test" ) ); + model.addDependency( toDependency( "xalan:xalan:2.5.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "jaxme:jaxme-api:0.3" ); + addModel( model ); + + model = toModel( "jaxen:jaxen:1.1-beta-6" ); + addModel( model ); + + model = toModel( "msv:xsdlib:20030807" ); + addModel( model ); + + model = toModel( "msv:relaxngDatatype:20030807" ); + addModel( model ); + + model = toModel( "pull-parser:pull-parser:2" ); + addModel( model ); + + model = toModel( "xpp3:xpp3:1.1.3.3" ); + addModel( model ); + + model = toModel( "stax:stax-api:1.0" ); + addModel( model ); + + model = toModel( "junitperf:junitperf:1.8" ); + addModel( model ); + + model = toModel( "stax:stax-ri:1.0" ); + addModel( model ); + + model = toModel( "xerces:xercesImpl:2.6.2" ); + addModel( model ); + + model = toModel( "xalan:xalan:2.5.1" ); + addModel( model ); + + model = toModel( "xerces:xmlParserAPIs:2.6.2" ); + addModel( model ); + + model = toModel( "xom:xom:1.0b3" ); + model.addDependency( toDependency( "xerces:xmlParserAPIs:2.6.1::jar" ) ); + model.addDependency( toDependency( "xerces:xercesImpl:2.2.1::jar" ) ); + model.addDependency( toDependency( "com.ibm.icu:icu4j:2.6.1::jar" ) ); + model.addDependency( toDependency( "xalan:xalan:2.6.0::jar" ) ); + model.addDependency( toDependency( "org.ccil.cowan.tagsoup:tagsoup:0.9.7::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + addModel( model ); + + model = toModel( "xerces:xmlParserAPIs:2.6.1" ); + addModel( model ); + + model = toModel( "xerces:xercesImpl:2.2.1" ); + addModel( model ); + + model = toModel( "com.ibm.icu:icu4j:2.6.1" ); + addModel( model ); + + model = toModel( "xalan:xalan:2.6.0" ); + model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); + dep = toDependency( "xerces:xercesImpl:2.6.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "org.ccil.cowan.tagsoup:tagsoup:0.9.7" ); + addModel( model ); + + model = toModel( "javax.servlet:servlet-api:2.4" ); + addModel( model ); + + model = toModel( "org.apache.maven.shared:maven-plugin-testing-harness:1.0-beta-1" ); + model.setParentProject( toParent( "org.apache.maven.shared:maven-shared-components:1" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-project:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-core:2.0::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.shared:maven-shared-components:1" ); + model.setParentProject( toParent( "org.apache.maven:maven-parent:1" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-parent:1" ); + model.setParentProject( toParent( "org.apache:apache:1" ) ); + addModel( model ); + + model = toModel( "org.apache:apache:1" ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-core:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-5::jar", "runtime" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-plugin-parameter-documenter:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-5::jar", "runtime" ) ); + model.addDependency( toDependency( "org.apache.maven.reporting:maven-reporting-api:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-profile:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-error-diagnostics:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-project:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-plugin-registry:2.0::jar" ) ); + dep = toDependency( "commons-cli:commons-cli:1.0::jar" ); + addExclusion( dep, "commons-lang:commons-lang" ); + addExclusion( dep, "commons-logging:commons-logging" ); + model.addDependency( dep ); + model.addDependency( toDependency( "org.apache.maven:maven-plugin-api:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-plugin-descriptor:2.0::jar" ) ); + dep = toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ); + addExclusion( dep, "plexus:plexus-utils" ); + addExclusion( dep, "org.codehaus.plexus:plexus-container-default" ); + model.addDependency( dep ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-monitor:2.0::jar" ) ); + dep = toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-5::jar", "runtime" ); + addExclusion( dep, "plexus:plexus-utils" ); + addExclusion( dep, "org.codehaus.plexus:plexus-container-default" ); + model.addDependency( dep ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-plugin-parameter-documenter:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.reporting:maven-reporting-api:2.0" ); + model.setParentProject( toParent( "org.apache.maven.reporting:maven-reporting:2.0" ) ); + dep = toDependency( "doxia:doxia-sink-api:1.0-alpha-4::jar" ); + addExclusion( dep, "plexus:plexus-container-default" ); + addExclusion( dep, "plexus:plexus-utils" ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "org.apache.maven.reporting:maven-reporting:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + addModel( model ); + + model = toModel( "doxia:doxia-sink-api:1.0-alpha-4" ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-error-diagnostics:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-plugin-registry:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-plugin-api:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-plugin-descriptor:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-plugin-api:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-monitor:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + addModel( model ); + + model = toModel( "jmock:jmock-cglib:1.0.1" ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar" ) ); + model.addDependency( toDependency( "cglib:cglib-full:2.0::jar" ) ); + addModel( model ); + + model = toModel( "cglib:cglib-full:2.0" ); + addModel( model ); + + model = toModel( "org.apache.maven.continuum:continuum-security:1.1-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.continuum:continuum-parent:1.1-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1-SNAPSHOT::jar" ) ); + dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); + addExclusion( dep, "com.bea.xml:jsr173-ri" ); + model.addDependency( dep ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.woodstox:wstx-asl:3.2.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1-SNAPSHOT::jar" ) ); + dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); + addExclusion( dep, "com.bea.xml:jsr173-ri" ); + model.addDependency( dep ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + dep = toDependency( "stax:stax:1.1.1-dev::jar", "test" ); + addExclusion( dep, "xmlbeans:xmlbeans-jsr173-api" ); + model.addDependency( dep ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-jdo:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-users:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-=keys=:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-memory:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-keys:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-jdo:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authorization-rbac:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-cached:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1-SNAPSHOT::war" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "xalan:xalan:2.7.0::jar" ) ); + model.addDependencyManagement( toDependency( "xml-apis:xml-apis:1.3.03::jar" ) ); + model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependencyManagement( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); + model.addDependencyManagement( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + model.addDependencyManagement( toDependency( "hsqldb:hsqldb:1.8.0.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.derby:derby:10.1.3.1::jar" ) ); + model.addProperty( "security.version", "1.0-alpha-1-SNAPSHOT" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-1::jar" ) ); + dep = toDependency( "commons-configuration:commons-configuration:1.3::jar" ); + addExclusion( dep, "commons-beanutils:commons-beanutils-core" ); + addExclusion( dep, "xerces:xerces" ); + addExclusion( dep, "xerces:xercesImpl" ); + addExclusion( dep, "xalan:xalan" ); + addExclusion( dep, "xml-apis:xml-apis" ); + addExclusion( dep, "servletapi:servletapi" ); + model.addDependency( dep ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.7.0::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry-providers:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); + addModel( model ); + + model = toModel( "commons-configuration:commons-configuration:1.3" ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.1::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging-api:1.0.4::jar" ) ); + model.addDependency( toDependency( "commons-digester:commons-digester:1.6::jar" ) ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils-core:1.7.0::jar" ) ); + model.addDependency( toDependency( "commons-codec:commons-codec:1.3::jar" ) ); + model.addDependency( toDependency( "commons-jxpath:commons-jxpath:1.2::jar" ) ); + model.addDependency( toDependency( "xerces:xerces:2.2.1::jar" ) ); + model.addDependency( toDependency( "xalan:xalan:2.7.0::jar" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); + dep = toDependency( "servletapi:servletapi:2.4::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "spice:spice-jndikit:1.1::jar", "test" ) ); + model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.1::jar", "test" ) ); + model.addDependency( toDependency( "commons-pool:commons-pool:1.1::jar", "test" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.7.2.2::jar", "test" ) ); + model.addDependency( toDependency( "dbunit:dbunit:2.1::jar", "test" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "junit-addons:junit-addons:1.4::jar", "test" ) ); + model.addDependency( toDependency( "mockobjects:mockobjects-core:0.09::jar", "test" ) ); + model.addDependency( toDependency( "mockobjects:mockobjects-jdk1.4-j2ee1.3:0.09::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-lang:commons-lang:2.1" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-logging:commons-logging-api:1.0.4" ); + addModel( model ); + + model = toModel( "commons-digester:commons-digester:1.6" ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.6::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-beanutils:commons-beanutils:1.6" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-beanutils:commons-beanutils-core:1.7.0" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-codec:commons-codec:1.3" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-jxpath:commons-jxpath:1.2" ); + model.addDependency( toDependency( "xerces:xerces:1.2.3::jar" ) ); + model.addDependency( toDependency( "servletapi:servletapi:2.2::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8::jar" ) ); + model.addDependency( toDependency( "ant:ant-optional:1.5.1::jar" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); + model.addDependency( toDependency( "jdom:jdom:b9::jar" ) ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.4::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); + addModel( model ); + + model = toModel( "xerces:xerces:1.2.3" ); + addModel( model ); + + model = toModel( "servletapi:servletapi:2.2" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "javax.servlet" ); + model.getRelocation().setArtifactId( "servlet-api" ); + model.getRelocation().setVersion( "2.2" ); + addModel( model ); + + model = toModel( "javax.servlet:servlet-api:2.2" ); + addModel( model ); + + model = toModel( "junit:junit:3.8" ); + addModel( model ); + + model = toModel( "ant:ant-optional:1.5.1" ); + addModel( model ); + + model = toModel( "jdom:jdom:b9" ); + addModel( model ); + + model = toModel( "commons-beanutils:commons-beanutils:1.4" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "xerces:xerces:2.2.1" ); + addModel( model ); + + model = toModel( "xalan:xalan:2.7.0" ); + model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); + dep = toDependency( "xerces:xercesImpl:2.6.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "servletapi:servletapi:2.4" ); + addModel( model ); + + model = toModel( "spice:spice-jndikit:1.1" ); + addModel( model ); + + model = toModel( "commons-dbcp:commons-dbcp:1.1" ); + addModel( model ); + + model = toModel( "commons-pool:commons-pool:1.1" ); + addModel( model ); + + model = toModel( "hsqldb:hsqldb:1.7.2.2" ); + addModel( model ); + + model = toModel( "dbunit:dbunit:2.1" ); + addModel( model ); + + model = toModel( "junit-addons:junit-addons:1.4" ); + addModel( model ); + + model = toModel( "mockobjects:mockobjects-core:0.09" ); + addModel( model ); + + model = toModel( "mockobjects:mockobjects-jdk1.4-j2ee1.3:0.09" ); + addModel( model ); + + model = toModel( "commons-beanutils:commons-beanutils:1.7.0" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-logging:1.0.2" ) ); + model.addDependency( toDependency( "log4j:log4j:1.2.8::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-logging-provider-test:1.0-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-logging:1.0.2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-logging-provider-test:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-logging:1.0.2" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-memory:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication:1.0-alpha-1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1-SNAPSHOT::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1-SNAPSHOT::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users:1.0-alpha-1-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1-SNAPSHOT::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authorization:1.0-alpha-1-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authorization:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1-SNAPSHOT::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users-providers:1.0-alpha-1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-jdo:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users-providers:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users:1.0-alpha-1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1-SNAPSHOT::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); + model.addDependency( toDependency( "net.sf.ehcache:ehcache:1.2.4::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); + addModel( model ); + + model = toModel( "net.sf.ehcache:ehcache:1.2.4" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar", "compile" ) ); + dep = toDependency( "org.hibernate:hibernate:3.2.0.cr3::jar", "test" ); + addExclusion( dep, "javax.transaction:jta" ); + addExclusion( dep, "javax.security:jacc" ); + model.addDependency( dep ); + dep = toDependency( "net.sf.hibernate:hibernate:2.1.8::jar", "test" ); + addExclusion( dep, "javax.transaction:jta" ); + addExclusion( dep, "javax.security:jacc" ); + model.addDependency( dep ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "test" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "httpunit:httpunit:1.6::jar", "test" ) ); + model.addDependency( toDependency( "commons-httpclient:commons-httpclient:3.0.1::jar", "test" ) ); + model.addDependency( toDependency( "com.cenqua.clover:clover:1.3.13::jar", "test" ) ); + model.addDependency( toDependency( "checkstyle:checkstyle:4.1::jar", "test" ) ); + model.addDependency( toDependency( "checkstyle:checkstyle-optional:4.1::jar", "test" ) ); + model.addDependency( toDependency( "commons-httpclient:commons-httpclient:3.0.1::jar", "test" ) ); + model.addDependency( toDependency( "httpunit:httpunit:1.6.1::jar", "test" ) ); + model.addDependency( toDependency( "httpunit:httpunit:1.6.1::jar", "test" ) ); + model.addProperty( "licenseFile", "${basedir}/tools/clover.license" ); + addModel( model ); + + model = toModel( "org.hibernate:hibernate:3.2.0.cr3" ); + addModel( model ); + + model = toModel( "net.sf.hibernate:hibernate:2.1.8" ); + addModel( model ); + + model = toModel( "httpunit:httpunit:1.6" ); + model.addDependency( toDependency( "xerces:xmlParserAPIs:2.2.1::jar" ) ); + model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar" ) ); + model.addDependency( toDependency( "nekohtml:nekohtml:0.9.1::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependency( toDependency( "rhino:js:1.5R4.1::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar" ) ); + model.addDependency( toDependency( "jtidy:jtidy:4aug2000r7-dev::jar" ) ); + model.addDependency( toDependency( "javax.activation:activation:1.0.2::jar", "test" ) ); + model.addDependency( toDependency( "javax.mail:mail:1.3.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "xerces:xmlParserAPIs:2.2.1" ); + addModel( model ); + + model = toModel( "nekohtml:nekohtml:0.9.1" ); + model.addDependency( toDependency( "xerces:xerces:2.4.0::jar" ) ); + addModel( model ); + + model = toModel( "rhino:js:1.5R4.1" ); + addModel( model ); + + model = toModel( "javax.activation:activation:1.0.2" ); + addModel( model ); + + model = toModel( "javax.mail:mail:1.3.1" ); + model.addDependency( toDependency( "javax.activation:activation:1.0.2::jar", "compile" ) ); + addModel( model ); + + model = toModel( "commons-httpclient:commons-httpclient:3.0.1" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + model.addDependency( toDependency( "commons-codec:commons-codec:1.2::jar" ) ); + addModel( model ); + + model = toModel( "commons-codec:commons-codec:1.2" ); + addModel( model ); + + model = toModel( "com.cenqua.clover:clover:1.3.13" ); + addModel( model ); + + model = toModel( "checkstyle:checkstyle:4.1" ); + model.addDependency( toDependency( "antlr:antlr:2.7.2::jar" ) ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils-core:1.7.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + addModel( model ); + + model = toModel( "antlr:antlr:2.7.2" ); + addModel( model ); + + model = toModel( "checkstyle:checkstyle-optional:4.1" ); + model.addDependency( toDependency( "checkstyle:checkstyle:4.1::jar" ) ); + addModel( model ); + + model = toModel( "httpunit:httpunit:1.6.1" ); + addModel( model ); + + model = toModel( "commons-collections:commons-collections:3.2" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users-jdo:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users-providers:1.0-alpha-1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); + dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); + addExclusion( dep, "com.bea.xml:jsr173-ri" ); + model.addDependency( dep ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + model.addDependency( toDependency( "woodstox:wstx-asl:3.2.0::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-utils:1.2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.5" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.5" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-common:1.0-alpha-1-SNAPSHOT" ) ); + dep = toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ); + addExclusion( dep, "xerces:xercesImpl" ); + addExclusion( dep, "xerces:xmlParserAPIs" ); + model.addDependency( dep ); + dep = toDependency( "jpox:jpox:1.1.7::jar", "compile" ); + addExclusion( dep, "javax.sql:jdbc-stdext" ); + model.addDependency( dep ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1-SNAPSHOT::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-common:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "hsqldb:hsqldb:1.8.0.4" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users:1.0-alpha-1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + addModel( model ); + + model = toModel( "woodstox:wstx-asl:3.2.0" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "org.codehaus.woodstox" ); + addModel( model ); + + model = toModel( "org.codehaus.woodstox:wstx-asl:3.2.0" ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users-providers:1.0-alpha-1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys:1.0-alpha-1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.0::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-digest:1.0" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys-providers:1.0-alpha-1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-jdo:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys-providers:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys:1.0-alpha-1-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys-jdo:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys-providers:1.0-alpha-1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); + dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); + addExclusion( dep, "com.bea.xml:jsr173-ri" ); + model.addDependency( dep ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + model.addDependency( toDependency( "woodstox:wstx-asl:3.2.0::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys:1.0-alpha-1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys-providers:1.0-alpha-1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication-memory:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication-providers:1.0-alpha-1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1-SNAPSHOT::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication-providers:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication:1.0-alpha-1-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication-users:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication-providers:1.0-alpha-1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication-=keys=:1.0-alpha-1-SNAPSHOT" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication-keys:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication-providers:1.0-alpha-1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1-SNAPSHOT::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authorization-rbac:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authorization-providers:1.0-alpha-1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-cached:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1-SNAPSHOT::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authorization-providers:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authorization:1.0-alpha-1-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-cached:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1-SNAPSHOT::jar" ) ); + dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); + addExclusion( dep, "com.bea.xml:jsr173-ri" ); + model.addDependency( dep ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + dep = toDependency( "stax:stax:1.1.1-dev::jar", "test" ); + addExclusion( dep, "xmlbeans:xmlbeans-jsr173-api" ); + model.addDependency( dep ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + addModel( model ); + + model = toModel( "stax:stax:1.1.1-dev" ); + model.addDependency( toDependency( "xmlbeans:xmlbeans-jsr173-api:2.0-dev::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + addModel( model ); + + model = toModel( "xmlbeans:xmlbeans-jsr173-api:2.0-dev" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-xwork:1.0-alpha-1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-users:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-keys:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-rbac:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "org.extremecomponents:extremecomponents:1.0.1::jar" ) ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils-bean-collections:1.7.0::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); + dep = toDependency( "org.codehaus.plexus:plexus-velocity:1.1.2::jar" ); + addExclusion( dep, "plexus:plexus-utils" ); + addExclusion( dep, "commons-logging:commons-logging-api" ); + model.addDependency( dep ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependency( toDependency( "taglibs:standard:1.1.2::jar" ) ); + model.addDependency( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependency( toDependency( "opensymphony:sitemesh:2.2.1::jar" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1-SNAPSHOT::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-xwork:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-integrations:1.0-alpha-1-SNAPSHOT" ) ); + model.addDependencyManagement( toDependency( "taglibs:standard:1.1.2::jar" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-integrations:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1-SNAPSHOT::jar" ) ); + addModel( model ); + + model = toModel( "taglibs:standard:1.1.2" ); + addModel( model ); + + model = toModel( "javax.servlet:jstl:1.1.2" ); + model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); + addModel( model ); + + model = toModel( "javax.servlet:jsp-api:2.0" ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.12" ) ); + model.addDependency( toDependency( "org.easymock:easymock:2.2::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-17::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); + model.addDependency( toDependency( "opensymphony:xwork:1.2.1::jar" ) ); + model.addDependency( toDependency( "opensymphony:webwork:2.2.4::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-components:1.1.12" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.easymock:easymock:2.2" ); + addModel( model ); + + model = toModel( "opensymphony:xwork:1.2.1" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.rifers:rife-continuations:0.0.2::jar" ) ); + model.addDependency( toDependency( "opensymphony:oscore:2.2.4::jar" ) ); + model.addDependency( toDependency( "ognl:ognl:2.6.7::jar" ) ); + dep = toDependency( "org.springframework:spring-core:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-aop:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-beans:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-context:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-web:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "org.springframework:spring-mock:1.2.6::jar", "test" ) ); + dep = toDependency( "cglib:cglib:2.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependency( toDependency( "mockobjects:mockobjects-core:0.09::jar", "test" ) ); + model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + model.addDependency( toDependency( "easymock:easymockclassextension:1.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.rifers:rife-continuations:0.0.2" ); + addModel( model ); + + model = toModel( "opensymphony:oscore:2.2.4" ); + addModel( model ); + + model = toModel( "org.springframework:spring-core:1.2.6" ); + model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + dep = toDependency( "log4j:log4j:1.2.9::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.1::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar", "provided" ) ); + addModel( model ); + + model = toModel( "org.springframework:spring-parent:1.2.6" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + dep = toDependency( "log4j:log4j:1.2.9::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "cglib:cglib:2.1_3::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "commons-attributes:commons-attributes-compiler:2.1::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "org.hibernate:hibernate:3.0.5::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "org.hibernate:hibernate-annotations:3.0beta2::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "struts:struts:1.2.7::jar" ); + addExclusion( dep, "servletapi:servletapi" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "jasperreports:jasperreports:1.0.3::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "freemarker:freemarker:2.3.4::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + model.addDependencyManagement( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependencyManagement( toDependency( "aopalliance:aopalliance:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "oro:oro:2.0.8::jar" ) ); + dep = toDependency( "commons-pool:commons-pool:1.2::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "com.jamonapi:jamon:1.0::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + model.addDependencyManagement( toDependency( "xdoclet:xjavadoc:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "javax.mail:mail:1.3.2::jar" ) ); + dep = toDependency( "velocity:velocity:1.4::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + model.addDependencyManagement( toDependency( "commons-collections:commons-collections:3.1::jar" ) ); + model.addDependencyManagement( toDependency( "xml-apis:xml-apis:1.0.b2::jar", "provided" ) ); + model.addDependencyManagement( toDependency( "javax.transaction:jta:1.0.1B::jar" ) ); + dep = toDependency( "jotm:jotm:2.0.10::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "net.sf.hibernate:hibernate:2.1.8::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "c3p0:c3p0:0.9.0.2::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "commons-dbcp:commons-dbcp:1.2.1::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "com.experlog:xapool:1.5.0::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); + dep = toDependency( "com.oracle.toplink:toplink:10.1.3::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "ojb:db-ojb:1.0.3::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "javax.jdo:jdo:2.0-20050809.1515::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "com.ibatis:ibatis-sqlmap:1.3.1::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "com.ibatis:ibatis2-sqlmap:2.1.5.582::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "javax.jms:jms:1.1::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "javax.ejb:ejb:2.0::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "javax.xml:jaxrpc-api:1.1::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "commons-httpclient:commons-httpclient:3.0-rc4::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "com.caucho:burlap:2.1.12::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "com.caucho:hessian:2.1.12::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + model.addDependencyManagement( toDependency( "javax.resource:connector:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "ehcache:ehcache:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "quartz:quartz:1.5.1::jar" ) ); + model.addDependencyManagement( toDependency( "com.servlets:cos:05Nov2002::jar" ) ); + model.addDependencyManagement( toDependency( "easymock:easymock:1.2_RC2_Java1.3::jar", "test" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:jstl:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "taglibs:standard:1.0.6::jar" ) ); + dep = toDependency( "javax.faces:jsf-api:1.1::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "velocity-tools:velocity-tools-generic:1.1::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "velocity-tools:velocity-tools-view:1.1::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "poi:poi:2.5.1-final-20040804::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "itext:itext:1.3::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + dep = toDependency( "net.sourceforge.jexcelapi:jxl:2.5.7::jar" ); + dep.setOptional( true ); + model.addDependencyManagement( dep ); + addModel( model ); + + model = toModel( "log4j:log4j:1.2.9" ); + addModel( model ); + + model = toModel( "cglib:cglib:2.1_3" ); + addModel( model ); + + model = toModel( "commons-attributes:commons-attributes-compiler:2.1" ); + model.addDependency( toDependency( "commons-attributes:commons-attributes-api:2.1::jar" ) ); + addModel( model ); + + model = toModel( "commons-attributes:commons-attributes-api:2.1" ); + model.addDependency( toDependency( "ant:ant:1.5::jar" ) ); + model.addDependency( toDependency( "qdox:qdox:1.5::jar" ) ); + addModel( model ); + + model = toModel( "ant:ant:1.5" ); + addModel( model ); + + model = toModel( "qdox:qdox:1.5" ); + addModel( model ); + + model = toModel( "org.hibernate:hibernate:3.0.5" ); + addModel( model ); + + model = toModel( "org.hibernate:hibernate-annotations:3.0beta2" ); + addModel( model ); + + model = toModel( "struts:struts:1.2.7" ); + addModel( model ); + + model = toModel( "jasperreports:jasperreports:1.0.3" ); + addModel( model ); + + model = toModel( "freemarker:freemarker:2.3.4" ); + addModel( model ); + + model = toModel( "aopalliance:aopalliance:1.0" ); + addModel( model ); + + model = toModel( "oro:oro:2.0.8" ); + addModel( model ); + + model = toModel( "com.jamonapi:jamon:1.0" ); + addModel( model ); + + model = toModel( "xdoclet:xjavadoc:1.1" ); + addModel( model ); + + model = toModel( "javax.mail:mail:1.3.2" ); + model.addDependency( toDependency( "javax.activation:activation:1.0.2::jar", "compile" ) ); + addModel( model ); + + model = toModel( "jotm:jotm:2.0.10" ); + addModel( model ); + + model = toModel( "c3p0:c3p0:0.9.0.2" ); + addModel( model ); + + model = toModel( "commons-dbcp:commons-dbcp:1.2.1" ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); + model.addDependency( toDependency( "commons-pool:commons-pool:1.2::jar" ) ); + dep = toDependency( "javax.sql:jdbc-stdext:2.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); + model.addDependency( toDependency( "xerces:xerces:2.0.2::jar" ) ); + addModel( model ); + + model = toModel( "com.experlog:xapool:1.5.0" ); + addModel( model ); + + model = toModel( "com.oracle.toplink:toplink:10.1.3" ); + addModel( model ); + + model = toModel( "ojb:db-ojb:1.0.3" ); + addModel( model ); + + model = toModel( "javax.jdo:jdo:2.0-20050809.1515" ); + addModel( model ); + + model = toModel( "com.ibatis:ibatis-sqlmap:1.3.1" ); + addModel( model ); + + model = toModel( "com.ibatis:ibatis2-sqlmap:2.1.5.582" ); + addModel( model ); + + model = toModel( "javax.jms:jms:1.1" ); + addModel( model ); + + model = toModel( "javax.ejb:ejb:2.0" ); + addModel( model ); + + model = toModel( "javax.xml:jaxrpc-api:1.1" ); + addModel( model ); + + model = toModel( "commons-httpclient:commons-httpclient:3.0-rc4" ); + addModel( model ); + + model = toModel( "com.caucho:burlap:2.1.12" ); + addModel( model ); + + model = toModel( "com.caucho:hessian:2.1.12" ); + addModel( model ); + + model = toModel( "ehcache:ehcache:1.1" ); + addModel( model ); + + model = toModel( "quartz:quartz:1.5.1" ); + addModel( model ); + + model = toModel( "com.servlets:cos:05Nov2002" ); + addModel( model ); + + model = toModel( "easymock:easymock:1.2_RC2_Java1.3" ); + addModel( model ); + + model = toModel( "javax.servlet:jstl:1.0" ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar", "provided" ) ); + addModel( model ); + + model = toModel( "taglibs:standard:1.0.6" ); + addModel( model ); + + model = toModel( "javax.faces:jsf-api:1.1" ); + addModel( model ); + + model = toModel( "velocity-tools:velocity-tools-generic:1.1" ); + addModel( model ); + + model = toModel( "velocity-tools:velocity-tools-view:1.1" ); + addModel( model ); + + model = toModel( "poi:poi:2.5.1-final-20040804" ); + addModel( model ); + + model = toModel( "itext:itext:1.3" ); + addModel( model ); + + model = toModel( "net.sourceforge.jexcelapi:jxl:2.5.7" ); + addModel( model ); + + model = toModel( "org.springframework:spring-aop:1.2.6" ); + model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); + model.addDependency( toDependency( "org.springframework:spring-beans:1.2.6::jar" ) ); + model.addDependency( toDependency( "aopalliance:aopalliance:1.0::jar" ) ); + model.addDependency( toDependency( "oro:oro:2.0.8::jar" ) ); + dep = toDependency( "commons-pool:commons-pool:1.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "commons-attributes:commons-attributes-compiler:2.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "com.jamonapi:jamon:1.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "cglib:cglib:2.1_3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "xdoclet:xjavadoc:1.1::jar", "test" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + addModel( model ); + + model = toModel( "org.springframework:spring-beans:1.2.6" ); + model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); + model.addDependency( toDependency( "org.springframework:spring-core:1.2.6::jar" ) ); + dep = toDependency( "cglib:cglib:2.1_3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependency( toDependency( "javax.mail:mail:1.3.2::jar", "test" ) ); + model.addDependency( toDependency( "org.hibernate:hibernate:3.0.5::jar", "test" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.springframework:spring-context:1.2.6" ); + model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); + model.addDependency( toDependency( "org.springframework:spring-aop:1.2.6::jar" ) ); + dep = toDependency( "velocity:velocity:1.4::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "freemarker:freemarker:2.3.4::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "jasperreports:jasperreports:1.0.3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "org.springframework:spring-web:1.2.6" ); + model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); + model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependency( toDependency( "javax.servlet:jstl:1.0::jar" ) ); + model.addDependency( toDependency( "org.springframework:spring-context:1.2.6::jar" ) ); + dep = toDependency( "log4j:log4j:1.2.9::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "struts:struts:1.2.7::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "com.servlets:cos:05Nov2002::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "taglibs:standard:1.0.6::jar" ) ); + dep = toDependency( "javax.faces:jsf-api:1.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "org.springframework:spring-mock:1.2.6" ); + model.setParentProject( toParent( "org.springframework:spring-parent:1.2.6" ) ); + dep = toDependency( "org.springframework:spring-jdbc:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-web:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.springframework:spring-jdbc:1.2.6" ); + addModel( model ); + + model = toModel( "cglib:cglib:2.1" ); + model.addDependency( toDependency( "asm:asm:1.5.3::jar" ) ); + model.addDependency( toDependency( "asm:asm-util:1.3.4::jar" ) ); + model.addDependency( toDependency( "aspectwerkz:aspectwerkz-core:0.8.1::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "asm:asm:1.5.3" ); + addModel( model ); + + model = toModel( "asm:asm-util:1.3.4" ); + addModel( model ); + + model = toModel( "aspectwerkz:aspectwerkz-core:0.8.1" ); + addModel( model ); + + model = toModel( "easymock:easymockclassextension:1.1" ); + addModel( model ); + + model = toModel( "opensymphony:webwork:2.2.4" ); + model.addDependency( toDependency( "opensymphony:xwork:1.2.1::jar" ) ); + dep = toDependency( "opensymphony:xwork-tiger:1.2.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "freemarker:freemarker:2.3.4::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + dep = toDependency( "commons-lang:commons-lang:2.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "dwr:dwr:1.1-beta-3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "velocity:velocity:1.4::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "velocity-tools:velocity-tools:1.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "commons-fileupload:commons-fileupload:1.1.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "servlets.com:cos:05Nov2002::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "opensymphony:pell-multipart:2.1.5::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "opensymphony:sitemesh:2.2.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "jetty:org.mortbay.jetty:5.1.4::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "eclipse:jdtcore:3.1.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "jasperreports:jasperreports:1.1.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "jfree:jfreechart:1.0.0::jar" ); + addExclusion( dep, "gnujaxp:gnujaxp" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.apache.struts.tiles:tiles-core:0.2-SNAPSHOT::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "commons-digester:commons-digester:1.7::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "portlet-api:portlet-api:1.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.apache.pluto:pluto:1.0.1-rc4::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-10-SNAPSHOT::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "picocontainer:picocontainer:1.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "picocontainer:picocontainer-gems:1.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "nanocontainer:nanocontainer:1.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "nanocontainer:nanocontainer-nanowar:1.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-beans:1.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-core:1.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-context:1.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-web:1.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "org.springframework:spring-mock:1.2::jar", "compile" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xpp3:xpp3:1.1.3.4-RC8::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "junit:junit:3.8.1::jar", "compile" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); + model.addDependency( toDependency( "easymock:easymock:1.2_Java1.3::jar", "test" ) ); + model.addDependency( toDependency( "easymock:easymockclassextension:1.1::jar", "test" ) ); + model.addDependency( toDependency( "jmock:jmock-cglib:1.0.1::jar", "test" ) ); + model.addDependency( toDependency( "mockobjects:mockobjects-core:0.09::jar", "test" ) ); + model.addDependency( toDependency( "mockobjects:mockobjects-jdk1.3:0.09::jar", "test" ) ); + model.addDependency( toDependency( "mockobjects:mockobjects-alt-jdk1.3:0.09::jar", "test" ) ); + model.addDependency( toDependency( "mockobjects:mockobjects-alt-jdk1.3-j2ee1.3:0.09::jar", "test" ) ); + model.addDependency( toDependency( "mockobjects:mockobjects-jdk1.3-j2ee1.3:0.09::jar", "test" ) ); + addModel( model ); + + model = toModel( "opensymphony:xwork-tiger:1.2.1" ); + addModel( model ); + + model = toModel( "commons-lang:commons-lang:2.0" ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "dwr:dwr:1.1-beta-3" ); + addModel( model ); + + model = toModel( "velocity-tools:velocity-tools:1.1" ); + addModel( model ); + + model = toModel( "commons-fileupload:commons-fileupload:1.1.1" ); + addModel( model ); + + model = toModel( "servlets.com:cos:05Nov2002" ); + addModel( model ); + + model = toModel( "opensymphony:pell-multipart:2.1.5" ); + addModel( model ); + + model = toModel( "opensymphony:sitemesh:2.2.1" ); + addModel( model ); + + model = toModel( "jetty:org.mortbay.jetty:5.1.4" ); + addModel( model ); + + model = toModel( "eclipse:jdtcore:3.1.0" ); + addModel( model ); + + model = toModel( "jasperreports:jasperreports:1.1.0" ); + addModel( model ); + + model = toModel( "jfree:jfreechart:1.0.0" ); + addModel( model ); + + model = toModel( "org.apache.struts.tiles:tiles-core:0.2-SNAPSHOT" ); + addModel( model ); + + model = toModel( "commons-digester:commons-digester:1.7" ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.6::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "portlet-api:portlet-api:1.0" ); + addModel( model ); + + model = toModel( "org.apache.pluto:pluto:1.0.1-rc4" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-10-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0.6-SNAPSHOT" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1::jar" ) ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0.6-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.8-SNAPSHOT" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "picocontainer:picocontainer:1.2" ); + addModel( model ); + + model = toModel( "picocontainer:picocontainer-gems:1.2" ); + addModel( model ); + + model = toModel( "nanocontainer:nanocontainer:1.0" ); + addModel( model ); + + model = toModel( "nanocontainer:nanocontainer-nanowar:1.0" ); + addModel( model ); + + model = toModel( "org.springframework:spring-beans:1.2" ); + addModel( model ); + + model = toModel( "org.springframework:spring-core:1.2" ); + addModel( model ); + + model = toModel( "org.springframework:spring-context:1.2" ); + addModel( model ); + + model = toModel( "org.springframework:spring-web:1.2" ); + addModel( model ); + + model = toModel( "org.springframework:spring-mock:1.2" ); + addModel( model ); + + model = toModel( "xpp3:xpp3:1.1.3.4-RC8" ); + addModel( model ); + + model = toModel( "mockobjects:mockobjects-jdk1.3:0.09" ); + addModel( model ); + + model = toModel( "mockobjects:mockobjects-alt-jdk1.3:0.09" ); + addModel( model ); + + model = toModel( "mockobjects:mockobjects-alt-jdk1.3-j2ee1.3:0.09" ); + addModel( model ); + + model = toModel( "mockobjects:mockobjects-jdk1.3-j2ee1.3:0.09" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-senders:1.0-alpha-6" ) ); + model.addDependency( toDependency( "javax.mail:mail:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-test:1.0-alpha-6::jar", "test" ) ); + dep = toDependency( "org.codehaus.plexus:plexus-naming:1.0-alpha-1::jar", "test" ); + addExclusion( dep, "geronimo-spec:geronimo-spec-javamail" ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-mail-senders:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-sender:1.0-alpha-6" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); + addModel( model ); + + model = toModel( "javax.mail:mail:1.4" ); + model.addDependency( toDependency( "javax.activation:activation:1.1::jar" ) ); + addModel( model ); + + model = toModel( "javax.activation:activation:1.1" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-mail-sender-test:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-senders:1.0-alpha-6" ) ); + model.addDependency( toDependency( "dumbster:dumbster:1.5::jar" ) ); + addModel( model ); + + model = toModel( "dumbster:dumbster:1.5" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-naming:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.6" ) ); + model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); + model.addDependency( toDependency( "directory-naming:naming-java:0.8::jar" ) ); + model.addDependency( toDependency( "directory-naming:naming-factory:0.8::jar" ) ); + model.addDependency( toDependency( "commons-dbcp:commons-dbcp:1.2.1::jar" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.7.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "directory-naming:naming-core:0.8" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + addModel( model ); + + model = toModel( "directory-naming:naming-java:0.8" ); + model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + addModel( model ); + + model = toModel( "directory-naming:naming-factory:0.8" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + model.addDependency( toDependency( "directory-naming:naming-core:0.8::jar" ) ); + model.addDependency( toDependency( "geronimo-spec:geronimo-spec-javamail:1.3.1-rc1::jar" ) ); + addModel( model ); + + model = toModel( "geronimo-spec:geronimo-spec-javamail:1.3.1-rc1" ); + addModel( model ); + + model = toModel( "hsqldb:hsqldb:1.7.1" ); + addModel( model ); + + model = toModel( "org.extremecomponents:extremecomponents:1.0.1" ); + dep = toDependency( "avalon-framework:avalon-framework:4.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "batik:batik:1.5-fop-0.20-5::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.7.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.0::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.0::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + dep = toDependency( "fop:fop:0.20.5::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + dep = toDependency( "poi:poi:2.5.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "servletapi:servletapi:2.3::jar", "provided" ) ); + model.addDependency( toDependency( "taglibs:standard:1.0.2::jar" ) ); + dep = toDependency( "xalan:xalan:2.5.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xerces:xercesImpl:2.6.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xml-apis:xml-apis:2.0.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "avalon-framework:avalon-framework:4.0" ); + addModel( model ); + + model = toModel( "batik:batik:1.5-fop-0.20-5" ); + addModel( model ); + + model = toModel( "commons-collections:commons-collections:3.0" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "fop:fop:0.20.5" ); + addModel( model ); + + model = toModel( "poi:poi:2.5.1" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "poi" ); + model.getRelocation().setArtifactId( "poi" ); + model.getRelocation().setVersion( "2.5.1-final-20040804" ); + addModel( model ); + + model = toModel( "taglibs:standard:1.0.2" ); + addModel( model ); + + model = toModel( "xerces:xercesImpl:2.6.1" ); + addModel( model ); + + model = toModel( "commons-beanutils:commons-beanutils-bean-collections:1.7.0" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-velocity:1.1.2" ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7::jar", "compile" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); + model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar", "compile" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar", "compile" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging-api:1.0.4::jar", "compile" ) ); + model.addDependency( toDependency( "velocity:velocity:1.4::jar", "compile" ) ); + addModel( model ); + + model = toModel( "commons-lang:commons-lang:2.2" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-integrations:1.0-alpha-1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "taglibs:standard:1.1.2::jar" ) ); + model.addDependency( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-xwork:1.0-alpha-1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "xml-apis:xml-apis:1.3.03" ); + model.setParentProject( toParent( "org.apache:apache:1" ) ); + addModel( model ); + + model = toModel( "org.apache.derby:derby:10.1.3.1" ); + addModel( model ); + + model = toModel( "org.codehaus.woodstox:wstx-asl:3.2.1" ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + addModel( model ); + + model = toModel( "hsqldb:hsqldb:1.7.3.3" ); + addModel( model ); + + model = toModel( "org.apache.maven.continuum:continuum-test:1.1-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.continuum:continuum-parent:1.1-SNAPSHOT" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ) ); + model.addDependency( toDependency( "jpox:jpox-enhancer:1.1.7::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.continuum:continuum-api:1.1-SNAPSHOT::jar" ) ); + addModel( model ); + + model = toModel( "jpox:jpox-enhancer:1.1.7" ); + model.setParentProject( toParent( "jpox:jpox-parent:1.1.7" ) ); + model.addDependency( toDependency( "jpox:jpox:1.1.7::jar" ) ); + model.addDependency( toDependency( "org.apache.bcel:bcel:5.2::jar" ) ); + model.addDependency( toDependency( "ant:ant:1.6::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.bcel:bcel:5.2" ); + model.addDependency( toDependency( "jakarta-regexp:jakarta-regexp:1.4::jar" ) ); + addModel( model ); + + model = toModel( "jakarta-regexp:jakarta-regexp:1.4" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-mail-sender-simple:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-mail-senders:1.0-alpha-6" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-test:1.0-alpha-6::jar", "test" ) ); + model.addDependency( toDependency( "dumbster:dumbster:1.5::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.continuum:continuum-web:1.1-SNAPSHOT" ); + addModel( model ); + + model = toModel( "org.apache.maven.continuum:continuum-xmlrpc-api:1.1-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.continuum:continuum-xmlrpc:1.1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.continuum:continuum-api:1.1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.xmlrpc:xmlrpc-common:3.0::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.continuum:continuum-xmlrpc:1.1-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.continuum:continuum-parent:1.1-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.apache.xmlrpc:xmlrpc-common:3.0" ); + model.setParentProject( toParent( "org.apache.xmlrpc:xmlrpc:3.0" ) ); + model.addDependency( toDependency( "org.apache.ws.commons:ws-commons-util:1.0.1::jar" ) ); + model.addDependency( toDependency( "jaxme:jaxmeapi:0.5.1::jar", "provided" ) ); + addModel( model ); + + model = toModel( "org.apache.xmlrpc:xmlrpc:3.0" ); + model.setParentProject( toParent( "org.apache:apache:3" ) ); + model.addDependencyManagement( toDependency( "commons-httpclient:commons-httpclient:3.0.1::jar", "provided" ) ); + model.addDependencyManagement( toDependency( "commons-logging:commons-logging:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependencyManagement( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.apache.ws.commons:ws-commons-util:1.0.1::jar" ) ); + model.addDependencyManagement( toDependency( "jaxme:jaxmeapi:0.5.1::jar", "provided" ) ); + addModel( model ); + + model = toModel( "commons-logging:commons-logging:1.1" ); + model.addDependency( toDependency( "log4j:log4j:1.2.12::jar" ) ); + model.addDependency( toDependency( "logkit:logkit:1.0.1::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "avalon-framework:avalon-framework:4.1.3::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar" ) ); + addModel( model ); + + model = toModel( "log4j:log4j:1.2.12" ); + addModel( model ); + + model = toModel( "org.apache.ws.commons:ws-commons-util:1.0.1" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); + addModel( model ); + + model = toModel( "jaxme:jaxmeapi:0.5.1" ); + addModel( model ); + + model = toModel( "org.apache.maven.continuum:continuum-xmlrpc-client:1.1-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.continuum:continuum-xmlrpc:1.1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.continuum:continuum-xmlrpc-api:1.1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.xmlrpc:xmlrpc-client:3.0::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.xmlrpc:xmlrpc-client:3.0" ); + model.setParentProject( toParent( "org.apache.xmlrpc:xmlrpc:3.0" ) ); + model.addDependency( toDependency( "org.apache.xmlrpc:xmlrpc-common:3.0::jar" ) ); + model.addDependency( toDependency( "commons-httpclient:commons-httpclient:3.0.1::jar", "provided" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.continuum:continuum-xmlrpc-server:1.1-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.continuum:continuum-xmlrpc:1.1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.continuum:continuum-xmlrpc-api:1.1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.continuum:continuum-security:1.1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "org.apache.xmlrpc:xmlrpc-server:3.0::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.xmlrpc:xmlrpc-server:3.0" ); + model.setParentProject( toParent( "org.apache.xmlrpc:xmlrpc:3.0" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.1::jar" ) ); + model.addDependency( toDependency( "org.apache.xmlrpc:xmlrpc-common:3.0::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.continuum:continuum-plexus-application:1.1-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.continuum:continuum-parent:1.1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.continuum:continuum-webapp:1.1-SNAPSHOT::war" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.continuum:continuum-webapp:1.1-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.continuum:continuum-parent:1.1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.continuum:continuum-configuration:1.1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.shared:maven-app-configuration-web:1.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.continuum:continuum-core:1.1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.continuum:continuum-security:1.1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); + model.addDependency( toDependency( "opensymphony:sitemesh:2.2.1::jar" ) ); + dep = toDependency( "org.extremecomponents:extremecomponents:1.0.1::jar" ); + addExclusion( dep, "commons-collections:commons-collections" ); + model.addDependency( dep ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.apache.derby:derby:10.1.3.1::jar", "provided" ) ); + model.addDependency( toDependency( "commons-fileupload:commons-fileupload:1.1::jar" ) ); + model.addDependency( toDependency( "taglibs:standard:1.1.2::jar" ) ); + model.addDependency( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-bazaar:1.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-clearcase:1.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvsjava:1.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvsexe:1.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-hg:1.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-local:1.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-perforce:1.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-starteam:1.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-svnexe:1.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-synergy:1.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-vss:1.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.continuum:continuum-notifier-irc:1.1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.continuum:continuum-notifier-jabber:1.1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.continuum:continuum-notifier-msn:1.1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.continuum:continuum-notifier-wagon:1.1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.continuum:continuum-xmlrpc-server:1.1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar", "runtime" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar", "runtime" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar", "runtime" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2::jar", "runtime" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-external:1.0-beta-2::jar", "runtime" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-webdav:1.0-beta-2::jar", "runtime" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1-SNAPSHOT::war", "runtime" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1-SNAPSHOT::jar" ) ); + dep = toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ); + addExclusion( dep, "xerces:xercesImpl" ); + addExclusion( dep, "xerces:xmlParserAPIs" ); + model.addDependency( dep ); + model.addDependency( toDependency( "geronimo-spec:geronimo-spec-jta:1.0.1B-rc2::jar", "provided" ) ); + dep = toDependency( "jpox:jpox:1.1.7::jar" ); + addExclusion( dep, "javax.sql:jdbc-stdext" ); + model.addDependency( dep ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "javax.mail:mail:1.4::jar", "provided" ) ); + model.addDependency( toDependency( "javax.activation:activation:1.1::jar", "provided" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.12" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-17::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-2::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-2" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry-providers:1.0-alpha-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-test:1.0-alpha-2::jar", "test" ) ); + dep = toDependency( "commons-configuration:commons-configuration:1.3::jar" ); + addExclusion( dep, "commons-beanutils:commons-beanutils-core" ); + addExclusion( dep, "xerces:xerces" ); + addExclusion( dep, "xerces:xercesImpl" ); + addExclusion( dep, "xalan:xalan" ); + addExclusion( dep, "xml-apis:xml-apis" ); + addExclusion( dep, "servletapi:servletapi" ); + model.addDependency( dep ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.7.0::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.registry:plexus-registry-providers:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus.registry:plexus-registry:1.0-alpha-2" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.shared:maven-app-configuration-model:1.0" ); + model.setParentProject( toParent( "org.apache.maven.shared:maven-app-configuration:1.0" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-api:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.shared:maven-app-configuration:1.0" ); + model.setParentProject( toParent( "org.apache.maven.shared:maven-shared-components:7" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.shared:maven-shared-components:7" ); + model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.shared:maven-app-configuration-web:1.0" ); + model.setParentProject( toParent( "org.apache.maven.shared:maven-app-configuration:1.0" ) ); + model.addDependency( toDependency( "org.apache.maven.shared:maven-app-configuration-model:1.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-project:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar", "runtime" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-project:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-test:2.0.4::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-profile:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven:2.0.4" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-7::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-external:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-7::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-6::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-alpha-6" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon:1.0-alpha-6" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-6" ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-7" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); + model.addDependency( toDependency( "com.jcraft:jsch:0.1.24::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-alpha-6" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-6::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); + addModel( model ); + + model = toModel( "com.jcraft:jsch:0.1.24" ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh-external:1.0-alpha-6" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-file:1.0-alpha-7" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-6" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); + dep = toDependency( "plexus:plexus-jetty-httpd:1.0-beta-1::jar", "test" ); + addExclusion( dep, "plexus:plexus-container-default" ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-settings:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-model:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact-test:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact-manager:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-7::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-repository-metadata:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-profile:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "commons-fileupload:commons-fileupload:1.1" ); + model.addDependency( toDependency( "commons-io:commons-io:1.1::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar", "provided" ) ); + model.addDependency( toDependency( "javax.portlet:portlet-api:1.0::jar", "provided" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-io:commons-io:1.1" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "javax.portlet:portlet-api:1.0" ); + addModel( model ); + + model = toModel( "org.apache.maven.continuum:continuum-notifier-irc:1.1-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.continuum:continuum-notifiers:1.1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-ircbot:1.1-alpha-6::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.continuum:continuum-notifier-api:1.1-SNAPSHOT::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-ircbot:1.1-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.4" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.continuum:continuum-notifier-jabber:1.1-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.continuum:continuum-notifiers:1.1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.continuum:continuum-notifier-api:1.1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-jabber:1.0-alpha-4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-jabber:1.0-alpha-4" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.5" ) ); + model.addDependency( toDependency( "jivesoftware:smackx:2.0.0::jar" ) ); + model.addDependency( toDependency( "jivesoftware:smack:2.0.0::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-components:1.1.5" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.5" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "jivesoftware:smackx:2.0.0" ); + addModel( model ); + + model = toModel( "jivesoftware:smack:2.0.0" ); + addModel( model ); + + model = toModel( "org.apache.maven.continuum:continuum-notifier-msn:1.1-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.continuum:continuum-notifiers:1.1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-msn:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.continuum:continuum-notifier-api:1.1-SNAPSHOT::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-msn:1.0-alpha-2" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.4" ) ); + model.addDependency( toDependency( "jmsn:msnmlib:1.4-20050613::jar" ) ); + addModel( model ); + + model = toModel( "jmsn:msnmlib:1.4-20050613" ); + addModel( model ); + + model = toModel( "org.apache.maven.continuum:continuum-notifier-wagon:1.1-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.continuum:continuum-notifiers:1.1-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-project:2.0.5::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-notification:1.0-alpha-5::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.continuum:continuum-core:1.1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.continuum:continuum-notifier-api:1.1-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-webdav:1.0-beta-2::jar", "test" ) ); + model.addDependency( toDependency( "it.could:webdav:0.4::jar", "test" ) ); + model.addDependency( toDependency( "org.mortbay.jetty:jetty:4.2.12::jar", "test" ) ); + addModel( model ); + + model = toModel( "jpox:jpox-dbcp:1.1.7" ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-api:1.0" ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-manager-plexus:1.0" ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-bazaar:1.0" ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-clearcase:1.0" ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-cvsjava:1.0" ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-cvsexe:1.0" ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-hg:1.0" ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-local:1.0" ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-perforce:1.0" ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-starteam:1.0" ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-svnexe:1.0" ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-synergy:1.0" ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-vss:1.0" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); + dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); + addExclusion( dep, "com.bea.xml:jsr173-ri" ); + model.addDependency( dep ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.woodstox:wstx-asl:3.2.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); + dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); + addExclusion( dep, "com.bea.xml:jsr173-ri" ); + model.addDependency( dep ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + dep = toDependency( "stax:stax:1.1.1-dev::jar", "test" ); + addExclusion( dep, "xmlbeans:xmlbeans-jsr173-api" ); + model.addDependency( dep ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-keys-jdo:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-users:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-=keys=:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-memory:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authentication-keys:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-jdo:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-authorization-rbac:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-cached:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1::war" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-20::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-20::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "xalan:xalan:2.7.0::jar" ) ); + model.addDependencyManagement( toDependency( "xml-apis:xml-apis:1.3.03::jar" ) ); + model.addDependencyManagement( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependencyManagement( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); + model.addDependencyManagement( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + model.addDependencyManagement( toDependency( "hsqldb:hsqldb:1.8.0.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.derby:derby:10.1.3.1::jar" ) ); + model.addProperty( "security.version", "1.0-alpha-1" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-expression-evaluator:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.registry:plexus-registry-commons:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-memory:1.0-alpha-1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authorization:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authorization:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-jdo:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users-providers:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users-jdo:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-users-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); + dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); + addExclusion( dep, "com.bea.xml:jsr173-ri" ); + model.addDependency( dep ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + model.addDependency( toDependency( "woodstox:wstx-asl:3.2.0::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-common:1.0-alpha-1" ) ); + dep = toDependency( "org.codehaus.plexus:plexus-jdo2:1.0-alpha-8::jar" ); + addExclusion( dep, "xerces:xercesImpl" ); + addExclusion( dep, "xerces:xmlParserAPIs" ); + model.addDependency( dep ); + dep = toDependency( "jpox:jpox:1.1.7::jar", "compile" ); + addExclusion( dep, "javax.sql:jdbc-stdext" ); + model.addDependency( dep ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-common:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users-tests:1.0-alpha-1" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.0::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-jdo:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys-providers:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys-jdo:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-keys-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); + dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); + addExclusion( dep, "com.bea.xml:jsr173-ri" ); + model.addDependency( dep ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + model.addDependency( toDependency( "woodstox:wstx-asl:3.2.0::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys-tests:1.0-alpha-1" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication-memory:1.0-alpha-1" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication-users:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-memory:1.0-alpha-1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication-providers:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication-=keys=:1.0-alpha-1" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authentication-keys:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authentication-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-cached:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authorization-rbac:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authorization-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-cached:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-users-cached:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-authorization-providers:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-authorization:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-cached:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-ehcache:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac:1.0-alpha-1" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-jdo:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-common-jdo:1.0-alpha-1::jar" ) ); + dep = toDependency( "net.java.dev.stax-utils:stax-utils:20060502::jar" ); + addExclusion( dep, "com.bea.xml:jsr173-ri" ); + model.addDependency( dep ); + model.addDependency( toDependency( "stax:stax-api:1.0.1::jar" ) ); + dep = toDependency( "stax:stax:1.1.1-dev::jar", "test" ); + addExclusion( dep, "xmlbeans:xmlbeans-jsr173-api" ); + model.addDependency( dep ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-log4j-logging:1.1-alpha-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-rbac-memory:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-rbac-providers:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-model:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-tests:1.0-alpha-1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-xwork:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-configuration:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-policy:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-users:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authentication-keys:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-authorization-rbac:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-rbac-role-manager:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-api:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-mail-sender-javamail:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "org.extremecomponents:extremecomponents:1.0.1::jar" ) ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils-bean-collections:1.7.0::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.2::jar" ) ); + dep = toDependency( "org.codehaus.plexus:plexus-velocity:1.1.2::jar" ); + addExclusion( dep, "plexus:plexus-utils" ); + addExclusion( dep, "commons-logging:commons-logging-api" ); + model.addDependency( dep ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependency( toDependency( "taglibs:standard:1.1.2::jar" ) ); + model.addDependency( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.2::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.2::jar" ) ); + model.addDependency( toDependency( "opensymphony:sitemesh:2.2.1::jar" ) ); + model.addDependency( toDependency( "hsqldb:hsqldb:1.8.0.4::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-keys-memory:1.0-alpha-1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-xwork:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-integrations:1.0-alpha-1" ) ); + model.addDependencyManagement( toDependency( "taglibs:standard:1.1.2::jar" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependencyManagement( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-integrations:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-integrations:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-system:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-xwork-integration:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "taglibs:standard:1.1.2::jar" ) ); + model.addDependency( toDependency( "javax.servlet:jstl:1.1.2::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.4::jar", "provided" ) ); + model.addDependency( toDependency( "javax.servlet:jsp-api:2.0::jar", "provided" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.redback:redback-xwork-content:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.redback:redback-xwork:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-xwork-integration:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.redback:redback-taglib:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + addModel( model ); + + } +} diff --git a/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/DepManDeepVersionDependencyGraphTest.java b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/DepManDeepVersionDependencyGraphTest.java new file mode 100644 index 000000000..fa5b32f11 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/DepManDeepVersionDependencyGraphTest.java @@ -0,0 +1,74 @@ +package org.apache.maven.archiva.dependency.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.dependency.DependencyGraphFactory; +import org.apache.maven.archiva.model.DependencyScope; +import org.apache.maven.archiva.model.VersionedReference; + +import java.util.ArrayList; +import java.util.List; + +/** + * DepManDeepVersionDependencyGraphTest + * + * DependencyGraphTest for testing net.example.depman.deepversion:A:1.0 + * + * @version $Id$ + */ +public class DepManDeepVersionDependencyGraphTest + extends AbstractDependencyGraphFactoryTestCase +{ + public void testResolvedDepsToNodes() + throws GraphTaskException + { + MemoryRepositoryDependencyGraphBuilder graphBuilder = new MemoryRepositoryDependencyGraphBuilder(); + MemoryRepository repository = new DepManDeepVersionMemoryRepository(); + graphBuilder.setMemoryRepository( repository ); + + // Create the factory, and add the test resolver. + DependencyGraphFactory factory = new DependencyGraphFactory(); + factory.setGraphBuilder( graphBuilder ); + factory.setDesiredScope( DependencyScope.TEST ); + + // Get the model to resolve from + VersionedReference rootRef = toVersionedReference( "net.example.depman.deepversion:A:1.0" ); + + // Perform the resolution. + DependencyGraph graph = factory.getGraph( rootRef ); + + // Test the results. + assertNotNull( "Graph shouldn't be null.", graph ); + + String expectedRootRef = "net.example.depman.deepversion:A:1.0"; + List expectedNodes = new ArrayList(); + + // Check for all nodes, regardless of scope. + expectedNodes.clear(); + expectedNodes.add( "net.example.depman.deepversion:B:1.0::jar" ); + expectedNodes.add( "net.example.depman.deepversion:C:1.0::jar" ); + expectedNodes.add( "net.example.depman.deepversion:D:2.0::jar" ); + expectedNodes.add( "net.example.depman.deepversion:E:3.0::jar" ); + expectedNodes.add( "net.example.depman.deepversion:F:1.0::jar" ); + + assertGraph( graph, expectedRootRef, expectedNodes ); + } + +} diff --git a/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/DepManDeepVersionMemoryRepository.java b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/DepManDeepVersionMemoryRepository.java new file mode 100644 index 000000000..13f48a633 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/DepManDeepVersionMemoryRepository.java @@ -0,0 +1,77 @@ +package org.apache.maven.archiva.dependency.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.model.ArchivaProjectModel; + +/** + * DepManDeepVersionMemoryRepository + * + * MemoryRepository for testing net.example.depman.deepversion:A:1.0 + * + * @version $Id$ + */ +public class DepManDeepVersionMemoryRepository + extends AbstractMemoryRepository +{ + public void initialize() + { + ArchivaProjectModel model; + + model = toModel( "net.example.depman.deepversion:A:1.0" ); + model.addDependency( toDependency( "net.example.depman.deepversion:B:1.0::jar" ) ); + model.addDependency( toDependency( "net.example.depman.deepversion:C:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "net.example.depman.deepversion:D:2.0::jar" ) ); + addModel( model ); + + /* Having a depman in A for D:2.0 will cause an orphaned E:2.0 during the depman + * application phase. + * + * This is intentional, to test out the depman application and recovery. + */ + + model = toModel( "net.example.depman.deepversion:B:1.0" ); + model.addDependency( toDependency( "net.example.depman.deepversion:D:1.0::jar" ) ); + addModel( model ); + + model = toModel( "net.example.depman.deepversion:E:2.0" ); + addModel( model ); + + model = toModel( "net.example.depman.deepversion:E:3.0" ); + model.addDependency( toDependency( "net.example.depman.deepversion:F:1.0::jar" ) ); + addModel( model ); + + model = toModel( "net.example.depman.deepversion:F:1.0" ); + addModel( model ); + + model = toModel( "net.example.depman.deepversion:C:1.0" ); + model.addDependency( toDependency( "net.example.depman.deepversion:D:1.0::jar" ) ); + addModel( model ); + + model = toModel( "net.example.depman.deepversion:D:1.0" ); + model.addDependency( toDependency( "net.example.depman.deepversion:E:2.0::jar" ) ); + addModel( model ); + + model = toModel( "net.example.depman.deepversion:D:2.0" ); + model.addDependency( toDependency( "net.example.depman.deepversion:E:3.0::jar" ) ); + addModel( model ); + + } +} diff --git a/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/GraphvizDotTool.java b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/GraphvizDotTool.java new file mode 100644 index 000000000..754f939ae --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/GraphvizDotTool.java @@ -0,0 +1,346 @@ +package org.apache.maven.archiva.dependency.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang.StringEscapeUtils; +import org.apache.commons.lang.StringUtils; +import org.apache.maven.archiva.dependency.DependencyGraphFactory; +import org.apache.maven.archiva.model.DependencyScope; +import org.apache.maven.archiva.model.VersionedReference; +import org.codehaus.plexus.PlexusTestCase; + +import java.io.File; +import java.io.IOException; +import java.io.PrintWriter; +import java.util.Iterator; +import java.util.List; + +/** + * GraphvizDotTool - testing utility to help understand the graph. + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class GraphvizDotTool + extends PlexusTestCase + implements GraphListener +{ + private int phaseNumber = 0; + + protected VersionedReference toVersionedReference( String key ) + { + String parts[] = StringUtils.splitPreserveAllTokens( key, ':' ); + assertEquals( "Versioned Reference [" + key + "] part count.", 3, parts.length ); + + VersionedReference ref = new VersionedReference(); + ref.setGroupId( parts[0] ); + ref.setArtifactId( parts[1] ); + ref.setVersion( parts[2] ); + return ref; + } + + private DependencyGraph getDependencyGraph( MemoryRepository repository, String rootRefKey ) + throws GraphTaskException + { + MemoryRepositoryDependencyGraphBuilder graphBuilder = new MemoryRepositoryDependencyGraphBuilder(); + graphBuilder.setMemoryRepository( repository ); + + // Create the factory, and add the test resolver. + DependencyGraphFactory factory = new DependencyGraphFactory(); + factory.setGraphBuilder( graphBuilder ); + factory.setDesiredScope( DependencyScope.TEST ); + factory.addGraphListener( this ); + + // Get the model to resolve from + VersionedReference rootRef = toVersionedReference( rootRefKey ); + + // Perform the resolution. + phaseNumber = 0; + DependencyGraph graph = factory.getGraph( rootRef ); + + // Test the results. + assertNotNull( "Graph shouldn't be null.", graph ); + + return graph; + } + + public void testGenerateDots() + throws GraphTaskException + { + getDependencyGraph( new ArchivaWebappMemoryRepository(), + "org.apache.maven.archiva:archiva-webapp:1.0-alpha-2-SNAPSHOT" ); + + // getDependencyGraph( new ArchivaCommonMemoryRepository(), + // "org.apache.maven.archiva:archiva-common:1.0-alpha-2-SNAPSHOT" ); + // + // getDependencyGraph( new ArchivaXmlToolsMemoryRepository(), + // "org.apache.maven.archiva:archiva-xml-tools:1.0-alpha-2-SNAPSHOT" ); + // + // getDependencyGraph( new ContinuumStoreMemoryRepository(), + // "org.apache.maven.continuum:continuum-store:1.1-SNAPSHOT" ); + // + // getDependencyGraph( new MavenProjectInfoReportsPluginMemoryRepository(), + // "org.apache.maven.plugins:maven-project-info-reports-plugin:2.1-SNAPSHOT" ); + // + // getDependencyGraph( new WagonManagerMemoryRepository(), "org.apache.maven.wagon:wagon-manager:2.0-SNAPSHOT" ); + + getDependencyGraph( new DepManDeepVersionMemoryRepository(), "net.example.depman.deepversion:A:1.0" ); + } + + public void dependencyResolutionEvent( DependencyResolutionEvent event ) + { + /* do nothing */ + } + + public void graphError( GraphTaskException e, DependencyGraph currentGraph ) + { + /* do nothing */ + } + + public void graphPhaseEvent( GraphPhaseEvent event ) + { + String graphId = event.getGraph().getRootNode().getArtifact().getArtifactId(); + String title = "Graph: " + graphId; + + switch ( event.getType() ) + { + case GraphPhaseEvent.GRAPH_TASK_POST: + phaseNumber++; + title += " - Phase: " + phaseNumber + " - Task: " + event.getTask().getTaskId(); + writeDot( "target/graph_" + graphId + "_" + phaseNumber + "_" + event.getTask().getTaskId() + ".dot", + event.getGraph(), title ); + break; + case GraphPhaseEvent.GRAPH_DONE: + title += " FINISHED"; + writeDot( "target/graph_" + graphId + ".dot", event.getGraph(), title ); + break; + } + } + + private void writeDot( String outputFilename, DependencyGraph graph, String title ) + { + System.out.println( "Writing Graphviz output: " + outputFilename ); + try + { + File outputFile = new File( outputFilename ); + PrintWriter dot = new PrintWriter( outputFile ); + + dot.println( "// Auto generated dot file from plexus-graph-visualizer-graphviz." ); + + dot.println( "digraph example {" ); + + dot.println( "" ); + + dot.println( " // Graph Defaults" ); + dot.println( " graph [" ); + dot.println( " bgcolor=\"#ffffff\"," ); + dot.println( " fontname=\"Helvetica\"," ); + dot.println( " fontsize=\"11\"," ); + dot.println( " label=\"" + title + "\"," ); + dot.println( " labeljust=\"l\"" ); + dot.println( " rankdir=\"LR\"" ); + dot.println( " ];" ); + + // Node Defaults. + + dot.println( "" ); + dot.println( " // Node Defaults." ); + dot.println( " node [" ); + dot.println( " fontname=\"Helvetica\"," ); + dot.println( " fontsize=\"11\"," ); + dot.println( " shape=\"box\"" ); + dot.println( " ];" ); + + // Edge Defaults. + + dot.println( "" ); + dot.println( " // Edge Defaults." ); + dot.println( " edge [" ); + dot.println( " arrowsize=\"0.8\"" ); + dot.println( " fontsize=\"11\"," ); + dot.println( " ];" ); + + Iterator it; + + it = graph.getNodes().iterator(); + while ( it.hasNext() ) + { + DependencyGraphNode node = (DependencyGraphNode) it.next(); + + writeNode( dot, graph, node ); + } + + it = graph.getEdges().iterator(); + while ( it.hasNext() ) + { + DependencyGraphEdge edge = (DependencyGraphEdge) it.next(); + + DependencyGraphNode from = graph.getNode( edge.getNodeFrom() ); + DependencyGraphNode to = graph.getNode( edge.getNodeTo() ); + + writeEdge( dot, edge, from, to ); + } + + dot.println( "}" ); + dot.flush(); + dot.close(); + } + catch ( IOException e ) + { + System.err.println( "Unable to write GraphViz file " + outputFilename + " : " + e.getMessage() ); + e.printStackTrace( System.err ); + } + } + + private String toLabel( DependencyGraphNode node ) + { + StringBuffer lbl = new StringBuffer(); + + lbl.append( node.getArtifact().getGroupId() ).append( "\n" ); + lbl.append( node.getArtifact().getArtifactId() ).append( "\n" ); + lbl.append( node.getArtifact().getVersion() ); + + return StringEscapeUtils.escapeJava( lbl.toString() ); + } + + private String toId( DependencyGraphNode node ) + { + StringBuffer id = new StringBuffer(); + + String raw = DependencyGraphKeys.toKey( node.getArtifact() ); + + for ( int i = 0; i < raw.length(); i++ ) + { + char c = raw.charAt( i ); + if ( Character.isLetterOrDigit( c ) ) + { + id.append( Character.toUpperCase( c ) ); + } + else if ( ( c == '-' ) || ( c == '_' ) ) + { + id.append( "_" ); + } + } + + return id.toString(); + } + + private void writeNode( PrintWriter dot, DependencyGraph graph, DependencyGraphNode node ) + { + dot.println( "" ); + dot.println( " // Node" ); + dot.println( " \"" + toId( node ) + "\" [" ); + dot.println( " label=\"" + toLabel( node ) + "\"," ); + + List edgesTo = graph.getEdgesTo( node ); + boolean orphan = CollectionUtils.isEmpty( edgesTo ); + + if ( node.isFromParent() ) + { + dot.println( " color=\"#FF0000\"," ); + dot.println( " shape=ellipse," ); + } + else + { + dot.println( " shape=box," ); + } + + if ( node.isConflicted() ) + { + // dot.println( " fontcolor=\"#FF88FF\"," ); + dot.println( " style=filled," ); + dot.println( " fillcolor=\"#88FF88\"," ); + } + else if ( orphan ) + { + dot.println( " style=filled," ); + dot.println( " fillcolor=\"#8888FF\"," ); + } + + dot.println( " ];" ); + } + + private void writeEdge( PrintWriter dot, DependencyGraphEdge edge, DependencyGraphNode from, DependencyGraphNode to ) + { + dot.println( "" ); + dot.println( " // Edge" ); + + dot.println( " \"" + toId( from ) + "\" -> \"" + toId( to ) + "\" [" ); + + if ( edge.isDisabled() ) + { + switch ( edge.getDisabledType() ) + { + case DependencyGraph.DISABLED_CYCLIC: + dot.println( " color=\"#FF0000\"," ); + break; + case DependencyGraph.DISABLED_OPTIONAL: + dot.println( " color=\"#FF00FF\"," ); + break; + case DependencyGraph.DISABLED_NEARER_DEP: + dot.println( " color=\"#00FF00\"," ); + break; + case DependencyGraph.DISABLED_NEARER_EDGE: + dot.println( " color=\"#88FF88\"," ); + break; + default: + case DependencyGraph.DISABLED_EXCLUDED: + dot.println( " color=\"#0000FF\"," ); + break; + } + + dot.println( " label=\"" + edge.getDisabledReason() + "\"," ); + dot.println( " fontsize=\"8\"," ); + } + else if ( DependencyScope.TEST.equals( edge.getScope() ) ) + { + dot.println( " style=\"dashed\"," ); + dot.println( " color=\"#DDDDDD\"," ); + } + else if ( DependencyScope.RUNTIME.equals( edge.getScope() ) ) + { + dot.println( " style=\"dashed\"," ); + dot.println( " color=\"#DDFFDD\"," ); + dot.println( " label=\"runtime\"," ); + dot.println( " fontsize=\"8\"," ); + } + else if ( DependencyScope.PROVIDED.equals( edge.getScope() ) ) + { + dot.println( " style=\"dashed\"," ); + dot.println( " color=\"#DDDDFF\"," ); + dot.println( " label=\"provided\"," ); + dot.println( " fontsize=\"8\"," ); + } + else if ( DependencyScope.SYSTEM.equals( edge.getScope() ) ) + { + dot.println( " style=\"dashed\"," ); + dot.println( " color=\"#FFDDDD\"," ); + dot.println( " label=\"system\"," ); + dot.println( " fontsize=\"8\"," ); + } + + dot.println( " arrowtail=none," ); + dot.println( " arrowhead=normal" ); + + dot.println( " ];" ); + } + +} diff --git a/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/Keys.java b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/Keys.java new file mode 100644 index 000000000..1511ea058 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/Keys.java @@ -0,0 +1,47 @@ +package org.apache.maven.archiva.dependency.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.model.ArchivaProjectModel; + +/** + * Keys - utility methods for converting common objects into string keys. + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class Keys +{ + public static String toKey( ArchivaProjectModel model ) + { + return toKey( model.getGroupId(), model.getArtifactId(), model.getVersion() ); + } + + public static String toKey( String groupId, String artifactId, String version ) + { + StringBuffer key = new StringBuffer(); + + key.append( groupId ).append( ":" ); + key.append( artifactId ).append( ":" ); + key.append( version ); + + return key.toString(); + } +} diff --git a/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MavenProjectInfoReportsPluginDependencyGraphTest.java b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MavenProjectInfoReportsPluginDependencyGraphTest.java new file mode 100644 index 000000000..fcc63f0d6 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MavenProjectInfoReportsPluginDependencyGraphTest.java @@ -0,0 +1,139 @@ +package org.apache.maven.archiva.dependency.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.dependency.DependencyGraphFactory; +import org.apache.maven.archiva.model.DependencyScope; +import org.apache.maven.archiva.model.VersionedReference; + +import java.util.ArrayList; +import java.util.List; + +/** + * MavenProjectInfoReportsPluginDependencyGraphTest + * + * DependencyGraphTest for testing org.apache.maven.plugins:maven-project-info-reports-plugin:2.1-SNAPSHOT + * + * Generated by archivadev:generate-dependency-tests plugin + * @version $Id$ + */ +public class MavenProjectInfoReportsPluginDependencyGraphTest + extends AbstractDependencyGraphFactoryTestCase +{ + public void testResolvedDepsToNodes() + throws GraphTaskException + { + MemoryRepositoryDependencyGraphBuilder graphBuilder = + new MemoryRepositoryDependencyGraphBuilder(); + MemoryRepository repository = new MavenProjectInfoReportsPluginMemoryRepository(); + graphBuilder.setMemoryRepository( repository ); + + // Create the factory, and add the test resolver. + DependencyGraphFactory factory = new DependencyGraphFactory(); + factory.setGraphBuilder( graphBuilder ); + factory.setDesiredScope( DependencyScope.TEST ); + + // Get the model to resolve from + VersionedReference rootRef = toVersionedReference( "org.apache.maven.plugins:maven-project-info-reports-plugin:2.1-SNAPSHOT"); + + // Perform the resolution. + DependencyGraph graph = factory.getGraph( rootRef ); + + // Test the results. + assertNotNull( "Graph shouldn't be null.", graph ); + + String expectedRootRef = "org.apache.maven.plugins:maven-project-info-reports-plugin:2.1-SNAPSHOT"; + List expectedNodes = new ArrayList(); + + // Check for all nodes, regardless of scope. + expectedNodes.clear(); + expectedNodes.add( "classworlds:classworlds:1.1-alpha-2::jar" ); + expectedNodes.add( "com.jcraft:jsch:0.1.27::jar" ); + expectedNodes.add( "commons-beanutils:commons-beanutils:1.7.0::jar" ); + expectedNodes.add( "commons-cli:commons-cli:1.0::jar" ); + expectedNodes.add( "commons-collections:commons-collections:3.1::jar" ); + expectedNodes.add( "commons-digester:commons-digester:1.6::jar" ); + expectedNodes.add( "commons-logging:commons-logging:1.0.4::jar" ); + expectedNodes.add( "commons-validator:commons-validator:1.2.0::jar" ); + expectedNodes.add( "httpunit:httpunit:1.6::jar" ); + expectedNodes.add( "jakarta-regexp:jakarta-regexp:1.4::jar" ); + expectedNodes.add( "javax.servlet:servlet-api:2.3::jar" ); + expectedNodes.add( "jtidy:jtidy:4aug2000r7-dev::jar" ); + expectedNodes.add( "junit:junit:3.8.1::jar" ); + expectedNodes.add( "nekohtml:nekohtml:0.9.1::jar" ); + expectedNodes.add( "org.apache.bcel:bcel:5.2::jar" ); + expectedNodes.add( "org.apache.maven:maven-artifact:2.0.4::jar" ); + expectedNodes.add( "org.apache.maven:maven-artifact-manager:2.0.2::jar" ); + expectedNodes.add( "org.apache.maven:maven-core:2.0::jar" ); + expectedNodes.add( "org.apache.maven:maven-error-diagnostics:2.0::jar" ); + expectedNodes.add( "org.apache.maven:maven-model:2.0.4::jar" ); + expectedNodes.add( "org.apache.maven:maven-monitor:2.0::jar" ); + expectedNodes.add( "org.apache.maven:maven-plugin-api:2.0.4::jar" ); + expectedNodes.add( "org.apache.maven:maven-plugin-descriptor:2.0::jar" ); + expectedNodes.add( "org.apache.maven:maven-plugin-parameter-documenter:2.0::jar" ); + expectedNodes.add( "org.apache.maven:maven-plugin-registry:2.0::jar" ); + expectedNodes.add( "org.apache.maven:maven-profile:2.0::jar" ); + expectedNodes.add( "org.apache.maven:maven-project:2.0.4::jar" ); + expectedNodes.add( "org.apache.maven:maven-repository-metadata:2.0::jar" ); + expectedNodes.add( "org.apache.maven:maven-settings:2.0.4::jar" ); + expectedNodes.add( "org.apache.maven.doxia:doxia-core:1.0-alpha-8::jar" ); + expectedNodes.add( "org.apache.maven.doxia:doxia-decoration-model:1.0-alpha-8::jar" ); + expectedNodes.add( "org.apache.maven.doxia:doxia-sink-api:1.0-alpha-8::jar" ); + expectedNodes.add( "org.apache.maven.doxia:doxia-site-renderer:1.0-alpha-8::jar" ); + expectedNodes.add( "org.apache.maven.reporting:maven-reporting-api:2.0.4::jar" ); + expectedNodes.add( "org.apache.maven.reporting:maven-reporting-impl:2.0.4::jar" ); + expectedNodes.add( "org.apache.maven.scm:maven-scm-api:1.0-beta-4::jar" ); + expectedNodes.add( "org.apache.maven.scm:maven-scm-manager-plexus:1.0-beta-4::jar" ); + expectedNodes.add( "org.apache.maven.scm:maven-scm-provider-clearcase:1.0-beta-4::jar" ); + expectedNodes.add( "org.apache.maven.scm:maven-scm-provider-cvs-commons:1.0-beta-4::jar" ); + expectedNodes.add( "org.apache.maven.scm:maven-scm-provider-cvsexe:1.0-beta-4::jar" ); + expectedNodes.add( "org.apache.maven.scm:maven-scm-provider-perforce:1.0-beta-4::jar" ); + expectedNodes.add( "org.apache.maven.scm:maven-scm-provider-starteam:1.0-beta-4::jar" ); + expectedNodes.add( "org.apache.maven.scm:maven-scm-provider-svn-commons:1.0-beta-4::jar" ); + expectedNodes.add( "org.apache.maven.scm:maven-scm-provider-svnexe:1.0-beta-4::jar" ); + expectedNodes.add( "org.apache.maven.shared:maven-dependency-tree:1.0-alpha-2::jar" ); + expectedNodes.add( "org.apache.maven.shared:maven-plugin-testing-harness:1.0::jar" ); + expectedNodes.add( "org.apache.maven.shared:maven-shared-jar:1.0-SNAPSHOT::jar" ); + expectedNodes.add( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ); + expectedNodes.add( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar" ); + expectedNodes.add( "org.apache.maven.wagon:wagon-http-shared:1.0-beta-2::jar" ); + expectedNodes.add( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ); + expectedNodes.add( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2::jar" ); + expectedNodes.add( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-digest:1.0::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-i18n:1.0-beta-6::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-utils:1.1::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-velocity:1.1.3::jar" ); + expectedNodes.add( "oro:oro:2.0.7::jar" ); + expectedNodes.add( "plexus:plexus-utils:1.0.2::jar" ); + expectedNodes.add( "regexp:regexp:1.3::jar" ); + expectedNodes.add( "rhino:js:1.5R4.1::jar" ); + expectedNodes.add( "velocity:velocity:1.4::jar" ); + expectedNodes.add( "velocity:velocity-dep:1.4::jar" ); + expectedNodes.add( "xerces:xercesImpl:2.6.2::jar" ); + expectedNodes.add( "xerces:xmlParserAPIs:2.2.1::jar" ); + expectedNodes.add( "xml-apis:xml-apis:1.0.b2::jar" ); + + assertGraph( graph, expectedRootRef, expectedNodes ); + } + +} diff --git a/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MavenProjectInfoReportsPluginMemoryRepository.java b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MavenProjectInfoReportsPluginMemoryRepository.java new file mode 100644 index 000000000..a61f1c5b3 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MavenProjectInfoReportsPluginMemoryRepository.java @@ -0,0 +1,1040 @@ +package org.apache.maven.archiva.dependency.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.model.ArchivaProjectModel; +import org.apache.maven.archiva.model.Dependency; +import org.apache.maven.archiva.model.VersionedReference; + +/** + * MavenProjectInfoReportsPluginMemoryRepository + * + * MemoryRepository for testing org.apache.maven.plugins:maven-project-info-reports-plugin:2.1-SNAPSHOT + * + * Generated by archivadev:generate-dependency-tests plugin + * @version $Id$ + */ +public class MavenProjectInfoReportsPluginMemoryRepository + extends AbstractMemoryRepository +{ + public void initialize() + { + ArchivaProjectModel model; + Dependency dep; + + model = toModel( "org.apache.maven.plugins:maven-project-info-reports-plugin:2.1-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.plugins:maven-plugins:8" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-plugin-api:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.4::jar" ) ); + model.addDependency( toDependency( "commons-validator:commons-validator:1.2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.reporting:maven-reporting-impl:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.shared:maven-shared-jar:1.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.shared:maven-dependency-tree:1.0-alpha-2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-api:1.0-beta-4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-manager-plexus:1.0-beta-4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-perforce:1.0-beta-4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-clearcase:1.0-beta-4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-starteam:1.0-beta-4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-svnexe:1.0-beta-4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvsexe:1.0-beta-4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.doxia:doxia-core:1.0-alpha-8::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.doxia:doxia-site-renderer:1.0-alpha-8::jar" ) ); + model.addDependency( toDependency( "httpunit:httpunit:1.6::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.shared:maven-plugin-testing-harness:1.0::jar", "test" ) ); + model.addProperty( "wagon.version", "1.0-beta-2" ); + model.addProperty( "scm.version", "1.0-beta-4" ); + addModel( model ); + + model = toModel( "org.apache.maven.plugins:maven-plugins:8" ); + model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-parent:5" ); + model.setParentProject( toParent( "org.apache:apache:3" ) ); + addModel( model ); + + model = toModel( "org.apache:apache:3" ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-plugin-api:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven:2.0.4" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-7::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-external:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-7::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-6::jar" ) ); + addModel( model ); + + model = toModel( "junit:junit:3.8.1" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0.3" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0.3" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.4" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-utils:1.0.4" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "classworlds:classworlds:1.1-alpha-2" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-utils:1.1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-alpha-6" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon:1.0-alpha-6" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-6" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8" ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-7" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); + model.addDependency( toDependency( "com.jcraft:jsch:0.1.24::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-alpha-6" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-6::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); + addModel( model ); + + model = toModel( "com.jcraft:jsch:0.1.24" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4" ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7::jar", "compile" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); + model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7" ); + model.setParentProject( toParent( "plexus:plexus-containers:1.0.2" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-containers:1.0.2" ); + model.setParentProject( toParent( "plexus:plexus-root:1.0.3" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-root:1.0.3" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-utils:1.0.2" ); + model.setParentProject( toParent( "plexus:plexus-root:1.0.3" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh-external:1.0-alpha-6" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-file:1.0-alpha-7" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-6" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); + dep = toDependency( "plexus:plexus-jetty-httpd:1.0-beta-1::jar", "test" ); + addExclusion( dep, "plexus:plexus-container-default" ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "plexus:plexus-jetty-httpd:1.0-beta-1" ); + model.setParentProject( toParent( "plexus:plexus-components:1.0" ) ); + model.addDependency( toDependency( "jetty:jetty:4.2.10::jar" ) ); + model.addDependency( toDependency( "servletapi:servletapi:2.3::jar" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-components:1.0" ); + model.setParentProject( toParent( "plexus:plexus-root:1.0" ) ); + model.addDependency( toDependency( "plexus:plexus-container-default:1.0-alpha-2::jar" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-root:1.0" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-container-default:1.0-alpha-2" ); + addModel( model ); + + model = toModel( "jetty:jetty:4.2.10" ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar", "runtime" ) ); + addModel( model ); + + model = toModel( "javax.servlet:servlet-api:2.3" ); + addModel( model ); + + model = toModel( "servletapi:servletapi:2.3" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "javax.servlet" ); + model.getRelocation().setArtifactId( "servlet-api" ); + model.getRelocation().setVersion( "2.3" ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-settings:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-model:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + addModel( model ); + + model = toModel( "commons-validator:commons-validator:1.2.0" ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.7.0::jar" ) ); + model.addDependency( toDependency( "commons-digester:commons-digester:1.6::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar" ) ); + model.addDependency( toDependency( "oro:oro:2.0.8::jar" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:2.0.2::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-beanutils:commons-beanutils:1.7.0" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + addModel( model ); + + model = toModel( "commons-logging:commons-logging:1.0.3" ); + dep = toDependency( "log4j:log4j:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "logkit:logkit:1.0.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "log4j:log4j:1.2.6" ); + addModel( model ); + + model = toModel( "logkit:logkit:1.0.1" ); + addModel( model ); + + model = toModel( "junit:junit:3.7" ); + addModel( model ); + + model = toModel( "commons-digester:commons-digester:1.6" ); + model.addDependency( toDependency( "commons-beanutils:commons-beanutils:1.6::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.1::jar" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-beanutils:commons-beanutils:1.6" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-logging:commons-logging:1.0" ); + addModel( model ); + + model = toModel( "commons-collections:commons-collections:2.0" ); + addModel( model ); + + model = toModel( "commons-collections:commons-collections:2.1" ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "xml-apis:xml-apis:1.0.b2" ); + addModel( model ); + + model = toModel( "commons-logging:commons-logging:1.0.4" ); + dep = toDependency( "log4j:log4j:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "logkit:logkit:1.0.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + dep = toDependency( "avalon-framework:avalon-framework:4.1.3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "avalon-framework:avalon-framework:4.1.3" ); + addModel( model ); + + model = toModel( "oro:oro:2.0.8" ); + addModel( model ); + + model = toModel( "xml-apis:xml-apis:2.0.2" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "xml-apis" ); + model.getRelocation().setArtifactId( "xml-apis" ); + model.getRelocation().setVersion( "1.0.b2" ); + addModel( model ); + + model = toModel( "org.apache.maven.reporting:maven-reporting-impl:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven.reporting:maven-reporting:2.0.4" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-project:2.0.4::jar" ) ); + model.addDependency( toDependency( "commons-validator:commons-validator:1.2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.doxia:doxia-core:1.0-alpha-7::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-plugin-api:2.0.4::jar" ) ); + model.addDependency( toDependency( "oro:oro:2.0.7::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.reporting:maven-reporting-api:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.doxia:doxia-site-renderer:1.0-alpha-7::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.reporting:maven-reporting:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-project:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-test:2.0.4::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-profile:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact-test:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact-manager:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-7::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-repository-metadata:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-profile:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.4" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.doxia:doxia-core:1.0-alpha-7" ); + model.setParentProject( toParent( "org.apache.maven.doxia:doxia:1.0-alpha-7" ) ); + model.addDependency( toDependency( "oro:oro:2.0.7::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.doxia:doxia-sink-api:1.0-alpha-7::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.doxia:doxia:1.0-alpha-7" ); + addModel( model ); + + model = toModel( "oro:oro:2.0.7" ); + addModel( model ); + + model = toModel( "org.apache.maven.doxia:doxia-sink-api:1.0-alpha-7" ); + model.setParentProject( toParent( "org.apache.maven.doxia:doxia:1.0-alpha-7" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.reporting:maven-reporting-api:2.0.4" ); + model.setParentProject( toParent( "org.apache.maven.reporting:maven-reporting:2.0.4" ) ); + model.addDependency( toDependency( "org.apache.maven.doxia:doxia-sink-api:1.0-alpha-7::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.doxia:doxia-site-renderer:1.0-alpha-7" ); + model.setParentProject( toParent( "org.apache.maven.doxia:doxia:1.0-alpha-7" ) ); + model.addDependency( toDependency( "org.apache.maven.doxia:doxia-core:1.0-alpha-7::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-i18n:1.0-beta-6::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-velocity:1.1.2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.doxia:doxia-decoration-model:1.0-alpha-7::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-i18n:1.0-beta-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.4" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-components:1.1.4" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-velocity:1.1.2" ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7::jar", "compile" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); + model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar", "compile" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar", "compile" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging-api:1.0.4::jar", "compile" ) ); + model.addDependency( toDependency( "velocity:velocity:1.4::jar", "compile" ) ); + addModel( model ); + + model = toModel( "commons-logging:commons-logging-api:1.0.4" ); + addModel( model ); + + model = toModel( "velocity:velocity:1.4" ); + model.addDependency( toDependency( "velocity:velocity-dep:1.4::jar", "runtime" ) ); + addModel( model ); + + model = toModel( "velocity:velocity-dep:1.4" ); + addModel( model ); + + model = toModel( "org.apache.maven.doxia:doxia-decoration-model:1.0-alpha-7" ); + model.setParentProject( toParent( "org.apache.maven.doxia:doxia:1.0-alpha-7" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.shared:maven-shared-jar:1.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.shared:maven-shared-components:3" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0.2::jar", "compile" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0.2::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.0::jar" ) ); + model.addDependency( toDependency( "org.apache.bcel:bcel:5.2::jar", "compile" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.1::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.shared:maven-shared-components:3" ); + model.setParentProject( toParent( "org.apache.maven:maven-parent:4" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-parent:4" ); + model.setParentProject( toParent( "org.apache:apache:3" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-model:2.0.2" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven:2.0.2" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-external:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-6::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-6" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-alpha-6" ) ); + model.addDependency( toDependency( "com.jcraft:jsch:0.1.24::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-file:1.0-alpha-6" ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact-manager:2.0.2" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.2" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0.2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-6::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0.2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-6::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-repository-metadata:2.0.2" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact:2.0.2" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0.2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-digest:1.0" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.7" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-components:1.1.7" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.8" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.bcel:bcel:5.2" ); + model.addDependency( toDependency( "jakarta-regexp:jakarta-regexp:1.4::jar" ) ); + addModel( model ); + + model = toModel( "jakarta-regexp:jakarta-regexp:1.4" ); + addModel( model ); + + model = toModel( "commons-collections:commons-collections:3.1" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.shared:maven-dependency-tree:1.0-alpha-2" ); + model.setParentProject( toParent( "org.apache.maven.shared:maven-shared-components:5" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-project:2.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.shared:maven-shared-components:5" ); + model.setParentProject( toParent( "org.apache.maven:maven-parent:4" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-beta-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven:maven-parent:4" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-provider-test:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-beta-2" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon:1.0-beta-2" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-beta-2::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + model.addDependency( toDependency( "com.jcraft:jsch:0.1.27::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:1.0-beta-2::jar", "test" ) ); + addModel( model ); + + model = toModel( "com.jcraft:jsch:0.1.27" ); + dep = toDependency( "com.jcraft:jzlib:1.0.7::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "com.jcraft:jzlib:1.0.7" ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-file:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-shared:1.0-beta-2::jar" ) ); + model.addDependency( toDependency( "xml-apis:xml-apis:1.0.b2::jar" ) ); + dep = toDependency( "plexus:plexus-jetty-httpd:1.0-beta-1::jar", "test" ); + addExclusion( dep, "plexus:plexus-container-default" ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-http-shared:1.0-beta-2" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:1.0-beta-2" ) ); + model.addDependency( toDependency( "jtidy:jtidy:4aug2000r7-dev::jar" ) ); + addModel( model ); + + model = toModel( "jtidy:jtidy:4aug2000r7-dev" ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-api:1.0-beta-4" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm:1.0-beta-4" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm:1.0-beta-4" ); + model.setParentProject( toParent( "org.apache.maven:maven-parent:4" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-manager-plexus:1.0-beta-4" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-managers:1.0-beta-4" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-managers:1.0-beta-4" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm:1.0-beta-4" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-api:1.0-beta-4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-perforce:1.0-beta-4" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-beta-4" ) ); + model.addDependency( toDependency( "regexp:regexp:1.3::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-providers:1.0-beta-4" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm:1.0-beta-4" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-api:1.0-beta-4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-test:1.0-beta-4::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-test:1.0-beta-4" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm:1.0-beta-4" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-api:1.0-beta-4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-manager-plexus:1.0-beta-4::jar" ) ); + addModel( model ); + + model = toModel( "regexp:regexp:1.3" ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-clearcase:1.0-beta-4" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-beta-4" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-starteam:1.0-beta-4" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-beta-4" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-svnexe:1.0-beta-4" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers-svn:1.0-beta-4" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-svn-commons:1.0-beta-4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-svntest:1.0-beta-4::jar", "test" ) ); + model.addDependency( toDependency( "regexp:regexp:1.3::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-providers-svn:1.0-beta-4" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-beta-4" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-svn-commons:1.0-beta-4" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers-svn:1.0-beta-4" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-svntest:1.0-beta-4" ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-cvsexe:1.0-beta-4" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers-cvs:1.0-beta-4" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvstest:1.0-beta-4::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvs-commons:1.0-beta-4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-providers-cvs:1.0-beta-4" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers:1.0-beta-4" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-cvstest:1.0-beta-4" ); + addModel( model ); + + model = toModel( "org.apache.maven.scm:maven-scm-provider-cvs-commons:1.0-beta-4" ); + model.setParentProject( toParent( "org.apache.maven.scm:maven-scm-providers-cvs:1.0-beta-4" ) ); + model.addDependency( toDependency( "org.apache.maven.scm:maven-scm-provider-cvstest:1.0-beta-4::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.doxia:doxia-core:1.0-alpha-8" ); + model.setParentProject( toParent( "org.apache.maven.doxia:doxia:1.0-alpha-8" ) ); + model.addDependency( toDependency( "oro:oro:2.0.7::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.doxia:doxia-sink-api:1.0-alpha-8::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar", "runtime" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.doxia:doxia:1.0-alpha-8" ); + model.setParentProject( toParent( "org.apache.maven:maven-parent:1" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-parent:1" ); + model.setParentProject( toParent( "org.apache:apache:1" ) ); + addModel( model ); + + model = toModel( "org.apache:apache:1" ); + addModel( model ); + + model = toModel( "org.apache.maven.doxia:doxia-sink-api:1.0-alpha-8" ); + model.setParentProject( toParent( "org.apache.maven.doxia:doxia:1.0-alpha-8" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.doxia:doxia-site-renderer:1.0-alpha-8" ); + model.setParentProject( toParent( "org.apache.maven.doxia:doxia:1.0-alpha-8" ) ); + model.addDependency( toDependency( "org.apache.maven.doxia:doxia-core:1.0-alpha-8::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-i18n:1.0-beta-6::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-velocity:1.1.3::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.doxia:doxia-decoration-model:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-velocity:1.1.3" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.5" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:2.0::jar" ) ); + model.addDependency( toDependency( "velocity:velocity:1.4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-components:1.1.5" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.5" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.5" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.doxia:doxia-decoration-model:1.0-alpha-8" ); + model.setParentProject( toParent( "org.apache.maven.doxia:doxia:1.0-alpha-8" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "httpunit:httpunit:1.6" ); + model.addDependency( toDependency( "xerces:xmlParserAPIs:2.2.1::jar" ) ); + model.addDependency( toDependency( "xerces:xercesImpl:2.6.2::jar" ) ); + model.addDependency( toDependency( "nekohtml:nekohtml:0.9.1::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependency( toDependency( "rhino:js:1.5R4.1::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar" ) ); + model.addDependency( toDependency( "jtidy:jtidy:4aug2000r7-dev::jar" ) ); + model.addDependency( toDependency( "javax.activation:activation:1.0.2::jar", "test" ) ); + model.addDependency( toDependency( "javax.mail:mail:1.3.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "xerces:xmlParserAPIs:2.2.1" ); + addModel( model ); + + model = toModel( "xerces:xercesImpl:2.6.2" ); + addModel( model ); + + model = toModel( "nekohtml:nekohtml:0.9.1" ); + model.addDependency( toDependency( "xerces:xerces:2.4.0::jar" ) ); + addModel( model ); + + model = toModel( "xerces:xerces:2.4.0" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "xerces" ); + model.getRelocation().setArtifactId( "xercesImpl" ); + addModel( model ); + + model = toModel( "xerces:xercesImpl:2.4.0" ); + addModel( model ); + + model = toModel( "rhino:js:1.5R4.1" ); + addModel( model ); + + model = toModel( "javax.activation:activation:1.0.2" ); + addModel( model ); + + model = toModel( "javax.mail:mail:1.3.1" ); + model.addDependency( toDependency( "javax.activation:activation:1.0.2::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.shared:maven-plugin-testing-harness:1.0" ); + model.setParentProject( toParent( "org.apache.maven.shared:maven-shared-components:7" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-project:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-core:2.0::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.1::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.shared:maven-shared-components:7" ); + model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-project:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-test:2.0::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-profile:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven:2.0" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-5::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5" ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-5" ); + model.addDependency( toDependency( "com.jcraft:jsch:0.1.23::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar", "compile" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); + model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar", "compile" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-5::jar", "test" ) ); + addModel( model ); + + model = toModel( "com.jcraft:jsch:0.1.23" ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-5" ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-file:1.0-alpha-5" ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar", "test" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-5::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-5" ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar", "test" ) ); + model.addDependency( toDependency( "servletapi:servletapi:2.3::jar", "test" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "test" ) ); + model.addDependency( toDependency( "jetty:jetty:4.2.10::jar", "test" ) ); + model.addDependency( toDependency( "plexus:plexus-jetty-httpd:1.0-beta-1::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-5::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact-test:2.0" ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-profile:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-model:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact-manager:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-5::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-repository-metadata:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-core:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-settings:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-5::jar", "runtime" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-plugin-parameter-documenter:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-5::jar", "runtime" ) ); + model.addDependency( toDependency( "org.apache.maven.reporting:maven-reporting-api:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-profile:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-error-diagnostics:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-project:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-plugin-registry:2.0::jar" ) ); + dep = toDependency( "commons-cli:commons-cli:1.0::jar" ); + addExclusion( dep, "commons-lang:commons-lang" ); + addExclusion( dep, "commons-logging:commons-logging" ); + model.addDependency( dep ); + model.addDependency( toDependency( "org.apache.maven:maven-plugin-api:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-plugin-descriptor:2.0::jar" ) ); + dep = toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar" ); + addExclusion( dep, "plexus:plexus-utils" ); + addExclusion( dep, "org.codehaus.plexus:plexus-container-default" ); + model.addDependency( dep ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-monitor:2.0::jar" ) ); + dep = toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-5::jar", "runtime" ); + addExclusion( dep, "plexus:plexus-utils" ); + addExclusion( dep, "org.codehaus.plexus:plexus-container-default" ); + model.addDependency( dep ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-settings:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-plugin-parameter-documenter:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.reporting:maven-reporting-api:2.0" ); + model.setParentProject( toParent( "org.apache.maven.reporting:maven-reporting:2.0" ) ); + dep = toDependency( "doxia:doxia-sink-api:1.0-alpha-4::jar" ); + addExclusion( dep, "plexus:plexus-container-default" ); + addExclusion( dep, "plexus:plexus-utils" ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "org.apache.maven.reporting:maven-reporting:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + addModel( model ); + + model = toModel( "doxia:doxia-sink-api:1.0-alpha-4" ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-error-diagnostics:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-plugin-registry:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "commons-cli:commons-cli:1.0" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:1.0::jar" ) ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "commons-lang:commons-lang:1.0" ); + model.addDependency( toDependency( "junit:junit:3.7::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-plugin-api:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-plugin-descriptor:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-plugin-api:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-monitor:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + addModel( model ); + + } +} diff --git a/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MemoryRepository.java b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MemoryRepository.java new file mode 100644 index 000000000..256f38b2b --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MemoryRepository.java @@ -0,0 +1,35 @@ +package org.apache.maven.archiva.dependency.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.model.ArchivaProjectModel; + +/** + * MemoryRepository + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public interface MemoryRepository +{ + public abstract void addModel( ArchivaProjectModel model ); + + public abstract ArchivaProjectModel getProjectModel( String groupId, String artifactId, String version ); +} \ No newline at end of file diff --git a/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MemoryRepositoryDependencyGraphBuilder.java b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MemoryRepositoryDependencyGraphBuilder.java new file mode 100644 index 000000000..bbc198b74 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MemoryRepositoryDependencyGraphBuilder.java @@ -0,0 +1,96 @@ +package org.apache.maven.archiva.dependency.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.model.ArchivaProjectModel; +import org.apache.maven.archiva.model.ArtifactReference; +import org.apache.maven.archiva.model.VersionedReference; + +/** + * MemoryRepositoryProjectResolver + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class MemoryRepositoryDependencyGraphBuilder + implements DependencyGraphBuilder +{ + private MemoryRepository memoryRepository; + + public ArchivaProjectModel resolveProjectModel( VersionedReference reference ) + { + ArtifactReference artifact = new ArtifactReference(); + artifact.setGroupId( reference.getGroupId() ); + artifact.setArtifactId( reference.getArtifactId() ); + artifact.setVersion( reference.getVersion() ); + artifact.setType( "pom" ); + + return resolveProjectModel( artifact ); + } + + public ArchivaProjectModel resolveProjectModel( ArtifactReference reference ) + { + ArchivaProjectModel model = memoryRepository + .getProjectModel( reference.getGroupId(), reference.getArtifactId(), reference.getVersion() ); + + if ( model == null ) + { + throw new NullPointerException( "Unable to find model for " + DependencyGraphKeys.toKey( reference ) ); + } + + if ( model.getParentProject() != null ) + { + ArchivaProjectModel parentModel = resolveProjectModel( model.getParentProject() ); + + model.getDependencies().addAll( parentModel.getDependencies() ); + model.getDependencyManagement().addAll( parentModel.getDependencyManagement() ); + } + + return model; + } + + public MemoryRepository getMemoryRepository() + { + return memoryRepository; + } + + public void setMemoryRepository( MemoryRepository memoryRepository ) + { + this.memoryRepository = memoryRepository; + } + + public DependencyGraph createGraph( VersionedReference versionedProjectReference ) + { + String groupId = versionedProjectReference.getGroupId(); + String artifactId = versionedProjectReference.getArtifactId(); + String version = versionedProjectReference.getVersion(); + + DependencyGraph graph = new DependencyGraph( groupId, artifactId, version ); + return graph; + } + + public void resolveNode( DependencyGraph graph, DependencyGraphNode fromNode, + VersionedReference versionedProjectReference ) + { + ArchivaProjectModel model = resolveProjectModel( fromNode.getArtifact() ); + + DependencyGraphUtils.addNodeFromModel( model, graph, fromNode ); + } +} diff --git a/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/SimpleDependencyGraphTest.java b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/SimpleDependencyGraphTest.java new file mode 100644 index 000000000..91ce13483 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/SimpleDependencyGraphTest.java @@ -0,0 +1,71 @@ +package org.apache.maven.archiva.dependency.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.dependency.DependencyGraphFactory; +import org.apache.maven.archiva.model.DependencyScope; +import org.apache.maven.archiva.model.VersionedReference; + +import java.util.ArrayList; +import java.util.List; + +/** + * SimpleDependencyGraphTest + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class SimpleDependencyGraphTest + extends AbstractDependencyGraphFactoryTestCase +{ + public void testResolveDependenciesBasic() throws GraphTaskException + { + MemoryRepositoryDependencyGraphBuilder graphBuilder = new MemoryRepositoryDependencyGraphBuilder(); + MemoryRepository repository = new SimpleMemoryRepository(); + graphBuilder.setMemoryRepository( repository ); + + // Create the factory, and add the test resolver. + DependencyGraphFactory factory = new DependencyGraphFactory(); + factory.setGraphBuilder( graphBuilder ); + factory.setDesiredScope( DependencyScope.TEST ); + + // Get the model to resolve from + VersionedReference rootRef = toVersionedReference( "org.apache.maven.archiva:archiva-commons:1.0" ); + + // Perform the resolution. + DependencyGraph graph = factory.getGraph( rootRef ); + + // Test the results. + assertNotNull( "Graph shouldn't be null.", graph ); + + List expectedNodes = new ArrayList(); + expectedNodes.add( "org.apache.maven.archiva:archiva-commons:1.0::pom" ); + expectedNodes.add( "org.codehaus.plexus:plexus-digest:1.0::jar" ); + expectedNodes.add( "junit:junit:3.8.1::jar" ); + assertNodes( graph, expectedNodes ); + + List expectedEdges = new ArrayList(); + expectedEdges.add( new ExpectedEdge( "org.apache.maven.archiva:archiva-commons:1.0::pom", + "org.codehaus.plexus:plexus-digest:1.0::jar" ) ); + expectedEdges.add( new ExpectedEdge( "org.codehaus.plexus:plexus-digest:1.0::jar", "junit:junit:3.8.1::jar" ) ); + + assertEdges( graph, expectedEdges ); + } +} diff --git a/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/SimpleMemoryRepository.java b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/SimpleMemoryRepository.java new file mode 100644 index 000000000..d41e6f036 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/SimpleMemoryRepository.java @@ -0,0 +1,48 @@ +package org.apache.maven.archiva.dependency.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.model.ArchivaProjectModel; + +/** + * SimpleMemoryRepository + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class SimpleMemoryRepository + extends AbstractMemoryRepository +{ + public void initialize() + { + ArchivaProjectModel model; + + model = toModel( "org.codehaus.plexus:plexus-digest:1.0" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + addModel( model ); + + model = toModel( "junit:junit:3.8.1" ); + addModel( model ); + + model = toModel( "org.apache.maven.archiva:archiva-commons:1.0" ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-digest:1.0::jar" ) ); + addModel( model ); + } +} diff --git a/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/WagonManagerDependencyGraphTest.java b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/WagonManagerDependencyGraphTest.java new file mode 100644 index 000000000..3fcc04c4f --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/WagonManagerDependencyGraphTest.java @@ -0,0 +1,104 @@ +package org.apache.maven.archiva.dependency.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.dependency.DependencyGraphFactory; +import org.apache.maven.archiva.model.DependencyScope; +import org.apache.maven.archiva.model.VersionedReference; + +import java.util.ArrayList; +import java.util.List; + +/** + * WagonManagerDependencyGraphTest + * + * DependencyGraphTest for testing org.apache.maven.wagon:wagon-manager:2.0-SNAPSHOT + * + * Generated by archivadev:generate-dependency-tests plugin + * @version $Id$ + */ +public class WagonManagerDependencyGraphTest + extends AbstractDependencyGraphFactoryTestCase +{ + public void testResolvedDepsToNodes() + throws GraphTaskException + { + MemoryRepositoryDependencyGraphBuilder graphBuilder = + new MemoryRepositoryDependencyGraphBuilder(); + MemoryRepository repository = new WagonManagerMemoryRepository(); + graphBuilder.setMemoryRepository( repository ); + + // Create the factory, and add the test resolver. + DependencyGraphFactory factory = new DependencyGraphFactory(); + factory.setGraphBuilder( graphBuilder ); + factory.setDesiredScope( DependencyScope.TEST ); + + // Get the model to resolve from + VersionedReference rootRef = toVersionedReference( "org.apache.maven.wagon:wagon-manager:2.0-SNAPSHOT"); + + // Perform the resolution. + DependencyGraph graph = factory.getGraph( rootRef ); + + // Test the results. + assertNotNull( "Graph shouldn't be null.", graph ); + + String expectedRootRef = "org.apache.maven.wagon:wagon-manager:2.0-SNAPSHOT"; + List expectedNodes = new ArrayList(); + + // Check for all nodes, regardless of scope. + expectedNodes.clear(); + expectedNodes.add( "classworlds:classworlds:1.1-alpha-2::jar" ); + expectedNodes.add( "com.jcraft:jsch:0.1.27::jar" ); + expectedNodes.add( "commons-httpclient:commons-httpclient:2.0.2::jar" ); + expectedNodes.add( "commons-lang:commons-lang:2.1::jar" ); + expectedNodes.add( "commons-logging:commons-logging:1.0.4::jar" ); + expectedNodes.add( "commons-net:commons-net:1.4.1::jar" ); + expectedNodes.add( "de.zeigermann.xml:xml-im-exporter:1.1::jar" ); + expectedNodes.add( "it.could:webdav:0.4::jar" ); + expectedNodes.add( "javax.servlet:servlet-api:2.3::jar" ); + expectedNodes.add( "jdom:jdom:1.0::jar" ); + expectedNodes.add( "jtidy:jtidy:4aug2000r7-dev::jar" ); + expectedNodes.add( "junit:junit:3.8.1::jar" ); + expectedNodes.add( "org.apache.maven.wagon:wagon-file:2.0-SNAPSHOT::jar" ); + expectedNodes.add( "org.apache.maven.wagon:wagon-ftp:2.0-SNAPSHOT::jar" ); + expectedNodes.add( "org.apache.maven.wagon:wagon-http-lightweight:2.0-SNAPSHOT::jar" ); + expectedNodes.add( "org.apache.maven.wagon:wagon-http-shared:2.0-SNAPSHOT::jar" ); + expectedNodes.add( "org.apache.maven.wagon:wagon-provider-api:2.0-SNAPSHOT::jar" ); + expectedNodes.add( "org.apache.maven.wagon:wagon-ssh:2.0-SNAPSHOT::jar" ); + expectedNodes.add( "org.apache.maven.wagon:wagon-ssh-common:2.0-SNAPSHOT::jar" ); + expectedNodes.add( "org.apache.maven.wagon:wagon-ssh-external:2.0-SNAPSHOT::jar" ); + expectedNodes.add( "org.apache.maven.wagon:wagon-webdav:2.0-SNAPSHOT::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-6::jar" ); + expectedNodes.add( "org.codehaus.plexus:plexus-utils:1.4.2-SNAPSHOT::jar" ); + expectedNodes.add( "org.codehaus.plexus.webdav:plexus-webdav-api:1.0-alpha-1::jar" ); + expectedNodes.add( "org.codehaus.plexus.webdav:plexus-webdav-simple:1.0-alpha-1::jar" ); + expectedNodes.add( "org.mortbay.jetty:jetty:6.0.2::jar" ); + expectedNodes.add( "org.mortbay.jetty:jetty-util:6.0.2::jar" ); + expectedNodes.add( "org.mortbay.jetty:servlet-api-2.5:6.0.2::jar" ); + expectedNodes.add( "oro:oro:2.0.8::jar" ); + expectedNodes.add( "slide:slide-webdavlib:2.1::jar" ); + + assertGraph( graph, expectedRootRef, expectedNodes ); + } + +} diff --git a/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/WagonManagerMemoryRepository.java b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/WagonManagerMemoryRepository.java new file mode 100644 index 000000000..ca3e7ffe6 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/WagonManagerMemoryRepository.java @@ -0,0 +1,772 @@ +package org.apache.maven.archiva.dependency.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.model.ArchivaProjectModel; +import org.apache.maven.archiva.model.Dependency; +import org.apache.maven.archiva.model.VersionedReference; + +/** + * WagonManagerMemoryRepository + * + * MemoryRepository for testing org.apache.maven.wagon:wagon-manager:2.0-SNAPSHOT + * + * Generated by archivadev:generate-dependency-tests plugin + * @version $Id$ + */ +public class WagonManagerMemoryRepository + extends AbstractMemoryRepository +{ + public void initialize() + { + ArchivaProjectModel model; + Dependency dep; + + model = toModel( "org.apache.maven.wagon:wagon-manager:2.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon:2.0-SNAPSHOT" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:2.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:2.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ftp:2.0-SNAPSHOT::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:2.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh:2.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-external:2.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-webdav:2.0-SNAPSHOT::jar", "test" ) ); + dep = toDependency( "org.codehaus.plexus.webdav:plexus-webdav-simple:1.0-alpha-1::jar", "test" ); + addExclusion( dep, "org.codehaus.plexus:plexus-component-api" ); + model.addDependency( dep ); + model.addDependency( toDependency( "org.mortbay.jetty:jetty:6.0.2::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:2.0-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-test:2.0-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:2.0-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common:2.0-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "junit:junit:3.8.1::jar" ) ); + dep = toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-6::jar" ); + addExclusion( dep, "plexus:plexus-utils" ); + addExclusion( dep, "org.codehaus.plexus:plexus-container-default" ); + addExclusion( dep, "classworlds:classworlds" ); + model.addDependencyManagement( dep ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4.2-SNAPSHOT::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon:2.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven:maven-parent:5" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:2.0-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-test:2.0-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:2.0-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh-common:2.0-SNAPSHOT::jar" ) ); + model.addDependencyManagement( toDependency( "junit:junit:3.8.1::jar" ) ); + dep = toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-6::jar" ); + addExclusion( dep, "plexus:plexus-utils" ); + addExclusion( dep, "org.codehaus.plexus:plexus-container-default" ); + addExclusion( dep, "classworlds:classworlds" ); + model.addDependencyManagement( dep ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.4.2-SNAPSHOT::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-parent:5" ); + model.setParentProject( toParent( "org.apache:apache:3" ) ); + addModel( model ); + + model = toModel( "org.apache:apache:3" ); + addModel( model ); + + model = toModel( "junit:junit:3.8.1" ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-provider-api:2.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon:2.0-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4.2-SNAPSHOT::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-utils:1.4.2-SNAPSHOT" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.11" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.11" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-provider-test:2.0-SNAPSHOT" ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh-common-test:2.0-SNAPSHOT" ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh-common:2.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:2.0-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4.2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-6::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-providers:2.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon:2.0-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:2.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:2.0-SNAPSHOT::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-interactivity:1.0-alpha-6" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-interactivity:1.0-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.9" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-components:1.1.9" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.10" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.10" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-16" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-16" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.9" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-utils:1.3" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.8" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.8" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-16" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-7::jar" ) ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "jmock:jmock:1.0.1" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-utils:1.4" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-9" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0.3" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0.3" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.4" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus:1.0.4" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-utils:1.0.4" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "classworlds:classworlds:1.1-alpha-2" ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-file:2.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:2.0-SNAPSHOT" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ftp:2.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:2.0-SNAPSHOT" ) ); + model.addDependency( toDependency( "commons-net:commons-net:1.4.1::jar" ) ); + dep = toDependency( "org.codehaus.plexus:plexus-ftpd:1.0-alpha-1::jar", "test" ); + addExclusion( dep, "plexus:plexus-container-default" ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "commons-net:commons-net:1.4.1" ); + model.addDependency( toDependency( "oro:oro:2.0.8::jar" ) ); + addModel( model ); + + model = toModel( "oro:oro:2.0.8" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-ftpd:1.0-alpha-1" ); + model.addDependency( toDependency( "concurrent:concurrent:1.3.4::jar", "compile" ) ); + model.addDependency( toDependency( "cornerstone-threads:cornerstone-threads-api:1.0::jar", "compile" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "cornerstone-sockets:cornerstone-sockets-api:1.0::jar", "compile" ) ); + model.addDependency( toDependency( "cornerstone-connection:cornerstone-connection-impl:1.0::jar", "compile" ) ); + model.addDependency( toDependency( "excalibur-pool:excalibur-pool-impl:2.0::jar", "compile" ) ); + model.addDependency( toDependency( "excalibur-thread:excalibur-thread:1.1.1::jar", "compile" ) ); + model.addDependency( toDependency( "cornerstone-sockets:cornerstone-sockets-impl:1.0::jar", "compile" ) ); + model.addDependency( toDependency( "cornerstone-connection:cornerstone-connection-api:1.0::jar", "compile" ) ); + model.addDependency( toDependency( "commons-collections:commons-collections:3.0::jar", "compile" ) ); + model.addDependency( toDependency( "avalon:avalon-framework:4.1.4::jar", "compile" ) ); + model.addDependency( toDependency( "cornerstone-threads:cornerstone-threads-impl:1.0::jar", "compile" ) ); + model.addDependency( toDependency( "excalibur-pool:excalibur-pool-api:2.0::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-avalon-personality:0.13::jar", "compile" ) ); + model.addDependency( toDependency( "plexus:plexus-container-default:1.0-alpha-2::jar", "compile" ) ); + addModel( model ); + + model = toModel( "concurrent:concurrent:1.3.4" ); + addModel( model ); + + model = toModel( "cornerstone-threads:cornerstone-threads-api:1.0" ); + addModel( model ); + + model = toModel( "cornerstone-sockets:cornerstone-sockets-api:1.0" ); + addModel( model ); + + model = toModel( "cornerstone-connection:cornerstone-connection-impl:1.0" ); + addModel( model ); + + model = toModel( "excalibur-pool:excalibur-pool-impl:2.0" ); + addModel( model ); + + model = toModel( "excalibur-thread:excalibur-thread:1.1.1" ); + addModel( model ); + + model = toModel( "cornerstone-sockets:cornerstone-sockets-impl:1.0" ); + addModel( model ); + + model = toModel( "cornerstone-connection:cornerstone-connection-api:1.0" ); + addModel( model ); + + model = toModel( "commons-collections:commons-collections:3.0" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "avalon:avalon-framework:4.1.4" ); + addModel( model ); + + model = toModel( "cornerstone-threads:cornerstone-threads-impl:1.0" ); + addModel( model ); + + model = toModel( "excalibur-pool:excalibur-pool-api:2.0" ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-avalon-personality:0.13" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "avalon:avalon-framework:4.1.4::jar", "compile" ) ); + model.addDependency( toDependency( "plexus:plexus-container-default:1.0-alpha-2::jar", "compile" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-container-default:1.0-alpha-2" ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-http-lightweight:2.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:2.0-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-http-shared:2.0-SNAPSHOT::jar" ) ); + dep = toDependency( "plexus:plexus-jetty-httpd:1.0-beta-1::jar", "test" ); + addExclusion( dep, "plexus:plexus-container-default" ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-http-shared:2.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:2.0-SNAPSHOT" ) ); + model.addDependency( toDependency( "jtidy:jtidy:4aug2000r7-dev::jar" ) ); + addModel( model ); + + model = toModel( "jtidy:jtidy:4aug2000r7-dev" ); + addModel( model ); + + model = toModel( "plexus:plexus-jetty-httpd:1.0-beta-1" ); + model.setParentProject( toParent( "plexus:plexus-components:1.0" ) ); + model.addDependency( toDependency( "jetty:jetty:4.2.10::jar" ) ); + model.addDependency( toDependency( "servletapi:servletapi:2.3::jar" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-components:1.0" ); + model.setParentProject( toParent( "plexus:plexus-root:1.0" ) ); + model.addDependency( toDependency( "plexus:plexus-container-default:1.0-alpha-2::jar" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-root:1.0" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "jetty:jetty:4.2.10" ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar", "runtime" ) ); + addModel( model ); + + model = toModel( "javax.servlet:servlet-api:2.3" ); + addModel( model ); + + model = toModel( "servletapi:servletapi:2.3" ); + model.setRelocation( new VersionedReference() ); + model.getRelocation().setGroupId( "javax.servlet" ); + model.getRelocation().setArtifactId( "servlet-api" ); + model.getRelocation().setVersion( "2.3" ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh:2.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:2.0-SNAPSHOT" ) ); + model.addDependency( toDependency( "com.jcraft:jsch:0.1.27::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-6::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4.2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common:2.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:2.0-SNAPSHOT::jar", "test" ) ); + addModel( model ); + + model = toModel( "com.jcraft:jsch:0.1.27" ); + dep = toDependency( "com.jcraft:jzlib:1.0.7::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "com.jcraft:jzlib:1.0.7" ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh-external:2.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:2.0-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4.2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common:2.0-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-ssh-common-test:2.0-SNAPSHOT::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-webdav:2.0-SNAPSHOT" ); + model.setParentProject( toParent( "org.apache.maven.wagon:wagon-providers:2.0-SNAPSHOT" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.4.2-SNAPSHOT::jar" ) ); + model.addDependency( toDependency( "slide:slide-webdavlib:2.1::jar" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.4::jar", "runtime" ) ); + model.addDependency( toDependency( "it.could:webdav:0.4::jar", "test" ) ); + addModel( model ); + + model = toModel( "slide:slide-webdavlib:2.1" ); + model.addDependency( toDependency( "commons-httpclient:commons-httpclient:2.0.2::jar" ) ); + model.addDependency( toDependency( "jdom:jdom:1.0::jar" ) ); + model.addDependency( toDependency( "de.zeigermann.xml:xml-im-exporter:1.1::jar" ) ); + addModel( model ); + + model = toModel( "commons-httpclient:commons-httpclient:2.0.2" ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + addModel( model ); + + model = toModel( "commons-logging:commons-logging:1.0.3" ); + dep = toDependency( "log4j:log4j:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "logkit:logkit:1.0.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + addModel( model ); + + model = toModel( "log4j:log4j:1.2.6" ); + addModel( model ); + + model = toModel( "logkit:logkit:1.0.1" ); + addModel( model ); + + model = toModel( "junit:junit:3.7" ); + addModel( model ); + + model = toModel( "jdom:jdom:1.0" ); + dep = toDependency( "xerces:xercesImpl:2.6.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xml-apis:xml-apis:1.0.b2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "jaxen:jaxen:1.0-FCS::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "saxpath:saxpath:1.0-FCS::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xalan:xalan:2.5.0::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "xerces:xercesImpl:2.6.0" ); + addModel( model ); + + model = toModel( "xml-apis:xml-apis:1.0.b2" ); + addModel( model ); + + model = toModel( "jaxen:jaxen:1.0-FCS" ); + addModel( model ); + + model = toModel( "saxpath:saxpath:1.0-FCS" ); + addModel( model ); + + model = toModel( "xalan:xalan:2.5.0" ); + addModel( model ); + + model = toModel( "de.zeigermann.xml:xml-im-exporter:1.1" ); + addModel( model ); + + model = toModel( "commons-logging:commons-logging:1.0.4" ); + dep = toDependency( "log4j:log4j:1.2.6::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "logkit:logkit:1.0.1::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + model.addDependency( toDependency( "junit:junit:3.7::jar", "test" ) ); + dep = toDependency( "avalon-framework:avalon-framework:4.1.3::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "avalon-framework:avalon-framework:4.1.3" ); + addModel( model ); + + model = toModel( "it.could:webdav:0.4" ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar", "runtime" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-simple:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.webdav:plexus-webdav-providers-parent:1.0-alpha-1" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); + model.addDependency( toDependency( "it.could:webdav:0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-providers-parent:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.webdav:plexus-webdav-parent:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-api:1.0-alpha-1::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus.webdav:plexus-webdav-test:1.0-alpha-1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-parent:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-components:1.1.8" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-components:1.1.8" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-15::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-15::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-component-api:1.0-alpha-15" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-15" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-6::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-containers:1.0-alpha-15" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-6::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-15::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-6" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus:1.0.9" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-15" ); + model.setParentProject( toParent( "org.codehaus.plexus:plexus-containers:1.0-alpha-15" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-15::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.3::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-classworlds:1.2-alpha-6::jar" ) ); + model.addDependency( toDependency( "jmock:jmock:1.0.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-api:1.0-alpha-1" ); + model.setParentProject( toParent( "org.codehaus.plexus.webdav:plexus-webdav-parent:1.0-alpha-1" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-component-api:1.0-alpha-16::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-16::jar" ) ); + model.addDependency( toDependency( "javax.servlet:servlet-api:2.3::jar" ) ); + model.addDependency( toDependency( "commons-lang:commons-lang:2.1::jar" ) ); + addModel( model ); + + model = toModel( "commons-lang:commons-lang:2.1" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus.webdav:plexus-webdav-test:1.0-alpha-1" ); + addModel( model ); + + model = toModel( "org.mortbay.jetty:jetty:6.0.2" ); + model.setParentProject( toParent( "org.mortbay.jetty:project:6.0.2" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "org.mortbay.jetty:jetty-util:6.0.2::jar" ) ); + model.addDependency( toDependency( "org.mortbay.jetty:servlet-api-2.5:6.0.2::jar" ) ); + addModel( model ); + + model = toModel( "org.mortbay.jetty:project:6.0.2" ); + model.addDependencyManagement( toDependency( "org.apache.maven:maven-plugin-tools-api:2.0::jar" ) ); + model.addDependencyManagement( toDependency( "junit:junit:3.8.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.slf4j:jcl104-over-slf4j:1.0.1::jar" ) ); + model.addDependencyManagement( toDependency( "org.slf4j:slf4j-simple:1.0.1::jar" ) ); + model.addDependencyManagement( toDependency( "mx4j:mx4j:3.0.1::jar" ) ); + model.addDependencyManagement( toDependency( "mx4j:mx4j-tools:3.0.1::jar" ) ); + model.addDependencyManagement( toDependency( "xerces:xercesImpl:${xerces-version}::jar" ) ); + model.addDependencyManagement( toDependency( "commons-el:commons-el:1.0::jar" ) ); + model.addDependencyManagement( toDependency( "ant:ant:1.6.5::jar" ) ); + model.addDependencyManagement( toDependency( "javax.mail:mail:1.4::jar" ) ); + model.addDependencyManagement( toDependency( "javax.activation:activation:1.1::jar" ) ); + model.addProperty( "jasper-version", "5.5.15" ); + model.addProperty( "junit-version", "3.8.1" ); + model.addProperty( "ant-version", "1.6.5" ); + model.addProperty( "mail-version", "1.4" ); + model.addProperty( "commons-el-version", "1.0" ); + model.addProperty( "slf4j-version", "1.0.1" ); + model.addProperty( "eclipse-compiler-version", "3.1.1" ); + model.addProperty( "mx4j-version", "3.0.1" ); + model.addProperty( "jta-spec-version", "1.0.1B-rc4" ); + model.addProperty( "activation-version", "1.1" ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-plugin-tools-api:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven-plugin-tools:2.0" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-project:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-plugin-descriptor:2.0::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-plugin-tools:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven:2.0" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + model.addDependencyManagement( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-5::jar" ) ); + model.addDependencyManagement( toDependency( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-5::jar" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8" ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5" ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-ssh:1.0-alpha-5" ); + model.addDependency( toDependency( "com.jcraft:jsch:0.1.23::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar", "compile" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); + model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4::jar", "compile" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-5::jar", "test" ) ); + addModel( model ); + + model = toModel( "com.jcraft:jsch:0.1.23" ); + addModel( model ); + + model = toModel( "plexus:plexus-utils:1.0.2" ); + model.setParentProject( toParent( "plexus:plexus-root:1.0.3" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-root:1.0.3" ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-interactivity-api:1.0-alpha-4" ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7::jar", "compile" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "compile" ) ); + model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar", "compile" ) ); + addModel( model ); + + model = toModel( "org.codehaus.plexus:plexus-container-default:1.0-alpha-7" ); + model.setParentProject( toParent( "plexus:plexus-containers:1.0.2" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "compile" ) ); + model.addDependency( toDependency( "plexus:plexus-utils:1.0.2::jar" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar" ) ); + addModel( model ); + + model = toModel( "plexus:plexus-containers:1.0.2" ); + model.setParentProject( toParent( "plexus:plexus-root:1.0.3" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-5" ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-file:1.0-alpha-5" ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar", "test" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-5::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven.wagon:wagon-http-lightweight:1.0-alpha-5" ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar", "compile" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar", "compile" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar", "test" ) ); + model.addDependency( toDependency( "servletapi:servletapi:2.3::jar", "test" ) ); + model.addDependency( toDependency( "classworlds:classworlds:1.1-alpha-2::jar", "test" ) ); + model.addDependency( toDependency( "jetty:jetty:4.2.10::jar", "test" ) ); + model.addDependency( toDependency( "plexus:plexus-jetty-httpd:1.0-beta-1::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-test:1.0-alpha-5::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-project:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-test:2.0::jar", "test" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-profile:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact-manager:2.0::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact-test:2.0" ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-profile:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-model:2.0::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-model:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact-manager:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-repository-metadata:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-file:1.0-alpha-5::jar", "test" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + model.addDependency( toDependency( "org.apache.maven.wagon:wagon-provider-api:1.0-alpha-5::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-repository-metadata:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-artifact:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-utils:1.0.4::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-plugin-descriptor:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-plugin-api:2.0::jar" ) ); + model.addDependency( toDependency( "org.apache.maven:maven-artifact:2.0::jar" ) ); + model.addDependency( toDependency( "org.codehaus.plexus:plexus-container-default:1.0-alpha-8::jar" ) ); + addModel( model ); + + model = toModel( "org.apache.maven:maven-plugin-api:2.0" ); + model.setParentProject( toParent( "org.apache.maven:maven:2.0" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + addModel( model ); + + model = toModel( "org.slf4j:jcl104-over-slf4j:1.0.1" ); + addModel( model ); + + model = toModel( "org.slf4j:slf4j-simple:1.0.1" ); + addModel( model ); + + model = toModel( "mx4j:mx4j:3.0.1" ); + addModel( model ); + + model = toModel( "mx4j:mx4j-tools:3.0.1" ); + addModel( model ); + + model = toModel( "xerces:xercesImpl:${xerces-version}" ); + addModel( model ); + + model = toModel( "commons-el:commons-el:1.0" ); + model.addDependency( toDependency( "servletapi:servletapi:2.4-20040521::jar", "provided" ) ); + model.addDependency( toDependency( "jspapi:jsp-api:2.0-20040521::jar", "provided" ) ); + model.addDependency( toDependency( "commons-logging:commons-logging:1.0.3::jar" ) ); + addModel( model ); + + model = toModel( "servletapi:servletapi:2.4-20040521" ); + addModel( model ); + + model = toModel( "jspapi:jsp-api:2.0-20040521" ); + addModel( model ); + + model = toModel( "ant:ant:1.6.5" ); + dep = toDependency( "xerces:xerces-impl:2.6.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + dep = toDependency( "xml-apis:xml-apis:2.6.2::jar" ); + dep.setOptional( true ); + model.addDependency( dep ); + addModel( model ); + + model = toModel( "xerces:xerces-impl:2.6.2" ); + addModel( model ); + + model = toModel( "xml-apis:xml-apis:2.6.2" ); + addModel( model ); + + model = toModel( "javax.mail:mail:1.4" ); + model.addDependency( toDependency( "javax.activation:activation:1.1::jar" ) ); + addModel( model ); + + model = toModel( "javax.activation:activation:1.1" ); + addModel( model ); + + model = toModel( "org.mortbay.jetty:jetty-util:6.0.2" ); + model.setParentProject( toParent( "org.mortbay.jetty:project:6.0.2" ) ); + model.addDependency( toDependency( "junit:junit:3.8.1::jar", "test" ) ); + model.addDependency( toDependency( "org.mortbay.jetty:servlet-api-2.5:6.0.2::jar", "provided" ) ); + addModel( model ); + + model = toModel( "org.mortbay.jetty:servlet-api-2.5:6.0.2" ); + model.setParentProject( toParent( "org.mortbay.jetty:project:6.0.2" ) ); + addModel( model ); + + } +} diff --git a/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/functors/ToKeyTransformer.java b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/functors/ToKeyTransformer.java new file mode 100644 index 000000000..f1b8183a1 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/functors/ToKeyTransformer.java @@ -0,0 +1,67 @@ +package org.apache.maven.archiva.dependency.graph.functors; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.collections.Transformer; +import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; +import org.apache.maven.archiva.dependency.graph.DependencyGraphKeys; +import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; +import org.apache.maven.archiva.dependency.graph.Keys; +import org.apache.maven.archiva.model.ArchivaProjectModel; +import org.apache.maven.archiva.model.ArtifactReference; + +/** + * ToKeyTransformer + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class ToKeyTransformer + implements Transformer +{ + + public Object transform( Object input ) + { + if ( input instanceof ArchivaProjectModel ) + { + return Keys.toKey( (ArchivaProjectModel) input ); + } + + if ( input instanceof DependencyGraphNode ) + { + return DependencyGraphKeys.toKey( ((DependencyGraphNode) input).getArtifact() ); + } + + if ( input instanceof DependencyGraphEdge ) + { + DependencyGraphEdge edge = (DependencyGraphEdge) input; + // Potentially Confusing, but this is called "To"KeyTransformer after all. + return DependencyGraphKeys.toKey( edge.getNodeTo() ); + } + + if ( input instanceof ArtifactReference ) + { + return DependencyGraphKeys.toKey( ((ArtifactReference) input) ); + } + + return input; + } + +} diff --git a/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/tasks/DependencyManagementStackTest.java b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/tasks/DependencyManagementStackTest.java new file mode 100644 index 000000000..a3d7fa092 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/tasks/DependencyManagementStackTest.java @@ -0,0 +1,227 @@ +package org.apache.maven.archiva.dependency.graph.tasks; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.lang.StringUtils; +import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; +import org.apache.maven.archiva.dependency.graph.tasks.DependencyManagementStack; +import org.apache.maven.archiva.dependency.graph.tasks.DependencyManagementStack.Rules; +import org.apache.maven.archiva.model.ArtifactReference; +import org.apache.maven.archiva.model.Dependency; + +import junit.framework.TestCase; + +/** + * DependencyManagementStackTest + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class DependencyManagementStackTest + extends TestCase +{ + public DependencyGraphNode toNode( String key ) + { + String parts[] = StringUtils.splitPreserveAllTokens( key, ":" ); + assertEquals( "toNode(" + key + ") requires 5 parts", 5, parts.length ); + + ArtifactReference ref = new ArtifactReference(); + ref.setGroupId( parts[0] ); + ref.setArtifactId( parts[1] ); + ref.setVersion( parts[2] ); + ref.setClassifier( parts[3] ); + ref.setType( parts[4] ); + + return new DependencyGraphNode( ref ); + } + + protected Dependency toDependency( String key ) + { + String parts[] = StringUtils.splitPreserveAllTokens( key, ':' ); + + assertEquals( "Dependency key [" + key + "] should be 5 parts.", 5, parts.length ); + + Dependency dep = new Dependency(); + + dep.setGroupId( parts[0] ); + dep.setArtifactId( parts[1] ); + dep.setVersion( parts[2] ); + dep.setClassifier( parts[3] ); + dep.setType( parts[4] ); + + return dep; + } + + public void testPushPopSimple() + { + DependencyGraphNode node = toNode( "org.apache.maven.archiva:depmanstack-testcase:1.0::jar" ); + Dependency dep = toDependency( "junit:junit:3.8.1::jar" ); + dep.setScope( "test" ); + node.addDependencyManagement( dep ); + + DependencyManagementStack stack = new DependencyManagementStack(); + stack.push( node ); + DependencyGraphNode oldnode = stack.pop(); + assertEquals( "added node to old node", node, oldnode ); + } + + public void testPushPopTwoDeep() + { + DependencyManagementStack stack = new DependencyManagementStack(); + Dependency dep; + + // top node. + DependencyGraphNode projectNode = toNode( "org.apache.maven.archiva:depmanstack-testcase:1.0::jar" ); + dep = toDependency( "junit:junit:3.8.1::jar" ); + dep.setScope( "test" ); + projectNode.addDependencyManagement( dep ); + stack.push( projectNode ); + + // direct node. + DependencyGraphNode directNode = toNode( "org.apache.maven.archiva:depmanstack-common:1.0::jar" ); + dep = toDependency( "junit:junit:3.7::jar" ); + dep.setScope( "test" ); + directNode.addDependencyManagement( dep ); + stack.push( directNode ); + + // transitive node. + DependencyGraphNode transNode = toNode( "org.apache.maven.archiva:depmanstack-model:1.0::jar" ); + dep = toDependency( "junit:junit:3.7::jar" ); + transNode.addDependencyManagement( dep ); + stack.push( transNode ); + + // Test it + assertEquals( "popped node is trans node", transNode, stack.pop() ); + assertEquals( "popped node is direct node", directNode, stack.pop() ); + assertEquals( "popped node is project node", projectNode, stack.pop() ); + } + + public void testApplyNodeVersionParentWins() + { + DependencyManagementStack stack = new DependencyManagementStack(); + Dependency dep; + + // top node. + DependencyGraphNode projectNode = toNode( "org.apache.maven.archiva:depmanstack-testcase:1.0::jar" ); + dep = toDependency( "junit:junit:3.8.1::jar" ); + dep.setScope( "test" ); + projectNode.addDependencyManagement( dep ); + stack.push( projectNode ); + + // direct node. + DependencyGraphNode directNode = toNode( "org.apache.maven.archiva:depmanstack-common:1.0::jar" ); + dep = toDependency( "junit:junit:3.7::jar" ); + dep.setScope( "test" ); + directNode.addDependencyManagement( dep ); + stack.push( directNode ); + + // transitive node. + DependencyGraphNode transNode = toNode( "org.apache.maven.archiva:depmanstack-model:1.0::jar" ); + dep = toDependency( "junit:junit:3.7.1::jar" ); + transNode.addDependencyManagement( dep ); + stack.push( transNode ); + + // Test it + DependencyGraphNode junitNode = toNode( "junit:junit:1.0::jar" ); + + assertRules( "junit (lvl:trans)", stack, junitNode, "3.8.1", "test", null ); + stack.pop(); + assertRules( "junit (lvl:direct)", stack, junitNode, "3.8.1", "test", null ); + stack.pop(); + assertRules( "junit (lvl:project)", stack, junitNode, "3.8.1", "test", null ); + } + + /** + * This test is based off of Carlos Sanchez's depman example use case. + * + * In a simple project chain of A:1.0 -> B:1.0 -> C:1.0 -> D:1.0 + * If B:1.0 has a dependency management section stating dep D should be version 2.0 + * Then the dep D when viewed from A should be version 2.0 + */ + public void testApplyNodeVersionCarlosABCD() + { + DependencyManagementStack stack = new DependencyManagementStack(); + Dependency dep; + + // project node, A + DependencyGraphNode nodeA = toNode( "org.apache.maven.archiva:carlos-A:1.0::jar" ); + stack.push( nodeA ); + + // sub node, B + DependencyGraphNode nodeB = toNode( "org.apache.maven.archiva:carlos-B:1.0::jar" ); + dep = toDependency( "org.apache.maven.archiva:carlos-D:2.0::jar" ); + nodeB.addDependencyManagement( dep ); + stack.push( nodeB ); + + // sub node, C + DependencyGraphNode nodeC = toNode( "org.apache.maven.archiva:carlos-C:1.0::jar" ); + stack.push( nodeC ); + + // sub node, D + // Not added to the stack, as this is the node that is having the rules applied to it. + DependencyGraphNode nodeD = toNode( "org.apache.maven.archiva:carlos-D:1.0::jar" ); + + // Test it + assertRules( "node D (lvl:C)", stack, nodeD, "2.0", null, null ); + stack.pop(); + assertRules( "node D (lvl:B)", stack, nodeD, "2.0", null, null ); + stack.pop(); + assertNoRules( "node D (lvl:A)", stack, nodeD, "2.0", null, null ); + } + + /** + * Test for expected rules, that should be enforced for the provided node. + * NOTE: This test will update the node.artifact.version to whatever is stated in the rules. + */ + private void assertRules( String msg, DependencyManagementStack stack, DependencyGraphNode node, + String expectedVersion, String expectedScope, String expectedExclusions[] ) + { + Rules rules = stack.getRules( node ); + assertNotNull( msg + " rules should not be null.", rules ); + + node.getArtifact().setVersion( rules.artifact.getVersion() ); + + assertEquals( msg + ": version", expectedVersion, rules.artifact.getVersion() ); + assertEquals( msg + ": scope", expectedScope, rules.scope ); + + if ( expectedExclusions != null ) + { + // TODO: test for exclusion settings. + } + } + + /** + * Test for when there are no rules being enforced for the provided node. + * Similar to assertRules() above. + */ + private void assertNoRules( String msg, DependencyManagementStack stack, DependencyGraphNode node, + String expectedVersion, String expectedScope, String expectedExclusions[] ) + { + Rules rules = stack.getRules( node ); + assertNull( msg + " rules should be null.", rules ); + + assertEquals( msg + ": version", expectedVersion, node.getArtifact().getVersion() ); + + if ( expectedExclusions != null ) + { + // TODO: test for exclusion settings. + } + } +} diff --git a/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/walk/DependencyGraphWalkerTest.java b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/walk/DependencyGraphWalkerTest.java new file mode 100644 index 000000000..3669d215b --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/walk/DependencyGraphWalkerTest.java @@ -0,0 +1,231 @@ +package org.apache.maven.archiva.dependency.graph.walk; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.lang.StringUtils; +import org.apache.maven.archiva.dependency.graph.DependencyGraph; +import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; +import org.apache.maven.archiva.dependency.graph.DependencyGraphKeys; +import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; +import org.apache.maven.archiva.dependency.graph.tasks.FlagCyclicEdgesTask; +import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphWalker; +import org.apache.maven.archiva.dependency.graph.walk.WalkDepthFirstSearch; +import org.apache.maven.archiva.model.ArtifactReference; + +import java.util.List; + +import junit.framework.TestCase; + +/** + * DependencyGraphWalkerTest + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class DependencyGraphWalkerTest + extends TestCase +{ + /** + *
+     *  [foo-util] ---> [foo-common]
+     *      \
+     *       ---------> [foo-xml] ---> [xercesImpl] ---> [xmlParserAPIs]
+     *                        \  \
+     *                         \  ---> [jdom] ----+
+     *                          \                 |
+     *                           ----> [jaxen] <--+
+     * 
+ */ + public void testModerateWalk() + { + DependencyGraph graph = new DependencyGraph( "org.foo", "foo-util", "1.0" ); + String rootKey = DependencyGraphKeys.toKey( graph.getRootNode().getArtifact() ); + addEdgeAndNodes( graph, toEdge( rootKey, "org.foo:foo-common:1.0::jar" ) ); + addEdgeAndNodes( graph, toEdge( rootKey, "org.foo:foo-xml:1.0::jar" ) ); + + addEdgeAndNodes( graph, toEdge( "org.foo:foo-xml:1.0::jar", "xerces:xercesImpl:2.2.1::jar" ) ); + addEdgeAndNodes( graph, toEdge( "xerces:xercesImpl:2.2.1::jar", "xerces:xmlParserAPIs:2.2.1::jar" ) ); + addEdgeAndNodes( graph, toEdge( "org.foo:foo-xml:1.0::jar", "jdom:jdom:1.0::jar" ) ); + addEdgeAndNodes( graph, toEdge( "org.foo:foo-xml:1.0::jar", "jaxen:jaxen:1.0::jar" ) ); + addEdgeAndNodes( graph, toEdge( "jdom:jdom:1.0::jar", "jaxen:jaxen:1.0::jar" ) ); + + DependencyGraphWalker walker = new WalkDepthFirstSearch(); + WalkCollector walkCollector = new WalkCollector(); + walker.visit( graph, walkCollector ); + + String expectedPath[] = new String[] { + rootKey, + "org.foo:foo-common:1.0::jar", + "org.foo:foo-xml:1.0::jar", + "jaxen:jaxen:1.0::jar", + "xerces:xercesImpl:2.2.1::jar", + "xerces:xmlParserAPIs:2.2.1::jar", + "jdom:jdom:1.0::jar" }; + + assertVisitor( walkCollector, 1, 7, 7 ); + assertPath( expectedPath, walkCollector.getCollectedPath() ); + } + + /** + *
+     *  [foo-util] ---> [foo-common]
+     *      \
+     *       ---------> [foo-xml] ---> [xercesImpl] ---> [xmlParserAPIs]
+     * 
+ */ + public void testSimpleWalk() + { + DependencyGraph graph = new DependencyGraph( "org.foo", "foo-util", "1.0" ); + String rootKey = DependencyGraphKeys.toKey( graph.getRootNode().getArtifact() ); + addEdgeAndNodes( graph, toEdge( rootKey, "org.foo:foo-common:1.0::jar" ) ); + addEdgeAndNodes( graph, toEdge( rootKey, "org.foo:foo-xml:1.0::jar" ) ); + addEdgeAndNodes( graph, toEdge( "org.foo:foo-xml:1.0::jar", "xerces:xercesImpl:2.2.1::jar" ) ); + addEdgeAndNodes( graph, toEdge( "xerces:xercesImpl:2.2.1::jar", "xerces:xmlParserAPIs:2.2.1::jar" ) ); + + DependencyGraphWalker walker = new WalkDepthFirstSearch(); + WalkCollector walkCollector = new WalkCollector(); + walker.visit( graph, walkCollector ); + + String expectedPath[] = new String[] { + rootKey, + "org.foo:foo-common:1.0::jar", + "org.foo:foo-xml:1.0::jar", + "xerces:xercesImpl:2.2.1::jar", + "xerces:xmlParserAPIs:2.2.1::jar" }; + + assertVisitor( walkCollector, 1, 5, 4 ); + assertPath( expectedPath, walkCollector.getCollectedPath() ); + } + + /** + *
+     *  [foo-util] ---> [foo-common]
+     *      \
+     *       \              +----------------------------------------+
+     *        \             v                                        |
+     *         -------> [foo-xml] ---> [xercesImpl] ---> [xmlParserAPIs]
+     *                        \  \
+     *                         \  ---> [jdom] ----+
+     *                          \                 |
+     *                           ----> [jaxen] <--+
+     * 
+ */ + public void testDeepNodeWalk() + { + DependencyGraph graph = new DependencyGraph( "org.foo", "foo-util", "1.0" ); + String rootKey = DependencyGraphKeys.toKey( graph.getRootNode().getArtifact() ); + addEdgeAndNodes( graph, toEdge( rootKey, "org.foo:foo-common:1.0::jar" ) ); + addEdgeAndNodes( graph, toEdge( rootKey, "org.foo:foo-xml:1.0::jar" ) ); + + addEdgeAndNodes( graph, toEdge( "org.foo:foo-xml:1.0::jar", "xerces:xercesImpl:2.2.1::jar" ) ); + addEdgeAndNodes( graph, toEdge( "xerces:xercesImpl:2.2.1::jar", "xerces:xmlParserAPIs:2.2.1::jar" ) ); + addEdgeAndNodes( graph, toEdge( "org.foo:foo-xml:1.0::jar", "jdom:jdom:1.0::jar" ) ); + addEdgeAndNodes( graph, toEdge( "org.foo:foo-xml:1.0::jar", "jaxen:jaxen:1.0::jar" ) ); + addEdgeAndNodes( graph, toEdge( "jdom:jdom:1.0::jar", "jaxen:jaxen:1.0::jar" ) ); + // introduce cyclic dep. intentional. should only result in walking to foo-xml once. + addEdgeAndNodes( graph, toEdge( "xerces:xmlParserAPIs:2.2.1::jar", "org.foo:foo-xml:1.0::jar" ) ); + + new FlagCyclicEdgesTask().executeTask( graph ); + + DependencyGraphWalker walker = new WalkDepthFirstSearch(); + WalkCollector walkCollector = new WalkCollector(); + ArtifactReference startRef = toArtifactReference( "org.foo:foo-xml:1.0::jar" ); + DependencyGraphNode startNode = new DependencyGraphNode( startRef ); + walker.visit( graph, startNode, walkCollector ); + + String expectedPath[] = new String[] { + "org.foo:foo-xml:1.0::jar", + "jaxen:jaxen:1.0::jar", + "xerces:xercesImpl:2.2.1::jar", + "xerces:xmlParserAPIs:2.2.1::jar", + "jdom:jdom:1.0::jar" }; + + assertVisitor( walkCollector, 1, 5, 6 ); + assertPath( expectedPath, walkCollector.getCollectedPath() ); + } + + private void addEdgeAndNodes( DependencyGraph graph, DependencyGraphEdge edge ) + { + ensureNodeExists( graph, edge.getNodeFrom() ); + ensureNodeExists( graph, edge.getNodeTo() ); + graph.addEdge( edge ); + } + + private void ensureNodeExists( DependencyGraph graph, ArtifactReference artifact ) + { + DependencyGraphNode node = graph.getNode( artifact ); + if ( node == null ) + { + node = new DependencyGraphNode( artifact ); + graph.addNode( node ); + } + } + + private void assertPath( String[] expectedPath, List collectedPath ) + { + assertEquals( "Path.length", expectedPath.length, collectedPath.size() ); + + for ( int i = 0; i < expectedPath.length; i++ ) + { + assertEquals( "Walk path[" + i + "]", expectedPath[i], (String) collectedPath.get( i ) ); + } + } + + private void assertVisitor( WalkCollector walkCollector, int countGraphs, int countNodes, int countEdges ) + { + assertEquals( "Count of graph discovery.", countGraphs, walkCollector.getCountDiscoverGraph() ); + assertEquals( "Count of graph finished.", countGraphs, walkCollector.getCountFinishGraph() ); + assertEquals( "Discover - Finish = 0 (on graph counts)", 0, + ( walkCollector.getCountDiscoverGraph() - walkCollector.getCountFinishGraph() ) ); + + assertEquals( "Count of node discovery.", countNodes, walkCollector.getCountDiscoverNode() ); + assertEquals( "Count of node finished.", countNodes, walkCollector.getCountFinishNode() ); + assertEquals( "Discover - Finish = 0 (on node counts)", 0, + ( walkCollector.getCountDiscoverNode() - walkCollector.getCountFinishNode() ) ); + + assertEquals( "Count of edge discovery.", countEdges, walkCollector.getCountDiscoverEdge() ); + assertEquals( "Count of edge finished.", countEdges, walkCollector.getCountFinishEdge() ); + assertEquals( "Discover - Finish = 0 (on edge counts)", 0, + ( walkCollector.getCountDiscoverEdge() - walkCollector.getCountFinishEdge() ) ); + } + + private DependencyGraphEdge toEdge( String fromKey, String toKey ) + { + ArtifactReference nodeFrom = toArtifactReference( fromKey ); + ArtifactReference nodeTo = toArtifactReference( toKey ); + + return new DependencyGraphEdge( nodeFrom, nodeTo ); + } + + private ArtifactReference toArtifactReference( String key ) + { + String parts[] = StringUtils.splitPreserveAllTokens( key, ':' ); + assertEquals( "ArtifactReference [" + key + "] parts should equal 5", 5, parts.length ); + + ArtifactReference artifact = new ArtifactReference(); + artifact.setGroupId( parts[0] ); + artifact.setArtifactId( parts[1] ); + artifact.setVersion( parts[2] ); + artifact.setClassifier( parts[3] ); + artifact.setType( parts[4] ); + + return artifact; + } +} diff --git a/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/walk/WalkCollector.java b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/walk/WalkCollector.java new file mode 100644 index 000000000..8c245d854 --- /dev/null +++ b/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/walk/WalkCollector.java @@ -0,0 +1,98 @@ +/** + * + */ +package org.apache.maven.archiva.dependency.graph.walk; + +import org.apache.maven.archiva.dependency.graph.DependencyGraph; +import org.apache.maven.archiva.dependency.graph.DependencyGraphEdge; +import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; +import org.apache.maven.archiva.dependency.graph.walk.DependencyGraphVisitor; +import org.apache.maven.archiva.model.ArtifactReference; + +import java.util.ArrayList; +import java.util.List; + +class WalkCollector + implements DependencyGraphVisitor +{ + private List walkPath = new ArrayList(); + + private int countDiscoverGraph = 0; + + private int countFinishGraph = 0; + + private int countDiscoverNode = 0; + + private int countFinishNode = 0; + + private int countDiscoverEdge = 0; + + private int countFinishEdge = 0; + + public void discoverEdge( DependencyGraphEdge edge ) + { + countDiscoverEdge++; + } + + public void discoverGraph( DependencyGraph graph ) + { + countDiscoverGraph++; + } + + public void discoverNode( DependencyGraphNode node ) + { + countDiscoverNode++; + walkPath.add( ArtifactReference.toKey( node.getArtifact() ) ); + } + + public void finishEdge( DependencyGraphEdge edge ) + { + countFinishEdge++; + } + + public void finishGraph( DependencyGraph graph ) + { + countFinishGraph++; + } + + public void finishNode( DependencyGraphNode node ) + { + countFinishNode++; + } + + public List getCollectedPath() + { + return walkPath; + } + + public int getCountDiscoverEdge() + { + return countDiscoverEdge; + } + + public int getCountDiscoverGraph() + { + return countDiscoverGraph; + } + + public int getCountDiscoverNode() + { + return countDiscoverNode; + } + + public int getCountFinishEdge() + { + return countFinishEdge; + } + + public int getCountFinishGraph() + { + return countFinishGraph; + } + + public int getCountFinishNode() + { + return countFinishNode; + } + +} \ No newline at end of file diff --git a/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/DependencyScope.java b/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/DependencyScope.java index 03d62307c..9f177cd47 100644 --- a/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/DependencyScope.java +++ b/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/DependencyScope.java @@ -19,6 +19,7 @@ package org.apache.maven.archiva.model; * under the License. */ +import org.apache.commons.collections.map.MultiValueMap; import org.apache.commons.lang.StringUtils; /** @@ -39,8 +40,64 @@ public class DependencyScope public static final String TEST = "test"; + private static final MultiValueMap scopeMap; + + static + { + // Store the map of scopes to what other scopes are 'within' that scope. + scopeMap = new MultiValueMap(); + + scopeMap.put( COMPILE, COMPILE ); + scopeMap.put( COMPILE, RUNTIME ); + scopeMap.put( COMPILE, PROVIDED ); + scopeMap.put( COMPILE, SYSTEM ); + + scopeMap.put( TEST, COMPILE ); + scopeMap.put( TEST, RUNTIME ); + scopeMap.put( TEST, PROVIDED ); + scopeMap.put( TEST, SYSTEM ); + scopeMap.put( TEST, TEST ); + + scopeMap.put( RUNTIME, RUNTIME ); + scopeMap.put( RUNTIME, PROVIDED ); + scopeMap.put( RUNTIME, SYSTEM ); + + scopeMap.put( PROVIDED, RUNTIME ); + scopeMap.put( PROVIDED, PROVIDED ); + scopeMap.put( PROVIDED, SYSTEM ); + + scopeMap.put( SYSTEM, SYSTEM ); + } + public static boolean isSystemScoped( Dependency dep ) { return StringUtils.equals( SYSTEM, dep.getScope() ); } + + /** + * Test the provided scope against the desired scope to see if it is + * within that scope's pervue. + * + * Examples: + * actual:compile, desired:test = true + * actual:compile, desired:compile = true + * actual:test, desired:compile = false + * actual:provided, desired:compile = false + * + * @param actualScope + * @param desiredScope + * @return + */ + public static boolean isWithinScope( String actualScope, String desiredScope ) + { + if ( StringUtils.isBlank( desiredScope ) ) + { + // nothing desired? everything should fail. + return false; + } + + String scope = StringUtils.defaultIfEmpty( actualScope, COMPILE ); + + return scopeMap.containsValue( desiredScope, scope ); + } } diff --git a/archiva-base/archiva-model/src/main/mdo/archiva-base.xml b/archiva-base/archiva-model/src/main/mdo/archiva-base.xml index 314fee477..5e140a25e 100644 --- a/archiva-base/archiva-model/src/main/mdo/archiva-base.xml +++ b/archiva-base/archiva-model/src/main/mdo/archiva-base.xml @@ -979,6 +979,104 @@ } ]]> + + 1.0.0+ + + @@ -1269,6 +1367,16 @@ * + + relocation + 1.0.0+ + If relocated, this is the new location reference + + VersionedReference + 1 + + @@ -1678,10 +1786,18 @@ transitive 1.0.0+ - true - True if the dependency node is only here due a transitive lookup + false + True if the dependency is only here due a transitive resolution boolean - false + + + + fromParent + 1.0.0+ + false + True if the dependency is only here due a parent pom + boolean + url diff --git a/archiva-base/archiva-model/src/test/java/org/apache/maven/archiva/model/DependencyScopeTest.java b/archiva-base/archiva-model/src/test/java/org/apache/maven/archiva/model/DependencyScopeTest.java new file mode 100644 index 000000000..79db79a73 --- /dev/null +++ b/archiva-base/archiva-model/src/test/java/org/apache/maven/archiva/model/DependencyScopeTest.java @@ -0,0 +1,73 @@ +package org.apache.maven.archiva.model; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import junit.framework.TestCase; + +/** + * DependencyScopeTest + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class DependencyScopeTest + extends TestCase +{ + public void testIsWithinScope() + { + // Test on blank / empty desired scopes. + assertFalse( DependencyScope.isWithinScope( "compile", null ) ); + assertFalse( DependencyScope.isWithinScope( "test", null ) ); + assertFalse( DependencyScope.isWithinScope( "runtime", null ) ); + assertFalse( DependencyScope.isWithinScope( "provided", null ) ); + assertFalse( DependencyScope.isWithinScope( "compile", "" ) ); + assertFalse( DependencyScope.isWithinScope( "test", "" ) ); + assertFalse( DependencyScope.isWithinScope( "runtime", "" ) ); + assertFalse( DependencyScope.isWithinScope( "provided", "" ) ); + + // Tests on blank / empty actual scopes. + assertTrue( DependencyScope.isWithinScope( "", DependencyScope.COMPILE ) ); + assertTrue( DependencyScope.isWithinScope( null, DependencyScope.COMPILE ) ); + assertTrue( DependencyScope.isWithinScope( "", DependencyScope.TEST ) ); + assertTrue( DependencyScope.isWithinScope( null, DependencyScope.TEST ) ); + assertFalse( DependencyScope.isWithinScope( "", DependencyScope.PROVIDED ) ); + assertFalse( DependencyScope.isWithinScope( null, DependencyScope.PROVIDED ) ); + assertFalse( DependencyScope.isWithinScope( "", DependencyScope.RUNTIME ) ); + assertFalse( DependencyScope.isWithinScope( null, DependencyScope.RUNTIME ) ); + + // Tests on compile desired scopes. + assertTrue( DependencyScope.isWithinScope( "compile", DependencyScope.COMPILE ) ); + assertFalse( DependencyScope.isWithinScope( "test", DependencyScope.COMPILE ) ); + + // Tests on test desired scopes. + assertTrue( DependencyScope.isWithinScope( "compile", DependencyScope.TEST ) ); + assertTrue( DependencyScope.isWithinScope( "test", DependencyScope.TEST ) ); + + // Tests on oddball scopes. + assertFalse( DependencyScope.isWithinScope( "compile", DependencyScope.PROVIDED ) ); + assertFalse( DependencyScope.isWithinScope( "test", DependencyScope.PROVIDED ) ); + assertTrue( DependencyScope.isWithinScope( "provided", DependencyScope.PROVIDED ) ); + + assertFalse( DependencyScope.isWithinScope( "compile", DependencyScope.RUNTIME ) ); + assertFalse( DependencyScope.isWithinScope( "test", DependencyScope.RUNTIME ) ); + assertTrue( DependencyScope.isWithinScope( "provided", DependencyScope.RUNTIME ) ); + assertTrue( DependencyScope.isWithinScope( "runtime", DependencyScope.RUNTIME ) ); + } +} diff --git a/archiva-base/archiva-repository-layer/pom.xml b/archiva-base/archiva-repository-layer/pom.xml index 8c09353fd..803e8f0e1 100644 --- a/archiva-base/archiva-repository-layer/pom.xml +++ b/archiva-base/archiva-repository-layer/pom.xml @@ -32,6 +32,11 @@ org.apache.maven.archiva archiva-configuration + + org.apache.maven.archiva + archiva-dependency-graph + 1.0-alpha-2-SNAPSHOT + org.apache.maven.archiva archiva-consumer-api diff --git a/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMerge.java b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMerge.java index 7da66c5a4..6a0e4fc90 100644 --- a/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMerge.java +++ b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMerge.java @@ -36,15 +36,19 @@ import org.apache.maven.archiva.model.Scm; import java.util.ArrayList; import java.util.Enumeration; import java.util.HashMap; +import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Properties; +import java.util.Set; import java.util.Map.Entry; /** * ProjectModelMerge * + * TODO: Should call this ProjectModelAncestry as it deals with the current project and its parent. + * * @author Joakim Erdfelt * @version $Id$ */ @@ -75,6 +79,7 @@ public class ProjectModelMerge // Unmerged. merged.setArtifactId( mainProject.getArtifactId() ); merged.setPackaging( StringUtils.defaultIfEmpty( mainProject.getPackaging(), "jar" ) ); + merged.setRelocation( mainProject.getRelocation() ); // Merged merged.setGroupId( merge( mainProject.getGroupId(), parentProject.getGroupId() ) ); @@ -98,7 +103,7 @@ public class ProjectModelMerge merged.setPlugins( mergePlugins( mainProject.getPlugins(), parentProject.getPlugins() ) ); merged.setReports( mergeReports( mainProject.getReports(), parentProject.getReports() ) ); merged.setProperties( merge( mainProject.getProperties(), parentProject.getProperties() ) ); - + return merged; } @@ -245,11 +250,15 @@ public class ProjectModelMerge if ( mainDep == null ) { - return ArchivaModelCloner.clone( parentDep ); + Dependency dep = ArchivaModelCloner.clone( parentDep ); + dep.setFromParent( true ); + return dep; } Dependency merged = new Dependency(); + merged.setFromParent( true ); + // Unmerged. merged.setGroupId( mainDep.getGroupId() ); merged.setArtifactId( mainDep.getArtifactId() ); @@ -415,28 +424,40 @@ public class ProjectModelMerge if ( mainDependencies == null ) { - return ArchivaModelCloner.cloneDependencies( parentDependencies ); + List merged = ArchivaModelCloner.cloneDependencies( parentDependencies ); + Iterator it = merged.iterator(); + while ( it.hasNext() ) + { + Dependency dep = (Dependency) it.next(); + dep.setFromParent( true ); + } + return merged; } - List merged = ArchivaModelCloner.cloneDependencies( mainDependencies ); + List merged = new ArrayList(); Map mainDepMap = createDependencyMap( mainDependencies ); Map parentDepMap = createDependencyMap( parentDependencies ); + Set uniqueKeys = new HashSet(); + uniqueKeys.addAll( mainDepMap.keySet() ); + uniqueKeys.addAll( parentDepMap.keySet() ); - Iterator it = parentDepMap.entrySet().iterator(); + Iterator it = uniqueKeys.iterator(); while ( it.hasNext() ) { - Map.Entry entry = (Entry) it.next(); - String key = (String) entry.getKey(); - Dependency parentDep = (Dependency) entry.getValue(); + String key = (String) it.next(); + Dependency parentDep = (Dependency) parentDepMap.get( key ); Dependency mainDep = (Dependency) mainDepMap.get( key ); if ( parentDep == null ) { + // Means there is no parent dep to override main dep. merged.add( mainDep ); } else { + // Parent dep exists (main doesn't have to). + // Merge the parent over the main dep. merged.add( merge( mainDep, parentDep ) ); } } @@ -453,28 +474,40 @@ public class ProjectModelMerge if ( mainDepMgmt == null ) { - return ArchivaModelCloner.cloneDependencies( parentDepMgmt ); + List merged = ArchivaModelCloner.cloneDependencies( parentDepMgmt ); + Iterator it = merged.iterator(); + while ( it.hasNext() ) + { + Dependency dep = (Dependency) it.next(); + dep.setFromParent( true ); + } + return merged; } - List merged = ArchivaModelCloner.cloneDependencies( mainDepMgmt ); + List merged = new ArrayList(); Map mainDepMap = createDependencyMap( mainDepMgmt ); Map parentDepMap = createDependencyMap( parentDepMgmt ); + Set uniqueKeys = new HashSet(); + uniqueKeys.addAll( mainDepMap.keySet() ); + uniqueKeys.addAll( parentDepMap.keySet() ); - Iterator it = parentDepMap.entrySet().iterator(); + Iterator it = uniqueKeys.iterator(); while ( it.hasNext() ) { - Map.Entry entry = (Entry) it.next(); - String key = (String) entry.getKey(); - Dependency parentDep = (Dependency) entry.getValue(); + String key = (String) it.next(); + Dependency parentDep = (Dependency) parentDepMap.get( key ); Dependency mainDep = (Dependency) mainDepMap.get( key ); if ( parentDep == null ) { + // Means there is no parent depMan entry to override main depMan. merged.add( mainDep ); } else { + // Parent depMan entry exists (main doesn't have to). + // Merge the parent over the main depMan entry. merged.add( merge( mainDep, parentDep ) ); } } diff --git a/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/dependencies/ProjectModelBasedGraphBuilder.java b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/dependencies/ProjectModelBasedGraphBuilder.java new file mode 100644 index 000000000..8f99c89e8 --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/dependencies/ProjectModelBasedGraphBuilder.java @@ -0,0 +1,116 @@ +package org.apache.maven.archiva.repository.project.dependencies; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.dependency.graph.DependencyGraph; +import org.apache.maven.archiva.dependency.graph.DependencyGraphBuilder; +import org.apache.maven.archiva.dependency.graph.DependencyGraphNode; +import org.apache.maven.archiva.dependency.graph.DependencyGraphUtils; +import org.apache.maven.archiva.model.ArchivaProjectModel; +import org.apache.maven.archiva.model.ArtifactReference; +import org.apache.maven.archiva.model.VersionedReference; +import org.apache.maven.archiva.repository.project.ProjectModelException; +import org.apache.maven.archiva.repository.project.filters.EffectiveProjectModelFilter; +import org.apache.maven.archiva.repository.project.resolvers.ProjectModelResolverStack; + +/** + * ProjectModelBasedGraphBuilder + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class ProjectModelBasedGraphBuilder + implements DependencyGraphBuilder +{ + private ProjectModelResolverStack modelResolver; + + private EffectiveProjectModelFilter effectiveFilter = new EffectiveProjectModelFilter(); + + public DependencyGraph createGraph( VersionedReference versionedProjectReference ) + { + String groupId = versionedProjectReference.getGroupId(); + String artifactId = versionedProjectReference.getArtifactId(); + String version = versionedProjectReference.getVersion(); + + DependencyGraph graph = new DependencyGraph( groupId, artifactId, version ); + return graph; + } + + public void resolveNode( DependencyGraph graph, DependencyGraphNode fromNode, + VersionedReference versionedProjectReference ) + { + ArchivaProjectModel model = resolveModel( fromNode.getArtifact() ); + + DependencyGraphUtils.addNodeFromModel( model, graph, fromNode ); + } + + private ArchivaProjectModel resolveModel( ArtifactReference reference ) + { + VersionedReference projectRef = new VersionedReference(); + + projectRef.setGroupId( reference.getGroupId() ); + projectRef.setArtifactId( reference.getArtifactId() ); + projectRef.setVersion( reference.getVersion() ); + + ArchivaProjectModel model = modelResolver.findProject( projectRef ); + + if ( model == null ) + { + return createDefaultModel( reference ); + } + + try + { + effectiveFilter.setProjectModelResolverStack( modelResolver ); + + ArchivaProjectModel processedModel = effectiveFilter.filter( model ); + + return processedModel; + } + catch ( ProjectModelException e ) + { + e.printStackTrace( System.err ); + return createDefaultModel( reference ); + } + } + + private ArchivaProjectModel createDefaultModel( ArtifactReference reference ) + { + ArchivaProjectModel model = new ArchivaProjectModel(); + + // Create default (dummy) model + model = new ArchivaProjectModel(); + model.setGroupId( reference.getGroupId() ); + model.setArtifactId( reference.getArtifactId() ); + model.setVersion( reference.getVersion() ); + model.setPackaging( reference.getType() ); + return model; + } + + public ProjectModelResolverStack getModelResolver() + { + return modelResolver; + } + + public void setModelResolver( ProjectModelResolverStack modelResolver ) + { + this.modelResolver = modelResolver; + } +} diff --git a/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelFilter.java b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelFilter.java index a1ce18b9f..3469c75f7 100644 --- a/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelFilter.java +++ b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelFilter.java @@ -19,6 +19,7 @@ package org.apache.maven.archiva.repository.project.filters; * under the License. */ +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.apache.maven.archiva.model.ArchivaModelCloner; import org.apache.maven.archiva.model.ArchivaProjectModel; @@ -27,10 +28,11 @@ import org.apache.maven.archiva.model.VersionedReference; import org.apache.maven.archiva.repository.project.ProjectModelException; import org.apache.maven.archiva.repository.project.ProjectModelFilter; import org.apache.maven.archiva.repository.project.ProjectModelMerge; -import org.apache.maven.archiva.repository.project.ProjectModelResolver; +import org.apache.maven.archiva.repository.project.resolvers.ProjectModelResolverStack; import org.codehaus.plexus.logging.AbstractLogEnabled; +import org.codehaus.plexus.logging.Logger; +import org.codehaus.plexus.logging.console.ConsoleLogger; -import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -48,26 +50,23 @@ public class EffectiveProjectModelFilter extends AbstractLogEnabled implements ProjectModelFilter { - /** - * @plexus.requirement role-hint="expression" - */ - private ProjectModelFilter expressionFilter; + private ProjectModelFilter expressionFilter = new ProjectModelExpressionFilter(); - private List projectModelResolvers; + private ProjectModelResolverStack projectModelResolverStack; public EffectiveProjectModelFilter() { - projectModelResolvers = new ArrayList(); + projectModelResolverStack = new ProjectModelResolverStack(); } - public void addProjectModelResolver( ProjectModelResolver resolver ) + public void setProjectModelResolverStack( ProjectModelResolverStack resolverStack ) { - if ( resolver == null ) - { - return; - } + this.projectModelResolverStack = resolverStack; + } - this.projectModelResolvers.add( resolver ); + public ProjectModelResolverStack getProjectModelResolverStack() + { + return this.projectModelResolverStack; } /** @@ -90,7 +89,7 @@ public class EffectiveProjectModelFilter return null; } - if ( this.projectModelResolvers.isEmpty() ) + if ( this.projectModelResolverStack.isEmpty() ) { throw new IllegalStateException( "Unable to build effective pom with no project model resolvers defined." ); } @@ -113,25 +112,26 @@ public class EffectiveProjectModelFilter return effectiveProject; } - public void removeResolver( ProjectModelResolver resolver ) - { - this.projectModelResolvers.remove( resolver ); - } + private Logger logger; - public void clearResolvers() + protected Logger getLogger() { - this.projectModelResolvers.clear(); + if ( logger == null ) + { + logger = super.getLogger(); + if ( logger == null ) + { + logger = new ConsoleLogger( ConsoleLogger.LEVEL_INFO, this.getClass().getName() ); + } + } + + return logger; } private void applyDependencyManagement( ArchivaProjectModel pom ) { - if ( ( pom.getDependencyManagement() == null ) || ( pom.getDependencies() == null ) ) - { - // Nothing to do. All done! - return; - } - - if ( pom.getDependencyManagement().isEmpty() || pom.getDependencies().isEmpty() ) + if ( CollectionUtils.isEmpty( pom.getDependencyManagement() ) + || CollectionUtils.isEmpty( pom.getDependencies() ) ) { // Nothing to do. All done! return; @@ -156,39 +156,6 @@ public class EffectiveProjectModelFilter } } - private ArchivaProjectModel findProject( VersionedReference projectRef ) - { - getLogger().debug( "Trying to find project: " + projectRef ); - Iterator it = this.projectModelResolvers.iterator(); - - while ( it.hasNext() ) - { - ProjectModelResolver resolver = (ProjectModelResolver) it.next(); - - try - { - getLogger().debug( "Trying to find in " + resolver.getClass().getName() ); - ArchivaProjectModel model = resolver.resolveProjectModel( projectRef ); - - if ( model != null ) - { - getLogger().debug( "Found it!: " + model ); - return model; - } - getLogger().debug( "Not found." ); - } - catch ( ProjectModelException e ) - { - // TODO: trigger notifier of problem? - e.printStackTrace(); - } - } - - // TODO: Document that project was not found. (Use monitor?) - - return null; - } - private ArchivaProjectModel mergeParent( ArchivaProjectModel pom ) throws ProjectModelException { @@ -204,7 +171,7 @@ public class EffectiveProjectModelFilter getLogger().debug( "Has parent: " + parentRef ); // Find parent using resolvers. - ArchivaProjectModel parentProject = findProject( parentRef ); + ArchivaProjectModel parentProject = this.projectModelResolverStack.findProject( parentRef ); if ( parentProject != null ) { diff --git a/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionFilter.java b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionFilter.java index d845897be..2a84a0dc0 100644 --- a/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionFilter.java +++ b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionFilter.java @@ -20,11 +20,13 @@ package org.apache.maven.archiva.repository.project.filters; */ import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang.StringUtils; import org.apache.maven.archiva.model.ArchivaModelCloner; import org.apache.maven.archiva.model.ArchivaProjectModel; import org.apache.maven.archiva.model.Dependency; import org.apache.maven.archiva.repository.project.ProjectModelException; import org.apache.maven.archiva.repository.project.ProjectModelFilter; +import org.codehaus.plexus.evaluator.DefaultExpressionEvaluator; import org.codehaus.plexus.evaluator.EvaluatorException; import org.codehaus.plexus.evaluator.ExpressionEvaluator; import org.codehaus.plexus.evaluator.sources.PropertiesExpressionSource; @@ -32,6 +34,7 @@ import org.codehaus.plexus.evaluator.sources.SystemPropertyExpressionSource; import java.util.Iterator; import java.util.List; +import java.util.Properties; /** * ProjectModelExpressionFilter @@ -45,10 +48,7 @@ import java.util.List; public class ProjectModelExpressionFilter implements ProjectModelFilter { - /** - * @plexus.requirement - */ - private ExpressionEvaluator evaluator; + private ExpressionEvaluator evaluator = new DefaultExpressionEvaluator(); /** * Find and Evaluate the Expressions present in the model. @@ -58,13 +58,21 @@ public class ProjectModelExpressionFilter public ArchivaProjectModel filter( final ArchivaProjectModel model ) throws ProjectModelException { + Properties props = new Properties(); + if ( model.getProperties() != null ) { - PropertiesExpressionSource propsSource = new PropertiesExpressionSource(); - propsSource.setProperties( model.getProperties() ); - evaluator.addExpressionSource( propsSource ); + props.putAll( model.getProperties() ); } + props.setProperty( "pom.artifactId", model.getArtifactId() ); + + props.setProperty( "pom.groupId", StringUtils.defaultString( model.getGroupId() ) ); + props.setProperty( "pom.version", StringUtils.defaultString( model.getVersion() ) ); + + PropertiesExpressionSource propsSource = new PropertiesExpressionSource(); + propsSource.setProperties( props ); + evaluator.addExpressionSource( propsSource ); evaluator.addExpressionSource( new SystemPropertyExpressionSource() ); ArchivaProjectModel ret = ArchivaModelCloner.clone( model ); diff --git a/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/readers/ProjectModel400Reader.java b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/readers/ProjectModel400Reader.java index d6fdbd20f..09fa47318 100644 --- a/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/readers/ProjectModel400Reader.java +++ b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/readers/ProjectModel400Reader.java @@ -107,6 +107,8 @@ public class ProjectModel400Reader model.setBuildExtensions( getBuildExtensions( xml ) ); + model.setRelocation( getRelocation( xml ) ); + return model; } catch ( XMLException e ) @@ -453,6 +455,19 @@ public class ProjectModel400Reader return ret; } + private VersionedReference getRelocation( XMLReader xml ) + throws XMLException + { + Element elemRelocation = xml.getElement( "//project/distributionManagement/relocation" ); + + if ( elemRelocation != null ) + { + return getVersionedReference( elemRelocation ); + } + + return null; + } + private List getReports( XMLReader xml ) throws XMLException { diff --git a/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/ProjectModelResolutionListener.java b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/ProjectModelResolutionListener.java new file mode 100644 index 000000000..b3be1ba78 --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/ProjectModelResolutionListener.java @@ -0,0 +1,78 @@ +package org.apache.maven.archiva.repository.project.resolvers; + +import org.apache.maven.archiva.model.ArchivaProjectModel; +import org.apache.maven.archiva.model.VersionedReference; +import org.apache.maven.archiva.repository.project.ProjectModelResolver; + +import java.util.List; + +/** + * ProjectModelResolutionListener + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public interface ProjectModelResolutionListener +{ + /** + * Indicates that the resolution process has started for a specific project. + * + * @param projectRef the project reference. + * @param resolverList the {@link List} of {@link ProjectModelResolver}'s that will be searched. + * @see #resolutionSuccess(VersionedReference, ProjectModelResolver, ArchivaProjectModel) + * @see #resolutionNotFound(VersionedReference, List) + */ + public void resolutionStart( VersionedReference projectRef, List resolverList ); + + /** + * Indicates that a resolution against a specific resolver is about + * to occur. + * + * @param projectRef the project reference. + * @param resolver the resolver to attempt resolution on. + */ + public void resolutionAttempting( VersionedReference projectRef, ProjectModelResolver resolver ); + + /** + * Indicates that a resolution against a specific resolver resulted + * in in a missed resolution. + * + * "Miss" in this case refers to an attempt against a resolver, and that + * resolver essentially responds with a "not found here" response. + * + * @param projectRef the project reference. + * @param resolver the resolver the attempt was made on. + */ + public void resolutionMiss( VersionedReference projectRef, ProjectModelResolver resolver ); + + /** + * Indicates that a resolution against the specific resolver has + * caused an error. + * + * @param projectRef the project reference. + * @param resolver the (optional) resolver on which the error occured. + * @param cause the cause of the error. + */ + public void resolutionError( VersionedReference projectRef, ProjectModelResolver resolver, Exception cause ); + + /** + * Indicates that a resolution process has finished, and the requested + * projectRef has been found. + * + * @param projectRef the project reference. + * @param resolver the resolver on which success occured. + * @param model the resolved model. + * @see #resolutionStart(VersionedReference, List) + */ + public void resolutionSuccess( VersionedReference projectRef, ProjectModelResolver resolver, ArchivaProjectModel model ); + + /** + * Indicates that the resolution process has finished, and the requested + * projectRef could not be found. + * + * @param projectRef the project reference. + * @param resolverList the {@link List} of {@link ProjectModelResolver}'s that was be searched. + * @see #resolutionStart(VersionedReference, List) + */ + public void resolutionNotFound( VersionedReference projectRef, List resolverList ); +} diff --git a/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/ProjectModelResolverStack.java b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/ProjectModelResolverStack.java new file mode 100644 index 000000000..82a7027ca --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/ProjectModelResolverStack.java @@ -0,0 +1,244 @@ +package org.apache.maven.archiva.repository.project.resolvers; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.collections.CollectionUtils; +import org.apache.maven.archiva.model.ArchivaProjectModel; +import org.apache.maven.archiva.model.VersionedReference; +import org.apache.maven.archiva.repository.project.ProjectModelException; +import org.apache.maven.archiva.repository.project.ProjectModelResolver; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +/** + * Represents a stack of {@link ProjectModelResolver} resolvers for + * finding/resolving an ArchivaProjectModel from multiple sources. + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class ProjectModelResolverStack +{ + private List resolvers; + + private List listeners; + + public ProjectModelResolverStack() + { + this.resolvers = new ArrayList(); + this.listeners = new ArrayList(); + } + + public void addListener( ProjectModelResolutionListener listener ) + { + if ( listener == null ) + { + return; + } + + this.listeners.add( listener ); + } + + public void addProjectModelResolver( ProjectModelResolver resolver ) + { + if ( resolver == null ) + { + return; + } + + this.resolvers.add( resolver ); + } + + public void clearResolvers() + { + this.resolvers.clear(); + } + + public ArchivaProjectModel findProject( VersionedReference projectRef ) + { + if ( CollectionUtils.isEmpty( this.resolvers ) ) + { + throw new IllegalStateException( "No resolvers have been defined." ); + } + + triggerResolutionStart( projectRef, this.resolvers ); + + Iterator it = this.resolvers.iterator(); + + while ( it.hasNext() ) + { + ProjectModelResolver resolver = (ProjectModelResolver) it.next(); + + try + { + triggerResolutionAttempting( projectRef, resolver ); + ArchivaProjectModel model = resolver.resolveProjectModel( projectRef ); + + if ( model != null ) + { + // Project was found. + triggerResolutionSuccess( projectRef, resolver, model ); + return model; + } + triggerResolutionMiss( projectRef, resolver ); + } + catch ( ProjectModelException e ) + { + triggerResolutionError( projectRef, resolver, e ); + } + } + + // Project was not found in entire resolver list. + triggerResolutionNotFound( projectRef, this.resolvers ); + + return null; + } + + public boolean isEmpty() + { + return this.resolvers.isEmpty(); + } + + public void removeListener( ProjectModelResolutionListener listener ) + { + if ( listener == null ) + { + return; + } + + this.listeners.add( listener ); + } + + public void removeResolver( ProjectModelResolver resolver ) + { + this.resolvers.remove( resolver ); + } + + private void triggerResolutionAttempting( VersionedReference projectRef, ProjectModelResolver resolver ) + { + Iterator it = this.listeners.iterator(); + while ( it.hasNext() ) + { + ProjectModelResolutionListener listener = (ProjectModelResolutionListener) it.next(); + + try + { + listener.resolutionAttempting( projectRef, resolver ); + } + catch ( Exception e ) + { + // do nothing with exception. + } + } + } + + private void triggerResolutionError( VersionedReference projectRef, ProjectModelResolver resolver, Exception cause ) + { + Iterator it = this.listeners.iterator(); + while ( it.hasNext() ) + { + ProjectModelResolutionListener listener = (ProjectModelResolutionListener) it.next(); + + try + { + listener.resolutionError( projectRef, resolver, cause ); + } + catch ( Exception e ) + { + // do nothing with exception. + } + } + } + + private void triggerResolutionMiss( VersionedReference projectRef, ProjectModelResolver resolver ) + { + Iterator it = this.listeners.iterator(); + while ( it.hasNext() ) + { + ProjectModelResolutionListener listener = (ProjectModelResolutionListener) it.next(); + + try + { + listener.resolutionMiss( projectRef, resolver ); + } + catch ( Exception e ) + { + // do nothing with exception. + } + } + } + + private void triggerResolutionNotFound( VersionedReference projectRef, List resolvers ) + { + Iterator it = this.listeners.iterator(); + while ( it.hasNext() ) + { + ProjectModelResolutionListener listener = (ProjectModelResolutionListener) it.next(); + + try + { + listener.resolutionNotFound( projectRef, resolvers ); + } + catch ( Exception e ) + { + // do nothing with exception. + } + } + } + + private void triggerResolutionStart( VersionedReference projectRef, List resolvers ) + { + Iterator it = this.listeners.iterator(); + while ( it.hasNext() ) + { + ProjectModelResolutionListener listener = (ProjectModelResolutionListener) it.next(); + + try + { + listener.resolutionStart( projectRef, resolvers ); + } + catch ( Exception e ) + { + // do nothing with exception. + } + } + } + + private void triggerResolutionSuccess( VersionedReference projectRef, ProjectModelResolver resolver, + ArchivaProjectModel model ) + { + Iterator it = this.listeners.iterator(); + while ( it.hasNext() ) + { + ProjectModelResolutionListener listener = (ProjectModelResolutionListener) it.next(); + + try + { + listener.resolutionSuccess( projectRef, resolver, model ); + } + catch ( Exception e ) + { + // do nothing with exception. + } + } + } +} diff --git a/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelFilterTest.java b/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelFilterTest.java index a716165b6..73aad24b8 100644 --- a/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelFilterTest.java +++ b/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelFilterTest.java @@ -85,7 +85,7 @@ public class EffectiveProjectModelFilterTest { EffectiveProjectModelFilter filter = lookupEffective(); - filter.addProjectModelResolver( createDefaultRepositoryResolver() ); + filter.getProjectModelResolverStack().addProjectModelResolver( createDefaultRepositoryResolver() ); ArchivaProjectModel startModel = createArchivaProjectModel( DEFAULT_REPOSITORY + "/org/apache/maven/archiva/archiva-model/1.0-SNAPSHOT/archiva-model-1.0-SNAPSHOT.pom" ); diff --git a/archiva-base/pom.xml b/archiva-base/pom.xml index c61e6aa40..9cf57c2ed 100644 --- a/archiva-base/pom.xml +++ b/archiva-base/pom.xml @@ -35,6 +35,7 @@ archiva-consumers archiva-indexer archiva-model + archiva-dependency-graph archiva-repository-layer archiva-xml-tools archiva-proxy diff --git a/tools/maven-archivadev-plugin/pom.xml b/tools/maven-archivadev-plugin/pom.xml new file mode 100644 index 000000000..eff053bc9 --- /dev/null +++ b/tools/maven-archivadev-plugin/pom.xml @@ -0,0 +1,96 @@ + + + 4.0.0 + + + 2.0.4 + + + org.apache.maven.archiva.tools + maven-archivadev-plugin + maven-plugin + 1.0-SNAPSHOT + + Archiva Dev Maven Plugin + + 2007 + + + + joakime + Joakim Erdfelt + joakime@apache.org + + Developer + + -5 + + + + + + + org.apache.maven.archiva + archiva-common + 1.0-alpha-1 + + + commons-collections + commons-collections + 3.2 + + + org.apache.maven + maven-artifact + ${maven.version} + + + org.apache.maven + maven-plugin-api + ${maven.version} + + + org.apache.maven.reporting + maven-reporting-api + ${maven.version} + + + org.apache.maven + maven-project + ${maven.version} + + + org.apache.maven.reporting + maven-reporting-impl + ${maven.version} + + + org.apache.maven.shared + maven-dependency-tree + 1.0-alpha-2 + + + org.codehaus.plexus + plexus-utils + 1.2 + + + + junit + junit + 3.8.1 + test + + + org.apache.maven.shared + maven-plugin-testing-harness + 1.0-beta-1 + test + + + + 2.0.4 + + diff --git a/tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/CreateArchivaDependencyResolutionTestCaseMojo.java b/tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/CreateArchivaDependencyResolutionTestCaseMojo.java new file mode 100644 index 000000000..44a5a1c00 --- /dev/null +++ b/tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/CreateArchivaDependencyResolutionTestCaseMojo.java @@ -0,0 +1,133 @@ +package org.apache.maven.archiva.plugins.dev; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.plugins.dev.testgen.DependencyGraphTestCreator; +import org.apache.maven.archiva.plugins.dev.testgen.MemoryRepositoryCreator; +import org.apache.maven.archiva.plugins.dev.utils.VariableNames; +import org.apache.maven.artifact.factory.ArtifactFactory; +import org.apache.maven.artifact.metadata.ArtifactMetadataSource; +import org.apache.maven.artifact.repository.ArtifactRepository; +import org.apache.maven.artifact.resolver.ArtifactCollector; +import org.apache.maven.plugin.AbstractMojo; +import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.plugin.MojoFailureException; +import org.apache.maven.project.MavenProject; +import org.apache.maven.shared.dependency.tree.DependencyTreeBuilder; + +import java.io.File; + +/** + * CreateArchivaDependencyResolutionTestCaseMojo + * + * @author Joakim Erdfelt + * @version $Id$ + * + * @goal generate-dependency-tests + */ +public class CreateArchivaDependencyResolutionTestCaseMojo + extends AbstractMojo +{ + /** + * The project of the current build. + * + * @parameter default-value="${project}" + * @required + * @readonly + */ + private MavenProject project; + + /** + * The artifact respository to use. + * + * @parameter expression="${localRepository}" + * @required + * @readonly + */ + private ArtifactRepository localRepository; + + /** + * The destination directory to generate the test files. + * + * @parameter expression="${archivadev.outputdir}" default-value="${project.build.directory}" + * @required + */ + private File destDir; + + /** + * The artifact factory to use. + * + * @component + */ + private ArtifactFactory artifactFactory; + + /** + * @component + */ + private DependencyTreeBuilder dependencyTreeBuilder; + + /** + * @component + */ + protected ArtifactMetadataSource artifactMetadataSource; + + /** + * @component + */ + private ArtifactCollector collector; + + public void execute() + throws MojoExecutionException, MojoFailureException + { + String classPrefix = VariableNames.toClassName( project.getArtifactId() ); + + getLog().info( "Generating into " + destDir ); + + createMemoryRepository( classPrefix ); + createDependencyGraphTest( classPrefix ); + } + + private void createDependencyGraphTest( String classPrefix ) throws MojoExecutionException + { + DependencyGraphTestCreator creator = new DependencyGraphTestCreator(); + creator.setLog( getLog() ); + creator.setOutputDir( destDir ); + creator.setProject( project ); + creator.setArtifactFactory( artifactFactory ); + creator.setLocalRepository( localRepository ); + creator.setDependencyTreeBuilder( dependencyTreeBuilder ); + creator.setArtifactMetadataSource( artifactMetadataSource ); + creator.setCollector( collector ); + + creator.create( classPrefix ); + } + + private void createMemoryRepository( String classPrefix ) throws MojoExecutionException + { + MemoryRepositoryCreator creator = new MemoryRepositoryCreator(); + creator.setLog( getLog() ); + creator.setOutputDir( destDir ); + creator.setProject( project ); + creator.setArtifactFactory( artifactFactory ); + creator.setLocalRepository( localRepository ); + + creator.create( classPrefix ); + } +} diff --git a/tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/functors/ArtifactComparator.java b/tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/functors/ArtifactComparator.java new file mode 100644 index 000000000..2623b431f --- /dev/null +++ b/tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/functors/ArtifactComparator.java @@ -0,0 +1,63 @@ +package org.apache.maven.archiva.plugins.dev.functors; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.artifact.Artifact; + +import java.util.Comparator; + +/** + * ArtifactComparator + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class ArtifactComparator + implements Comparator +{ + + public int compare( Object arg0, Object arg1 ) + { + if( arg0 == null || arg1 == null ) + { + return -1; + } + + Artifact artifact1 = (Artifact) arg0; + Artifact artifact2 = (Artifact) arg1; + + int diff; + + diff = artifact1.getGroupId().compareTo( artifact2.getGroupId() ); + if( diff != 0 ) + { + return diff; + } + + diff = artifact1.getArtifactId().compareTo( artifact2.getArtifactId() ); + if( diff != 0 ) + { + return diff; + } + + return artifact1.getVersion().compareTo( artifact2.getVersion() ); + } + +} diff --git a/tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/functors/DependencyNodeToArtifactTransformer.java b/tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/functors/DependencyNodeToArtifactTransformer.java new file mode 100644 index 000000000..df91f6028 --- /dev/null +++ b/tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/functors/DependencyNodeToArtifactTransformer.java @@ -0,0 +1,44 @@ +package org.apache.maven.archiva.plugins.dev.functors; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.collections.Transformer; +import org.apache.maven.shared.dependency.tree.DependencyNode; + +/** + * DependencyNodeToArtifactTransformer + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class DependencyNodeToArtifactTransformer + implements Transformer +{ + public Object transform( Object input ) + { + if( input instanceof DependencyNode ) + { + DependencyNode node = (DependencyNode) input; + return node.getArtifact(); + } + + return input; + } +} diff --git a/tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/functors/MatchingDependencyPredicate.java b/tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/functors/MatchingDependencyPredicate.java new file mode 100644 index 000000000..e8fb3ad20 --- /dev/null +++ b/tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/functors/MatchingDependencyPredicate.java @@ -0,0 +1,66 @@ +package org.apache.maven.archiva.plugins.dev.functors; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.collections.Predicate; +import org.apache.maven.model.Dependency; +import org.codehaus.plexus.util.StringUtils; + +/** + * MatchingDependencyPredicate + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class MatchingDependencyPredicate + implements Predicate +{ + private Dependency selectedDep; + + public MatchingDependencyPredicate( Dependency selectedDep ) + { + this.selectedDep = selectedDep; + } + + public boolean evaluate( Object input ) + { + boolean satisfies = false; + + if ( input instanceof Dependency ) + { + Dependency dep = (Dependency) input; + if ( StringUtils.equals( dep.getArtifactId(), selectedDep.getArtifactId() ) + && StringUtils.equals( dep.getGroupId(), selectedDep.getGroupId() ) + && StringUtils.equals( dep.getType(), selectedDep.getType() )) + { + // So far, so good. groupId/artifactId/type match. + satisfies = true; + + // Test classifier (if defined) + if( StringUtils.isNotEmpty( selectedDep.getClassifier() ) ) + { + satisfies = StringUtils.equals( dep.getClassifier(), selectedDep.getClassifier() ); + } + } + } + + return satisfies; + } +} diff --git a/tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/testgen/AbstractCreator.java b/tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/testgen/AbstractCreator.java new file mode 100644 index 000000000..3503ebbe4 --- /dev/null +++ b/tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/testgen/AbstractCreator.java @@ -0,0 +1,349 @@ +package org.apache.maven.archiva.plugins.dev.testgen; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.archiva.common.utils.VersionUtil; +import org.apache.maven.artifact.Artifact; +import org.apache.maven.artifact.factory.ArtifactFactory; +import org.apache.maven.artifact.repository.ArtifactRepository; +import org.apache.maven.model.Dependency; +import org.apache.maven.model.Exclusion; +import org.apache.maven.model.Model; +import org.apache.maven.model.Parent; +import org.apache.maven.model.io.xpp3.MavenXpp3Reader; +import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.plugin.logging.Log; +import org.apache.maven.project.MavenProject; +import org.apache.maven.project.interpolation.ModelInterpolator; +import org.apache.maven.project.interpolation.RegexBasedModelInterpolator; +import org.codehaus.plexus.util.IOUtil; +import org.codehaus.plexus.util.StringUtils; + +import java.io.File; +import java.io.FileReader; +import java.io.PrintWriter; +import java.util.Collection; +import java.util.Collections; +import java.util.Properties; + +/** + * AbstractCreator + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public abstract class AbstractCreator +{ + protected MavenProject project; + + protected ArtifactFactory artifactFactory; + + protected ArtifactRepository localRepository; + + protected File outputDir; + + private MavenXpp3Reader modelReader = new MavenXpp3Reader(); + + private ModelInterpolator modelInterpolator; + + private Log log; + + public abstract void create( String classPrefix ) + throws MojoExecutionException; + + protected void writeLicense( PrintWriter out ) + { + out.println( "/*" ); + out.println( " * Licensed to the Apache Software Foundation (ASF) under one" ); + out.println( " * or more contributor license agreements. See the NOTICE file" ); + out.println( " * distributed with this work for additional information" ); + out.println( " * regarding copyright ownership. The ASF licenses this file" ); + out.println( " * to you under the Apache License, Version 2.0 (the" ); + out.println( " * \"License\"); you may not use this file except in compliance" ); + out.println( " * with the License. You may obtain a copy of the License at" ); + out.println( " *" ); + out.println( " * http://www.apache.org/licenses/LICENSE-2.0" ); + out.println( " *" ); + out.println( " * Unless required by applicable law or agreed to in writing," ); + out.println( " * software distributed under the License is distributed on an" ); + out.println( " * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY" ); + out.println( " * KIND, either express or implied. See the License for the" ); + out.println( " * specific language governing permissions and limitations" ); + out.println( " * under the License." ); + out.println( " */" ); + out.println( "" ); + } + + protected boolean isNotEmpty( Properties properties ) + { + return !isEmpty( properties ); + } + + private boolean isEmpty( Properties properties ) + { + if ( properties == null ) + { + return true; + } + + return properties.isEmpty(); + } + + public Log getLog() + { + return log; + } + + public void setLog( Log log ) + { + this.log = log; + } + + public MavenProject getProject() + { + return project; + } + + public void setProject( MavenProject project ) + { + this.project = project; + } + + protected Model getModel( Dependency dep ) + { + return getModel( dep.getGroupId(), dep.getArtifactId(), dep.getVersion(), dep.getType() ); + } + + protected Model getModel( Parent parent ) + { + return getModel( parent.getGroupId(), parent.getArtifactId(), parent.getVersion(), "pom" ); + } + + protected Model getModel( String groupId, String artifactId, String version, String type ) + { + // getLog().info( ".getModel(" + groupId + ", " + artifactId + ", " + version + ", " + type + ")" ); + Artifact pomArtifact = artifactFactory.createProjectArtifact( groupId, artifactId, version ); + + String path = localRepository.getLayout().pathOf( pomArtifact ); + + File pomFile = new File( localRepository.getBasedir(), path ); + + if ( pomFile.exists() ) + { + FileReader reader = null; + try + { + reader = new FileReader( pomFile ); + Model model = modelReader.read( reader ); + + // HACK: to allow ${pom.groupId} expressions to work, WITHOUT resolving/merginc parent. + // (The merging of parent pom is done elsewhere) + if ( StringUtils.isEmpty( model.getGroupId() ) ) + { + if( model.getParent() != null ) + { + model.setGroupId( model.getParent().getGroupId() ); + } + } + + // HACK: to fix bad poms in repo (see jetty:jetty:4.2.10::jar for example) + model.setVersion( version ); + + // Interpolate the properties? + if( modelInterpolator == null ) + { + modelInterpolator = new RegexBasedModelInterpolator(); + } + + model = modelInterpolator.interpolate( model, Collections.EMPTY_MAP, false ); + + return model; + } + catch ( Exception e ) + { + getLog().warn( + "Unable to read pom file " + pomFile.getAbsolutePath() + " : (" + e.getClass().getName() + + "): " + e.getMessage() ); + } + finally + { + IOUtil.close( reader ); + } + } + + // no pom file. + + Model model = new Model(); + model.setGroupId( groupId ); + model.setArtifactId( artifactId ); + model.setVersion( version ); + model.setPackaging( type ); + + return model; + } + + private String getGroupId( Model model ) + { + String groupId = model.getGroupId(); + + if ( StringUtils.isEmpty( groupId ) ) + { + if ( model.getParent() != null ) + { + groupId = model.getParent().getGroupId(); + } + } + + return groupId; + } + + private String getVersion( Model model ) + { + String version = model.getVersion(); + + if ( StringUtils.isEmpty( version ) ) + { + if ( model.getParent() != null ) + { + version = model.getParent().getVersion(); + } + } + + return VersionUtil.getBaseVersion( version ); + } + + protected boolean isNotBlank( String str ) + { + return !isBlank( str ); + } + + private boolean isBlank( String str ) + { + if ( str == null ) + { + return true; + } + + return ( str.trim().length() <= 0 ); + } + + protected boolean isNotEmpty( Collection coll ) + { + return !isEmpty( coll ); + } + + protected boolean isEmpty( Collection coll ) + { + if ( coll == null ) + { + return true; + } + + return coll.isEmpty(); + } + + protected String toKey( Parent ref ) + { + StringBuffer key = new StringBuffer(); + + key.append( ref.getGroupId() ).append( ":" ); + key.append( ref.getArtifactId() ).append( ":" ); + key.append( ref.getVersion() ); + + return key.toString(); + } + + protected String toKey( Exclusion ref ) + { + StringBuffer key = new StringBuffer(); + + key.append( ref.getGroupId() ).append( ":" ); + key.append( ref.getArtifactId() ); + + return key.toString(); + } + + protected String toKey( Model ref ) + { + StringBuffer key = new StringBuffer(); + + key.append( getGroupId( ref ) ).append( ":" ); + key.append( ref.getArtifactId() ).append( ":" ); + key.append( getVersion( ref ) ); + + return key.toString(); + } + + protected String toKey( Dependency ref ) + { + StringBuffer key = new StringBuffer(); + + key.append( ref.getGroupId() ).append( ":" ); + key.append( ref.getArtifactId() ).append( ":" ); + key.append( ref.getVersion() ).append( ":" ); + key.append( StringUtils.defaultString( ref.getClassifier() ) ).append( ":" ); + key.append( ref.getType() ); + + return key.toString(); + } + + protected String toKey( Artifact ref ) + { + StringBuffer key = new StringBuffer(); + + key.append( ref.getGroupId() ).append( ":" ); + key.append( ref.getArtifactId() ).append( ":" ); + key.append( ref.getVersion() ).append( ":" ); + key.append( StringUtils.defaultString( ref.getClassifier() ) ).append( ":" ); + key.append( ref.getType() ); + + return key.toString(); + } + + public ArtifactFactory getArtifactFactory() + { + return artifactFactory; + } + + public void setArtifactFactory( ArtifactFactory artifactFactory ) + { + this.artifactFactory = artifactFactory; + } + + public ArtifactRepository getLocalRepository() + { + return localRepository; + } + + public void setLocalRepository( ArtifactRepository localRepository ) + { + this.localRepository = localRepository; + } + + public File getOutputDir() + { + return outputDir; + } + + public void setOutputDir( File outputDir ) + { + this.outputDir = outputDir; + } +} diff --git a/tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/testgen/DependencyGraphTestCreator.java b/tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/testgen/DependencyGraphTestCreator.java new file mode 100644 index 000000000..6597389aa --- /dev/null +++ b/tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/testgen/DependencyGraphTestCreator.java @@ -0,0 +1,366 @@ +package org.apache.maven.archiva.plugins.dev.testgen; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections.Predicate; +import org.apache.commons.collections.functors.NotPredicate; +import org.apache.maven.archiva.plugins.dev.functors.DependencyNodeToArtifactTransformer; +import org.apache.maven.artifact.Artifact; +import org.apache.maven.artifact.metadata.ArtifactMetadataSource; +import org.apache.maven.artifact.resolver.ArtifactCollector; +import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.shared.dependency.tree.DependencyTree; +import org.apache.maven.shared.dependency.tree.DependencyTreeBuilder; +import org.apache.maven.shared.dependency.tree.DependencyTreeBuilderException; +import org.codehaus.plexus.util.IOUtil; +import org.codehaus.plexus.util.StringUtils; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.PrintWriter; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; + +/** + * DependencyGraphTestCreator + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class DependencyGraphTestCreator + extends AbstractCreator +{ + private class RootArtifactPredicate + implements Predicate + { + private String rootKey; + + public RootArtifactPredicate( DependencyTree tree ) + { + this.rootKey = toKey( tree.getRootNode().getArtifact() ); + } + + public boolean evaluate( Object input ) + { + boolean satisfies = false; + + if ( input instanceof Artifact ) + { + Artifact nodeArtifact = (Artifact) input; + String key = toKey( nodeArtifact ); + + if ( key.equals( rootKey ) ) + { + satisfies = true; + } + } + + return satisfies; + } + } + + private File outputFile; + + private PrintWriter out; + + private DependencyTreeBuilder dependencyTreeBuilder; + + private ArtifactMetadataSource artifactMetadataSource; + + private ArtifactCollector collector; + + public void create( String classPrefix ) + throws MojoExecutionException + { + String classname = classPrefix + "DependencyGraphTest"; + + getLog().info( "Generating " + classname + ".java ..." ); + + outputFile = new File( outputDir, classname + ".java" ); + try + { + out = new PrintWriter( outputFile ); + } + catch ( FileNotFoundException e ) + { + throw new MojoExecutionException( "Unable to open file " + outputFile.getName() + " for output: " + + e.getMessage(), e ); + } + + try + { + out.println( "package org.apache.maven.archiva.dependency.graph;" ); + out.println( "" ); + + writeLicense( out ); + + // Imports + out.println( "import org.apache.maven.archiva.dependency.DependencyGraphFactory;" ); + out.println( "import org.apache.maven.archiva.model.DependencyScope;" ); + out.println( "import org.apache.maven.archiva.model.VersionedReference;" ); + out.println( "" ); + out.println( "import java.util.ArrayList;" ); + out.println( "import java.util.List;" ); + out.println( "" ); + + String projectKey = toKey( project.getModel() ); + + writeJavadoc( classname, projectKey ); + + // The class itself. + out.println( "public class " + classname ); + out.println( " extends AbstractDependencyGraphFactoryTestCase" ); + out.println( "{" ); + + DependencyTree dependencyTree = getDependencyTree(); + + writeGraphNodesTest( classPrefix, dependencyTree ); + + // TODO: enable in future, when resolution between archiva and maven are equal. + // writeDirectCompileDepsTest( classPrefix, dependencyTree ); + // writeDirectTestDepsTest( classPrefix, dependencyTree ); + // writeTransitiveCompileDepsTest( classPrefix, dependencyTree ); + // writeTransitiveTestDepsTest( classPrefix, dependencyTree ); + + out.println( "}" ); + } + finally + { + out.flush(); + IOUtil.close( out ); + } + } + + public ArtifactMetadataSource getArtifactMetadataSource() + { + return artifactMetadataSource; + } + + public ArtifactCollector getCollector() + { + return collector; + } + + public DependencyTreeBuilder getDependencyTreeBuilder() + { + return dependencyTreeBuilder; + } + + public void setArtifactMetadataSource( ArtifactMetadataSource artifactMetadataSource ) + { + this.artifactMetadataSource = artifactMetadataSource; + } + + public void setCollector( ArtifactCollector collector ) + { + this.collector = collector; + } + + public void setDependencyTreeBuilder( DependencyTreeBuilder dependencyTreeBuilder ) + { + this.dependencyTreeBuilder = dependencyTreeBuilder; + } + + private DependencyTree getDependencyTree() + throws MojoExecutionException + { + try + { + return dependencyTreeBuilder.buildDependencyTree( project, localRepository, artifactFactory, + artifactMetadataSource, collector ); + } + catch ( DependencyTreeBuilderException e ) + { + String emsg = "Unable to build dependency tree."; + getLog().error( emsg, e ); + throw new MojoExecutionException( emsg, e ); + } + } + + private void writeDirectCompileDepsTest( String classPrefix, DependencyTree tree ) + { + out.println( " public void testResolveOfDirectCompileDeps()" ); + out.println( " throws GraphTaskException" ); + out.println( " {" ); + writeTestProlog( classPrefix ); + writeDirectDependenciesCheck( tree, "compile" ); + out.println( " }" ); + out.println( "" ); + } + + private void writeDirectDependenciesCheck( DependencyTree dependencyTree, String scope ) + { + out.println( " // Check for direct dependencies on scope " + scope ); + out.println( " expectedNodes.clear();" ); + + List directDeps = new ArrayList(); + directDeps.addAll( dependencyTree.getRootNode().getChildren() ); + CollectionUtils.transform( directDeps, new DependencyNodeToArtifactTransformer() ); + + Collections.sort( directDeps ); + + writeExpectedNodesAdd( directDeps, scope ); + + out.println( " assertDirectNodes( graph, expectedNodes, \"" + scope + "\" );" ); + } + + private void writeDirectTestDepsTest( String classPrefix, DependencyTree tree ) + { + out.println( " public void testResolveOfDirectTestDeps()" ); + out.println( " throws GraphTaskException" ); + out.println( " {" ); + writeTestProlog( classPrefix ); + writeDirectDependenciesCheck( tree, "test" ); + out.println( " }" ); + out.println( "" ); + } + + private void writeExpectedNodesAdd( List deps, String scope ) + { + Iterator it = deps.iterator(); + while ( it.hasNext() ) + { + Artifact artifact = (Artifact) it.next(); + String depKey = toKey( artifact ); + if ( StringUtils.equals( scope, artifact.getScope() ) ) + { + out.println( " expectedNodes.add( \"" + depKey + "\" );" ); + } + } + } + + private void writeJavadoc( String classname, String projectKey ) + { + out.println( "/**" ); + out.println( " * " + classname ); + out.println( " * " ); + out.println( " * DependencyGraphTest for testing " + projectKey + "" ); + out.println( " *" ); + out.println( " * Generated by archivadev:generate-dependency-tests plugin" ); + out.println( " * @version $Id$" ); + out.println( " */" ); + } + + private void writeGraphNodesTest( String classPrefix, final DependencyTree tree ) + { + out.println( " public void testResolvedDepsToNodes()" ); + out.println( " throws GraphTaskException" ); + out.println( " {" ); + writeTestProlog( classPrefix ); + + String projectKey = toKey( project.getModel() ); + out.println( " String expectedRootRef = \"" + projectKey + "\";" ); + out.println( " List expectedNodes = new ArrayList();" ); + out.println( "" ); + out.println( " // Check for all nodes, regardless of scope." ); + out.println( " expectedNodes.clear();" ); + + // Add all deps. + List deps = new ArrayList(); + Predicate notRootNode = NotPredicate.getInstance( new RootArtifactPredicate( tree ) ); + CollectionUtils.select( tree.getArtifacts(), notRootNode, deps ); + CollectionUtils.transform( deps, new DependencyNodeToArtifactTransformer() ); + Collections.sort( deps ); + + Iterator it = deps.iterator(); + while ( it.hasNext() ) + { + Artifact artifact = (Artifact) it.next(); + String depKey = toKey( artifact ); + out.println( " expectedNodes.add( \"" + depKey + "\" );" ); + } + + out.println( "" ); + out.println( " assertGraph( graph, expectedRootRef, expectedNodes );" ); + + out.println( " }" ); + out.println( "" ); + + } + + private void writeTestProlog( String classPrefix ) + { + out.println( " MemoryRepositoryDependencyGraphBuilder graphBuilder = " ); + out.println( " new MemoryRepositoryDependencyGraphBuilder();" ); + out.println( " MemoryRepository repository = new " + classPrefix + "MemoryRepository();" ); + out.println( " graphBuilder.setMemoryRepository( repository );" ); + out.println( "" ); + out.println( " // Create the factory, and add the test resolver." ); + out.println( " DependencyGraphFactory factory = new DependencyGraphFactory();" ); + out.println( " factory.setGraphBuilder( graphBuilder );" ); + out.println( " factory.setDesiredScope( DependencyScope.TEST );" ); + out.println( "" ); + out.println( " // Get the model to resolve from" ); + out.println( " VersionedReference rootRef = toVersionedReference( \"" + project.getGroupId() + ":" + + project.getArtifactId() + ":" + project.getVersion() + "\"); " ); + out.println( "" ); + out.println( " // Perform the resolution." ); + out.println( " DependencyGraph graph = factory.getGraph( rootRef );" ); + out.println( "" ); + out.println( " // Test the results." ); + out.println( " assertNotNull( \"Graph shouldn't be null.\", graph );" ); + out.println( "" ); + } + + private void writeTransientDependenciesCheck( DependencyTree dependencyTree, String scope ) + { + out.println( " // Check for transient dependencies on scope " + scope ); + out.println( " expectedNodes.clear();" ); + + // Add all deps. + List deps = new ArrayList( dependencyTree.getArtifacts() ); + // Remove the direct deps. + List directDeps = new ArrayList(); + directDeps.addAll( dependencyTree.getRootNode().getChildren() ); + CollectionUtils.transform( directDeps, new DependencyNodeToArtifactTransformer() ); + deps.removeAll( directDeps ); + + Collections.sort( deps ); + + writeExpectedNodesAdd( deps, scope ); + + out.println( " assertTransientNodes( graph, expectedNodes, \"" + scope + "\" );" ); + } + + private void writeTransitiveCompileDepsTest( String classPrefix, DependencyTree tree ) + { + out.println( " public void testResolveOfTransitiveCompileDeps()" ); + out.println( " throws GraphTaskException" ); + out.println( " {" ); + writeTestProlog( classPrefix ); + writeTransientDependenciesCheck( tree, "compile" ); + out.println( " }" ); + out.println( "" ); + } + + private void writeTransitiveTestDepsTest( String classPrefix, DependencyTree tree ) + { + out.println( " public void testResolveOfTransitiveTestDeps()" ); + out.println( " throws GraphTaskException" ); + out.println( " {" ); + writeTestProlog( classPrefix ); + writeTransientDependenciesCheck( tree, "test" ); + out.println( " }" ); + out.println( "" ); + } +} diff --git a/tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/testgen/DependencyUtils.java b/tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/testgen/DependencyUtils.java new file mode 100644 index 000000000..4d3b86859 --- /dev/null +++ b/tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/testgen/DependencyUtils.java @@ -0,0 +1,83 @@ +package org.apache.maven.archiva.plugins.dev.testgen; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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.factory.ArtifactFactory; +import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException; +import org.apache.maven.artifact.versioning.VersionRange; +import org.apache.maven.model.Dependency; +import org.apache.maven.model.DependencyManagement; +import org.apache.maven.project.MavenProject; +import org.apache.maven.project.ProjectBuildingException; + +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + +/** + * DependencyUtils - common utilities for dependencies. + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class DependencyUtils +{ + public static Map getManagedVersionMap( MavenProject project, ArtifactFactory factory ) throws ProjectBuildingException + { + DependencyManagement dependencyManagement = project.getDependencyManagement(); + Map managedVersionMap; + + if ( dependencyManagement != null && dependencyManagement.getDependencies() != null ) + { + managedVersionMap = new HashMap(); + + for ( Iterator iterator = dependencyManagement.getDependencies().iterator(); iterator.hasNext(); ) + { + Dependency dependency = (Dependency) iterator.next(); + + try + { + VersionRange versionRange = VersionRange.createFromVersionSpec( dependency.getVersion() ); + + Artifact artifact = + factory.createDependencyArtifact( dependency.getGroupId(), dependency.getArtifactId(), + versionRange, dependency.getType(), + dependency.getClassifier(), dependency.getScope() ); + + managedVersionMap.put( dependency.getManagementKey(), artifact ); + } + catch ( InvalidVersionSpecificationException exception ) + { + throw new ProjectBuildingException( project.getId(), "Unable to parse version '" + + dependency.getVersion() + "' for dependency '" + dependency.getManagementKey() + + "': " + exception.getMessage(), exception ); + } + } + } + else + { + managedVersionMap = Collections.EMPTY_MAP; + } + + return managedVersionMap; + } +} diff --git a/tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/testgen/MemoryRepositoryCreator.java b/tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/testgen/MemoryRepositoryCreator.java new file mode 100644 index 000000000..395f65b20 --- /dev/null +++ b/tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/testgen/MemoryRepositoryCreator.java @@ -0,0 +1,439 @@ +package org.apache.maven.archiva.plugins.dev.testgen; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections.Predicate; +import org.apache.commons.collections.iterators.EnumerationIterator; +import org.apache.maven.archiva.plugins.dev.functors.MatchingDependencyPredicate; +import org.apache.maven.artifact.InvalidArtifactRTException; +import org.apache.maven.model.Dependency; +import org.apache.maven.model.DistributionManagement; +import org.apache.maven.model.Exclusion; +import org.apache.maven.model.Model; +import org.apache.maven.model.Relocation; +import org.apache.maven.plugin.MojoExecutionException; +import org.codehaus.plexus.util.IOUtil; +import org.codehaus.plexus.util.StringUtils; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.PrintWriter; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; + +/** + * MemoryRepositoryCreator + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class MemoryRepositoryCreator + extends AbstractCreator +{ + private File outputFile; + + private PrintWriter out; + + private int modelsProcessed = 0; + + public void create( String classPrefix ) + throws MojoExecutionException + { + getLog().info( "Generating " + classPrefix + "MemoryRepository.java ..." ); + getLog().info( "Please be patient, this can take a few minutes ..." ); + + modelsProcessed = 0; + + outputFile = new File( outputDir, classPrefix + "MemoryRepository.java" ); + try + { + out = new PrintWriter( outputFile ); + } + catch ( FileNotFoundException e ) + { + throw new MojoExecutionException( "Unable to open file " + outputFile.getName() + " for output: " + + e.getMessage(), e ); + } + + try + { + out.println( "package org.apache.maven.archiva.dependency.graph;" ); + out.println( "" ); + + writeLicense( out ); + + // Imports + out.println( "import org.apache.maven.archiva.model.ArchivaProjectModel;" ); + out.println( "import org.apache.maven.archiva.model.Dependency;" ); + out.println( "import org.apache.maven.archiva.model.VersionedReference;" ); + out.println( "" ); + + String projectKey = toKey( project.getModel() ); + + writeJavadoc( classPrefix + "MemoryRepository", projectKey ); + + // The class itself. + out.println( "public class " + classPrefix + "MemoryRepository" ); + out.println( " extends AbstractMemoryRepository" ); + out.println( "{" ); + + writeTest(); + + out.println( "}" ); + } + finally + { + out.flush(); + IOUtil.close( out ); + } + + } + + private void writeJavadoc( String classname, String projectKey ) + { + out.println( "/**" ); + out.println( " * " + classname ); + out.println( " * " ); + out.println( " * MemoryRepository for testing " + projectKey + "" ); + out.println( " *" ); + out.println( " * Generated by archivadev:generate-dependency-tests plugin" ); + out.println( " * @version $Id$" ); + out.println( " */" ); + } + + private void writeTest() + { + out.println( " public void initialize()" ); + out.println( " {" ); + out.println( " ArchivaProjectModel model;" ); + out.println( " Dependency dep;" ); + out.println( "" ); + + Set seenModels = new HashSet(); + + writeModel( seenModels, project.getModel() ); + + getLog().info( + "Processing done: Processed " + modelsProcessed + " models (" + seenModels.size() + + " were unique)" ); + + out.println( " }" ); + } + + private void writeModel( Set seenModels, Model model ) + { + String projectKey = toKey( model ); + + modelsProcessed++; + + if ( ( modelsProcessed % 100 ) == 0 ) + { + getLog() + .info( "Processed " + modelsProcessed + " models (" + seenModels.size() + " unique) ..." ); + } + + Relocation relocation = null; + + if ( seenModels.contains( projectKey ) ) + { + return; + } + + seenModels.add( projectKey ); + + out.println( " model = toModel( \"" + projectKey + "\" );" ); + + if ( model.getParent() != null ) + { + String parentKey = toKey( model.getParent() ); + out.println( " model.setParentProject( toParent( \"" + parentKey + "\" ) );" ); + } + + if ( isNotEmpty( model.getDependencies() ) ) + { + Iterator it = model.getDependencies().iterator(); + while ( it.hasNext() ) + { + Dependency dep = applyDepMan( (Dependency) it.next(), model ); + + writeAddDependency( "addDependency", dep ); + } + } + + if ( ( model.getDependencyManagement() != null ) + && isNotEmpty( model.getDependencyManagement().getDependencies() ) ) + { + Iterator it = model.getDependencyManagement().getDependencies().iterator(); + while ( it.hasNext() ) + { + Dependency dep = (Dependency) it.next(); + + writeAddDependency( "addDependencyManagement", dep ); + } + } + + if ( isNotEmpty( model.getProperties() ) ) + { + Iterator it = new EnumerationIterator( model.getProperties().keys() ); + while ( it.hasNext() ) + { + String key = (String) it.next(); + String value = model.getProperties().getProperty( key ); + out.println( " model.addProperty( \"" + key + "\", \"" + value + "\" );" ); + } + } + + if ( model.getDistributionManagement() != null ) + { + DistributionManagement distMgmt = model.getDistributionManagement(); + + if ( distMgmt.getRelocation() != null ) + { + relocation = distMgmt.getRelocation(); + + out.println( " model.setRelocation( new VersionedReference() );" ); + if ( StringUtils.isNotEmpty( relocation.getGroupId() ) ) + { + out.println( " model.getRelocation().setGroupId( \"" + relocation.getGroupId() + "\" );" ); + } + if ( StringUtils.isNotEmpty( relocation.getArtifactId() ) ) + { + out + .println( " model.getRelocation().setArtifactId( \"" + relocation.getArtifactId() + + "\" );" ); + } + if ( StringUtils.isNotEmpty( relocation.getVersion() ) ) + { + out.println( " model.getRelocation().setVersion( \"" + relocation.getVersion() + "\" );" ); + } + } + } + + out.println( " addModel( model );" ); + out.println( "" ); + + if ( model.getParent() != null ) + { + Model parentModel = getModel( model.getParent() ); + writeModel( seenModels, parentModel ); + } + + if ( relocation != null ) + { + Model relocatedModel = getModel( model, relocation ); + writeModel( seenModels, relocatedModel ); + } + + writeModelDependencies( seenModels, projectKey, model ); + writeModelDependencyManagement( seenModels, projectKey, model ); + } + + private Model getModel( Model model, Relocation relocation ) + { + String groupId = relocation.getGroupId(); + String artifactId = relocation.getArtifactId(); + String version = relocation.getVersion(); + + // Set empty groupId. + if ( StringUtils.isEmpty( groupId ) ) + { + groupId = model.getGroupId(); + + if ( StringUtils.isEmpty( groupId ) ) + { + if ( model.getParent() == null ) + { + throw new IllegalStateException( "BAD POM: GroupId for relocation in " + toKey( model ) + + " cannot be determined, as there is no Parent Pom reference." ); + } + + groupId = model.getParent().getGroupId(); + } + } + + // Set empty artifactId. + if ( StringUtils.isEmpty( artifactId ) ) + { + artifactId = model.getArtifactId(); + + if ( StringUtils.isEmpty( artifactId ) ) + { + if ( model.getParent() == null ) + { + throw new IllegalStateException( "BAD POM: ArtifactId for relocation in " + toKey( model ) + + " cannot be determined, as there is no Parent Pom reference." ); + } + + artifactId = model.getParent().getArtifactId(); + } + } + + // Set empty version. + if ( StringUtils.isEmpty( version ) ) + { + version = model.getVersion(); + + if ( StringUtils.isEmpty( version ) ) + { + if ( model.getParent() == null ) + { + throw new IllegalStateException( "BAD POM: version for relocation in " + toKey( model ) + + " cannot be determined, as there is no Parent Pom reference." ); + } + + version = model.getParent().getVersion(); + } + } + + return getModel( groupId, artifactId, version, "pom" ); + } + + private void writeAddDependency( String addMethod, Dependency dep ) + { + boolean useShortForm = true; + String depKey = toKey( dep ); + + useShortForm = isEmpty( dep.getExclusions() ) && !dep.isOptional(); + + String scopePart = ""; + + if ( isNotBlank( dep.getScope() ) ) + { + scopePart = ", \"" + dep.getScope() + "\""; + } + + if ( useShortForm ) + { + out.println( " model." + addMethod + "( toDependency( \"" + depKey + "\"" + scopePart + " ) );" ); + return; + } + + out.println( " dep = toDependency( \"" + depKey + "\"" + scopePart + " );" ); + + if ( isNotEmpty( dep.getExclusions() ) ) + { + Iterator it = dep.getExclusions().iterator(); + while ( it.hasNext() ) + { + Exclusion exclusion = (Exclusion) it.next(); + String exkey = toKey( exclusion ); + out.println( " addExclusion( dep, \"" + exkey + "\" );" ); + } + } + + if ( dep.isOptional() ) + { + out.println( " dep.setOptional( true );" ); + } + + out.println( " model." + addMethod + "( dep );" ); + } + + private void writeModelDependencies( Set seenModels, String projectKey, Model model ) + { + if ( model.getDependencies() == null ) + { + return; + } + + Iterator it = model.getDependencies().iterator(); + + while ( it.hasNext() ) + { + Dependency dep = applyDepMan( (Dependency) it.next(), model ); + + Model rawModel = getModel( dep ); + + try + { + writeModel( seenModels, rawModel ); + } + catch ( InvalidArtifactRTException e ) + { + getLog().error( + "Encountered invalid dependency/artifact during [" + projectKey + "] : " + + e.getMessage(), e ); + throw e; + } + } + } + + private void writeModelDependencyManagement( Set seenModels, String projectKey, Model model ) + { + if ( model.getDependencyManagement() == null ) + { + return; + } + + Iterator it = model.getDependencyManagement().getDependencies().iterator(); + + while ( it.hasNext() ) + { + Dependency dep = (Dependency) it.next(); + + Model rawModel = getModel( dep ); + + try + { + writeModel( seenModels, rawModel ); + } + catch ( InvalidArtifactRTException e ) + { + getLog().error( + "Encountered invalid dependency/artifact during [" + projectKey + "] : " + + e.getMessage(), e ); + throw e; + } + } + } + + private Dependency applyDepMan( Dependency dependency, Model model ) + { + if ( model.getDependencyManagement() != null ) + { + if ( model.getDependencyManagement().getDependencies() != null ) + { + // Attempt to find matching dep. + Predicate matchingDep = new MatchingDependencyPredicate( dependency ); + Dependency depman = (Dependency) CollectionUtils.find( model.getDependencyManagement() + .getDependencies(), matchingDep ); + + if ( depman != null ) + { + dependency.setVersion( depman.getVersion() ); + dependency.setScope( StringUtils.defaultString( depman.getScope(), dependency.getScope() ) ); + + // Found it! + return dependency; + } + } + } + + if ( model.getParent() != null ) + { + Model parentModel = getModel( model.getParent() ); + return applyDepMan( dependency, parentModel ); + } + + return dependency; + } +} diff --git a/tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/utils/VariableNames.java b/tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/utils/VariableNames.java new file mode 100644 index 000000000..70440d12a --- /dev/null +++ b/tools/maven-archivadev-plugin/src/main/java/org/apache/maven/archiva/plugins/dev/utils/VariableNames.java @@ -0,0 +1,50 @@ +package org.apache.maven.archiva.plugins.dev.utils; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.codehaus.plexus.util.StringUtils; + +/** + * VariableNames + * + * @author Joakim Erdfelt + * @version $Id$ + */ +public class VariableNames +{ + public static String toClassName( String raw ) + { + return StringUtils.capitalise( toVariableName( raw ) ); + } + + public static String toVariableName( String raw ) + { + StringBuffer sb = new StringBuffer(); + + String parts[] = StringUtils.split( raw, "-_:." ); + for ( int i = 0; i < parts.length; i++ ) + { + String part = parts[i]; + sb.append( StringUtils.capitalise( part ) ); + } + + return StringUtils.uncapitalise( sb.toString() ); + } +} diff --git a/tools/pom.xml b/tools/pom.xml new file mode 100644 index 000000000..3896ba82b --- /dev/null +++ b/tools/pom.xml @@ -0,0 +1,37 @@ + + + + + 4.0.0 + + org.apache.maven.archiva + archiva-parent + 1.0-alpha-1-SNAPSHOT + ../pom.xml + + + org.apache.maven.archiva.tools + tools-parent + 1.0-SNAPSHOT + Archiva Tools :: Parent + pom + + + maven-archivadev-plugin + + -- 2.39.5