Alfresco Content Store

CONTENT STORE SELECTOR

Si può volere la possibilità di disporre di più content store magari a performance e costi diversi. Suddividendo i documenti in base alla frequenza di accesso.
Con una property si può scegliere su quale content store mettere il documento. Più veloce o lento. Avviene tutto in backgroud se modifico la property lui sposta il documento.
Ci sono alcuni passi

  • va configurato il content store selector definendo gli storage
  • bisogna definire i beans manipolando l'xml
  • creiamo gli store e rimpiazziamo il bean contentService. Il contenService è il servizio che si deve usare per memorizzare i contenuti.

Come sappiamo i file xml da cambiare vanno nella tomcat/shared/classes/alfresco/ in questo caso extension. Le extension vengono caricate per ultimi e quindi secondo la regola di spring i bean caricato per ultimo sostituiscono quello esistente.
Gli aspect e le property non sono esposte agli utenti direttamente, si predispongono degli script o delle regole per esempio sulle cartelle.
Bisogna definire oltre al content store anche il pulitore, eager content store cleaner, che elimina gli orfani ogni 14 giorni. Entra in funzione alle 4 del mattino ogni giorno ma elimina di default solo quelli ogni 14 giorni, è un parametro che si può cambiare. Spostando dal content store a un altro avviene una copia e l'originale diventa orfano.

system.content.orphanProtectDays=14

