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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]