ALF-20169 "cmis:secondary type properties are not visible " : fix + build tests (though I'm going to do a bit more testing), removal of unused imports, slight refactoring of some tests

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@56189 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Steven Glover
2013-10-01 09:48:22 +00:00
parent 1521b6b76f
commit 4034089d18
4 changed files with 556 additions and 512 deletions

View File

@@ -13,7 +13,7 @@
<bean id="OpenCMISPropertyAccessorMapping1.1" class="org.alfresco.opencmis.mapping.RuntimePropertyAccessorMapping" init-method="init"> <bean id="OpenCMISPropertyAccessorMapping1.1" class="org.alfresco.opencmis.mapping.RuntimePropertyAccessorMapping" init-method="init">
<property name="serviceRegistry" ref="ServiceRegistry" /> <property name="serviceRegistry" ref="ServiceRegistry" />
<property name="cmisConnector" ref="CMISConnector1.1" /> <property name="cmisConnector" ref="CMISConnector" />
<property name="cmisMapping" ref="OpenCMISMapping1.1" /> <property name="cmisMapping" ref="OpenCMISMapping1.1" />
<property name="cmisDictionaryService" ref="OpenCMISDictionaryService1.1" /> <property name="cmisDictionaryService" ref="OpenCMISDictionaryService1.1" />
</bean> </bean>
@@ -73,15 +73,6 @@
<property name="cmisStreams" ref="CMISService_Streams" /> <property name="cmisStreams" ref="CMISService_Streams" />
<property name="authorityService" ref="AuthorityService" /> <property name="authorityService" ref="AuthorityService" />
</bean> </bean>
<bean id="CMISServiceFactory1.1" class="org.alfresco.opencmis.AlfrescoCmisServiceFactory" init-method="init">
<property name="cmisConnector" ref="CMISConnector1.1" />
<property name="cmisTransactions" ref="CMISService_Transactions" />
<property name="cmisExceptions" ref="CMISService_Exceptions" />
<property name="cmisControl" ref="CMISService_Control" />
<property name="cmisStreams" ref="CMISService_Streams" />
<property name="authorityService" ref="AuthorityService" />
</bean>
<bean id="CMISService_Transactions" class="org.alfresco.repo.transaction.RetryingTransactionInterceptor"> <bean id="CMISService_Transactions" class="org.alfresco.repo.transaction.RetryingTransactionInterceptor">
<property name="transactionService" ref="TransactionService" /> <property name="transactionService" ref="TransactionService" />
@@ -126,7 +117,6 @@
</bean> </bean>
<bean id="CMISConnector" class="org.alfresco.opencmis.CMISConnector" init-method="setup"> <bean id="CMISConnector" class="org.alfresco.opencmis.CMISConnector" init-method="setup">
<property name="cmisVersion" value="CMIS_1_0" />
<property name="store" value="${opencmis.connector.default.store}" /> <property name="store" value="${opencmis.connector.default.store}" />
<property name="rootPath" value="${opencmis.connector.default.rootPath}" /> <property name="rootPath" value="${opencmis.connector.default.rootPath}" />
<property name="typesDefaultMaxItems" value="${opencmis.connector.default.typesDefaultMaxItems}" /> <property name="typesDefaultMaxItems" value="${opencmis.connector.default.typesDefaultMaxItems}" />
@@ -150,9 +140,11 @@
</property> </property>
<property name="openHttpSession" value="${opencmis.connector.default.openHttpSession}" /> <property name="openHttpSession" value="${opencmis.connector.default.openHttpSession}" />
<property name="OpenCMISDictionaryService" ref="OpenCMISDictionaryService" /> <property name="OpenCMISDictionaryService" ref="OpenCMISDictionaryService" />
<property name="OpenCMISQueryService" ref="OpenCMISQueryService" /> <property name="OpenCMISQueryService" ref="OpenCMISQueryService" />
<property name="OpenCMISDictionaryService11" ref="OpenCMISDictionaryService1.1" />
<property name="OpenCMISQueryService11" ref="OpenCMISQueryService1.1" />
<property name="activityPoster" ref="cmisActivityPoster" /> <property name="activityPoster" ref="cmisActivityPoster" />
<property name="hiddenAspect" ref="hiddenAspect" /> <property name="hiddenAspect" ref="hiddenAspect" />
@@ -183,64 +175,6 @@
<property name="behaviourFilter" ref="policyBehaviourFilter" /> <property name="behaviourFilter" ref="policyBehaviourFilter" />
</bean> </bean>
<bean id="CMISConnector1.1" class="org.alfresco.opencmis.CMISConnector">
<property name="cmisVersion" value="CMIS_1_1" />
<property name="store" value="${opencmis.connector.default.store}" />
<property name="rootPath" value="${opencmis.connector.default.rootPath}" />
<property name="typesDefaultMaxItems" value="${opencmis.connector.default.typesDefaultMaxItems}" />
<property name="typesDefaultDepth" value="${opencmis.connector.default.typesDefaultDepth}" />
<property name="objectsDefaultMaxItems" value="${opencmis.connector.default.objectsDefaultMaxItems}" />
<property name="objectsDefaultDepth" value="${opencmis.connector.default.objectsDefaultDepth}" />
<property name="renditionKindMapping">
<map>
<entry key="cmis:thumbnail">
<list>
<value>doclib</value>
</list>
</entry>
<entry key="alf:webpreview">
<list>
<value>webpreview</value>
<value>imgpreview</value>
</list>
</entry>
</map>
</property>
<property name="openHttpSession" value="${opencmis.connector.default.openHttpSession}" />
<property name="OpenCMISDictionaryService" ref="OpenCMISDictionaryService1.1" />
<property name="OpenCMISQueryService" ref="OpenCMISQueryService1.1" />
<property name="activityPoster" ref="cmisActivityPoster" />
<property name="hiddenAspect" ref="hiddenAspect" />
<property name="siteService" ref="SiteService" />
<property name="actionService" ref="ActionService" />
<property name="objectFilter" ref="objectFilter" />
<property name="descriptorService" ref="DescriptorService" />
<property name="nodeService" ref="NodeService" />
<property name="thumbnailService" ref="ThumbnailService" />
<property name="serviceRegistry" ref="ServiceRegistry" />
<property name="fileFolderService" ref="FileFolderService" />
<property name="versionService" ref="VersionService" />
<property name="checkOutCheckInService" ref="CheckoutCheckinService" />
<property name="lockService" ref="LockService" />
<property name="contentService" ref="ContentService" />
<property name="renditionService" ref="RenditionService" />
<property name="tenantAdminService" ref="tenantAdminService" />
<property name="singletonCache" ref="immutableSingletonCache" />
<property name="transactionService" ref="transactionService"/>
<property name="authenticationService" ref="authenticationService" />
<property name="permissionService" ref="PermissionService" />
<property name="permissionModelDao" ref="permissionsModelDAO" />
<property name="mimetypeService" ref="MimetypeService" />
<property name="auditService" ref="auditService" />
<property name="namespaceService" ref="namespaceService" />
<property name="searchService" ref="SearchService" />
<property name="dictionaryService" ref="DictionaryService" />
<property name="behaviourFilter" ref="policyBehaviourFilter" />
</bean>
<bean id="OpenCMISQueryService" class="org.alfresco.repo.management.subsystems.SubsystemProxyFactory"> <bean id="OpenCMISQueryService" class="org.alfresco.repo.management.subsystems.SubsystemProxyFactory">
<property name="sourceApplicationContextFactory"> <property name="sourceApplicationContextFactory">
<ref bean="Search" /> <ref bean="Search" />

View File

@@ -48,13 +48,11 @@ import org.alfresco.query.PagingRequest;
import org.alfresco.query.PagingResults; import org.alfresco.query.PagingResults;
import org.alfresco.repo.content.encoding.ContentCharsetFinder; import org.alfresco.repo.content.encoding.ContentCharsetFinder;
import org.alfresco.repo.node.getchildren.GetChildrenCannedQuery; import org.alfresco.repo.node.getchildren.GetChildrenCannedQuery;
import org.alfresco.repo.search.QueryParameterDefImpl;
import org.alfresco.repo.security.authentication.AuthenticationUtil; import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.security.authentication.Authorization; import org.alfresco.repo.security.authentication.Authorization;
import org.alfresco.repo.transaction.RetryingTransactionHelper; import org.alfresco.repo.transaction.RetryingTransactionHelper;
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback; import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
import org.alfresco.repo.version.VersionModel; import org.alfresco.repo.version.VersionModel;
import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
import org.alfresco.service.cmr.model.FileInfo; import org.alfresco.service.cmr.model.FileInfo;
import org.alfresco.service.cmr.model.FileNotFoundException; import org.alfresco.service.cmr.model.FileNotFoundException;
import org.alfresco.service.cmr.repository.AssociationRef; import org.alfresco.service.cmr.repository.AssociationRef;
@@ -63,7 +61,6 @@ import org.alfresco.service.cmr.repository.ContentIOException;
import org.alfresco.service.cmr.repository.ContentWriter; import org.alfresco.service.cmr.repository.ContentWriter;
import org.alfresco.service.cmr.repository.InvalidNodeRefException; import org.alfresco.service.cmr.repository.InvalidNodeRefException;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.search.QueryParameterDefinition;
import org.alfresco.service.cmr.search.ResultSet; import org.alfresco.service.cmr.search.ResultSet;
import org.alfresco.service.cmr.search.SearchParameters; import org.alfresco.service.cmr.search.SearchParameters;
import org.alfresco.service.cmr.search.SearchService; import org.alfresco.service.cmr.search.SearchService;

View File

@@ -298,7 +298,9 @@ public class CMISConnector implements ApplicationContextAware, ApplicationListen
private PermissionService permissionService; private PermissionService permissionService;
private ModelDAO permissionModelDao; private ModelDAO permissionModelDao;
private CMISDictionaryService cmisDictionaryService; private CMISDictionaryService cmisDictionaryService;
private CMISDictionaryService cmisDictionaryService11;
private CMISQueryService cmisQueryService; private CMISQueryService cmisQueryService;
private CMISQueryService cmisQueryService11;
private MimetypeService mimetypeService; private MimetypeService mimetypeService;
private AuditService auditService; private AuditService auditService;
private NamespaceService namespaceService; private NamespaceService namespaceService;
@@ -309,8 +311,6 @@ public class CMISConnector implements ApplicationContextAware, ApplicationListen
private ThumbnailService thumbnailService; private ThumbnailService thumbnailService;
private ServiceRegistry serviceRegistry; private ServiceRegistry serviceRegistry;
private CmisVersion cmisVersion;
private ActivityPoster activityPoster; private ActivityPoster activityPoster;
private BehaviourFilter behaviourFilter; private BehaviourFilter behaviourFilter;
@@ -350,11 +350,6 @@ public class CMISConnector implements ApplicationContextAware, ApplicationListen
this.objectFilter = objectFilter; this.objectFilter = objectFilter;
} }
public void setCmisVersion(CmisVersion cmisVersion)
{
this.cmisVersion = cmisVersion;
}
/** /**
* Sets the root store. * Sets the root store.
* *
@@ -640,9 +635,22 @@ public class CMISConnector implements ApplicationContextAware, ApplicationListen
this.cmisDictionaryService = cmisDictionaryService; this.cmisDictionaryService = cmisDictionaryService;
} }
public void setOpenCMISDictionaryService11(CMISDictionaryService cmisDictionaryService)
{
this.cmisDictionaryService11 = cmisDictionaryService;
}
public CMISDictionaryService getOpenCMISDictionaryService() public CMISDictionaryService getOpenCMISDictionaryService()
{ {
return cmisDictionaryService; CmisVersion cmisVersion = getRequestCmisVersion();
if(cmisVersion.equals(CmisVersion.CMIS_1_0))
{
return cmisDictionaryService;
}
else
{
return cmisDictionaryService11;
}
} }
/** /**
@@ -653,6 +661,24 @@ public class CMISConnector implements ApplicationContextAware, ApplicationListen
this.cmisQueryService = cmisQueryService; this.cmisQueryService = cmisQueryService;
} }
public void setOpenCMISQueryService11(CMISQueryService cmisQueryService)
{
this.cmisQueryService11 = cmisQueryService;
}
public CMISQueryService getOpenCMISQueryService()
{
CmisVersion cmisVersion = getRequestCmisVersion();
if(cmisVersion.equals(CmisVersion.CMIS_1_0))
{
return cmisQueryService;
}
else
{
return cmisQueryService11;
}
}
/** /**
* Sets the MIME type service. * Sets the MIME type service.
*/ */
@@ -1196,6 +1222,13 @@ public class CMISConnector implements ApplicationContextAware, ApplicationListen
versionService.createVersion(nodeRef, versionProperties); versionService.createVersion(nodeRef, versionProperties);
} }
public CmisVersion getRequestCmisVersion()
{
CallContext callContext = AlfrescoCmisServiceCall.get();
CmisVersion cmisVersion = callContext.getCmisVersion();
return cmisVersion;
}
private boolean isPublicApi() private boolean isPublicApi()
{ {
boolean isPublicApi = false; boolean isPublicApi = false;
@@ -1263,7 +1296,7 @@ public class CMISConnector implements ApplicationContextAware, ApplicationListen
private TypeDefinitionWrapper getType(QName typeQName) private TypeDefinitionWrapper getType(QName typeQName)
{ {
return cmisDictionaryService.findNodeType(typeQName); return getOpenCMISDictionaryService().findNodeType(typeQName);
} }
/** /**
@@ -1273,7 +1306,7 @@ public class CMISConnector implements ApplicationContextAware, ApplicationListen
public TypeDefinitionWrapper getType(AssociationRef assocRef) public TypeDefinitionWrapper getType(AssociationRef assocRef)
{ {
QName typeQName = assocRef.getTypeQName(); QName typeQName = assocRef.getTypeQName();
return cmisDictionaryService.findAssocType(typeQName); return getOpenCMISDictionaryService().findAssocType(typeQName);
} }
/** /**
@@ -1282,7 +1315,7 @@ public class CMISConnector implements ApplicationContextAware, ApplicationListen
*/ */
public TypeDefinitionWrapper getType(String cmisTypeId) public TypeDefinitionWrapper getType(String cmisTypeId)
{ {
return cmisDictionaryService.findType(cmisTypeId); return getOpenCMISDictionaryService().findType(cmisTypeId);
} }
/** /**
@@ -1483,6 +1516,7 @@ public class CMISConnector implements ApplicationContextAware, ApplicationListen
}); });
} }
CmisVersion cmisVersion = getRequestCmisVersion();
if(cmisVersion.equals(CmisVersion.CMIS_1_0)) if(cmisVersion.equals(CmisVersion.CMIS_1_0))
{ {
// add aspects (cmis 1.0) // add aspects (cmis 1.0)
@@ -1707,7 +1741,47 @@ public class CMISConnector implements ApplicationContextAware, ApplicationListen
throw new CmisConstraintException("Document cannot have content!"); throw new CmisConstraintException("Document cannot have content!");
} }
} }
private void addAspectProperties(CMISNodeInfo info, String filter, PropertiesImpl result)
{
if(getRequestCmisVersion().equals(CmisVersion.CMIS_1_1))
{
Set<String> propertyIds = new HashSet<String>();
Set<String> filterSet = splitFilter(filter);
Set<QName> aspects = nodeService.getAspects(info.getNodeRef());
for (QName aspect : aspects)
{
TypeDefinitionWrapper aspectType = getOpenCMISDictionaryService().findNodeType(aspect);
if (aspectType == null)
{
continue;
}
for (PropertyDefinitionWrapper propDef : aspectType.getProperties())
{
if (propertyIds.contains(propDef.getPropertyId()))
{
// skip properties that have already been added
continue;
}
if ((filterSet != null) && (!filterSet.contains(propDef.getPropertyDefinition().getQueryName())))
{
// skip properties that are not in the filter
continue;
}
Serializable value = propDef.getPropertyAccessor().getValue(info);
result.addProperty(getProperty(propDef.getPropertyDefinition().getPropertyType(), propDef, value));
// mark property as 'added'
propertyIds.add(propDef.getPropertyId());
}
}
}
}
public Properties getNodeProperties(CMISNodeInfo info, String filter) public Properties getNodeProperties(CMISNodeInfo info, String filter)
{ {
PropertiesImpl result = new PropertiesImpl(); PropertiesImpl result = new PropertiesImpl();
@@ -1730,6 +1804,8 @@ public class CMISConnector implements ApplicationContextAware, ApplicationListen
result.addProperty(getProperty(propDef.getPropertyDefinition().getPropertyType(), propDef, value)); result.addProperty(getProperty(propDef.getPropertyDefinition().getPropertyType(), propDef, value));
} }
addAspectProperties(info, filter, result);
return result; return result;
} }
@@ -1768,6 +1844,8 @@ public class CMISConnector implements ApplicationContextAware, ApplicationListen
result.addProperty(getProperty(propDef.getPropertyDefinition().getPropertyType(), propDef, value)); result.addProperty(getProperty(propDef.getPropertyDefinition().getPropertyType(), propDef, value));
} }
addAspectProperties(info, filter, result);
return result; return result;
} }
@@ -1809,7 +1887,7 @@ public class CMISConnector implements ApplicationContextAware, ApplicationListen
Set<QName> aspects = nodeService.getAspects(info.getNodeRef()); Set<QName> aspects = nodeService.getAspects(info.getNodeRef());
for (QName aspect : aspects) for (QName aspect : aspects)
{ {
TypeDefinitionWrapper aspectType = cmisDictionaryService.findNodeType(aspect); TypeDefinitionWrapper aspectType = getOpenCMISDictionaryService().findNodeType(aspect);
if (aspectType == null) if (aspectType == null)
{ {
continue; continue;
@@ -2133,7 +2211,7 @@ public class CMISConnector implements ApplicationContextAware, ApplicationListen
// filter relationships that not map the CMIS domain model // filter relationships that not map the CMIS domain model
for (AssociationRef assocRef : assocs) for (AssociationRef assocRef : assocs)
{ {
TypeDefinitionWrapper assocTypeDef = cmisDictionaryService.findAssocType(assocRef.getTypeQName()); TypeDefinitionWrapper assocTypeDef = getOpenCMISDictionaryService().findAssocType(assocRef.getTypeQName());
if (assocTypeDef == null || getType(assocRef.getSourceRef()) == null if (assocTypeDef == null || getType(assocRef.getSourceRef()) == null
|| getType(assocRef.getTargetRef()) == null) || getType(assocRef.getTargetRef()) == null)
{ {
@@ -2201,7 +2279,7 @@ public class CMISConnector implements ApplicationContextAware, ApplicationListen
// filter relationships that not map the CMIS domain model // filter relationships that not map the CMIS domain model
for (AssociationRef assocRef : assocs) for (AssociationRef assocRef : assocs)
{ {
TypeDefinitionWrapper assocTypeDef = cmisDictionaryService.findAssocType(assocRef.getTypeQName()); TypeDefinitionWrapper assocTypeDef = getOpenCMISDictionaryService().findAssocType(assocRef.getTypeQName());
if (assocTypeDef == null || getType(assocRef.getSourceRef()) == null if (assocTypeDef == null || getType(assocRef.getSourceRef()) == null
|| getType(assocRef.getTargetRef()) == null) || getType(assocRef.getTargetRef()) == null)
{ {
@@ -2678,6 +2756,7 @@ public class CMISConnector implements ApplicationContextAware, ApplicationListen
// prepare query // prepare query
CMISQueryOptions options = new CMISQueryOptions(statement, getRootStoreRef()); CMISQueryOptions options = new CMISQueryOptions(statement, getRootStoreRef());
CmisVersion cmisVersion = getRequestCmisVersion();
options.setCmisVersion(cmisVersion); options.setCmisVersion(cmisVersion);
options.setQueryMode(CMISQueryMode.CMS_WITH_ALFRESCO_EXTENSIONS); options.setQueryMode(CMISQueryMode.CMS_WITH_ALFRESCO_EXTENSIONS);
@@ -2697,7 +2776,7 @@ public class CMISConnector implements ApplicationContextAware, ApplicationListen
|| (!RENDITION_NONE.equals(renditionFilter)); || (!RENDITION_NONE.equals(renditionFilter));
// query // query
CMISResultSet rs = cmisQueryService.query(options); CMISResultSet rs = getOpenCMISQueryService().query(options);
try try
{ {
CMISResultSetColumn[] columns = rs.getMetaData().getColumns(); CMISResultSetColumn[] columns = rs.getMetaData().getColumns();
@@ -2801,7 +2880,11 @@ public class CMISConnector implements ApplicationContextAware, ApplicationListen
PropertyDefinitionWrapper propDef = type.getPropertyById(property.getId()); PropertyDefinitionWrapper propDef = type.getPropertyById(property.getId());
if (propDef == null) if (propDef == null)
{ {
throw new CmisInvalidArgumentException("Property " + property.getId() + " is unknown!"); propDef = getOpenCMISDictionaryService().findProperty(propertyId);
if (propDef == null)
{
throw new CmisInvalidArgumentException("Property " + property.getId() + " is unknown!");
}
} }
Updatability updatability = propDef.getPropertyDefinition().getUpdatability(); Updatability updatability = propDef.getPropertyDefinition().getUpdatability();
@@ -2877,7 +2960,7 @@ public class CMISConnector implements ApplicationContextAware, ApplicationListen
{ {
String secondaryType = (String)o; String secondaryType = (String)o;
TypeDefinitionWrapper wrapper = cmisDictionaryService.findType(secondaryType); TypeDefinitionWrapper wrapper = getOpenCMISDictionaryService().findType(secondaryType);
if(wrapper != null) if(wrapper != null)
{ {
QName aspectQName = wrapper.getAlfrescoName(); QName aspectQName = wrapper.getAlfrescoName();
@@ -2906,7 +2989,7 @@ public class CMISConnector implements ApplicationContextAware, ApplicationListen
while(it.hasNext()) while(it.hasNext())
{ {
QName aspectQName = it.next(); QName aspectQName = it.next();
TypeDefinitionWrapper w = cmisDictionaryService.findNodeType(aspectQName); TypeDefinitionWrapper w = getOpenCMISDictionaryService().findNodeType(aspectQName);
if(w == null || secondaryTypeAspects.contains(aspectQName)) if(w == null || secondaryTypeAspects.contains(aspectQName))
{ {
// the type is not exposed or is in the secondary types to set, so remove it from the to remove set // the type is not exposed or is in the secondary types to set, so remove it from the to remove set
@@ -2919,7 +3002,7 @@ public class CMISConnector implements ApplicationContextAware, ApplicationListen
{ {
nodeService.removeAspect(nodeRef, aspectQName); nodeService.removeAspect(nodeRef, aspectQName);
// aspect is being removed so remove all of its properties from the propsToAdd map // aspect is being removed so remove all of its properties from the propsToAdd map
TypeDefinitionWrapper w = cmisDictionaryService.findNodeType(aspectQName); TypeDefinitionWrapper w = getOpenCMISDictionaryService().findNodeType(aspectQName);
for(PropertyDefinitionWrapper wr : w.getProperties()) for(PropertyDefinitionWrapper wr : w.getProperties())
{ {
String propertyId = wr.getPropertyId(); String propertyId = wr.getPropertyId();
@@ -2935,7 +3018,7 @@ public class CMISConnector implements ApplicationContextAware, ApplicationListen
// get aspect properties // get aspect properties
AspectDefinition aspectDef = dictionaryService.getAspect(aspectQName); AspectDefinition aspectDef = dictionaryService.getAspect(aspectQName);
Map<QName, org.alfresco.service.cmr.dictionary.PropertyDefinition> aspectPropDefs = aspectDef.getProperties(); Map<QName, org.alfresco.service.cmr.dictionary.PropertyDefinition> aspectPropDefs = aspectDef.getProperties();
TypeDefinitionWrapper w = cmisDictionaryService.findNodeType(aspectQName); TypeDefinitionWrapper w = getOpenCMISDictionaryService().findNodeType(aspectQName);
// for each aspect property... // for each aspect property...
for(QName propQName : aspectPropDefs.keySet()) for(QName propQName : aspectPropDefs.keySet())
{ {
@@ -3099,7 +3182,7 @@ public class CMISConnector implements ApplicationContextAware, ApplicationListen
} }
// overflow check // overflow check
PropertyDefinitionWrapper propDef = cmisDictionaryService.findProperty(propertyId); PropertyDefinitionWrapper propDef = getOpenCMISDictionaryService().findProperty(propertyId);
if(propDef == null) if(propDef == null)
{ {
throw new CmisInvalidArgumentException("Property " + propertyId + " is unknown!"); throw new CmisInvalidArgumentException("Property " + propertyId + " is unknown!");

File diff suppressed because it is too large Load Diff