<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6403277185383030627</id><updated>2024-09-24T20:23:45.714+02:00</updated><category term="java"/><category term="omnia"/><category term="isotrol"/><category term="sonar"/><category term="Portal3.0"/><category term="Spring"/><category term="calidad"/><category term="plugin"/><category term="Apache CXF"/><category term="JAX-WS"/><category term="JAXB"/><category term="Maven"/><category term="Servicios Web"/><category term="WS"/><category term="rendimiento"/><category term="arquitectura"/><category term="curso"/><category term="javahispano"/><category term="proyectos"/><category term="samsung galaxy s"/><category term="GateIn"/><category term="GeNews"/><category term="Junta de Andalucía"/><category term="android"/><category term="dirección"/><category term="escalabilidad"/><category term="gestión"/><category term="jdepend"/><category term="personal"/><category term="presentación"/><category term="samsung"/><category term="web"/><category term="Consejería de Cultura"/><category term="Jetty"/><category term="Liferay"/><category term="LinkedIn"/><category term="Portlet"/><category term="Struts2"/><category term="Tratamiento20"/><category term="adb"/><category term="administrador"/><category term="amigos"/><category term="apache"/><category term="autokiller"/><category term="bog"/><category term="cda"/><category term="ciclo"/><category term="cine"/><category term="ckjm"/><category term="cocina"/><category term="cíclica"/><category term="dependencia"/><category term="desarrollo"/><category term="diseño"/><category term="evento"/><category term="extremadura"/><category term="formacion"/><category term="formación"/><category term="hl7"/><category term="ict2010"/><category term="ifapa"/><category term="isotrol.org"/><category term="javacup"/><category term="junit"/><category term="lom-es"/><category term="madrid"/><category term="mercurio"/><category term="metricas"/><category term="metricsanalytics"/><category term="monitorización"/><category term="multimedia"/><category term="métricas"/><category term="networking"/><category term="omnia android"/><category term="opensource"/><category term="qa"/><category term="root"/><category term="sevilla"/><category term="sonar 1.10"/><category term="superusuario"/><category term="test"/><category term="titanium"/><category term="tomcat"/><category term="version"/><title type='text'>Emilio Escobar Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://emilio-escobar.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://emilio-escobar.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>51</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6403277185383030627.post-604928607923562840</id><published>2011-01-18T20:53:00.000+01:00</published><updated>2011-01-18T20:53:01.051+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="calidad"/><category scheme="http://www.blogger.com/atom/ns#" term="desarrollo"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="plugin"/><category scheme="http://www.blogger.com/atom/ns#" term="sonar"/><title type='text'>Sonar 2.5 al fin en la calle</title><content type='html'>Después de un par (o de tres) de &lt;span style=&quot;font-style:italic;&quot;&gt;release candidates&lt;/span&gt; ya disponemos de la versión 2.5 del mejor sistema de control de la calidad de los desarrollos existente, &lt;a href=&quot;http://www.sonarsource.org/&quot;&gt;Sonar&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Con algo de retraso, la versión 2.5 trae las muy esperadas funcionalidades:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;herencia de perfiles, compartiendo reglas de configuración en un perfil común.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;seguimiento de las violaciones a lo largo del tiempo, detectando nuevos incumplimientos&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;entre análisis previos&lt;/li&gt;&lt;br /&gt;&lt;li&gt;un número de días&lt;/li&gt;&lt;br /&gt;&lt;li&gt;desde una versión&lt;/li&gt;&lt;br /&gt;&lt;li&gt;desde una fecha&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;cambios de medidas a lo largo del tiempo, con igual comportamiento que el anterior&lt;/li&gt;&lt;br /&gt;&lt;li&gt;nuevas reglas para Java:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;la instrucción break no debe usarse fuera de un switch&lt;/li&gt;&lt;br /&gt;&lt;li&gt;la instrucción continue no debe usarse&lt;/li&gt;&lt;br /&gt;&lt;li&gt;la complejidad total de una clase no debe ser superior a un límite&lt;/li&gt;&lt;br /&gt;&lt;li&gt;el DIT no debe ser superior a un límite&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;nuevas tareas de mantenimiento y limpieza de base de datos&lt;/li&gt;&lt;br /&gt;&lt;li&gt;mejoras en los servicios web para obtener un histórico de las medidas&lt;/li&gt;&lt;br /&gt;&lt;li&gt;soporte para la anotación @SuppressWarnings para mejorar el comentario //NOSONAR&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;La dirección de la descarga, como siempre, en &lt;a href=&quot;http://www.sonarsource.org/downloads/ &quot;&gt;SonarSource&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Y tal y como podeis leer en la &lt;a href=&quot;http://docs.codehaus.org/display/SONAR/Upgrade+guide&quot;&gt;guía de actualización&lt;/a&gt;, la versión &lt;a href=&quot;http://docs.codehaus.org/display/SONAR/Release+2.5+Upgrade+Notes&quot;&gt;2.5&lt;/a&gt; tiene una serie de detalles a tener en cuenta,&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;limpieza de histórico configurable, aunque por defecto se eliminará la información con más de cinco años, etc.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;la propiedad &quot;sonar.reuseExistingRulesConfiguration&quot; se eliminará&lt;/li&gt;&lt;br /&gt;&lt;li&gt;se añadirá una nueva regla de Findbugs al perfil &quot;Sonar way with Findbugs&quot;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Por último, recordaros que &lt;a href=&quot;http://docs.codehaus.org/display/SONAR/Total+Quality+Plugin&quot;&gt;Total Quality Plugin&lt;/a&gt; sigue siendo &lt;a href=&quot;http://docs.codehaus.org/display/SONAR/Plugin+version+matrix&quot;&gt;compatible con esta nueva versión&lt;/a&gt;, y que podéis instalarlo sin problemas desde el &lt;a href=&quot;http://docs.codehaus.org/display/SONAR/Update+Center&quot;&gt;Update Center&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://emilio-escobar.blogspot.com/feeds/604928607923562840/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6403277185383030627/604928607923562840' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/604928607923562840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/604928607923562840'/><link rel='alternate' type='text/html' href='http://emilio-escobar.blogspot.com/2011/01/sonar-25-al-fin-en-la-calle.html' title='Sonar 2.5 al fin en la calle'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6403277185383030627.post-3699462301243964160</id><published>2011-01-13T11:09:00.003+01:00</published><updated>2011-01-13T11:28:44.880+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ifapa"/><category scheme="http://www.blogger.com/atom/ns#" term="isotrol"/><category scheme="http://www.blogger.com/atom/ns#" term="Junta de Andalucía"/><category scheme="http://www.blogger.com/atom/ns#" term="Portal3.0"/><title type='text'>IFAPA con Port@l 3.0</title><content type='html'>Sin entrar en los cambios de diseño o de la estructura de la información, el &lt;a href=&quot;http://www.juntadeandalucia.es/agriculturaypesca/ifapa&quot;&gt;Instituto de Investigación y Formación Agraria y Pesquera&lt;/a&gt; de la &lt;a href=&quot;http://www.juntadeandalucia.es&quot;&gt;Junta de Andalucía&lt;/a&gt; ha puesto en producción su nuevo portal basado en &lt;a href=&quot;https://www.isotrol.com/web/texto/261&quot;&gt;Port@l 3.0&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Con esto se une a otros como la &lt;a href=&quot;http://www.juntadeandalucia.es&quot;&gt;Consejería de Cultura&lt;/a&gt; de la &lt;a href=&quot;http://www.juntadeandalucia.es&quot;&gt;Junta de Andalucía&lt;/a&gt; o la &lt;a href=&quot;http://www.juntaex.es/consejerias/educacion/&quot;&gt;Consejería de Educación&lt;/a&gt; de la &lt;a href=&quot;http://www.juntaex.es/&quot;&gt;Junta de Extremadura&lt;/a&gt; con su plataforma &lt;a href=&quot;http://mercurio.educarex.es/web&quot;&gt;Mercurio&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;En breve más noticias de Port@l 3.0, plataforma Free Source bajo GPLv3.</content><link rel='replies' type='application/atom+xml' href='http://emilio-escobar.blogspot.com/feeds/3699462301243964160/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6403277185383030627/3699462301243964160' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/3699462301243964160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/3699462301243964160'/><link rel='alternate' type='text/html' href='http://emilio-escobar.blogspot.com/2011/01/ifapa-con-portl-30.html' title='IFAPA con Port@l 3.0'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6403277185383030627.post-796457912844440817</id><published>2011-01-12T08:09:00.004+01:00</published><updated>2011-01-12T08:19:30.628+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="evento"/><category scheme="http://www.blogger.com/atom/ns#" term="javacup"/><category scheme="http://www.blogger.com/atom/ns#" term="javahispano"/><category scheme="http://www.blogger.com/atom/ns#" term="madrid"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring"/><title type='text'>Registro del Spring I/O Madrid 2011 abierto</title><content type='html'>Desde hace una horas está abierto el &lt;a href=&quot;http://www.javahispano.org/springio11/register&quot;&gt;registro&lt;/a&gt; para la &lt;a href=&quot;http://www.javahispano.org/springio11/index&quot;&gt;Spring I/O Madrid 2011&lt;/a&gt;, como se anuncia en &lt;a href=&quot;http://www.javahispano.org/contenidos/es/registro_del_spring_io_madrid_2011_abierto/?menuId=MINDS&quot;&gt;javaHispano&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Cuentan con grandes ponentes, como puede verse en la &lt;a href=&quot;http://www.javahispano.org/springio11/speakers&quot;&gt;página del evento&lt;/a&gt; pero, entre todos ellos destacan Juergen Hoeller, cofundador de Spring y el principal commiter y responsable de la arquitectura del framework desde 2003; Graeme Rocher, fundador de Grails; Andres Almiray, cofundador y líder del proyecto Griffon, Shay Banon, fundador de Compass y director tecnológico de GigaSpaces.&lt;br /&gt;&lt;br /&gt;Y otros dos detalles más:&lt;br /&gt;&lt;br /&gt;En el marco de este evento, se celebrará la competición de fútbol virtual JavaCup 2011, que repartirá 2000 € en premios. Los ganadores de la competición se anunciarán durante el evento. Podéis encontrar más información al respecto aquí. La asistencia al evento no es requisito para participar en el torneo.&lt;br /&gt;&lt;br /&gt;Si os gusta, para el sistema de registro han utilizado &lt;a href=&quot;http://www.stagehq.com/&quot;&gt;StageHQ&lt;/a&gt;, de nuestros amigos de &lt;a href=&quot;http://www.linkingpaths.com/&quot;&gt;Linking Paths&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Esperamos veros por Madrid!!</content><link rel='replies' type='application/atom+xml' href='http://emilio-escobar.blogspot.com/feeds/796457912844440817/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6403277185383030627/796457912844440817' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/796457912844440817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/796457912844440817'/><link rel='alternate' type='text/html' href='http://emilio-escobar.blogspot.com/2011/01/registro-del-spring-io-madrid-2011.html' title='Registro del Spring I/O Madrid 2011 abierto'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6403277185383030627.post-6483542246013478448</id><published>2010-11-22T16:32:00.002+01:00</published><updated>2010-11-22T16:43:43.392+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="curso"/><category scheme="http://www.blogger.com/atom/ns#" term="gestión"/><category scheme="http://www.blogger.com/atom/ns#" term="isotrol"/><category scheme="http://www.blogger.com/atom/ns#" term="proyectos"/><title type='text'>Tercera jornada, 18 de noviembre</title><content type='html'>En esta ocasión tengo que ser mas breve que de costumbre, y es una pena porque la tercera jornada (jueves 18 de noviembre) dio para un post bastante más extenso.&lt;br /&gt;&lt;br /&gt;Miguel Lara compartió con nosotros alguna de sus experiencias de cara a profundizar en el análisis de contexto. &lt;br /&gt;&lt;br /&gt;Como nota curiosa fue mencionado un libro (me guardo para mi el título) que fue resumido como &quot;el manual del perfecto &lt;span style=&quot;font-style:italic;&quot;&gt;hijo puta&lt;/span&gt;&quot;, con bastante acierto dicho sea de paso.&lt;br /&gt;&lt;br /&gt;Hablamos de cómo las pequeñas empresas pasan por varias fases: supervivencia, consolidación, crecimiento. Así como de las matrices de reto/competencia y consciencia/conocimiento.&lt;br /&gt;&lt;br /&gt;Por último, una frase más, para que un cambio tenga un buen resultado se tiene que cumplir la ecuación &lt;span style=&quot;font-style:italic;&quot;&gt;D * M * E &gt;= Dzc * VelC&lt;/span&gt; donde,&lt;br /&gt;&lt;ul&gt;&lt;li&gt;(D) Deseo. Querer cambiar.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;(M) Metodología. Ningún cambio sin método es cambio.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;(E) Ejecución.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;(Dzc) Distancia de la zona de confort.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;(VelC) Velocidad del cambio. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Y nada más, hoy toca la cuarta jornada.</content><link rel='replies' type='application/atom+xml' href='http://emilio-escobar.blogspot.com/feeds/6483542246013478448/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6403277185383030627/6483542246013478448' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/6483542246013478448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/6483542246013478448'/><link rel='alternate' type='text/html' href='http://emilio-escobar.blogspot.com/2010/11/tercera-jornada-18-de-noviembre.html' title='Tercera jornada, 18 de noviembre'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6403277185383030627.post-7790797740201244314</id><published>2010-11-18T16:55:00.002+01:00</published><updated>2010-11-19T10:02:17.796+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="curso"/><category scheme="http://www.blogger.com/atom/ns#" term="dirección"/><category scheme="http://www.blogger.com/atom/ns#" term="proyectos"/><title type='text'>En el curso 17 de noviembre de 2010</title><content type='html'>La jornada del miércoles 17 noviembre fue algo más controvertida que la primera. Desde el punto de vista meramente formativo continuamos avanzando en el ciclo de un proyecto. Pero fue en el apartado de experiencia donde aparecieron las frases más interesantes.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;El powerpoint y las hojas de cálculo hacen gilipollas. Tanto las hojas de cálculo como las presentaciones se lo tragan todo.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Es un error el pensamiento de &quot;hay que trabajar más horas y cobrar menos&quot;.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Cada vez hay menos responsables que hacen uso de &quot;si no te parece bien te vas a la calle&quot;.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Y, finalmente, se utilizó el término &quot;empresaurio&quot;.&lt;br /&gt;&lt;br /&gt;En fin, una jornada interesante... veremos cómo marcha hoy.</content><link rel='replies' type='application/atom+xml' href='http://emilio-escobar.blogspot.com/feeds/7790797740201244314/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6403277185383030627/7790797740201244314' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/7790797740201244314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/7790797740201244314'/><link rel='alternate' type='text/html' href='http://emilio-escobar.blogspot.com/2010/11/en-el-curso-17-de-noviembre-de-2010.html' title='En el curso 17 de noviembre de 2010'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6403277185383030627.post-1410879182159999430</id><published>2010-11-17T22:40:00.000+01:00</published><updated>2010-11-17T22:40:00.151+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="calidad"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="sonar"/><title type='text'>Sonar 2.4</title><content type='html'>Tal y como anunció &lt;a href=&quot;http://ch.linkedin.com/in/simonbrandhof&quot;&gt;Simon Brandhof&lt;/a&gt; en la &lt;a href=&quot;http://sonar-announce.439433.n3.nabble.com/Sonar-2-4-td1914142.html&quot;&gt;lista de correo&lt;/a&gt; desde hoy miércoles tenemos disponible la &lt;a href=&quot;http://www.sonarsource.org/downloads/#2.4&quot;&gt;versión 2.4&lt;/a&gt; de &lt;a href=&quot;http://www.sonarsource.org/&quot;&gt;Sonar&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Las cuatro mejoras fundamentales que incluye son,&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Posibilidad de personalizar el dashboar (&lt;a href=&quot;http://docs.codehaus.org/display/SONAR/Customising+dashboards&quot;&gt;más información&lt;/a&gt;)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Instalar y actualizar plugins desde el navegador gracias la Update Center (&lt;a href=&quot;http://docs.codehaus.org/display/SONAR/Update+Center&quot;&gt;más información&lt;/a&gt;)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Definir reglas de arquitectura para, por ejemplo, prohibir el acceso a clases *.web.* from *.dao.* (&lt;a href=&quot;http://docs.codehaus.org/display/SONAR/Architecture+rule+engine&quot;&gt;más información&lt;/a&gt;)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Soporte de Maven 3&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;También mejora el rendimiento de Findbugs en, al menos, un 30%, que no está nada mal.</content><link rel='replies' type='application/atom+xml' href='http://emilio-escobar.blogspot.com/feeds/1410879182159999430/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6403277185383030627/1410879182159999430' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/1410879182159999430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/1410879182159999430'/><link rel='alternate' type='text/html' href='http://emilio-escobar.blogspot.com/2010/11/sonar-24.html' title='Sonar 2.4'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6403277185383030627.post-4050126728666198348</id><published>2010-11-17T22:23:00.000+01:00</published><updated>2010-11-17T22:23:00.333+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="calidad"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="métricas"/><category scheme="http://www.blogger.com/atom/ns#" term="plugin"/><category scheme="http://www.blogger.com/atom/ns#" term="sonar"/><title type='text'>Retomando el trabajo activo en Sonar</title><content type='html'>Después de un tiempo algo alejado he vuelto a participar de forma activa en la &lt;a href=&quot;http://docs.codehaus.org/display/SONAR/Sonar+Plugin+Library&quot;&gt;forja de plugins&lt;/a&gt; de &lt;a href=&quot;http://www.sonarsource.org/&quot;&gt;Sonar&lt;/a&gt; liberando una nueva versión de &lt;a href=&quot;http://docs.codehaus.org/display/SONAR/Total+Quality+Plugin&quot;&gt;Total Quality Plugin&lt;/a&gt; compatible con el futuro Update Center.&lt;br /&gt;&lt;br /&gt;En breve publicaré algunos posts comentando las novedades de &lt;a href=&quot;http://www.sonarsource.org/&quot;&gt;Sonar&lt;/a&gt; y qué hace el &lt;a href=&quot;http://docs.codehaus.org/display/SONAR/Total+Quality+Plugin&quot;&gt;plugin&lt;/a&gt; que ya lidero.</content><link rel='replies' type='application/atom+xml' href='http://emilio-escobar.blogspot.com/feeds/4050126728666198348/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6403277185383030627/4050126728666198348' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/4050126728666198348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/4050126728666198348'/><link rel='alternate' type='text/html' href='http://emilio-escobar.blogspot.com/2010/11/retomando-el-trabajo-activo-en-sonar.html' title='Retomando el trabajo activo en Sonar'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6403277185383030627.post-4652054248757652972</id><published>2010-11-16T18:53:00.000+01:00</published><updated>2010-11-16T18:53:00.394+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="curso"/><category scheme="http://www.blogger.com/atom/ns#" term="dirección"/><category scheme="http://www.blogger.com/atom/ns#" term="formación"/><category scheme="http://www.blogger.com/atom/ns#" term="gestión"/><category scheme="http://www.blogger.com/atom/ns#" term="proyectos"/><title type='text'>Experto en Dirección de Proyectos</title><content type='html'>Ese es el nombre del curso que empecé ayer impartido por &lt;a href=&quot;http://twitter.com/#!/miguel_lara_p/status/4140509735948288&quot;&gt;Miguel Lara&lt;/a&gt;, Experto en Dirección de Proyectos. De este tema no es el primero al que asisto ni será el último (eso espero) y puedo decir que comienza con mejores perspectivas que los anteriores. No puedo juzgar aún si será mejor o peor, o si calará más o menos que los pasados pero, sí ha empezado mejor.&lt;br /&gt;&lt;br /&gt;Durante las 4 horas de la jornada de ayer dio tiempo a poco más que presentarnos, hacer una introducción fijando los conceptos de partida, y un pequeño ejercicio en grupo. &lt;br /&gt;&lt;br /&gt;Primer punto positivo para el curso, pude pensar en qué soy y cuáles son mis responsabilidades y tareas en la empresa. No voy a decir que soy &lt;span style=&quot;font-style:italic;&quot;&gt;pito-del-sereno&lt;/span&gt; senior porque para eso está mi inmediato superior, así que me quedo en junior. En serio, la respuesta que di cuando fui preguntado era simple, me dedico a lo que haga falta y sea más necesario en cada momento. Por suerte o por desgracia para mi me adapto con facilidad y puedo cubrir con más o menos competencia varios roles.&lt;br /&gt;&lt;br /&gt;Y entrando en materia, hicimos un repaso de los conceptos necesarios para el aprovechamiento del curso. Competencias, Capacidades, Habilidades, Método Lógico, Aprendizaje, Objetivos conceptuales, procedimentales y actitudinales, etc.&lt;br /&gt;&lt;br /&gt;Pasando por Confucio y una de sus citas,&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Dime algo y lo olvidaré.&lt;br /&gt;Muéstrame algo y lo recordaré.&lt;br /&gt;Déjame hacer algo y lo comprenderé.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;En fin, por ahora mantenemos las expectativas altas porque, entre otras cosas, logró mantener mi atención, cosa difícil por la hora, el cansancio, y el sueño.&lt;br /&gt;&lt;br /&gt;El miércoles más.</content><link rel='replies' type='application/atom+xml' href='http://emilio-escobar.blogspot.com/feeds/4652054248757652972/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6403277185383030627/4652054248757652972' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/4652054248757652972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/4652054248757652972'/><link rel='alternate' type='text/html' href='http://emilio-escobar.blogspot.com/2010/11/experto-en-direccion-de-proyectos.html' title='Experto en Dirección de Proyectos'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6403277185383030627.post-2594826075078627097</id><published>2010-11-15T08:08:00.002+01:00</published><updated>2010-11-15T08:11:48.296+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="amigos"/><category scheme="http://www.blogger.com/atom/ns#" term="bog"/><category scheme="http://www.blogger.com/atom/ns#" term="cocina"/><title type='text'>Joseba se echa al monte</title><content type='html'>Al fin &lt;a href=&quot;http://josebacocinaconamigos.blogspot.com/&quot;&gt;Joseba&lt;/a&gt; se echa al monte y abre su blog de cocina &lt;a href=&quot;http://josebacocinaconamigos.blogspot.com/&quot;&gt;josebacocinaconamigos.blogspot.com&lt;/a&gt; gracias a las enseñanzas adquiridas tras años de prueba-error alimentando a los amigotes :-)&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Recomendable!&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emilio-escobar.blogspot.com/feeds/2594826075078627097/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6403277185383030627/2594826075078627097' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/2594826075078627097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/2594826075078627097'/><link rel='alternate' type='text/html' href='http://emilio-escobar.blogspot.com/2010/11/joseba-se-echa-al-monte.html' title='Joseba se echa al monte'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6403277185383030627.post-4574674840262817487</id><published>2010-11-04T16:12:00.003+01:00</published><updated>2010-11-04T16:17:12.926+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="isotrol"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="Tratamiento20"/><title type='text'>Tratamiento 2.0</title><content type='html'>Hoy, 4 de Noviembre está siendo presentado el prototipo del desarrollo en el que &lt;a href=&quot;https://www.isotrol.com&quot;&gt;hemos&lt;/a&gt; estado trabajando los últimos meses, &lt;a href=&quot;http://www.tratamiento20.es/&quot;&gt;Tratamiento 2.0&lt;/a&gt;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Más información en &lt;a href=&quot;http://www.europapress.es/comunitat-valenciana/noticia-hospital-general-valencia-indra-presentan-prototipo-teletratamiento-inteligente-diabeticos-20101104133547.html&quot;&gt;Europa Press&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emilio-escobar.blogspot.com/feeds/4574674840262817487/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6403277185383030627/4574674840262817487' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/4574674840262817487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/4574674840262817487'/><link rel='alternate' type='text/html' href='http://emilio-escobar.blogspot.com/2010/11/tratamiento-20.html' title='Tratamiento 2.0'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6403277185383030627.post-6778403716333545935</id><published>2010-09-27T11:41:00.002+02:00</published><updated>2010-09-27T11:46:42.418+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ict2010"/><category scheme="http://www.blogger.com/atom/ns#" term="isotrol"/><title type='text'>ICT 2010</title><content type='html'>Hoy me he dado una pequeña alegría al leer que la empresa donde trabajo acude a ICT 2010 con el fin de participar en consorcios de proyectos europeos.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Visto en:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://www.laflecha.net/canales/empresas/noticias/nueve-empresas-andaluzas-asistiran-a-una-mision-tecnologica-internacional-para-el-evento-ict-2010&quot;&gt;Nueve empresas andaluzas asistirán a una misión tecnológica internacional para el evento ICT 2010&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://ec.europa.eu/information_society/events/ict/2010/index_en.htm&quot;&gt;ICT 2010&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emilio-escobar.blogspot.com/feeds/6778403716333545935/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6403277185383030627/6778403716333545935' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/6778403716333545935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/6778403716333545935'/><link rel='alternate' type='text/html' href='http://emilio-escobar.blogspot.com/2010/09/ict-2010.html' title='ICT 2010'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6403277185383030627.post-1496291720493444148</id><published>2010-08-26T20:45:00.001+02:00</published><updated>2010-08-26T20:45:00.189+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="android"/><category scheme="http://www.blogger.com/atom/ns#" term="autokiller"/><category scheme="http://www.blogger.com/atom/ns#" term="samsung"/><category scheme="http://www.blogger.com/atom/ns#" term="samsung galaxy s"/><category scheme="http://www.blogger.com/atom/ns#" term="titanium"/><title type='text'>Aplicaciones imprescindibles en Samsung Galaxy S (i9000)</title><content type='html'>&lt;div&gt;Después de &lt;a href=&quot;http://emilio-escobar.blogspot.com/2010/08/consigue-permisos-de-superusuario-root.html&quot;&gt;conseguir permisos de root&lt;/a&gt; en el teléfono hay un par de aplicaciones que debes instalar, sí o sí, en la versión de Movistar al menos.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- &lt;a href=&quot;http://www.androlib.com/android.application.com-rs-autokiller-wEwp.aspx&quot;&gt;Autokiller&lt;/a&gt;, fácil, te mantiene una cantidad de memoria disponible.&lt;/div&gt;&lt;div&gt;- &lt;a href=&quot;http://www.androlib.com/android.application.com-keramidas-titaniumbackup-xCzz.aspx&quot;&gt;Titanium Backup&lt;/a&gt;, te permite hacer copias de seguridad de la configuración, aplicaciones, etc. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ambas aplicaciones se encuentran en el Android Market, son gratuitas (aunque admiten donativos), y su único requisito es ser root.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;La segunda de ellas, Titanium Backup te facilitará la tarea de desinstalar las demos de los juegos que incluidas en SGS de Movistar. Ah! si no te lista todas las aplicaciones, pulsa en ¿Problemas? y responde afirmativamente. Él te lo solucionará.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emilio-escobar.blogspot.com/feeds/1496291720493444148/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6403277185383030627/1496291720493444148' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/1496291720493444148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/1496291720493444148'/><link rel='alternate' type='text/html' href='http://emilio-escobar.blogspot.com/2010/08/aplicaciones-imprescindibles-en-samsung.html' title='Aplicaciones imprescindibles en Samsung Galaxy S (i9000)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6403277185383030627.post-3646147940232645746</id><published>2010-08-24T17:17:00.000+02:00</published><updated>2010-08-24T17:18:31.436+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="adb"/><category scheme="http://www.blogger.com/atom/ns#" term="administrador"/><category scheme="http://www.blogger.com/atom/ns#" term="root"/><category scheme="http://www.blogger.com/atom/ns#" term="samsung galaxy s"/><category scheme="http://www.blogger.com/atom/ns#" term="superusuario"/><title type='text'>Consigue permisos de superusuario (root) en Samsung Galaxy S (i9000)</title><content type='html'>Aunque existen dos métodos, vía Odin3 y &lt;i&gt;Recovery Mode&lt;/i&gt;, yo sólo hablaré del segundo de ellos, básicamente porque funciona bajo Linux ;-) y no pierdes datos ni aplicaciones al realizarlo. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. Descarga el &lt;a href=&quot;https://sites.google.com/site/escoem/descargas/update_root_galaxy_metodo1.zip&quot;&gt;update.zip&lt;/a&gt; y guárdalo en /sdcard quedando finalmente /sdcard/update.zip (es muy importante).&lt;/div&gt;&lt;div&gt;2. Pasa al modo &lt;i&gt;Recovery&lt;/i&gt;, apagando el teléfono y encendiéndolo pulsando a la vez Home + Subir Volumen + Encender.&lt;/div&gt;&lt;div&gt;3. Has iniciando en modo &lt;i&gt;Recovery&lt;/i&gt;, selecciona con el botón de volumen la opción &quot;apply sdcard:update.zip&quot; y pulsa Home.&lt;/div&gt;&lt;div&gt;4. Listo, se reinicia sólo y tienes permisos de superusuario.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Durante el proceso se te instala busybox (en la versión 1.16). Si quieres actualizarlo (a la 1.17.1) pásate por:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://www.cyrket.com/p/android/stericson.busybox/&quot;&gt;http://www.cyrket.com/p/android/stericson.busybox/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Actualízalo  a esa versión concreta, lo agradecerás más tarde.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;El artículo original lo puedes encontrar en &lt;a href=&quot;http://samsunggalaxysforums.com/showthread.php/112-how-to-root-your-Galaxy-S&quot;&gt;Samsung Galaxy Forums&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emilio-escobar.blogspot.com/feeds/3646147940232645746/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6403277185383030627/3646147940232645746' title='6 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/3646147940232645746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/3646147940232645746'/><link rel='alternate' type='text/html' href='http://emilio-escobar.blogspot.com/2010/08/consigue-permisos-de-superusuario-root.html' title='Consigue permisos de superusuario (root) en Samsung Galaxy S (i9000)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6403277185383030627.post-4862046201227613682</id><published>2010-08-24T08:35:00.000+02:00</published><updated>2010-08-24T08:38:37.369+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cine"/><title type='text'>No podía evitarlo, el contador de &quot;The Expendables&quot;</title><content type='html'>&lt;a href=&quot;http://www.termlifeinsurance.org/expendables&quot;&gt;&lt;img src=&quot;http://consumermedianetwork.s3.amazonaws.com/termlife/expen-page.png&quot; alt=&quot;Expendables Count&quot; width=&quot;500&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Via: &lt;a href=&quot;http://www.termlifeinsurance.org/&quot;&gt;Term Life Insurance&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://emilio-escobar.blogspot.com/feeds/4862046201227613682/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6403277185383030627/4862046201227613682' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/4862046201227613682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/4862046201227613682'/><link rel='alternate' type='text/html' href='http://emilio-escobar.blogspot.com/2010/08/no-podia-evitarlo-el-contador-de.html' title='No podía evitarlo, el contador de &quot;The Expendables&quot;'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6403277185383030627.post-4433355981107887085</id><published>2010-08-12T18:45:00.001+02:00</published><updated>2010-08-12T18:45:00.858+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="android"/><category scheme="http://www.blogger.com/atom/ns#" term="samsung"/><category scheme="http://www.blogger.com/atom/ns#" term="samsung galaxy s"/><title type='text'>Samsung Galaxy S i9000</title><content type='html'>Bueno, finalmente he cambiado de móvil a un Samsung Galaxy S i9000 (Movistar). En los últimos tiempos he pasado de un Samsung Omnia i900 (Vodafone) con wm 6 y 6.5 a un HTC Magic (Vodafone) con android 1.5, 1.6, y 2.1.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Es otro mundo, un salto casi tan grande que pasar de WM 6.x a Android.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Iré poniendo a modo de guía todos los cambios que pueda necesitar, que los necesita (al menos el de movistar), aunque es fácil encontrarlos en otras páginas.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Los siguientes posts, ganar permisos de superusuario (root), parchearlo para mitigar el lag, etc. &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emilio-escobar.blogspot.com/feeds/4433355981107887085/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6403277185383030627/4433355981107887085' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/4433355981107887085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/4433355981107887085'/><link rel='alternate' type='text/html' href='http://emilio-escobar.blogspot.com/2010/08/samsung-galaxy-s-i9000.html' title='Samsung Galaxy S i9000'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6403277185383030627.post-7149611235388170208</id><published>2010-07-13T18:27:00.006+02:00</published><updated>2010-07-13T18:27:00.606+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apache CXF"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="JAX-WS"/><category scheme="http://www.blogger.com/atom/ns#" term="JAXB"/><category scheme="http://www.blogger.com/atom/ns#" term="Maven"/><category scheme="http://www.blogger.com/atom/ns#" term="Servicios Web"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring"/><category scheme="http://www.blogger.com/atom/ns#" term="WS"/><title type='text'>Disponible el código fuente del ejemplo de Servicios Web con Apache CXF y Spring</title><content type='html'>Bueno, al fin está disponible el código fuente del ejemplo utilizado en los tres posts publicados hasta el momento sobre Servicios Web con &lt;a href=&quot;http://cxf.apache.org/&quot;&gt;Apache CXF&lt;/a&gt; y &lt;a href=&quot;http://www.springsource.org/&quot;&gt;Spring&lt;/a&gt;. Es algo muy básico pero como guía no está mal del todo.&lt;br /&gt;&lt;br /&gt;Puedes descargarlo de &lt;a href=&quot;http://sites.google.com/site/escoem/descargas/sample_svc.zip?attredirects=0&amp;amp;d=1&quot;&gt;aquí&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Hasta el momento la serie de posts consta de tres entregas,&lt;br /&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://emilio-escobar.blogspot.com/2010/06/servicios-web-con-apache-cxf-spring.html&quot;&gt;Servicios Web con Apache CXF / Spring / Maven (Servidor)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://emilio-escobar.blogspot.com/2010/07/servicios-web-con-apache-cxf-spring.html&quot;&gt;Servicios Web con Apache CXF / Spring / Maven (Cliente)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://emilio-escobar.blogspot.com/2010/07/como-probar-tus-servicios-web-con.html&quot;&gt;Cómo probar tus Servicios Web con Apache CXF&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;quedando pendientes un par más,&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Cómo consumir un Servicio Web Apache CXF desde GWT&lt;/li&gt;&lt;li&gt;Añadiendo cabeceras SOAP a tus Servicios Web con Apache CXF&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Momento en el que actualizaré el código fuente.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emilio-escobar.blogspot.com/feeds/7149611235388170208/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6403277185383030627/7149611235388170208' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/7149611235388170208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/7149611235388170208'/><link rel='alternate' type='text/html' href='http://emilio-escobar.blogspot.com/2010/07/disponible-el-codigo-fuente-del-ejemplo.html' title='Disponible el código fuente del ejemplo de Servicios Web con Apache CXF y Spring'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6403277185383030627.post-6592260042683134943</id><published>2010-07-11T21:39:00.002+02:00</published><updated>2010-07-11T21:39:00.868+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apache CXF"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="JAX-WS"/><category scheme="http://www.blogger.com/atom/ns#" term="JAXB"/><category scheme="http://www.blogger.com/atom/ns#" term="Jetty"/><category scheme="http://www.blogger.com/atom/ns#" term="junit"/><category scheme="http://www.blogger.com/atom/ns#" term="Maven"/><category scheme="http://www.blogger.com/atom/ns#" term="Servicios Web"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring"/><category scheme="http://www.blogger.com/atom/ns#" term="test"/><category scheme="http://www.blogger.com/atom/ns#" term="WS"/><title type='text'>Cómo probar tus Servicios Web con Apache CXF</title><content type='html'>Una vez hemos creado el servidor y el cliente con &lt;a href=&quot;http://cxf.apache.org&quot;&gt;Apache CXF&lt;/a&gt; y &lt;a href=&quot;http://www.springsource.org&quot;&gt;Spring&lt;/a&gt;, vamos a preparar una aplicación web con el WS que nos haga de entorno de pruebas.&lt;br /&gt;&lt;br /&gt;Como comentamos en el primero de los &lt;a href=&quot;http://emilio-escobar.blogspot.com/2010/06/servicios-web-con-apache-cxf-spring.html&quot;&gt;posts&lt;/a&gt; de la serie, el módulo &lt;span style=&quot;font-style:italic;&quot;&gt;svc-ws&lt;/span&gt; contendrá los ficheros necesarios para montar la aplicación. Así, situado en, &lt;span style=&quot;font-style:italic;&quot;&gt;src/main/webapp/WEB-INF&lt;/span&gt; tendremos el &lt;span style=&quot;font-style:italic;&quot;&gt;web.xml&lt;/span&gt; y el &lt;span style=&quot;font-style:italic;&quot;&gt;ws-ctx.xml&lt;/span&gt;. &lt;br /&gt;&lt;br /&gt;Para el caso de &lt;span style=&quot;font-style:italic;&quot;&gt;ws-ctx.xml&lt;/span&gt; vemos,&lt;br /&gt;&lt;br /&gt;&lt;pre  style=&quot;font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#f0f0f0;padding:0px;color:#000000;text-align:left;line-height:20px;&quot;&gt;&lt;code style=&quot;color:#000000;word-wrap:normal;&quot;&gt; &amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;  &lt;br /&gt; &amp;lt;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot;  &lt;br /&gt;      xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;  &lt;br /&gt;      xmlns:jaxws=&quot;http://cxf.apache.org/jaxws&quot;  &lt;br /&gt;      xsi:schemaLocation=&quot;  &lt;br /&gt;      http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd  &lt;br /&gt;      http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd&quot;&amp;gt;  &lt;br /&gt;      &amp;lt;import resource=&quot;classpath:META-INF/cxf/cxf.xml&quot; /&amp;gt;  &lt;br /&gt;      &amp;lt;import resource=&quot;classpath:META-INF/cxf/cxf-extension-soap.xml&quot; /&amp;gt;  &lt;br /&gt;      &amp;lt;import resource=&quot;classpath:META-INF/cxf/cxf-servlet.xml&quot; /&amp;gt;  &lt;br /&gt;      &amp;lt;jaxws:endpoint   &lt;br /&gt;       id=&quot;servicio&quot;   &lt;br /&gt;       implementor=&quot;#servicioImpl&quot;   &lt;br /&gt;       address=&quot;/Servicio&quot; /&amp;gt;  &lt;br /&gt; &amp;lt;/beans&amp;gt;  &lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;y un trozo de &lt;span style=&quot;font-style:italic;&quot;&gt;web.xml&lt;/span&gt; sería,&lt;br /&gt;&lt;br /&gt;&lt;pre  style=&quot;font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#f0f0f0;padding:0px;color:#000000;text-align:left;line-height:20px;&quot;&gt;&lt;code style=&quot;color:#000000;word-wrap:normal;&quot;&gt;      &amp;lt;context-param&amp;gt;  &lt;br /&gt;           &amp;lt;param-name&amp;gt;contextConfigLocation&amp;lt;/param-name&amp;gt;  &lt;br /&gt;           &amp;lt;param-value&amp;gt;classpath:emilio/escobar/svc-ctx.xml  &lt;br /&gt;                WEB-INF/ws-ctx.xml&amp;lt;/param-value&amp;gt;  &lt;br /&gt;      &amp;lt;/context-param&amp;gt;  &lt;br /&gt;      &amp;lt;listener&amp;gt;  &lt;br /&gt;           &amp;lt;listener-class&amp;gt;  &lt;br /&gt;                org.springframework.web.context.ContextLoaderListener  &lt;br /&gt;           &amp;lt;/listener-class&amp;gt;  &lt;br /&gt;      &amp;lt;/listener&amp;gt;  &lt;br /&gt;      &amp;lt;servlet&amp;gt;  &lt;br /&gt;           &amp;lt;servlet-name&amp;gt;CXFServlet&amp;lt;/servlet-name&amp;gt;  &lt;br /&gt;           &amp;lt;display-name&amp;gt;CXF Servlet&amp;lt;/display-name&amp;gt;  &lt;br /&gt;           &amp;lt;servlet-class&amp;gt;  &lt;br /&gt;                org.apache.cxf.transport.servlet.CXFServlet  &lt;br /&gt;           &amp;lt;/servlet-class&amp;gt;  &lt;br /&gt;           &amp;lt;load-on-startup&amp;gt;1&amp;lt;/load-on-startup&amp;gt;  &lt;br /&gt;      &amp;lt;/servlet&amp;gt;  &lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Pero la magia está en el &lt;span style=&quot;font-style:italic;&quot;&gt;pom.xml&lt;/span&gt;,&lt;br /&gt;&lt;br /&gt;&lt;pre  style=&quot;font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#f0f0f0;padding:0px;color:#000000;text-align:left;line-height:20px;&quot;&gt;&lt;code style=&quot;color:#000000;word-wrap:normal;&quot;&gt; &amp;lt;?xml version=&quot;1.0&quot;?&amp;gt;  &lt;br /&gt; &amp;lt;project  &lt;br /&gt;      xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd&quot;  &lt;br /&gt;      xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&amp;gt;  &lt;br /&gt;      &amp;lt;modelVersion&amp;gt;4.0.0&amp;lt;/modelVersion&amp;gt;  &lt;br /&gt;      &amp;lt;parent&amp;gt;  &lt;br /&gt;           &amp;lt;artifactId&amp;gt;svc&amp;lt;/artifactId&amp;gt;  &lt;br /&gt;           &amp;lt;groupId&amp;gt;emilio.escobar&amp;lt;/groupId&amp;gt;  &lt;br /&gt;           &amp;lt;version&amp;gt;0.0.1-SNAPSHOT&amp;lt;/version&amp;gt;  &lt;br /&gt;      &amp;lt;/parent&amp;gt;  &lt;br /&gt;      &amp;lt;artifactId&amp;gt;svc-ws&amp;lt;/artifactId&amp;gt;  &lt;br /&gt;      &amp;lt;packaging&amp;gt;war&amp;lt;/packaging&amp;gt;  &lt;br /&gt;      &amp;lt;name&amp;gt;SVC :: WS&amp;lt;/name&amp;gt;  &lt;br /&gt;      &amp;lt;dependencies&amp;gt;  &lt;br /&gt;           &amp;lt;dependency&amp;gt;  &lt;br /&gt;                &amp;lt;groupId&amp;gt;emilio.escobar&amp;lt;/groupId&amp;gt;  &lt;br /&gt;                &amp;lt;artifactId&amp;gt;svc-server&amp;lt;/artifactId&amp;gt;  &lt;br /&gt;                &amp;lt;version&amp;gt;0.0.1-SNAPSHOT&amp;lt;/version&amp;gt;  &lt;br /&gt;           &amp;lt;/dependency&amp;gt;  &lt;br /&gt;           &amp;lt;dependency&amp;gt;  &lt;br /&gt;                &amp;lt;groupId&amp;gt;com.google.collections&amp;lt;/groupId&amp;gt;  &lt;br /&gt;                &amp;lt;artifactId&amp;gt;google-collections&amp;lt;/artifactId&amp;gt;  &lt;br /&gt;                &amp;lt;version&amp;gt;1.0&amp;lt;/version&amp;gt;  &lt;br /&gt;                &amp;lt;scope&amp;gt;test&amp;lt;/scope&amp;gt;  &lt;br /&gt;           &amp;lt;/dependency&amp;gt;                 &lt;br /&gt;           &amp;lt;dependency&amp;gt;  &lt;br /&gt;                &amp;lt;groupId&amp;gt;org.springframework&amp;lt;/groupId&amp;gt;  &lt;br /&gt;                &amp;lt;artifactId&amp;gt;spring-aop&amp;lt;/artifactId&amp;gt;  &lt;br /&gt;                &amp;lt;version&amp;gt;2.5.6.SEC02&amp;lt;/version&amp;gt;  &lt;br /&gt;           &amp;lt;/dependency&amp;gt;  &lt;br /&gt;           &amp;lt;dependency&amp;gt;  &lt;br /&gt;                &amp;lt;groupId&amp;gt;org.springframework&amp;lt;/groupId&amp;gt;  &lt;br /&gt;                &amp;lt;artifactId&amp;gt;spring-web&amp;lt;/artifactId&amp;gt;  &lt;br /&gt;                &amp;lt;version&amp;gt;2.5.6.SEC02&amp;lt;/version&amp;gt;  &lt;br /&gt;           &amp;lt;/dependency&amp;gt;  &lt;br /&gt;           &amp;lt;dependency&amp;gt;  &lt;br /&gt;                &amp;lt;groupId&amp;gt;org.apache.cxf&amp;lt;/groupId&amp;gt;  &lt;br /&gt;                &amp;lt;artifactId&amp;gt;cxf-rt-core&amp;lt;/artifactId&amp;gt;  &lt;br /&gt;                &amp;lt;version&amp;gt;2.1&amp;lt;/version&amp;gt;  &lt;br /&gt;                &amp;lt;exclusions&amp;gt;  &lt;br /&gt;                     &amp;lt;exclusion&amp;gt;  &lt;br /&gt;                          &amp;lt;artifactId&amp;gt;spring-core&amp;lt;/artifactId&amp;gt;  &lt;br /&gt;                          &amp;lt;groupId&amp;gt;org.springframework&amp;lt;/groupId&amp;gt;  &lt;br /&gt;                     &amp;lt;/exclusion&amp;gt;  &lt;br /&gt;                &amp;lt;/exclusions&amp;gt;  &lt;br /&gt;           &amp;lt;/dependency&amp;gt;  &lt;br /&gt;           &amp;lt;dependency&amp;gt;  &lt;br /&gt;                &amp;lt;groupId&amp;gt;org.apache.cxf&amp;lt;/groupId&amp;gt;  &lt;br /&gt;                &amp;lt;artifactId&amp;gt;cxf-rt-frontend-simple&amp;lt;/artifactId&amp;gt;  &lt;br /&gt;                &amp;lt;version&amp;gt;2.1&amp;lt;/version&amp;gt;  &lt;br /&gt;           &amp;lt;/dependency&amp;gt;  &lt;br /&gt;           &amp;lt;dependency&amp;gt;  &lt;br /&gt;                &amp;lt;groupId&amp;gt;org.apache.cxf&amp;lt;/groupId&amp;gt;  &lt;br /&gt;                &amp;lt;artifactId&amp;gt;cxf-rt-frontend-jaxws&amp;lt;/artifactId&amp;gt;  &lt;br /&gt;                &amp;lt;version&amp;gt;2.1&amp;lt;/version&amp;gt;  &lt;br /&gt;           &amp;lt;/dependency&amp;gt;  &lt;br /&gt;           &amp;lt;dependency&amp;gt;  &lt;br /&gt;                &amp;lt;groupId&amp;gt;org.apache.cxf&amp;lt;/groupId&amp;gt;  &lt;br /&gt;                &amp;lt;artifactId&amp;gt;cxf-rt-transports-local&amp;lt;/artifactId&amp;gt;  &lt;br /&gt;                &amp;lt;version&amp;gt;2.1&amp;lt;/version&amp;gt;  &lt;br /&gt;           &amp;lt;/dependency&amp;gt;  &lt;br /&gt;           &amp;lt;dependency&amp;gt;  &lt;br /&gt;                &amp;lt;groupId&amp;gt;org.apache.cxf&amp;lt;/groupId&amp;gt;  &lt;br /&gt;                &amp;lt;artifactId&amp;gt;cxf-rt-transports-http&amp;lt;/artifactId&amp;gt;  &lt;br /&gt;                &amp;lt;version&amp;gt;2.1&amp;lt;/version&amp;gt;  &lt;br /&gt;                &amp;lt;exclusions&amp;gt;  &lt;br /&gt;                     &amp;lt;exclusion&amp;gt;  &lt;br /&gt;                          &amp;lt;artifactId&amp;gt;spring-web&amp;lt;/artifactId&amp;gt;  &lt;br /&gt;                          &amp;lt;groupId&amp;gt;org.springframework&amp;lt;/groupId&amp;gt;  &lt;br /&gt;                     &amp;lt;/exclusion&amp;gt;  &lt;br /&gt;                &amp;lt;/exclusions&amp;gt;  &lt;br /&gt;           &amp;lt;/dependency&amp;gt;  &lt;br /&gt;           &amp;lt;dependency&amp;gt;  &lt;br /&gt;                &amp;lt;groupId&amp;gt;org.apache.cxf&amp;lt;/groupId&amp;gt;  &lt;br /&gt;                &amp;lt;artifactId&amp;gt;cxf-common-utilities&amp;lt;/artifactId&amp;gt;  &lt;br /&gt;                &amp;lt;version&amp;gt;2.1&amp;lt;/version&amp;gt;  &lt;br /&gt;                &amp;lt;exclusions&amp;gt;  &lt;br /&gt;                     &amp;lt;exclusion&amp;gt;  &lt;br /&gt;                          &amp;lt;artifactId&amp;gt;spring-beans&amp;lt;/artifactId&amp;gt;  &lt;br /&gt;                          &amp;lt;groupId&amp;gt;org.springframework&amp;lt;/groupId&amp;gt;  &lt;br /&gt;                     &amp;lt;/exclusion&amp;gt;  &lt;br /&gt;                     &amp;lt;exclusion&amp;gt;  &lt;br /&gt;                          &amp;lt;artifactId&amp;gt;spring-context&amp;lt;/artifactId&amp;gt;  &lt;br /&gt;                          &amp;lt;groupId&amp;gt;org.springframework&amp;lt;/groupId&amp;gt;  &lt;br /&gt;                     &amp;lt;/exclusion&amp;gt;  &lt;br /&gt;                     &amp;lt;exclusion&amp;gt;  &lt;br /&gt;                          &amp;lt;artifactId&amp;gt;spring-core&amp;lt;/artifactId&amp;gt;  &lt;br /&gt;                          &amp;lt;groupId&amp;gt;org.springframework&amp;lt;/groupId&amp;gt;  &lt;br /&gt;                     &amp;lt;/exclusion&amp;gt;  &lt;br /&gt;                &amp;lt;/exclusions&amp;gt;  &lt;br /&gt;           &amp;lt;/dependency&amp;gt;  &lt;br /&gt;           &amp;lt;dependency&amp;gt;  &lt;br /&gt;                &amp;lt;groupId&amp;gt;org.apache.cxf&amp;lt;/groupId&amp;gt;  &lt;br /&gt;                &amp;lt;artifactId&amp;gt;cxf-rt-transports-http-jetty&amp;lt;/artifactId&amp;gt;  &lt;br /&gt;                &amp;lt;version&amp;gt;2.1&amp;lt;/version&amp;gt;  &lt;br /&gt;                &amp;lt;scope&amp;gt;test&amp;lt;/scope&amp;gt;  &lt;br /&gt;           &amp;lt;/dependency&amp;gt;  &lt;br /&gt;      &amp;lt;/dependencies&amp;gt;  &lt;br /&gt;      &amp;lt;build&amp;gt;  &lt;br /&gt;           &amp;lt;finalName&amp;gt;svc-ws&amp;lt;/finalName&amp;gt;  &lt;br /&gt;           &amp;lt;plugins&amp;gt;  &lt;br /&gt;                &amp;lt;plugin&amp;gt;  &lt;br /&gt;                     &amp;lt;groupId&amp;gt;org.apache.maven.plugins&amp;lt;/groupId&amp;gt;  &lt;br /&gt;                     &amp;lt;artifactId&amp;gt;maven-compiler-plugin&amp;lt;/artifactId&amp;gt;  &lt;br /&gt;                     &amp;lt;configuration&amp;gt;  &lt;br /&gt;                          &amp;lt;source&amp;gt;1.5&amp;lt;/source&amp;gt;  &lt;br /&gt;                          &amp;lt;target&amp;gt;1.5&amp;lt;/target&amp;gt;  &lt;br /&gt;                     &amp;lt;/configuration&amp;gt;  &lt;br /&gt;                &amp;lt;/plugin&amp;gt;  &lt;br /&gt;                &amp;lt;plugin&amp;gt;  &lt;br /&gt;                     &amp;lt;groupId&amp;gt;org.codehaus.mojo&amp;lt;/groupId&amp;gt;  &lt;br /&gt;                     &amp;lt;artifactId&amp;gt;failsafe-maven-plugin&amp;lt;/artifactId&amp;gt;  &lt;br /&gt;                     &amp;lt;version&amp;gt;2.4.3-alpha-1&amp;lt;/version&amp;gt;  &lt;br /&gt;                     &amp;lt;executions&amp;gt;  &lt;br /&gt;                          &amp;lt;execution&amp;gt;  &lt;br /&gt;                               &amp;lt;goals&amp;gt;  &lt;br /&gt;                                    &amp;lt;goal&amp;gt;integration-test&amp;lt;/goal&amp;gt;  &lt;br /&gt;                                    &amp;lt;goal&amp;gt;verify&amp;lt;/goal&amp;gt;  &lt;br /&gt;                               &amp;lt;/goals&amp;gt;  &lt;br /&gt;                          &amp;lt;/execution&amp;gt;  &lt;br /&gt;                     &amp;lt;/executions&amp;gt;  &lt;br /&gt;                &amp;lt;/plugin&amp;gt;  &lt;br /&gt;                &amp;lt;plugin&amp;gt;  &lt;br /&gt;                     &amp;lt;groupId&amp;gt;org.mortbay.jetty&amp;lt;/groupId&amp;gt;  &lt;br /&gt;                     &amp;lt;artifactId&amp;gt;jetty-maven-plugin&amp;lt;/artifactId&amp;gt;  &lt;br /&gt;                     &amp;lt;version&amp;gt;7.0.1.v20091125&amp;lt;/version&amp;gt;  &lt;br /&gt;                     &amp;lt;configuration&amp;gt;  &lt;br /&gt;                          &amp;lt;scanIntervalSeconds&amp;gt;10&amp;lt;/scanIntervalSeconds&amp;gt;  &lt;br /&gt;                          &amp;lt;webAppConfig&amp;gt;  &lt;br /&gt;                               &amp;lt;contextPath&amp;gt;/svc-ws&amp;lt;/contextPath&amp;gt;  &lt;br /&gt;                          &amp;lt;/webAppConfig&amp;gt;  &lt;br /&gt;                          &amp;lt;stopKey&amp;gt;foo&amp;lt;/stopKey&amp;gt;  &lt;br /&gt;                          &amp;lt;stopPort&amp;gt;9999&amp;lt;/stopPort&amp;gt;  &lt;br /&gt;                          &amp;lt;connectors&amp;gt;  &lt;br /&gt;                               &amp;lt;connector implementation=&quot;org.eclipse.jetty.server.nio.SelectChannelConnector&quot;&amp;gt;  &lt;br /&gt;                                    &amp;lt;port&amp;gt;9000&amp;lt;/port&amp;gt;  &lt;br /&gt;                                    &amp;lt;host&amp;gt;0.0.0.0&amp;lt;/host&amp;gt;  &lt;br /&gt;                               &amp;lt;/connector&amp;gt;  &lt;br /&gt;                          &amp;lt;/connectors&amp;gt;  &lt;br /&gt;                     &amp;lt;/configuration&amp;gt;  &lt;br /&gt;                     &amp;lt;executions&amp;gt;  &lt;br /&gt;                          &amp;lt;execution&amp;gt;  &lt;br /&gt;                               &amp;lt;id&amp;gt;start-jetty&amp;lt;/id&amp;gt;  &lt;br /&gt;                               &amp;lt;phase&amp;gt;pre-integration-test&amp;lt;/phase&amp;gt;  &lt;br /&gt;                               &amp;lt;goals&amp;gt;  &lt;br /&gt;                                    &amp;lt;goal&amp;gt;run&amp;lt;/goal&amp;gt;  &lt;br /&gt;                               &amp;lt;/goals&amp;gt;  &lt;br /&gt;                               &amp;lt;configuration&amp;gt;  &lt;br /&gt;                                    &amp;lt;scanIntervalSeconds&amp;gt;0&amp;lt;/scanIntervalSeconds&amp;gt;  &lt;br /&gt;                                    &amp;lt;daemon&amp;gt;true&amp;lt;/daemon&amp;gt;  &lt;br /&gt;                               &amp;lt;/configuration&amp;gt;  &lt;br /&gt;                          &amp;lt;/execution&amp;gt;  &lt;br /&gt;                          &amp;lt;execution&amp;gt;  &lt;br /&gt;                               &amp;lt;id&amp;gt;stop-jetty&amp;lt;/id&amp;gt;  &lt;br /&gt;                               &amp;lt;phase&amp;gt;post-integration-test&amp;lt;/phase&amp;gt;  &lt;br /&gt;                               &amp;lt;goals&amp;gt;  &lt;br /&gt;                                    &amp;lt;goal&amp;gt;stop&amp;lt;/goal&amp;gt;  &lt;br /&gt;                               &amp;lt;/goals&amp;gt;  &lt;br /&gt;                          &amp;lt;/execution&amp;gt;  &lt;br /&gt;                     &amp;lt;/executions&amp;gt;  &lt;br /&gt;                &amp;lt;/plugin&amp;gt;  &lt;br /&gt;           &amp;lt;/plugins&amp;gt;  &lt;br /&gt;      &amp;lt;/build&amp;gt;  &lt;br /&gt; &amp;lt;/project&amp;gt;  &lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Los plugins failsafe-maven-plugin y jetty-maven-plugin son los encargados de arrancar el contenedor y de ejecutar los tests de integración. &lt;br /&gt;&lt;br /&gt;Para este ejemplo he preparado un pequeño test que no hace gran cosa. Simplemente carga el contexto con el cliente, &lt;br /&gt;&lt;br /&gt;&lt;pre  style=&quot;font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#f0f0f0;padding:0px;color:#000000;text-align:left;line-height:20px;&quot;&gt;&lt;code style=&quot;color:#000000;word-wrap:normal;&quot;&gt; &amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;  &lt;br /&gt; &amp;lt;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot;  &lt;br /&gt;      xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:jaxws=&quot;http://cxf.apache.org/jaxws&quot;  &lt;br /&gt;      xsi:schemaLocation=&quot;http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd  &lt;br /&gt; http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd&quot;&amp;gt;  &lt;br /&gt;      &amp;lt;jaxws:client id=&quot;servicioClient&quot;   &lt;br /&gt;           serviceClass=&quot;emilio.escobar.api.Servicio&quot;  &lt;br /&gt;           address=&quot;http://localhost:9000/svc-ws/Servicio&quot; /&amp;gt;  &lt;br /&gt; &amp;lt;/beans&amp;gt;  &lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;y lo ejecuta. El código del test,&lt;br /&gt;&lt;br /&gt;&lt;pre  style=&quot;font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#f0f0f0;padding:0px;color:#000000;text-align:left;line-height:20px;&quot;&gt;&lt;code style=&quot;color:#000000;word-wrap:normal;&quot;&gt; public class ServiceWSIT {  &lt;br /&gt;      private static final String MEMORY_PATH = &quot;emilio/escobar/wsclictx.xml&quot;;  &lt;br /&gt;      private static final String[] MEMORY = {MEMORY_PATH};  &lt;br /&gt;      private static ConfigurableApplicationContext context;  &lt;br /&gt;      private Servicio servicio;  &lt;br /&gt;      @BeforeClass  &lt;br /&gt;      public static void loadContext() {  &lt;br /&gt;           context = new ClassPathXmlApplicationContext(MEMORY);  &lt;br /&gt;      }  &lt;br /&gt;      @AfterClass  &lt;br /&gt;      public static void shutdown() {  &lt;br /&gt;           context.close();  &lt;br /&gt;      }  &lt;br /&gt;      @Before  &lt;br /&gt;   public void setUp() {  &lt;br /&gt;           this.servicio = getBean(Servicio.class);  &lt;br /&gt;      }  &lt;br /&gt;      @Test  &lt;br /&gt;      public void test() {  &lt;br /&gt;           assertNotNull(servicio);  &lt;br /&gt;      }  &lt;br /&gt;      @Test  &lt;br /&gt;      public void methodTest() {  &lt;br /&gt;           final String nombre = &quot;it-test&quot;;  &lt;br /&gt;           final ParametroDTO param1 = new ParametroDTO();  &lt;br /&gt;           param1.setKey(&quot;param1&quot;);  &lt;br /&gt;           param1.setValue(&quot;1&quot;);  &lt;br /&gt;           final ParametroDTO param2 = new ParametroDTO();  &lt;br /&gt;           param2.setKey(&quot;param2&quot;);  &lt;br /&gt;           param2.setValue(&quot;2&quot;);  &lt;br /&gt;           final EntradaDTO entrada = new EntradaDTO();  &lt;br /&gt;           entrada.setNombre(nombre);  &lt;br /&gt;           entrada.setParametros(Lists.newArrayList(param1, param2));  &lt;br /&gt;           final List&amp;lt;String&amp;gt; salida = servicio.operacion(entrada);  &lt;br /&gt;           assertNotNull(salida);  &lt;br /&gt;           assertTrue(salida.size() == 3);  &lt;br /&gt;           assertEquals(nombre, salida.get(0));  &lt;br /&gt;           assertEquals(&quot;param1-1&quot;, salida.get(1));  &lt;br /&gt;           assertEquals(&quot;param2-2&quot;, salida.get(2));  &lt;br /&gt;      }  &lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Por último, a lo largo de la semana publicaré el enlace a la descarga del código utilizado hasta el momento.</content><link rel='replies' type='application/atom+xml' href='http://emilio-escobar.blogspot.com/feeds/6592260042683134943/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6403277185383030627/6592260042683134943' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/6592260042683134943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/6592260042683134943'/><link rel='alternate' type='text/html' href='http://emilio-escobar.blogspot.com/2010/07/como-probar-tus-servicios-web-con.html' title='Cómo probar tus Servicios Web con Apache CXF'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6403277185383030627.post-7920034815511350570</id><published>2010-07-05T21:38:00.001+02:00</published><updated>2010-07-05T21:38:00.468+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apache CXF"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="JAX-WS"/><category scheme="http://www.blogger.com/atom/ns#" term="JAXB"/><category scheme="http://www.blogger.com/atom/ns#" term="Maven"/><category scheme="http://www.blogger.com/atom/ns#" term="Servicios Web"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring"/><category scheme="http://www.blogger.com/atom/ns#" term="WS"/><title type='text'>Servicios Web con Apache CXF / Spring / Maven (Cliente)</title><content type='html'>Ya hemos visto lo fácil que es montar el servicio web con Spring y CXF. Bien, el cliente es aún más sencillo.&lt;br /&gt;&lt;br /&gt;&lt;pre  style=&quot;font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#f0f0f0;padding:0px;color:#000000;text-align:left;line-height:20px;&quot;&gt;&lt;code style=&quot;color:#000000;word-wrap:normal;&quot;&gt; &amp;lt;jaxws:client id=&quot;servicioClient&quot;   &lt;br /&gt;   serviceClass=&quot;emilio.escobar.api.Servicio&quot;  &lt;br /&gt;   address=&quot;http://localhost:9000/test-ws/Servicio&quot; /&amp;gt;  &lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Luego sólo hay que solicitarlo como el resto de beans. &lt;br /&gt;&lt;br /&gt;Sigue quedando pendiente subir los ficheros del proyecto pero lo haré en breve.</content><link rel='replies' type='application/atom+xml' href='http://emilio-escobar.blogspot.com/feeds/7920034815511350570/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6403277185383030627/7920034815511350570' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/7920034815511350570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/7920034815511350570'/><link rel='alternate' type='text/html' href='http://emilio-escobar.blogspot.com/2010/07/servicios-web-con-apache-cxf-spring.html' title='Servicios Web con Apache CXF / Spring / Maven (Cliente)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6403277185383030627.post-3744623912621669658</id><published>2010-06-30T21:37:00.022+02:00</published><updated>2010-07-01T10:13:49.123+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apache CXF"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="JAX-WS"/><category scheme="http://www.blogger.com/atom/ns#" term="JAXB"/><category scheme="http://www.blogger.com/atom/ns#" term="Maven"/><category scheme="http://www.blogger.com/atom/ns#" term="Servicios Web"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring"/><category scheme="http://www.blogger.com/atom/ns#" term="WS"/><title type='text'>Servicios Web con Apache CXF / Spring / Maven (Servidor)</title><content type='html'>Desde hace unos meses vengo trabajando con servicios web y la verdad es que cada vez es más sencillo. Para montarlos usamos, Java 6, Maven 2.2.1, Spring Framework, Apache CXF, JAX-WS y JAXB.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;El proyecto maven&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Me voy a decantar en este momento por un proyecto multimódulo que contenga,&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;svc-api&lt;/span&gt;, con las interfaces del servicio y los dto.&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;svc-server&lt;/span&gt;, con la implementación del servicio.&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;svc-ws&lt;/span&gt;, módulo de tipo war con la declaración del servicio.&lt;br /&gt;&lt;br /&gt;¿Por qué lo organizo así? Pues porque me aporta gran facilidad a la hora de desplegar el servidor y el cliente, sin más.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;La interfaz del servicio&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Un ejemplo simple de un servicio web que tiene una única operación que recibe un dto y devuelve una lista de cadenas es, para uno de los dto implicados,&lt;br /&gt;&lt;br /&gt;&lt;pre style=&quot;font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#f0f0f0;padding:0px;color:#000000;text-align:left;line-height:20px;&quot;&gt;&lt;code style=&quot;color:#000000;word-wrap:normal;&quot;&gt; package emilio.escobar.api;&lt;br /&gt;&lt;br /&gt;import java.io.Serializable;&lt;br /&gt;&lt;br /&gt;import java.util.List;&lt;br /&gt;&lt;br /&gt;import javax.xml.bind.annotation.XmlElement;&lt;br /&gt;import javax.xml.bind.annotation.XmlElementWrapper;&lt;br /&gt;import javax.xml.bind.annotation.XmlRootElement;&lt;br /&gt;&lt;br /&gt;@XmlRootElement(name=&quot;entrada&quot;)&lt;br /&gt;public class EntradaDTO implements Serializable {&lt;br /&gt;private static final long serialVersionUID = -1266514434540369282L;&lt;br /&gt;private String nombre;&lt;br /&gt;private List parametros;&lt;br /&gt;&lt;br /&gt;@XmlElement(name=&quot;nombre&quot;)&lt;br /&gt;public String getNombre() {&lt;br /&gt;  return nombre;&lt;br /&gt;}&lt;br /&gt;public void setNombre(String nombre) {&lt;br /&gt;  this.nombre = nombre;&lt;br /&gt;}&lt;br /&gt;@XmlElement( name=&quot;parametro&quot; )&lt;br /&gt;@XmlElementWrapper( name=&quot;parametros&quot; )&lt;br /&gt;public List getParametros() {&lt;br /&gt;  return parametros;&lt;br /&gt;}&lt;br /&gt;public void setParametros(List parametros) {&lt;br /&gt;  this.parametros = parametros;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;la interfaz,&lt;br /&gt;&lt;br /&gt;&lt;pre style=&quot;font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#f0f0f0;padding:0px;color:#000000;text-align:left;line-height:20px;&quot;&gt;&lt;code style=&quot;color:#000000;word-wrap:normal;&quot;&gt; package emilio.escobar.api;&lt;br /&gt;&lt;br /&gt;import java.util.List;&lt;br /&gt;&lt;br /&gt;import javax.jws.WebParam;&lt;br /&gt;import javax.jws.WebResult;&lt;br /&gt;import javax.jws.WebService;&lt;br /&gt;import javax.xml.bind.annotation.XmlSeeAlso;&lt;br /&gt;&lt;br /&gt;@WebService&lt;br /&gt;@XmlSeeAlso({EntradaDTO.class, ParametroDTO.class})&lt;br /&gt;public interface Servicio {&lt;br /&gt;@WebResult(name = &quot;resultados&quot;)&lt;br /&gt;List operacion(@WebParam(name = &quot;entrada&quot;) EntradaDTO entrada);&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;y la implementación,&lt;br /&gt;&lt;br /&gt;&lt;pre style=&quot;font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#f0f0f0;padding:0px;color:#000000;text-align:left;line-height:20px;&quot;&gt;&lt;code style=&quot;color:#000000;word-wrap:normal;&quot;&gt; package emilio.escobar.impl;&lt;br /&gt;&lt;br /&gt;import java.util.List;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;public class ServicioImpl implements Servicio {&lt;br /&gt;List operacion(EntradaDTO entrada) {&lt;br /&gt;...&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Los ficheros de configuración&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Como usamos Spring Framework y Apache CXF la configuración del servidor la hacemos en dos líneas,&lt;br /&gt;&lt;br /&gt;&lt;pre style=&quot;font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#f0f0f0;padding:0px;color:#000000;text-align:left;line-height:20px;&quot;&gt;&lt;code style=&quot;color:#000000;word-wrap:normal;&quot;&gt; &amp;lt;id=&quot;servicioImpl&quot; class=&quot;emilio.escobar.impl.ServicioImpl&quot; /&amp;gt;    &amp;lt;id=&quot;servicioWS&quot; implementor=&quot;#servicioImpl&quot; address=&quot;/Servicio&quot; /&amp;gt;  &lt;/code&gt;&lt;/pre&gt;En próximos post continuaré construyendo el ejemplo completo y adjuntaré todos los ficheros necesarios para probarlo.&lt;br /&gt;&lt;br /&gt;Quedan pendientes cómo construir el cliente, cómo probarlo, cómo añadir elementos a la cabecera SOAP, y cómo usarlos desde GWT.</content><link rel='replies' type='application/atom+xml' href='http://emilio-escobar.blogspot.com/feeds/3744623912621669658/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6403277185383030627/3744623912621669658' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/3744623912621669658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/3744623912621669658'/><link rel='alternate' type='text/html' href='http://emilio-escobar.blogspot.com/2010/06/servicios-web-con-apache-cxf-spring.html' title='Servicios Web con Apache CXF / Spring / Maven (Servidor)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6403277185383030627.post-3927430315111461932</id><published>2010-06-04T10:05:00.003+02:00</published><updated>2010-06-04T10:12:19.156+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GeNews"/><category scheme="http://www.blogger.com/atom/ns#" term="isotrol"/><title type='text'>GeNews estrena web</title><content type='html'>Ha pasado algo de tiempo pero la espera ha merecido la pena, &lt;a href=&quot;http://www.genews.es/&quot;&gt;GeNews&lt;/a&gt; estrena web. Desde un punto de vista práctico recomiendo una pasada por el &lt;a href=&quot;http://www.genews.es/demo&quot;&gt;vídeo&lt;/a&gt; donde se describen sus características principales.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.genews.es&quot;&gt;GeNews&lt;/a&gt; es un desarrollo de la empresa andaluza &lt;a href=&quot;http://www.isotrol.com&quot;&gt;Isotrol&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Por último, recordaros que existe un grupo en &lt;a href=&quot;http://www.linkedin.com/groups?gid=2955259&quot;&gt;linkedIn&lt;/a&gt; y un canal en &lt;a href=&quot;http://vimeo.com/channels/genews&quot;&gt;Vimeo&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://emilio-escobar.blogspot.com/feeds/3927430315111461932/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6403277185383030627/3927430315111461932' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/3927430315111461932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/3927430315111461932'/><link rel='alternate' type='text/html' href='http://emilio-escobar.blogspot.com/2010/06/genews-estrena-web.html' title='GeNews estrena web'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6403277185383030627.post-5351174041805637888</id><published>2010-04-28T13:53:00.004+02:00</published><updated>2010-04-28T15:12:54.832+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GeNews"/><category scheme="http://www.blogger.com/atom/ns#" term="isotrol"/><category scheme="http://www.blogger.com/atom/ns#" term="LinkedIn"/><category scheme="http://www.blogger.com/atom/ns#" term="Portal3.0"/><title type='text'>Tenemos grupos en LinkedIn para Port@l 3.0 y GeNews</title><content type='html'>Un pequeño apunte, ya disponemos de grupos en &lt;a href=&quot;http://www.linkedin.com&quot;&gt;LinkedIn&lt;/a&gt; para &lt;a href=&quot;http://www.linkedin.com/groups?home=&amp;gid=2947876&amp;trk=anet_ug_hm&quot;&gt;Port@l 3.0&lt;/a&gt; y &lt;a href=&quot;http://www.linkedin.com/groups?home=&amp;gid=2955259&amp;trk=anet_ug_hm&quot;&gt;GeNews&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Nos vemos por allí.</content><link rel='replies' type='application/atom+xml' href='http://emilio-escobar.blogspot.com/feeds/5351174041805637888/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6403277185383030627/5351174041805637888' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/5351174041805637888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/5351174041805637888'/><link rel='alternate' type='text/html' href='http://emilio-escobar.blogspot.com/2010/04/tenemos-grupos-en-linkedin-para.html' title='Tenemos grupos en LinkedIn para Port@l 3.0 y GeNews'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6403277185383030627.post-7460777667217610827</id><published>2010-03-15T21:17:00.002+01:00</published><updated>2010-03-15T22:39:27.998+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cda"/><category scheme="http://www.blogger.com/atom/ns#" term="formacion"/><category scheme="http://www.blogger.com/atom/ns#" term="hl7"/><category scheme="http://www.blogger.com/atom/ns#" term="isotrol"/><category scheme="http://www.blogger.com/atom/ns#" term="sevilla"/><title type='text'>HL7. Ya hemos aprendido algo más.</title><content type='html'>La semana pasada he asistido a un taller sobre &lt;a href=&quot;http://www.hl7.org&quot;&gt;HL7&lt;/a&gt; (mensajería v2.6 y CDA R2) impartido en Sevilla por Álvaro Domínguez bastante interesante.&lt;br /&gt;&lt;br /&gt;Para quien no lo sepa, &lt;a href=&quot;http://www.hl7.org&quot;&gt;HL7&lt;/a&gt; es una organización de carácter internacional (&lt;a href=&quot;http://www.hl7spain.org&quot;&gt;HL7 Spain&lt;/a&gt; es una localización de la organización) y una serie de estándares que organizan el formato de los datos y el intercambio de información entre diferentes sistemas de información de salud.&lt;br /&gt;&lt;br /&gt;Por lo que he podido ver en estas semanas, &lt;a href=&quot;http://www.hl7.org&quot;&gt;HL7&lt;/a&gt; es un mundo que puede alcanzar un nivel de complejidad tan grande como se quiera (&lt;span style=&quot;font-style:italic;&quot;&gt;&quot;puedes tardar más de dos semanas en modelar un mensaje&quot;&lt;/span&gt;). Por suerte, existen algunos proyectos Java Open Source que vienen a facilitarnos la tarea,&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.mirthcorp.com/community/overview&quot;&gt;Mirth&lt;/a&gt;, una familia de productos para el desarrollo, despliegue, pruebas, almacenamiento, etc. Un motor que permite el intercambio de mensajes entre sistemas y aplicaciones.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://openehealth.org/gf/project/ipf&quot;&gt;Open eHealth Integration Platform (IPF&lt;/a&gt;), una extensión de &lt;a href=&quot;http://camel.apache.org/hl7.html&quot;&gt;Apache Camel&lt;/a&gt;, que proporciona una capa de desarrollo basada en &lt;a href=&quot;http://groovy.codehaus.org/&quot;&gt;Groovy&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://hl7api.sourceforge.net&quot;&gt;HAPI&lt;/a&gt;, un parseador para HL7.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://nule.org/wp&quot;&gt;NULE&lt;/a&gt;, un conjunto de herramientas y librerías para trabajar con HL7.&lt;br /&gt;&lt;br /&gt;Y &lt;a href=&quot;http://www.eclipse.org/ohf/&quot;&gt;Open Healthcare Framework&lt;/a&gt;, subproyecto de Eclipse (gracias Andrés).</content><link rel='replies' type='application/atom+xml' href='http://emilio-escobar.blogspot.com/feeds/7460777667217610827/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6403277185383030627/7460777667217610827' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/7460777667217610827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/7460777667217610827'/><link rel='alternate' type='text/html' href='http://emilio-escobar.blogspot.com/2010/03/hl7-ya-hemos-aprendido-algo-mas.html' title='HL7. Ya hemos aprendido algo más.'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6403277185383030627.post-2576138270231791136</id><published>2010-03-12T18:00:00.014+01:00</published><updated>2010-03-12T18:00:00.073+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="arquitectura"/><category scheme="http://www.blogger.com/atom/ns#" term="ciclo"/><category scheme="http://www.blogger.com/atom/ns#" term="cíclica"/><category scheme="http://www.blogger.com/atom/ns#" term="dependencia"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="jdepend"/><category scheme="http://www.blogger.com/atom/ns#" term="sonar"/><title type='text'>Cómo romper dependencias cíclicas entre paquetes.</title><content type='html'>&lt;a href=&quot;http://sonar.codehaus.org/&quot;&gt;Sonar&lt;/a&gt;, con su &lt;a href=&quot;http://sonar.codehaus.org/sonar-2-0-in-screenshots/&quot;&gt;versión 2.0&lt;/a&gt;, viene a cubrir todas las necesidades de control de la calidad de los proyectos de desarrollo; proporcionando además, herramientas sufientes para solucionar los problemas encontrados. &lt;br /&gt;&lt;br /&gt;Ya hemos comentado con anterioridad las ventajas de utilizarlo, que son muchas pero, con la nueva versión podemos incluso localizar con facilidad dónde se encuentran las dependencias cíclicas de tu código.&lt;br /&gt;&lt;br /&gt;Por ejemplo, echando un vistazo al código de Apache Jackrabbit en su versión 2.1 de desarrollo,&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoACaihSFkWO3F6efyA7y0eFt6L-EgBnal89qfQAO84D51EpqNL67QTBTkBEE9aVZ0J7adxcJgYVoTPrYysGEZl6RqSexoPiXaIpn4R87lK0SIvIyhONF6SaePcZQ5_B9k87Y9mvsPqTFh/s1600-h/img_00_jackrabbit.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 225px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoACaihSFkWO3F6efyA7y0eFt6L-EgBnal89qfQAO84D51EpqNL67QTBTkBEE9aVZ0J7adxcJgYVoTPrYysGEZl6RqSexoPiXaIpn4R87lK0SIvIyhONF6SaePcZQ5_B9k87Y9mvsPqTFh/s400/img_00_jackrabbit.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5447712985652119090&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;podemos observar que éxisten dependencias entre paquetes.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj42TgCT-3WD0bSTMUsrHmAfDuiBK74dwlRmoHqzEPIhX_Mw79x5dFeyGUtxATTM2x_UbSf9cxG2lZHSoDJm15ijP3OT2ENvrWKOKdDx_9OSfgtvu2RO214B1v2Ywi2SvPLGyAIo2dqYVRk/s1600-h/img_00_resumen_ciclos.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 128px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj42TgCT-3WD0bSTMUsrHmAfDuiBK74dwlRmoHqzEPIhX_Mw79x5dFeyGUtxATTM2x_UbSf9cxG2lZHSoDJm15ijP3OT2ENvrWKOKdDx_9OSfgtvu2RO214B1v2Ywi2SvPLGyAIo2dqYVRk/s400/img_00_resumen_ciclos.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5447709026963934994&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;También sabemos cuántos ciclos existen, 264, y el número de dependencias entre paquetes y entre ficheros a romper, 99 y 329 respectivamente.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYPX4g8wq21gebzkxZjUf9A_n1T9AKnHmqLH8stYHGOHZ5HKnbudt8fhdAiciw0Uh66EAns9orIdrot46yGJx60NL9kR6EnfspjN1R62RVBiyueUa6kGfEXN1RH_dpFKyZSsxQQceYMrxb/s1600-h/img_01_package_cycles.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 94px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYPX4g8wq21gebzkxZjUf9A_n1T9AKnHmqLH8stYHGOHZ5HKnbudt8fhdAiciw0Uh66EAns9orIdrot46yGJx60NL9kR6EnfspjN1R62RVBiyueUa6kGfEXN1RH_dpFKyZSsxQQceYMrxb/s400/img_01_package_cycles.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5447708827400235122&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Pulsando sobre los datos nos mostrará la matriz de dependencias,&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivFYZF5hNY-lYNVA2_uPXXLYy37TuPwJmHxJ11j_4MgnJIVRXKYsw3ns-o_wFAofzbyU7Q0Ke5bhaIzZYY9HHCaoOuEqQ56nYj0a7WWmaEpF_N4TFJsIIZQ-KN65jkBvymlKkK0hIXW_Sa/s1600-h/img_02_package_cycles_design.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 242px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivFYZF5hNY-lYNVA2_uPXXLYy37TuPwJmHxJ11j_4MgnJIVRXKYsw3ns-o_wFAofzbyU7Q0Ke5bhaIzZYY9HHCaoOuEqQ56nYj0a7WWmaEpF_N4TFJsIIZQ-KN65jkBvymlKkK0hIXW_Sa/s400/img_02_package_cycles_design.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5447707977461101394&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;donde buscaremos las que debemos romper, representadas con color rojo.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfSW4U6Gqr56JaDFPlZz_xQs2AB_D4ieMcTQsH4nmiyW-bBHOvuNefNCfbQOs81mkvTninSLcXDVxeJM4UJQBXeaA88II3bJm_MaGZ1ygivds84IbPbtPOKCLVDZgAIBIn7J7effaBUJNa/s1600-h/img_03_matrix.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 98px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfSW4U6Gqr56JaDFPlZz_xQs2AB_D4ieMcTQsH4nmiyW-bBHOvuNefNCfbQOs81mkvTninSLcXDVxeJM4UJQBXeaA88II3bJm_MaGZ1ygivds84IbPbtPOKCLVDZgAIBIn7J7effaBUJNa/s400/img_03_matrix.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5447707521435921042&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bien, hasta aquí podríamos haber utilizado otras herramientas más comunes como JDepend pero, ¿cómo puedo saber cuáles ficheros tengo que tocar? Simplemente doble click sobre la celda de color rojo y nos mostrará los ficheros implicados.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHWxt2ypwpJN33J6PXmz8viR49Ma_kiYDYHdIErFWWUO37iIPKXJDspvqx3c9enFGS6nTpGpeZ3r2Er2ije1seV3XLwZGZzvfFPSTTI4TkWDnlFYIWllZhyGSFaTtVn3jn1IFAGhaKCjKr/s1600-h/img_04_files.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 166px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHWxt2ypwpJN33J6PXmz8viR49Ma_kiYDYHdIErFWWUO37iIPKXJDspvqx3c9enFGS6nTpGpeZ3r2Er2ije1seV3XLwZGZzvfFPSTTI4TkWDnlFYIWllZhyGSFaTtVn3jn1IFAGhaKCjKr/s400/img_04_files.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5447704005481040642&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A partir de aquí, puedes empezar a refactorizar.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivIzfmCxrRkBuu8rgeEhOgMQ2t7gVPTgbl-b-S5-WvshV2GFJLX80zFD4xrN_ALAtAp65sXjlmqtO9yxek3i8QFxcuLkMoinlClCeOsgmqtkKhyphenhyphenP4oHsn9ayq00sNkpmBmRK4mUtuW2Z40/s1600-h/img_05_file.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 87px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivIzfmCxrRkBuu8rgeEhOgMQ2t7gVPTgbl-b-S5-WvshV2GFJLX80zFD4xrN_ALAtAp65sXjlmqtO9yxek3i8QFxcuLkMoinlClCeOsgmqtkKhyphenhyphenP4oHsn9ayq00sNkpmBmRK4mUtuW2Z40/s400/img_05_file.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5447706819155965458&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Más información en,&lt;br /&gt;&lt;br /&gt;http://sonar.codehaus.org/&lt;br /&gt;http://nemo.sonarsource.org/&lt;br /&gt;http://nemo.sonarsource.org/project/index/org.apache.jackrabbit:jackrabbit&lt;br /&gt;http://nemo.sonarsource.org/drilldown/measures/org.apache.jackrabbit:jackrabbit?metric=package_cycles&lt;br /&gt;http://nemo.sonarsource.org/drilldown/measures/org.apache.jackrabbit:jackrabbit?metric=package_cycles&amp;rids[]=32189</content><link rel='replies' type='application/atom+xml' href='http://emilio-escobar.blogspot.com/feeds/2576138270231791136/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6403277185383030627/2576138270231791136' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/2576138270231791136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/2576138270231791136'/><link rel='alternate' type='text/html' href='http://emilio-escobar.blogspot.com/2010/03/como-romper-dependencias-ciclicas-entre.html' title='Cómo romper dependencias cíclicas entre paquetes.'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoACaihSFkWO3F6efyA7y0eFt6L-EgBnal89qfQAO84D51EpqNL67QTBTkBEE9aVZ0J7adxcJgYVoTPrYysGEZl6RqSexoPiXaIpn4R87lK0SIvIyhONF6SaePcZQ5_B9k87Y9mvsPqTFh/s72-c/img_00_jackrabbit.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6403277185383030627.post-3190805428887047289</id><published>2010-02-25T15:00:00.004+01:00</published><updated>2010-02-25T16:03:12.518+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GateIn"/><category scheme="http://www.blogger.com/atom/ns#" term="isotrol"/><category scheme="http://www.blogger.com/atom/ns#" term="Liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="Portal3.0"/><category scheme="http://www.blogger.com/atom/ns#" term="Portlet"/><title type='text'>Portal3.0, Liferay5.2.3CE, GateIn3.0</title><content type='html'>Va llegando el momento de ir mostrando características de tres productos con similares orientaciones y funcionalidades. Los tres están pensados para lo mismo, construir portales de forma más o menos sencilla y modular, con dos diferencias fundamentales:&lt;br /&gt;&lt;ul&gt;&lt;strike&gt;&lt;li&gt;Tanto &lt;a href=&quot;http://www.liferay.com/products/liferay-portal&quot;&gt;Liferay&lt;/a&gt; como &lt;a href=&quot;http://www.jboss.org/gatein.html&quot;&gt;GateIn&lt;/a&gt; incorporan un pequeño gestor de contenidos. &lt;a href=&quot;https://www.isotrol.com&quot;&gt;Portal3.0&lt;/a&gt; no lo hace.&lt;/li&gt;&lt;/strike&gt;&lt;li&gt;&lt;a href=&quot;http://www.liferay.com/products/liferay-portal&quot;&gt;Liferay&lt;/a&gt; incorpora un pequeño gestor de contenidos. Ni &lt;a href=&quot;https://www.isotrol.com&quot;&gt;Portal3.0&lt;/a&gt; ni &lt;a href=&quot;http://www.jboss.org/gatein.html&quot;&gt;GateIn&lt;/a&gt; lo hacen.&lt;/li&gt;&lt;li&gt;Tanto &lt;a href=&quot;http://www.liferay.com/products/liferay-portal&quot;&gt;Liferay&lt;/a&gt; como &lt;a href=&quot;http://www.jboss.org/gatein.html&quot;&gt;GateIn&lt;/a&gt; son implementaciones de &lt;a href=&quot;http://jcp.org/en/jsr/detail?id=168&quot;&gt;JSR-168&lt;/a&gt; (Portlets1) y de &lt;a href=&quot;http://jcp.org/en/jsr/detail?id=268&quot;&gt;JSR-268&lt;/a&gt; (Portlets2). &lt;a href=&quot;https://www.isotrol.com&quot;&gt;Portal3.0&lt;/a&gt; no lo implementa.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;El por qué de estas diferencias es sencillo, &lt;a href=&quot;https://www.isotrol.com&quot;&gt;Portal3.0&lt;/a&gt; no integra un gestor de contenidos porque existen muchos WCM/DCM/CMS más capaces que los que proporcionan el resto soluciones. &lt;a href=&quot;https://www.isotrol.com&quot;&gt;Portal3.0&lt;/a&gt; no es una implementación de Portlets porque ya existen (Liferay y GateIn son un gran ejemplo).&lt;br /&gt;&lt;br /&gt;En próximos post expondré las razones de ambas diferencias, repasando por qué &lt;a href=&quot;https://www.isotrol.com&quot;&gt;Portal3.0&lt;/a&gt; no implementa Portlets y por qué no integra un gestor de contenidos.</content><link rel='replies' type='application/atom+xml' href='http://emilio-escobar.blogspot.com/feeds/3190805428887047289/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6403277185383030627/3190805428887047289' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/3190805428887047289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/3190805428887047289'/><link rel='alternate' type='text/html' href='http://emilio-escobar.blogspot.com/2010/02/portal30-liferay523ce-gatein30.html' title='Portal3.0, Liferay5.2.3CE, GateIn3.0'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6403277185383030627.post-3456021368487802943</id><published>2010-02-23T15:00:00.003+01:00</published><updated>2010-02-23T15:36:49.765+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GateIn"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="Portal3.0"/><category scheme="http://www.blogger.com/atom/ns#" term="Struts2"/><title type='text'>Portal3.0</title><content type='html'>Desde hace algunos &lt;span style=&quot;font-style:italic;&quot;&gt;posts&lt;/span&gt; vamos anunciando proyectos en los que se utiliza &lt;a href=&quot;http://www.isotrol.com&quot;&gt;Portal3.0&lt;/a&gt; como motor de ejecución, herramienta de administración y marco de trabajo. No voy a entrar en detalles aún pero, algunos detalles curiosos.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;&lt;a href=&quot;http://struts.apache.org/2.x/&quot;&gt;Struts2&lt;/a&gt;&lt;/span&gt;, 79.396 líneas de código, 1.145 clases, 2,7 de complejidad media por método, 17,4 de complejidad media por clase, 19.908 de complejidad, 20,1% de comentarios, y un 26,2% de cobertura de código.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;&lt;a href=&quot;http://www.isotrol.com&quot;&gt;Portal3.0&lt;/a&gt;&lt;/span&gt;, 83.597 líneas de código, 1.803 clases, 1,7 de complejidad media por método, 8,6 de complejidad media por clase, 15.560 de complejidad, 23,4% de comentarios, y un 27,4% de cobertura de código.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;&lt;a href=&quot;http://www.jboss.org/gatein&quot;&gt;GateIn - Portal&lt;/a&gt;&lt;/span&gt;, 75.774 líneas de código, 1.274 clases, 2,6 de complejidad media por método, 10,5 de complejidad media por clase, 13.399 de complejidad, 8,4% de comentarios, y un 40,1% de cobertura de código.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.isotrol.com&quot;&gt;Portal3.0&lt;/a&gt; ha alcanzado un grado de madurez importante :-)</content><link rel='replies' type='application/atom+xml' href='http://emilio-escobar.blogspot.com/feeds/3456021368487802943/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6403277185383030627/3456021368487802943' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/3456021368487802943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6403277185383030627/posts/default/3456021368487802943'/><link rel='alternate' type='text/html' href='http://emilio-escobar.blogspot.com/2010/02/portal30.html' title='Portal3.0'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>