Avoid get-property() function in default scope look for entries from remote registry

git-svn-id: https://svn.apache.org/repos/asf/synapse/trunk@1776017 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/java/modules/core/src/main/java/org/apache/synapse/MessageContext.java b/java/modules/core/src/main/java/org/apache/synapse/MessageContext.java
index c8694b4..81d7971 100644
--- a/java/modules/core/src/main/java/org/apache/synapse/MessageContext.java
+++ b/java/modules/core/src/main/java/org/apache/synapse/MessageContext.java
@@ -156,6 +156,14 @@
     public Object getEntry(String key);
 
     /**
+     * Get the value of a property set on the message instance or from the local registry
+     *
+     * @param key key to look up property
+     * @return value for the given key
+     */
+    public Object getLocalEntry(String key);
+
+    /**
      * Set a custom (local) property with the given name on the message instance
      * @param key key to be used
      * @param value value to be saved
diff --git a/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java b/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java
index 4e770c1..0c7dee6 100644
--- a/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java
+++ b/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java
@@ -676,6 +676,23 @@
     }
 
     /**
+     * Get the resource from local registry
+     *
+     * @param key the key of the resource required
+     * @return value for the key
+     */
+    public Object getLocalRegistryEntry(String key) {
+        Object o = localRegistry.get(key);
+        if (o != null && o instanceof Entry) {
+            Entry entry = (Entry) o;
+            if (!entry.isDynamic()) {  // Skip dynamic entries
+                return entry.getValue();
+            }
+        }
+        return null;
+    }
+
+    /**
      * Get the resource with the given key
      *
      * @param key
diff --git a/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2MessageContext.java b/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2MessageContext.java
index 0512002..d69b248 100644
--- a/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2MessageContext.java
+++ b/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2MessageContext.java
@@ -199,6 +199,20 @@
         }
     }
 
+    public Object getLocalEntry(String key) {
+        Object o = localEntries.get(key);
+        if (o != null && o instanceof Entry) {
+            return ((Entry) o).getValue();
+        } else {
+            Object e = getConfiguration().getLocalRegistryEntry(key);
+            if (e != null) {
+                localEntries.put(key, e);
+                return e;
+            }
+        }
+        return null;
+    }
+
     /**
      * Get a read-only view of all the properties currently set on this
      * message context
diff --git a/java/modules/core/src/main/java/org/apache/synapse/mediators/GetPropertyFunction.java b/java/modules/core/src/main/java/org/apache/synapse/mediators/GetPropertyFunction.java
index d4cd4a6..65fbd34 100644
--- a/java/modules/core/src/main/java/org/apache/synapse/mediators/GetPropertyFunction.java
+++ b/java/modules/core/src/main/java/org/apache/synapse/mediators/GetPropertyFunction.java
@@ -267,7 +267,7 @@
                 if (result != null) {
                     return result;
                 } else {
-                    return synCtx.getEntry(key);
+                    return synCtx.getLocalEntry(key);
                 }
             }
         } else if (XMLConfigConstants.SCOPE_AXIS2.equals(scope)
diff --git a/java/modules/core/src/test/java/org/apache/synapse/TestMessageContext.java b/java/modules/core/src/test/java/org/apache/synapse/TestMessageContext.java
index 86de6ee..2e2edcb 100644
--- a/java/modules/core/src/test/java/org/apache/synapse/TestMessageContext.java
+++ b/java/modules/core/src/test/java/org/apache/synapse/TestMessageContext.java
@@ -95,6 +95,17 @@
         }
     }
 
+    public Object getLocalEntry(String key) {
+        Object ret = properties.get(key);
+        if (ret != null) {
+            return ret;
+        } else if (getConfiguration() != null) {
+            return getConfiguration().getLocalRegistryEntry(key);
+        } else {
+            return null;
+        }
+    }
+
     public void setProperty(String key, Object value) {
         properties.put(key, value);
     }
diff --git a/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/ScriptMessageContext.java b/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/ScriptMessageContext.java
index c81892c..1497a51 100644
--- a/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/ScriptMessageContext.java
+++ b/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/ScriptMessageContext.java
@@ -187,6 +187,10 @@
         return mc.getEntry(key);
     }
 
+    public Object getLocalEntry(String key) {
+        return mc.getLocalEntry(key);
+    }
+
     public void setProperty(String key, Object value) {
         if (value instanceof XMLObject) {
             OMElement omElement = null;