[Yanel-commits] rev 45483 -
public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet
michi at wyona.com
michi at wyona.com
Fri Nov 13 16:19:41 CET 2009
Author: michi
Date: 2009-11-13 16:19:41 +0100 (Fri, 13 Nov 2009)
New Revision: 45483
Modified:
public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java
Log:
get page meta info refactored such that it also works if comment and user are null
Modified: public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java
===================================================================
--- public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java 2009-11-13 14:45:31 UTC (rev 45482)
+++ public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java 2009-11-13 15:19:41 UTC (rev 45483)
@@ -26,6 +26,8 @@
import javax.xml.transform.sax.TransformerHandler;
import javax.xml.transform.stream.StreamSource;
+import org.wyona.commons.xml.XMLHelper;
+
import org.wyona.neutron.XMLExceptionV1;
import org.wyona.yanel.core.ResourceTypeIdentifier;
@@ -287,7 +289,7 @@
if (checkoutUserID.equals(userID)) {
try {
versionable.cancelCheckout();
- log.warn("DEBUG: Lock has been released.");
+ log.debug("Lock has been released.");
} catch (Exception e) {
throw new ServletException("Releasing the lock of <" + resource.getPath() + "> failed because of: " + e.getMessage(), e);
}
@@ -492,7 +494,10 @@
Element noLastModifiedElement = (Element) resourceElement.appendChild(doc.createElement("no-last-modified"));
}
- appendRevisionsAndWorkflow(doc, resourceElement, res, request);
+ // Get the revisions, but only in the meta usecase (because of performance reasons)
+ if (request.getParameter(RESOURCE_META_ID_PARAM_NAME) != null) {
+ appendRevisionsAndWorkflow(doc, resourceElement, res, request);
+ }
if (ResourceAttributeHelper.hasAttributeImplemented(res, "Translatable", "1")) {
TranslatableV1 translatable = ((TranslatableV1) res);
@@ -1379,7 +1384,7 @@
String yanelFormat = request.getParameter("yanel.format");
if(yanelFormat != null && yanelFormat.equals("xml")) {
response.setContentType("application/xml; charset=" + DEFAULT_ENCODING);
- org.wyona.commons.xml.XMLHelper.writeDocument(doc, response.getOutputStream());
+ XMLHelper.writeDocument(doc, response.getOutputStream());
/*
OutputStream out = response.getOutputStream();
javax.xml.transform.TransformerFactory.newInstance().newTransformer().transform(new javax.xml.transform.dom.DOMSource(doc), new javax.xml.transform.stream.StreamResult(out));
@@ -1570,7 +1575,7 @@
* Create a DOM Document
*/
static public Document getDocument(String namespace, String localname) throws Exception {
- return org.wyona.commons.xml.XMLHelper.createDocument(namespace, localname);
+ return XMLHelper.createDocument(namespace, localname);
}
private Realm getRealm(HttpServletRequest request) throws Exception {
@@ -2324,53 +2329,60 @@
*
*/
private void appendRevisionsAndWorkflow(Document doc, Element resourceElement, Resource res, HttpServletRequest request) throws Exception {
- if (ResourceAttributeHelper.hasAttributeImplemented(res, "Versionable", "2")) {
- // retrieve the revisions, but only in the meta usecase (for performance reasons):
- if (request.getParameter(RESOURCE_META_ID_PARAM_NAME) != null) {
- RevisionInformation[] revisionsInfo = ((VersionableV2)res).getRevisions();
- Element revisionsElement = (Element) resourceElement.appendChild(doc.createElement("revisions"));
+ if (ResourceAttributeHelper.hasAttributeImplemented(res, "Versionable", "2")) {
- WorkflowableV1 workflowableResource = null;
- Workflow workflow = null;
- String liveRevisionName = null;
- if (ResourceAttributeHelper.hasAttributeImplemented(res, "Workflowable", "1")) {
- workflowableResource = (WorkflowableV1)res;
- workflow = WorkflowHelper.getWorkflow(res);
- liveRevisionName = WorkflowHelper.getLiveRevision(res);
- }
+ WorkflowableV1 workflowableResource = null;
+ Workflow workflow = null;
+ String liveRevisionName = null;
+ if (ResourceAttributeHelper.hasAttributeImplemented(res, "Workflowable", "1")) {
+ workflowableResource = (WorkflowableV1)res;
+ workflow = WorkflowHelper.getWorkflow(res);
+ liveRevisionName = WorkflowHelper.getLiveRevision(res);
+ }
- if (revisionsInfo != null && revisionsInfo.length > 0) {
- for (int i = revisionsInfo.length - 1; i >= 0; i--) {
- Element revisionElement = (Element) revisionsElement.appendChild(doc.createElement("revision"));
- Element revisionNameElement = (Element) revisionElement.appendChild(doc.createElement("name"));
- revisionNameElement.appendChild(doc.createTextNode(revisionsInfo[i].getName()));
- Element revisionDateElement = (Element) revisionElement.appendChild(doc.createElement("date"));
- revisionDateElement.appendChild(doc.createTextNode(DateUtil.format(revisionsInfo[i].getDate())));
- Element revisionUserElement = (Element) revisionElement.appendChild(doc.createElement("user"));
- revisionUserElement.appendChild(doc.createTextNode(revisionsInfo[i].getUser()));
- Element revisionCommentElement = (Element) revisionElement.appendChild(doc.createElement("comment"));
- revisionCommentElement.appendChild(doc.createTextNode(revisionsInfo[i].getComment()));
+ RevisionInformation[] revisionsInfo = ((VersionableV2)res).getRevisions();
+ Element revisionsElement = (Element) resourceElement.appendChild(doc.createElement("revisions"));
+ if (revisionsInfo != null && revisionsInfo.length > 0) {
+ for (int i = revisionsInfo.length - 1; i >= 0; i--) {
+ Element revisionElement = (Element) revisionsElement.appendChild(doc.createElement("revision"));
+ log.debug("Revision: " + revisionsInfo[i].getName());
+ revisionElement.appendChild(XMLHelper.createTextElement(doc, "name", revisionsInfo[i].getName(), null));
+ log.debug("Date: " + revisionsInfo[i].getDate());
+ revisionElement.appendChild(XMLHelper.createTextElement(doc, "date", "" + revisionsInfo[i].getDate(), null));
+
+ if (revisionsInfo[i].getUser() != null) {
+ log.debug("User: " + revisionsInfo[i].getUser());
+ revisionElement.appendChild(XMLHelper.createTextElement(doc, "user", revisionsInfo[i].getUser(), null));
+ } else {
+ revisionElement.appendChild(doc.createElement("no-user"));
+ }
- // Add workflow info
- if (workflowableResource != null && workflow != null) {
- Element revisionWorkflowElement = (Element) revisionElement.appendChild(doc.createElement("workflow-state"));
- String wfState = workflowableResource.getWorkflowState(revisionsInfo[i].getName());
- if (wfState == null) {
- wfState = workflow.getInitialState();
- }
- if (liveRevisionName != null && revisionsInfo[i].getName().equals(liveRevisionName)) {
- revisionWorkflowElement.appendChild(doc.createTextNode(wfState + " (LIVE)"));
- } else {
- revisionWorkflowElement.appendChild(doc.createTextNode(wfState));
- }
- }
- }
- } else {
- Element noRevisionsYetElement = (Element) resourceElement.appendChild(doc.createElement("no-revisions-yet"));
- }
- }
+ if (revisionsInfo[i].getComment() != null) {
+ log.debug("Comment: " + revisionsInfo[i].getComment());
+ revisionElement.appendChild(XMLHelper.createTextElement(doc, "comment", revisionsInfo[i].getComment(), null));
} else {
- Element notVersionableElement = (Element) resourceElement.appendChild(doc.createElement("not-versionable"));
+ revisionElement.appendChild(doc.createElement("no-comment"));
}
+
+ // Add workflow info
+ if (workflowableResource != null && workflow != null) {
+ Element revisionWorkflowElement = (Element) revisionElement.appendChild(doc.createElement("workflow-state"));
+ String wfState = workflowableResource.getWorkflowState(revisionsInfo[i].getName());
+ if (wfState == null) {
+ wfState = workflow.getInitialState();
+ }
+ if (liveRevisionName != null && revisionsInfo[i].getName().equals(liveRevisionName)) {
+ revisionWorkflowElement.appendChild(doc.createTextNode(wfState + " (LIVE)"));
+ } else {
+ revisionWorkflowElement.appendChild(doc.createTextNode(wfState));
+ }
+ }
+ }
+ } else {
+ Element noRevisionsYetElement = (Element) resourceElement.appendChild(doc.createElement("no-revisions-yet"));
+ }
+ } else {
+ Element notVersionableElement = (Element) resourceElement.appendChild(doc.createElement("not-versionable"));
+ }
}
}
More information about the Yanel-commits
mailing list