FELIX-3524: Added configuration-pid support in Scr shell info command.


git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1380041 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/scr/src/main/java/org/apache/felix/scr/Component.java b/scr/src/main/java/org/apache/felix/scr/Component.java
index 6cbf648..758c642 100644
--- a/scr/src/main/java/org/apache/felix/scr/Component.java
+++ b/scr/src/main/java/org/apache/felix/scr/Component.java
@@ -360,6 +360,16 @@
     String getConfigurationPid();
 
     /**
+     * Returns whether the configuration-pid has been declared in the descriptor
+     * or not.
+     *
+     * @return whether the configuration-pid has method has been declared in the descriptor
+     *      or not.
+     * @since DS 1.2
+     */
+    boolean isConfigurationPidDeclared();
+
+    /**
      * Enables this Component if it is disabled. If the Component is not
      * currently {@link #STATE_DISABLED disabled} this method has no effect. If
      * the Component is {@link #STATE_DESTROYED destroyed}, this method throws
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/ScrCommand.java b/scr/src/main/java/org/apache/felix/scr/impl/ScrCommand.java
index 1329d37..645164c 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/ScrCommand.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/ScrCommand.java
@@ -230,6 +230,14 @@
             }
             out.println();
 
+            out.print("Configuration Pid: ");
+            out.print(component.getConfigurationPid());
+            if (component.isConfigurationPidDeclared())
+            {
+                out.print(" (declared in the descriptor)");
+            }
+            out.println();
+
             if (component.getFactory() != null)
             {
                 out.print("Factory: ");
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java b/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java
index fc74cd9..8e3f568 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java
@@ -552,6 +552,11 @@
         return m_componentMetadata.getConfigurationPid();
     }
 
+    public boolean isConfigurationPidDeclared()
+    {
+        return m_componentMetadata.isConfigurationPidDeclared();
+    }
+
     public boolean isServiceFactory()
     {
         return m_componentMetadata.getServiceMetadata() != null
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/metadata/ComponentMetadata.java b/scr/src/main/java/org/apache/felix/scr/impl/metadata/ComponentMetadata.java
index e6b28b6..f74872e 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/metadata/ComponentMetadata.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/metadata/ComponentMetadata.java
@@ -448,6 +448,18 @@
         return getName();
     }
 
+    /**
+     * Returns whether the configuration-pid has been declared in the descriptor
+     * or not.
+     *
+     * @return whether the configuration-pid has method has been declared in the descriptor
+     *      or not.
+     * @since DS 1.2
+     */
+    public boolean isConfigurationPidDeclared()
+    {
+        return m_configurationPid != null;
+    }
 
     /**
      * Returns the value of the enabled flag