Uses of Class
org.apache.sandesha2.SandeshaException

Packages that use SandeshaException
org.apache.sandesha2   
org.apache.sandesha2.client   
org.apache.sandesha2.msgprocessors   
org.apache.sandesha2.polling   
org.apache.sandesha2.security   
org.apache.sandesha2.security.dummy   
org.apache.sandesha2.security.rampart   
org.apache.sandesha2.storage   
org.apache.sandesha2.storage.beanmanagers   
org.apache.sandesha2.storage.inmemory   
org.apache.sandesha2.util   
org.apache.sandesha2.wsrm   
 

Uses of SandeshaException in org.apache.sandesha2
 

Methods in org.apache.sandesha2 that throw SandeshaException
static void MessageValidator.validateMessage(RMMsgContext rmMsg, StorageManager storageManager)
           
 IOMRMPart RMMsgContext.getMessagePart(int partId)
           
 void RMMsgContext.setSOAPEnvelop(org.apache.axiom.soap.SOAPEnvelope envelope)
           
 void RMMsgContext.setAddressingNamespaceValue(java.lang.String addressingNamespaceValue)
           
 

Uses of SandeshaException in org.apache.sandesha2.client
 

Methods in org.apache.sandesha2.client that throw SandeshaException
static SequenceReport SandeshaClient.getOutgoingSequenceReport(org.apache.axis2.client.ServiceClient serviceClient)
          Users can get a SequenceReport of the sequence defined by the information given from the passed serviceClient object.
static SequenceReport SandeshaClient.getOutgoingSequenceReport(java.lang.String to, java.lang.String sequenceKey, org.apache.axis2.context.ConfigurationContext configurationContext)
           
static SequenceReport SandeshaClient.getOutgoingSequenceReport(java.lang.String internalSequenceID, org.apache.axis2.context.ConfigurationContext configurationContext)
           
static java.util.ArrayList SandeshaClient.getIncomingSequenceReports(org.apache.axis2.context.ConfigurationContext configCtx)
          Users can get a list of sequenceReports each describing a incoming sequence, which are the sequences the client work as a RMD.
static SandeshaReport SandeshaClient.getSandeshaReport(org.apache.axis2.context.ConfigurationContext configurationContext)
          SandeshaReport gives the details of all incoming and outgoing sequences.
static void SandeshaClient.createSequence(org.apache.axis2.client.ServiceClient serviceClient, boolean offer, java.lang.String sequenceKey)
          This could be used to create sequences with a given sequence key.
static java.lang.String SandeshaClient.createSequence(org.apache.axis2.client.ServiceClient serviceClient, boolean offer)
          Clients can use this to create a sequence sequence.
static void SandeshaClient.terminateSequence(org.apache.axis2.client.ServiceClient serviceClient)
          User can terminate the sequence defined by the passed serviceClient.
static void SandeshaClient.terminateSequence(org.apache.axis2.client.ServiceClient serviceClient, java.lang.String sequenceKey)
           
static void SandeshaClient.closeSequence(org.apache.axis2.client.ServiceClient serviceClient)
          User can close the sequence defined by the passed serviceClient.
static void SandeshaClient.closeSequence(org.apache.axis2.client.ServiceClient serviceClient, java.lang.String sequenceKey)
           
static void SandeshaClient.waitUntilSequenceCompleted(org.apache.axis2.client.ServiceClient serviceClient)
          This blocks the system until the messages u have sent hv been completed.
static void SandeshaClient.waitUntilSequenceCompleted(org.apache.axis2.client.ServiceClient serviceClient, java.lang.String sequenceKey)
           
static void SandeshaClient.waitUntilSequenceCompleted(org.apache.axis2.client.ServiceClient serviceClient, long maxWaitingTime)
          This blocks the system until the messages u have sent hv been completed or until the given time interval exceeds.
static void SandeshaClient.waitUntilSequenceCompleted(org.apache.axis2.client.ServiceClient serviceClient, long maxWaitingTime, java.lang.String sequenceKey)
           
static java.lang.String SandeshaClient.getSequenceID(org.apache.axis2.client.ServiceClient serviceClient)
           
static void SandeshaClient.sendAckRequest(org.apache.axis2.client.ServiceClient serviceClient)
           
