in modules/core/src/main/java/org/apache/savan/eventing/EventingMessageReceiverDelegator.java [129:195]
private void handleRenewRequest(SavanMessageContext renewMessage, MessageContext outMessage)
throws SavanException {
if (outMessage == null)
throw new SavanException("Missing outMessage for Renew");
MessageContext subscriptionMsgCtx = renewMessage.getMessageContext();
SOAPEnvelope outMessageEnvelope = outMessage.getEnvelope();
SOAPFactory factory;
if (outMessageEnvelope != null) {
factory = (SOAPFactory)outMessageEnvelope.getOMFactory();
} else {
factory = (SOAPFactory)subscriptionMsgCtx.getEnvelope().getOMFactory();
outMessageEnvelope = factory.getDefaultEnvelope();
try {
outMessage.setEnvelope(outMessageEnvelope);
} catch (AxisFault e) {
throw new SavanException(e);
}
}
//setting the action
outMessage.getOptions().setAction(EventingConstants.Actions.RenewResponse);
OMNamespace ens = factory.createOMNamespace(EventingConstants.EVENTING_NAMESPACE,
EventingConstants.EVENTING_PREFIX);
//sending the Renew Response message.
OMElement renewResponseElement =
factory.createOMElement(EventingConstants.ElementNames.RenewResponse, ens);
String subscriberID = (String)renewMessage
.getProperty(EventingConstants.TransferedProperties.SUBSCRIBER_UUID);
if (subscriberID == null) {
String message = "SubscriberID TransferedProperty is not set";
throw new SavanException(message);
}
SubscriberStore store =
CommonUtil.getSubscriberStore(renewMessage.getMessageContext().getAxisService());
Subscriber subscriber = store.retrieve(subscriberID);
EventingSubscriber eventingSubscriber = (EventingSubscriber)subscriber;
if (eventingSubscriber == null) {
String message = "Cannot find the AbstractSubscriber with the given ID";
throw new SavanException(message);
}
Date expiration = eventingSubscriber.getSubscriptionEndingTime();
Calendar calendar = Calendar.getInstance();
calendar.setTime(expiration);
String expiresValue = ConverterUtil.convertToString(calendar);
if (expiresValue != null) {
OMElement expiresElement =
factory.createOMElement(EventingConstants.ElementNames.Expires, ens);
renewResponseElement.addChild(expiresElement);
}
outMessageEnvelope.getBody().addChild(renewResponseElement);
//setting the message type
outMessage.setProperty(SavanConstants.MESSAGE_TYPE,
SavanConstants.MessageTypes.RENEW_RESPONSE_MESSAGE);
}