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