FELIX-3264 updated the shell command to show '(not tracking)' for dependencies that are not started yet

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1212507 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/dependencymanager/core/src/main/java/org/apache/felix/dm/ComponentDependencyDeclaration.java b/dependencymanager/core/src/main/java/org/apache/felix/dm/ComponentDependencyDeclaration.java
index 2d4e11b..da6a1cf 100644
--- a/dependencymanager/core/src/main/java/org/apache/felix/dm/ComponentDependencyDeclaration.java
+++ b/dependencymanager/core/src/main/java/org/apache/felix/dm/ComponentDependencyDeclaration.java
@@ -32,7 +32,9 @@
         "optional unavailable", 
         "optional available", 
         "required unavailable", 
-        "required available" 
+        "required available",
+        "optional (not tracking)",
+        "required (not tracking)"
         };
     /** State constant for an unavailable, optional dependency. */
     public static final int STATE_UNAVAILABLE_OPTIONAL = 0;
@@ -42,6 +44,10 @@
     public static final int STATE_UNAVAILABLE_REQUIRED = 2;
     /** State constant for an available, required dependency. */
     public static final int STATE_AVAILABLE_REQUIRED = 3;
+    /** State constant for an optional dependency that has not been started yet. */
+    public static final int STATE_OPTIONAL = 4;
+    /** State constant for a required dependency that has not been started yet. */
+    public static final int STATE_REQUIRED = 5;
     /** Returns the name of this dependency. */
     public String getName();
     /** Returns the name of the type of this dependency. */
diff --git a/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/BundleDependencyImpl.java b/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/BundleDependencyImpl.java
index 969356b..71e447f 100644
--- a/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/BundleDependencyImpl.java
+++ b/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/BundleDependencyImpl.java
@@ -45,7 +45,6 @@
  */
 public class BundleDependencyImpl extends DependencyBase implements BundleDependency, BundleTrackerCustomizer, ComponentDependencyDeclaration {
 	private final BundleContext m_context;
-	private boolean m_isStarted;
 	private BundleTracker m_tracker;
 	private int m_stateMask = Bundle.INSTALLED | Bundle.RESOLVED | Bundle.ACTIVE;
 	private List m_services = new ArrayList();
@@ -151,10 +150,6 @@
         return sb.toString();
 	}
 
-	public int getState() {
-        return (isAvailable() ? 1 : 0) + (isRequired() ? 2 : 0);
-	}
-
 	public String getType() {
 		return "bundle";
 	}
diff --git a/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ConfigurationDependencyImpl.java b/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ConfigurationDependencyImpl.java
index 1a31849..8338d11 100644
--- a/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ConfigurationDependencyImpl.java
+++ b/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ConfigurationDependencyImpl.java
@@ -69,7 +69,6 @@
     protected List m_services = new ArrayList();
 	private Dictionary m_settings;
     private String m_callback;
-    private boolean m_isStarted;
 	private final Set m_updateInvokedCache = new HashSet();
     private MetaTypeProviderImpl m_metaType;
     private boolean m_propagate;
@@ -287,10 +286,6 @@
         return m_pid;
     }
 
-    public int getState() {
-        return (isAvailable() ? 1 : 0) + (isRequired() ? 2 : 0);
-    }
-
     public String getType() {
         return "configuration";
     }
diff --git a/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/DependencyBase.java b/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/DependencyBase.java
index c3bd124..a94c959 100644
--- a/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/DependencyBase.java
+++ b/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/DependencyBase.java
@@ -18,6 +18,7 @@
  */
 package org.apache.felix.dm.impl.dependencies;
 
+import org.apache.felix.dm.ComponentDependencyDeclaration;
 import org.apache.felix.dm.Dependency;
 import org.apache.felix.dm.DependencyActivation;
 import org.apache.felix.dm.impl.Logger;
@@ -29,6 +30,7 @@
     private boolean m_isRequired;
     private boolean m_isInstanceBound;
     protected final Logger m_logger;
+    protected volatile boolean m_isStarted;
 
     public DependencyBase(Logger logger) {
         m_logger = logger;
@@ -55,4 +57,14 @@
     public final void setIsInstanceBound(boolean isInstanceBound) {
         m_isInstanceBound = isInstanceBound;
     }
+    
+    public int getState() {
+        if (m_isStarted) {
+            return (isAvailable() ? 1 : 0) + (isRequired() ? 2 : 0);
+        }
+        else {
+            return isRequired() ? ComponentDependencyDeclaration.STATE_REQUIRED : ComponentDependencyDeclaration.STATE_OPTIONAL;
+        }
+    }
+
 }
diff --git a/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ResourceDependencyImpl.java b/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ResourceDependencyImpl.java
index f000c50..7111d36 100644
--- a/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ResourceDependencyImpl.java
+++ b/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ResourceDependencyImpl.java
@@ -53,7 +53,6 @@
     protected List m_services = new ArrayList();
 	private String m_resourceFilter;
 	private URL m_trackedResource;
-    private boolean m_isStarted;
     private List m_resources = new ArrayList();
     private URL m_resourceInstance;
     private boolean m_propagate;
@@ -441,10 +440,6 @@
         return sb.toString();
     }
 
-    public int getState() {
-        return (isAvailable() ? 1 : 0) + (isRequired() ? 2 : 0);
-    }
-
     public String getType() {
         return "resource";
     }
diff --git a/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ServiceDependencyImpl.java b/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ServiceDependencyImpl.java
index 4d2f769..fc3184a 100644
--- a/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ServiceDependencyImpl.java
+++ b/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ServiceDependencyImpl.java
@@ -65,7 +65,6 @@
     private volatile String m_trackedServiceFilter;
     private volatile String m_trackedServiceFilterUnmodified;
     private volatile ServiceReference m_trackedServiceReference;
-    private volatile boolean m_isStarted;
     private Object m_callbackInstance;
     private String m_callbackAdded;
     private String m_callbackChanged;
@@ -1047,10 +1046,6 @@
         return sb.toString();
     }
 
-    public int getState() {
-        return (isAvailable() ? 1 : 0) + (isRequired() ? 2 : 0);
-    }
-
     public String getType() {
         return "service";
     }