public CreateFeedResponse createFeed()

in modules/core/src/main/java/org/apache/savan/atom/AtomEventingClient.java [70:121]


    public CreateFeedResponse createFeed(String title, String author,
                                         Calendar expiredTime, String xpathFilter)
            throws AxisFault {
        try {
            serviceClient.getOptions().setAction(
                    AtomConstants.Actions.Subscribe);

            CreateFeedDocument createFeedDocument = CreateFeedDocument.Factory
                    .newInstance();
            CreateFeed createFeed = createFeedDocument.addNewCreateFeed();

            createFeed.setAuthor(author);
            createFeed.setTitle(title);

            if (expiredTime != null) {
                createFeed.setExpires(expiredTime);
            }
            if (xpathFilter != null) {
                FilterType filter = createFeed.addNewFilter();
                filter.setDialect(XPathBasedFilter.XPATH_BASED_FILTER);
                filter.setStringValue(xpathFilter);
            }

            OMElement request = CommonUtil.toOM(createFeedDocument);
            request.build();
            OMElement element = serviceClient.sendReceive(request);
            CreateFeedResponseDocument createFeedResponseDocument =
                    CreateFeedResponseDocument.Factory
                            .parse(element.getXMLStreamReader());
            System.out.println(createFeedDocument.xmlText());

            // read epr for subscription from response and store it
            OMElement responseAsOM = CommonUtil
                    .toOM(createFeedResponseDocument);
            OMElement eprAsOM = responseAsOM.getFirstChildWithName(new QName(
                    AtomConstants.ATOM_MSG_NAMESPACE, "SubscriptionManager"));

            feedEpr = new EndpointReference(eprAsOM.getFirstElement().getText());
            OMElement referanceParameters = eprAsOM
                    .getFirstChildWithName(new QName(eprAsOM.getFirstElement()
                            .getNamespace().getNamespaceURI(),
                                                     AddressingConstants.EPR_REFERENCE_PARAMETERS));
            Iterator refparams = referanceParameters.getChildElements();
            while (refparams.hasNext()) {
                feedEpr.addReferenceParameter((OMElement)refparams.next());
            }

            return createFeedResponseDocument.getCreateFeedResponse();
        } catch (XmlException e) {
            throw AxisFault.makeFault(e);
        }
    }