. Moved avm specific types from ContentModel (cm) into WCMModel (wcm)

. Updated appropriate AVM and client classes to use new types
. Updated application types to derive from wcm types
NOTE: You will need a new database - this is NOT backward compatible with current websites!

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@4022 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Kevin Roast
2006-10-04 16:39:26 +00:00
parent edea95ec65
commit d03bc33acb
9 changed files with 128 additions and 122 deletions

View File

@@ -97,13 +97,6 @@ public interface ContentModel
// content type and aspect constants
static final QName TYPE_CONTENT = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "content");
static final QName PROP_CONTENT = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "content");
static final QName TYPE_AVM_CONTENT = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "avmcontent");
static final QName TYPE_AVM_PLAIN_CONTENT =
QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "avmplaincontent");
static final QName TYPE_AVM_LAYERED_CONTENT =
QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "avmlayeredcontent");
static final QName PROP_AVM_FILE_INDIRECTION =
QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "avmfileindirection");
// title aspect
static final QName ASPECT_TITLED = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "titled");
@@ -149,10 +142,6 @@ public interface ContentModel
static final QName TYPE_FOLDER = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "folder");
/** child association type supported by {@link #TYPE_FOLDER} */
static final QName ASSOC_CONTAINS = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "contains");
static final QName TYPE_AVM_FOLDER = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "avmfolder");
static final QName TYPE_AVM_PLAIN_FOLDER = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "avmplainfolder");
static final QName TYPE_AVM_LAYERED_FOLDER = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "avmlayeredfolder");
static final QName PROP_AVM_DIR_INDIRECTION = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "avmdirindirection");
// person
static final QName TYPE_PERSON = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "person");

View File

@@ -3,6 +3,7 @@
*/
package org.alfresco.model;
import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.QName;
/**
@@ -11,16 +12,25 @@ import org.alfresco.service.namespace.QName;
*/
public interface WCMModel
{
public static final String WCM_MODEL_URI = "http://www.alfresco.org/model/wcmmodel/1.0";
public static final String WCM_MODEL_PREFIX = "wcm";
// content
public static final QName TYPE_AVM_CONTENT = QName.createQName(NamespaceService.WCM_MODEL_1_0_URI, "avmcontent");
public static final QName TYPE_AVM_PLAIN_CONTENT = QName.createQName(NamespaceService.WCM_MODEL_1_0_URI, "avmplaincontent");
public static final QName TYPE_AVM_LAYERED_CONTENT = QName.createQName(NamespaceService.WCM_MODEL_1_0_URI, "avmlayeredcontent");
public static final QName PROP_AVM_FILE_INDIRECTION = QName.createQName(NamespaceService.WCM_MODEL_1_0_URI, "avmfileindirection");
// folders
public static final QName TYPE_AVM_FOLDER = QName.createQName(NamespaceService.WCM_MODEL_1_0_URI, "avmfolder");
public static final QName TYPE_AVM_PLAIN_FOLDER = QName.createQName(NamespaceService.WCM_MODEL_1_0_URI, "avmplainfolder");
public static final QName TYPE_AVM_LAYERED_FOLDER = QName.createQName(NamespaceService.WCM_MODEL_1_0_URI, "avmlayeredfolder");
public static final QName PROP_AVM_DIR_INDIRECTION = QName.createQName(NamespaceService.WCM_MODEL_1_0_URI, "avmdirindirection");
// The XForms data capture template aspect.
public static final QName ASPECT_TEMPLATE = QName.createQName(WCM_MODEL_URI, "template");
public static final QName PROP_SCHEMA_ROOT_TAG_NAME = QName.createQName(WCM_MODEL_URI, "schemaroottagname");
public static final QName ASSOC_TEMPLATE_OUTPUT_METHODS = QName.createQName(WCM_MODEL_URI, "templateoutputmethods");
public static final QName ASPECT_TEMPLATE = QName.createQName(NamespaceService.WCM_MODEL_1_0_URI, "template");
public static final QName PROP_SCHEMA_ROOT_TAG_NAME = QName.createQName(NamespaceService.WCM_MODEL_1_0_URI, "schemaroottagname");
public static final QName ASSOC_TEMPLATE_OUTPUT_METHODS = QName.createQName(NamespaceService.WCM_MODEL_1_0_URI, "templateoutputmethods");
// An XML to something else tranformer aspect.
public static final QName ASPECT_TEMPLATE_OUTPUT_METHOD = QName.createQName(WCM_MODEL_URI, "templateoutputmethod");
public static final QName PROP_TEMPLATE_OUTPUT_METHOD_TYPE = QName.createQName(WCM_MODEL_URI, "templateoutputmethodtype");
public static final QName PROP_TEMPLATE_SOURCE = QName.createQName(WCM_MODEL_URI, "templatesource");
public static final QName ASPECT_TEMPLATE_OUTPUT_METHOD = QName.createQName(NamespaceService.WCM_MODEL_1_0_URI, "templateoutputmethod");
public static final QName PROP_TEMPLATE_OUTPUT_METHOD_TYPE = QName.createQName(NamespaceService.WCM_MODEL_1_0_URI, "templateoutputmethodtype");
public static final QName PROP_TEMPLATE_SOURCE = QName.createQName(NamespaceService.WCM_MODEL_1_0_URI, "templatesource");
}

