You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by hu...@apache.org on 2015/03/16 11:25:32 UTC

svn commit: r1666948 - /aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/StartAction.java

Author: hughesj
Date: Mon Mar 16 10:25:31 2015
New Revision: 1666948

URL: http://svn.apache.org/r1666948
Log:
ARIES-1245 adding additional logging info

Modified:
    aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/StartAction.java

Modified: aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/StartAction.java
URL: http://svn.apache.org/viewvc/aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/StartAction.java?rev=1666948&r1=1666947&r2=1666948&view=diff
==============================================================================
--- aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/StartAction.java (original)
+++ aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/StartAction.java Mon Mar 16 10:25:31 2015
@@ -170,15 +170,45 @@ public class StartAction extends Abstrac
 				if (!frameworkWiring.resolveBundles(bundles)) {
 					//work out which bundles could not be resolved
 					Collection<Bundle> unresolved = new ArrayList<Bundle>();
+					StringBuilder diagnostics = new StringBuilder();
+					diagnostics.append(String.format("Unable to resolve bundles for subsystem/version/id %s/%s/%s:\n", 
+							subsystem.getSymbolicName(), subsystem.getVersion(), subsystem.getSubsystemId()));
+					String fmt = "%d : STATE %s : %s : %s : %s";
 					for(Bundle bundle:bundles){
-						if((bundle.getState() & Bundle.RESOLVED) != Bundle.RESOLVED){
+						if((bundle.getState() & Bundle.RESOLVED) != Bundle.RESOLVED) {
 							unresolved.add(bundle);
 						}
+						String state = null;
+						switch(bundle.getState()) {
+							case Bundle.ACTIVE :
+								state = "ACTIVE";
+								break;
+							case Bundle.INSTALLED :
+								state = "INSTALLED";
+								break;
+							case Bundle.RESOLVED :
+								state = "RESOLVED";
+								break;
+							case Bundle.STARTING :
+								state = "STARTING";
+								break;
+							case Bundle.STOPPING :
+								state = "STOPPING";
+								break;
+							case Bundle.UNINSTALLED :
+								state = "UNINSTALLED";
+								break;
+							default :
+								//convert common states to text otherwise default to just showing the ID
+								state = "[" + Integer.toString(bundle.getState()) + "]";
+								break;
+						}
+						diagnostics.append(String.format(fmt, bundle.getBundleId(), state, 
+								bundle.getSymbolicName(), bundle.getVersion().toString(), 
+								bundle.getLocation()));
+						diagnostics.append("\n");
 					}
-					logger.error(
-							"Unable to resolve bundles for subsystem/version/id {}/{}/{}: {}",
-							new Object[] { subsystem.getSymbolicName(), subsystem.getVersion(),
-									subsystem.getSubsystemId(), unresolved });
+					logger.error(diagnostics.toString());
 					throw new SubsystemException("Framework could not resolve the bundles: " + unresolved);
 				}
 				setExportIsolationPolicy(subsystem);