. Big and juicy application/WCM model refactoring

- WARNING: this change requires a new DB as the WCM model has changed significantly, yes I have probably broken a few WCM things :)

Previously the following statements were true:
 - Most of the model constants were defined in the ContentModel class - including web-client Application specific model items
 - WCMModel class was a mix of WCM repository and WCM application model constants
 - The applicationModel.xml definition file contained both web-client Application and WCM application model definitions
 - The wcmModel.xml definition file contained both WCM repository and WCM application model definitions

The following statements are now true:
 - All web-client application specific model constants have been moved from ContentModel to a new model constants class ApplicationModel
 - A new WCM application model has been defined with the prefix "wca" and URI: http://www.alfresco.org/model/wcmappmodel/1.0
 - All WCM application specific model constants have been renamed/moved from ContentModel/WCMModel to a new model constants class WCMAppModel
 - The mix of WCM application specific model definitions in contentModel.xml and applicationModel.xml has been moved to a new definition file wcmAppModel.xml
 - A patch is not required for standard Alfresco as only WCM definitions have actually changed

. Fix to issue created during workflow id/name refactor
. Fix to allow forms in the Available Content Forms panel to have correct sandbox/username context for action dialog

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@4448 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Kevin Roast
2006-11-27 15:03:12 +00:00
parent 8cc57fe41e
commit 6027f1c17d
44 changed files with 323 additions and 222 deletions

View File

@@ -26,6 +26,7 @@ import javax.faces.context.FacesContext;
import org.alfresco.repo.domain.PropertyValue;
import org.alfresco.service.cmr.avm.AVMService;
import org.alfresco.service.namespace.QName;
import org.alfresco.util.ParameterCheck;
import org.alfresco.web.app.Application;
import org.alfresco.web.bean.repository.Repository;
import org.alfresco.web.config.ClientConfigElement;
@@ -44,36 +45,76 @@ public final class AVMConstants
public static String buildAVMStagingStoreName(String store)
{
if (store == null || store.length() == 0)
{
throw new IllegalArgumentException("Store name is mandatory.");
}
return store + AVMConstants.STORE_STAGING;
}
public static String buildAVMStagingPreviewStoreName(String store)
{
if (store == null || store.length() == 0)
{
throw new IllegalArgumentException("Store name is mandatory.");
}
return store + AVMConstants.STORE_PREVIEW;
}
public static String buildAVMUserMainStoreName(String store, String username)
{
if (store == null || store.length() == 0)
{
throw new IllegalArgumentException("Store name is mandatory.");
}
if (username == null || username.length() == 0)
{
throw new IllegalArgumentException("Username is mandatory.");
}
return store + '-' + username + AVMConstants.STORE_MAIN;
}
public static String buildAVMUserPreviewStoreName(String store, String username)
{
if (store == null || store.length() == 0)
{
throw new IllegalArgumentException("Store name is mandatory.");
}
if (username == null || username.length() == 0)
{
throw new IllegalArgumentException("Username is mandatory.");
}
return store + '-' + username + AVMConstants.STORE_PREVIEW;
}
public static String buildAVMStoreRootPath(String store)
{
if (store == null || store.length() == 0)
{
throw new IllegalArgumentException("Store name is mandatory.");
}
return store + ":/" + DIR_APPBASE + '/' + DIR_WEBAPPS;
}
public static String buildAVMStoreWebappPath(String store, String webapp)
{
if (store == null || store.length() == 0)
{
throw new IllegalArgumentException("Store name is mandatory.");
}
if (webapp == null || webapp.length() == 0)
{
throw new IllegalArgumentException("Webapp name is mandatory.");
}
return store + ":/" + DIR_APPBASE + '/' + DIR_WEBAPPS + '/' + webapp;
}
public static String buildAVMStoreUrl(String store)
{
if (store == null || store.length() == 0)
{
throw new IllegalArgumentException("Store name is mandatory.");
}
if (store.indexOf(':') != -1)
{
store = store.substring(0, store.indexOf(':'));
@@ -84,6 +125,10 @@ public final class AVMConstants
public static String buildAVMAssetUrl(final String avmPath)
{
if (avmPath == null || avmPath.length() == 0)
{
throw new IllegalArgumentException("AVM path is mandatory.");
}
final String[] s = avmPath.split(":");
if (s.length != 2)
{
@@ -94,12 +139,28 @@ public final class AVMConstants
public static String buildAVMAssetUrl(String store, String assetPath)
{
if (store == null || store.length() == 0)
{
throw new IllegalArgumentException("Store name is mandatory.");
}
if (assetPath == null || assetPath.length() == 0)
{
throw new IllegalArgumentException("Asset path is mandatory.");
}
ClientConfigElement config = Application.getClientConfig(FacesContext.getCurrentInstance());
return buildAVMAssetUrl(assetPath, config.getWCMDomain(), config.getWCMPort(), lookupStoreDNS(store));
}
public static String buildAVMAssetUrl(String assetPath, String domain, String port, String dns)
{
if (domain == null || port == null || dns == null)
{
throw new IllegalArgumentException("Domain, port and dns name are mandatory.");
}
if (assetPath == null || assetPath.length() == 0)
{
throw new IllegalArgumentException("Asset path is mandatory.");
}
if (assetPath.startsWith('/' + DIR_APPBASE + '/' + DIR_WEBAPPS))
{
assetPath = assetPath.substring(('/' + DIR_APPBASE + '/' + DIR_WEBAPPS).length());
@@ -118,6 +179,11 @@ public final class AVMConstants
public static String lookupStoreDNS(String store)
{
if (store == null || store.length() == 0)
{
throw new IllegalArgumentException("Store name is mandatory.");
}
String dns = null;
AVMService avmService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getAVMService();