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);
}
}