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;
}