ETHREEOH-2126 - WCM meta data extraction does not extract title when form is created

- metadata extractor was not firing 
 - titled aspect was applied after extraction thereby overwriting extracted value.

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@17034 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Mark Rogers
2009-10-20 09:25:04 +00:00
parent 6510076be2
commit b137bdb21f
3 changed files with 17 additions and 8 deletions

View File

@@ -1418,6 +1418,13 @@ public class AVMNodeService extends AbstractNodeServiceImpl implements NodeServi
{ {
throw new InvalidNodeRefException("Read only store.", nodeRef); throw new InvalidNodeRefException("Read only store.", nodeRef);
} }
Map<QName, Serializable> propsBefore = null;
if (fInvokePolicies)
{
propsBefore = getProperties(nodeRef);
}
if (isBuiltInProperty(qname)) if (isBuiltInProperty(qname))
{ {
if (qname.equals(ContentModel.PROP_CONTENT)) if (qname.equals(ContentModel.PROP_CONTENT))
@@ -1427,7 +1434,6 @@ public class AVMNodeService extends AbstractNodeServiceImpl implements NodeServi
fAVMService.setContentData(avmVersionPath.getSecond(), (ContentData)value); fAVMService.setContentData(avmVersionPath.getSecond(), (ContentData)value);
if (fInvokePolicies) if (fInvokePolicies)
{ {
Map<QName, Serializable> propsBefore = getProperties(nodeRef);
Map<QName, Serializable> propsAfter = new HashMap<QName, Serializable>(propsBefore); Map<QName, Serializable> propsAfter = new HashMap<QName, Serializable>(propsBefore);
propsAfter.put(ContentModel.PROP_CONTENT, value); propsAfter.put(ContentModel.PROP_CONTENT, value);
invokeOnUpdateProperties(nodeRef, propsBefore, propsAfter); invokeOnUpdateProperties(nodeRef, propsBefore, propsAfter);
@@ -1442,11 +1448,7 @@ public class AVMNodeService extends AbstractNodeServiceImpl implements NodeServi
} }
try try
{ {
Map<QName, Serializable> propsBefore = null;
if (fInvokePolicies)
{
propsBefore = getProperties(nodeRef);
}
PropertyDefinition propertyDef = dictionaryService.getProperty(qname); PropertyDefinition propertyDef = dictionaryService.getProperty(qname);
PropertyValue propertyValue = makePropertyValue(propertyDef, value); PropertyValue propertyValue = makePropertyValue(propertyDef, value);
fAVMService.setNodeProperty(avmVersionPath.getSecond(), qname, propertyValue); fAVMService.setNodeProperty(avmVersionPath.getSecond(), qname, propertyValue);

View File

@@ -386,10 +386,16 @@ public class AVMServiceImpl implements AVMService
*/ */
public void createFile(String path, String name, InputStream in, List<QName> aspects, Map<QName, PropertyValue> properties) public void createFile(String path, String name, InputStream in, List<QName> aspects, Map<QName, PropertyValue> properties)
{ {
if (path == null || name == null || in == null || !FileNameValidator.isValid(name)) if (path == null || name == null || in == null)
{ {
throw new AVMBadArgumentException("Illegal argument."); throw new AVMBadArgumentException("Illegal argument.");
} }
if(!FileNameValidator.isValid(name))
{
throw new AVMBadArgumentException("Illegal argument, name:" + name);
}
// Save the contents to temp space. // Save the contents to temp space.
File temp; File temp;
try try

View File

@@ -670,7 +670,8 @@ public class PropertyValue implements Cloneable, Serializable
/** /**
* Construct a new property value. * Construct a new property value.
* *
* @param typeQName the dictionary-defined property type to store the property as * @param typeQName the dictionary-defined property type to store the property as.
* May be null in which case the type will be determined from the value parameter.
* @param value the value to store. This will be converted into a format compatible * @param value the value to store. This will be converted into a format compatible
* with the type given * with the type given
* *