Actualizar Alfresco desde la versión 5.1.e (201602) hasta la versión 5.1.f (201604)

/ / Blog, Document Management
Parnaso 2.0. Ni un día sin poesía
Conclusiones tras la BeeCon 2016

En ocasiones es necesario aplicar una actualización menor a una implantación de Alfresco para resolver alguno de los problemas identificados. Como norma general, puede decirse que actualizar los artefactos WAR con los incluidos en la nueva distribución es una técnica apropiada para realizar esta tarea. Sin embargo, en muchas ocasiones, los parches se han aplicado sobre otros elementos de la distribución. Veamos a continuación el proceso de actualización desde la versión 5.1.e (201602) hasta la versión 5.1.f (201604), que puede servir de ejemplo para la aplicación de cualquier otra actualización menor.

Comparar las distribuciones

Comenzamos comparando los contenidos de las distribuciones por ficheros de ambas versiones.

$ diff --brief -r alfresco-community-distribution-201602 alfresco-community-distribution-201604
Files alfresco-community-distribution-201602/README.txt and alfresco-community-distribution-201604/README.txt differ
Files alfresco-community-distribution-201602/amps/alfresco-share-services.amp and alfresco-community-distribution-201604/amps/alfresco-share-services.amp differ
Files alfresco-community-distribution-201602/bin/alfresco-mmt.jar and alfresco-community-distribution-201604/bin/alfresco-mmt.jar differ
Files alfresco-community-distribution-201602/solr4/archive-SpacesStore/conf/schema.xml and alfresco-community-distribution-201604/solr4/archive-SpacesStore/conf/schema.xml differ
Files alfresco-community-distribution-201602/solr4/archive-SpacesStore/conf/solrcore.properties and alfresco-community-distribution-201604/solr4/archive-SpacesStore/conf/solrcore.properties differ
Files alfresco-community-distribution-201602/solr4/templates/rerank/conf/solrcore.properties and alfresco-community-distribution-201604/solr4/templates/rerank/conf/solrcore.properties differ
Files alfresco-community-distribution-201602/solr4/templates/test/conf/solrcore.properties and alfresco-community-distribution-201604/solr4/templates/test/conf/solrcore.properties differ
Files alfresco-community-distribution-201602/solr4/templates/vanilla/conf/solrcore.properties and alfresco-community-distribution-201604/solr4/templates/vanilla/conf/solrcore.properties differ
Files alfresco-community-distribution-201602/solr4/templates/without_suggest/conf/solrcore.properties and alfresco-community-distribution-201604/solr4/templates/without_suggest/conf/solrcore.properties differ
Files alfresco-community-distribution-201602/solr4/workspace-SpacesStore/conf/solrcore.properties and alfresco-community-distribution-201604/solr4/workspace-SpacesStore/conf/solrcore.properties differ
Files alfresco-community-distribution-201602/web-server/shared/classes/alfresco/web-extension/share-config-custom.xml and alfresco-community-distribution-201604/web-server/shared/classes/alfresco/web-extension/share-config-custom.xml differ
Files alfresco-community-distribution-201602/web-server/webapps/ROOT.war and alfresco-community-distribution-201604/web-server/webapps/ROOT.war differ
Files alfresco-community-distribution-201602/web-server/webapps/alfresco.war and alfresco-community-distribution-201604/web-server/webapps/alfresco.war differ
Files alfresco-community-distribution-201602/web-server/webapps/share.war and alfresco-community-distribution-201604/web-server/webapps/share.war differ
Files alfresco-community-distribution-201602/web-server/webapps/solr4.war and alfresco-community-distribution-201604/web-server/webapps/solr4.war differ

Como se observa, además de los artefactos WAR de alfresco, share, AOS (root) y solr4 han cambiado otros componentes. Los componentes binarios (alfresco-share-services.amp y alfresco-mmt.jar) pueden ser sobrescritos sin problemas, pero vamos a examinar los cambios en los ficheros de texto para decidir cómo incorporarlos a nuestra implantación.

Examinar cambios en los ficheros de texto

solr4/archive-SpacesStore/conf/schema.xml
Puede ser sobrescrito.

$ diff -c alfresco-community-distribution-201602/solr4/archive-SpacesStore/conf/schema.xml alfresco-community-distribution-201604/solr4/archive-SpacesStore/conf/schema.xml
*** alfresco-community-distribution-201602/solr4/archive-SpacesStore/conf/schema.xml	2016-02-16 16:25:32.000000000 +0100
--- alfresco-community-distribution-201604/solr4/archive-SpacesStore/conf/schema.xml	2016-04-22 20:32:28.000000000 +0200
***************
*** 731,736 ****
--- 731,741 ----
        <dynamicField name="content@m___t@*" type="text___" indexed="true" omitNorms="false" stored="false" multiValued="true" />


+       <!-- Suggestion -->
+       <dynamicField name="suggest_*" type="text_shingle" indexed="false" omitNorms="true" stored="false" multiValued="true" />
+
+       <copyField source="suggest_*" dest="suggest" />
+
     </fields>

     <uniqueKey>id</uniqueKey>

solr4/archive-SpacesStore/conf/solrcore.properties
Añadiré a mano la propiedad alfresco.recordUnindexedNodes en mi instalación, ya que lo tenía modificado respecto a la distribución.

$ diff -c alfresco-community-distribution-201602/solr4/archive-SpacesStore/conf/solrcore.properties alfresco-community-distribution-201604/solr4/archive-SpacesStore/conf/solrcore.properties
*** alfresco-community-distribution-201602/solr4/archive-SpacesStore/conf/solrcore.properties	2016-02-16 16:25:46.000000000 +0100
--- alfresco-community-distribution-201604/solr4/archive-SpacesStore/conf/solrcore.properties	2016-04-22 20:32:40.000000000 +0200
***************
*** 10,16 ****
  #
  # Alfresco version
  #
! alfresco.version=5.1.0 (r@scm-revision@-b@build-number@)


  #
--- 10,16 ----
  #
  # Alfresco version
  #
! alfresco.version=5.2.0 (r@scm-revision@-b@build-number@)


  #
***************
*** 31,37 ****
  # It will reduce the hole checking load
  alfresco.hole.check.after=300000
  alfresco.batch.count=1000
! alfresco.recordUnindexedNodes=false

  # encryption

--- 31,37 ----
  # It will reduce the hole checking load
  alfresco.hole.check.after=300000
  alfresco.batch.count=1000
! alfresco.recordUnindexedNodes=true

  # encryption

solr4/workspace-SpacesStore/conf/solrcore.properties
Añadiré a mano la propiedad alfresco.recordUnindexedNodes en mi instalación, ya que lo tenía modificado respecto a la distribución.

$ diff -c alfresco-community-distribution-201602/solr4/workspace-SpacesStore/conf/solrcore.properties alfresco-community-distribution-201604/solr4/workspace-SpacesStore/conf/solrcore.properties
*** alfresco-community-distribution-201602/solr4/workspace-SpacesStore/conf/solrcore.properties	2016-02-16 16:25:46.000000000 +0100
--- alfresco-community-distribution-201604/solr4/workspace-SpacesStore/conf/solrcore.properties	2016-04-22 20:32:40.000000000 +0200
***************
*** 10,16 ****
  #
  # Alfresco version
  #
! alfresco.version=5.1.0 (r@scm-revision@-b@build-number@)


  #
--- 10,16 ----
  #
  # Alfresco version
  #
! alfresco.version=5.2.0 (r@scm-revision@-b@build-number@)


  #
***************
*** 31,37 ****
  # It will reduce the hole checking load
  alfresco.hole.check.after=300000
  alfresco.batch.count=1000
! alfresco.recordUnindexedNodes=false

  # encryption

--- 31,37 ----
  # It will reduce the hole checking load
  alfresco.hole.check.after=300000
  alfresco.batch.count=1000
! alfresco.recordUnindexedNodes=true

  # encryption

web-server/shared/classes/alfresco/web-extension/share-config-custom.xml
Cambia únicamente un comentario, no incorporaré el cambio a mi instalación.

$ diff -c alfresco-community-distribution-201602/web-server/shared/classes/alfresco/web-extension/share-config-custom.xml alfresco-community-distribution-201604/web-server/shared/classes/alfresco/web-extension/share-config-custom.xml
*** alfresco-community-distribution-201602/web-server/shared/classes/alfresco/web-extension/share-config-custom.xml	2016-02-16 17:00:14.000000000 +0100
--- alfresco-community-distribution-201604/web-server/shared/classes/alfresco/web-extension/share-config-custom.xml	2016-04-22 23:37:38.000000000 +0200
***************
*** 95,103 ****
     <config evaluator="string-compare" condition="Replication">
        <share-urls>
           <!--
!             To discover a Repository Id, browse to the remote server's CMIS landing page at:
!               http://{server}:{port}/alfresco/service/cmis/index.html
!             The Repository Id field is found under the "CMIS Repository Information" expandable panel.

              Example config entry:
                <share-url repositoryId="622f9533-2a1e-48fe-af4e-ee9e41667ea4">http://new-york-office:8080/share/</share-url>
--- 95,102 ----
     <config evaluator="string-compare" condition="Replication">
        <share-urls>
           <!-- ! To locate your current repositoryId go to Admin Console > General > Repository Information:
!               http://localhost:8080/alfresco/s/enterprise/admin/admin-repositoryinfo

              Example config entry:
                <share-url repositoryId="622f9533-2a1e-48fe-af4e-ee9e41667ea4">http://new-york-office:8080/share/</share-url>

Realizar la actualización

Una vez identificados los componentes que requieren actualización en el sistema, se procede a la sobreescritura y modificación de recursos.

$ service alfresco stop

$ cp amps/alfresco-share-services.amp /opt/alfresco/amps
$ cp bin/alfresco-mmt.jar /opt/alfresco/bin

$ cp web-server/webapps/ROOT.war /opt/alfresco/tomcat/webapps/
$ rm -rf /opt/alfresco/tomcat/webapps/ROOT.war

$ cp solr4/archive-SpacesStore/conf/schema.xml /opt/alfresco/solr4/archive-SpacesStore/conf
$ vi /opt/alfresco/solr4/archive-SpacesStore/conf/solrcore.properties
$ vi /opt/alfresco/solr4/workspace-SpacesStore/conf/solrcore.properties
$ cp web-server/webapps/solr4.war /opt/alfresco/tomcat/webapps/
$ rm -rf /opt/alfresco/tomcat/webapps/solr4.war

$ cp web-server/webapps/alfresco.war /opt/alfresco/tomcat/webapps/
$ cp web-server/webapps/share.war /opt/alfresco/tomcat/webapps/
$ /opt/alfresco/bin/apply_amps.sh

$ service alfresco start

Estos sencillos pasos nos permitirán asegurar que en nuestra implantación se han aplicado todas las modificaciones distribuidas por la nueva versión menor. No obstante, en función del estado de vuestro sistema inicial, los pasos descritos pueden variar. Como siempre, os recomendamos que consultéis con algún experto antes de aplicar paso por paso un tutorial como éste.

Unidad de negocio, keensoft