}
processor.processPolicy(policy);
RMProcessorContext ctx = processor.getContext();
PolicyEngineData data = ctx.readCurrentPolicyEngineData();
if (data.isAcknowledgementIntervalSet())
propertyBean.setAcknowledgementInterval(data.getAcknowledgementInterval());
else
propertyBean.setAcknowledgementInterval(parentPropertyBean.getAcknowledgementInaterval());
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.isMessageTypesToDropSet())
loadMessageTypesToDrop(data.getMessageTypesToDrop(),propertyBean);
else
propertyBean.setMsgTypesToDrop(parentPropertyBean.getMsgTypesToDrop());
return propertyBean;
}