Author: carlos
Date: Sun Jan 20 20:54:43 2008
New Revision: 613758

URL: http://svn.apache.org/viewvc?rev=613758&view=rev
Log:
Set timeout and improve logging

Modified:
    
maven/archiva/tools/trunk/maven-meeper/src/main/java/org/apache/maven/archiva/meeper/SyncedRepository.java
    
maven/archiva/tools/trunk/maven-meeper/src/main/java/org/apache/maven/archiva/meeper/Synchronizer.java

Modified: 
maven/archiva/tools/trunk/maven-meeper/src/main/java/org/apache/maven/archiva/meeper/SyncedRepository.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/tools/trunk/maven-meeper/src/main/java/org/apache/maven/archiva/meeper/SyncedRepository.java?rev=613758&r1=613757&r2=613758&view=diff
==============================================================================
--- 
maven/archiva/tools/trunk/maven-meeper/src/main/java/org/apache/maven/archiva/meeper/SyncedRepository.java
 (original)
+++ 
maven/archiva/tools/trunk/maven-meeper/src/main/java/org/apache/maven/archiva/meeper/SyncedRepository.java
 Sun Jan 20 20:54:43 2008
@@ -41,6 +41,8 @@
 
     private String sshOptions;
 
+    private String out, err;
+
     public void setGroupId(String groupId) {
         this.groupId = groupId;
     }
@@ -91,6 +93,22 @@
 
     public String toString() {
         return ReflectionToStringBuilder.toString(this);
+    }
+
+    public String getOut() {
+        return out;
+    }
+
+    public void setOut(String out) {
+        this.out = out;
+    }
+
+    public String getErr() {
+        return err;
+    }
+
+    public void setErr(String err) {
+        this.err = err;
     }
 
 }

Modified: 
maven/archiva/tools/trunk/maven-meeper/src/main/java/org/apache/maven/archiva/meeper/Synchronizer.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/tools/trunk/maven-meeper/src/main/java/org/apache/maven/archiva/meeper/Synchronizer.java?rev=613758&r1=613757&r2=613758&view=diff
==============================================================================
--- 
maven/archiva/tools/trunk/maven-meeper/src/main/java/org/apache/maven/archiva/meeper/Synchronizer.java
 (original)
+++ 
maven/archiva/tools/trunk/maven-meeper/src/main/java/org/apache/maven/archiva/meeper/Synchronizer.java
 Sun Jan 20 20:54:43 2008
@@ -4,6 +4,7 @@
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 
@@ -22,8 +23,13 @@
 
     private static final String DRY_RUN = "-n";
 
+    /** timeout in seconds for each repo */
+    private static final int TIMEOUT = 5 * 60;
+
     private SynchronizerOptions options;
 
+    private List failedRepositories = new ArrayList();
+
     public Synchronizer(SynchronizerOptions options) {
         this.options = options;
     }
@@ -37,6 +43,7 @@
             } catch (RuntimeException e) {
                 System.out.println("Error synchronizing repository " + 
repo.getGroupId() + ". "
                         + e.getMessage());
+                failedRepositories.add(repo);
             } catch (InterruptedException e) {
                 System.out.println("Repository sync for " + repo.getGroupId() 
+ " was interrupted");
             }
@@ -64,8 +71,9 @@
         cl.createArg().setValue("--exclude-from=" + 
options.getExclusionsFile());
         addCommonArguments(cl, repo);
 
-        System.out.println("=== Synchronizing metadata " + repo);
-        return executeCommandLine(cl);
+        System.out.println("=== Synchronizing metadata " + repo.getGroupId() + 
" "
+                + repo.getLocation());
+        return executeCommandLine(cl, repo);
     }
 
     private int syncArtifacts(SyncedRepository repo) {
@@ -76,8 +84,9 @@
         cl.createArg().setValue("--ignore-existing");
         addCommonArguments(cl, repo);
 
-        System.out.println("=== Synchronizing artifacts " + repo);
-        return executeCommandLine(cl);
+        System.out.println("=== Synchronizing metadata " + repo.getGroupId() + 
" "
+                + repo.getLocation());
+        return executeCommandLine(cl, repo);
     }
 
     private void addCommonArguments(Commandline cl, SyncedRepository repo) {
@@ -96,11 +105,11 @@
         cl.createArg().setValue(options.getBasedir() + "/" + groupDir + "/");
     }
 
-    private int executeCommandLine(Commandline cl) {
+    private int executeCommandLine(Commandline cl, SyncedRepository repo) {
         CommandLineUtils.StringStreamConsumer out = new 
CommandLineUtils.StringStreamConsumer();
         CommandLineUtils.StringStreamConsumer err = new 
CommandLineUtils.StringStreamConsumer();
 
-        System.out.println("About to execute " + cl);
+        // System.out.println("About to execute " + cl);
 
         int exitCode;
         try {
@@ -109,12 +118,11 @@
             throw new RuntimeException(e);
         }
 
-        System.out.println(out.getOutput());
+        repo.setOut(out.getOutput());
 
         String serr = err.getOutput();
         if ((serr != null) && serr.length() > 0) {
-            System.out.println("!!! Errors:");
-            System.err.println(serr);
+            repo.setErr(serr);
         }
 
         return exitCode;
@@ -157,5 +165,17 @@
         }
 
         synchronizer.sync(repositories);
+
+        if (synchronizer.failedRepositories.isEmpty()) {
+            System.out.println("--- All repositories synchronized successfully 
---");
+        } else {
+            System.out.println("--- Some repositories were not synchronized 
---");
+            Iterator it = synchronizer.failedRepositories.iterator();
+            while (it.hasNext()) {
+                SyncedRepository repo = (SyncedRepository) it.next();
+                System.out.println(" * " + repo.getGroupId());
+                System.out.println(repo.getErr());
+            }
+        }
     }
 }


Reply via email to