Author: sanka
Date: Fri Jun  6 20:23:17 2008
New Revision: 18094
URL: http://wso2.org/svn/browse/wso2?view=rev&revision=18094

Log:


Modified:
   
branches/wsas/java/2.3/axis2-1.4-patched/modules/kernel/src/org/apache/axis2/description/AxisBindingMessage.java
   
branches/wsas/java/2.3/axis2-1.4-patched/modules/kernel/src/org/apache/axis2/description/PolicySubject.java

Modified: 
branches/wsas/java/2.3/axis2-1.4-patched/modules/kernel/src/org/apache/axis2/description/AxisBindingMessage.java
URL: 
http://wso2.org/svn/browse/wso2/branches/wsas/java/2.3/axis2-1.4-patched/modules/kernel/src/org/apache/axis2/description/AxisBindingMessage.java?rev=18094&r1=18093&r2=18094&view=diff
==============================================================================
--- 
branches/wsas/java/2.3/axis2-1.4-patched/modules/kernel/src/org/apache/axis2/description/AxisBindingMessage.java
    (original)
+++ 
branches/wsas/java/2.3/axis2-1.4-patched/modules/kernel/src/org/apache/axis2/description/AxisBindingMessage.java
    Fri Jun  6 20:23:17 2008
@@ -20,6 +20,7 @@
 package org.apache.axis2.description;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -50,8 +51,7 @@
        private boolean fault = false;
 
        private Policy effectivePolicy = null;
-
-       private boolean policyCalculated = false;
+       private Date lastPolicyCalcuatedTime = null;
 
        public boolean isFault() {
                return fault;
@@ -219,9 +219,8 @@
        }
 
        public Policy getEffectivePolicy() {
-               if (isPolicyUpdated() || !policyCalculated) {
+               if (lastPolicyCalcuatedTime == null || isPolicyUpdated()) {
                        effectivePolicy = calculateEffectivePolicy();
-                       policyCalculated = true;
                }
                return effectivePolicy;
        }
@@ -287,60 +286,68 @@
                                        .getAttachedPolicyComponents());
                }
 
