<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Gestor de contenidos ligero para un AMPA</title>
	<atom:link href="http://melu71178.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://melu71178.wordpress.com</link>
	<description>Proyecto fin de máster</description>
	<lastBuildDate>Mon, 08 Jun 2009 20:16:55 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='melu71178.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Gestor de contenidos ligero para un AMPA</title>
		<link>http://melu71178.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://melu71178.wordpress.com/osd.xml" title="Gestor de contenidos ligero para un AMPA" />
	<atom:link rel='hub' href='http://melu71178.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Del servicio, Jpa y relaciones many-to-many</title>
		<link>http://melu71178.wordpress.com/2009/06/08/del-servicio-jpa-y-relaciones-many-to-many/</link>
		<comments>http://melu71178.wordpress.com/2009/06/08/del-servicio-jpa-y-relaciones-many-to-many/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 20:16:55 +0000</pubDate>
		<dc:creator>melu71178</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://melu71178.wordpress.com/?p=42</guid>
		<description><![CDATA[El servicio que corre por debajo de la web del AMPA, está, a día de hoy, 8 junio 09, 90% funcional. Pero el diseño, sobre todo, me ha llevado muchos dolores de cabeza, principalmente la forma de hacer relaciones many-to-many. ¿Cómo? Mis experiencias me dicen que: -Una relación many to many bidireccional, da problemas, muchos. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=melu71178.wordpress.com&amp;blog=6169301&amp;post=42&amp;subd=melu71178&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>El servicio que corre por debajo de la web del AMPA, está, a día de hoy, 8 junio 09, 90% funcional.<br />
Pero el diseño, sobre todo, me ha llevado muchos dolores de cabeza, principalmente la forma de hacer relaciones many-to-many. ¿Cómo? Mis experiencias me dicen que:</p>
<p>-Una relación many to many bidireccional, da problemas, muchos.<br />
-Cambiar una many to many bidireccional por una one to many es engañar a la aplicación, y la práctica dice que no funciona, el dominio no es así.<br />
-Lo ideal sería tener una relación many-to-many unidireccional, como indica la figura:</p>
<div id="attachment_44" class="wp-caption aligncenter" style="width: 310px"><img src="http://melu71178.files.wordpress.com/2009/06/many-to-many.jpg?w=300&#038;h=195" alt="Relación many to many bidireccional" title="Relación many to many bidireccional" width="300" height="195" class="size-medium wp-image-44" /><p class="wp-caption-text">Relación many to many bidireccional</p></div>
<p>Por poner un ejemplo real del AMPA, lo ilustraré con la relación que existe entre un enlace y una categoría de enlaces. Una categoría puede tener muchos enlaces, y a su vez, un enlace puede estar en muchas categorías. No obstante, que el propio enlace sepa cuales categorías son sus contenedoras, no interesa, y sí al contrario; es deseable que la categoría de enlaces lleve un recuento de cuántos enlaces contiene.</p>
<p>Aquí, la entidad A sería la clase CategoriaEnlace y la entidad B, la clase Enlace. El mapeo en CategoriaEnlace de la colección de enlaces sería como sigue:</p>
<p>  /**<br />
     * Enlaces de la categoría.<br />
     */<br />
    @ManyToMany(fetch = FetchType.LAZY, cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH } )<br />
    @JoinTable(name=&#8221;categoriaenlace-enlace&#8221; joinColumns={@JoinColumn(name=&#8221;categoriaenlace_id&#8221;)},<br />
    inverseJoinColumns={@JoinColumn(name=&#8221;enlace_id&#8221;)})<br />
    private Set enlaces = new HashSet();</p>
<p>La cascada se define así puesto que así necesita el dominio que actúe. Si se graba/actualiza una categoría de enlaces con enlaces que no estén persistidos, se persisten mediante la cascada. No obstante, si se borra una categoría de enlaces, sus enlaces no se borran. </p>
<p>Los enlaces tienen un ciclo de vida independiente al de las categorías. Se pueden insertar, borrar, modificar enlaces independientemente de las categorías que existan. No obstante, cabe destacar una salvedad: El desarrollador se encarga, en caso de que se desee borrar un enlace vinculado a categorías, de que se desvinculen esas relaciones (y por tanto, mantener la tabla intermedia categoriaenlace-enlace) .</p>
<p>  /**<br />
     * {@inheritDoc}<br />
     */<br />
    public void borrarEnlace(Enlace enlace) throws EntidadNoPerteneceException {<br />
        // Comprobar que los parámetros no son nulos.<br />
        if (enlace == null) {<br />
            throw new IllegalArgumentException(<br />
                DefaultGestorEnlacesImpl.FMT_NULL_PARAMETER<br />
                    .format(new String[] { &#8220;enlace&#8221; }));<br />
        }</p>
<p>        // Desvincular el enlace de las categorías a las que está asociado.<br />
        List categorias =<br />
            this.ampaDao.buscarCategoriasContenedorasDeEnlace(enlace);<br />
        for (CategoriaEnlace categoria : categorias) {<br />
            categoria.quitarEnlace(enlace);<br />
            this.actualizarCategoriaEnlace(categoria);<br />
        }</p>
<p>        this.getEnlaceDao().makeTransient(enlace);<br />
    }</p>
<p>Lo mismo para borrar una categoría, se desvinculan sus enlaces asociados y se pasan a una categoría &#8220;global&#8221;, de nombre General:</p>
<p> /**<br />
     * {@inheritDoc}<br />
     */<br />
    public void borrarCategoriaEnlace(CategoriaEnlace categoria) throws EntidadNoPerteneceException {<br />
        // Comprobar que los parámetros no son nulos.<br />
        if (categoria == null) {<br />
            throw new IllegalArgumentException(<br />
                DefaultGestorEnlacesImpl.FMT_NULL_PARAMETER<br />
                    .format(new String[] { &#8220;categoria&#8221; }));<br />
        }<br />
        //Desvinculamos los enlaces que tiene y los pasamos a la categoría GENERAL.<br />
        CategoriaEnlace categoriaGeneral = this.categoriaEnlaceDao.findById(1l);<br />
        categoriaGeneral = this.cargarEnlacesPorCategoria(categoriaGeneral);<br />
        for(Enlace e:categoria.getEnlaces()){<br />
            categoria.quitarEnlace(e);<br />
            try {<br />
                categoriaGeneral.agregarEnlace(e);<br />
            } catch (EntidadPerteneceException e1) {<br />
              //No se hace nada, no se agrega a la categoría porque ya lo tenía.<br />
            }<br />
        }<br />
        categoriaGeneral = this.categoriaEnlaceDao.makePersistent(categoriaGeneral);<br />
        categoria = this.categoriaEnlaceDao.makePersistent(categoria);<br />
        this.getCategoriaEnlaceDao().makeTransient(categoria);<br />
    }</p>
<p>Hay que tener muy en cuenta este detalle si no queremos que la base de datos se queje al intentar borrar entidades.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/melu71178.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/melu71178.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/melu71178.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/melu71178.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/melu71178.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/melu71178.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/melu71178.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/melu71178.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/melu71178.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/melu71178.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/melu71178.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/melu71178.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/melu71178.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/melu71178.wordpress.com/42/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=melu71178.wordpress.com&amp;blog=6169301&amp;post=42&amp;subd=melu71178&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://melu71178.wordpress.com/2009/06/08/del-servicio-jpa-y-relaciones-many-to-many/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/59b5b178de206e134be284b94babcbc7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">melu71178</media:title>
		</media:content>

		<media:content url="http://melu71178.files.wordpress.com/2009/06/many-to-many.jpg?w=300" medium="image">
			<media:title type="html">Relación many to many bidireccional</media:title>
		</media:content>
	</item>
		<item>
		<title>Jetty y Maven</title>
		<link>http://melu71178.wordpress.com/2009/06/08/jetty-y-maven/</link>
		<comments>http://melu71178.wordpress.com/2009/06/08/jetty-y-maven/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 19:51:25 +0000</pubDate>
		<dc:creator>melu71178</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://melu71178.wordpress.com/?p=40</guid>
		<description><![CDATA[Definitivamente, Tomcat no encajaba en este proyecto. La opción última y forzosa de tener que generar el war y tirarlo en la carpeta de despliegue del Tomcat cada vez que se quisiera hacer una prueba, no era viable e incrementaba muchísimo el tiempo de desarrollo (el ESCASO tiempo de desarrollo, más bien). Hasta que descubrí [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=melu71178.wordpress.com&amp;blog=6169301&amp;post=40&amp;subd=melu71178&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Definitivamente, Tomcat no encajaba en este proyecto. La opción última y forzosa de tener que generar el war y tirarlo en la carpeta de despliegue del Tomcat cada vez que se quisiera hacer una prueba, no era viable e incrementaba muchísimo el tiempo de desarrollo (el ESCASO tiempo de desarrollo, más bien).</p>
<p>Hasta que descubrí <a href="http://www.mortbay.org/jetty/">Jetty</a>, y, lo que es más, el potentísimo <a href="http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=jettymaven">plugin</a> para Jetty de Maven. Es una pasada, entre las múltiples ventajas que le he encontrado destaco tres:</p>
<p>-El desarrollador no tiene que preocuparse por instalar el servidor , nada. Lanzando la rutina maven <em>mvn jetty:run</em>, maven se lo baja, si no existe, y lo instala. Las siguientes veces que se ejecute esta rutina, ya estará en el repositorio local, con lo cual se lanza y listo.</p>
<p>-Los cambios del código se despliegan en caliente. El desarrollador puede ir escribiendo-probando-escribiendo-probando-escribiendo-probando, así hasta el infinito, sin paradas de servidor, rearranques, etc, etc&#8230;</p>
<p>-Posibilidad de debuguear el código. Mediante unos sencillos pasos, explicados en este <a href="http://docs.codehaus.org/display/JETTY/Debugging+with+the+Maven+Jetty+Plugin+inside+Eclipse">tutorial</a>, se configura el eclipse para poder debuguear el código.</p>
<p>Conclusión: un 10 al Jetty y al plugin de Maven.</p>
<p>Otra característica de Maven que he descubierto recientemente es la opción <strong>-o</strong>, que permite usar Maven en modo offline. Ideal cuando no se desea que se baje cosas nuevas de los repositorios que dicta el pom, o para trabajar con Maven sin conexión a Internet.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/melu71178.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/melu71178.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/melu71178.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/melu71178.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/melu71178.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/melu71178.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/melu71178.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/melu71178.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/melu71178.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/melu71178.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/melu71178.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/melu71178.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/melu71178.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/melu71178.wordpress.com/40/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=melu71178.wordpress.com&amp;blog=6169301&amp;post=40&amp;subd=melu71178&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://melu71178.wordpress.com/2009/06/08/jetty-y-maven/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/59b5b178de206e134be284b94babcbc7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">melu71178</media:title>
		</media:content>
	</item>
		<item>
		<title>Quinta reunión con la directora</title>
		<link>http://melu71178.wordpress.com/2009/05/05/quinta-reunion-con-la-directora/</link>
		<comments>http://melu71178.wordpress.com/2009/05/05/quinta-reunion-con-la-directora/#comments</comments>
		<pubDate>Tue, 05 May 2009 08:33:23 +0000</pubDate>
		<dc:creator>melu71178</dc:creator>
				<category><![CDATA[Reuniones con director]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://melu71178.wordpress.com/?p=34</guid>
		<description><![CDATA[El viernes 16 abril se produjo la quinta reunión con la directora. Los puntos a tratar en ésta fueron: -Anteproyecto. Firmamos el anteproyecto y lo dejamos listo para entregar. -Tema de socios del AMPA. Cada cuanto se paga la cuota (anualmente) y el importe de la misma, 12 € por familia, independientemente del número de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=melu71178.wordpress.com&amp;blog=6169301&amp;post=34&amp;subd=melu71178&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>El viernes 16 abril se produjo la quinta reunión con la directora. Los puntos a tratar en ésta fueron:</p>
<p>-Anteproyecto. Firmamos el anteproyecto y lo dejamos listo para entregar.<br />
-Tema de socios del AMPA. Cada cuanto se paga la cuota (anualmente) y el importe de la misma, 12 € por familia, independientemente del número de hijos y de la edad de los mismos.<br />
-Cómo debo enfocar la documentación del proyecto.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/melu71178.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/melu71178.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/melu71178.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/melu71178.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/melu71178.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/melu71178.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/melu71178.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/melu71178.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/melu71178.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/melu71178.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/melu71178.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/melu71178.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/melu71178.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/melu71178.wordpress.com/34/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=melu71178.wordpress.com&amp;blog=6169301&amp;post=34&amp;subd=melu71178&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://melu71178.wordpress.com/2009/05/05/quinta-reunion-con-la-directora/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/59b5b178de206e134be284b94babcbc7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">melu71178</media:title>
		</media:content>
	</item>
		<item>
		<title>Problemillas con Maven y Tomcat.</title>
		<link>http://melu71178.wordpress.com/2009/04/28/problemillas-con-maven-y-tomcat/</link>
		<comments>http://melu71178.wordpress.com/2009/04/28/problemillas-con-maven-y-tomcat/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 07:01:34 +0000</pubDate>
		<dc:creator>melu71178</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[tomcat]]></category>

		<guid isPermaLink="false">http://melu71178.wordpress.com/?p=36</guid>
		<description><![CDATA[Durante varias semanas he tenido bastantes problemas para lograr desplegar mi aplicación web creada desde maven en un Tomcat. En un entorno de desarrollo, directamente la directiva de Maven mvn eclipse:clean eclipse:eclipse no funcionaba. Eso pasaba al meter la dependencia del servicio del AMPA: ampa ampa-service 1.0-SNAPSHOT Aparte de todo esto, en el mismo entorno [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=melu71178.wordpress.com&amp;blog=6169301&amp;post=36&amp;subd=melu71178&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Durante varias semanas he tenido bastantes problemas para lograr desplegar mi aplicación web creada desde maven en un Tomcat.</p>
<p>En un entorno de desarrollo, directamente la directiva de Maven <em>mvn eclipse:clean eclipse:eclipse</em> no funcionaba. Eso pasaba al meter la dependencia del servicio del AMPA:<br />
<em></p>
<p>			ampa<br />
			ampa-service<br />
			1.0-SNAPSHOT<br />
		</em></p>
<p>Aparte de todo esto, en el mismo entorno con MyEclipse, el plugin que trae para Tomcat no funcionaba correctamente. La aplicación se quedaba a medio desplegar y al abrir el navegador, no se mostraba.</p>
<p>Desde otro entorno diferente, menos que más, pero ocurrían los siguientes problemas. Aquí, Maven funcionaba correctamente, pero los problemas estaban al desplegar en MyEclipse. El plugin para Tomcat que trae incorporado funcionaba aún peor que en el primer entorno, con lo que decidí dejar de usar MyEclipse.</p>
<p>Me instalé un Eclipse normal, con el <a href="http://www.eclipsetotale.com/tomcatPlugin.html">plugin de Tomcat Sysdeo</a>. Para instalarlo leí alguna documentación, como este <a href="http://wiki.gpi.com.ar/wiki/Sysdeo_Tomcat_Eclipse_Manual">tutorial</a>. El plugin en este caso funcionaba correctamente, pero seguía habiendo problemas al intentar desplegar desde él aplicaciones web creadas con Maven. Aparentemente se desplegaban correctamente, pero al poner la url en el navegador, mostraba un mensaje de recurso no disponible.</p>
<p>Con lo cual, como último recurso opté por desplegar a la vieja usanza. Con el comando de maven <em>mvn package</em>, se genera el .war y se tira en la carpeta de despliegue del Tomcat. Fin. Punto.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/melu71178.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/melu71178.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/melu71178.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/melu71178.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/melu71178.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/melu71178.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/melu71178.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/melu71178.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/melu71178.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/melu71178.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/melu71178.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/melu71178.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/melu71178.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/melu71178.wordpress.com/36/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=melu71178.wordpress.com&amp;blog=6169301&amp;post=36&amp;subd=melu71178&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://melu71178.wordpress.com/2009/04/28/problemillas-con-maven-y-tomcat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/59b5b178de206e134be284b94babcbc7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">melu71178</media:title>
		</media:content>
	</item>
		<item>
		<title>Icefaces!!</title>
		<link>http://melu71178.wordpress.com/2009/04/20/icefaces/</link>
		<comments>http://melu71178.wordpress.com/2009/04/20/icefaces/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 15:46:48 +0000</pubDate>
		<dc:creator>melu71178</dc:creator>
				<category><![CDATA[icefaces]]></category>
		<category><![CDATA[jsf (Java Server Faces)]]></category>

		<guid isPermaLink="false">http://melu71178.wordpress.com/?p=28</guid>
		<description><![CDATA[Un mes sin seguimiento del proyecto no significa que haya estado un mes en stand-by. Tras descubrir Icefaces, particularmente el potente set de componentes que ofrece, se tomó un rumbo en cuanto a qué implementación JSF emplear. La implementación inicialmente elegida hubiese sido MyFaces, poniendo como más potente argumento a favor el tema de la [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=melu71178.wordpress.com&amp;blog=6169301&amp;post=28&amp;subd=melu71178&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Un mes sin seguimiento del proyecto no significa que haya estado un mes en stand-by.</p>
<p>Tras descubrir <a href="http://www.icefaces.org/main/home/">Icefaces</a>, particularmente el potente <a href="http://component-showcase.icefaces.org/component-showcase/showcase.iface">set de componentes</a> que ofrece, se tomó un rumbo en cuanto a qué implementación <a href="http://java.sun.com/javaee/javaserverfaces/">JSF</a> emplear.</p>
<p>La implementación inicialmente elegida hubiese sido <a href="http://myfaces.apache.org/">MyFaces</a>, poniendo como más potente argumento a favor el tema de la <a href="http://es.wikipedia.org/wiki/Accesibilidad_web">accesibilidad</a>.</p>
<p>No obstante, tras consultar y estudiar mucha documentación, se ha llegado a la conclusión que el uso de MyFaces no garantiza plenamente la obtención de páginas accesibles. Es más, difícilmente se puede superar el nivel AA de conformidad , aún modificando manualmente el código generado.</p>
<p>Con lo cual, la solución de facto que se ha propuesto es hacer las páginas públicas (que puede consultar todo el mundo) lo más accesibles que sea posible. Por otro lado, aprovecharnos de las grandes ventajas que ofrece Icefaces para el desarrollo de la parte privada del sitio (que sólo consultará el administrador), no centrando en ésta total atención en cuanto a accesibilidad.</p>
<p>Como ejemplos de componentes a medida ya desarrollados, encontramos decenas, tales como:</p>
<p>-Editores de texto enriquecidos.<br />
-Cantidad de funcionalidades sobre tablas (columnas ordenables, tablas con paginación&#8230;)<br />
-Paneles popup.<br />
-Formularios de carga de ficheros adjuntos.<br />
-Etc&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/melu71178.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/melu71178.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/melu71178.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/melu71178.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/melu71178.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/melu71178.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/melu71178.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/melu71178.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/melu71178.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/melu71178.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/melu71178.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/melu71178.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/melu71178.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/melu71178.wordpress.com/28/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=melu71178.wordpress.com&amp;blog=6169301&amp;post=28&amp;subd=melu71178&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://melu71178.wordpress.com/2009/04/20/icefaces/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/59b5b178de206e134be284b94babcbc7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">melu71178</media:title>
		</media:content>
	</item>
		<item>
		<title>Primeros pasos con Facelets</title>
		<link>http://melu71178.wordpress.com/2009/03/10/primeros-pasos-con-facelets/</link>
		<comments>http://melu71178.wordpress.com/2009/03/10/primeros-pasos-con-facelets/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 08:23:48 +0000</pubDate>
		<dc:creator>melu71178</dc:creator>
				<category><![CDATA[facelets]]></category>

		<guid isPermaLink="false">http://melu71178.wordpress.com/?p=25</guid>
		<description><![CDATA[Ya que se ha decidido usar JSF como framework MVC, se optimizarán las vistas tanto como sea posible mediante el uso del framework de plantillas Facelets. Sería similar al uso de Tiles con el framework Struts. Facelets tiene una extensa documentación a disposición del desarrollador, para consultarla seguir este link Para configurar la aplicación para [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=melu71178.wordpress.com&amp;blog=6169301&amp;post=25&amp;subd=melu71178&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ya que se ha decidido usar <a href="http://java.sun.com/javaee/javaserverfaces/">JSF</a> como framework MVC, se optimizarán las vistas tanto como sea posible mediante el uso del framework de plantillas <a href="https://facelets.dev.java.net/">Facelets</a>. Sería similar al uso de <a href="http://tiles.apache.org/">Tiles</a> con el framework <a href="http://struts.apache.org/">Struts</a>.</p>
<p>Facelets tiene una extensa documentación a disposición del desarrollador, para consultarla seguir <a href="https://facelets.dev.java.net/nonav/docs/dev/docbook.html">este link</a></p>
<p>Para configurar la aplicación para el uso de Facelets, he seguido <a href="http://www.danilat.com/weblog/2007/07/06/empezando-con-facelets/">este tutorial</a>, que explica punto por punto los pasos necesarios para configurar la aplicación con el objetivo de usar este framework.</p>
<p>También me ha parecido interesante <a href="http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=faceletsEclipse">este artículo</a>, que explica cómo configurar el IDE de desarrollo (en el artículo, <a href="http://www.eclipse.org/europa/">Eclipse Europa</a>), para tener disponible la opción autocompletar usando facelets (normalmente, el soporte de los ide´s para facelets es muy pobre).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/melu71178.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/melu71178.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/melu71178.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/melu71178.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/melu71178.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/melu71178.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/melu71178.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/melu71178.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/melu71178.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/melu71178.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/melu71178.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/melu71178.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/melu71178.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/melu71178.wordpress.com/25/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=melu71178.wordpress.com&amp;blog=6169301&amp;post=25&amp;subd=melu71178&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://melu71178.wordpress.com/2009/03/10/primeros-pasos-con-facelets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/59b5b178de206e134be284b94babcbc7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">melu71178</media:title>
		</media:content>
	</item>
		<item>
		<title>Cuarta reunión con la directora</title>
		<link>http://melu71178.wordpress.com/2009/03/09/cuarta-reunion-con-la-directora/</link>
		<comments>http://melu71178.wordpress.com/2009/03/09/cuarta-reunion-con-la-directora/#comments</comments>
		<pubDate>Mon, 09 Mar 2009 22:51:26 +0000</pubDate>
		<dc:creator>melu71178</dc:creator>
				<category><![CDATA[Reuniones con director]]></category>

		<guid isPermaLink="false">http://melu71178.wordpress.com/?p=23</guid>
		<description><![CDATA[El jueves 5 Marzo de 2009 se produjo la cuarta reunión de la directora. Días antes los miembros del AMPA habían visto el prototipo preliminar, con un aspecto como el que sigue: Lourdes me hizo llegar los comentarios que le habían hecho estas personas al respecto, los cuales resumo junto con otros comentarios realizados por [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=melu71178.wordpress.com&amp;blog=6169301&amp;post=23&amp;subd=melu71178&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>El jueves 5 Marzo de 2009 se produjo la cuarta reunión de la directora. Días antes los miembros del AMPA habían visto el prototipo preliminar, con un aspecto como el que sigue:</p>
<p><img src="http://melu71178.files.wordpress.com/2009/03/prototipo.jpg?w=300&#038;h=143" alt="prototipo" title="prototipo" width="300" height="143" class="alignnone size-medium wp-image-22" /></p>
<p>Lourdes me hizo llegar los comentarios que le habían hecho estas personas al respecto, los cuales resumo junto con otros comentarios realizados por compañeros de trabajo y amigos:</p>
<p>-La búsqueda debe ocupar un lugar menos preferente en la página, quizás con un cuadro más pequeño y sustituir el botón por una imagen más discreta.<br />
-Sustituir el título de la página o acompañarlo por una imagen que vaya acorde con el propósito del sitio.<br />
-No repetir opciones en el menú superior e inferior (por ejemplo: Portada en ambos sitios)<br />
-Migas: Sustituir el &#8220;Está usted en &gt;Inicio&gt;Estatutos&#8221; por &#8220;Está usted en <strong>:</strong> Inicio&gt;Estatutos&#8221;.<br />
-Criticada la sección de Ayuda en el menú más superior (pero hemos decidido mantenerlo debido a la inexperiencia de los usuarios, sobre todo aquellos que deban administrar algún contenido)<br />
-Cuidar la presentación, estilos y acompañarlo de algún icono explicativo (Ejemplo: si en una novedad añadimos un icono con aspecto de calendario, precediendo a la fecha de publicación de la novedad y el autor, queda mucho más &#8220;resultón&#8221;).<br />
-El menú izquierdo de usuario logueado se va a eliminar. En &#8220;el hueco&#8221; que deja se pondrá información que los miembros del AMPA creen ha de estar siempre visible, como son los datos de contacto y horario de apertura. Por consiguiente, se eliminará esta opción (contacto) del menú más superior.<br />
-El usuario logueado ya no verá este menú que mencionaba en el punto anterior, sino que se habilitará un enlace a la zona privada del sitio. En esta zona aparecerá una pantalla de administración con un tabbed pane por cada opción a administrar (Ejemplo: pestañas usuarios, enlaces, actividades extraescolares, grupo deportivo)</p>
<p>Otro punto a tratar ha sido el de los roles de usuario. Una vez decididos a utilizar <a href="http://static.springframework.org/spring-security/site/">Spring Security</a> para gestionar la securización, se han definido los siguientes roles de usuario:</p>
<p>-<strong>ADMINISTRADOR TOTAL</strong>: Tiene permisos sobre todos los contenidos de la página. Es el rol que normalmente ocupará Lourdes en un futuro. Es el único perfil que puede administrar y dar de alta usuarios.<br />
-<strong>ADMINISTRADOR DE CONTENIDOS</strong>: Podrá administrar algún contenido de la página (Ejemplo: La profesora que da de alta y modifica los contenidos de la actividad extraescolar ballet). No podrán borrar contenidos.<br />
-<strong>USUARIO GENERAL</strong>: No están registrados como tal en el sistema. Sólo tienen posibilidad de ver los contenidos publicados.</p>
<p>Por lo anteriormente comentado al respecto de la seguridad, un usuario no podrá registrarse en la aplicación (no habrá un servicio de registro). Todos los usuarios registrados lo han de ser debido a que el ADMINISTRADOR TOTAL los almacene en el sistema y por tanto se persistan en base de datos.</p>
<p>Los siguientes puntos también se han tratado en la reunión:</p>
<p>-Dar opción al usuario a estar siempre al tanto de las últimas novedades publicadas, por ejemplo haciéndole llegar las últimas publicaciones al correo. Yo he pensado solucionar esto mediante la creación y actualización automática de un <a href="http://es.wikipedia.org/wiki/RSS">feed RSS</a>, que el usuario puede consumir.</p>
<p>-Introducción de una nueva entidad en el dominio. Las actividades pertenecientes al grupo deportivo se pueden agrupar (Ejemplo: en fútbol, benjamines, alevines, cadetes&#8230;)</p>
<p>-Los enlaces, como se había comentado por alto en alguna reunión precedente, se podrán agrupar por categorías. De esta forma será más facil agruparlos en el menú desplegable horizontal. Queda pendiente definir dichas categorías o la forma de administrarlas.</p>
<p>-Los contenidos de las páginas estáticas, como pueden ser Estatutos, Junta directiva&#8230;no se almacenarán en ficheros de propiedades de cara a la internacionalización, sino que irán en base de datos. Para poder editarlos, se estudiará el uso de algún editor Javascript, del estilo de <a href="http://tinymce.moxiecode.com/">Tiny Editor</a>, que te genera código html accesible. De cara a la accesibilidad del sitio, habría que pensar una alternativa accesible a este método (por ejemplo, tener una sección en la zona privada que te permita editar mediante text-areas este contenido)</p>
<p>-Reportes e informes. Se plantea la posibilidad de sacar toda la información anual del AMPA a ficheros excel o pdf mediante el uso de apis como pueden ser <a href="http://poi.apache.org/">Apache POI</a> o <a href="http://jasperforge.org/plugins/project/project_home.php?group_id=102">Jasper Reports</a>.</p>
<p>-Uso de la <a href="http://www.google.es">API Google</a>. Particularmente, se ha pensado usar esta API en los siguientes ámbitos:<br />
* Para información de estadísticas de visitas, <a href="http://www.google.com/analytics/es-ES/">Google Analytics</a>.<br />
* Para información de localización del colegio, <a href="http://maps.google.es/">Google Maps</a>.<br />
* Para información de horarios, calendarios y eventos de las distintas actividades, <a href="http://www.google.com/calendar">Google Calendar</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/melu71178.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/melu71178.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/melu71178.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/melu71178.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/melu71178.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/melu71178.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/melu71178.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/melu71178.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/melu71178.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/melu71178.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/melu71178.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/melu71178.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/melu71178.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/melu71178.wordpress.com/23/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=melu71178.wordpress.com&amp;blog=6169301&amp;post=23&amp;subd=melu71178&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://melu71178.wordpress.com/2009/03/09/cuarta-reunion-con-la-directora/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/59b5b178de206e134be284b94babcbc7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">melu71178</media:title>
		</media:content>

		<media:content url="http://melu71178.files.wordpress.com/2009/03/prototipo.jpg?w=300" medium="image">
			<media:title type="html">prototipo</media:title>
		</media:content>
	</item>
		<item>
		<title>¿Qué?¿Por qué?¿Cómo?</title>
		<link>http://melu71178.wordpress.com/2009/02/27/%c2%bfque%c2%bfpor-que%c2%bfcomo/</link>
		<comments>http://melu71178.wordpress.com/2009/02/27/%c2%bfque%c2%bfpor-que%c2%bfcomo/#comments</comments>
		<pubDate>Fri, 27 Feb 2009 08:59:36 +0000</pubDate>
		<dc:creator>melu71178</dc:creator>
				<category><![CDATA[Objetivo proyecto]]></category>
		<category><![CDATA[Proyecto]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://melu71178.wordpress.com/?p=20</guid>
		<description><![CDATA[Alguna gente que se pasa por aquí me comenta que está muy bien el hecho de explicar paso a paso todas las tecnologías que pretendo usar en este proyecto y como voy aprendiendo sobre ellas, pero que se echa de menos un artículo menos técnico sobre qué es el proyecto y por qué surgio la [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=melu71178.wordpress.com&amp;blog=6169301&amp;post=20&amp;subd=melu71178&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Alguna gente que se pasa por aquí me comenta que está muy bien el hecho de explicar paso a paso todas las tecnologías que pretendo usar en este proyecto y como voy aprendiendo sobre ellas, pero que se echa de menos un artículo menos técnico sobre <strong>qué es el proyecto</strong> y <strong>por qué surgio la idea de realizarlo</strong>. Ahí vamos:</p>
<p>Explicar el porqué es bien fácil; antes de que termine el año tengo que presentar un proyecto para dar por concluida una etapa de dos años en la que centré mi vida en la realización de un <a href="http://www15.uniovi.es/master/ingenieriaweb/ingenieriawebnie.html">Master en Ingeniería Web</a>, en la <a href="http://www.uniovi.es/">Universidad de Oviedo</a>.</p>
<p>Por motivos laborales, me pasé el verano de 2008 desarrollando un proyecto sobre un <a href="http://es.wikipedia.org/wiki/CMS">Gestor de contenidos</a> para el Gobierno Vasco, así que digamos que partía de la base de que tenía unos conocimientos previos sobre el tema. Lo demás, fue casualidad. La profesora <a href="http://www.di.uniovi.es/~lourdes/">Lourdes Tajes</a> ofertaba un proyecto sobre gestores de contenidos, me reuní con ella y acepté las condiciones que me propuso.</p>
<p>El proyecto trata de realizar un gestor de contenidos ligero para un <a href="http://es.wikipedia.org/wiki/AMPA">AMPA</a>.</p>
<p>La web actual del ampa es <a href="http://www.fapamv.com/apas/fozaneldi/index.html">ésta</a>. Es una web mantenida por una sola persona (mi tutora), totalmente estática y con un estilo nada uniforme. Tiene el grandísimo inconveniente de que es muy difícil de mantener y por ello necesita un trabajo muy constante.</p>
<p>Por ello se tratará de incorporar un gestor que facilite la tarea de administración de los contenidos a tratar en el gestor. El resultado se irá viendo reflejado en este blog.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/melu71178.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/melu71178.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/melu71178.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/melu71178.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/melu71178.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/melu71178.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/melu71178.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/melu71178.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/melu71178.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/melu71178.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/melu71178.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/melu71178.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/melu71178.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/melu71178.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=melu71178.wordpress.com&amp;blog=6169301&amp;post=20&amp;subd=melu71178&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://melu71178.wordpress.com/2009/02/27/%c2%bfque%c2%bfpor-que%c2%bfcomo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/59b5b178de206e134be284b94babcbc7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">melu71178</media:title>
		</media:content>
	</item>
		<item>
		<title>Primer proyecto web con Maven, MyEclipse y MyFaces.</title>
		<link>http://melu71178.wordpress.com/2009/02/26/primer-proyecto-web-con-maven-myeclipse-y-myfaces/</link>
		<comments>http://melu71178.wordpress.com/2009/02/26/primer-proyecto-web-con-maven-myeclipse-y-myfaces/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 16:09:34 +0000</pubDate>
		<dc:creator>melu71178</dc:creator>
				<category><![CDATA[jsf (Java Server Faces)]]></category>
		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://melu71178.wordpress.com/?p=16</guid>
		<description><![CDATA[Ahora que ya sé cómo crear un proyecto web usando Maven y MyEclipse, voy a añadir una capa más. Voy a intentar introducir MyFaces como implementación de JSF. En un principio me debatí en cuanto a qué implementación de JSF usar. Las dos potenciales candidatas eran, por una parte, MyFaces y, por otra, IceFaces Ésta [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=melu71178.wordpress.com&amp;blog=6169301&amp;post=16&amp;subd=melu71178&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ahora que ya sé cómo crear un proyecto web usando Maven y MyEclipse, voy a añadir una capa más. Voy a intentar introducir <a href="http://myfaces.apache.org/">MyFaces</a> como implementación de <a href="http://es.wikipedia.org/wiki/JavaServer_Faces">JSF</a>.</p>
<p>En un principio me debatí en cuanto a qué implementación de JSF usar. Las dos potenciales candidatas eran, por una parte, MyFaces y, por otra, <a href="http://www.icefaces.org/main/home/index.jsp">IceFaces</a><br />
Ésta segunda, añade <a href="http://es.wikipedia.org/wiki/AJAX">Ajax </a> a los componente JSF, con lo cual, se logran componentes visuales muy bonitos, pero por contra la accesibilidad se verá limitada. La interfaz de usuario será casi lo más importante a tener en cuenta en este proyecto, por esto se optará por una implementación usando MyFaces.</p>
<p>Para ello, había varias alternativas de proyecto:</p>
<p>-proyecto 1.- Proyecto creado en MyEclipse.<br />
Desde MyEclipse le pongo web project capabilities(java ee5)<br />
Desde MyEclipse le pongo jsf capabilities.<br />
Aquí hay dos problemas principales:<br />
a)El proyecto web no se crea con Maven, con lo cual no sigue la jerarquía dictada por Maven ni tiene pom.xml<br />
b)La implementación de jsf que se usa en este caso no es MyFaces, sino la proporcionada por <a href="http://java.sun.com/javaee/javaserverfaces/download.html">Sun</a>, que viene por defecto con Java EE 5.</p>
<p>-proyecto 2.- Proyecto creado en MyEclipse.<br />
Desde MyEclipse le pongo web project capabilities(j2ee 1.4)<br />
Desde eclipse le pongo jsf capabilities (myfaces)<br />
Aquí, seguimos con el inconveniente de que el proyecto no se crea con Maven. No es una solución válida.</p>
<p>-proyecto 3.- Proyecto creado con Maven.<br />
Desde MyEclipse le pongo web project capabilities(java ee5)<br />
En el pom.xml le pongo las dependencias de MyFaces.<br />
El problema aquí es que se chocan las dependencias de jsf provenientes de MyFaces y las que proporciona el propio Java EE 5. Por lo tanto, tampoco es una solución válida.</p>
<p><strong>-PROYECTO 4.- Proyecto creado con Maven.<br />
Desde MyEclipse le pongo web project capabilities(j2ee 1.4)<br />
En el pom.xml le pongo las dependencias de MyFaces.</strong><br />
Ésta es la mejor solución encontrada hasta el momento, por tanto, será la elegida.</p>
<p>-proyecto 5.- Proyecto creado con Maven.<br />
Desde MyEclipse le pongo web project capabilities (java ee 5)<br />
Desde Myclipse le añado jsf capabilities (MyFaces).<br />
La única mejora aquí con respecto al proyecto1, es que el proyecto se crea con la jerarquía de directorios que te proporciona Maven. No obstante, la implementación que se está usando sigue sin ser MyFaces, que es lo deseado.</p>
<p>-proyecto 6.- Proyecto creado con Maven.<br />
Desde MyEclipse le pongo web project capabilities (j2ee 1.4)<br />
Desde MyEclipse le pongo jsf capabilities (MyFaces).<br />
Aquí se mejora con respecto al proyecto 2 en que la estructura se crea con Maven. No obstante, se da un paso atrás con respecto al proyecto 4 en cuanto le añades al proyecto todas las librerías dependientes de MyFaces (te las carga MyEclipse), por lo tanto el proyecto es más pesado.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/melu71178.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/melu71178.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/melu71178.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/melu71178.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/melu71178.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/melu71178.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/melu71178.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/melu71178.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/melu71178.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/melu71178.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/melu71178.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/melu71178.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/melu71178.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/melu71178.wordpress.com/16/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=melu71178.wordpress.com&amp;blog=6169301&amp;post=16&amp;subd=melu71178&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://melu71178.wordpress.com/2009/02/26/primer-proyecto-web-con-maven-myeclipse-y-myfaces/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/59b5b178de206e134be284b94babcbc7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">melu71178</media:title>
		</media:content>
	</item>
		<item>
		<title>Primeros pasos con Maven y MyEclipse</title>
		<link>http://melu71178.wordpress.com/2009/02/18/primeros-pasos-con-maven-y-myeclipse/</link>
		<comments>http://melu71178.wordpress.com/2009/02/18/primeros-pasos-con-maven-y-myeclipse/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 11:24:03 +0000</pubDate>
		<dc:creator>melu71178</dc:creator>
				<category><![CDATA[maven]]></category>
		<category><![CDATA[myEclipse]]></category>

		<guid isPermaLink="false">http://melu71178.wordpress.com/?p=9</guid>
		<description><![CDATA[Explico cómo instalar Maven y MyEclipse y como creo el primer proyecto Maven.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=melu71178.wordpress.com&amp;blog=6169301&amp;post=9&amp;subd=melu71178&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Para la realización del proyecto he decidido usar la herramienta <a href="http://maven.apache.org/">Maven</a> para gestionar la creación y el ciclo de vida de la aplicación, así como sus dependencias.</p>
<p>Instalé Maven en mi equipo siguiendo este <a href="http://www.chuidiang.com/chuwiki/index.php?title=Instalaci%C3%B3n_de_Maven_en_windows">tutorial</a> y este otro <a href="http://ingenieriahs.com/?q=node/5">tutorial</a>. Como tengo Windows Vista, tuve que tocar un fichero para modificar la ruta del repositorio local , puesto que en Vista no existe el directorio Documents and Settings&#8230;necesario para el repositorio local por defecto al instalar Maven (C:\Documents&amp;Settings\usuario\.m2\repository)</p>
<p>Posteriormente instalé el plugin de Eclipse, <a href="http://www.myeclipseide.com/">MyEclipse</a>, que utilizaré como IDE de desarrollo.</p>
<p>Hay dos formas básicas de integrar Maven con Eclipse:</p>
<p>-Por un lado podemos instalar en eclipse un plugin de Maven, de forma que desde Eclipse podamos ejecutar los comandos maven.</p>
<p>-Por otro lado, con un comando maven podemos crear un proyecto de eclipse. Luego desde eclipse importamos el proyecto y todo funciona. Seguimos usando eclipse como siempre. Ésta es la forma elegida. Tan sólo hay que declarar la variable de entorno M2_REPO desde Eclipse, para que Eclipse sepa dónde está tu repositorio Maven local (Window&#8211;&gt;Preferences&#8211;&gt;Java&#8211;&gt;Build Path&#8211;&gt;Classpath variables). <strong>OJO!!</strong> Esta variable ha de ser declarada para cada workspace que desee trabajar con Maven, puesto que las variables no se guardan entre workspaces distintos.</p>
<p>No obstante, la integración de Eclipse con Maven está mucho mejor explicada <a href="http://www.chuidiang.com/chuwiki/index.php?title=Integraci%C3%B3n_de_Maven_y_Eclipse">aquí</a>.</p>
<p>Una vez que está todo el entorno configurado, ya podemos empezar a crear proyectos con Maven. Para crear un proyecto web,  basta situarnos en el directorio padre donde se creará y ejecutar el siguiente comando:</p>
<pre>mvn archetype:create -DgroupId=<em>groupId</em> -DartifactId=<em>artifactId</em>
-DarchetypeArtifactId=maven-archetype-webapp</pre>
<p>Donde groupId es el nombre del paquete para las clases y artifactId es el nombre del proyecto.</p>
<p>Se te crea un proyecto con una jerarquía de subdirectorios como la siguiente:</p>
<pre>artifactId
├───pom.xml
└───src
    └───main
        ├───resources
        └───webapp
            ├───index.jsp
            └───WEB-INF
                └───web.xml</pre>
<p>Una vez creada la jerarquía del proyecto, hay que &#8220;adaptarlo&#8221; a un proyecto Eclipse (crear los ficheros .classpath y .project). A la vez se hace un clean del proyecto, con el siguiente comando:</p>
<p>mvn eclipse:clean eclipse:eclipse</p>
<p>Se importa el proyecto desde el IDE.  Es muy importante que la vista sea <strong>MyEclipse Java Enterprise</strong>, sino habrá problemas durante el despliegue, ya que el Eclipse no se comporta igual dependiendo de la vista en la que estemos desarrollando.</p>
<p>Si ahora intentamos desplegar el proyecto desde el Tomcat que viene por defecto con Eclipse, no podremos, ya que aunque creado mediante el arquetipo maven de proyecto web, necesitamos dotarlo de propiedades web desde el Eclipse (esto es algo que no entiendo, pero es así y así hay que hacerlo para que funcione). Para ello, nos situamos sobre el proyecto con el botón derecho del ratón y hacemos MyEclipse&#8211;&gt;Add Web Project capabilities, poniendo como Web Root Directory la carpeta webapp del proyecto. Ahora ya podemos desplegarlo en Tomcat y probar que funciona yendo al navegador</p>
<p>http://localhost:8080/artifactId, nos saldrá la página de inicio por defecto.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/melu71178.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/melu71178.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/melu71178.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/melu71178.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/melu71178.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/melu71178.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/melu71178.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/melu71178.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/melu71178.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/melu71178.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/melu71178.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/melu71178.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/melu71178.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/melu71178.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=melu71178.wordpress.com&amp;blog=6169301&amp;post=9&amp;subd=melu71178&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://melu71178.wordpress.com/2009/02/18/primeros-pasos-con-maven-y-myeclipse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/59b5b178de206e134be284b94babcbc7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">melu71178</media:title>
		</media:content>
	</item>
	</channel>
</rss>
