Änderung der Verabeitung von ContentBundles in RelatedLinks
Durch Einführung und Verwendung von ContentItemXMLRenderer weerden ContentBundles bei der Erzeugung der XML-Ausgabe zur ausgehandelten Sprache aufgelöst und statt des ContentBundles dieses neue Objekt ausgeben. Es ist eine API-Änderung nötig gewesen: in DomainObjectTraversal.java mußte die walk()-Methode protected markiert werden. git-svn-id: https://svn.libreccm.org/ccm/trunk@319 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
0c1c6858d2
commit
2bb0b8e1e4
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
<!-- First off the adapters for ContentItemPanel -->
|
<!-- First off the adapters for ContentItemPanel -->
|
||||||
<xrd:context name="com.arsdigita.cms.dispatcher.SimpleXMLGenerator">
|
<xrd:context name="com.arsdigita.cms.dispatcher.SimpleXMLGenerator">
|
||||||
|
|
||||||
<!-- Content item is the simplest type -->
|
<!-- Content item is the simplest type -->
|
||||||
<xrd:adapter objectType="com.arsdigita.cms.ContentItem" traversalClass="com.arsdigita.cms.contenttypes.ContentItemTraversalAdapter">
|
<xrd:adapter objectType="com.arsdigita.cms.ContentItem" traversalClass="com.arsdigita.cms.contenttypes.ContentItemTraversalAdapter">
|
||||||
<xrd:attributes rule="exclude">
|
<xrd:attributes rule="exclude">
|
||||||
|
|
@ -32,6 +32,24 @@
|
||||||
</xrd:associations>
|
</xrd:associations>
|
||||||
</xrd:adapter>
|
</xrd:adapter>
|
||||||
|
|
||||||
|
<!-- Special handling for Link (by Quasimodo)-->
|
||||||
|
<xrd:adapter objectType="com.arsdigita.cms.contenttypes.Link" extends="com.arsdigita.cms.ContentItem" traversalClass="com.arsdigita.cms.contenttypes.LinkTraversalAdapter">
|
||||||
|
<xrd:attributes rule="exclude">
|
||||||
|
<xrd:property name="/object/targetItem/id"/>
|
||||||
|
<xrd:property name="/object/targetItem/defaultDomainClass"/>
|
||||||
|
<xrd:property name="/object/targetItem/displayName"/>
|
||||||
|
<xrd:property name="/object/targetItem/isDeleted"/>
|
||||||
|
<xrd:property name="/object/targetItem/ancestors"/>
|
||||||
|
<xrd:property name="/object/targetItem/version"/>
|
||||||
|
<xrd:property name="/object/targetItem/name"/>
|
||||||
|
<xrd:property name="/object/targetItem/language"/>
|
||||||
|
<xrd:property name="/object/targetItem/content"/>
|
||||||
|
</xrd:attributes>
|
||||||
|
<xrd:associations rule="include">
|
||||||
|
<xrd:property name="/object/targetItem"/>
|
||||||
|
</xrd:associations>
|
||||||
|
</xrd:adapter>
|
||||||
|
|
||||||
<xrd:adapter objectType="com.arsdigita.cms.ContentPage" extends="com.arsdigita.cms.ContentItem" traversalClass="com.arsdigita.cms.contenttypes.ContentItemTraversalAdapter">
|
<xrd:adapter objectType="com.arsdigita.cms.ContentPage" extends="com.arsdigita.cms.ContentItem" traversalClass="com.arsdigita.cms.contenttypes.ContentItemTraversalAdapter">
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,8 +21,8 @@ package com.arsdigita.cms.dispatcher;
|
||||||
|
|
||||||
import com.arsdigita.cms.CMS;
|
import com.arsdigita.cms.CMS;
|
||||||
import com.arsdigita.cms.ContentItem;
|
import com.arsdigita.cms.ContentItem;
|
||||||
|
import com.arsdigita.cms.ContentItemXMLRenderer;
|
||||||
import com.arsdigita.dispatcher.RequestContext;
|
import com.arsdigita.dispatcher.RequestContext;
|
||||||
import com.arsdigita.domain.DomainObjectXMLRenderer;
|
|
||||||
import com.arsdigita.xml.Document;
|
import com.arsdigita.xml.Document;
|
||||||
import com.arsdigita.xml.Element;
|
import com.arsdigita.xml.Element;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
@ -58,8 +58,8 @@ public class ItemXML extends ResourceHandlerImpl {
|
||||||
|
|
||||||
Element content = new Element("cms:item", CMS.CMS_XML_NS);
|
Element content = new Element("cms:item", CMS.CMS_XML_NS);
|
||||||
|
|
||||||
DomainObjectXMLRenderer renderer =
|
ContentItemXMLRenderer renderer =
|
||||||
new DomainObjectXMLRenderer(content);
|
new ContentItemXMLRenderer(content);
|
||||||
|
|
||||||
renderer.setWrapAttributes(true);
|
renderer.setWrapAttributes(true);
|
||||||
renderer.setWrapRoot(false);
|
renderer.setWrapRoot(false);
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ package com.arsdigita.cms.dispatcher;
|
||||||
import com.arsdigita.bebop.PageState;
|
import com.arsdigita.bebop.PageState;
|
||||||
import com.arsdigita.cms.CMS;
|
import com.arsdigita.cms.CMS;
|
||||||
import com.arsdigita.cms.ContentItem;
|
import com.arsdigita.cms.ContentItem;
|
||||||
|
import com.arsdigita.cms.ContentItemXMLRenderer;
|
||||||
import com.arsdigita.cms.ContentSection;
|
import com.arsdigita.cms.ContentSection;
|
||||||
import com.arsdigita.cms.SecurityManager;
|
import com.arsdigita.cms.SecurityManager;
|
||||||
import com.arsdigita.cms.UserDefinedContentItem;
|
import com.arsdigita.cms.UserDefinedContentItem;
|
||||||
|
|
@ -29,7 +30,6 @@ import com.arsdigita.cms.util.GlobalizationUtil;
|
||||||
import com.arsdigita.domain.DataObjectNotFoundException;
|
import com.arsdigita.domain.DataObjectNotFoundException;
|
||||||
import com.arsdigita.domain.DomainObjectFactory;
|
import com.arsdigita.domain.DomainObjectFactory;
|
||||||
import com.arsdigita.domain.DomainObjectTraversal;
|
import com.arsdigita.domain.DomainObjectTraversal;
|
||||||
import com.arsdigita.domain.DomainObjectXMLRenderer;
|
|
||||||
import com.arsdigita.domain.SimpleDomainObjectTraversalAdapter;
|
import com.arsdigita.domain.SimpleDomainObjectTraversalAdapter;
|
||||||
import com.arsdigita.kernel.Kernel;
|
import com.arsdigita.kernel.Kernel;
|
||||||
import com.arsdigita.kernel.Party;
|
import com.arsdigita.kernel.Party;
|
||||||
|
|
@ -144,8 +144,8 @@ public class SimpleXMLGenerator implements XMLGenerator {
|
||||||
// This is the preferred method
|
// This is the preferred method
|
||||||
Element content = startElement(useContext);
|
Element content = startElement(useContext);
|
||||||
|
|
||||||
DomainObjectXMLRenderer renderer =
|
ContentItemXMLRenderer renderer =
|
||||||
new DomainObjectXMLRenderer(content);
|
new ContentItemXMLRenderer(content);
|
||||||
|
|
||||||
renderer.setWrapAttributes(true);
|
renderer.setWrapAttributes(true);
|
||||||
renderer.setWrapRoot(false);
|
renderer.setWrapRoot(false);
|
||||||
|
|
|
||||||
|
|
@ -20,12 +20,12 @@ package com.arsdigita.cms.search;
|
||||||
|
|
||||||
|
|
||||||
import com.arsdigita.cms.CMS;
|
import com.arsdigita.cms.CMS;
|
||||||
|
import com.arsdigita.cms.ContentItemXMLRenderer;
|
||||||
import com.arsdigita.cms.util.GlobalizationUtil;
|
import com.arsdigita.cms.util.GlobalizationUtil;
|
||||||
import com.arsdigita.search.ContentType;
|
import com.arsdigita.search.ContentType;
|
||||||
import com.arsdigita.search.ContentProvider;
|
import com.arsdigita.search.ContentProvider;
|
||||||
|
|
||||||
import com.arsdigita.domain.DomainObject;
|
import com.arsdigita.domain.DomainObject;
|
||||||
import com.arsdigita.domain.DomainObjectXMLRenderer;
|
|
||||||
import com.arsdigita.xml.Document;
|
import com.arsdigita.xml.Document;
|
||||||
import com.arsdigita.xml.Element;
|
import com.arsdigita.xml.Element;
|
||||||
import com.arsdigita.util.UncheckedWrapperException;
|
import com.arsdigita.util.UncheckedWrapperException;
|
||||||
|
|
@ -60,8 +60,8 @@ public class XMLContentProvider implements ContentProvider {
|
||||||
public byte[] getBytes() {
|
public byte[] getBytes() {
|
||||||
|
|
||||||
Element root = new Element("cms:item", CMS.CMS_XML_NS);
|
Element root = new Element("cms:item", CMS.CMS_XML_NS);
|
||||||
DomainObjectXMLRenderer renderer =
|
ContentItemXMLRenderer renderer =
|
||||||
new DomainObjectXMLRenderer(root);
|
new ContentItemXMLRenderer(root);
|
||||||
|
|
||||||
renderer.setWrapAttributes(true);
|
renderer.setWrapAttributes(true);
|
||||||
renderer.walk(m_obj, m_adapterContext);
|
renderer.walk(m_obj, m_adapterContext);
|
||||||
|
|
|
||||||
|
|
@ -22,11 +22,11 @@ import com.arsdigita.bebop.PageState;
|
||||||
import com.arsdigita.bebop.SimpleComponent;
|
import com.arsdigita.bebop.SimpleComponent;
|
||||||
import com.arsdigita.cms.CMS;
|
import com.arsdigita.cms.CMS;
|
||||||
import com.arsdigita.cms.ContentItem;
|
import com.arsdigita.cms.ContentItem;
|
||||||
|
import com.arsdigita.cms.ContentItemXMLRenderer;
|
||||||
import com.arsdigita.cms.ContentSection;
|
import com.arsdigita.cms.ContentSection;
|
||||||
import com.arsdigita.cms.ContentSectionCollection;
|
import com.arsdigita.cms.ContentSectionCollection;
|
||||||
import com.arsdigita.cms.Folder;
|
import com.arsdigita.cms.Folder;
|
||||||
import com.arsdigita.cms.dispatcher.SimpleXMLGenerator;
|
import com.arsdigita.cms.dispatcher.SimpleXMLGenerator;
|
||||||
import com.arsdigita.domain.DomainObjectXMLRenderer;
|
|
||||||
import com.arsdigita.xml.Element;
|
import com.arsdigita.xml.Element;
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -205,7 +205,7 @@ public class FolderContent extends SimpleComponent {
|
||||||
log.debug("Rendering item '"+item.getName()+"'.");
|
log.debug("Rendering item '"+item.getName()+"'.");
|
||||||
|
|
||||||
Element itemElement = parent.newChildElement(TAG_ITEM, CMS.CMS_XML_NS);
|
Element itemElement = parent.newChildElement(TAG_ITEM, CMS.CMS_XML_NS);
|
||||||
DomainObjectXMLRenderer renderer = new DomainObjectXMLRenderer(itemElement);
|
ContentItemXMLRenderer renderer = new ContentItemXMLRenderer(itemElement);
|
||||||
|
|
||||||
// not sure these are necessary
|
// not sure these are necessary
|
||||||
renderer.setWrapAttributes(true);
|
renderer.setWrapAttributes(true);
|
||||||
|
|
|
||||||
|
|
@ -22,11 +22,11 @@ import com.arsdigita.bebop.PageState;
|
||||||
import com.arsdigita.bebop.portal.AbstractPortletRenderer;
|
import com.arsdigita.bebop.portal.AbstractPortletRenderer;
|
||||||
import com.arsdigita.cms.CMS;
|
import com.arsdigita.cms.CMS;
|
||||||
import com.arsdigita.cms.ContentItem;
|
import com.arsdigita.cms.ContentItem;
|
||||||
|
import com.arsdigita.cms.ContentItemXMLRenderer;
|
||||||
import com.arsdigita.cms.SecurityManager;
|
import com.arsdigita.cms.SecurityManager;
|
||||||
import com.arsdigita.cms.dispatcher.SimpleXMLGenerator;
|
import com.arsdigita.cms.dispatcher.SimpleXMLGenerator;
|
||||||
import com.arsdigita.cms.portlet.ContentItemPortlet;
|
import com.arsdigita.cms.portlet.ContentItemPortlet;
|
||||||
import com.arsdigita.dispatcher.AccessDeniedException;
|
import com.arsdigita.dispatcher.AccessDeniedException;
|
||||||
import com.arsdigita.domain.DomainObjectXMLRenderer;
|
|
||||||
import com.arsdigita.kernel.Kernel;
|
import com.arsdigita.kernel.Kernel;
|
||||||
import com.arsdigita.kernel.Party;
|
import com.arsdigita.kernel.Party;
|
||||||
import com.arsdigita.kernel.permissions.PermissionDescriptor;
|
import com.arsdigita.kernel.permissions.PermissionDescriptor;
|
||||||
|
|
@ -93,8 +93,7 @@ public class ContentItemPortletRenderer extends AbstractPortletRenderer {
|
||||||
Element contentItem = content.newChildElement("cms:item",
|
Element contentItem = content.newChildElement("cms:item",
|
||||||
CMS.CMS_XML_NS);
|
CMS.CMS_XML_NS);
|
||||||
|
|
||||||
DomainObjectXMLRenderer renderer = new DomainObjectXMLRenderer(
|
ContentItemXMLRenderer renderer = new ContentItemXMLRenderer(contentItem);
|
||||||
contentItem);
|
|
||||||
|
|
||||||
renderer.setWrapAttributes(true);
|
renderer.setWrapAttributes(true);
|
||||||
renderer.setWrapRoot(false);
|
renderer.setWrapRoot(false);
|
||||||
|
|
@ -106,8 +105,12 @@ public class ContentItemPortletRenderer extends AbstractPortletRenderer {
|
||||||
|
|
||||||
public String getCacheKey(PageState state) {
|
public String getCacheKey(PageState state) {
|
||||||
ContentItem item = m_portlet.getContentItem();
|
ContentItem item = m_portlet.getContentItem();
|
||||||
if( null == item ) return "";
|
if( null == item ) {
|
||||||
if( item.isLive() ) return item.getPublicVersion().getOID().toString();
|
return "";
|
||||||
|
}
|
||||||
|
if( item.isLive() ) {
|
||||||
|
return item.getPublicVersion().getOID().toString();
|
||||||
|
}
|
||||||
|
|
||||||
// Don't cache it if it's not live
|
// Don't cache it if it's not live
|
||||||
return "";
|
return "";
|
||||||
|
|
|
||||||
|
|
@ -253,7 +253,7 @@ public abstract class DomainObjectTraversal {
|
||||||
walk(adapter, obj, "/object", context, null);
|
walk(adapter, obj, "/object", context, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void walk(final DomainObjectTraversalAdapter adapter,
|
protected void walk(final DomainObjectTraversalAdapter adapter,
|
||||||
final DomainObject obj,
|
final DomainObject obj,
|
||||||
final String path,
|
final String path,
|
||||||
final String context,
|
final String context,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue