You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by gn...@apache.org on 2012/04/06 11:19:51 UTC

svn commit: r1310255 - in /karaf/branches/karaf-2.3.x: features/command/src/main/java/org/apache/karaf/features/command/ shell/console/src/main/java/org/apache/karaf/shell/console/ shell/osgi/src/main/java/org/apache/karaf/shell/osgi/

Author: gnodet
Date: Fri Apr  6 09:19:50 2012
New Revision: 1310255

URL: http://svn.apache.org/viewvc?rev=1310255&view=rev
Log:
[KARAF-1040] Commands should not catch exceptions but should rethrow them


Conflicts:

	features/command/src/main/java/org/apache/karaf/features/command/AddUrlCommand.java
	shell/osgi/src/main/java/org/apache/karaf/shell/osgi/InstallBundle.java

Added:
    karaf/branches/karaf-2.3.x/shell/console/src/main/java/org/apache/karaf/shell/console/MultiException.java
      - copied, changed from r1310254, karaf/branches/karaf-2.3.x/features/command/src/main/java/org/apache/karaf/features/command/MultiException.java
Removed:
    karaf/branches/karaf-2.3.x/features/command/src/main/java/org/apache/karaf/features/command/MultiException.java
Modified:
    karaf/branches/karaf-2.3.x/features/command/src/main/java/org/apache/karaf/features/command/AddUrlCommand.java
    karaf/branches/karaf-2.3.x/features/command/src/main/java/org/apache/karaf/features/command/RefreshUrlCommand.java
    karaf/branches/karaf-2.3.x/shell/osgi/src/main/java/org/apache/karaf/shell/osgi/InstallBundle.java

Modified: karaf/branches/karaf-2.3.x/features/command/src/main/java/org/apache/karaf/features/command/AddUrlCommand.java
URL: http://svn.apache.org/viewvc/karaf/branches/karaf-2.3.x/features/command/src/main/java/org/apache/karaf/features/command/AddUrlCommand.java?rev=1310255&r1=1310254&r2=1310255&view=diff
==============================================================================
--- karaf/branches/karaf-2.3.x/features/command/src/main/java/org/apache/karaf/features/command/AddUrlCommand.java (original)
+++ karaf/branches/karaf-2.3.x/features/command/src/main/java/org/apache/karaf/features/command/AddUrlCommand.java Fri Apr  6 09:19:50 2012
@@ -23,6 +23,7 @@ import java.util.List;
 import org.apache.karaf.features.FeaturesService;
 import org.apache.felix.gogo.commands.Argument;
 import org.apache.felix.gogo.commands.Command;
+import org.apache.karaf.shell.console.MultiException;
 
 @Command(scope = "features", name = "addUrl", description = "Adds a list of repository URLs to the features service.")
 public class AddUrlCommand extends FeaturesCommandSupport {

Modified: karaf/branches/karaf-2.3.x/features/command/src/main/java/org/apache/karaf/features/command/RefreshUrlCommand.java
URL: http://svn.apache.org/viewvc/karaf/branches/karaf-2.3.x/features/command/src/main/java/org/apache/karaf/features/command/RefreshUrlCommand.java?rev=1310255&r1=1310254&r2=1310255&view=diff
==============================================================================
--- karaf/branches/karaf-2.3.x/features/command/src/main/java/org/apache/karaf/features/command/RefreshUrlCommand.java (original)
+++ karaf/branches/karaf-2.3.x/features/command/src/main/java/org/apache/karaf/features/command/RefreshUrlCommand.java Fri Apr  6 09:19:50 2012
@@ -24,6 +24,7 @@ import org.apache.felix.gogo.commands.Ar
 import org.apache.felix.gogo.commands.Command;
 import org.apache.karaf.features.FeaturesService;
 import org.apache.karaf.features.Repository;
+import org.apache.karaf.shell.console.MultiException;
 
 @Command(scope = "features", name = "refreshUrl", description = "Reloads the list of available features from the repositories.")
 public class RefreshUrlCommand extends FeaturesCommandSupport {

Copied: karaf/branches/karaf-2.3.x/shell/console/src/main/java/org/apache/karaf/shell/console/MultiException.java (from r1310254, karaf/branches/karaf-2.3.x/features/command/src/main/java/org/apache/karaf/features/command/MultiException.java)
URL: http://svn.apache.org/viewvc/karaf/branches/karaf-2.3.x/shell/console/src/main/java/org/apache/karaf/shell/console/MultiException.java?p2=karaf/branches/karaf-2.3.x/shell/console/src/main/java/org/apache/karaf/shell/console/MultiException.java&p1=karaf/branches/karaf-2.3.x/features/command/src/main/java/org/apache/karaf/features/command/MultiException.java&r1=1310254&r2=1310255&rev=1310255&view=diff
==============================================================================
--- karaf/branches/karaf-2.3.x/features/command/src/main/java/org/apache/karaf/features/command/MultiException.java (original)
+++ karaf/branches/karaf-2.3.x/shell/console/src/main/java/org/apache/karaf/shell/console/MultiException.java Fri Apr  6 09:19:50 2012
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.karaf.features.command;
+package org.apache.karaf.shell.console;
 
 import java.io.PrintStream;
 import java.io.PrintWriter;

Modified: karaf/branches/karaf-2.3.x/shell/osgi/src/main/java/org/apache/karaf/shell/osgi/InstallBundle.java
URL: http://svn.apache.org/viewvc/karaf/branches/karaf-2.3.x/shell/osgi/src/main/java/org/apache/karaf/shell/osgi/InstallBundle.java?rev=1310255&r1=1310254&r2=1310255&view=diff
==============================================================================
--- karaf/branches/karaf-2.3.x/shell/osgi/src/main/java/org/apache/karaf/shell/osgi/InstallBundle.java (original)
+++ karaf/branches/karaf-2.3.x/shell/osgi/src/main/java/org/apache/karaf/shell/osgi/InstallBundle.java Fri Apr  6 09:19:50 2012
@@ -20,8 +20,9 @@ import java.io.PrintStream;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.felix.gogo.commands.Argument;
+import org.apache.karaf.shell.console.MultiException;
 import org.apache.karaf.shell.console.OsgiCommandSupport;
+import org.apache.felix.gogo.commands.Argument;
 import org.apache.felix.gogo.commands.Option;
 import org.apache.felix.gogo.commands.Command;
 import org.osgi.framework.Bundle;
@@ -37,16 +38,13 @@ public class InstallBundle extends OsgiC
     boolean start;
 
     protected Object doExecute() throws Exception {
+        List<Exception> exceptions = new ArrayList<Exception>();
         List<Bundle> bundles = new ArrayList<Bundle>();
-        StringBuffer sb = new StringBuffer();
         for (String url : urls) {
-            Bundle bundle = install(url, System.out, System.err);
-            if (bundle != null) {
-                bundles.add(bundle);
-                if (sb.length() > 0) {
-                    sb.append(", ");
-                }
-                sb.append(bundle.getBundleId());
+            try {
+                bundles.add(getBundleContext().installBundle(url, null));
+            } catch (Exception e) {
+                exceptions.add(new Exception("Unable to install bundle " + url, e));
             }
         }
         if (start) {
@@ -54,15 +52,23 @@ public class InstallBundle extends OsgiC
                 try {
                     bundle.start();
                 } catch (Exception e) {
-                    System.err.println(e.toString());
+                    exceptions.add(new Exception("Unable to start bundle " + bundle.getLocation(), e));
                 }
             }
         }
-        if (sb.toString().indexOf(',') > 0) {
-            System.out.println("Bundle IDs: " + sb.toString());
-        } else if (sb.length() > 0) {
-            System.out.println("Bundle ID: " + sb.toString());
+        if (bundles.size() == 1) {
+            System.out.println("Bundle ID: " + bundles.get(0).getBundleId());
+        } else {
+            StringBuffer sb = new StringBuffer("Bundle IDs: ");
+            for (Bundle bundle : bundles) {
+                if (sb.length() > 0) {
+                    sb.append(", ");
+                }
+                sb.append(bundle.getBundleId());
+            }
+            System.out.println(sb);
         }
+        MultiException.throwIf("Error installing bundles", exceptions);
         return null;
     }