{"id":912,"date":"2013-02-11T10:14:27","date_gmt":"2013-02-11T09:14:27","guid":{"rendered":"http:\/\/www.arvo.es\/dspace\/?p=912"},"modified":"2013-05-14T22:20:04","modified_gmt":"2013-05-14T21:20:04","slug":"tareas-de-curacion-parte-2","status":"publish","type":"post","link":"https:\/\/www.arvo.es\/dspace\/tareas-de-curacion-parte-2\/","title":{"rendered":"Tareas de curaci\u00f3n. Parte 2"},"content":{"rendered":"<p>Bueno lo prometido es deuda, y os deb\u00eda una segunda parte sobre las tareas de curaci\u00f3n.<\/p>\n<p>Como os acordar\u00e9is en la <a title=\"Activar Tareas de curaci\u00f3n. Parte 1\" href=\"http:\/\/www.arvo.es\/dspace\/activar-tareas-de-curation\/\">primera parte<\/a>, se habl\u00f3 de como configurar DSpace para que aceptase las tareas de curaci\u00f3n, es decir,\u00a0 su configuraci\u00f3n, su manejo, etc.. Ahora con este post vamos a proporcionar un esquema b\u00e1sico de una tarea de curaci\u00f3n, junto con alg\u00fan consejo a la hora de acometer la construcci\u00f3n de una tarea de curaci\u00f3n.<\/p>\n<p>El c\u00f3digo, como expliqu\u00e9 en el post anterior, es un fichero java incluido dentro del c\u00f3digo fuente de DSpace, este c\u00f3digo debe tener una estructura b\u00e1sica tal que as\u00ed:<\/p>\n<pre>public class ArvoCuration extends AbstractCurationTask{\r\n\r\nprivate static Logger log = Logger.getLogger(ArvoCuration.class);\r\n\r\n@Override\r\npublic void init(Curator curator, String taskId) throws IOException {\r\n\r\n}\r\n\r\n@Override\r\npublic int perform(DSpaceObject dso) throws IOException {\r\nreturn 0;\r\n}<\/pre>\n<p>Esta clase java debe heredar de la clase AbstractCurationTask,\u00a0 y \u00abusa\u00bb dos m\u00e9todos init y perform. El m\u00e9todo init no es estrictamente necesario incluirlo, pero es aconsejable puesto que esta funci\u00f3n nos permite inicializar valores en nuestro c\u00f3digo es decir, que cuando ejecutamos una tarea de curaci\u00f3n primero se va a ejecutar el m\u00e9todo init, el cual es \u00fatil para inicializar Bases de Datos u otras variables&#8230; En segundo lugar se ejecutar\u00e1 el m\u00e9todo perform, y es aqu\u00ed donde ha de ir el c\u00f3digo que nuestra tarea de curaci\u00f3n ejecutar\u00e1.<\/p>\n<p>El m\u00e9todo perform recibe un par\u00e1metro que indica el objeto que se ha de evaluar, es decir un objeto de una colecci\u00f3n&#8230;. Por lo que para trabajar con \u00e9l hay que hacerle un cast y comprobar que lo que recibimos es un item, ya que a fin de cuentas el prop\u00f3sito de las tareas de curaci\u00f3n es ejecutar tareas de curaci\u00f3n-preservaci\u00f3n (efectuar el mantenimiento) de items en el tiempo.<\/p>\n<p>El retorno de la tarea de curaci\u00f3n depende de que el proceso que se ejecute sea exitoso o fallido, y para ello hay unos c\u00f3digos de error que vienen definidos en el manual de DSpace por lo que debemos de identificar si nuestra tarea se ejecut\u00f3 correctamente o no. Os aconsejo usar la clase Curator invoc\u00e1ndola as\u00ed<\/p>\n<pre>import org.dspace.curate.Curator;<\/pre>\n<p>Esta clase al llamarla tiene definidas unas variables est\u00e1ticas que nos definen de forma textual el c\u00f3digo que ha de devolver el m\u00e9todo perform.<\/p>\n<p>Estas variables son:<\/p>\n<pre>Curator.CURATE_ERROR; (la tarea tiene un error)\r\nCurator.CURATE_SUCCESS; (la tarea se ejecuta correctamente)\r\nCurator.CURATE_FAIL; (la tarea fall\u00f3)\r\nCurator.CURATE_SKIP; (la tarea no se realiz\u00f3)<\/pre>\n<p>De ti depende usar esos c\u00f3digos (CURATE_ERROR&#8230;.) correctamente, puesto que a fin de cuentas tu eres el encargado de programar la tarea de curaci\u00f3n.<\/p>\n<p>Otro apunte importante a la hora de programar nuestra tarea de curaci\u00f3n es usar el log de DSpace para reflejar cualquier error, en caso de fallo. En el esqueleto del c\u00f3digo os dej\u00e9 como se llama al log de DSpace de tal forma que luego haciendo un log.error(\u00ab\u00bb); pod\u00e9is escribir el fallo u otra informaci\u00f3n proporcionada por la tarea. Por ejemplo, si quer\u00e9is notificar por log que la tarea se est\u00e1 ejecutando, pod\u00e9is usar el m\u00e9todo info del log as\u00ed:<\/p>\n<pre>log.info(\"Se ha ejecutado mi tarea\");<\/pre>\n<p>En serio, os recomiendo un uso amplio de esta caracter\u00edstica..<\/p>\n<p>Bueno y esto es (casi) todo. Si necesit\u00e1is mas informaci\u00f3n acerca de las tareas de curaci\u00f3n, enviad vuestras comentarios a este post.<\/p>\n<p>Un saludo, DSpace users.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bueno lo prometido es deuda, y os deb\u00eda una segunda parte sobre las tareas de curaci\u00f3n. Como os acordar\u00e9is en la primera parte, se habl\u00f3 de como configurar DSpace para que aceptase las tareas de curaci\u00f3n, es decir,\u00a0 su configuraci\u00f3n, &hellip;<\/p>\n<p class=\"read-more\"><a href=\"https:\/\/www.arvo.es\/dspace\/tareas-de-curacion-parte-2\/\">Leer m\u00e1s &raquo;<\/a><\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[62,60],"class_list":["post-912","post","type-post","status-publish","format-standard","hentry","category-documentacion_tecnica","tag-curation","tag-javaapi"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.arvo.es\/dspace\/wp-json\/wp\/v2\/posts\/912","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.arvo.es\/dspace\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.arvo.es\/dspace\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.arvo.es\/dspace\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.arvo.es\/dspace\/wp-json\/wp\/v2\/comments?post=912"}],"version-history":[{"count":10,"href":"https:\/\/www.arvo.es\/dspace\/wp-json\/wp\/v2\/posts\/912\/revisions"}],"predecessor-version":[{"id":1027,"href":"https:\/\/www.arvo.es\/dspace\/wp-json\/wp\/v2\/posts\/912\/revisions\/1027"}],"wp:attachment":[{"href":"https:\/\/www.arvo.es\/dspace\/wp-json\/wp\/v2\/media?parent=912"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.arvo.es\/dspace\/wp-json\/wp\/v2\/categories?post=912"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.arvo.es\/dspace\/wp-json\/wp\/v2\/tags?post=912"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}