Author: xavier
Date: Fri Mar  2 02:30:41 2007
New Revision: 513694

URL: http://svn.apache.org/viewvc?view=rev&rev=513694
Log:
IMPROVE: New "modules in use" section in console report at the end of resolve 
(IVY-373) (thanks to John Wiliams)

Modified:
    incubator/ivy/core/trunk/CHANGES.txt
    
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/module/id/ModuleId.java
    incubator/ivy/core/trunk/src/java/org/apache/ivy/core/resolve/IvyNode.java
    
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/settings/IvySettings.java
    
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/settings/ivy.properties
    
incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/report/LogReportOutputter.java

Modified: incubator/ivy/core/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/CHANGES.txt?view=diff&rev=513694&r1=513693&r2=513694
==============================================================================
--- incubator/ivy/core/trunk/CHANGES.txt (original)
+++ incubator/ivy/core/trunk/CHANGES.txt Fri Mar  2 02:30:41 2007
@@ -12,6 +12,7 @@
 - IMPROVE: Ability to have multiple roots in the <ivy:buildfilelist> task 
(IVY-340) (thanks to Matt Inger)
 - IMPROVE: Refactoring / documentation / test of matcher package (IVY-375) 
(thanks to Stephane Baillez)
 - IMPROVE: Add a unit test to verify that latest.integration accepts released 
modules (IVY-394) (thanks to Gilles Scokart)
+- IMPROVE: New "modules in use" section in console report at the end of 
resolve (IVY-373) (thanks to John Wiliams)
 
 - FIX: latest-time conflict manager not working properly (IVY-407)
 - FIX: LatestRevisionStrategy do not consider all dynamic revisions properly 
(IVY-383) (thanks to John Williams for the unit test)

Modified: 
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/module/id/ModuleId.java
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/core/module/id/ModuleId.java?view=diff&rev=513694&r1=513693&r2=513694
==============================================================================
--- 
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/module/id/ModuleId.java 
(original)
+++ 
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/module/id/ModuleId.java 
Fri Mar  2 02:30:41 2007
@@ -22,7 +22,7 @@
  * @author x.hanin
  *
  */
-public class ModuleId {
+public class ModuleId implements Comparable {
     static final String ENCODE_SEPARATOR = ":[EMAIL PROTECTED]:";
     private String _organisation;
     private String _name;
@@ -62,6 +62,15 @@
     }
     public String toString() {
         return "[ "+_organisation+" | "+_name+" ]";
+    }
+
+    public int compareTo(Object obj) {
+        ModuleId that = (ModuleId)obj;
+        int result = _organisation.compareTo(that._organisation);
+        if (result == 0) {
+            result = _name.compareTo(that._name);
+        }
+        return result;
     }
 
     public String encodeToString() {

Modified: 
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/resolve/IvyNode.java
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/core/resolve/IvyNode.java?view=diff&rev=513694&r1=513693&r2=513694
==============================================================================
--- incubator/ivy/core/trunk/src/java/org/apache/ivy/core/resolve/IvyNode.java 
(original)
+++ incubator/ivy/core/trunk/src/java/org/apache/ivy/core/resolve/IvyNode.java 
Fri Mar  2 02:30:41 2007
@@ -56,7 +56,7 @@
 import org.apache.ivy.util.filter.FilterHelper;
 
 
-public class IvyNode {
+public class IvyNode implements Comparable {
     private static final Pattern FALLBACK_CONF_PATTERN = 
Pattern.compile("(.+)\\((.*)\\)");
 
     private static final class NodeConf {
@@ -1081,6 +1081,11 @@
         }
         IvyNode node = (IvyNode)obj;
         return node.getId().equals(getId());
+    }
+
+    public int compareTo(Object obj) {
+        IvyNode that = (IvyNode)obj;
+        return this.getModuleId().compareTo(that.getModuleId());
     }
     
     public int hashCode() {

Modified: 
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/settings/IvySettings.java
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/core/settings/IvySettings.java?view=diff&rev=513694&r1=513693&r2=513694
==============================================================================
--- 
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/settings/IvySettings.java 
(original)
+++ 
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/settings/IvySettings.java 
Fri Mar  2 02:30:41 2007
@@ -939,6 +939,11 @@
         }
         _variables = variables;
     }
+    public boolean logModulesInUse() {
+        String var = getVariable("ivy.log.modules.in.use");
+        return var == null || Boolean.valueOf(var).booleanValue();
+    }
+
     public boolean logModuleWhenFound() {
         String var = getVariable("ivy.log.module.when.found");
         return var == null || Boolean.valueOf(var).booleanValue();

Modified: 
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/settings/ivy.properties
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/core/settings/ivy.properties?view=diff&rev=513694&r1=513693&r2=513694
==============================================================================
--- 
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/settings/ivy.properties 
(original)
+++ 
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/settings/ivy.properties 
Fri Mar  2 02:30:41 2007
@@ -20,3 +20,5 @@
 ivy.buildlist.ivyfilepath = ivy.xml
 
 ivy.checksums=sha1,md5
+
+ivy.log.modules.in.use=false

Modified: 
incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/report/LogReportOutputter.java
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/report/LogReportOutputter.java?view=diff&rev=513694&r1=513693&r2=513694
==============================================================================
--- 
incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/report/LogReportOutputter.java
 (original)
+++ 
incubator/ivy/core/trunk/src/java/org/apache/ivy/plugins/report/LogReportOutputter.java
 Fri Mar  2 02:30:41 2007
@@ -18,14 +18,19 @@
 package org.apache.ivy.plugins.report;
 
 import java.io.File;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 
+import org.apache.ivy.core.IvyContext;
 import org.apache.ivy.core.report.ArtifactDownloadReport;
 import org.apache.ivy.core.report.ConfigurationResolveReport;
 import org.apache.ivy.core.report.ResolveReport;
 import org.apache.ivy.core.resolve.IvyNode;
 import org.apache.ivy.core.resolve.IvyNodeEviction.EvictionData;
+import org.apache.ivy.core.settings.IvySettings;
 import org.apache.ivy.util.Message;
 
 
@@ -40,7 +45,32 @@
    }
 
     public void output(ResolveReport report, File destDir) {
+       IvySettings settings = IvyContext.getContext().getSettings();
+       if (settings.logModulesInUse()) {
+               Message.info("\t:: modules in use:");
+               List dependencies = new ArrayList(report.getDependencies());
+               Collections.sort(dependencies);
+               if (dependencies.size() > 0) {
+                       String[] confs = report.getConfigurations();
+                       for (int i = 0; i < dependencies.size(); i++) {
+                               IvyNode node = (IvyNode)dependencies.get(i);
+                               if (node.isCompletelyEvicted()) {
+                                       continue;
+                               }
+                               List nodeConfs = new ArrayList(confs.length);
+                               for (int j = 0; j < confs.length; j++) {
+                                       String conf = confs[j];
+                                       if 
(report.getConfigurationReport(conf).getModuleRevisionIds().contains(node.getResolvedId()))
 {
+                                               nodeConfs.add(conf);
+                                       }
+                               }
+                               Message.info("\t"+node+" from 
"+node.getModuleRevision().getResolver().getName()+" in "+nodeConfs);
+                       }
+               }
+       }
+
         IvyNode[] evicted = report.getEvictedNodes();
+
         if (evicted.length > 0) {
             Message.info("\t:: evicted modules:");
             for (int i = 0; i < evicted.length; i++) {


Reply via email to