// Let the component implementation create it
if (supportsFeedEntries) {
// The service implementation supports feed entries, pass the entry to it
Message requestMessage = messageFactory.createMessage();
requestMessage.setBody(new Object[] {feedEntry});
Message responseMessage = postInvoker.invoke(requestMessage);
if (responseMessage.isFault()) {
throw new ServletException((Throwable)responseMessage.getBody());
}
createdFeedEntry = responseMessage.getBody();
} else {
// The service implementation does not support feed entries, pass the data item to it
Message requestMessage = messageFactory.createMessage();
Entry<Object, Object> entry = entry(feedEntry, itemClassType, itemXMLType, mediator);
requestMessage.setBody(new Object[] {entry.getKey(), entry.getData()});
Message responseMessage = postInvoker.invoke(requestMessage);
if (responseMessage.isFault()) {
throw new ServletException((Throwable)responseMessage.getBody());
}
entry.setKey(responseMessage.getBody());
createdFeedEntry = feedEntry(entry, itemClassType, itemXMLType, mediator, abderaFactory);
}
} else if (contentType != null) {
// Create a new media entry
// Get incoming headers
String title = request.getHeader("Title");
String slug = request.getHeader("Slug");
// Let the component implementation create the media entry
Message requestMessage = messageFactory.createMessage();
requestMessage.setBody(new Object[] {title, slug, contentType, request.getInputStream()});
Message responseMessage = postMediaInvoker.invoke(requestMessage);
if (responseMessage.isFault()) {
throw new ServletException((Throwable)responseMessage.getBody());
}
createdFeedEntry = responseMessage.getBody();
// Transfer media info to response header.
// Summary is a comma separated list of header properties.
String summary = createdFeedEntry.getSummary();
addPropertiesToHeader( response, summary );