static void SandeshaClient.sendAckRequest(org.apache.axis2.client.ServiceClient serviceClient, java.lang.String sequenceKey)
           
static SequenceReport SandeshaClient.getIncomingSequenceReport(java.lang.String sequenceID, org.apache.axis2.context.ConfigurationContext configCtx)
           
 

Uses of SandeshaException in org.apache.sandesha2.msgprocessors
 

Methods in org.apache.sandesha2.msgprocessors that throw SandeshaException
 boolean TerminateSeqResponseMsgProcessor.processOutMessage(RMMsgContext rmMsgCtx)
           
 org.apache.axis2.addressing.EndpointReference ApplicationMsgProcessor.resolveAcksToValue(RMMsgContext rmMsgCtx, java.lang.String addressingAnonymousURI)
           
 boolean CreateSeqResponseMsgProcessor.processOutMessage(RMMsgContext rmMsgCtx)
           
 

Uses of SandeshaException in org.apache.sandesha2.polling
 

Methods in org.apache.sandesha2.polling that throw SandeshaException
 void PollingManager.start(org.apache.axis2.context.ConfigurationContext configurationContext)
          Starts the PollingManager.
 

Uses of SandeshaException in org.apache.sandesha2.security
 

Methods in org.apache.sandesha2.security that throw SandeshaException
abstract  SecurityToken SecurityManager.getSecurityToken(org.apache.axis2.context.MessageContext message)
          Get a security token to secure an outbound create sequence message.
abstract  SecurityToken SecurityManager.getSecurityToken(org.apache.axiom.om.OMElement theSTR, org.apache.axis2.context.MessageContext message)
          Get a security token, from a SecurityTokenReference within an inbound message.
abstract  org.apache.axiom.om.OMElement SecurityManager.createSecurityTokenReference(SecurityToken token, org.apache.axis2.context.MessageContext message)
          Create a SecurityTokenReference, suitable for inclusion in the given message.
abstract  void SecurityManager.checkProofOfPossession(SecurityToken token, org.apache.axiom.om.OMElement messagePart, org.apache.axis2.context.MessageContext message)
          Check that the given element of the message demonstrated proof of possession of the given token.
abstract  java.lang.String SecurityManager.getTokenRecoveryData(SecurityToken token)
          Write the data from this token in to a String.
abstract  SecurityToken SecurityManager.recoverSecurityToken(java.lang.String tokenData)
          Reconstruct a token from a String.
 

Uses of SandeshaException in org.apache.sandesha2.security.dummy
 

Methods in org.apache.sandesha2.security.dummy that throw SandeshaException
 void DummySecurityManager.checkProofOfPossession(SecurityToken token, org.apache.axiom.om.OMElement messagePart, org.apache.axis2.context.MessageContext message)
           
 java.lang.String DummySecurityManager.getTokenRecoveryData(SecurityToken token)
           
 SecurityToken DummySecurityManager.recoverSecurityToken(java.lang.String tokenData)
           
 SecurityToken DummySecurityManager.getSecurityToken(org.apache.axiom.om.OMElement theSTR, org.apache.axis2.context.MessageContext message)
           
 org.apache.axiom.om.OMElement DummySecurityManager.createSecurityTokenReference(SecurityToken token, org.apache.axis2.context.MessageContext message)
           
 

Uses of SandeshaException in org.apache.sandesha2.security.rampart
 

Methods in org.apache.sandesha2.security.rampart that throw SandeshaException
 void RampartBasedSecurityManager.checkProofOfPossession(SecurityToken token, org.apache.axiom.om.OMElement messagePart, org.apache.axis2.context.MessageContext message)
           
 org.apache.axiom.om.OMElement RampartBasedSecurityManager.createSecurityTokenReference(SecurityToken token, org.apache.axis2.context.MessageContext message)
           
 SecurityToken RampartBasedSecurityManager.getSecurityToken(org.apache.axis2.context.MessageContext message)
           
 SecurityToken RampartBasedSecurityManager.getSecurityToken(org.apache.axiom.om.OMElement theSTR, org.apache.axis2.context.MessageContext message)
           
 java.lang.String RampartBasedSecurityManager.getTokenRecoveryData(SecurityToken token)
           
 SecurityToken RampartBasedSecurityManager.recoverSecurityToken(java.lang.String tokenData)
           
 

Uses of SandeshaException in org.apache.sandesha2.storage
 

