Merged V3.0 to HEAD

12795: ALFCOM-2419: ResourceBundleWrapper is no longer (de)serializable after changes merged from 2.1-A rev 8323
   12826: Fix for ETHREEOH-37 and ETHREEOH-176.

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@12828 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Kevin Roast
2009-01-16 14:20:15 +00:00
parent 97a73fcc00
commit e4dae16f8c
15 changed files with 159 additions and 57 deletions

View File

@@ -46,6 +46,8 @@ import org.alfresco.service.cmr.repository.ContentData;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.StoreRef;
import org.alfresco.service.cmr.repository.TemplateImageResolver;
import org.alfresco.service.namespace.NamespacePrefixResolver;
import org.alfresco.service.namespace.NamespacePrefixResolverProvider;
import org.alfresco.service.namespace.QName;
import org.alfresco.service.namespace.QNameMap;
import org.alfresco.util.Pair;
@@ -67,7 +69,7 @@ import freemarker.ext.dom.NodeModel;
*
* @author Kevin Roast
*/
public class AVMTemplateNode extends BasePermissionsNode
public class AVMTemplateNode extends BasePermissionsNode implements NamespacePrefixResolverProvider
{
private static Log logger = LogFactory.getLog(AVMTemplateNode.class);
@@ -172,7 +174,7 @@ public class AVMTemplateNode extends BasePermissionsNode
{
this.version = version;
this.path = path;
this.properties = new QNameMap<String, Serializable>(this.services.getNamespaceService());
this.properties = new QNameMap<String, Serializable>(this);
if (descriptor == null)
{
descriptor = this.services.getAVMService().lookup(version, path, true);
@@ -471,6 +473,12 @@ public class AVMTemplateNode extends BasePermissionsNode
}
public NamespacePrefixResolver getNamespacePrefixResolver()
{
return this.services.getNamespaceService();
}
// ------------------------------------------------------------------------------
// Private helpers

View File

@@ -43,6 +43,8 @@ import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.TemplateImageResolver;
import org.alfresco.service.cmr.version.Version;
import org.alfresco.service.cmr.version.VersionHistory;
import org.alfresco.service.namespace.NamespacePrefixResolver;
import org.alfresco.service.namespace.NamespacePrefixResolverProvider;
import org.alfresco.service.namespace.QName;
import org.alfresco.service.namespace.QNameMap;
import org.alfresco.service.namespace.RegexQNamePattern;
@@ -66,7 +68,7 @@ import freemarker.ext.dom.NodeModel;
*
* @author Kevin Roast
*/
public class TemplateNode extends BasePermissionsNode
public class TemplateNode extends BasePermissionsNode implements NamespacePrefixResolverProvider
{
private static final long serialVersionUID = 1234390333739034171L;
@@ -123,7 +125,7 @@ public class TemplateNode extends BasePermissionsNode
this.services = services;
this.imageResolver = resolver;
this.properties = new QNameMap<String, Serializable>(this.services.getNamespaceService());
this.properties = new QNameMap<String, Serializable>(this);
}
@@ -241,7 +243,7 @@ public class TemplateNode extends BasePermissionsNode
if (this.targetAssocs == null)
{
List<AssociationRef> refs = this.services.getNodeService().getTargetAssocs(this.nodeRef, RegexQNamePattern.MATCH_ALL);
this.targetAssocs = new QNameMap<String, List<TemplateNode>>(this.services.getNamespaceService());
this.targetAssocs = new QNameMap<String, List<TemplateNode>>(this);
for (AssociationRef ref : refs)
{
String qname = ref.getTypeQName().toString();
@@ -272,7 +274,7 @@ public class TemplateNode extends BasePermissionsNode
if (this.sourceAssocs == null)
{
List<AssociationRef> refs = this.services.getNodeService().getSourceAssocs(this.nodeRef, RegexQNamePattern.MATCH_ALL);
this.sourceAssocs = new QNameMap<String, List<TemplateNode>>(this.services.getNamespaceService());
this.sourceAssocs = new QNameMap<String, List<TemplateNode>>(this);
for (AssociationRef ref : refs)
{
String qname = ref.getTypeQName().toString();
@@ -303,7 +305,7 @@ public class TemplateNode extends BasePermissionsNode
if (this.childAssocs == null)
{
List<ChildAssociationRef> refs = this.services.getNodeService().getChildAssocs(this.nodeRef);
this.childAssocs = new QNameMap<String, List<TemplateNode>>(this.services.getNamespaceService());
this.childAssocs = new QNameMap<String, List<TemplateNode>>(this);
for (ChildAssociationRef ref : refs)
{
String qname = ref.getTypeQName().toString();
@@ -510,9 +512,15 @@ public class TemplateNode extends BasePermissionsNode
return this.imageResolver;
}
// ------------------------------------------------------------------------------
// Inner classes
public NamespacePrefixResolver getNamespacePrefixResolver()
{
return this.services.getNamespaceService();
}
/**
* Class to convert properties into template accessable objects
*/

View File

@@ -37,6 +37,8 @@ import org.alfresco.service.cmr.repository.ContentData;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.version.Version;
import org.alfresco.service.cmr.version.VersionType;
import org.alfresco.service.namespace.NamespacePrefixResolver;
import org.alfresco.service.namespace.NamespacePrefixResolverProvider;
import org.alfresco.service.namespace.QName;
import org.alfresco.service.namespace.QNameMap;
import org.alfresco.util.URLEncoder;
@@ -47,7 +49,7 @@ import org.alfresco.util.URLEncoder;
*
* @author Kevin Roast
*/
public class VersionHistoryNode extends BaseContentNode
public class VersionHistoryNode extends BaseContentNode implements NamespacePrefixResolverProvider
{
private QNameMap<String, Serializable> properties;
private boolean propsRetrieved = false;
@@ -77,7 +79,7 @@ public class VersionHistoryNode extends BaseContentNode
this.version = version;
this.parent = parent;
this.services = services;
this.properties = new QNameMap<String, Serializable>(parent.services.getNamespaceService());
this.properties = new QNameMap<String, Serializable>(this);
}
/**
@@ -264,6 +266,12 @@ public class VersionHistoryNode extends BaseContentNode
}
public NamespacePrefixResolver getNamespacePrefixResolver()
{
return this.services.getNamespaceService();
}
// ------------------------------------------------------------------------------
// Content API

View File

@@ -49,6 +49,8 @@ import org.alfresco.service.cmr.workflow.WorkflowService;
import org.alfresco.service.cmr.workflow.WorkflowTask;
import org.alfresco.service.cmr.workflow.WorkflowTaskState;
import org.alfresco.service.cmr.workflow.WorkflowTransition;
import org.alfresco.service.namespace.NamespacePrefixResolver;
import org.alfresco.service.namespace.NamespacePrefixResolverProvider;
import org.alfresco.service.namespace.QName;
import org.alfresco.service.namespace.QNameMap;
import org.alfresco.service.namespace.RegexQNamePattern;
@@ -160,7 +162,7 @@ public class Workflow extends BaseTemplateProcessorExtension
/**
* Simple bean wrapper around a WorkflowTask item
*/
public static class WorkflowTaskItem
public static class WorkflowTaskItem implements NamespacePrefixResolverProvider
{
private WorkflowTask task;
private QNameMap<String, Serializable> properties = null;
@@ -317,7 +319,7 @@ public class Workflow extends BaseTemplateProcessorExtension
{
// convert properties to a QName accessable Map with TemplateNode objects as required
PropertyConverter converter = new PropertyConverter();
this.properties = new QNameMap<String, Serializable>(this.services.getNamespaceService());
this.properties = new QNameMap<String, Serializable>(this);
for (QName qname : this.task.properties.keySet())
{
Serializable value = converter.convertProperty(
@@ -327,5 +329,10 @@ public class Workflow extends BaseTemplateProcessorExtension
}
return this.properties;
}
public NamespacePrefixResolver getNamespacePrefixResolver()
{
return this.services.getNamespaceService();
}
}
}