Author: dantran
Date: Fri Jan  1 10:14:27 2010
New Revision: 894988

URL: http://svn.apache.org/viewvc?rev=894988&view=rev
Log:
[MDEP-161] Honor outputFile configuration in depenendy:resolve-plugins goal

Modified:
    
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/resolvers/ResolvePluginsMojo.java

Modified: 
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/resolvers/ResolvePluginsMojo.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/resolvers/ResolvePluginsMojo.java?rev=894988&r1=894987&r2=894988&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/resolvers/ResolvePluginsMojo.java
 (original)
+++ 
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugin/dependency/resolvers/ResolvePluginsMojo.java
 Fri Jan  1 10:14:27 2010
@@ -1,24 +1,23 @@
 package org.apache.maven.plugin.dependency.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
- *
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license
+ * agreements. See the NOTICE file distributed with this work for additional 
information regarding
+ * copyright ownership. The ASF licenses this file to you under the Apache 
License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the 
License. You may obtain a
+ * copy of the License at
+ * 
  * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.    
+ * 
+ * Unless required by applicable law or agreed to in writing, software 
distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 
KIND, either express
+ * or implied. See the License for the specific language governing permissions 
and limitations under
+ * the License.
  */
 
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.Writer;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
@@ -33,6 +32,7 @@
 import org.apache.maven.project.ProjectBuildingException;
 import org.apache.maven.project.artifact.InvalidDependencyVersionException;
 import org.apache.maven.shared.artifact.filter.collection.ArtifactsFilter;
+import org.codehaus.plexus.util.IOUtil;
 
 /**
  * Goal that resolves all project plugins and reports and their dependencies.
@@ -74,32 +74,62 @@
     public void execute()
         throws MojoExecutionException
     {
+        Writer outputWriter = null;
+
         try
         {
             Set plugins = resolvePluginArtifacts();
+
+            if ( this.outputFile != null )
+            {
+                outputFile.getParentFile().mkdirs();
+
+                outputWriter = new FileWriter( outputFile );
+            }
+
             for ( Iterator i = plugins.iterator(); i.hasNext(); )
             {
                 Artifact plugin = (Artifact) i.next();
+
+                String logStr = "Plugin Resolved: " + 
DependencyUtil.getFormattedFileName( plugin, false );
                 if ( !silent )
                 {
-                    this.getLog().info( "Plugin Resolved: " + 
DependencyUtil.getFormattedFileName( plugin, false ) );
+                    this.getLog().info( logStr );
+                }
+
+                if ( outputWriter != null )
+                {
+                    outputWriter.write( logStr );
+                    outputWriter.write( "\n" );
                 }
+
                 if ( !excludeTransitive )
                 {
                     Set transitiveDependencies = 
this.resolveArtifactDependencies( plugin );
-                    if ( !silent )
+
+                    for ( Iterator transIter = 
transitiveDependencies.iterator(); transIter.hasNext(); )
                     {
-                        for ( Iterator transIter = 
transitiveDependencies.iterator(); transIter.hasNext(); )
+                        logStr = "    Plugin Dependency Resolved: "
+                            + DependencyUtil.getFormattedFileName( (Artifact) 
transIter.next(), false );
+
+                        if ( !silent )
+                        {
+                            this.getLog().info( logStr );
+                        }
+                        
+                        if ( outputWriter != null )
                         {
-                            this.getLog().info(
-                                                "    Plugin Dependency 
Resolved: "
-                                                    + 
DependencyUtil.getFormattedFileName( (Artifact) transIter.next(),
-                                                                               
            false ) );
+                            outputWriter.write( logStr );
+                            outputWriter.write( "\n" );
                         }
                     }
                 }
             }
         }
+        catch ( IOException e )
+        {
+            throw new MojoExecutionException( "Nested:", e );
+        }
         catch ( ArtifactResolutionException e )
         {
             throw new MojoExecutionException( "Nested:", e );
@@ -116,6 +146,10 @@
         {
             throw new MojoExecutionException( "Nested:", e );
         }
+        finally
+        {
+            IOUtil.close( outputWriter );
+        }
 
     }
 


Reply via email to