Added sys:incomplete aspect.

Extended <mandatory> definition in the DD.
The "mandatory" properties in our system have, until now, been optional, i.e. the integrity has not been enforced.
It is possible to have
   <mandatory enforced="true">true</mandatory>, which means "mandatory and enforced", but
   <mandatory enforced="false">true</mandatory>, which means "mandatory but not enforced".
Our system properties have been marked as "mandatory".
Dublin core has had the properties marked as "required".  Currently, if the Dublin Core is added, the node is tagged with sys:incomplete.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@2562 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2006-03-21 21:46:15 +00:00
parent 764675cb2a
commit fd13fe7a51
23 changed files with 718 additions and 53 deletions

View File

@@ -64,6 +64,8 @@
<bean id="resourceBundles" class="org.alfresco.i18n.ResourceBundleBootstrapComponent">
<property name="resourceBundles">
<list>
<value>alfresco.messages.system-messages</value>
<value>alfresco.messages.dictionary-messages</value>
<value>alfresco.messages.version-service</value>
<value>alfresco.messages.permissions-service</value>
<value>alfresco.messages.content-service</value>
@@ -71,7 +73,6 @@
<value>alfresco.messages.template-service</value>
<value>alfresco.messages.lock-service</value>
<value>alfresco.messages.patch-service</value>
<value>alfresco.messages.dictionary-messages</value>
</list>
</property>
</bean>

View File

@@ -19,6 +19,8 @@ d_dictionary.property.err.property_type_not_specified=Property type of property
d_dictionary.property.err.property_type_not_found=Property type ''{0}'' of property ''{1}'' is not found
d_dictionary.property.err.single_valued_content=Content properties must be single-valued
d_dictionary.property.err.duplicate_constraint_on_property=Found duplicate constraint definition ''{0}'' within property ''{1}''
d_dictionary.property.err.cannot_relax_mandatory=Cannot relax mandatory attribute of property ''{0}
d_dictionary.property.err.cannot_relax_mandatory_enforcement=Cannot relax mandatory attribute enforcement of property ''{0}
d_dictionary.constraint.regex.no_match=Value ''{0}'' does not match regular expression: {1}
d_dictionary.constraint.regex.match=Value ''{0}'' matches regular expression: {1}

View File

@@ -0,0 +1,3 @@
# System-related messages
system.err.property_not_set=Property ''{0}'' has not been set: {1}

View File

@@ -30,7 +30,7 @@
<property name="cm:name">
<title>Name</title>
<type>d:text</type>
<mandatory>true</mandatory>
<mandatory enforced="true">true</mandatory>
<constraints>
<constraint ref="cm:filename" />
</constraints>
@@ -356,34 +356,42 @@
<property name="cm:publisher">
<title>Publisher</title>
<type>d:text</type>
<mandatory enforced="false">true</mandatory>
</property>
<property name="cm:contributor">
<title>Contributor</title>
<type>d:text</type>
<mandatory enforced="false">true</mandatory>
</property>
<property name="cm:type">
<title>Type</title>
<type>d:text</type>
<mandatory enforced="false">true</mandatory>
</property>
<property name="cm:identifier">
<title>Identifier</title>
<type>d:text</type>
<mandatory enforced="false">true</mandatory>
</property>
<property name="cm:dcsource">
<title>Source</title>
<type>d:text</type>
<mandatory enforced="false">true</mandatory>
</property>
<property name="cm:coverage">
<title>Coverage</title>
<type>d:text</type>
<mandatory enforced="false">true</mandatory>
</property>
<property name="cm:rights">
<title>Rights</title>
<type>d:text</type>
<mandatory enforced="false">true</mandatory>
</property>
<property name="cm:subject">
<title>Subject</title>
<type>d:text</type>
<mandatory enforced="false">true</mandatory>
</property>
</properties>
<mandatory-aspects>
@@ -392,20 +400,6 @@
</mandatory-aspects>
</aspect>
<!--
<aspect name="cm:subjectable">
<title>Subjectable</title>
<mandatory-aspects>
<aspect>cm:auditable</aspect>
</mandatory-aspects>
<properties>
<property name="cm:subject">
<type>d:text</type>
</property>
</properties>
</aspect>
-->
<aspect name="cm:basable">
<title>Basable</title>
<associations>

View File

@@ -28,22 +28,22 @@
<properties>
<property name="sys:versionMajor">
<type>d:text</type>
<mandatory>true</mandatory>
<mandatory enforced="true">true</mandatory>
</property>
<property name="sys:versionMinor">
<type>d:text</type>
<mandatory>true</mandatory>
<mandatory enforced="true">true</mandatory>
</property>
<property name="sys:versionRevision">
<type>d:text</type>
<mandatory>true</mandatory>
<mandatory enforced="true">true</mandatory>
</property>
<property name="sys:versionLabel">
<type>d:text</type>
</property>
<property name="sys:versionSchema">
<type>d:int</type>
<mandatory>true</mandatory>
<mandatory enforced="true">true</mandatory>
<default>0</default>
</property>
</properties>
@@ -81,7 +81,7 @@
<properties>
<property name="sys:reference">
<type>d:noderef</type>
<mandatory>true</mandatory>
<mandatory enforced="true">true</mandatory>
</property>
</properties>
</type>
@@ -101,19 +101,24 @@
<properties>
<property name="sys:store-protocol">
<type>d:text</type>
<mandatory>true</mandatory>
<mandatory enforced="true">true</mandatory>
</property>
<property name="sys:store-identifier">
<type>d:text</type>
<mandatory>true</mandatory>
<mandatory enforced="true">true</mandatory>
</property>
<property name="sys:node-uuid">
<type>d:text</type>
<mandatory>true</mandatory>
<mandatory enforced="true">true</mandatory>
</property>
</properties>
</aspect>
<!-- aspect to tag incomplete nodes -->
<aspect name="sys:incomplete">
<title>Incomplete</title>
</aspect>
</aspects>
</model>

View File

@@ -111,5 +111,18 @@
<value>5</value> <!-- limit output (exception and log) to the first N violation messages -->
</property>
</bean>
<!-- tags nodes that are incomplete w.r.t. properties-->
<bean id="incompleteNodeTagger" class="org.alfresco.repo.node.integrity.IncompleteNodeTagger" init-method="init">
<property name="policyComponent">
<ref bean="policyComponent"/>
</property>
<property name="dictionaryService">
<ref bean="dictionaryService" />
</property>
<property name="nodeService">
<ref bean="nodeService" />
</property>
</bean>
</beans>