+               lastPolicyCalcuatedTime = new Date();
                return PolicyUtil.getMergedPolicy(policyList, axisService);
        }
        
        private boolean isPolicyUpdated() {
-               boolean isUpdated = false;
+               if (getPolicySubject().getLastUpdatedTime().after(
+                               lastPolicyCalcuatedTime)) {
+                       return true;
+               }
                // AxisBindingOperation
                AxisBindingOperation axisBindingOperation = 
getAxisBindingOperation();
                if (axisBindingOperation != null
-                               && 
axisBindingOperation.getPolicySubject().isUpdated()) {
-                       
axisBindingOperation.getPolicySubject().setUpdated(false);
-                       isUpdated = true;
+                               && 
axisBindingOperation.getPolicySubject().getLastUpdatedTime()
+                                               
.after(lastPolicyCalcuatedTime)) {
+                       return true;
                }
                // AxisBinding
                AxisBinding axisBinding = (axisBindingOperation == null) ? null
                                : axisBindingOperation.getAxisBinding();
-               if (axisBinding != null && 
axisBinding.getPolicySubject().isUpdated()) {
-                       axisBinding.getPolicySubject().setUpdated(false);
-                       isUpdated = true;
+               if (axisBinding != null
+                               && 
axisBinding.getPolicySubject().getLastUpdatedTime().after(
+                                               lastPolicyCalcuatedTime)) {
+                       return true;
                }
                // AxisEndpoint
                AxisEndpoint axisEndpoint = (axisBinding == null) ? null : 
axisBinding
                                .getAxisEndpoint();
-               if (axisEndpoint != null && 
axisEndpoint.getPolicySubject().isUpdated()) {
-                       axisEndpoint.getPolicySubject().setUpdated(false);
-                       isUpdated = true;
+               if (axisEndpoint != null
+                               && 
axisEndpoint.getPolicySubject().getLastUpdatedTime().after(
+                                               lastPolicyCalcuatedTime)) {
+                       return true;
                }
                // AxisMessage
-               if (axisMessage != null && 
axisMessage.getPolicySubject().isUpdated()) {
-                       axisMessage.getPolicySubject().setUpdated(false);
-                       isUpdated = true;
+               if (axisMessage != null
+                               && 
axisMessage.getPolicySubject().getLastUpdatedTime().after(
+                                               lastPolicyCalcuatedTime)) {
+                       return true;
                }
                // AxisOperation
                AxisOperation axisOperation = (axisMessage == null) ? null
                                : axisMessage.getAxisOperation();
                if (axisOperation != null
-                               && 
axisOperation.getPolicySubject().isUpdated()) {
-                       axisOperation.getPolicySubject().setUpdated(false);
-                       isUpdated = true;
+                               && 
axisOperation.getPolicySubject().getLastUpdatedTime().after(
+                                               lastPolicyCalcuatedTime)) {
+                       return true;
                }
                // AxisService
                AxisService axisService = (axisOperation == null) ? null
                                : axisOperation.getAxisService();
-               if (axisService != null && 
axisService.getPolicySubject().isUpdated()) {
-                       axisService.getPolicySubject().setUpdated(false);
-                       isUpdated = true;
+               if (axisService != null
+                               && 
axisService.getPolicySubject().getLastUpdatedTime().after(
+                                               lastPolicyCalcuatedTime)) {
+                       return true;
                }
                // AxisConfiguration
                AxisConfiguration axisConfiguration = (axisService == null) ? 
null
                                : axisService.getAxisConfiguration();
                if (axisConfiguration != null
-                               && 
axisConfiguration.getPolicySubject().isUpdated()) {
-                       axisConfiguration.getPolicySubject().setUpdated(false);
-                       isUpdated = true;
+                               && 
axisConfiguration.getPolicySubject().getLastUpdatedTime()
+                                               
.after(lastPolicyCalcuatedTime)) {
+                       return true;
                }
-               return isUpdated;
+               return false;
        }
 }

Modified: 
branches/wsas/java/2.3/axis2-1.4-patched/modules/kernel/src/org/apache/axis2/description/PolicySubject.java
URL: 
http://wso2.org/svn/browse/wso2/branches/wsas/java/2.3/axis2-1.4-patched/modules/kernel/src/org/apache/axis2/description/PolicySubject.java?rev=18094&r1=18093&r2=18094&view=diff
==============================================================================
--- 
branches/wsas/java/2.3/axis2-1.4-patched/modules/kernel/src/org/apache/axis2/description/PolicySubject.java
 (original)
+++ 
branches/wsas/java/2.3/axis2-1.4-patched/modules/kernel/src/org/apache/axis2/description/PolicySubject.java
 Fri Jun  6 20:23:17 2008
@@ -20,6 +20,7 @@
 package org.apache.axis2.description;
 
 import java.util.Collection;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -32,7 +33,8 @@
 public class PolicySubject {
 
        private boolean updated = false;
-
+       private Date lastUpdatedTime = new Date();
+       
        private HashMap attachedPolicyComponents = new HashMap();
 
        public void attachPolicy(Policy policy) {
@@ -73,6 +75,8 @@
        public void attachPolicyComponent(String key,
                        PolicyComponent policyComponent) {
                attachedPolicyComponents.put(key, policyComponent);
+               lastUpdatedTime = new Date();
+               
                if (!isUpdated()) {
                        setUpdated(true);
                }
@@ -103,6 +107,8 @@
                                        "policy doesn't have a name or an id ");
                }
                attachedPolicyComponents.put(key, policy);
+               setLastUpdatedTime(new Date());
+               
                if (!isUpdated()) {
                        setUpdated(true);
                }
@@ -110,6 +116,7 @@
 
        public void detachPolicyComponent(String key) {
                attachedPolicyComponents.remove(key);
+               setLastUpdatedTime(new Date());
                if (!isUpdated()) {
                        setUpdated(true);
                }
@@ -117,8 +124,17 @@
 
        public void clear() {
                attachedPolicyComponents.clear();
+               setLastUpdatedTime(new Date());
                if (!isUpdated()) {
                        setUpdated(true);
                }
        }
+
+       public Date getLastUpdatedTime() {
+               return lastUpdatedTime;
+       }
+
+       public void setLastUpdatedTime(Date lastUpdatedTime) {
+               this.lastUpdatedTime = lastUpdatedTime;
+       }
 }

_______________________________________________
Wsas-java-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/wsas-java-dev

Reply via email to