<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.2.2" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>Xnoccio</title>
	<link>http://xnoccio.com</link>
	<description>Blog de Viavansi</description>
	<pubDate>Tue, 23 Feb 2010 18:58:59 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.2</generator>
	<language>en</language>
			<item>
		<title>Viafirma 2.5 - Soporte para PHP</title>
		<link>http://xnoccio.com/564-viafirma-25-soporte-para-php-dnie/</link>
		<comments>http://xnoccio.com/564-viafirma-25-soporte-para-php-dnie/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 17:40:39 +0000</pubDate>
		<dc:creator>Benito Galán Algora</dc:creator>
		
		<category><![CDATA[php]]></category>

		<category><![CDATA[seguridad]]></category>

		<category><![CDATA[viafirma]]></category>

		<guid isPermaLink="false">http://xnoccio.com/564-viafirma-25-soporte-para-php/</guid>
		<description><![CDATA[
En los próximos días liberaremos nueva versión 2.5 de Viafirma caracterizada, principalmente, por el soporte para PHP y mejoras en el proveedor de servicios OpenID. Fueron constantes las peticiones y consultas recibidas por clientes en las que necesitaban de una Autenticación basada en el uso del DNIe desde portales públicos o restringidos (intranet) desarrollados éstos [...]]]></description>
			<content:encoded><![CDATA[<p>
En los próximos días liberaremos nueva versión 2.5 de Viafirma caracterizada, principalmente, por el soporte para PHP y mejoras en el <strong>proveedor de servicios OpenID</strong>. Fueron constantes las peticiones y consultas recibidas por clientes en las que necesitaban de una Autenticación basada en el uso del <strong>DNIe </strong>desde portales públicos o restringidos (intranet) desarrollados éstos en PHP.
</p>
<p>
Con esta nueva versión, y con el uso del nuevo cliente desarrollado para PHP, se permitirá a los integradores incorporar en sus portales los servicios de Autenticación haciendo uso del DNIe y, por supuesto, del resto de Certificados Digitales que ya veníamos soportando.
</p>
<p>
En casa ya nos estamos beneficiando de esta nueva versión, integrando nuestras plataformas <strong>Moodle</strong> (e-learning para uso interno) y <strong>Drupal</strong> (cms) con Viafirma para autenticarnos con el DNIe. Otros desarrollos específicos en PHP, como <strong>TimeTracker</strong> (control de imputaciones horarias), también han sido integrados para permitir el acceso mediante DNIe.
</p>
<p>
<object width="425" height="344">
<param name="movie" value="http://www.youtube.com/v/N1wgdcRON5c&amp;hl=en&amp;fs=1"></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param></object></p>
]]></content:encoded>
			<wfw:commentRss>http://xnoccio.com/564-viafirma-25-soporte-para-php-dnie/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Augi@s, sistema de gestión de residuos pionero en hablar E3L</title>
		<link>http://xnoccio.com/560-augis-primer-sistema-de-gestion-de-residuos-que-habla-en-e3l/</link>
		<comments>http://xnoccio.com/560-augis-primer-sistema-de-gestion-de-residuos-que-habla-en-e3l/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 12:53:19 +0000</pubDate>
		<dc:creator>Jorge Torres Chacón</dc:creator>
		
		<category><![CDATA[oracle]]></category>

		<category><![CDATA[seguridad]]></category>

		<category><![CDATA[xml]]></category>

		<category><![CDATA[e3l]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[estándares]]></category>

		<category><![CDATA[tecnologia]]></category>

		<category><![CDATA[viavansi]]></category>

		<category><![CDATA[software]]></category>

		<category><![CDATA[programación]]></category>

		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://xnoccio.com/560-augis-primer-sistema-de-gestion-de-residuos-que-habla-en-e3l/</guid>
		<description><![CDATA[E3L son las siglas de Environmental Electronic Exchange Language y nace ante la necesidad de establecer un formato estándar de intercambio de datos ambientales entre las distintas comunidades autónomas. Se trata de un proyecto colaborativo, en el que las AA PP implicadas consensúan los flujos de información y los plasman en un lenguaje común con [...]]]></description>
			<content:encoded><![CDATA[<p><strong>E3L</strong> son las siglas de <strong>Environmental Electronic Exchange Language</strong> y nace ante la necesidad de establecer un formato estándar de intercambio de datos ambientales entre las distintas comunidades autónomas. Se trata de un proyecto colaborativo, en el que las AA PP implicadas consensúan los flujos de información y los plasman en un lenguaje común con unas reglas definidas y aceptadas por todos. E3L proporciona no sólo las reglas para comunicar plataformas tecnológicas, sino que conforma el primer diccionario electrónico de datos ambientales (metadatos). E3L cubre por ejemplo la presentación telemática de la Memoria Anual de Gestores de residuos, la Declaración Anual de Productores de residuos, los Documentos de Control y Seguimiento de residuos, etc. Para más información sobre este proyecto se pueden visitar los portales del proyecto:</p>
<ul>
<li><a href="http://www.e3l.es/">http://www.e3l.es/</a></li>
<li><a href="http://www.eterproject.org/">http://www.eterproject.org/</a></li>
</ul>
<p><a href="http://www.e3l.es/"></a><a href="http://www.eterproject.org/"></a>La <strong>Consejería de Medio Ambiente de la Junta de Andalucía</strong> ha apostado fuerte por la iniciativa y como resultado de ello confió en <a href="http://www.viavansi.com" target="_blank">VIAVANSI</a> para construir <strong>Augi@s, un sistema integral de gestión de residuos pionero al hablar E3L.</strong> Augi@s permite completar el ciclo de un documento desde su creación hasta su presentación y firma. El sistema ha sido diseñado para hablar en lenguaje E3L; por ello, el equipo de proyecto, constituido por personal de la Consejería de Medio Ambiente y de <strong>VIAVANSI</strong>, ha participado en la definición del estándar durante su desarrollo. Esto supone al fin una garantía de futuro para el formato de los datos manejados por Augi@s.La aplicación está diseñada con la máxima flexibilidad posible, <strong>externalizando en un API independiente la gestión del formato E3L</strong>, permitiendo adaptarse a los cambios del mismo en poco tiempo, o integrar nuevos elementos como los servicios publicados en <strong>E3S, que ya se encuentran en fase de pruebas en Augias</strong>.Considerando la aceptación del formato E3L a nivel estatal y la posibilidad de exportar dicho formato a otros países de la UE, podemos decir que la plataforma Augi@s se encuentra en una posición privilegiada de cara al futuro y vuelve a demostrar que, en contra de lo que se supone en varios círculos de opinión, Andalucía suele liderar a nivel nacional la innovación en muchos proyectos tecnológicos.</p>
]]></content:encoded>
			<wfw:commentRss>http://xnoccio.com/560-augis-primer-sistema-de-gestion-de-residuos-que-habla-en-e3l/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Formación en la Universidad de Extremadura para Viafirma</title>
		<link>http://xnoccio.com/559-formacion-en-la-universidad-de-extremadura-para-viafirma/</link>
		<comments>http://xnoccio.com/559-formacion-en-la-universidad-de-extremadura-para-viafirma/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 20:18:24 +0000</pubDate>
		<dc:creator>Benito Galán Algora</dc:creator>
		
		<category><![CDATA[viafirma]]></category>

		<guid isPermaLink="false">http://xnoccio.com/559-formacion-en-la-universidad-de-extremadura-para-viafirma/</guid>
		<description><![CDATA[Con motivo de la implantación de nuestra plataforma de Autenticación y Firma Digital VIAFIRMA en la Universidad de Extremadura, los días 17 y 18 de febrero de 2010 se celebraron dos jornadas de formación, cubriendo entre ambas la capacitación a los perfiles Usuarios y Técnicos-Integradores. Esta implantación se suma a la ya realizada en la [...]]]></description>
			<content:encoded><![CDATA[<p>Con motivo de la implantación de nuestra plataforma de Autenticación y Firma Digital <a href="http://www.VIAFIRMA.com" title="ir a la página de la plataforma viafirma">VIAFIRMA</a> en la <a href="http://www.unex.es" title="Ir a la Página de la Universidad">Universidad de Extremadura</a>, los días 17 y 18 de febrero de 2010 se celebraron dos jornadas de formación, cubriendo entre ambas la capacitación a los perfiles Usuarios y <strong>Técnicos-Integradores</strong>. Esta implantación se suma a la ya realizada en la <a href="http://www.unibe.edu.do" title="ir a la página de la UNIBE">Universidad Iberoamericana</a>, y próximamente lo hará con la Universidad de Cádiz.<a href="http://xnoccio.com/wp-content/uploads/2010/02/viafirma-formacion-unex.gif" title="Biblioteca Central"><img src="http://xnoccio.com/wp-content/uploads/2010/02/viafirma-formacion-unex.gif" alt="Biblioteca Central" width="400" heigth="268" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://xnoccio.com/559-formacion-en-la-universidad-de-extremadura-para-viafirma/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Esquema Nacional de Interoperabilidad</title>
		<link>http://xnoccio.com/549-esquema-nacional-de-interoperabilidad/</link>
		<comments>http://xnoccio.com/549-esquema-nacional-de-interoperabilidad/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 13:05:52 +0000</pubDate>
		<dc:creator>Manuel Navarro Almuedo</dc:creator>
		
		<category><![CDATA[facturae]]></category>

		<category><![CDATA[accesibilidad]]></category>

		<category><![CDATA[estándares]]></category>

		<category><![CDATA[tecnologia]]></category>

		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://xnoccio.com/549-esquema-nacional-de-interoperabilidad/</guid>
		<description><![CDATA[Podemos ver que hace ya unos días se ha publicado una regulación del Esquema Nacional de Interoperabilidad o de forma resumida ENI.
En él se recogen una serie de directrices que pretenden ser un conjunFto de normas o pautas a los que las Administraciones Públicas han de ajustarse con el objetivo de permitir y favorecer  la [...]]]></description>
			<content:encoded><![CDATA[<p>Podemos ver que hace ya unos días se ha publicado una regulación del Esquema Nacional de Interoperabilidad o de forma resumida ENI.</p>
<p>En él se recogen una serie de directrices que pretenden ser un conjunFto de normas o pautas a los que las Administraciones Públicas han de ajustarse con el objetivo de permitir y favorecer  la interoperabilidad entre los distintos sistemas de información dentro de la propia Administración.</p>
<p>Podeis ver una introducción <a href="http://www.csae.map.es/csi/pg5e41.htm" target="_new">AQUI </a></p>
<p>Y de forma más extendida en el <a href="http://www.csae.map.es/csi/pdf/Decreto_Interoperabilidad.pdf" target="_new">B.O.E. </a></p>
<p>Este Real Decreto no abandona una visión distribuida de los diferentes sistemas de información, donde cada Administración puede dar respuesta a determinados problemas que sólo surgen dentro de un ámbito muy concreto. Pero por otro lado puede ser muy útil para evitar la reinvención de la rueda, es decir, de soluciones que pueden ser aplicadas en distintas situaciones, algo muy común a día de hoy quizás por desconocimiento, quizás por &#8220;desorganización&#8221; dentro de la propia Administración.</p>
<p>Este texto apuesta claramente por una publicación vía electrónica de todos los servicios de la Admón. de forma organizada a través de Inventarios, gestionados por las Administraciones locales pero a su vez que se integren dentro de un Inventario a nivel Nacional, sin olvidar en ningún momento el aspecto Semántico de los diferentes servicios.</p>
<p>Se hace un guiño a favor del uso de estándares abiertos y de herramientas genéricas, pero a su vez, se puntualiza que se puedan usar otros con la finalidad de favorecer el acceso al ciudadano y el no estancamiento tecnológico.</p>
<p>La Firma y Certificados Electrónicos se ha convertido en una herramienta muy útil y funcional, y como no podía ser de otra forma encontramos un amplio apartado dedicado a esto aplicado a la relación entre sistemas consumidores y publicadores de los distintos servicios.</p>
<p>Sobre los Documentos Electrónicos, se hace referencia al almacenamiento y disponibilidad de dicho documento, siempre bajo unas reglas de seguridad sin pasar por alto la famosa LOPD, siguiendo las principios de integridad, autenticidad, confidencialidad, etc. Se habla también de los formatos en que ha de almacenarse los documentos y de la digitalización de los documentos en soporte papel.</p>
<p>Sin duda, vemos que éste es un texto bastante genérico y más que ser una enumeración de normas/estándares concretos, algo que sería cuanto menos utópico si hablamos a nivel nacional,  se trata de una apuesta y declaración de intenciones bastante condundente.</p>
<p>Después de haberle dedicado unos minutos a este texto y cuál sería su implicación a nivel autonómico, más concretamente en Andalucía, sin duda alguna se me viene a la cabeza una palabra: <a href="http://www.juntadeandalucia.es/xwiki/bin/view/MADEJA/ArqIntRecPlatina" target="_new">PLATINA</a>. Desde hace algún tiempo la Administración Andaluza ya viene observando la problemática de tener un batiburrillo de servicios muchas veces difícil de conectar entre si y viene apostando por esa plataforma como &#8220;anillo único para unirlos a todos&#8221;.</p>
<p>Sin duda, la interoperabilidad entre sistemas,  es un tema que quizás al inicio de los tiempos no se veía tan necesario, pero si no hemos abordado ya a día de hoy: ¡vamos tarde!</p>
]]></content:encoded>
			<wfw:commentRss>http://xnoccio.com/549-esquema-nacional-de-interoperabilidad/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Curiosidad: Estoy seguro de que nos olvidamos de algo&#8230;(Los problemas de la sinceridad)</title>
		<link>http://xnoccio.com/502-curiosidad-estoy-seguro-de-que-nos-olvidamos-de-algolos-problemas-de-la-sinceridad/</link>
		<comments>http://xnoccio.com/502-curiosidad-estoy-seguro-de-que-nos-olvidamos-de-algolos-problemas-de-la-sinceridad/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 09:19:55 +0000</pubDate>
		<dc:creator>Félix García Borrego</dc:creator>
		
		<category><![CDATA[tips]]></category>

		<category><![CDATA[programación]]></category>

		<category><![CDATA[Frikadas]]></category>

		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://xnoccio.com/502-curiosidad-estoy-seguro-de-que-nos-olvidamos-de-algolos-problemas-de-la-sinceridad/</guid>
		<description><![CDATA[Que pasaría si al hacer una entrega de software al cliente le decimos:
“Estoy seguro de que nos olvidamos de algo, y sé que tenemos algunos conflictos pendientes. Al mismo tiempo, necesitamos la cobertura de una versión real, y en su conjunto tiene muy buen aspecto. Hemos corregido unos cuantos conflictos en los últimos días, y [...]]]></description>
			<content:encoded><![CDATA[<p>Que pasaría si al hacer una entrega de software al cliente le decimos:</p>
<p>“<em>Estoy seguro de que nos olvidamos de algo, y sé que tenemos algunos conflictos pendientes. Al mismo tiempo, necesitamos la cobertura de una versión real, y en su conjunto tiene muy buen aspecto. Hemos corregido unos cuantos conflictos en los últimos días, y siempre tendremos las versiones </em>2.6.30.x (<em>parches).</em>“</p>
<p>Pues este es precisamente el mensaje con el Linus Torvalds dio a conocer la versión 2.6.30 del Kernel de Linux!! (el mensaje original en: <a href="http://lkml.org/lkml/2009/6/9/710">http://lkml.org/lkml/2009/6/9/710</a>). Sería impensable que le dijéramos una frase similar a un cliente.</p>
<p>Salvando los posibles problemas con clientes que &#8220;entren en pánico&#8221; debido a este derroche de sinceridad, y ahora que está tan de moda las políticas de calidad, objetivos, métricas, &#8230; Nuestro objetivo es que la calidad de nuestras aplicaciones esté tan demostrada, que en una situación puntual le podamos decir a un cliente una frase tan sincera como ésta, sin que el cliente sienta ningún tipo de angustia.</p>
<blockquote></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://xnoccio.com/502-curiosidad-estoy-seguro-de-que-nos-olvidamos-de-algolos-problemas-de-la-sinceridad/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Resumen Viafirma 2009</title>
		<link>http://xnoccio.com/544-resumen-viafirma-2009/</link>
		<comments>http://xnoccio.com/544-resumen-viafirma-2009/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 13:52:06 +0000</pubDate>
		<dc:creator>Benito Galán Algora</dc:creator>
		
		<category><![CDATA[viafirma]]></category>

		<guid isPermaLink="false">http://xnoccio.com/544-resumen-viafirma-2009/</guid>
		<description><![CDATA[A punto de finalizar este 2009, queremos hacer un repaso de los logros obtenidos por VIAFIRMA en las implantaciones de este año que estamos a punto de terminar.
Sector Público
Como no podía ser de otra forma, nuestro repaso empezará por la implantación con mayor número de operaciones realizadas, es decir, la implantación de Viafirma en la [...]]]></description>
			<content:encoded><![CDATA[<p>A punto de finalizar este 2009, queremos hacer un repaso de los logros obtenidos por <a href="http://www.viafirma.com" title="Sitiio oficial de la plataforma">VIAFIRMA</a> en las implantaciones de este año que estamos a punto de terminar.</p>
<h3>Sector Público</h3>
<p>Como no podía ser de otra forma, nuestro repaso empezará por la implantación con mayor número de operaciones realizadas, es decir, la implantación de Viafirma en la <a href="http://www.fundaciontripartita.org" title="ir al sitio web de la Fundación Tripartita">Fundación Tripartita para la Formación en el Empleo</a>.</p>
<h4>Fundación Tripartita</h4>
<p>En apenas 10 meses desde su paso a producción, han superado los <strong>2,6 millones de transacciones</strong>, entre autenticaciones y firmas, tal y como se resumen en las siguientes gráficas.</p>
<p><a href="http://xnoccio.com/wp-content/uploads/2009/12/trip-01-trans-totales.png" title="Transacciones totales en Tripartita"></a></p>
<p style="text-align: center"><a href="http://xnoccio.com/wp-content/uploads/2009/12/trip-01-trans-totales.png" title="Transacciones totales en Tripartita"><img src="http://xnoccio.com/wp-content/uploads/2009/12/trip-01-trans-totales.png" alt="Transacciones totales en Tripartita" border="0" /></a></p>
<p>Las operaciones fueron realizadas con certificados digitales de varias Autoridades Reconocidas por la plataforma, entre ellas, FNMT, DNIe, Camerfirma, Izempe, Ancert o ANFAC, pero sin duda, el grueso de operaciones fueron realizadas por los certificados de empresa de la FNMT, tal y como se muestra en la siguiente gráfica.</p>
<p align="center"><a href="http://xnoccio.com/wp-content/uploads/2009/12/trip-02-cas.png" title="Reparto de CA"><img src="http://xnoccio.com/wp-content/uploads/2009/12/trip-02-cas.png" alt="Reparto de CA" border="0" /></a></p>
<h5>Ratios de Efectividad</h5>
<p>Las siguientes gráficas muestran el ratio de efectividad de las autenticaciones y firmas completadas. Si tenemos en cuenta que para estas métricas se tomaron valores de cierre de sesión sin finalizar el proceso de firma o autenticación (por ejemplo, un usuario se autentica en el sistema, y por cualquier motivo ajeno al sistema, decide cerrar sin firmar el documento solicitado), estos resultados demuestran un excelente comportamiento.</p>
<p><a href="http://xnoccio.com/wp-content/uploads/2009/12/trip-03-ratio-firm.png" title="Ratio de Efectividad en las Firmas"></a></p>
<p style="text-align: center"><a href="http://xnoccio.com/wp-content/uploads/2009/12/trip-03-ratio-firm.png" title="Ratio de Efectividad en las Firmas"><img src="http://xnoccio.com/wp-content/uploads/2009/12/trip-03-ratio-firm.png" alt="Ratio de Efectividad en las Firmas" border="0" /><br />
</a></p>
<p><a href="http://xnoccio.com/wp-content/uploads/2009/12/trip-03-ratio-auth.png" title="Ratio de Efectividad en las Autenticaciones"></a></p>
<p style="text-align: center"><a href="http://xnoccio.com/wp-content/uploads/2009/12/trip-03-ratio-auth.png" title="Ratio de Efectividad en las Autenticaciones"><img src="http://xnoccio.com/wp-content/uploads/2009/12/trip-03-ratio-auth.png" alt="Ratio de Efectividad en las Autenticaciones" border="0" /></a><br />
Ratio de Efectividad en Autenticaciones</p>
<h4>Junta de Andalucía</h4>
<p>La Junta de Andalucía está estudiando la utilización de Viafirma como cliente de autenticación y firma digital. Gracias a ese uso la Junta de Andalucía se beneficiaría de la usabilidad y neutralidad tecnológica que caracteriza a Viafirma, tal y como se recoge en nuestra <a href="http://www.viafirma.com/viafirma/informacion/tecnicas/index.html#matriz-compatibilidad" title="ver matriz de compatibilidad">Matriz de Compatibilidad</a>, probablemente una de las más completas del mercado.</p>
<p>Estas implantaciones se sumarían a otras implantaciones en el sector público realizadas en República Dominicana, donde organismos como la <strong>Direcc. Gral. de Impuestos Internos</strong> (<a href="http://www.dgii.gov.do" title="ir a sitio oficial de la DGII">DGII</a> - el equivalente a la Agencia Tributaria), o el <strong>Ministerio de Educación Superior, Ciencia y Tecnología</strong> (<a href="http://www.seescyt.gov.do" title="ir al sitio oficial de la SEESCyT">SEESCyT</a>) ya hacen uso de Viafirma para completar transacciones de autenticación y firma mediante el uso de Certificados Digitales reconocidos por el <strong>INDOTEL</strong>, órgano regulador.</p>
<h3>Sector Educativo</h3>
<p>A la implantación de Viafirma el año anterior en la Universidad Iberoamericana (<a href="http://www.unibe.edu.do" title="ir al sitio oficial de la UNIBE">UNIBE</a>), en este 2009 se le suman las implantaciones de Viafirma en la <strong>Universidad de Extremadura</strong> y la <strong>Universidad de Cádiz</strong>, que dispondrá de un escritorio centralizado de firmas.</p>
<h3>Sector Productivo</h3>
<p><strong>Toyota España</strong> integró su ERP con Viafirma para gestionar la firma electrónica de todas sus facturas, haciendo uso del formato <strong>facturae 3.1</strong> que ofrece Viafirma, siendo reconocida por la propia <strong>Agencia Tributaria</strong> como <a href="http://www.aeat.es/wps/portal/Navegacion2?channel=b3dd9c648eda5110VgnVCM1000004ef01e0a____&amp;ver=L&amp;site=56d8237c0bc1ff00VgnVCM100000d7005a80____&amp;idioma=es_ES&amp;menu=0&amp;img=0" title="ver directorio de desarrolladores en la Agencia Tributaria">solución compatible</a> con el formato homologado.</p>
<p>En las Islas Baleares, su <strong>Colegio de Farmacéuticos</strong> (<a href="http://www.cofib.es" title="ir al sitio oficial de COFIB">COFIB</a>), completó la integración con Viafirma de su sistema de gestión para la <strong>Receta Electrónica</strong>.</p>
<h3>Alianzas</h3>
<p>En este 2009 afianzamos colaboraciones comerciales y técnicas con la Autoridad de Certificación <a href="http://www.firmaprofesional.com/index.php?option=com_content&amp;view=article&amp;id=68&amp;Itemid=83" title="ir sitio oficial de firmaprofesional">Firmaprofesional</a>. También extendimos nuestra relación comercial en el mercado latinoamericano, con colaboraciones en <strong>Chile</strong>, <strong>Panamá</strong>, <strong>Costa Rica</strong> y <strong>República Dominicana</strong>.</p>
<h3>Roadmap</h3>
<p>En 2010 Viafirma continuará con la incorporación de nuevas funcionalidades, nuevos formatos de firma, nuevas Autoridades de Certificación reconocidas. Las mejoras introducidas durante este año que terminamos, y las que incluiremos en el próximo, sólo son posibles con el apoyo mostrado en todas nuestras implantaciones, también reflejado en los numerosos correos de apoyo y felicitaciones recibidos y, como no, gracias al excelente equipo que hay detrás de Viafirma.</p>
<p><strong>Por todos ellos, gracias y feliz entrada de año 2010 !!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://xnoccio.com/544-resumen-viafirma-2009/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MiniTip - Trabajar con archivos odt de OpenOffice en modo texto</title>
		<link>http://xnoccio.com/532-minitip-trabajar-con-archivos-odt-de-openoffice-en-modo-texto/</link>
		<comments>http://xnoccio.com/532-minitip-trabajar-con-archivos-odt-de-openoffice-en-modo-texto/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 19:33:33 +0000</pubDate>
		<dc:creator>Antonio Santos</dc:creator>
		
		<category><![CDATA[tips]]></category>

		<category><![CDATA[software]]></category>

		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://xnoccio.com/532-minitip-trabajar-con-archivos-odt-de-openoffice-en-modo-texto/</guid>
		<description><![CDATA[Hace unos días se planteaba en uno de los equipos de trabajo una duda muy concreta: cómo buscar una cadena de texto en cientos de archivos de OpenOffice de manera eficiente.Un fichero odt no es más que un conjunto de ficheros xml comprimidos en formato zip por lo que, afortunadamente, se pueden utilizar herramientas diseñadas para trabajar [...]]]></description>
			<content:encoded><![CDATA[<p>Hace unos días se planteaba en uno de los equipos de trabajo una duda muy concreta: cómo buscar una cadena de texto en cientos de archivos de <em>OpenOffice</em> de manera eficiente.Un fichero <em>odt</em> no es más que un conjunto de ficheros <em>xml</em> comprimidos en formato <em>zip</em> por lo que, afortunadamente, se pueden utilizar herramientas diseñadas para trabajar con texto plano una vez que se descomprime el fichero binario. Sin embargo, los ficheros <em>xml</em> contenidos no están pensados para ser interpretados por personas, sino por ordenadores, por lo que es necesario un proceso previo del contenido. La utilidad <a href="http://stosberg.net/odt2txt/">odt2txt</a> (disponible en los repositorios de las principales distribuciones) se encarga de ello y, a partir de un fichero que se pasa como parámetro, escribe por la salida estándar sus contenidos, dándoles un formato más amigable. En Ubuntu se puede instalar mediante un simple</p>
<p><code>sudo apt-get install odt2txt</code></p>
<p>Una vez que está instalada, ya se puede integrar en distintos scripts que hagan lo que necesitemos. Por ejemplo, para localizar los ficheros <em>odt</em> que contienen una cadena de texto dentro de una carpeta y sus subdirectorios podemos utilizar el siguiente:</p>
<p><code>#!/bin/sh<br />
for i in `find . -name *.odt`; do<br />
if [ `odt2txt "$i" | grep -iE "$@" | wc -l` -gt 0 ]; then<br />
echo "Texto encontrado en $i"<br />
fi<br />
done<br />
</code></p>
<p>que se utilizaría de la siguiente manera:</p>
<p><code><br />
$ ./find_in_odt.sh "cadena de texto a buscar"<br />
</code></p>
<p>El script anterior cuenta con la limitación de que no está preparado para funcionar con carpetas cuyo nombre contiene espacios. Otra opción podría ser la búsqueda de diferencias entre dos ficheros:</p>
<p><code>#!/bin/sh<br />
odt2txt $1 &gt; tempfile1<br />
odt2txt $2 &gt; tempfile2<br />
diff -u tempfile1 tempfile2<br />
rm tempfile1 tempfile2<br />
</code></p>
<p>ejecutable como (recomiendo instalar <em>colordiff</em> para ser usado en lugar del <em>diff</em> tradicional):</p>
<p><code>$ ./odtdiff.sh fichero1a.odt fichero1b.odt</code></p>
<p>Más aún: podemos integrar <em>odt2txt</em> con sistemas de control de versiones como <a href="http://git-scm.com">Git</a> (usado por el kernel de Linux, Gnome, Android o Ruby on Rails entre otros) para conseguir integración con ficheros de OpenOffice (útil para ver los cambios entre las diferentes versiones en el repositorio). Para ello, basta con añadir al archivo de configuración <em>.gitconfig</em> (presente en el directorio de usuario en Linux y OSX)</p>
<p><code>[diff "odf"]<br />
textconv=odt2txt<br />
</code>y luego, dentro del repositorio del proyecto, crear o modificar el archivo <em>.git/info/attributes</em> para que contenga</p>
<p><code><br />
*.ods diff=odf<br />
*.odt diff=odf<br />
*.odp diff=odf<br />
</code></p>
<p>Espero que alguno de estos consejillos os sirva de utilidad, ¡un saludo!</p>
]]></content:encoded>
			<wfw:commentRss>http://xnoccio.com/532-minitip-trabajar-con-archivos-odt-de-openoffice-en-modo-texto/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ejemplo de reutilización de código</title>
		<link>http://xnoccio.com/466-ejemplo-de-reutilizacion-de-codigo/</link>
		<comments>http://xnoccio.com/466-ejemplo-de-reutilizacion-de-codigo/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 09:28:17 +0000</pubDate>
		<dc:creator>Félix García Borrego</dc:creator>
		
		<category><![CDATA[Ocio]]></category>

		<category><![CDATA[Frikadas]]></category>

		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://xnoccio.com/466-ejemplo-de-reutilizacion-de-codigo/</guid>
		<description><![CDATA[Un ejemplo de reutilización de código e ingeniería de &#8220;software&#8221; en Disney. Tengo la sensación de que no pasaría los test de duplicación de código&#8230;


Visto en Con Código
]]></description>
			<content:encoded><![CDATA[<p>Un ejemplo de reutilización de código e ingeniería de &#8220;software&#8221; en Disney. Tengo la sensación de que no pasaría los test de duplicación de código&#8230;</p>
<div><object type="application/x-shockwave-flash" data="http://www.koreus.com/video/disney-ressemblance" height="320" width="400">
<param name="movie" value="http://www.koreus.com/video/disney-ressemblance"><embed src="http://www.koreus.com/video/disney-ressemblance" type="application/x-shockwave-flash" width="400" height="300"></embed></object></div>
<p>Visto en <a href="http://leandronardulli.com.ar/reutilizacion-de-codigo-en-disney/">Con Código</a></p>
]]></content:encoded>
			<wfw:commentRss>http://xnoccio.com/466-ejemplo-de-reutilizacion-de-codigo/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Por fin un estándar con el que entretejer nuestras aplicaciones.</title>
		<link>http://xnoccio.com/530-webbeans-java-context-and-dependenty-injection-jsr-299/</link>
		<comments>http://xnoccio.com/530-webbeans-java-context-and-dependenty-injection-jsr-299/#comments</comments>
		<pubDate>Sun, 25 Oct 2009 22:45:22 +0000</pubDate>
		<dc:creator>Félix García Borrego</dc:creator>
		
		<category><![CDATA[javahispano]]></category>

		<category><![CDATA[análisis]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[programación]]></category>

		<category><![CDATA[viavansi]]></category>

		<category><![CDATA[software]]></category>

		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://xnoccio.com/530-webbeans-java-context-and-dependenty-injection-jsr-299/</guid>
		<description><![CDATA[Recientemente se ha liberado la primera versión estable de Weld, la implementación de referencia de Web Beans (Java Context and Dependenty Injection - JSR 299). Y aunque puede parecer una liberación cualquiera, en este caso estamos ante un evento realmente importante para el mundillo Java.
¿Por qué es importante esta liberación?

Por fin tenemos un estándar Java [...]]]></description>
			<content:encoded><![CDATA[<p>Recientemente se ha liberado la primera versión estable de Weld, la implementación de referencia de Web Beans (<em><strong>Java Context and Dependenty Injection </strong>- </em>JSR 299). Y aunque puede parecer una liberación cualquiera, en este caso estamos ante un evento realmente importante para el mundillo Java.</p>
<p><strong>¿Por qué es importante esta liberación?</strong></p>
<ul>
<li>Por fin tenemos un <strong>estándar Java para la inyección</strong>, publicación, localización y búsqueda de componentes.</li>
<li>Promete una mejor <strong>orquestación</strong> entre componentes JEE, evitando los típicos problemas de interoperabilidad entre Beans Spring, componentes Seam,  Wicket,  JSF, EL, etc..)</li>
<li>Un <strong>remplazo estándar a las diferentes soluciones de inyección e IoC </strong>como Spring IoC, el prometedor Google Guice o el muy utilizado por nosotros Jboss Seam annotations.</li>
<li><a href="http://xnoccio.com/187-el-falso-santo-grial-de-j2ee-y-la-nueva-esperanza-jee/" title="El infierno XML">Fin del infierno XML</a>, definiendo un mecanismo estándar independiente de ficheros de definición XML, que junto con JSF 2.0, Servlet 3.0, JPA, Jax-ws, etc&#8230; simplifican el desarrollo JEE.</li>
</ul>
<p><strong>¿Consecuencias para la industria a medio plazo?</strong></p>
<ul>
<li>Es demasiado pronto para saberlo, pero&#8230;<br />
<strong>¿Quizás el fin de la guerra de frameworks se inyección?</strong>&#8230;. (Google Guice vs <a href="http://www.xnoccio.com/300-spring-vs-seam-la-guerra-ha-empezado/" title="Spring vs Seam">Spring vs Jboss Seam</a>).  Consiguiendo un efecto similar al que consiguió JPA/JDO estandarizando el acceso a datos.</li>
<li>Por fin una especificación JEE con la que construir aplicaciones complejas de forma sencilla.</li>
<li>En un momento en el que muchas organizaciones están intentando estandarizar sus desarrollos, llegando incluso a restringir o imponer las tecnologías utilizadas, la preselección de implementaciones como  Spring IoC o Seam carecerá de sentido. Siendo mucho más coherente <strong>la recomendación de estándares</strong> en lugar de restringir la evolución natural de la tecnología y la sana competición entre sus diferentes implementaciones.</li>
</ul>
<p><strong>¿Consecuencia para nosotros?</strong></p>
<ul>
<li>Ninguna&#8230;. Gracias a nuestra apuesta por Jboss Seam (desde hace ya unos años), esta especificación se encontraba ya en nuestra hoja de ruta antes incluso de que fuese un Draft, por lo que para nosotros será suficiente con una mínima adaptación al estándar.</li>
<li>La implementación es estable, la especificación muy bien pensada,  y en las pruebas que hemos realizado con la beta, ha demostrado que consigue simplificar los desarrollos y hacer más comprensible el <strong>&#8220;oscuro arte de la inyección de componentes&#8221;</strong>.</li>
<li>En breve empezaremos a usarla en algún proyecto piloto (que pueda asumir el riesgo de I+D asociado), analizaremos en detalle los posibles problemas que puedan surgir, y <strong>si todo se comporta como promete</strong> a mediados de 2010 empezaremos a usar la nueva especificación en nuestros proyectos Java.</li>
</ul>
<p><strong>¿Defectos?</strong></p>
<ul>
<li>Llega demasiado tarde. Otros frameworks llevan, aunque de una forma mucho menos limpia,  ofreciendo algo similar desde hace ya mucho tiempo.</li>
<li>Todavía no conocemos sus defectos. Y eso es un gran problema ya que hasta que no conozcamos sus problemáticas asociadas no será seguro su uso en proyectos de envergadura.</li>
<li>Esperemos que en la huida del <a href="http://xnoccio.com/187-el-falso-santo-grial-de-j2ee-y-la-nueva-esperanza-jee/">infierno de los ficheros de configuración XML</a>, no nos metamos en  las <strong>tinieblas del uso de inyección e IoC para todo</strong>. Ya que una aplicación con una gran cantidad de componentes, comportamientos o atributos que dependen de la inyección hace muy complicada la comprensión de su funcionamiento.</li>
</ul>
<p>En definitiva, todo indica que estamos antes una de las piezas clave del próximo JEE 6.</p>
]]></content:encoded>
			<wfw:commentRss>http://xnoccio.com/530-webbeans-java-context-and-dependenty-injection-jsr-299/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Guía de migración de proyectos Java a Maven</title>
		<link>http://xnoccio.com/519-guia-de-migracion-de-proyectos-java-a-maven/</link>
		<comments>http://xnoccio.com/519-guia-de-migracion-de-proyectos-java-a-maven/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 11:04:51 +0000</pubDate>
		<dc:creator>Félix García Borrego</dc:creator>
		
		<category><![CDATA[javahispano]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[tips]]></category>

		<category><![CDATA[programación]]></category>

		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://xnoccio.com/519-guia-de-migracion-de-proyectos-java-a-maven/</guid>
		<description><![CDATA[Objetivos
El objetivo de este artículo es servir de guía básica para la migración manual de proyectos Java no Maven a entorno Maven. Pensado y dirigido especialmente a personas con poca  experiencia previa en Maven, pero con algún conocimiento previo.
Preparación del proyecto
Como es obvio, para migrar un proyecto Java a Maven, deberemos disponer de sus fuentes [...]]]></description>
			<content:encoded><![CDATA[<h3 class="heading-1-1" id="HObjetivos"><span>Objetivos</span></h3>
<p>El objetivo de este artículo es servir de guía básica para la migración manual de proyectos Java no Maven a entorno Maven. Pensado y dirigido especialmente a personas con poca  experiencia previa en Maven, pero con algún conocimiento previo.</p>
<h3 class="heading-1-1" id="HPreparaciF3ndelproyecto"><span>Preparación del proyecto</span></h3>
<p>Como es obvio, para migrar un proyecto Java a Maven, deberemos disponer de sus fuentes y todas las librerías dependientes.</p>
<p>Ya que vamos a realizar modificación estructurales importantes en el proyecto, conviene asegurarnos de que los fuentes no están conectados a ningún sistema de control de versiones como Subversion. Para realizar esto, podemos o bien eliminar manualmente todos los directorios .svn de nuestro proyecto o bien desde Eclipse desconectar el proyecto.</p>
<p>Si lo vamos a realizar de forma manual, debemos asegurarnos de eliminar todos los directorios .svn (o .CVS si el proyecto a migrar estuviese conectado a un CVS) A modo de ejemplo, en Linux podemos ejecutar el siguiente comando desde el directorio del proyecto para eliminar todas las referencias a carpetas &#8216;.svn&#8217;:</p>
<p class="code">&nbsp;</p>
<pre>rm -rf `find . -type d -name .svn`</pre>
<p>Será mucho más sencillo hacerlo de forma automática desde Eclipse. Para desconectar el proyecto, teniéndolo seleccionado pulsaremos sobre el botón derecho del ratón: Team -&gt; Disconnect.</p>
<p><a href="http://xnoccio.com/wp-content/uploads/2009/10/migracion2.png" title="Desconectar SVN desde Eclipse"><img src="http://xnoccio.com/wp-content/uploads/2009/10/migracion2.png" alt="Desconectar SVN desde Eclipse" height="363" width="398" /></a></p>
<h3 class="heading-1-1" id="HAdaptaciF3ndelproyecto"><span>Adaptación del proyecto</span></h3>
<p>Aunque la estructura por defecto Maven puede ser modificada, es muy recomendable <strong>adaptar la organización del proyecto</strong> a migrar a la estructura por defecto más generalizada:</p>
<p><a href="http://xnoccio.com/wp-content/uploads/2009/10/imagen1.png" title="estructura Maven"><img src="http://xnoccio.com/wp-content/uploads/2009/10/imagen1.png" alt="estructura Maven" height="232" width="460" /></a></p>
<p>Para hacer esta modificación de la estructura hay que tener especial cuidado en algunos aspecto o convenciones Maven:</p>
<ul class="star">
<li>Los ficheros de recursos: Maven hace una distinción entre los ficheros de clases java y los ficheros de recursos .properties y XML&#8217;s y, de hecho, salvo que le digamos lo contrario, no hará ningún tratamiento de los ficheros no java que se encuentren en el directorio src/main/java. Por este motivo, tendremos que localizar todos los ficheros de recursos (properties, XML&#8217;s) que se encuentran en el directorio java y moverlos al directorio resources (src/main/resources).</li>
<li>Eliminar la carpeta classes. Es muy común que proyectos no Maven tengan en su carpeta WEB-INF/classes los compilados del proyecto. Esta situación no sólo no es recomendable sino que puede producir problemas, por lo que los eliminaremos confiando en Maven para su generación cuando sea necesario.</li>
</ul>
<h3 class="heading-1-1" id="HDefinirelpomxmldelproyecto"><span>Definir el pom.xml del proyecto</span></h3>
<p>Una vez que la estructura del proyecto se ha adaptado a la filosofía Maven, el siguiente paso es definir el pom.xml del proyecto.</p>
<p>Partiremos de un fichero <a href="http://descargas.viavansi.com/wiki/pom.xml" title="Pom de ejemplo">pom.xml</a> básico. Este fichero de origen no tiene dependencias; durante el proceso lo adaptaremos y posteriormente iremos refinando la configuración hasta alcanzar una &#8220;mavenización&#8221; completa del proyecto.</p>
<p>Una vez colocado el pom.xml en el raíz de la aplicación, lo modificamos indicando el nombre del proyecto y la información básica relativa a los desarrolladores, organización y repositorio de dependencias utilizado.</p>
<p>Antes de continuar y añadir las dependencias, podemos hacer una comprobación previa y verificar que efectivamente nuestro IDE, en este caso Eclipse, reconoce correctamente la nueva estructura del proyecto.</p>
<p>Para ello nos vamos a la consola y en el directorio en el que se encuentra nuestro proyecto ejecutamos la siguiente orden:</p>
<p>mvn clean eclipse:eclipse</p>
<p>(Requiere disponer de Maven correctamente instalado en la máquina).</p>
<p>Si la configuración del entorno es correcta, obtendremos una salida similar a esta:</p>
<p class="code">&nbsp;</p>
<pre>[INFO] Scanning <span class="java-keyword">for</span> projects&#8230;
[INFO] Searching repository <span class="java-keyword">for</span> plugin with prefix: &#8216;eclipse&#8217;.
[INFO] &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;
[INFO] Building ejemplo
[INFO]    task-segment: [clean, eclipse:eclipse]
[INFO] &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;
[INFO] [clean:clean]
[INFO] Deleting file set: /home/felix/workspaces/ejemplo/target (included: [**], excluded: [])
[INFO] Preparing eclipse:eclipse
[INFO] No goals needed <span class="java-keyword">for</span> project - skipping
[INFO] [eclipse:eclipse]
[INFO] Adding support <span class="java-keyword">for</span> WTP version 1.5.
[INFO] Using source status cache: /home/felix/workspaces/ejemplo/target/mvn-eclipse-cache.properties
[INFO] File /home/felix/workspaces/ejemplo/.project already exists.
       Additional settings will be preserved, run mvn eclipse:clean <span class="java-keyword">if</span> you want old settings to be removed.
[INFO] Wrote Eclipse project <span class="java-keyword">for</span> <span class="java-quote">&#8220;</span>ejemplo<span class="java-quote">&#8220;</span> to /home/felix/workspaces/ejemplo.
[INFO]
       Sources <span class="java-keyword">for</span> some artifacts are not available.
       Please run the same goal with the -DdownloadSources=<span class="java-keyword">true</span> parameter in order to check remote repositories <span class="java-keyword">for</span> sources.
       List of artifacts without a source archive:
         o javax.servlet:servlet-api:2.4
         o javax.servlet.jsp:jsp-api:2.1
         o junit:junit:3.8.1 

[INFO] &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;
[INFO] BUILD SUCCESSFUL
[INFO] &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;
[INFO] Total time: 4 seconds
[INFO] Finished at: Wed Sep 3 11:54:28 CET 2008
[INFO] Final Memory: 10M/80M
[INFO] &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</pre>
<p>Nos vamos a Eclipse, refrescamos el proyecto (F5 teniendo seleccionado el proyecto) y comprobamos que la nueva estructura es correcta.</p>
<p>Ahora que hemos comprobado que eclipse ha reconocido la nueva estructura, el siguiente paso es definir en nuestro pom.xml las dependencias. Para hacer esto eliminamos todos los .jar que se encuentran en el directorio /WEB-INF/lib y nos quedamos con una copia de ellos para posteriormente ir resolviendo las dependencias del proyecto original. Una recomendación es cortar la carpeta /WEB-INF/lib a otra ruta de nuestro disco.</p>
<h3 class="heading-1-1" id="HResoluciF3ndedependencias"><span>Resolución de dependencias</span></h3>
<p>Esta es la fase más delicada del proceso, ya que debemos asegurarnos de que todas las dependencias del proyecto quedan correctamente declaradas en el fichero pom.xml. Para realizar esta tarea es recomendadle utilizar alguna aplicación web que nos ayude a la localización de las librerías, como por ejemplo <span class="wikiexternallink"><a href="http://www.mvnrepository.com/">MvnRepository</a></span> o <span class="wikiexternallink"><a href="http://www.mvnbrowser.com/">MvnBrowser</a></span> (recomendada), en la que podremos buscar cada uno de nuestros jar y encontrar la definición en el pom.xml que debemos utilizar.</p>
<p><a href="http://xnoccio.com/wp-content/uploads/2009/10/migracion4.png" title="Migración de proyectos maven con mvnBrowser"><img src="http://xnoccio.com/wp-content/uploads/2009/10/migracion4.png" alt="Migración de proyectos maven con mvnBrowser" /></a></p>
<p>Gracias a esta web, una vez que tengamos localizada la dependencia, solo tendremos que copiar el bloque POM Dependency a nuestro fichero pom.xml.</p>
<p>Iremos repitiendo este proceso de forma iterativa para todos nuestras librerías .jar y añadiendo la definición de la dependencia a nuestra zona de dependencies, con ciertas salvedades y consideraciones que introducimos a continuación.</p>
<h4 class="heading-1-1-1" id="HConsideracionesespeciales"><span>Consideraciones especiales</span></h4>
<p>Hay ocasiones en las que determinar la definición de la dependencia en nuestro pom.xml puede no ser una tarea trivial. Se comentan a continuación los mecanismos de actuación recomendados según diversas casuísticas:</p>
<ul>
<li>
<h5 class="heading-1-1-1-1" id="HNoseindicalaversiF3ndelalibrerEDaenelnombredelfichero"><span>No se indica la versión de la librería en el nombre del fichero.</span></h5>
</li>
</ul>
<p>Por ejemplo, podemos encontrarnos una librería llamada axis-ant.jar, por lo que tendremos que averiguar previamente la versión de la librería de cara a definir la dependencia en el fichero pom.xml. Para esto suele ser muy efectivo descomprimir la librería y consultar el fichero /META-INF/MANIFEST.MF. A modo de ejemplo, en dicha librería mencionada observaríamos una linea similar a la siguiente: &#8220;Implementation-Version: 1.2.1 2243 June 14 2005&#8243;. Una vez que conozcamos la versión podremos realizar la búsqueda de la forma usual. , 1.1.1.1. Sabemos que la librería fue generada por maven, pero no conocemos su definición.</p>
<p>No conocemos el groupId, artifactId, etc. Podemos descomprimir el .jar y acceder al fichero pom.xml que se encuentra en /META-INF/maven para comprobar el groupId, artifactId y versión de la dependencia.</p>
<ul>
<li>
<h5 class="heading-1-1-1-1" id="HDependenciasespecialesJEE"><span>Dependencias especiales JEE. </span></h5>
</li>
</ul>
<p>Algunos jars, como por ejemplo servlet.jar, son aportados por el contenedor de aplicaciones, por lo que tendremos que definirlas marcándolas como <em>provided</em>. Esto le indica a Maven que estas librerías pueden ser utilizadas en tiempo de compilación, pero no serán agregadas al empaquetado final. Para declarar una dependencia de esta forma incorporaremos en nuestro pom.xml un código como este:</p>
<p class="code">&nbsp;</p>
<pre>&lt;dependency&gt;
      &lt;groupId&gt;javax.servlet&lt;/groupId&gt;
      &lt;artifactId&gt;servlet-api&lt;/artifactId&gt;
      &lt;version&gt;2.4&lt;/version&gt;
      &lt;scope&gt;provided&lt;/scope&gt;
&lt;/dependency&gt;</pre>
<ul>
<li>
<h5 class="heading-1-1-1-1" id="HLibrerEDasyaconsideradasenlasdependenciastransitivas"><span>Librerías ya consideradas en las dependencias transitivas</span></h5>
</li>
</ul>
<p>Muchas de las dependencias dependen a su vez de otras librerías, por lo que Maven añadirá de forma transitiva nuevas librerías a nuestro proyecto. En estos casos no necesitamos definir estas nuevas dependencias transitivas en nuestro pom.xml. Como ejemplo, supongamos que un proyecto depende de estas librerías:</p>
<ul class="star">
<li>xalan-2-6.0.jar</li>
<li>xercesImpl</li>
<li>xml-apis</li>
</ul>
<p>Al buscar la librería xalan-2-6.0.jar, observamos que la librería depende a su vez de las otras dos librerías. Por ello, para este ejemplo bastaría con declarar la dependencia a xalan-2-6.0.jar en nuestro pom.xml. <a href="http://xnoccio.com/wp-content/uploads/2009/10/migracion5.png" title="Dependencias transitivas."><img src="http://xnoccio.com/wp-content/uploads/2009/10/migracion5.png" alt="Dependencias transitivas." /></a></p>
<ul>
<li>
<h5 class="heading-1-1-1-1" id="HConflictosentrelibrerEDas"><span>Conflictos entre librerías</span></h5>
</li>
</ul>
<p>En ocasiones nos podemos encontrar con que dos librerías tengan en sus dependencias a una misma tercera librería, pero de distinta versión. Ello haría que maven incluyese en nuestro Classpath 2 versiones de una misma librería, originando conflictos por duplicado de clases. En ese caso debe declararse en la dependencia de una de ellas una directiva para excluir la descarga de la librería conflictiva.</p>
<p>Por ejemplo, en un proyecto deseamos utilizar la librería siguiente:</p>
<p class="code">&nbsp;</p>
<pre>&lt;artifactId&gt;jaxws-api&lt;/artifactId&gt;
&lt;groupId&gt;javax.xml.ws&lt;/groupId&gt;
&lt;version&gt;2.1-1&lt;/version&gt;</pre>
<p>Y tenemos dependencia a com.sun.xml.ws / jaxws-rt, esta librería se trae como dependencia transitiva otra versión de la librería mencionada anteriormente. Declaramos una exclusión para evitarlo:</p>
<p class="code">&nbsp;</p>
<pre>&lt;dependency&gt;
  &lt;groupId&gt;com.sun.xml.ws&lt;/groupId&gt;
  &lt;artifactId&gt;jaxws-rt&lt;/artifactId&gt;
  &lt;version&gt;2.1.4&lt;/version&gt;
  &lt;exclusions&gt;
    &lt;exclusion&gt;
      &lt;artifactId&gt;jaxws-api&lt;/artifactId&gt;
      &lt;groupId&gt;javax.xml.ws&lt;/groupId&gt;
    &lt;/exclusion&gt;
  &lt;/exclusions&gt;
&lt;/dependency&gt;</pre>
<ul>
<li>
<h5 class="heading-1-1-1-1" id="HTenemosunalibrerEDaqueseencuentraenlosrepositorios2CperonohemospodidoaveriguarelnFAmerodeversiF3n"><span>Tenemos una librería que se encuentra en los repositorios, pero no hemos podido averiguar el número de versión. </span></h5>
</li>
</ul>
<p>En esta situación, si la librería no parece problemática, podríamos optar por elegir la última versión de la dependencia. En el caso de que consideremos que la versión que utiliza el proyecto puede originar problemas, lo mejor es añadir esta librería manualmente a nuestro repositorio (como si fuese una librería específica del proyecto), según se explica en el próximo punto.</p>
<ul>
<li>
<h5 class="heading-1-1-1-1" id="HLalibrerEDaesespecEDficadelproyecto"><span>La librería es específica del proyecto. </span></h5>
</li>
</ul>
<p>En estos casos tendremos que subir la dependencia a nuestro repositorio de librerías y, para evitar conflictos posteriores, se recomienda que sea subida con el mismo groupId de nuestro proyecto. Supongamos que migrando un proyecto nos topamos con librería example1.jar que no se encuentra en ningún repositorio público. En este caso la subimos a nuestro repositorio por ejemplo con la siguiente definición:</p>
<p class="code">&nbsp;</p>
<pre>&lt;dependency&gt;
    &lt;groupId&gt;com.viavansi.examples&lt;/groupId&gt;
    &lt;artifactId&gt;example1&lt;/artifactId&gt;
    &lt;version&gt;0.0.1&lt;/version&gt;
&lt;/dependency&gt;</pre>
<p>En la siguiente figura vemos cómo desplegamos una librería a Artifactory:</p>
<p><a href="http://xnoccio.com/wp-content/uploads/2009/10/artifactory.png" title="Artifactory"><img src="http://xnoccio.com/wp-content/uploads/2009/10/artifactory.png" alt="Artifactory" /></a></p>
<h3 class="heading-1-1" id="HComprobaciF3ndedependencias"><span>Comprobación de dependencias</span></h3>
<p>Una vez que hayamos finalizado este proceso de definición de todas las dependencias en nuestro pom.xml, ejecutaremos en consola <em>mvn dependency:tree</em> (situados en el directorio donde se encuentre el fichero pom.xml del proyecto) para comprobar que las dependencias que se han incorporado al proyecto son las correctas. Este paso de verificación es muy importante en las migraciones de este tipo de proyectos, ya que es muy posible que alguna dependencia transitiva genere problemas. Como ejemplo, podemos observar la siguiente salida en la que comprobamos que no hay dependencias transitivas que entren en conflicto con alguna de nuestras librerías:</p>
<p class="code">&nbsp;</p>
<pre>[INFO] [dependency:tree]
[INFO] com.viavansi.examples.examples1:war:0.0.1
[INFO] +- junit:junit:jar:3.8.1:test
[INFO] +- javax.servlet.jsp:jsp-api:jar:2.1:provided
[INFO] +- javax.servlet:servlet-api:jar:2.4:provided (scope not updated to compile)
[INFO] +- javax.activation:activation:jar:1.1:compile
[INFO] +- avalon-framework:avalon-framework-impl:jar:4.1.5:compile
[INFO] +- axis:axis-ant:jar:1.2.1:compile
[INFO] +- axis:axis:jar:1.2.1:compile
[INFO] +- javax.mail:mail:jar:1.3.1:compile
[INFO] +- commons-beanutils:commons-beanutils:jar:1.6:compile
[INFO] +- commons-codec:commons-codec:jar:1.3:compile
[INFO] +- commons-collections:commons-collections:jar:3.2:compile
[INFO] +- commons-dbcp:commons-dbcp:jar:1.2.2:compile
[INFO] +- commons-digester:commons-digester:jar:1.6:compile
[INFO] |  - xml-apis:xml-apis:jar:1.0.b2:compile
[INFO] +- commons-discovery:commons-discovery:jar:0.2:compile
[INFO] +- commons-httpclient:commons-httpclient:jar:3.1:compile
[INFO] +- commons-io:commons-io:jar:1.3.1:compile
[INFO] +- commons-lang:commons-lang:jar:2.2:compile
[INFO] +- commons-logging:commons-logging:jar:1.1:compile
[INFO] |  +- logkit:logkit:jar:1.0.1:compile
[INFO] |  - avalon-framework:avalon-framework:jar:4.1.3:compile
[INFO] +- commons-pool:commons-pool:jar:1.3:compile
[INFO] +- displaytag:displaytag:jar:1.1:compile
[INFO] +- displaytag:displaytag-export-poi:jar:1.1:compile
[INFO] +- dom4j:dom4j:jar:1.6.1:compile
[INFO] +- org.extremecomponents:extremecomponents:jar:1.0.1:compile
[INFO] +- com.lowagie:itext:jar:1.4.8:compile
[INFO] +- oro:oro:jar:2.0.7:compile
[INFO] +- javax.xml:jaxrpc-api:jar:1.1:compile
[INFO] +- javax.servlet:jstl:jar:1.1.2:compile
[INFO] +- log4j:log4j:jar:1.2.8:compile
[INFO] +- com.oracle:ojdbc14:jar:9.0.2.0.0:compile
[INFO] +- poi:poi:jar:2.5.1-<span class="java-keyword">final</span>-20040804:compile
[INFO] +- javax.xml.soap:saaj-api:jar:1.2:compile
[INFO] +- org.springframework:spring:jar:2.0.5:compile
[INFO] +- taglibs:standard:jar:1.1.2:compile
[INFO] +- struts:struts:jar:1.2.9:compile
[INFO] |  +- commons-fileupload:commons-fileupload:jar:1.0:compile
[INFO] |  +- commons-validator:commons-validator:jar:1.1.4:compile
[INFO] |  - antlr:antlr:jar:2.7.2:compile
[INFO] +- wsdl4j:wsdl4j:jar:1.5.1:compile
[INFO] +- wss4j:wss4j:jar:1.5.0:compile
[INFO] +- xalan:xalan:jar:2.6.0:compile
[INFO] +- org.apache.xmlgraphics:xmlgraphics-commons:jar:1.2:compile
[INFO] +- xml-security:xmlsec:jar:1.2.1:compile
[INFO] +- org.directwebremoting:dwr:jar:2.0.3:compile
[INFO] +- com.viavansi:plantilla-client:jar:0.0.13:compile
[INFO] +- net.sourceforge.barbecue:barbecue:jar:1.5-beta1:compile</pre>
<p>En caso de detectar librerías duplicadas a causa de las dependencias transitivas, deberemos proceder a definir las exclusiones necesarias en las dependencias afectadas, según se indicó anteriormente.</p>
]]></content:encoded>
			<wfw:commentRss>http://xnoccio.com/519-guia-de-migracion-de-proyectos-java-a-maven/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
