You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fx-dev@ws.apache.org by ch...@apache.org on 2007/02/04 18:47:19 UTC
svn commit: r503447 - in /webservices/sandesha/trunk/java: config/
samples/conf/userguide/ src/org/apache/sandesha2/
src/org/apache/sandesha2/i18n/ src/org/apache/sandesha2/policy/
src/org/apache/sandesha2/policy/builders/ src/org/apache/sandesha2/util...
Author: chamikara
Date: Sun Feb 4 09:47:18 2007
New Revision: 503447
URL: http://svn.apache.org/viewvc?view=rev&rev=503447
Log:
A new policy to enforce RM at the server side.
Corrected the policy handling logic to load service/operation level policies.
Removed some commented code.
Modified:
webservices/sandesha/trunk/java/config/module.xml
webservices/sandesha/trunk/java/samples/conf/userguide/services.xml
webservices/sandesha/trunk/java/src/org/apache/sandesha2/MessageValidator.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/SandeshaModule.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/SandeshaMessageKeys.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/resource.properties
webservices/sandesha/trunk/java/src/org/apache/sandesha2/policy/SandeshaPolicyBean.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/policy/builders/RMAssertionBuilder.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/MessageRetransmissionAdjuster.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/PropertyManager.java
webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/PropertyLoaderTest.java
Modified: webservices/sandesha/trunk/java/config/module.xml
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/config/module.xml?view=diff&rev=503447&r1=503446&r2=503447
==============================================================================
--- webservices/sandesha/trunk/java/config/module.xml (original)
+++ webservices/sandesha/trunk/java/config/module.xml Sun Feb 4 09:47:18 2007
@@ -117,6 +117,8 @@
</sandesha2:MakeConnection>
<!-- <sandesha2:UseMessageSerialization>true</sandesha2:UseMessageSerialization> -->
+
+ <sandesha2:EnforceRM>false</sandesha2:EnforceRM>
</wsp:Policy>
</sandesha2:RMAssertion>
</wsp:Policy>
Modified: webservices/sandesha/trunk/java/samples/conf/userguide/services.xml
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/samples/conf/userguide/services.xml?view=diff&rev=503447&r1=503446&r2=503447
==============================================================================
--- webservices/sandesha/trunk/java/samples/conf/userguide/services.xml (original)
+++ webservices/sandesha/trunk/java/samples/conf/userguide/services.xml Sun Feb 4 09:47:18 2007
@@ -23,17 +23,23 @@
<actionMapping>urn:wsrm:EchoString</actionMapping>
<outputActionMapping>urn:wsrm:EchoStringResponse</outputActionMapping>
</operation>
-
-<!-- <supported-policy-namespaces namespaces="http://ws.apache.org/sandesha2/policy" />-->
-
-<!-- <wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
- xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
- xmlns:wsrm="http://ws.apache.org/sandesha2/policy" wsu:Id="RMPolicy">
-
- <!-#- Following policy value has been overrided from the default values.-#->>
- <wsrm:AcknowledgementInterval>3500</wsrm:AcknowledgementInterval>
-
- </wsp:Policy>-->
+
+ <!--
+ <supported-policy-namespaces namespaces="http://ws.apache.org/sandesha2/policy" />
+
+ <wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
+ xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
+ xmlns:sandesha2="http://ws.apache.org/sandesha2/policy" wsu:Id="RMPolicy">
+
+ <sandesha2:RMAssertion>
+ <wsp:Policy>
+ <sandesha2:AcknowledgementInterval>4000</sandesha2:AcknowledgementInterval>
+ <sandesha2:EnforceRM>true</sandesha2:EnforceRM>
+ </wsp:Policy>
+ </sandesha2:RMAssertion>
+
+ </wsp:Policy>
+ -->
</service>
Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/MessageValidator.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/MessageValidator.java?view=diff&rev=503447&r1=503446&r2=503447
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/MessageValidator.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/MessageValidator.java Sun Feb 4 09:47:18 2007
@@ -19,6 +19,7 @@
import org.apache.sandesha2.i18n.SandeshaMessageHelper;
import org.apache.sandesha2.i18n.SandeshaMessageKeys;
+import org.apache.sandesha2.policy.SandeshaPolicyBean;
import org.apache.sandesha2.storage.StorageManager;
import org.apache.sandesha2.storage.beans.RMDBean;
import org.apache.sandesha2.storage.beans.RMSBean;
@@ -31,21 +32,24 @@
*/
public class MessageValidator {
- public static void validateMessage(RMMsgContext rmMsg, StorageManager storageManager) throws SandeshaException {
+ public static void validateMessage(RMMsgContext rmMsg,
+ StorageManager storageManager) throws SandeshaException {
- if (rmMsg.getMessageType() != Sandesha2Constants.MessageTypes.CREATE_SEQ
- && rmMsg.getMessageType() != Sandesha2Constants.MessageTypes.UNKNOWN) {
+ int type = rmMsg.getMessageType();
+ if (type != Sandesha2Constants.MessageTypes.CREATE_SEQ && type != Sandesha2Constants.MessageTypes.UNKNOWN) {
String sequenceID = SandeshaUtil.getSequenceIDFromRMMessage(rmMsg);
if (sequenceID != null) {
String rmVersionOfSequence = null;
-
- RMSBean rmsBean = SandeshaUtil.getRMSBeanFromSequenceId(storageManager, sequenceID);
+
+ RMSBean rmsBean = SandeshaUtil.getRMSBeanFromSequenceId(
+ storageManager, sequenceID);
if (rmsBean != null)
rmVersionOfSequence = rmsBean.getRMVersion();
else {
- RMDBean rmdBean = SandeshaUtil.getRMDBeanFromSequenceId(storageManager, sequenceID);
+ RMDBean rmdBean = SandeshaUtil.getRMDBeanFromSequenceId(
+ storageManager, sequenceID);
if (rmdBean != null)
rmVersionOfSequence = rmdBean.getRMVersion();
}
@@ -53,16 +57,38 @@
String rmNamespaceOfMsg = rmMsg.getRMNamespaceValue();
String rmNamespaceOfSequence = null;
if (rmVersionOfSequence != null)
- rmNamespaceOfSequence = SpecSpecificConstants.getRMNamespaceValue(rmVersionOfSequence);
+ rmNamespaceOfSequence = SpecSpecificConstants
+ .getRMNamespaceValue(rmVersionOfSequence);
- if (rmNamespaceOfSequence != null && !rmNamespaceOfSequence.equals(rmNamespaceOfMsg)) {
- String message = SandeshaMessageHelper.getMessage(SandeshaMessageKeys.rmNamespaceNotMatchSequence,
- rmNamespaceOfMsg, rmNamespaceOfSequence, sequenceID);
+ if (rmNamespaceOfSequence != null
+ && !rmNamespaceOfSequence.equals(rmNamespaceOfMsg)) {
+ String message = SandeshaMessageHelper
+ .getMessage(
+ SandeshaMessageKeys.rmNamespaceNotMatchSequence,
+ rmNamespaceOfMsg, rmNamespaceOfSequence,
+ sequenceID);
throw new SandeshaException(message);
}
- // TODO do validation based on states
+ }
+ } else if (type == Sandesha2Constants.MessageTypes.UNKNOWN) {
+
+ // checking if policies hv been set to enforceRM.
+ // If this is set and this message is not an RM message, validation
+ // will fail here.
+
+ SandeshaPolicyBean propertyBean = SandeshaUtil
+ .getPropertyBean(rmMsg.getMessageContext()
+ .getAxisOperation());
+ if (propertyBean.isEnforceRM()) {
+ String message = SandeshaMessageHelper.getMessage(
+ SandeshaMessageKeys.rmEnforceFailure, rmMsg
+ .getMessageId());
+ throw new SandeshaException(message);
}
}
+
+ // TODO do validation based on states
+
}
}
Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java?view=diff&rev=503447&r1=503446&r2=503447
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java Sun Feb 4 09:47:18 2007
@@ -390,6 +390,8 @@
boolean EnableRMAnonURI = true;
boolean UseMessageSerialization = false;
+
+ boolean enforceRM = false;
}
}
@@ -533,6 +535,7 @@
public static final String ELEM_ENABLED = "Enabled";
public static final String ELEM_USE_RM_ANON_URI = "UseRMAnonURI";
public static final String ELEM_USE_SERIALIZATION = "UseMessageSerialization";
+ public static final String ELEM_ENFORCE_RM = "EnforceRM";
public static final QName Q_ELEM_POLICY = new QName(URI_POLICY_NS, ELEM_POLICY, ATTR_WSP);
public static final QName Q_ELEM_RMASSERTION = new QName(URI_RM_POLICY_NS, ELEM_RMASSERTION, ATTR_WSRM);
@@ -553,5 +556,7 @@
public static final QName Q_ELEM_ENABLED = new QName(URI_RM_POLICY_NS, ELEM_ENABLED, ATTR_WSRM);
public static final QName Q_ELEM_USE_RM_ANON_URI = new QName(URI_RM_POLICY_NS, ELEM_USE_RM_ANON_URI, ATTR_WSRM);
public static final QName Q_ELEM_USE_SERIALIZATION = new QName(URI_RM_POLICY_NS, ELEM_USE_SERIALIZATION, ATTR_WSRM);
+ public static final QName Q_ELEM_ENFORCE_RM = new QName(URI_RM_POLICY_NS, ELEM_ENFORCE_RM, ATTR_WSRM);
+
}
}
Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/SandeshaModule.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/SandeshaModule.java?view=diff&rev=503447&r1=503446&r2=503447
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/SandeshaModule.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/SandeshaModule.java Sun Feb 4 09:47:18 2007
@@ -135,7 +135,7 @@
public void engageNotify(AxisDescription axisDescription) throws AxisFault {
if(log.isDebugEnabled()) log.debug("Entry: SandeshaModule::engageNotify, " + axisDescription);
- SandeshaPolicyBean parentPropertyBean = SandeshaUtil.getPropertyBean(axisDescription);
+ SandeshaPolicyBean parentPropertyBean = SandeshaUtil.getPropertyBean(axisDescription.getParent());
if (parentPropertyBean==null)
throw new AxisFault (SandeshaMessageHelper.getMessage(
SandeshaMessageKeys.defaultPropertyBeanNotSet));
Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/SandeshaMessageKeys.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/SandeshaMessageKeys.java?view=diff&rev=503447&r1=503446&r2=503447
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/SandeshaMessageKeys.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/SandeshaMessageKeys.java Sun Feb 4 09:47:18 2007
@@ -298,5 +298,6 @@
public final static String cloneDoesNotMatchToOriginal = "cloneDoesNotMatchToOriginal";
public final static String exceptionInFlowCompletion = "exceptionInFlowCompletion";
public final static String rmdBeanNotFound = "rmdBeanNotFound";
-
+ public final static String rmEnforceFailure = "rmEnforceFailure";
+ public final static String policyHasNotBeenSet = "policyHasNotBeenSet";
}
Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/resource.properties
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/resource.properties?view=diff&rev=503447&r1=503446&r2=503447
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/resource.properties (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/resource.properties Sun Feb 4 09:47:18 2007
@@ -100,6 +100,9 @@
cloneDoesNotMatchToOriginal=The elements of the original and cloned SOAP Envelopes do not match
exceptionInFlowCompletion=Got exception in flowCompletion of SandeshaInHandler
rmdBeanNotFound=RMDBean not available for the sequence:{0}
+policyHasNotBeenSet="WSRM Policy ''{0}'' has not been set for this endpoint
+rmEnforceFailure=The message with MessageID ''{0}'' is not WSRM enabled but the service enforces WSRM
+
#-------------------------------------
#
# Protocol Oriented Messages
@@ -305,4 +308,4 @@
createSequenceRefused=The Create Sequence request has been refused by the RM Destination
referencedMessageNotFound = Reference message is not present for the sequence with property key {0}
-messageNumberRollover=The maximum value for wsrm:MessageNumber has been exceeded.
+messageNumberRollover=The maximum value for wsrm:MessageNumber has been exceeded.
\ No newline at end of file
Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/policy/SandeshaPolicyBean.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/policy/SandeshaPolicyBean.java?view=diff&rev=503447&r1=503446&r2=503447
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/policy/SandeshaPolicyBean.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/policy/SandeshaPolicyBean.java Sun Feb 4 09:47:18 2007
@@ -27,6 +27,9 @@
import org.apache.neethi.Constants;
import org.apache.neethi.PolicyComponent;
import org.apache.sandesha2.Sandesha2Constants;
+import org.apache.sandesha2.SandeshaException;
+import org.apache.sandesha2.i18n.SandeshaMessageHelper;
+import org.apache.sandesha2.i18n.SandeshaMessageKeys;
/**
* Used to hold peoperties loaded from sandesha2.properties file or
@@ -35,9 +38,12 @@
public class SandeshaPolicyBean implements Assertion {
+ private SandeshaPolicyBean parent = null;
+
// String storageManagerClass = null;
boolean inOrder = true;
-
+ private boolean inOrderSet = false;
+
ArrayList msgTypesToDrop = null;
private String inMemoryStorageManagerClass = null;
@@ -47,26 +53,38 @@
private String securityManagerClass = null;
private long inactiveTimeoutValue;
-
+ private boolean inactiveTimeoutValueSet = false;
+
private String inactivityTimeoutMeasure;
private long inactivityTimeoutInterval = -1;
-
+ private boolean inactivityTimeoutIntervalSet = false;
+
private long acknowledgementInterval;
-
+ private boolean acknowledgementIntervalSet = false;
+
private long retransmissionInterval;
-
+ private boolean retransmissionIntervalSet = false;
+
private boolean exponentialBackoff;
-
+ private boolean exponentialBackoffSet = false;
+
private int maximumRetransmissionCount;
+ private boolean maximumRetransmissionCountSet = false;
private boolean enableMakeConnection;
+ private boolean enableMakeConnectionSet = false;
private boolean enableRMAnonURI;
+ private boolean enableRMAnonURISet = false;
private boolean useMessageSerialization;
-
- public void setInactiveTimeoutInterval(long value, String measure) {
+ private boolean useMessageSerializationSet = false;
+
+ private boolean enforceRM;
+ private boolean enforceRMSet = false;
+
+ public void setInactiveTimeoutInterval(long value, String measure) {
long timeOut = -1;
if (measure == null) {
@@ -87,6 +105,7 @@
public void setAcknowledgementInterval(long acknowledgementInterval) {
this.acknowledgementInterval = acknowledgementInterval;
+ setAcknowledgementIntervalSet(true);
}
public String getInMemoryStorageManagerClass() {
@@ -113,6 +132,7 @@
public void setInOrder(boolean inOrder) {
this.inOrder = inOrder;
+ setInOrderSet(true);
}
public ArrayList getMsgTypesToDrop() {
@@ -133,12 +153,22 @@
}
}
- public int getMaximumRetransmissionCount() {
- return maximumRetransmissionCount;
+ public int getMaximumRetransmissionCount() throws SandeshaException {
+
+ if (isMaximumRetransmissionCountSet()) {
+ return maximumRetransmissionCount;
+ } else if (parent!=null) {
+ return parent.getMaximumRetransmissionCount();
+ } else {
+ String message = SandeshaMessageHelper.getMessage(SandeshaMessageKeys.policyHasNotBeenSet, Sandesha2Constants.Assertions.ELEM_MAX_RETRANS_COUNT);
+ throw new SandeshaException (message);
+ }
+
}
public void setMaximumRetransmissionCount(int maximumRetransmissionCount) {
this.maximumRetransmissionCount = maximumRetransmissionCount;
+ setMaximumRetransmissionCountSet(true);
}
public String getSecurityManagerClass() {
@@ -162,126 +192,133 @@
}
public void serialize(XMLStreamWriter writer) throws XMLStreamException {
- String localName = Sandesha2Constants.Assertions.Q_ELEM_RMASSERTION
- .getLocalPart();
- String namespaceURI = Sandesha2Constants.Assertions.Q_ELEM_RMASSERTION
- .getNamespaceURI();
-
- String prefix = writer.getPrefix(namespaceURI);
- if (prefix == null) {
- prefix = Sandesha2Constants.Assertions.Q_ELEM_RMASSERTION
- .getPrefix();
- writer.setPrefix(prefix, namespaceURI);
- }
-
- // <wsrm:RMAssertion>
- writer.writeStartElement(prefix, localName, namespaceURI);
- // xmlns:wsrm=".."
- writer.writeNamespace(prefix, namespaceURI);
-
- String policyLocalName = Sandesha2Constants.Assertions.Q_ELEM_POLICY
- .getLocalPart();
- String policyNamespaceURI = Sandesha2Constants.Assertions.Q_ELEM_POLICY
- .getNamespaceURI();
- String wspPrefix = writer.getPrefix(policyNamespaceURI);
-
- if (wspPrefix == null) {
- wspPrefix = Sandesha2Constants.Assertions.Q_ELEM_POLICY.getPrefix();
- writer.writeNamespace(wspPrefix, policyNamespaceURI);
- }
-
- // <wsp:Policy>
- writer
- .writeStartElement(wspPrefix, policyLocalName,
- policyNamespaceURI);
-
- // <wsrm:AcknowledgementInterval />
- writer.writeStartElement(prefix, Sandesha2Constants.Assertions.Q_ELEM_ACK_INTERVAL.getLocalPart(), namespaceURI);
- writer.writeCharacters(Long.toString(getAcknowledgementInterval()));
- writer.writeEndElement();
-
- // <wsrm:RetransmissionInterval />
- writer.writeStartElement(prefix, Sandesha2Constants.Assertions.Q_ELEM_RETRANS_INTERVAL.getLocalPart(), namespaceURI);
- writer.writeCharacters(Long.toString(getRetransmissionInterval()));
- writer.writeEndElement();
-
- // <wsrm:MaximumRetransmissionCount />
- writer.writeStartElement(prefix, Sandesha2Constants.Assertions.Q_ELEM_MAX_RETRANS_COUNT.getLocalPart(), namespaceURI);
- writer.writeCharacters(Long.toString(getMaximumRetransmissionCount()));
- writer.writeEndElement();
-
- // <wsrm:ExponentialBackoff />
- writer.writeStartElement(prefix, Sandesha2Constants.Assertions.Q_ELEM_EXP_BACKOFF.getLocalPart(), namespaceURI);
- writer.writeCharacters(Boolean.toString(isExponentialBackoff()));
- writer.writeEndElement();
-
- // <wsrm:InactivityTimeout />
- writer.writeStartElement(prefix, Sandesha2Constants.Assertions.Q_ELEM_INACTIVITY_TIMEOUT.getLocalPart(), namespaceURI);
- writer.writeCharacters(Long.toString(getInactivityTimeoutInterval()));
- writer.writeEndElement();
-
- // <wsrm:InactivityTimeoutMeasure />
- writer.writeStartElement(prefix, Sandesha2Constants.Assertions.Q_ELEM_INACTIVITY_TIMEOUT_MEASURES.getLocalPart(), namespaceURI);
- writer.writeCharacters(inactivityTimeoutMeasure);
- writer.writeEndElement();
-
- // <wsrm:InvokeInOrder />
- writer.writeStartElement(prefix, Sandesha2Constants.Assertions.Q_ELEM_INVOKE_INORDER.getLocalPart(), namespaceURI);
- writer.writeCharacters(Boolean.toString(isInOrder()));
- writer.writeEndElement();
-
- // <wsrm:MessageTypesToDrop />
- writer.writeStartElement(prefix, Sandesha2Constants.Assertions.Q_ELEM_MSG_TYPES_TO_DROP.getLocalPart(), namespaceURI);
- writer.writeCharacters("none"); // FIXME
- writer.writeEndElement();
-
- // <wsrm:StorageManagers>
- writer.writeStartElement(prefix, Sandesha2Constants.Assertions.Q_ELEM_STORAGE_MGR.getLocalPart(), namespaceURI);
-
- // <wsrm:InMemoryStorageManager />
- writer.writeStartElement(prefix, Sandesha2Constants.Assertions.Q_ELEM_INMEMORY_STORAGE_MGR.getLocalPart(), namespaceURI);
- writer.writeCharacters(getInMemoryStorageManagerClass());
- writer.writeEndElement();
-
- // <wsrm:PermanentStorageManager />
- writer.writeStartElement(prefix, Sandesha2Constants.Assertions.Q_ELEM_PERMANENT_STORAGE_MGR.getLocalPart(), namespaceURI);
- writer.writeCharacters(getPermanentStorageManagerClass());
- writer.writeEndElement();
-
- // </wsrm:StorageManager>
- writer.writeEndElement();
-
- // <wsrm:SecurityManager />
- writer.writeStartElement(prefix, Sandesha2Constants.Assertions.Q_ELEM_SEC_MGR.getLocalPart(), namespaceURI);
- writer.writeCharacters(getSecurityManagerClass());
- writer.writeEndElement();
-
- // <wsrm:MakeConnection>
- writer.writeStartElement(prefix, Sandesha2Constants.Assertions.Q_ELEM_MAKE_CONNECTION.getLocalPart(), namespaceURI);
-
- // <wsrm:Enabled />
- writer.writeStartElement(prefix, Sandesha2Constants.Assertions.Q_ELEM_ENABLED.getLocalPart(), namespaceURI);
- writer.writeCharacters(Boolean.toString(isEnableMakeConnection()));
- writer.writeEndElement();
-
- // <wsrm:UseRMAnonURI />
- writer.writeStartElement(prefix, Sandesha2Constants.Assertions.Q_ELEM_USE_RM_ANON_URI.getLocalPart(), namespaceURI);
- writer.writeCharacters(Boolean.toString(isEnableRMAnonURI()));
- writer.writeEndElement();
-
- // </wsrm:MakeConnection>
- writer.writeEndElement();
-
- // <wsrm:UseMessageSerialization />
- writer.writeStartElement(prefix, Sandesha2Constants.Assertions.Q_ELEM_USE_SERIALIZATION.getLocalPart(), namespaceURI);
- writer.writeCharacters(Boolean.toString(isUseMessageSerialization()));
- writer.writeEndElement();
-
- // </wsp:Policy>
- writer.writeEndElement();
-
- // </wsrm:RMAssertion>
- writer.writeEndElement();
+ try {
+ String localName = Sandesha2Constants.Assertions.Q_ELEM_RMASSERTION
+ .getLocalPart();
+ String namespaceURI = Sandesha2Constants.Assertions.Q_ELEM_RMASSERTION
+ .getNamespaceURI();
+
+ String prefix = writer.getPrefix(namespaceURI);
+ if (prefix == null) {
+ prefix = Sandesha2Constants.Assertions.Q_ELEM_RMASSERTION
+ .getPrefix();
+ writer.setPrefix(prefix, namespaceURI);
+ }
+
+ // <wsrm:RMAssertion>
+ writer.writeStartElement(prefix, localName, namespaceURI);
+ // xmlns:wsrm=".."
+ writer.writeNamespace(prefix, namespaceURI);
+
+ String policyLocalName = Sandesha2Constants.Assertions.Q_ELEM_POLICY
+ .getLocalPart();
+ String policyNamespaceURI = Sandesha2Constants.Assertions.Q_ELEM_POLICY
+ .getNamespaceURI();
+ String wspPrefix = writer.getPrefix(policyNamespaceURI);
+
+ if (wspPrefix == null) {
+ wspPrefix = Sandesha2Constants.Assertions.Q_ELEM_POLICY.getPrefix();
+ writer.writeNamespace(wspPrefix, policyNamespaceURI);
+ }
+
+ // <wsp:Policy>
+ writer.writeStartElement(wspPrefix, policyLocalName, policyNamespaceURI);
+
+ // <wsrm:AcknowledgementInterval />
+ writer.writeStartElement(prefix, Sandesha2Constants.Assertions.Q_ELEM_ACK_INTERVAL.getLocalPart(), namespaceURI);
+ writer.writeCharacters(Long.toString(getAcknowledgementInterval()));
+ writer.writeEndElement();
+
+ // <wsrm:RetransmissionInterval />
+ writer.writeStartElement(prefix, Sandesha2Constants.Assertions.Q_ELEM_RETRANS_INTERVAL.getLocalPart(), namespaceURI);
+ writer.writeCharacters(Long.toString(getRetransmissionInterval()));
+ writer.writeEndElement();
+
+ // <wsrm:MaximumRetransmissionCount />
+ writer.writeStartElement(prefix, Sandesha2Constants.Assertions.Q_ELEM_MAX_RETRANS_COUNT.getLocalPart(), namespaceURI);
+ writer.writeCharacters(Long.toString(getMaximumRetransmissionCount()));
+ writer.writeEndElement();
+
+ // <wsrm:ExponentialBackoff />
+ writer.writeStartElement(prefix, Sandesha2Constants.Assertions.Q_ELEM_EXP_BACKOFF.getLocalPart(), namespaceURI);
+ writer.writeCharacters(Boolean.toString(isExponentialBackoff()));
+ writer.writeEndElement();
+
+ // <wsrm:InactivityTimeout />
+ writer.writeStartElement(prefix, Sandesha2Constants.Assertions.Q_ELEM_INACTIVITY_TIMEOUT.getLocalPart(), namespaceURI);
+ writer.writeCharacters(Long.toString(getInactivityTimeoutInterval()));
+ writer.writeEndElement();
+
+ // <wsrm:InactivityTimeoutMeasure />
+ writer.writeStartElement(prefix, Sandesha2Constants.Assertions.Q_ELEM_INACTIVITY_TIMEOUT_MEASURES.getLocalPart(), namespaceURI);
+ writer.writeCharacters(inactivityTimeoutMeasure);
+ writer.writeEndElement();
+
+ // <wsrm:InvokeInOrder />
+ writer.writeStartElement(prefix, Sandesha2Constants.Assertions.Q_ELEM_INVOKE_INORDER.getLocalPart(), namespaceURI);
+ writer.writeCharacters(Boolean.toString(isInOrder()));
+ writer.writeEndElement();
+
+ // <wsrm:MessageTypesToDrop />
+ writer.writeStartElement(prefix, Sandesha2Constants.Assertions.Q_ELEM_MSG_TYPES_TO_DROP.getLocalPart(), namespaceURI);
+ writer.writeCharacters("none"); // FIXME
+ writer.writeEndElement();
+
+ // <wsrm:StorageManagers>
+ writer.writeStartElement(prefix, Sandesha2Constants.Assertions.Q_ELEM_STORAGE_MGR.getLocalPart(), namespaceURI);
+
+ // <wsrm:InMemoryStorageManager />
+ writer.writeStartElement(prefix, Sandesha2Constants.Assertions.Q_ELEM_INMEMORY_STORAGE_MGR.getLocalPart(), namespaceURI);
+ writer.writeCharacters(getInMemoryStorageManagerClass());
+ writer.writeEndElement();
+
+ // <wsrm:PermanentStorageManager />
+ writer.writeStartElement(prefix, Sandesha2Constants.Assertions.Q_ELEM_PERMANENT_STORAGE_MGR.getLocalPart(), namespaceURI);
+ writer.writeCharacters(getPermanentStorageManagerClass());
+ writer.writeEndElement();
+
+ // </wsrm:StorageManager>
+ writer.writeEndElement();
+
+ // <wsrm:SecurityManager />
+ writer.writeStartElement(prefix, Sandesha2Constants.Assertions.Q_ELEM_SEC_MGR.getLocalPart(), namespaceURI);
+ writer.writeCharacters(getSecurityManagerClass());
+ writer.writeEndElement();
+
+ // <wsrm:MakeConnection>
+ writer.writeStartElement(prefix, Sandesha2Constants.Assertions.Q_ELEM_MAKE_CONNECTION.getLocalPart(), namespaceURI);
+
+ // <wsrm:Enabled />
+ writer.writeStartElement(prefix, Sandesha2Constants.Assertions.Q_ELEM_ENABLED.getLocalPart(), namespaceURI);
+ writer.writeCharacters(Boolean.toString(isEnableMakeConnection()));
+ writer.writeEndElement();
+
+ // <wsrm:UseRMAnonURI />
+ writer.writeStartElement(prefix, Sandesha2Constants.Assertions.Q_ELEM_USE_RM_ANON_URI.getLocalPart(), namespaceURI);
+ writer.writeCharacters(Boolean.toString(isEnableRMAnonURI()));
+ writer.writeEndElement();
+
+ // </wsrm:MakeConnection>
+ writer.writeEndElement();
+
+ // <wsrm:UseMessageSerialization />
+ writer.writeStartElement(prefix, Sandesha2Constants.Assertions.Q_ELEM_USE_SERIALIZATION.getLocalPart(), namespaceURI);
+ writer.writeCharacters(Boolean.toString(isUseMessageSerialization()));
+ writer.writeEndElement();
+
+ // <wsrm:EnforceRM />
+ writer.writeStartElement(prefix, Sandesha2Constants.Assertions.Q_ELEM_ENFORCE_RM.getLocalPart(), namespaceURI);
+ writer.writeCharacters(Boolean.toString(isEnforceRM()));
+ writer.writeEndElement();
+
+ // </wsp:Policy>
+ writer.writeEndElement();
+
+ // </wsrm:RMAssertion>
+ writer.writeEndElement();
+ } catch (SandeshaException e) {
+ throw new XMLStreamException (e);
+ }
}
@@ -289,24 +326,47 @@
return Constants.TYPE_ASSERTION;
}
- public boolean isExponentialBackoff() {
- return exponentialBackoff;
+ public boolean isExponentialBackoff() throws SandeshaException {
+ if (isExponentialBackoffSet()) {
+ return exponentialBackoff;
+ } else if (parent!=null) {
+ return parent.isExponentialBackoff ();
+ } else {
+ String message = SandeshaMessageHelper.getMessage(SandeshaMessageKeys.policyHasNotBeenSet, Sandesha2Constants.Assertions.ELEM_EXP_BACKOFF);
+ throw new SandeshaException (message);
+ }
}
public void setExponentialBackoff(boolean exponentialBackoff) {
this.exponentialBackoff = exponentialBackoff;
+ setExponentialBackoffSet(true);
}
- public long getRetransmissionInterval() {
- return retransmissionInterval;
+ public long getRetransmissionInterval() throws SandeshaException {
+ if (isRetransmissionIntervalSet()) {
+ return retransmissionInterval;
+ } else if (parent!=null) {
+ return parent.getRetransmissionInterval();
+ } else {
+ String message = SandeshaMessageHelper.getMessage(SandeshaMessageKeys.policyHasNotBeenSet, Sandesha2Constants.Assertions.ELEM_RETRANS_INTERVAL);
+ throw new SandeshaException (message);
+ }
}
public void setRetransmissionInterval(long retransmissionInterval) {
this.retransmissionInterval = retransmissionInterval;
+ setRetransmissionIntervalSet(true);
}
- public long getAcknowledgementInterval() {
- return acknowledgementInterval;
+ public long getAcknowledgementInterval() throws SandeshaException {
+ if (isAcknowledgementIntervalSet()) {
+ return acknowledgementInterval;
+ } else if (parent!=null) {
+ return parent.getAcknowledgementInterval();
+ } else {
+ String message = SandeshaMessageHelper.getMessage(SandeshaMessageKeys.policyHasNotBeenSet, Sandesha2Constants.Assertions.ELEM_ACK_INTERVAL);
+ throw new SandeshaException (message);
+ }
}
public long getInactivityTimeoutInterval() {
@@ -319,6 +379,7 @@
public void setInactiveTimeoutValue(long inactiveTimeoutValue) {
this.inactiveTimeoutValue = inactiveTimeoutValue;
+ setInactiveTimeoutValueSet(true);
}
public void setInactivityTimeoutMeasure(String inactivityTimeoutMeasure) {
@@ -331,6 +392,7 @@
public void setEnableMakeConnection(boolean enableMakeConnection) {
this.enableMakeConnection = enableMakeConnection;
+ setEnableMakeConnectionSet(true);
}
public boolean isEnableRMAnonURI() {
@@ -339,14 +401,23 @@
public void setEnableRMAnonURI(boolean enableRMAnonURI) {
this.enableRMAnonURI = enableRMAnonURI;
+ setEnableRMAnonURISet(true);
}
- public boolean isUseMessageSerialization() {
- return useMessageSerialization;
+ public boolean isUseMessageSerialization() throws SandeshaException {
+ if (isUseMessageSerializationSet ()) {
+ return useMessageSerialization;
+ } else if (parent!=null) {
+ return parent.isUseMessageSerialization();
+ } else {
+ String message = SandeshaMessageHelper.getMessage(SandeshaMessageKeys.policyHasNotBeenSet, Sandesha2Constants.Assertions.ELEM_USE_SERIALIZATION);
+ throw new SandeshaException (message);
+ }
}
public void setUseMessageSerialization(boolean useMessageSerialization) {
this.useMessageSerialization = useMessageSerialization;
+ setUseMessageSerializationSet(true);
}
public boolean equal(PolicyComponent policyComponent) {
@@ -354,4 +425,118 @@
return false;
}
+ public boolean isEnforceRM() throws SandeshaException {
+ if (isEnforceRMSet ()) {
+ return enforceRM;
+ } else if (parent!=null) {
+ return parent.isEnforceRM();
+ } else {
+ String message = SandeshaMessageHelper.getMessage(SandeshaMessageKeys.policyHasNotBeenSet, Sandesha2Constants.Assertions.ELEM_ENFORCE_RM);
+ throw new SandeshaException (message);
+ }
+ }
+
+ public void setEnforceRM(boolean enforceRM) {
+ this.enforceRM = enforceRM;
+ setEnforceRMSet(true);
+ }
+
+ protected boolean isAcknowledgementIntervalSet() {
+ return acknowledgementIntervalSet;
+ }
+
+ protected void setAcknowledgementIntervalSet(boolean acknowledgementIntervalSet) {
+ this.acknowledgementIntervalSet = acknowledgementIntervalSet;
+ }
+
+ protected boolean isEnableMakeConnectionSet() {
+ return enableMakeConnectionSet;
+ }
+
+ protected void setEnableMakeConnectionSet(boolean enableMakeConnectionSet) {
+ this.enableMakeConnectionSet = enableMakeConnectionSet;
+ }
+
+ protected boolean isEnableRMAnonURISet() {
+ return enableRMAnonURISet;
+ }
+
+ protected void setEnableRMAnonURISet(boolean enableRMAnonURISet) {
+ this.enableRMAnonURISet = enableRMAnonURISet;
+ }
+
+ protected boolean isEnforceRMSet() {
+ return enforceRMSet;
+ }
+
+ protected void setEnforceRMSet(boolean enforceRMSet) {
+ this.enforceRMSet = enforceRMSet;
+ }
+
+ protected boolean isExponentialBackoffSet() {
+ return exponentialBackoffSet;
+ }
+
+ protected void setExponentialBackoffSet(boolean exponentialBackoffSet) {
+ this.exponentialBackoffSet = exponentialBackoffSet;
+ }
+
+ protected boolean isInactiveTimeoutValueSet() {
+ return inactiveTimeoutValueSet;
+ }
+
+ protected void setInactiveTimeoutValueSet(boolean inactiveTimeoutValueSet) {
+ this.inactiveTimeoutValueSet = inactiveTimeoutValueSet;
+ }
+
+ protected boolean isInactivityTimeoutIntervalSet() {
+ return inactivityTimeoutIntervalSet;
+ }
+
+ protected void setInactivityTimeoutIntervalSet(
+ boolean inactivityTimeoutIntervalSet) {
+ this.inactivityTimeoutIntervalSet = inactivityTimeoutIntervalSet;
+ }
+
+ protected boolean isInOrderSet() {
+ return inOrderSet;
+ }
+
+ protected void setInOrderSet(boolean inOrderSet) {
+ this.inOrderSet = inOrderSet;
+ }
+
+ protected boolean isMaximumRetransmissionCountSet() {
+ return maximumRetransmissionCountSet;
+ }
+
+ protected void setMaximumRetransmissionCountSet(
+ boolean maximumRetransmissionCountSet) {
+ this.maximumRetransmissionCountSet = maximumRetransmissionCountSet;
+ }
+
+ protected boolean isRetransmissionIntervalSet() {
+ return retransmissionIntervalSet;
+ }
+
+ protected void setRetransmissionIntervalSet(boolean retransmissionIntervalSet) {
+ this.retransmissionIntervalSet = retransmissionIntervalSet;
+ }
+
+ protected boolean isUseMessageSerializationSet() {
+ return useMessageSerializationSet;
+ }
+
+ protected void setUseMessageSerializationSet(boolean useMessageSerializationSet) {
+ this.useMessageSerializationSet = useMessageSerializationSet;
+ }
+
+ public SandeshaPolicyBean getParent() {
+ return parent;
+ }
+
+ public void setParent(SandeshaPolicyBean parent) {
+ this.parent = parent;
+ }
+
}
Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/policy/builders/RMAssertionBuilder.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/policy/builders/RMAssertionBuilder.java?view=diff&rev=503447&r1=503446&r2=503447
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/policy/builders/RMAssertionBuilder.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/policy/builders/RMAssertionBuilder.java Sun Feb 4 09:47:18 2007
@@ -151,6 +151,9 @@
} else if (Sandesha2Constants.Assertions.ELEM_USE_SERIALIZATION.equals(name)) {
String value = element.getText().trim();
propertyBean.setUseMessageSerialization(Boolean.valueOf(value).booleanValue());
+ } else if (Sandesha2Constants.Assertions.ELEM_ENFORCE_RM.equals(name)) {
+ String value = element.getText().trim();
+ propertyBean.setEnforceRM (Boolean.valueOf(value).booleanValue());
}
}
}
Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/MessageRetransmissionAdjuster.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/MessageRetransmissionAdjuster.java?view=diff&rev=503447&r1=503446&r2=503447
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/MessageRetransmissionAdjuster.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/MessageRetransmissionAdjuster.java Sun Feb 4 09:47:18 2007
@@ -104,7 +104,7 @@
* @param policyBean
* @return
*/
- private static SenderBean adjustNextRetransmissionTime(SenderBean retransmitterBean, SandeshaPolicyBean propertyBean) {
+ private static SenderBean adjustNextRetransmissionTime(SenderBean retransmitterBean, SandeshaPolicyBean propertyBean) throws SandeshaException {
// long lastSentTime = retransmitterBean.getTimeToSend();
Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/PropertyManager.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/PropertyManager.java?view=diff&rev=503447&r1=503446&r2=503447
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/PropertyManager.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/PropertyManager.java Sun Feb 4 09:47:18 2007
@@ -67,6 +67,8 @@
propertyBean.setEnableMakeConnection(Sandesha2Constants.Properties.DefaultValues.EnableMakeConnection);
propertyBean.setEnableRMAnonURI(Sandesha2Constants.Properties.DefaultValues.EnableRMAnonURI);
propertyBean.setUseMessageSerialization(Sandesha2Constants.Properties.DefaultValues.UseMessageSerialization);
+ propertyBean.setEnforceRM(Sandesha2Constants.Properties.DefaultValues.enforceRM);
+
return propertyBean;
}
@@ -227,69 +229,7 @@
}
propertyBean = (SandeshaPolicyBean) assertion;
-
-// RMPolicyProcessor processor = new RMPolicyProcessor();
-//
-// try {
-// processor.setup();
-// } catch (NoSuchMethodException e) {
-// throw new SandeshaException(e);
-// }
-//
-// processor.processPolicy(policy);
-//
-// RMProcessorContext ctx = processor.getContext();
-// PolicyEngineData data = ctx.readCurrentPolicyEngineData();
-//
-// if (data.isAcknowledgementIntervalSet())
-// propertyBean.setAcknowledgementInterval(data.getAcknowledgementInterval());
-// else
-// propertyBean.setAcknowledgementInterval(parentPropertyBean.getAcknowledgementInterval());
-//
-// if (data.isExponentialBackoffSet())
-// propertyBean.setExponentialBackoff(data.isExponentialBackoff());
-// else
-// propertyBean.setExponentialBackoff(parentPropertyBean.isExponentialBackoff());
-//
-// // Inactivity timeout given in the policy will affect only if it gives
-// // both the measure and the value.
-// // Otherwise value will be taken from the parent.
-// if (data.isInactivityTimeoutSet() && data.isInactivityTimeoutMeassureSet())
-// propertyBean.setInactiveTimeoutInterval(data.getInactivityTimeout(), data.getInactivityTimeoutMeassure());
-// else
-// propertyBean.setInactiveTimeoutInterval(parentPropertyBean.getInactiveTimeoutInterval());
-//
-// if (data.isInvokeInOrderSet())
-// propertyBean.setInOrder(data.isInvokeInOrder());
-// else
-// propertyBean.setInOrder(parentPropertyBean.isInOrder());
-//
-// if (data.isMaximumRetransmissionCountSet())
-// propertyBean.setMaximumRetransmissionCount(data.getMaximumRetransmissionCount());
-// else
-// propertyBean.setMaximumRetransmissionCount(parentPropertyBean.getMaximumRetransmissionCount());
-//
-// if (data.isRetransmissionIntervalSet())
-// propertyBean.setRetransmissionInterval(data.getRetransmissionInterval());
-// else
-// propertyBean.setRetransmissionInterval(parentPropertyBean.getRetransmissionInterval());
-//
-// if (data.isInMemoryStorageManagerSet())
-// propertyBean.setInMemoryStorageManagerClass(data.getInMemoryStorageManager());
-// else
-// propertyBean.setInMemoryStorageManagerClass(data.getInMemoryStorageManager());
-//
-// if (data.isPermanentStorageManagerSet())
-// propertyBean.setPermanentStorageManagerClass(data.getPermanentStorageManager());
-// else
-// propertyBean.setPermanentStorageManagerClass(data.getPermanentStorageManager());
-//
-// if (data.isMessageTypesToDropSet())
-// loadMessageTypesToDrop(data.getMessageTypesToDrop(), propertyBean);
-// else
-// propertyBean.setMsgTypesToDrop(parentPropertyBean.getMsgTypesToDrop());
-//
-// propertyBean.setSecurityManagerClass(data.getSecurityManager());
+ propertyBean.setParent(parentPropertyBean);
return propertyBean;
}
@@ -315,7 +255,7 @@
boolean found = false;
- for (Iterator assertions = assertionList.iterator(); iterator.hasNext();) {
+ for (Iterator assertions = assertionList.iterator(); assertions.hasNext();) {
assertion = (Assertion) assertions.next();
if (assertion instanceof SandeshaPolicyBean) {
@@ -330,76 +270,16 @@
}
propertyBean = (SandeshaPolicyBean) assertion;
-//
-// RMPolicyProcessor processor = new RMPolicyProcessor();
-//
-// try {
-// processor.setup();
-// } catch (NoSuchMethodException e) {
-// throw new SandeshaException(e.getMessage());
-// }
-//
-// processor.processPolicy(policy);
-//
-// RMProcessorContext ctx = processor.getContext();
-// PolicyEngineData data = ctx.readCurrentPolicyEngineData();
-//
-// if (data.isAcknowledgementIntervalSet())
-// propertyBean.setAcknowledgementInterval(data.getAcknowledgementInterval());
-// else
-// propertyBean.setAcknowledgementInterval(parentPropertyBean.getAcknowledgementInterval());
-//
-// if (data.isExponentialBackoffSet())
-// propertyBean.setExponentialBackoff(data.isExponentialBackoff());
-// else
-// propertyBean.setExponentialBackoff(parentPropertyBean.isExponentialBackoff());
-//
-// // Inactivity timeout given in the policy will affect only if it gives
-// // both the measure and the value.
-// // Otherwise value will be taken from the parent.
-// if (data.isInactivityTimeoutSet() && data.isInactivityTimeoutMeassureSet())
-// propertyBean.setInactiveTimeoutInterval(data.getInactivityTimeout(), data.getInactivityTimeoutMeassure());
-// else
-// propertyBean.setInactiveTimeoutInterval(parentPropertyBean.getInactiveTimeoutInterval());
-//
-// if (data.isInvokeInOrderSet())
-// propertyBean.setInOrder(data.isInvokeInOrder());
-// else
-// propertyBean.setInOrder(parentPropertyBean.isInOrder());
-//
-// if (data.isMaximumRetransmissionCountSet())
-// propertyBean.setMaximumRetransmissionCount(data.getMaximumRetransmissionCount());
-// else
-// propertyBean.setMaximumRetransmissionCount(parentPropertyBean.getMaximumRetransmissionCount());
-//
-// if (data.isRetransmissionIntervalSet())
-// propertyBean.setRetransmissionInterval(data.getRetransmissionInterval());
-// else
-// propertyBean.setRetransmissionInterval(parentPropertyBean.getRetransmissionInterval());
-//
-// // if (data.isStorageManagerSet())
-// // propertyBean.setStorageManagerClass(data.getStorageManager());
-// // else
-// // propertyBean.setStorageManagerClass(data.getStorageManager());
-//
-// if (data.isInMemoryStorageManagerSet())
-// propertyBean.setInMemoryStorageManagerClass(data.getInMemoryStorageManager());
-// else
-// propertyBean.setInMemoryStorageManagerClass(data.getInMemoryStorageManager());
-//
-// if (data.isPermanentStorageManagerSet())
-// propertyBean.setPermanentStorageManagerClass(data.getPermanentStorageManager());
-// else
-// propertyBean.setPermanentStorageManagerClass(data.getPermanentStorageManager());
-//
-// if (data.isMessageTypesToDropSet())
-// loadMessageTypesToDrop(data.getMessageTypesToDrop(), propertyBean);
-// else
-// propertyBean.setMsgTypesToDrop(parentPropertyBean.getMsgTypesToDrop());
-//
-// propertyBean.setSecurityManagerClass(data.getSecurityManager());
-
- return propertyBean;
+
+ if (propertyBean!=parentPropertyBean) {
+ propertyBean.setParent(parentPropertyBean);
+ return propertyBean;
+ } else {
+ //propertyBean and parent being the same object means that there is no policy in this level, this is simply the reflection of
+ //the parent.
+ return null;
+ }
+
}
public static void reloadFromPropertyFile(InputStream stream) throws SandeshaException {
@@ -492,19 +372,6 @@
}
}
- // /**
- // * Loads the StorageManager class name.
- // *
- // * @param properties
- // */
- // private static void loadStoragemanagerClass(String storageMgrClassStr,
- // SandeshaPropertyBean propertyBean) throws SandeshaException {
- // if (storageMgrClassStr != null) {
- // storageMgrClassStr = storageMgrClassStr.trim();
- // propertyBean.setStorageManagerClass(storageMgrClassStr);
- // }
- // }
-
/**
* Loads the InMemoryStorageManager class name.
*
@@ -604,5 +471,5 @@
propertyBean.setSecurityManagerClass(securityManagerClassStr);
}
}
-
+
}
Modified: webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/PropertyLoaderTest.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/PropertyLoaderTest.java?view=diff&rev=503447&r1=503446&r2=503447
==============================================================================
--- webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/PropertyLoaderTest.java (original)
+++ webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/PropertyLoaderTest.java Sun Feb 4 09:47:18 2007
@@ -46,17 +46,17 @@
}
- public void testRetransmissionInterval () {
+ public void testRetransmissionInterval () throws SandeshaException {
long value = propertyBean.getRetransmissionInterval();
assertEquals(value,20000);
}
- public void testExponentialBackOff () {
+ public void testExponentialBackOff () throws SandeshaException {
boolean value = propertyBean.isExponentialBackoff();
assertEquals(value,false);
}
- public void testAcknowledgementInterval () {
+ public void testAcknowledgementInterval () throws SandeshaException {
long value = propertyBean.getAcknowledgementInterval();
assertEquals(value,8000);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org