Il parametro sopra serve a modificare il default per la rimozione degli orfani, mettendolo a 0 pulisce gli orfani alle 4 del mattino, per farlo fare bisogna eseguire la pulizia tramite il metodo della jconsole.
Riporto qui sotto share-config-custom.xml uno degli xml che si è usato per configurare gli aspect per questo lavoro dei content store mi manca però la configurazione completa. Dovrei ricopiarla dalle dispense cartacee del corso e fare qualche prova quando mi servirà ci proverò
<alfresco-config>

  <!-- Document Library config section -->
  <config evaluator="string-compare" condition="DocumentLibrary">

     <aspects>
        <!-- Aspects that a user can see -->
        <visible>
           <aspect name="cm:storeSelector" />
        </visible>

        <!-- Aspects that a user can add. Same as "visible" if left empty -->
        <addable>
        </addable>

        <!-- Aspects that a user can remove. Same as "visible" if left empty -->
        <removeable>
        </removeable>
     </aspects>

  </config>

  <!-- cm:content type (existing nodes) -->
  <config evaluator="node-type" condition="cm:content" replace="true">
     <forms>
        <!-- Default form configuration for the cm:content type -->
        <form>
           <field-visibility>
              <show id="cm:name" />
              <show id="cm:title" force="true" />
              <show id="cm:description" force="true" />
              <show id="mimetype" />
              <show id="cm:author" force="true" />
              <show id="size" for-mode="view" />
              <show id="cm:creator" for-mode="view" />
              <show id="cm:created" for-mode="view" />
              <show id="cm:modifier" for-mode="view" />
              <show id="cm:modified" for-mode="view" />

              <!-- tags and categories -->
              <show id="cm:taggable" for-mode="edit" force="true" />
              <show id="cm:categories" />

              <!-- cm:dublincore aspect -->
              <show id="cm:publisher"/>
              <show id="cm:contributor"/>
              <show id="cm:type"/>
              <show id="cm:identifier"/>
              <show id="cm:dcsource"/>
              <show id="cm:coverage"/>
              <show id="cm:rights"/>
              <show id="cm:subject"/>

              <!-- cm:complianceable aspect -->
              <show id="cm:removeAfter" />

              <!-- cm:effectivity aspect -->
              <show id="cm:from"/>
              <show id="cm:to"/>

              <!--  cm:summarizable aspect -->
              <show id="cm:summary" />

              <!-- cm:translatable aspect -->
              <show id="cm:translations" />

              <!-- cm:localizable aspect -->
              <show id="cm:locale" />

              <!-- cm:ownable aspect -->
              <show id="cm:owner" />

              <!-- cm:attachable aspect -->
              <show id="cm:attachments" />

              <!-- cm:emailed aspect -->
              <show id="cm:originator" />
              <show id="cm:addressee" />
              <show id="cm:addressees" />
              <show id="cm:sentdate" />
              <show id="cm:subjectline" />

              <!-- exif:exif aspect -->
              <show id="exif:dateTimeOriginal" />
              <show id="exif:pixelXDimension" />
              <show id="exif:pixelYDimension" />
              <show id="exif:exposureTime" />
              <show id="exif:fNumber" />
              <show id="exif:flash" />
              <show id="exif:focalLength" />
              <show id="exif:isoSpeedRatings" />
              <show id="exif:manufacturer" />
              <show id="exif:model" />
              <show id="exif:software" />
              <show id="exif:orientation" />
              <show id="exif:xResolution" />
              <show id="exif:yResolution" />
              <show id="exif:resolutionUnit" />

              <!-- audio:audio aspect -->
              <show id="audio:album" />
              <show id="audio:artist" />
              <show id="audio:composer" />
              <show id="audio:engineer" />
              <show id="audio:genre" />
              <show id="audio:trackNumber" />
              <show id="audio:releaseDate" />
              <show id="audio:sampleRate" />
              <show id="audio:sampleType" />
              <show id="audio:channelType" />
              <show id="audio:compressor" />

              <!-- cm:indexControl aspect -->
              <show id="cm:isIndexed" />
              <show id="cm:isContentIndexed" />

              <!-- cm:geographic aspect -->
              <show id="cm:latitude" />
              <show id="cm:longitude" />

              <!-- cm:storeSelector aspect -->
              <show id="cm:storeName" />

           </field-visibility>
           <appearance>
              <field id="cm:name">
                <control>
                   <control-param name="maxLength">255</control-param>
                </control>
              </field>
              <field id="cm:title">
                 <control template="/org/alfresco/components/form/controls/textfield.ftl" />
              </field>
              <field id="cm:description">
                 <control>
                    <control-param name="activateLinks">true</control-param>
                 </control>
              </field>
              <field id="mimetype">
                 <control template="/org/alfresco/components/form/controls/mimetype.ftl" />
              </field>
              <field id="size">
                 <control template="/org/alfresco/components/form/controls/size.ftl" />
              </field>
              <field id="cm:taggable">
                 <control>
                    <control-param name="compactMode">true</control-param>
                    <control-param name="params">aspect=cm:taggable</control-param>
                    <control-param name="createNewItemUri">/api/tag/workspace/SpacesStore</control-param>
                    <control-param name="createNewItemIcon">tag</control-param>
                 </control>
              </field>
              <field id="cm:categories">
                 <control>
                    <control-param name="compactMode">true</control-param>
                 </control>
              </field>
              <field id="cm:originator" read-only="true" />
              <field id="cm:addressee" read-only="true" />
              <field id="cm:addressees" read-only="true" />
              <field id="cm:sentdate" read-only="true" />
              <field id="cm:subjectline" read-only="true" />
           </appearance>
        </form>

        <!-- Document Library pop-up Edit Metadata form -->
        <form id="doclib-simple-metadata">
           <field-visibility>
              <show id="cm:name" />
              <show id="cm:title" force="true" />
              <show id="cm:description" force="true" />
              <!-- tags and categories -->
              <show id="cm:taggable" for-mode="edit" force="true" />
              <show id="cm:categories" />

              <!-- cm:storeSelector aspect -->
              <show id="cm:storeName" />
           </field-visibility>
           <edit-form template="../documentlibrary/forms/doclib-simple-metadata.ftl" />
           <appearance>
              <field id="cm:name">
                <control>
                   <control-param name="maxLength">255</control-param>
                </control>
              </field>
              <field id="cm:title">
                 <control template="/org/alfresco/components/form/controls/textfield.ftl" />
              </field>
              <field id="cm:description">
                 <control>
                    <control-param name="activateLinks">true</control-param>
                 </control>
              </field>
              <field id="cm:taggable">
                 <control>
                    <control-param name="compactMode">true</control-param>
                    <control-param name="params">aspect=cm:taggable</control-param>
                    <control-param name="createNewItemUri">/api/tag/workspace/SpacesStore</control-param>
                    <control-param name="createNewItemIcon">tag</control-param>
                 </control>
              </field>
              <field id="cm:categories">
                 <control>
                    <control-param name="compactMode">true</control-param>
                 </control>
              </field>
           </appearance>
        </form>

        <!-- Document Library Inline Edit form -->
        <form id="doclib-inline-edit">
           <field-visibility>
              <show id="cm:name" />
              <show id="cm:title" force="true" />
              <show id="cm:description" force="true" />
              <show id="cm:content" force="true" />
           </field-visibility>
           <appearance>
              <field id="cm:name">
                <control>
                   <control-param name="maxLength">255</control-param>
                </control>
              </field>
              <field id="cm:title">
                 <control template="/org/alfresco/components/form/controls/textfield.ftl" />
              </field>
              <field id="cm:content">
                 <control>
                    <control-param name="editorAppearance">explorer</control-param>
                    <control-param name="forceEditor">true</control-param>
                 </control>
              </field>
           </appearance>
        </form>
     </forms>
  </config>

</alfresco-config>
Salvo diversa indicazione, il contenuto di questa pagina è sotto licenza Creative Commons Attribution-ShareAlike 3.0 License