View File

@@ -29,6 +29,7 @@ import java.util.Set;
import java.util.SortedMap;
import org.alfresco.model.ContentModel;
import org.alfresco.model.WCMModel;
import org.alfresco.repo.domain.PropertyValue;
import org.alfresco.repo.node.AbstractNodeServiceImpl;
import org.alfresco.service.cmr.avm.AVMException;
@@ -251,19 +252,19 @@ public class AVMNodeService extends AbstractNodeServiceImpl implements NodeServi
// Do the creates for supported types, or error out.
try
{
if (nodeTypeQName.equals(ContentModel.TYPE_AVM_PLAIN_FOLDER) ||
if (nodeTypeQName.equals(WCMModel.TYPE_AVM_PLAIN_FOLDER) ||
nodeTypeQName.equals(ContentModel.TYPE_FOLDER))
{
fAVMService.createDirectory(avmPath, nodeName);
}
else if (nodeTypeQName.equals(ContentModel.TYPE_AVM_PLAIN_CONTENT)
||nodeTypeQName.equals(ContentModel.TYPE_CONTENT))
else if (nodeTypeQName.equals(WCMModel.TYPE_AVM_PLAIN_CONTENT) ||
nodeTypeQName.equals(ContentModel.TYPE_CONTENT))
{
fAVMService.createFile(avmPath, nodeName);
}
else if (nodeTypeQName.equals(ContentModel.TYPE_AVM_LAYERED_CONTENT))
else if (nodeTypeQName.equals(WCMModel.TYPE_AVM_LAYERED_CONTENT))
{
NodeRef indirection = (NodeRef)properties.get(ContentModel.PROP_AVM_FILE_INDIRECTION);
NodeRef indirection = (NodeRef)properties.get(WCMModel.PROP_AVM_FILE_INDIRECTION);
if (indirection == null)
{
throw new InvalidTypeException("No Indirection Property", nodeTypeQName);
@@ -271,9 +272,9 @@ public class AVMNodeService extends AbstractNodeServiceImpl implements NodeServi
Pair<Integer, String> indVersionPath = AVMNodeConverter.ToAVMVersionPath(indirection);
fAVMService.createLayeredFile(indVersionPath.getSecond(), avmPath, nodeName);
}
else if (nodeTypeQName.equals(ContentModel.TYPE_AVM_LAYERED_FOLDER))
else if (nodeTypeQName.equals(WCMModel.TYPE_AVM_LAYERED_FOLDER))
{
NodeRef indirection = (NodeRef)properties.get(ContentModel.PROP_AVM_DIR_INDIRECTION);
NodeRef indirection = (NodeRef)properties.get(WCMModel.PROP_AVM_DIR_INDIRECTION);
if (indirection == null)
{
throw new InvalidTypeException("No Indirection Property.", nodeTypeQName);
@@ -477,19 +478,19 @@ public class AVMNodeService extends AbstractNodeServiceImpl implements NodeServi
}
if (desc.isPlainDirectory())
{
return ContentModel.TYPE_AVM_PLAIN_FOLDER;
return WCMModel.TYPE_AVM_PLAIN_FOLDER;
}
else if (desc.isPlainFile())
{
return ContentModel.TYPE_AVM_PLAIN_CONTENT;
return WCMModel.TYPE_AVM_PLAIN_CONTENT;
}
else if (desc.isLayeredDirectory())
{
return ContentModel.TYPE_AVM_LAYERED_FOLDER;
return WCMModel.TYPE_AVM_LAYERED_FOLDER;
}
else
{
return ContentModel.TYPE_AVM_LAYERED_CONTENT;
return WCMModel.TYPE_AVM_LAYERED_CONTENT;
}
}
@@ -924,12 +925,12 @@ public class AVMNodeService extends AbstractNodeServiceImpl implements NodeServi
result.put(ContentModel.PROP_STORE_IDENTIFIER, nodeRef.getStoreRef().getIdentifier());
if (desc.isLayeredDirectory())
{
result.put(ContentModel.PROP_AVM_DIR_INDIRECTION,
result.put(WCMModel.PROP_AVM_DIR_INDIRECTION,
AVMNodeConverter.ToNodeRef(-1, desc.getIndirection()));
}
if (desc.isLayeredFile())
{
result.put(ContentModel.PROP_AVM_FILE_INDIRECTION,
result.put(WCMModel.PROP_AVM_FILE_INDIRECTION,
AVMNodeConverter.ToNodeRef(-1, desc.getIndirection()));
}
if (desc.isFile())
@@ -1052,7 +1053,7 @@ public class AVMNodeService extends AbstractNodeServiceImpl implements NodeServi
{
return nodeRef.getStoreRef().getIdentifier();
}
else if (qName.equals(ContentModel.PROP_AVM_DIR_INDIRECTION))
else if (qName.equals(WCMModel.PROP_AVM_DIR_INDIRECTION))
{
if (desc.isLayeredDirectory())
{
@@ -1060,7 +1061,7 @@ public class AVMNodeService extends AbstractNodeServiceImpl implements NodeServi
}
return null;
}
else if (qName.equals(ContentModel.PROP_AVM_FILE_INDIRECTION))
else if (qName.equals(WCMModel.PROP_AVM_FILE_INDIRECTION))
{
if (desc.isLayeredFile())
{
@@ -1146,8 +1147,8 @@ public class AVMNodeService extends AbstractNodeServiceImpl implements NodeServi
ContentModel.PROP_NODE_DBID,
ContentModel.PROP_STORE_PROTOCOL,
ContentModel.PROP_STORE_IDENTIFIER,
ContentModel.PROP_AVM_FILE_INDIRECTION,
ContentModel.PROP_AVM_DIR_INDIRECTION
WCMModel.PROP_AVM_FILE_INDIRECTION,
WCMModel.PROP_AVM_DIR_INDIRECTION
};
/**

View File

@@ -31,6 +31,7 @@ import java.util.Set;
import java.util.TreeMap;
import org.alfresco.model.ContentModel;
import org.alfresco.model.WCMModel;
import org.alfresco.repo.action.ActionImpl;
import org.alfresco.repo.avm.actions.SimpleAVMPromoteAction;
import org.alfresco.repo.avm.actions.SimpleAVMSubmitAction;
@@ -3019,32 +3020,32 @@ public class AVMServiceTest extends AVMServiceTestBase
AuthenticationComponent ac = (AuthenticationComponent)fContext.getBean("authenticationComponent");
ac.authenticate("admin", "admin".toCharArray());
assertTrue(ffs.create(AVMNodeConverter.ToNodeRef(-1, "main:/a/b/c/"),
"banana", ContentModel.TYPE_AVM_PLAIN_CONTENT) != null);
"banana", WCMModel.TYPE_AVM_PLAIN_CONTENT) != null);
assertTrue(ffs.create(AVMNodeConverter.ToNodeRef(-1, "main://"),
"banana", ContentModel.TYPE_AVM_PLAIN_CONTENT) != null);
"banana", WCMModel.TYPE_AVM_PLAIN_CONTENT) != null);
assertTrue(ffs.create(AVMNodeConverter.ToNodeRef(-1, "main:/a/b/c"),
"apples", ContentModel.TYPE_AVM_PLAIN_FOLDER) != null);
"apples", WCMModel.TYPE_AVM_PLAIN_FOLDER) != null);
NodeService ns = (NodeService)fContext.getBean("NodeService");
Map<QName, Serializable> properties = new HashMap<QName, Serializable>();
properties.put(ContentModel.PROP_AVM_DIR_INDIRECTION,
properties.put(WCMModel.PROP_AVM_DIR_INDIRECTION,
AVMNodeConverter.ToNodeRef(-1, "main:/a"));
assertTrue(ns.createNode(AVMNodeConverter.ToNodeRef(-1, "main:/"),
ContentModel.ASSOC_CONTAINS,
QName.createQName(NamespaceService.APP_MODEL_1_0_URI, "layer"),
ContentModel.TYPE_AVM_LAYERED_FOLDER,
WCMModel.TYPE_AVM_LAYERED_FOLDER,
properties) != null);
assertTrue(ns.getProperty(AVMNodeConverter.ToNodeRef(-1, "main:/layer"),
ContentModel.PROP_AVM_DIR_INDIRECTION) != null);
WCMModel.PROP_AVM_DIR_INDIRECTION) != null);
properties.clear();
properties.put(ContentModel.PROP_AVM_FILE_INDIRECTION,
properties.put(WCMModel.PROP_AVM_FILE_INDIRECTION,
AVMNodeConverter.ToNodeRef(-1, "main:/a/b/c/foo"));
assertTrue(ns.createNode(AVMNodeConverter.ToNodeRef(-1, "main:/"),
ContentModel.ASSOC_CONTAINS,
QName.createQName(NamespaceService.APP_MODEL_1_0_URI, "foo"),
ContentModel.TYPE_AVM_LAYERED_CONTENT,
WCMModel.TYPE_AVM_LAYERED_CONTENT,
properties) != null);
assertTrue(ns.getProperty(AVMNodeConverter.ToNodeRef(-1, "main:/foo"),
ContentModel.PROP_AVM_FILE_INDIRECTION) != null);
WCMModel.PROP_AVM_FILE_INDIRECTION) != null);
fService.createSnapshot("main");
System.out.println(recursiveList("main", -1, true));
}

View File

@@ -92,6 +92,12 @@ public interface NamespaceService extends NamespacePrefixResolver
/** Alfresco security Prefix */
public static final String SECURITY_MODEL_PREFIX = "security";
/** Alfresco WCM URI */
public static final String WCM_MODEL_1_0_URI = "http://www.alfresco.org/model/wcmmodel/1.0";
/** Alfresco WCM Prefix */
public static final String WCM_MODEL_PREFIX = "wcm";
/**
* Register a prefix for namespace uri.