cancel
Showing results for 
Search instead for 
Did you mean: 

WCM Metadata extraction [SOLVED]

steventux
Champ in-the-making
Champ in-the-making
I'm getting integrity violations having activated WCM Metadata extraction. I've verified this is the cause by testing on another build.
I'm sure something in my configuration must be causing this but the error is thrown when creating web content (regardless of type)
The errors don't immediately point to anything in my config.
12:21:31,636 User:admin ERROR [node.integrity.IntegrityChecker] Found 4 integrity violations:
Mandatory property not set:
   Node: avm://canvas8–admin–preview/-1;www;avm_webapps;ROOT;content;About.jsp
   Type: {http://www.alfresco.org/model/wcmappmodel/1.0}rendition
   Property: {http://www.alfresco.org/model/wcmappmodel/1.0}parentrenditionproperties
Mandatory property not set:
   Node: avm://canvas8–admin–preview/-1;www;avm_webapps;ROOT;content;About.jsp
   Type: {http://www.alfresco.org/model/wcmappmodel/1.0}rendition
   Property: {http://www.alfresco.org/model/wcmappmodel/1.0}parentrenderingenginetemplate
Mandatory property not set:
   Node: avm://canvas8–admin–preview/-1;www;avm_webapps;ROOT;content;About.jsp
   Type: {http://www.alfresco.org/model/wcmappmodel/1.0}rendition
   Property: {http://www.alfresco.org/model/wcmappmodel/1.0}primaryforminstancedata
Mandatory property not set:
   Node: avm://canvas8–admin–preview/-1;www;avm_webapps;ROOT;content;About.jsp
   Type: {http://www.alfresco.org/model/wcmappmodel/1.0}forminstancedata
   Property: {http://www.alfresco.org/model/wcmappmodel/1.0}parentformname

So parentrenditionproperties, parentrenderingenginetemplate, primaryforminstancedata, parentformname sound fairly crucial properties to me  :idea:
wcm-xml-metadata-extracter-context.xml contents are:

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>

<!–
   Sample configuration of a XmlMetadataExtracter in use within the WCM environment.
  
   This show how XML metadata extraction can be set up to extract metadata from different
   formats of XML.  It also shows how metadata can be extracted in WCM projects.
  
   Since: 2.1
   Author: Derek Hulley
–>
<beans>
  
   <!–
      In order to limit the number of extractors active for Web Content Management, a separate registry
      must be created for the extractors.
   –>
   <bean id="avmMetadataExtracterRegistry" class="org.alfresco.repo.content.metadata.MetadataExtracterRegistry" />
  
   <!–
      Configure the AVM services to broadcast the content update notifications.
   –>
   <bean id="avmNodeService" class="org.alfresco.repo.avm.AVMNodeService" init-method="init">
        <property name="dictionaryService">
            <ref bean="dictionaryService"/>
        </property>
        <property name="avmService">
            <ref bean="avmLockingAwareService"/>
        </property>
        <property name="policyComponent">
            <ref bean="policyComponent"/>
        </property>
        <property name="invokePolicies">
            <value>true</value>
        </property>
    </bean>
   <bean id="avmMetadataExtracter" class="org.alfresco.repo.avm.AvmMetadataExtracter" init-method="init">
      <property name="policyComponent">
         <ref bean="policyComponent"/>
      </property>
      <property name="extracterAction">
         <bean class="org.alfresco.repo.action.executer.ContentMetadataExtracter" >
            <property name="dictionaryService">
               <ref bean="dictionaryService"/>
            </property>
            <property name="nodeService">
               <ref bean="avmNodeService" />
            </property>
            <property name="contentService">
               <ref bean="contentService" />
            </property>
            <property name="metadataExtracterRegistry">
               <ref bean="avmMetadataExtracterRegistry" />
            </property>
            <property name="carryAspectProperties">
               <value>true</value>
            </property>
         </bean>
      </property>
   </bean>

   <bean id="extracter.xml.canvas8.ArticleModelMetadataExtracter"
         class="org.alfresco.repo.content.metadata.xml.XPathMetadataExtracter"
         parent="baseMetadataExtracter"
         init-method="init" >
      
      <property name="mappingProperties">
         <bean class="org.springframework.beans.factory.config.PropertiesFactoryBean">
            <property name="properties">
               <props>
                  <prop key="namespace.prefix.report">http://www.alfresco.org/alfresco/report</prop>
                  <prop key="editors_choice">report:editors_choice</prop>
                  <prop key="featured">report:featured</prop>
                  <prop key="industry">report:industry</prop>
                  <prop key="location">report:location</prop>
                  <prop key="keywords">report:keywords</prop>
                  <prop key="source">report:source</prop>
                  <prop key="author">report:author</prop>
                  <prop key="section">report:section</prop>
                  <prop key="type">report:type</prop>
                  <prop key="sub_type">report:sub_type</prop>
               </props>
            </property>
         </bean>
      </property>
     
    
      <property name="xpathMappingProperties">
         <bean class="org.springframework.beans.factory.config.PropertiesFactoryBean">
            <property name="properties">
               <props>
                  <prop key="namespace.prefix.report">http://www.alfresco.org/alfresco/report</prop>
                  <prop key="editors_choice">/report/editors_choice/text()</prop>
                  <prop key="featured">/report/featured/text()</prop>
                  <prop key="industry">/report/industry/text()</prop>
                  <prop key="location">/report/location/text()</prop>
                  <prop key="keywords">/report/keywords/text()</prop>
                  <prop key="source">/report/source/text()</prop>
                  <prop key="author">/report/author/text()</prop>
                  <prop key="section">/report/section/text()</prop>
                  <prop key="type">/report/type/text()</prop>
                  <prop key="sub_type">/report/sub_type/text()</prop>
               </props>
            </property>
         </bean>
      </property>
   </bean>
  
  
   <!–
      This selector examines the XML documents, executing the given XPath statements until a
      match is made.
   –>
   <bean id="extracter.xml.canvas8.selector.XPathSelector"
         class="org.alfresco.repo.content.selector.XPathContentWorkerSelector"
         init-method="init">
      <property name="workers">
         <map>
            <entry key="/report">
               <ref bean="extracter.xml.canvas8.ArticleModelMetadataExtracter" />
            </entry>
         </map>
      </property>
   </bean>
  
   <bean id="extracter.xml.canvas8.XMLMetadataExtracter"
         class="org.alfresco.repo.content.metadata.xml.XmlMetadataExtracter"
         parent="baseMetadataExtracter">

      <property name="registry">
         <ref bean="avmMetadataExtracterRegistry" />
      </property>

      <property name="overwritePolicy">
         <value>EAGER</value>
      </property>
      <property name="selectors">
         <list>
            <ref bean="extracter.xml.canvas8.selector.XPathSelector" />
         </list>
      </property>
   </bean>
</beans>

ANyone seen this before with WCM Metadata extraction?
1 REPLY 1

steventux
Champ in-the-making
Champ in-the-making
[SOLVED]
The errors were caused by a freemarker coding error in the rendition template, nice and intuitive error message then  :shock:
I suppose there was a hint in the error message as it seemed only to complain about jsp files - i.e. the output from the template