Subclasses of SandeshaException in org.apache.sandesha2.storage
 class SandeshaStorageException
          To easily track exceptions happening in the storage area.
 

Uses of SandeshaException in org.apache.sandesha2.storage.beanmanagers
 

Methods in org.apache.sandesha2.storage.beanmanagers that throw SandeshaException
 InvokerBean InvokerBeanMgr.findUnique(InvokerBean bean)
           
 RMDBean RMDBeanMgr.findUnique(RMDBean bean)
           
 RMSBean RMSBeanMgr.findUnique(RMSBean bean)
           
 SenderBean SenderBeanMgr.findUnique(SenderBean bean)
           
 SequencePropertyBean SequencePropertyBeanMgr.findUnique(SequencePropertyBean bean)
           
 

Uses of SandeshaException in org.apache.sandesha2.storage.inmemory
 

Methods in org.apache.sandesha2.storage.inmemory that throw SandeshaException
 SenderBean InMemorySenderBeanMgr.findUnique(SenderBean bean)
           
 InvokerBean InMemoryInvokerBeanMgr.findUnique(InvokerBean bean)
           
 RMDBean InMemoryRMDBeanMgr.findUnique(RMDBean bean)
           
 RMSBean InMemoryRMSBeanMgr.findUnique(RMSBean bean)
           
 SequencePropertyBean InMemorySequencePropertyBeanMgr.findUnique(SequencePropertyBean bean)
           
 

Uses of SandeshaException in org.apache.sandesha2.util
 

Methods in org.apache.sandesha2.util that return SandeshaException
 SandeshaException FaultManager.checkForCreateSequenceRefused(org.apache.axis2.context.MessageContext createSequenceMessage, StorageManager storageManager)
          Check weather the CreateSequence should be refused and generate the fault if it should.
 SandeshaException FaultManager.checkForLastMsgNumberExceeded(RMMsgContext applicationRMMessage, StorageManager storageManager)
          Check weather the LastMessage number has been exceeded and generate the fault if it is.
 SandeshaException FaultManager.checkForUnknownSequence(RMMsgContext rmMessageContext, java.lang.String sequenceID, StorageManager storageManager)
          Check whether a Sequence message (a) belongs to a unknown sequence (generates an UnknownSequence fault) (b) message number exceeds a predifined limit ( genenrates a Message Number Rollover fault)
 SandeshaException FaultManager.checkForInvalidAcknowledgement(RMMsgContext ackRMMessageContext, StorageManager storageManager)
          Check weather the Acknowledgement is invalid and generate a fault if it is.
 SandeshaException FaultManager.checkForSequenceClosed(RMMsgContext referenceRMMessage, java.lang.String sequenceID, StorageManager storageManager)
           
 SandeshaException FaultManager.getFault(RMMsgContext referenceRMMsgContext, FaultData data, java.lang.String addressingNamespaceURI, StorageManager storageManager)
          Adds the necessary Fault elements as properties to the message context.
 

Methods in org.apache.sandesha2.util that throw SandeshaException
static void TerminateManager.cleanReceivingSideOnTerminateMessage(org.apache.axis2.context.ConfigurationContext configContext, java.lang.String sequencePropertyKey, java.lang.String sequenceId, StorageManager storageManager)
          Called by the receiving side to remove data related to a sequence.
static void TerminateManager.cleanReceivingSideAfterInvocation(org.apache.axis2.context.ConfigurationContext configContext, java.lang.String sequencePropertyKey, java.lang.String sequenceId, StorageManager storageManager)
          When InOrder invocation is anabled this had to be called to clean the data left by the above method.
static void TerminateManager.terminateSendingSide(org.apache.axis2.context.ConfigurationContext configContext, java.lang.String sequencePropertyKey, java.lang.String internalSequenceID, boolean serverSide, StorageManager storageManager)
          This is called by the sending side to clean data related to a sequence.
static void TerminateManager.timeOutSendingSideSequence(org.apache.axis2.context.ConfigurationContext context, java.lang.String sequencePropertyKey, java.lang.String internalSequenceId, boolean serverside, StorageManager storageManager)
           
static void SOAPFaultEnvelopeCreator.addSOAPFaultEnvelope(org.apache.axis2.context.MessageContext faultMsgContext, int SOAPVersion, FaultData faultData, java.lang.String rmNamespaceValue)
          Adding the SOAP Fault Envelope.
static void AcknowledgementManager.piggybackAcksIfPresent(RMMsgContext rmMessageContext, StorageManager storageManager)
          Piggybacks any available acks of the same sequence to the given application message.
static java.util.ArrayList AcknowledgementManager.getClientCompletedMessagesList(java.lang.String sequenceID, SequencePropertyBeanMgr seqPropMgr)
          this is used to get the acked messages of a sequence.
static java.util.ArrayList AcknowledgementManager.getServerCompletedMessagesList(java.lang.String sequenceID, SequencePropertyBeanMgr seqPropMgr)
           
static java.util.ArrayList SandeshaUtil.getAckRangeArrayList(java.lang.String msgNoStr, org.apache.axiom.soap.SOAPFactory factory, java.lang.String rmNamespaceValue)
          Used to convert a message number list (a comma seperated list of message numbers) into a set of AcknowledgementRanges.
static void SandeshaUtil.startPollingManager(org.apache.axis2.context.ConfigurationContext configurationContext)
           
static java.lang.String SandeshaUtil.getServerSideIncomingSeqIdFromInternalSeqId(java.lang.String internalSequenceId)
           
static StorageManager SandeshaUtil.getSandeshaStorageManager(org.apache.axis2.context.ConfigurationContext context, org.apache.axis2.description.AxisDescription description)
          Used to obtain the storage Manager Implementation.
static StorageManager SandeshaUtil.getInMemoryStorageManager(org.apache.axis2.context.ConfigurationContext context)
           
static StorageManager SandeshaUtil.getPermanentStorageManager(org.apache.axis2.context.ConfigurationContext context)
           
static int SandeshaUtil.getSOAPVersion(org.apache.axiom.soap.SOAPEnvelope envelope)
           
static org.apache.axis2.context.MessageContext SandeshaUtil.createNewRelatedMessageContext(RMMsgContext referenceRMMessage, org.apache.axis2.description.AxisOperation operation)
           
static SandeshaPolicyBean SandeshaUtil.getDefaultPropertyBean(org.apache.axis2.engine.AxisConfiguration axisConfiguration)
           
static java.util.ArrayList SandeshaUtil.getArrayListFromString(java.lang.String str)
           
static java.util.ArrayList SandeshaUtil.getArrayListFromMsgsString(java.lang.String str)
           
static java.lang.String SandeshaUtil.getSequenceIDFromInternalSequenceID(java.lang.String internalSequenceID, StorageManager storageManager)
           
static javax.xml.namespace.QName SandeshaUtil.getQNameFromString(java.lang.String qnameStr)
           
static java.util.ArrayList SandeshaUtil.getExecutionChainFromString(java.lang.String executionChainStr, org.apache.axis2.context.ConfigurationContext configContext)
           
static void SandeshaUtil.printSOAPEnvelope(org.apache.axiom.soap.SOAPEnvelope envelope, java.io.OutputStream out)
           
static java.lang.String SandeshaUtil.getRMVersion(java.lang.String propertyKey, StorageManager storageManager)
           
static java.lang.String SandeshaUtil.getSequenceProperty(java.lang.String id, java.lang.String name, StorageManager storageManager)
           
static boolean SandeshaUtil.isAllMsgsAckedUpto(long highestInMsgNo, java.lang.String sequencePropertyKey, StorageManager storageManager)
           
static SandeshaPolicyBean SandeshaUtil.getPropertyBean(org.apache.axis2.description.AxisDescription axisDescription)
           
static java.lang.String SandeshaUtil.getSequenceIDFromRMMessage(RMMsgContext rmMessageContext)
           
static SecurityManager SandeshaUtil.getSecurityManager(org.apache.axis2.context.ConfigurationContext context)
           
static void SandeshaUtil.shedulePollingRequest(java.lang.String sequenceId, org.apache.axis2.context.ConfigurationContext configurationContext)
           
static void SequenceManager.setupNewClientSequence(org.apache.axis2.context.MessageContext firstAplicationMsgCtx, java.lang.String sequencePropertyKey, java.lang.String specVersion, StorageManager storageManager)
           
static void SequenceManager.updateLastActivatedTime(java.lang.String sequencePropertyKey, StorageManager storageManager)
          Takes the internalSeqID as the param.
static long SequenceManager.getLastActivatedTime(java.lang.String propertyKey, StorageManager storageManager)
           
static boolean SequenceManager.hasSequenceTimedOut(java.lang.String propertyKey, RMMsgContext rmMsgCtx, StorageManager storageManager)
           
static long SequenceManager.getOutGoingSequenceAckedMessageCount(java.lang.String sequencePropertyKey, StorageManager storageManager)
           
static boolean SequenceManager.isOutGoingSequenceCompleted(java.lang.String internalSequenceID, StorageManager storageManager)
           
static boolean SequenceManager.isIncomingSequenceCompleted(java.lang.String sequenceID, StorageManager storageManager)
           
static SandeshaPolicyBean PropertyManager.loadPropertiesFromDefaultValues()
           
static SandeshaPolicyBean PropertyManager.loadPropertiesFromPropertyFile(java.io.InputStream in)
           
static SandeshaPolicyBean PropertyManager.loadPropertiesFromModuleDesc(org.apache.axis2.description.AxisModule desc)
           
static SandeshaPolicyBean PropertyManager.loadPropertiesFromModuleDescPolicy(org.apache.axis2.description.AxisModule desc, SandeshaPolicyBean parentPropertyBean)
           
static SandeshaPolicyBean PropertyManager.loadPropertiesFromAxisDescription(org.apache.axis2.description.AxisDescription desc, SandeshaPolicyBean parentPropertyBean)
           
static void PropertyManager.reloadFromPropertyFile(java.io.InputStream stream)
           
static java.lang.String SpecSpecificConstants.getSpecVersionString(java.lang.String namespaceValue)
           
static java.lang.String SpecSpecificConstants.getRMNamespaceValue(java.lang.String specVersion)
           
static java.lang.String SpecSpecificConstants.getCreateSequenceAction(java.lang.String specVersion)
           
static java.lang.String SpecSpecificConstants.getCreateSequenceResponseAction(java.lang.String specVersion)
           
static java.lang.String SpecSpecificConstants.getTerminateSequenceAction(java.lang.String specVersion)
           
static java.lang.String SpecSpecificConstants.getTerminateSequenceResponseAction(java.lang.String specVersion)
           
static java.lang.String SpecSpecificConstants.getCloseSequenceAction(java.lang.String specVersion)
           
static java.lang.String SpecSpecificConstants.getCloseSequenceResponseAction(java.lang.String specVersion)
           
static java.lang.String SpecSpecificConstants.getAckRequestAction(java.lang.String specVersion)
           
static java.lang.String SpecSpecificConstants.getSequenceAcknowledgementAction(java.lang.String specVersion)
           
static java.lang.String SpecSpecificConstants.getMakeConnectionAction(java.lang.String specVersion)
           
static java.lang.String SpecSpecificConstants.getCreateSequenceSOAPAction(java.lang.String specVersion)
           
static java.lang.String SpecSpecificConstants.getCreateSequenceResponseSOAPAction(java.lang.String specVersion)
           
static java.lang.String SpecSpecificConstants.getTerminateSequenceSOAPAction(java.lang.String specVersion)
           
static java.lang.String SpecSpecificConstants.getTerminateSequenceResponseSOAPAction(java.lang.String specVersion)
           
static java.lang.String SpecSpecificConstants.getAckRequestSOAPAction(java.lang.String specVersion)
           
static java.lang.String SpecSpecificConstants.getSequenceAcknowledgementSOAPAction(java.lang.String specVersion)
           
static boolean SpecSpecificConstants.isTerminateSequenceResponseRequired(java.lang.String specVersion)
           
static boolean SpecSpecificConstants.isLastMessageIndicatorRequired(java.lang.String specVersion)
           
static boolean SpecSpecificConstants.isAckFinalAllowed(java.lang.String specVersion)
           
static boolean SpecSpecificConstants.isAckNoneAllowed(java.lang.String specVersion)
           
static boolean SpecSpecificConstants.isSequenceClosingAllowed(java.lang.String specVersion)
           
static java.lang.String SpecSpecificConstants.getAddressingAnonymousURI(java.lang.String addressingNSURI)
           
static java.lang.String SpecSpecificConstants.getAddressingFaultAction(java.lang.String addressingNSURI)
           
 

