You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by jo...@apache.org on 2007/06/14 17:25:48 UTC
svn commit: r547277 [12/16] - in /maven/archiva/trunk: archiva-base/
archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/
archiva-base/archiva-dependency-graph/ archiva-base/archiva-depend...
Propchange: maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ContinuumStoreMemoryRepository.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ContinuumStoreMemoryRepository.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/ContinuumStoreMemoryRepository.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/DepManDeepVersionDependencyGraphTest.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/DepManDeepVersionDependencyGraphTest.java?view=auto&rev=547277
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/DepManDeepVersionDependencyGraphTest.java (added)
+++ maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/DepManDeepVersionDependencyGraphTest.java Thu Jun 14 08:25:42 2007
@@ -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 <code>net.example.depman.deepversion:A:1.0</code>
+ *
+ * @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 );
+ }
+
+}
Propchange: maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/DepManDeepVersionDependencyGraphTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/DepManDeepVersionDependencyGraphTest.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/DepManDeepVersionDependencyGraphTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/DepManDeepVersionMemoryRepository.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/DepManDeepVersionMemoryRepository.java?view=auto&rev=547277
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/DepManDeepVersionMemoryRepository.java (added)
+++ maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/DepManDeepVersionMemoryRepository.java Thu Jun 14 08:25:42 2007
@@ -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 <code>net.example.depman.deepversion:A:1.0</code>
+ *
+ * @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 );
+
+ }
+}
Propchange: maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/DepManDeepVersionMemoryRepository.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/DepManDeepVersionMemoryRepository.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/DepManDeepVersionMemoryRepository.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/GraphvizDotTool.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/GraphvizDotTool.java?view=auto&rev=547277
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/GraphvizDotTool.java (added)
+++ maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/GraphvizDotTool.java Thu Jun 14 08:25:42 2007
@@ -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 <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @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( " ];" );
+ }
+
+}
Propchange: maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/GraphvizDotTool.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/GraphvizDotTool.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/GraphvizDotTool.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/Keys.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/Keys.java?view=auto&rev=547277
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/Keys.java (added)
+++ maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/Keys.java Thu Jun 14 08:25:42 2007
@@ -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 <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @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();
+ }
+}
Propchange: maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/Keys.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/Keys.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/Keys.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MavenProjectInfoReportsPluginDependencyGraphTest.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MavenProjectInfoReportsPluginDependencyGraphTest.java?view=auto&rev=547277
==============================================================================
--- maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MavenProjectInfoReportsPluginDependencyGraphTest.java (added)
+++ maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MavenProjectInfoReportsPluginDependencyGraphTest.java Thu Jun 14 08:25:42 2007
@@ -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 <code>org.apache.maven.plugins:maven-project-info-reports-plugin:2.1-SNAPSHOT</code>
+ *
+ * Generated by <code>archivadev:generate-dependency-tests</code> 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 );
+ }
+
+}
Propchange: maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MavenProjectInfoReportsPluginDependencyGraphTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MavenProjectInfoReportsPluginDependencyGraphTest.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: maven/archiva/trunk/archiva-base/archiva-dependency-graph/src/test/java/org/apache/maven/archiva/dependency/graph/MavenProjectInfoReportsPluginDependencyGraphTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain