public void handleSubscriptionRequest()

in modules/core/src/main/java/org/apache/savan/atom/AtomMessageReceiverDelegator.java [68:119]


    public void handleSubscriptionRequest(SavanMessageContext subscriptionMessage,
                                          MessageContext outMessage) throws SavanException {
        try {
            if (outMessage != null) {
                MessageContext subscriptionMsgCtx = subscriptionMessage.getMessageContext();

                SOAPEnvelope outMessageEnvelope =
                        findOrCreateSoapEnvelope(subscriptionMessage, outMessage);
                //setting the action
                outMessage.getOptions().setAction(AtomConstants.Actions.SubscribeResponse);

                CreateFeedResponseDocument createFeedResponseDocument =
                        CreateFeedResponseDocument.Factory.newInstance();
                CreateFeedResponse createFeedResponse =
                        createFeedResponseDocument.addNewCreateFeedResponse();
                EndpointReferenceType savenEpr = createFeedResponse.addNewSubscriptionManager();
                savenEpr.addNewAddress()
                        .setStringValue(subscriptionMsgCtx.getOptions().getTo().getAddress());

                String id = (String)subscriptionMessage
                        .getProperty(AtomConstants.TransferedProperties.SUBSCRIBER_UUID);
                if (id != null) {
                    XmlCursor c = savenEpr.addNewReferenceParameters().newCursor();
                    c.toNextToken();
                    addNameValuePair(c, new QName(AtomConstants.ATOM_NAMESPACE,
                                                  AtomConstants.ElementNames.Identifier), id);
                } else {
                    throw new SavanException("Subscription UUID is not set");
                }

//				HttpServletRequest request = (HttpServletRequest) subscriptionMessage.getProperty(HTTPConstants.MC_HTTP_SERVLETREQUEST);
//				request.getServerPort()


                createFeedResponse.setFeedUrl(
                        (String)subscriptionMessage.getProperty(AtomConstants.Properties.feedUrl));
                outMessageEnvelope.getBody().addChild(CommonUtil.toOM(createFeedResponseDocument));
            } else {
                throw new SavanException(
                        "Eventing protocol need to sent the SubscriptionResponseMessage. But the outMessage is null");
            }
            //setting the message type
            outMessage.setProperty(SavanConstants.MESSAGE_TYPE, new Integer(
                    SavanConstants.MessageTypes.SUBSCRIPTION_RESPONSE_MESSAGE));
        } catch (SOAPProcessingException e) {
            throw new SavanException(e);
        } catch (AxisFault e) {
            throw new SavanException(e);
        } catch (OMException e) {
            throw new SavanException(e);
        }
    }