Uses of SandeshaException in org.apache.sandesha2.wsrm
 

Methods in org.apache.sandesha2.wsrm that throw SandeshaException
 java.lang.Object AckRequested.fromOMElement(org.apache.axiom.om.OMElement ackReqElement)
           
 java.lang.Object TerminateSequence.fromOMElement(org.apache.axiom.om.OMElement body)
           
 java.lang.Object TerminateSequenceResponse.fromOMElement(org.apache.axiom.om.OMElement body)
           
 void MessagePending.toSOAPEnvelope(org.apache.axiom.soap.SOAPEnvelope envelope)
           
 java.lang.Object MessagePending.fromOMElement(org.apache.axiom.om.OMElement messagePendingElement)
           
 org.apache.axiom.om.OMElement MessagePending.toOMElement(org.apache.axiom.om.OMElement headerElement)
           
 java.lang.Object UsesSequenceSTR.fromOMElement(org.apache.axiom.om.OMElement usesSequenceStrElement)
           
 org.apache.axiom.om.OMElement UsesSequenceSTR.toOMElement(org.apache.axiom.om.OMElement header)
           
 void UsesSequenceSTR.toSOAPEnvelope(org.apache.axiom.soap.SOAPEnvelope envelope)
           
 java.lang.Object CloseSequence.fromOMElement(org.apache.axiom.om.OMElement body)
           
 java.lang.Object SequenceAcknowledgement.fromOMElement(org.apache.axiom.om.OMElement sequenceAckElement)
           
 org.apache.axiom.om.OMElement SequenceAcknowledgement.toOMElement(org.apache.axiom.om.OMElement header)
           
 void SequenceAcknowledgement.toSOAPEnvelope(org.apache.axiom.soap.SOAPEnvelope envelope)
           
 void MakeConnection.toSOAPEnvelope(org.apache.axiom.soap.SOAPEnvelope envelope)
           
 org.apache.axiom.om.OMElement MakeConnection.toOMElement(org.apache.axiom.om.OMElement body)
           
 java.lang.Object CloseSequenceResponse.fromOMElement(org.apache.axiom.om.OMElement body)
           
 java.lang.Object Sequence.fromOMElement(org.apache.axiom.om.OMElement sequencePart)
           
 java.lang.Object SequenceFault.fromOMElement(org.apache.axiom.om.OMElement body)
           
 

Constructors in org.apache.sandesha2.wsrm that throw SandeshaException
AckFinal(java.lang.String namespaceValue)
           
CreateSequence(java.lang.String rmNamespaceValue, java.lang.String addressingNamespaceValue)
           
CreateSequence(AcksTo acksTo, org.apache.axiom.soap.SOAPFactory factory, java.lang.String rmNamespaceValue, java.lang.String addressingNamespaceValue)
           
SequenceOffer(java.lang.String namespaceValue)
           
AckRequested(java.lang.String namespaceValue)
           
AckNone(java.lang.String namespaceValue)
           
TerminateSequence(java.lang.String namespaceValue)
           
TerminateSequenceResponse(java.lang.String namespaceValue)
           
Identifier(java.lang.String namespaceValue)
           
MessagePending(java.lang.String namespaceValue)
           
UsesSequenceSTR(org.apache.axiom.soap.SOAPFactory factory, java.lang.String namespaceValue)
           
CloseSequence(java.lang.String namespaceValue)
           
MessageNumber(java.lang.String namespaceValue)
           
Accept(java.lang.String rmNamespaceValue, java.lang.String addressingNamespaceValue)
           
SequenceAcknowledgement(java.lang.String namespaceValue)
           
Expires(java.lang.String namespaceValue)
           
Nack(java.lang.String namespaceValue)
           
MakeConnection(java.lang.String namespaceValue)
           
FaultCode(java.lang.String namespaceValue)
           
LastMessage(java.lang.String namespaceValue)
           
AcknowledgementRange(java.lang.String namespaceValue)
           
CloseSequenceResponse(java.lang.String namespaceValue)
           
Sequence(java.lang.String namespaceValue)
           
SequenceFault(java.lang.String namespaceValue)
           
CreateSequenceResponse(java.lang.String rmNamespaceValue, java.lang.String addressingNamespaceValue)
           
 



Copyright © 2005-2006 Apache Web Services. All Rights Reserved.