You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by ve...@apache.org on 2018/01/08 02:04:33 UTC

svn commit: r1820516 - /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/AxisBindingMessage.java

Author: veithen
Date: Mon Jan  8 02:04:33 2018
New Revision: 1820516

URL: http://svn.apache.org/viewvc?rev=1820516&view=rev
Log:
AXIS2-5904: Revert r1820513.

Modified:
    axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/AxisBindingMessage.java

Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/AxisBindingMessage.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/AxisBindingMessage.java?rev=1820516&r1=1820515&r2=1820516&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/AxisBindingMessage.java (original)
+++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/AxisBindingMessage.java Mon Jan  8 02:04:33 2018
@@ -24,6 +24,7 @@ import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMNamespace;
 import org.apache.axis2.AxisFault;
+import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.util.PolicyUtil;
 import org.apache.axis2.util.WSDL20Util;
 import org.apache.axis2.util.WSDLSerializationUtil;
@@ -232,29 +233,127 @@ public class AxisBindingMessage extends
     }
 
     public Policy calculateEffectivePolicy() {
+        PolicySubject policySubject = null;
         Collection<PolicyComponent> policyList = new ArrayList<PolicyComponent>();
 
-        AxisDescription description = this;
-        AxisService axisService = null;
-        do {
-            policyList.addAll(description.getPolicySubject().getAttachedPolicyComponents());
-            if (description instanceof AxisService) {
-                axisService = (AxisService)description;
-            }
-        } while ((description = description.getParent()) != null);
-        
+        // AxisBindingMessage
+        policySubject = getPolicySubject();
+        policyList.addAll(policySubject.getAttachedPolicyComponents());
+
+        // AxisBindingOperation policies
+        AxisBindingOperation axisBindingOperation = getAxisBindingOperation();
+        if (axisBindingOperation != null) {
+            policyList.addAll(axisBindingOperation.getPolicySubject()
+                    .getAttachedPolicyComponents());
+        }
+
+        // AxisBinding
+        AxisBinding axisBinding = (axisBindingOperation == null) ? null
+                : axisBindingOperation.getAxisBinding();
+        if (axisBinding != null) {
+            policyList.addAll(axisBinding.getPolicySubject()
+                    .getAttachedPolicyComponents());
+        }
+
+        // AxisEndpoint
+        AxisEndpoint axisEndpoint = (axisBinding == null) ? null : axisBinding
+                .getAxisEndpoint();
+        if (axisEndpoint != null) {
+            policyList.addAll(axisEndpoint.getPolicySubject()
+                    .getAttachedPolicyComponents());
+        }
+
+        // AxisMessage
+        if (axisMessage != null) {
+            policyList.addAll(axisMessage.getPolicySubject()
+                    .getAttachedPolicyComponents());
+        }
+
+        // AxisOperation
+        AxisOperation axisOperation = (axisMessage == null) ? null
+                : axisMessage.getAxisOperation();
+        if (axisOperation != null) {
+            policyList.addAll(axisOperation.getPolicySubject()
+                    .getAttachedPolicyComponents());
+        }
+
+        // AxisService
+        AxisService axisService = (axisOperation == null) ? null
+                : axisOperation.getAxisService();
+        if (axisService != null) {
+            policyList.addAll(axisService.getPolicySubject()
+                    .getAttachedPolicyComponents());
+        }
+
+        // AxisConfiguration
+        AxisConfiguration axisConfiguration = (axisService == null) ? null
+                : axisService.getAxisConfiguration();
+        if (axisConfiguration != null) {
+            policyList.addAll(axisConfiguration.getPolicySubject()
+                    .getAttachedPolicyComponents());
+        }
 
         return PolicyUtil.getMergedPolicy(policyList, axisService);
     }
     
     private boolean isPolicyUpdated() {
-        AxisDescription description = this;
-        do {
-            if (description.getPolicySubject().getLastUpdatedTime().after(
-                    lastPolicyCalculatedTime)) {
-                return true;
-            }
-        } while ((description = description.getParent()) != null);
+        if (getPolicySubject().getLastUpdatedTime().after(
+                lastPolicyCalculatedTime)) {
+            return true;
+        }
+        // AxisBindingOperation
+        AxisBindingOperation axisBindingOperation = getAxisBindingOperation();
+        if (axisBindingOperation != null
+                && axisBindingOperation.getPolicySubject().getLastUpdatedTime()
+                        .after(lastPolicyCalculatedTime)) {
+            return true;
+        }
+        // AxisBinding
+        AxisBinding axisBinding = (axisBindingOperation == null) ? null
+                : axisBindingOperation.getAxisBinding();
+        if (axisBinding != null
+                && axisBinding.getPolicySubject().getLastUpdatedTime().after(
+                lastPolicyCalculatedTime)) {
+            return true;
+        }
+        // AxisEndpoint
+        AxisEndpoint axisEndpoint = (axisBinding == null) ? null : axisBinding
+                .getAxisEndpoint();
+        if (axisEndpoint != null
+                && axisEndpoint.getPolicySubject().getLastUpdatedTime().after(
+                lastPolicyCalculatedTime)) {
+            return true;
+        }
+        // AxisMessage
+        if (axisMessage != null
+                && axisMessage.getPolicySubject().getLastUpdatedTime().after(
+                lastPolicyCalculatedTime)) {
+            return true;
+        }
+        // AxisOperation
+        AxisOperation axisOperation = (axisMessage == null) ? null
+                : axisMessage.getAxisOperation();
+        if (axisOperation != null
+                && axisOperation.getPolicySubject().getLastUpdatedTime().after(
+                lastPolicyCalculatedTime)) {
+            return true;
+        }
+        // AxisService
+        AxisService axisService = (axisOperation == null) ? null
+                : axisOperation.getAxisService();
+        if (axisService != null
+                && axisService.getPolicySubject().getLastUpdatedTime().after(
+                lastPolicyCalculatedTime)) {
+            return true;
+        }
+        // AxisConfiguration
+        AxisConfiguration axisConfiguration = (axisService == null) ? null
+                : axisService.getAxisConfiguration();
+        if (axisConfiguration != null
+                && axisConfiguration.getPolicySubject().getLastUpdatedTime()
+                        .after(lastPolicyCalculatedTime)) {
+            return true;
+        }
         return false;
     }