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
