You are viewing a plain text version of this content. The canonical link for it is here.
Posted to sandesha-dev@ws.apache.org by ga...@apache.org on 2007/02/02 16:38:01 UTC
svn commit: r502628 - in /webservices/sandesha/trunk/java:
src/org/apache/sandesha2/ src/org/apache/sandesha2/i18n/
src/org/apache/sandesha2/msgprocessors/ src/org/apache/sandesha2/util/
src/org/apache/sandesha2/wsrm/ test/src/org/apache/sandesha2/faul...
Author: gatfora
Date: Fri Feb 2 07:38:00 2007
New Revision: 502628
URL: http://svn.apache.org/viewvc?view=rev&rev=502628
Log:
Add support for generating the MessageRolledOver Fault
Modified:
webservices/sandesha/trunk/java/src/org/apache/sandesha2/FaultData.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.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/msgprocessors/SequenceProcessor.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/FaultManager.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SOAPFaultEnvelopeCreator.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/FaultCode.java
webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/faulttests/InvalidAcknowledgementTest.java
Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/FaultData.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/FaultData.java?view=diff&rev=502628&r1=502627&r2=502628
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/FaultData.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/FaultData.java Fri Feb 2 07:38:00 2007
@@ -36,12 +36,15 @@
private OMElement detail;
+ private OMElement detail2;
+
private String detailString;
private String sequenceId;
private String exceptionString;
+
public OMElement getDetail() {
return detail;
}
@@ -50,6 +53,14 @@
this.detail = detail;
}
+ public void setDetail2(OMElement detail2) {
+ this.detail2 = detail2;
+ }
+
+ public OMElement getDetail2() {
+ return detail2;
+ }
+
public String getReason() {
return reason;
}
@@ -105,4 +116,5 @@
public void setExceptionString(String exceptionString) {
this.exceptionString = exceptionString;
}
+
}
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=502628&r1=502627&r2=502628
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java Fri Feb 2 07:38:00 2007
@@ -156,6 +156,8 @@
String IDENTIFIER = "Identifier";
+ String MAX_MSG_NUMBER = "MaxMessageNumber";
+
String ACCEPT = "Accept";
String NONE = "None";
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=502628&r1=502627&r2=502628
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/SandeshaMessageKeys.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/SandeshaMessageKeys.java Fri Feb 2 07:38:00 2007
@@ -290,5 +290,6 @@
public final static String createSequenceRefused = "createSequenceRefused";
public final static String referencedMessageNotFound = "referencedMessageNotFound";
+ public final static String messageNumberRollover = "messageNumberRollover";
}
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=502628&r1=502627&r2=502628
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/resource.properties (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/resource.properties Fri Feb 2 07:38:00 2007
@@ -299,3 +299,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.
Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/SequenceProcessor.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/SequenceProcessor.java?view=diff&rev=502628&r1=502627&r2=502628
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/SequenceProcessor.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/SequenceProcessor.java Fri Feb 2 07:38:00 2007
@@ -124,6 +124,7 @@
log.debug("Exit: SequenceProcessor::processReliableMessage, Unknown sequence");
return InvocationResponse.ABORT;
}
+
// setting mustUnderstand to false.
sequence.setMustUnderstand(false);
@@ -132,8 +133,17 @@
// throwing a fault if the sequence is closed.
FaultManager.checkForSequenceClosed(rmMsgCtx, sequenceId, bean);
FaultManager.checkForLastMsgNumberExceeded(rmMsgCtx, storageManager);
-
+
long msgNo = sequence.getMessageNumber().getMessageNumber();
+
+ if (FaultManager.checkForMessageRolledOver(rmMsgCtx, sequenceId, msgNo)) {
+
+ if (log.isDebugEnabled())
+ log.debug("Exit: SequenceProcessor::processReliableMessage, Message rolled over " + msgNo);
+
+ return InvocationResponse.ABORT;
+ }
+
if (msgNo == 0) {
String message = SandeshaMessageHelper.getMessage(SandeshaMessageKeys.invalidMsgNumber, Long
.toString(msgNo));
Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/FaultManager.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/FaultManager.java?view=diff&rev=502628&r1=502627&r2=502628
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/FaultManager.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/FaultManager.java Fri Feb 2 07:38:00 2007
@@ -296,7 +296,7 @@
if (log.isDebugEnabled())
log.debug("Enter: FaultManager::makeCreateSequenceRefusedFault, " + detail);
- // Return an UnknownSequence error
+ // Return a CreateSequenceRefused error
MessageContext messageContext = rmMessageContext.getMessageContext();
int SOAPVersion = SandeshaUtil.getSOAPVersion(messageContext.getEnvelope());
@@ -541,5 +541,49 @@
return axisFault;
}
+
+ /**
+ * Checks to see if the message number received is == to the Long.MAX_VALUE
+ *
+ * Throws and AxisFault, or sends a Fault message if the condition is met.
+ * @throws AxisFault
+ */
+ public static boolean checkForMessageRolledOver(RMMsgContext rmMessageContext, String sequenceId, long msgNo)
+
+ throws AxisFault {
+ if (msgNo == Long.MAX_VALUE) {
+ if (log.isDebugEnabled())
+ log.debug("Max message number reached " + msgNo);
+ // Return a CreateSequenceRefused error
+ MessageContext messageContext = rmMessageContext.getMessageContext();
+
+ int SOAPVersion = SandeshaUtil.getSOAPVersion(messageContext.getEnvelope());
+
+ FaultData data = new FaultData();
+ data.setCode(SOAP11Constants.FAULT_CODE_SENDER);
+ data.setSubcode(Sandesha2Constants.SOAPFaults.Subcodes.MESSAGE_NUMBER_ROLEOVER);
+
+ SOAPFactory factory = SOAPAbstractFactory.getSOAPFactory(SOAPVersion);
+ OMElement identifierElement = factory.createOMElement(Sandesha2Constants.WSRM_COMMON.IDENTIFIER,
+ rmMessageContext.getRMNamespaceValue(), Sandesha2Constants.WSRM_COMMON.NS_PREFIX_RM);
+ identifierElement.setText(sequenceId);
+
+ OMElement maxMsgNumber = factory.createOMElement(Sandesha2Constants.WSRM_COMMON.MAX_MSG_NUMBER,
+ rmMessageContext.getRMNamespaceValue(), Sandesha2Constants.WSRM_COMMON.NS_PREFIX_RM);
+ maxMsgNumber.setText(Long.toString(msgNo));
+
+ data.setDetail(identifierElement);
+ data.setDetail2(maxMsgNumber);
+
+ data.setReason(SandeshaMessageHelper.getMessage(SandeshaMessageKeys.messageNumberRollover));
+
+ data.setType(Sandesha2Constants.SOAPFaults.FaultType.MESSAGE_NUMBER_ROLLOVER);
+
+ getOrSendFault(rmMessageContext, data);
+
+ return true;
+ }
+ return false;
+ }
}
Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SOAPFaultEnvelopeCreator.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SOAPFaultEnvelopeCreator.java?view=diff&rev=502628&r1=502627&r2=502628
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SOAPFaultEnvelopeCreator.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SOAPFaultEnvelopeCreator.java Fri Feb 2 07:38:00 2007
@@ -90,11 +90,11 @@
if (faultType == Sandesha2Constants.SOAPFaults.FaultType.CREATE_SEQUENCE_REFUSED)
sequenceFault = true;
-
- if (faultType == Sandesha2Constants.SOAPFaults.FaultType.UNKNOWN_SEQUENCE)
+ else if (faultType == Sandesha2Constants.SOAPFaults.FaultType.UNKNOWN_SEQUENCE)
sequenceFault = true;
-
- if (faultType == Sandesha2Constants.SOAPFaults.FaultType.INVALID_ACKNOWLEDGEMENT)
+ else if (faultType == Sandesha2Constants.SOAPFaults.FaultType.INVALID_ACKNOWLEDGEMENT)
+ sequenceFault = true;
+ else if (faultType == Sandesha2Constants.SOAPFaults.FaultType.MESSAGE_NUMBER_ROLLOVER)
sequenceFault = true;
return sequenceFault;
@@ -118,8 +118,10 @@
faultCode.setFaultCode(faultData.getSubcode());
if (faultData.getDetailString() != null)
faultCode.setDetail(faultData.getDetailString());
- else
+ else {
faultCode.setDetailOMElement(faultData.getDetail());
+ faultCode.setExtendedDetailOMElement(faultData.getDetail2());
+ }
sequenceFault.setFaultCode(faultCode);
sequenceFault.toOMElement(faultMessageContext.getEnvelope().getHeader());
Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/FaultCode.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/FaultCode.java?view=diff&rev=502628&r1=502627&r2=502628
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/FaultCode.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/FaultCode.java Fri Feb 2 07:38:00 2007
@@ -41,6 +41,8 @@
private String detail;
private OMElement detailOMElement;
+
+ private OMElement extendedDetailOMElement;
public FaultCode(String namespaceValue) throws SandeshaException {
if (!isNamespaceSupported(namespaceValue))
@@ -113,6 +115,10 @@
if (detail != null)
detailElement.setText(detail);
+ if (extendedDetailOMElement != null) {
+ detailElement.addChild(extendedDetailOMElement);
+ }
+
sequenceFault.addChild(detailElement);
return sequenceFault;
@@ -142,6 +148,14 @@
this.detailOMElement = detailOMElement;
}
+ public void setExtendedDetailOMElement(OMElement detail2) {
+ this.extendedDetailOMElement = detail2;
+ }
+
+ public OMElement getExtendedDetailOMElement() {
+ return extendedDetailOMElement;
+ }
+
public boolean isNamespaceSupported (String namespaceName) {
if (Sandesha2Constants.SPEC_2005_02.NS_URI.equals(namespaceName))
return true;
@@ -151,5 +165,6 @@
return false;
}
+
}
Modified: webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/faulttests/InvalidAcknowledgementTest.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/faulttests/InvalidAcknowledgementTest.java?view=diff&rev=502628&r1=502627&r2=502628
==============================================================================
--- webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/faulttests/InvalidAcknowledgementTest.java (original)
+++ webservices/sandesha/trunk/java/test/src/org/apache/sandesha2/faulttests/InvalidAcknowledgementTest.java Fri Feb 2 07:38:00 2007
@@ -143,8 +143,6 @@
*/
public void testInvalidAcknowledgementFromBeanNotSentSOAPFault() throws Exception {
- org.apache.log4j.BasicConfigurator.configure();
-
// Create an RMS on the service.
StorageManager storageManager =
SandeshaUtil.getSandeshaStorageManager(serverConfigContext, serverConfigContext.getAxisConfiguration());
@@ -276,4 +274,5 @@
return bean;
}
}
+
---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org