Merge of all UI clustering changes originally applied to 2.2

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@8292 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Gavin Cornwell
2008-02-15 14:59:11 +00:00
parent 2bde146829
commit 0eaa1f5ba9
11 changed files with 628 additions and 569 deletions

View File

@@ -42,6 +42,8 @@ import org.alfresco.service.namespace.NamespaceService;
*/ */
public class JCRNamespacePrefixResolver implements NamespaceService public class JCRNamespacePrefixResolver implements NamespaceService
{ {
private static final long serialVersionUID = -2451839324143403283L;
// delegate // delegate
private NamespacePrefixResolver delegate; private NamespacePrefixResolver delegate;

View File

@@ -72,6 +72,21 @@ public class Issuer
* After the database is up, get our value. * After the database is up, get our value.
*/ */
public void initialize() public void initialize()
{
getNextId();
}
/**
* Issue the next number.
* @return A serial number.
*/
public synchronized long issue()
{
return getNextId();
}
private long getNextId()
{ {
class TxnWork implements RetryingTransactionCallback<Long> class TxnWork implements RetryingTransactionCallback<Long>
{ {
@@ -89,14 +104,6 @@ public class Issuer
{ {
fNext = result + 1L; fNext = result + 1L;
} }
} return fNext;
/**
* Issue the next number.
* @return A serial number.
*/
public synchronized long issue()
{
return fNext++;
} }
} }

View File

@@ -37,6 +37,7 @@ import org.alfresco.service.namespace.NamespaceService;
public class DictionaryNamespaceComponent implements NamespaceService public class DictionaryNamespaceComponent implements NamespaceService
{ {
private static final long serialVersionUID = -3774701459465102431L;
/** /**
* Namespace DAO * Namespace DAO
*/ */

View File

@@ -48,6 +48,8 @@ public class NamespaceDAOImpl implements NamespaceDAO
{ {
private static final Log logger = LogFactory.getLog(NamespaceDAOImpl.class); private static final Log logger = LogFactory.getLog(NamespaceDAOImpl.class);
private static final long serialVersionUID = -1085431310721591548L;
/** /**
* Lock objects * Lock objects
*/ */

View File

@@ -39,6 +39,7 @@ import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter; import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter;
import org.alfresco.service.cmr.repository.datatype.TypeConversionException; import org.alfresco.service.cmr.repository.datatype.TypeConversionException;
import org.alfresco.service.namespace.QName; import org.alfresco.service.namespace.QName;
import org.alfresco.util.ApplicationContextHelper;
import org.aopalliance.intercept.MethodInterceptor; import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation; import org.aopalliance.intercept.MethodInvocation;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
@@ -60,9 +61,9 @@ public class NodeRefPropertyMethodInterceptor implements MethodInterceptor
private boolean filterOnSet = true; private boolean filterOnSet = true;
private DictionaryService dictionaryService; transient private DictionaryService dictionaryService;
private NodeService nodeService; transient private NodeService nodeService;
public boolean isFilterOnGet() public boolean isFilterOnGet()
{ {
@@ -89,11 +90,29 @@ public class NodeRefPropertyMethodInterceptor implements MethodInterceptor
this.dictionaryService = dictionaryService; this.dictionaryService = dictionaryService;
} }
private DictionaryService getDictionaryService()
{
if (dictionaryService == null)
{
dictionaryService = (DictionaryService) ApplicationContextHelper.getApplicationContext().getBean("dictionaryService");
}
return dictionaryService;
}
public void setNodeService(NodeService nodeService) public void setNodeService(NodeService nodeService)
{ {
this.nodeService = nodeService; this.nodeService = nodeService;
} }
private NodeService getNodeService()
{
if (nodeService == null)
{
nodeService = (NodeService) ApplicationContextHelper.getApplicationContext().getBean("mlAwareNodeService");
}
return nodeService;
}
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public Object invoke(MethodInvocation invocation) throws Throwable public Object invoke(MethodInvocation invocation) throws Throwable
{ {
@@ -278,7 +297,7 @@ public class NodeRefPropertyMethodInterceptor implements MethodInterceptor
*/ */
private Serializable getValue(QName propertyQName, Serializable inboundValue) private Serializable getValue(QName propertyQName, Serializable inboundValue)
{ {
PropertyDefinition propertyDef = this.dictionaryService.getProperty(propertyQName); PropertyDefinition propertyDef = this.getDictionaryService().getProperty(propertyQName);
if (propertyDef == null) if (propertyDef == null)
{ {
return inboundValue; return inboundValue;
@@ -303,12 +322,12 @@ public class NodeRefPropertyMethodInterceptor implements MethodInterceptor
try try
{ {
NodeRef test = DefaultTypeConverter.INSTANCE.convert(NodeRef.class, value); NodeRef test = DefaultTypeConverter.INSTANCE.convert(NodeRef.class, value);
if (nodeService.exists(test)) if (getNodeService().exists(test))
{ {
if (propertyDef.getDataType().getName().equals(DataTypeDefinition.CATEGORY)) if (propertyDef.getDataType().getName().equals(DataTypeDefinition.CATEGORY))
{ {
QName type = nodeService.getType(test); QName type = getNodeService().getType(test);
if (dictionaryService.isSubClass(type, ContentModel.TYPE_CATEGORY)) if (getDictionaryService().isSubClass(type, ContentModel.TYPE_CATEGORY))
{ {
out.add(test); out.add(test);
} }
@@ -338,12 +357,12 @@ public class NodeRefPropertyMethodInterceptor implements MethodInterceptor
try try
{ {
NodeRef test = DefaultTypeConverter.INSTANCE.convert(NodeRef.class, inboundValue); NodeRef test = DefaultTypeConverter.INSTANCE.convert(NodeRef.class, inboundValue);
if (nodeService.exists(test)) if (getNodeService().exists(test))
{ {
if (propertyDef.getDataType().getName().equals(DataTypeDefinition.CATEGORY)) if (propertyDef.getDataType().getName().equals(DataTypeDefinition.CATEGORY))
{ {
QName type = nodeService.getType(test); QName type = getNodeService().getType(test);
if (dictionaryService.isSubClass(type, ContentModel.TYPE_CATEGORY)) if (getDictionaryService().isSubClass(type, ContentModel.TYPE_CATEGORY))
{ {
return test; return test;
} }

View File

@@ -24,6 +24,8 @@
*/ */
package org.alfresco.service.cmr.repository; package org.alfresco.service.cmr.repository;
import java.io.Serializable;
/** /**
* Interface contract for the conversion of file name to a fully qualified icon image path for use by * Interface contract for the conversion of file name to a fully qualified icon image path for use by
* templating and scripting engines executing within the repository context. * templating and scripting engines executing within the repository context.
@@ -33,7 +35,7 @@ package org.alfresco.service.cmr.repository;
* *
* @author Kevin Roast * @author Kevin Roast
*/ */
public interface TemplateImageResolver public interface TemplateImageResolver extends Serializable
{ {
/** /**
* Resolve the qualified icon image path for the specified filename * Resolve the qualified icon image path for the specified filename

View File

@@ -24,21 +24,25 @@
*/ */
package org.alfresco.service.cmr.workflow; package org.alfresco.service.cmr.workflow;
import java.io.Serializable;
/** /**
* Workflow Definition Data Object * Workflow Definition Data Object
* *
* @author davidc * @author davidc
*/ */
public class WorkflowDefinition public class WorkflowDefinition implements Serializable
{ {
private static final long serialVersionUID = -4320345925926816927L;
//XXarielb these should most likely all be private //XXarielb these should most likely all be private
public final String id; public final String id;
public final String name; public final String name;
public final String version; public final String version;
public final String title; public final String title;
public final String description; public final String description;
public final WorkflowTaskDefinition startTaskDefinition;
transient private final WorkflowTaskDefinition startTaskDefinition;
public WorkflowDefinition(final String id, public WorkflowDefinition(final String id,
final String name, final String name,
@@ -97,6 +101,6 @@ public class WorkflowDefinition
*/ */
public String toString() public String toString()
{ {
return "WorkflowDefinition[id=" + id + ",name=" + name + ",version=" + version + ",title=" + title + ",startTask=" + ((startTaskDefinition == null) ? "undefined" : startTaskDefinition.toString()) + "]"; return "WorkflowDefinition[id=" + id + ",name=" + name + ",version=" + version + ",title=" + title + ",startTask=" + ((getStartTaskDefinition() == null) ? "undefined" : getStartTaskDefinition().toString()) + "]";
} }
} }

View File

@@ -24,6 +24,7 @@
*/ */
package org.alfresco.service.cmr.workflow; package org.alfresco.service.cmr.workflow;
import java.io.Serializable;
import java.util.Date; import java.util.Date;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
@@ -36,8 +37,10 @@ import org.alfresco.service.cmr.repository.NodeRef;
* *
* @author davidc * @author davidc
*/ */
public class WorkflowInstance public class WorkflowInstance implements Serializable
{ {
private static final long serialVersionUID = 4221926809419223452L;
/** Workflow Instance unique id */ /** Workflow Instance unique id */
public String id; public String id;

View File

@@ -41,6 +41,8 @@ import java.util.Set;
public class DynamicNamespacePrefixResolver implements NamespaceService public class DynamicNamespacePrefixResolver implements NamespaceService
{ {
private static final long serialVersionUID = -7721089444629137409L;
/** /**
* The delegate * The delegate
*/ */

View File

@@ -24,6 +24,7 @@
*/ */
package org.alfresco.service.namespace; package org.alfresco.service.namespace;
import java.io.Serializable;
import java.util.Collection; import java.util.Collection;
import org.alfresco.service.Auditable; import org.alfresco.service.Auditable;
@@ -36,7 +37,7 @@ import org.alfresco.service.PublicService;
* @author David Caruana * @author David Caruana
*/ */
@PublicService @PublicService
public interface NamespacePrefixResolver public interface NamespacePrefixResolver extends Serializable
{ {
/** /**
* Gets the namespace URI registered for the given prefix * Gets the namespace URI registered for the given prefix

View File

@@ -24,6 +24,7 @@
*/ */
package org.alfresco.service.namespace; package org.alfresco.service.namespace;
import java.io.Serializable;
import java.util.Collection; import java.util.Collection;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@@ -40,8 +41,10 @@ import org.apache.commons.logging.LogFactory;
* *
* @author gavinc * @author gavinc
*/ */
public class QNameMap<K,V> implements Map, Cloneable public class QNameMap<K,V> implements Map, Cloneable, Serializable
{ {
private static final long serialVersionUID = 2077228225832792605L;
protected static Log logger = LogFactory.getLog(QNameMap.class); protected static Log logger = LogFactory.getLog(QNameMap.class);
protected Map<String, Object> contents = new HashMap<String, Object>(16, 1.0f); protected Map<String, Object> contents = new HashMap<String, Object>(16, 1.0f);
protected NamespacePrefixResolver resolver = null; protected NamespacePrefixResolver resolver = null;
@@ -60,6 +63,19 @@ public class QNameMap<K,V> implements Map, Cloneable
this.resolver = resolver; this.resolver = resolver;
} }
/**
* Constructor for Serialization mechanism
*
*/
protected QNameMap()
{
super();
}
/** /**
* @see java.util.Map#size() * @see java.util.Map#size()
*/ */