<?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>Web Development and Tools</title>
	<atom:link href="http://renidev.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://renidev.wordpress.com</link>
	<description>Renan's web development experiences (This blog was moved to http://renidev.javabolivia.com)</description>
	<lastBuildDate>Mon, 08 Aug 2011 23:12:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='renidev.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Web Development and Tools</title>
		<link>http://renidev.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://renidev.wordpress.com/osd.xml" title="Web Development and Tools" />
	<atom:link rel='hub' href='http://renidev.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Como usar el MultiActionController de Spring 2.5</title>
		<link>http://renidev.wordpress.com/2009/03/04/como-usar-el-multiactioncontroller-de-spring-25/</link>
		<comments>http://renidev.wordpress.com/2009/03/04/como-usar-el-multiactioncontroller-de-spring-25/#comments</comments>
		<pubDate>Wed, 04 Mar 2009 15:53:04 +0000</pubDate>
		<dc:creator>Renan Huanca</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[spring]]></category>
		<category><![CDATA[step by step]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[MultiActionController]]></category>
		<category><![CDATA[Spring MVC]]></category>

		<guid isPermaLink="false">http://renidev.wordpress.com/?p=99</guid>
		<description><![CDATA[Hola spring adictos, Esta vez les mostrare un pequeño ejemplo de como usar el MultiActionController de Spring 2.5 Descripcion del ejemplo Bueno, esta pequeña aplicación lo unico que hace es mostrar un formulario con un solo campo que corresponde al nombre de una mascota. Cada vez que se hace submit del nombre de la mascota, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renidev.wordpress.com&amp;blog=6375300&amp;post=99&amp;subd=renidev&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hola spring adictos,</p>
<p>Esta vez les mostrare un pequeño ejemplo de como usar el MultiActionController de Spring 2.5</p>
<p><strong>Descripcion del ejemplo</strong></p>
<p>Bueno, esta pequeña aplicación lo unico que hace es mostrar un formulario con un solo campo que corresponde al nombre de una mascota. Cada vez que se hace submit del nombre de la mascota, esta se adiciona a una lista en session llamada <em>pets</em> (<span style="color:#888888;">no recomiendo usar variables en session</span>). Luego esta lista se va desplegando en la parte inferior del formulario.</p>
<p>Para este ejemplo voy a asumir que ya tienen las librerías de spring y también configurado en el archivo web.xml de tu aplicación.</p>
<p>A  grandes rasgos lo que vamos a hacer es lo siguiente:</p>
<ul>
<li>Creamos el bean Pet (solo para los propositos de este ejemplo)</li>
<li>Crear y declarar PetController en el contexto de spring.</li>
<li>Crear el view JSP y declararlos en el contexto de spring.</li>
<li>Probar la funcionalidad.</li>
</ul>
<h3>Creamos el bean Pet (solo para los propositos de este ejemplo)</h3>
<p style="padding-left:30px;">
<pre style="padding-left:30px;">package bo.sumasoftware.hellospring;</pre>
<pre style="padding-left:30px;">/**
 * @author renan
 */
public class Pet {
    String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}</pre>
<p>Este bean, es solo para nuestro ejemplo y solo tiene una propiedad llamada name con su respectivo get y set. Se utilizara para leer datos del formulario y tambien para desplegar.</p>
<h3>Crear y declarar PetController en el contexto de spring.</h3>
<pre style="padding-left:30px;">package bo.sumasoftware.hellospring;

import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.ArrayList;

/**
 * @author renan
 */
public class PetController extends MultiActionController {
    /**
     * This is called form http://localhost:8080/&lt;context&gt;/pet.do?method=form
     *
     * @param request
     * @param response
     * @param pet
     * @return
     */
    public <span style="color:#0000ff;">ModelAndView </span><span style="color:#ff0000;">form</span>(HttpServletRequest request, HttpServletResponse response, <span style="color:#0000ff;">Pet pet</span>) {
        if(pet.getName()!=null){
            List pets = <span style="color:#0000ff;">(List) request.getSession().getAttribute("pets");</span>
            if(pets == null) {
                pets = new ArrayList();
                request.getSession().setAttribute("pets",pets);
            }
            pets.add(pet);
        }
        ModelAndView mav = <span style="color:#0000ff;">new ModelAndView("pet")</span>;
        mav.getModel().put("pet", new Pet());
        return mav;
    }
}</pre>
<p>Fuiu, es un poco largo la clase no? <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   pero ni modo, lo mas importante es que que estamos declarando un método con el nombre <span style="color:#ff0000;"><em>form</em></span>, por si acaso esto no es un nombre especial ni nada por el estilo, puede ser cualquier nombre que ustedes definan. Lo importante es saber solo usando este nombre se podrá llamar a este método desde url o formulario.</p>
<p><em><span style="color:#0000ff;">Pet</span></em>, es el nombre del beanForm o commandName como se lo llama en spring. Es en este objeto que spring colocar los valores de los import del html from que viene del browser. Algo también interesante es que no es requerido definir este parámetro, también se puede colocar otros, mas información en <a href="http://static.springframework.org/spring/docs/2.0.x/reference/mvc.html#mvc-controller-multiaction">http://static.springframework.org/spring/docs/2.0.x/reference/mvc.html#mvc-controller-multiaction</a>.</p>
<p><em><span style="color:#0000ff;">pets</span></em>, es la lista que desplegaremos en el jsp, lo interesante es que se hace proceso para crearla si no esta en session.</p>
<p><em><span style="color:#0000ff;">new ModelAndView(&#8220;pet&#8221;), </span></em><span style="color:#0000ff;"><span style="color:#000000;">de esta forma le decimos a spring a que view queremos que direccione la salida del controller.</span></span></p>
<p>ahora veremos como se define el controller en el contexto de spring</p>
<pre>    &lt;bean name="<span style="color:#0000ff;">/pet.do</span>" class="bo.sumasoftware.hellospring.<span style="color:#0000ff;">PetController</span>"&gt;
        &lt;property name="methodNameResolver"&gt;
            &lt;bean class="org.springframework.web.servlet.mvc.multiaction.<span style="color:#0000ff;">ParameterMethodNameResolver</span>"&gt;
                <span style="color:#0000ff;">&lt;property name="paramName" value="method"/&gt;</span>
            &lt;/bean&gt;
        &lt;/property&gt;
    &lt;/bean&gt;</pre>
<p><span style="color:#0000ff;">/pet.do</span>,  es la forma de mapear la llamada desde un url. Cabe señalar que esta forma de mapeo es una de las mas basicas, spring tienes algunas como por ejemplo basado en archivo xml y tambien archivo de propiedades.</p>
<p><span style="color:#0000ff;">ParameterMethodNameResolver<span style="color:#000000;">, este es el que me interesa mas, con esto le estamos diciendo al controller como se van a llamar a sus metodos. Aca estamos definiendo que para llamar a algun metodo de la clase <em>PetController</em>, ya sera por un get(url) o post(formulario) se tiene que incluir como dato un valor llamado &#8216;<span style="color:#0000ff;">method</span>&#8216;, esta variable contendra el nombre del metodo dentro del controller que queremos llamar. (para el emplo el valor que tendra sera &#8216;form&#8217;)</span></span></p>
<h3>Crear el view JSP y declararlos en el contexto de spring.</h3>
<p>Creamos un archivo con el nombre pet.jsp dentro de un folder llamado /jsp. (mas adelante la explicacion del por que)</p>
<pre style="padding-left:30px;">&lt;%@ page contentType="text/html;charset=UTF-8" language="java" %&gt;
<span style="color:#0000ff;">&lt;%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %&gt;
&lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt;</span>

&lt;html&gt;
&lt;head&gt;&lt;title&gt;Pet&lt;/title&gt;&lt;/head&gt;
&lt;body&gt;
&lt;form:form <span style="color:#0000ff;">action="pet.do"</span> <span style="color:#0000ff;">method="post"</span> <span style="color:#0000ff;">commandName="pet"</span>&gt;
    &lt;h4&gt;Pet&lt;/h4&gt;
    Pet Name:<span style="color:#0000ff;">&lt;form:input path="name"/&gt;</span>&lt;br/&gt;
    &lt;input type="hidden" <span style="color:#ff0000;">name="method" value="form"</span>/&gt;&lt;br/&gt;
    &lt;input type="submit"/&gt;
&lt;/form:form&gt;
&lt;h4&gt;pets&lt;/h4&gt;
&lt;c:forEach items="${<span style="color:#0000ff;">sessionScope.pets</span>}" var="pet"&gt;
    ${pet.name} &lt;br/&gt;
&lt;/c:forEach&gt;

&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Este jsp, no estan largo. que bueno <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> , la primera parte solo es para definir los tags que vamos a usar en este caso el tag form de spring y el tag c de jstl.</p>
<p>Como veran se define un formulario donde se define que el action sera <em><span style="color:#0000ff;">pet.do</span></em>, osea que cuando se haga submir del formulario el request se dirigira a este. Despues se define tambien un <span style="color:#0000ff;">input</span>, que sirve para declarar un input field, que tiene el nombre name.</p>
<p><em><span style="color:#ff0000;">name=&#8221;method&#8221; value=&#8221;form&#8221;</span></em>, este es el mas, mas importante, acá indicamos cual sera el método a llamar del controller<em></em>, sino hacemos esto, les aseguro que tendremos muchos dolores de cabeza. Cabe tambien señalar que no es necesario que sea una constante, puede cambiar, lo puedes setear con java script o algun otro truco que conozcas. Lo importante es enviar un valor.</p>
<p>Despues lo que hacemo es iterar una lista que esta en session que se llama <em><span style="color:#0000ff;">pets</span></em>, se despliega el nombre y nada mas.</p>
<p>Ahora a mapear las views</p>
<pre>    &lt;bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"&gt;
        &lt;property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/&gt;
        &lt;property name="prefix" value="<span style="color:#0000ff;">/jsp/</span>"/&gt;
        &lt;property name="suffix" value="<span style="color:#0000ff;">.jsp</span>"/&gt;
    &lt;/bean&gt;</pre>
<p>Bueno, esta es la forma mas basica de mapear view, todos los jsps tienen que estar dentro de el folder <em><span style="color:#0000ff;">/jsp/</span></em>. Como es tan basica y tambien la mas sencilla  a veces uno no se da cuenta como es que se puede llamar a una view especifica. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>La clave esta en la clase <span style="color:#0000ff;">ModelAndView</span> en el controller, si vuelven al codigo del controller veran que hay una sentencia como esta: <span style="color:#000000;"><em><span style="color:#0000ff;">new ModelAndView(&#8220;pet&#8221;)</span></em>. Lo que hara spring es buscar un archivo pet.jsp que este dentro de la carpeta jsp.<br />
</span></p>
<h3>Probar la funcionalidad.</h3>
<p><span style="color:#0000ff;"><span style="color:#000000;">Ahora a probar,  el url para llamar al controller sera: </span></span></p>
<p style="padding-left:30px;"><span style="color:#0000ff;"><span style="color:#000000;"><em>http://localhost:8080/hello/pet.do?<span style="color:#0000ff;">method=form</span></em><br />
</span></span></p>
<p><span style="color:#0000ff;"><span style="color:#000000;">Como veran, estoy colocando como paremetro extra que metodo del controller voy a llamar.</span></span></p>
<p>Luego aparecera un formulario como esto:</p>
<p><img class="alignnone size-full wp-image-101" title="hellospring1" src="http://renidev.files.wordpress.com/2009/03/hellospring1.jpg?w=187&#038;h=125" alt="hellospring1" width="187" height="125" /></p>
<p>En el input field pueden colocar nombres de sus mascotas y veran que se iran adicionando en una lista debajo de la palabra pets.</p>
<p>Finalmente para aquellos que quieren ver algo mas, acá tengo el <a href="http://rapidshare.com/files/205253202/HelloSpringWebApp-src.zip">código fuente</a>. (para los que usan maven, tambien esta el pom.xml, para los que no, tendran que incluir los jars necesarios)</p>
<p>Encontré un buen post acerca de como funciona el <a href="http://www.jroller.com/afuentes/entry/mvc_en_spring">SpringMVC</a> veanlo.</p>
<p>Comentarios son bien recibidos, hasta la próxima <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span style="color:#0000ff;"><span style="color:#000000;"><br />
</span></span></p>
<p><em><span style="color:#0000ff;"><span style="color:#000000;"><br />
</span></span></em></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/renidev.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/renidev.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/renidev.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/renidev.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/renidev.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/renidev.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/renidev.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/renidev.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/renidev.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/renidev.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/renidev.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/renidev.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/renidev.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/renidev.wordpress.com/99/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renidev.wordpress.com&amp;blog=6375300&amp;post=99&amp;subd=renidev&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://renidev.wordpress.com/2009/03/04/como-usar-el-multiactioncontroller-de-spring-25/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/03edd1941876eccaf0af147cf0395474?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Reni</media:title>
		</media:content>

		<media:content url="http://renidev.files.wordpress.com/2009/03/hellospring1.jpg" medium="image">
			<media:title type="html">hellospring1</media:title>
		</media:content>
	</item>
		<item>
		<title>Como configurar una aplicacion basica Spring 2.5 con Maven 2</title>
		<link>http://renidev.wordpress.com/2009/02/28/como-configurar-una-aplicacion-basica-con-spring-25-con-maven-2/</link>
		<comments>http://renidev.wordpress.com/2009/02/28/como-configurar-una-aplicacion-basica-con-spring-25-con-maven-2/#comments</comments>
		<pubDate>Sat, 28 Feb 2009 05:37:28 +0000</pubDate>
		<dc:creator>Renan Huanca</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[spring]]></category>
		<category><![CDATA[step by step]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://renidev.wordpress.com/?p=76</guid>
		<description><![CDATA[Hola java adictos, Esta vez mostrare como crear una aplicación Spring con Maven Descripción del Ejemplo Se creara una aplicación que simplemente mostrar &#8220;Hello World with Spring &#8220;. El mensaje sera obtenido de un bean llamado Greeting. Vamos asumir que ya tienen instalado maven2, y java , no sera necesario que bajen Spring ya que [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renidev.wordpress.com&amp;blog=6375300&amp;post=76&amp;subd=renidev&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hola java adictos,</p>
<p>Esta vez mostrare como crear una aplicación Spring con Maven <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>Descripción del Ejemplo</h3>
<p>Se creara una aplicación que simplemente mostrar &#8220;<em>Hello World with Spring <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </em>&#8220;. El mensaje sera obtenido de un bean llamado Greeting.</p>
<p>Vamos asumir que ya tienen instalado maven2, y java <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> , no sera necesario que bajen Spring ya que el mismo maven lo hara por ustedes.</p>
<p>A grandes rasgos, los pasos serán los siguientes:</p>
<ul>
<li>Crear aplicación base con maven.</li>
<li>Editar pom.xml para adicionar dependencia base de Spring.</li>
<li>Crear el bean Greeting.</li>
<li>Crear archivo de contexto de aplicación de Spring.</li>
<li>Modificar clase App y para probar funcionalidad.</li>
</ul>
<h2>Crear aplicación base con maven</h2>
<p>Para esto vamos a hechar mano del comando <em>mvn archetype:create</em>. Nos posicionaremos en el folder donde deseemos trabajar y ejecutamos el siguiente comando:</p>
<p style="padding-left:30px;"><em>mvn archetype:create -DgroupId=com.sumasoftware.hellospring -DartifactId=HelloSpring</em></p>
<p>Con la ejecución del anterior comando se creara un folder llamado <em>HelloSpring</em></p>
<p>con la respectiva estructura de directorios de maven.</p>
<p>(Justo vi un post en otro blog sobre este aspecto, asi que pueden verlo para <a href="http://pcollaog.firefox.cl/2008/01/23/maven-parte-ii-creando-aplicaciones/">mas detalles</a>)</p>
<h2>Editar pom.xml para adicionar dependencia base de Spring</h2>
<p>Ingresamos al folder llamado HelloSpring y editamos el archivo con cualquier editor a disposición.</p>
<p>Sera algo parecido a esto:</p>
<pre style="padding-left:30px;">&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&gt;
    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
    &lt;groupId&gt;com.sumasoftware.hellospring&lt;/groupId&gt;
    &lt;artifactId&gt;HelloSpring&lt;/artifactId&gt;
    &lt;packaging&gt;jar&lt;/packaging&gt;
    &lt;version&gt;1.0-SNAPSHOT&lt;/version&gt;
    &lt;name&gt;HelloSpring&lt;/name&gt;
    &lt;url&gt;http://maven.apache.org&lt;/url&gt;
    <span style="color:#0000ff;">&lt;dependencies&gt;</span>
        &lt;dependency&gt;
            &lt;groupId&gt;junit&lt;/groupId&gt;
            &lt;artifactId&gt;junit&lt;/artifactId&gt;
            &lt;version&gt;3.8.1&lt;/version&gt;
            &lt;scope&gt;test&lt;/scope&gt;
        &lt;/dependency&gt;
    <span style="color:#0000ff;">&lt;/dependencies&gt;</span>
&lt;/project&gt;</pre>
<p>Dentro del tag &lt;dependencies&gt; adicionamos:</p>
<pre style="padding-left:30px;">&lt;dependency&gt;
    &lt;groupId&gt;org.springframework&lt;/groupId&gt;
    &lt;artifactId&gt;<span style="color:#0000ff;">spring</span>&lt;/artifactId&gt;
    &lt;version&gt;2.5.6&lt;/version&gt;
&lt;/dependency&gt;</pre>
<p>Como verán solo vamos a utilizar el core de spring, osea la base. Esto es suficiente para lo que necesitamos ahora. Por supuesto para una aplicación mas compleja necesitaríamos adicionar mas dependencias (ej.: spring-context, spring-tx, spring-web, etc&#8230;)</p>
<h2>Crear el bean Greeting</h2>
<p>Ok. ahora vamos al código. por fin!:) pero es algo fácil. Vamos a crear el siguiente bean <span style="color:#0000ff;">Greeting</span> en el folder <em>HelloSpring/src/main/java/com/sumasoftware/hellospring</em>. (Ojo, que com/sumasoftware/hellospring es el paquete de la clase <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</p>
<pre style="padding-left:30px;">package com.sumasoftware.hellospring;
public class <span style="color:#0000ff;">Greeting</span> {
    public void sayHello(){
        System.out.println("Hello World with Spring <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ");
    }
}</pre>
<p>Ahora ejecutamos en la consola el comando:</p>
<p style="padding-left:30px;"><em>mvn package</em></p>
<p>Con esto se verifica que no hay errores de sintaxis y se aprovecha de bajar las dependencias.</p>
<h2>Crear archivo de contexto de aplicacion de Spring</h2>
<p>Ahora vamos con spring, eeeh!!! <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Para esto vamos a crear el archivo appContext.xml dentro de un folder nuevo llamado resources que estara dentro de HelloSpring/src/main. Entonces el path del archivo sera <em>HelloSpring/src/main/resources/appContext.xml</em>.</p>
<pre style="padding-left:30px;">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="
            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"&gt;
    <span style="color:#0000ff;">&lt;bean id="greeting" class="com.sumasoftware.hellospring.Greeting"/&gt;</span>
&lt;/beans&gt;</pre>
<h2>Modificar clase App y para probar funcionalidad</h2>
<p>Por defecto, cuando maven crea una aplicacion, crea la clase App que solo tiene un Hello World vamos a modificar la clase, para que cargue el contexto de spring, obtenga el bean y llame al metodo sayHello().</p>
<pre>package com.sumasoftware.hellospring;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
 * Hello world!
 *
 */
public class App
{
    public static void main( String[] args )
    {
        <span style="color:#0000ff;">ClassPathXmlApplicationContext context =
                new ClassPathXmlApplicationContext("classpath:appContext.xml");
        Greeting greeting = (Greeting) context.getBean("greeting");
        greeting.sayHello();</span>
    }
}</pre>
<p>Mas referencia acerca de como crear o instanciar el factory lo encuentra en la documentación de <a href="http://static.springframework.org/spring/docs/1.2.x/reference/beans.html">Spring</a></p>
<p>Listo ya terminamos, ahora como lo ejecutamos <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ? bueno yo lo hice con idea. justo maven tiene un otro plugin que se llama idea que te ayuda a crear el archivo de projecto configurado con las dependencias. Solo se tiene que escribir en la linea de comando mvn <em>idea:idea</em>, maven crea el archivo de proyecto, abrimos el proyecto configuramos la clase main y listo. (Lo mismo hay para eclipse)</p>
<p>Claro te también se puede ejecutar desde linea de comando. Solo que es mas trabajoso, ustedes elijan el que mas les guste.</p>
<p>Una vez ejecutada la clase App, esta despliega en consola lo siguiente:</p>
<pre style="padding-left:30px;">Feb 28, 2009 1:19:19 AM org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@32fb4f: display name [org.springframework.context.support.ClassPathXmlApplicationContext@32fb4f]; startup date [Sat Feb 28 01:19:19 BOT 2009]; root of context hierarchy
Feb 28, 2009 1:19:19 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [appContext.xml]
Feb 28, 2009 1:19:19 AM org.springframework.context.support.AbstractApplicationContext obtainFreshBeanFactory
INFO: Bean factory for application context [org.springframework.context.support.ClassPathXmlApplicationContext@32fb4f]: org.springframework.beans.factory.support.DefaultListableBeanFactory@16a786
Feb 28, 2009 1:19:19 AM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@16a786: defining beans [greeting]; root of factory hierarchy
<span style="color:#0000ff;">Hello World with Spring <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </span></pre>
<p>Espero este tutorial sirva de mucha ayuda. Acá esta el <a href="http://rapidshare.com/files/203478399/HelloSpring-src.zip" target="_blank">código fuente</a>. Comentarios son bien recibidos.<a href="http://rapidshare.com/files/203478399/HelloSpring-src.zip" target="_blank"><br />
</a></p>
<p>Hasta la proxima <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/renidev.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/renidev.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/renidev.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/renidev.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/renidev.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/renidev.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/renidev.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/renidev.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/renidev.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/renidev.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/renidev.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/renidev.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/renidev.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/renidev.wordpress.com/76/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renidev.wordpress.com&amp;blog=6375300&amp;post=76&amp;subd=renidev&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://renidev.wordpress.com/2009/02/28/como-configurar-una-aplicacion-basica-con-spring-25-con-maven-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/03edd1941876eccaf0af147cf0395474?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Reni</media:title>
		</media:content>
	</item>
		<item>
		<title>How to use transacions with Spring 2.5 AOP and Hibernate 3.2.5</title>
		<link>http://renidev.wordpress.com/2009/02/25/how-to-use-manage-transacions-with-spring-25-aop-and-hibernate-3x/</link>
		<comments>http://renidev.wordpress.com/2009/02/25/how-to-use-manage-transacions-with-spring-25-aop-and-hibernate-3x/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 02:52:23 +0000</pubDate>
		<dc:creator>Renan Huanca</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[spring]]></category>
		<category><![CDATA[step by step]]></category>
		<category><![CDATA[hibernate]]></category>
		<category><![CDATA[spring aop]]></category>

		<guid isPermaLink="false">http://renidev.wordpress.com/?p=67</guid>
		<description><![CDATA[Hello friends. The first time when i was training to use spring and hibernate i wanted to avoid to open and close transaction manually in every method that does some transaction. i.e. (pseudo code) void createSomeObject(par1, par2, par3) { open transaccion create object using the given parameters persist the object close transaction } So i [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renidev.wordpress.com&amp;blog=6375300&amp;post=67&amp;subd=renidev&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hello friends.</p>
<p>The first time when i was training to use spring and hibernate i wanted to avoid to open and close transaction manually in every method that does some transaction.</p>
<pre>   i.e. (pseudo code)
       void createSomeObject(par1, par2, par3) {
           <span style="color:#0000ff;">open transaccion</span>
           create object using the given parameters
           persist the object
           <span style="color:#0000ff;">close transaction</span>
       }</pre>
<p>So i found that spring helps you to do that.</p>
<p>I will assume that you already created the Java Bean (POJO) and it&#8217;s hibernate mapping file. ( SomePOJO.java and SomePOJO.hbm.xml files).</p>
<p>1. Define AOP and Transaction  namespace in spring application context configuration file. (Find more about <a href="http://static.springframework.org/spring/docs/2.5.x/reference/aop.html">AOP</a> and <a href="http://static.springframework.org/spring/docs/2.5.x/reference/transaction.html#transaction-declarative-first-example">Transaction Management</a>)</p>
<pre style="padding-left:30px;">&lt;beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       <span style="color:#0000ff;">xmlns:aop="http://www.springframework.org/schema/aop"</span>
       <span style="color:#0000ff;">xmlns:tx="http://www.springframework.org/schema/tx"</span>
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="
            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
            <span style="color:#0000ff;">http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd</span>
            <span style="color:#0000ff;">http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd</span>
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"&gt;
       ... ...
&lt;/beans&gt;</pre>
<p>2. Define data source to configure the database connection parameters.</p>
<pre style="padding-left:30px;">&lt;bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"&gt;
    &lt;property name="driverClassName" value="org.postgresql.Driver"/&gt;
    &lt;property name="url" value="jdbc:postgresql://localhost/somedb"/&gt;
    &lt;property name="username" value="someuser"/&gt;
    &lt;property name="password" value="somepassword"/&gt;
&lt;/bean&gt;</pre>
<p>3. Define Hibernate SessionFactory.</p>
<pre style="padding-left:30px;">&lt;bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&gt;
    &lt;property name="dataSource" ref="dataSource"/&gt;
    &lt;property name="mappingResources"&gt;
        &lt;list&gt;
            &lt;value&gt;<span style="color:#0000ff;">/some/package/model/SomePOJO.hbm.xml</span>&lt;/value&gt;
        &lt;/list&gt;
    &lt;/property&gt;
    &lt;property name="hibernateProperties"&gt;
        &lt;value&gt;
            hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
        &lt;/value&gt;
    &lt;/property&gt;
&lt;/bean&gt;</pre>
<p>4. Define Transaction aspect. (<a href="http://static.springframework.org/spring/docs/2.5.x/reference/transaction.html#transaction-declarative-first-example">more info</a>)</p>
<pre style="padding-left:30px;">&lt;bean id="<span style="color:#0000ff;">txManager</span>" class="org.springframework.orm.hibernate3.HibernateTransactionManager"&gt;
    &lt;property name="sessionFactory" ref="sessionFactory"/&gt;
&lt;/bean&gt;

&lt;tx:advice id="<span style="color:#0000ff;">txAdvice</span>" transaction-manager="<span style="color:#0000ff;">txManager</span>"&gt;
    &lt;tx:attributes&gt;
        &lt;tx:method name="*"/&gt;
    &lt;/tx:attributes&gt;
&lt;/tx:advice&gt;</pre>
<p>5. Define point cuts in your service.</p>
<pre style="padding-left:30px;">&lt;aop:config&gt;
    &lt;aop:pointcut id="<span style="color:#0000ff;">someServiceMethods</span>" expression="execution(<span style="color:#0000ff;">* some.package.service.SomeService.*(..)</span>)"/&gt;
    &lt;aop:advisor advice-ref="<span style="color:#0000ff;">txAdvice</span>" pointcut-ref="<span style="color:#0000ff;">someServiceMethods</span>"/&gt;
&lt;/aop:config&gt;</pre>
<p>Spring will begin a transaction each time a method in SomeService is called. This behavior can be changed (<a href="http://static.springframework.org/spring/docs/2.5.x/reference/transaction.html#transaction-declarative-first-example">see</a>) , I just tried to do the example the most simple as possible.</p>
<p>I will try to prepare some package with source code. just let me know. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Regards</p>
<p>-Renan</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/renidev.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/renidev.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/renidev.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/renidev.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/renidev.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/renidev.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/renidev.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/renidev.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/renidev.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/renidev.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/renidev.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/renidev.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/renidev.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/renidev.wordpress.com/67/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renidev.wordpress.com&amp;blog=6375300&amp;post=67&amp;subd=renidev&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://renidev.wordpress.com/2009/02/25/how-to-use-manage-transacions-with-spring-25-aop-and-hibernate-3x/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/03edd1941876eccaf0af147cf0395474?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Reni</media:title>
		</media:content>
	</item>
		<item>
		<title>Como crear paquetes de distribucion con maven</title>
		<link>http://renidev.wordpress.com/2009/02/16/how-to-create-distribution-packages-with-maven/</link>
		<comments>http://renidev.wordpress.com/2009/02/16/how-to-create-distribution-packages-with-maven/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 06:59:13 +0000</pubDate>
		<dc:creator>Renan Huanca</dc:creator>
				<category><![CDATA[maven]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://renidev.wordpress.com/?p=61</guid>
		<description><![CDATA[Hola espero estos links les sirva. Explica como  usar el plugin  assembly de maven. Este plugin es muy bueno ya nos ayuda a empaquetar nuestro código fuente para distribuir o crear un jar ejecutable . http://www.chuidiang.com/chuwiki/index.php?title=Hacer_un_zip_para_distribuir Este es también bueno que da una vista mas detallada, pero esta en ingles sorry http://propellors.net/maven/book/assemblies.html<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renidev.wordpress.com&amp;blog=6375300&amp;post=61&amp;subd=renidev&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hola espero estos links les sirva.</p>
<p>Explica como  usar el plugin  <a href="http://maven.apache.org/plugins/maven-assembly-plugin/">assembly</a> de maven. Este plugin es muy bueno ya nos ayuda a empaquetar nuestro código fuente para distribuir o crear un jar ejecutable <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p><a href="http://www.chuidiang.com/chuwiki/index.php?title=Hacer_un_zip_para_distribuir">http://www.chuidiang.com/chuwiki/index.php?title=Hacer_un_zip_para_distribuir</a></p>
<p>Este es también bueno que da una vista mas detallada, pero esta en ingles <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  sorry</p>
<p><a href="http://propellors.net/maven/book/assemblies.html">http://propellors.net/maven/book/assemblies.html</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/renidev.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/renidev.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/renidev.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/renidev.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/renidev.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/renidev.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/renidev.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/renidev.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/renidev.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/renidev.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/renidev.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/renidev.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/renidev.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/renidev.wordpress.com/61/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renidev.wordpress.com&amp;blog=6375300&amp;post=61&amp;subd=renidev&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://renidev.wordpress.com/2009/02/16/how-to-create-distribution-packages-with-maven/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/03edd1941876eccaf0af147cf0395474?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Reni</media:title>
		</media:content>
	</item>
		<item>
		<title>How to use Spring (2.5) annotations</title>
		<link>http://renidev.wordpress.com/2009/02/16/how-to-use-spring-annotations-and-maven2/</link>
		<comments>http://renidev.wordpress.com/2009/02/16/how-to-use-spring-annotations-and-maven2/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 01:06:27 +0000</pubDate>
		<dc:creator>Renan Huanca</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[spring]]></category>
		<category><![CDATA[step by step]]></category>
		<category><![CDATA[spring annotations]]></category>

		<guid isPermaLink="false">http://renidev.wordpress.com/?p=58</guid>
		<description><![CDATA[Hi. Today i fount a good tutorial about Spring 2.5 annotations. I&#8217;d like how it is explained in detail I&#8217;d like how it is using mave2 so, take a look a it Spring 2.5 and annotation-based dependency injection<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renidev.wordpress.com&amp;blog=6375300&amp;post=58&amp;subd=renidev&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hi. Today i fount a good tutorial about Spring 2.5 annotations.</p>
<ol>
<li>I&#8217;d like how it is explained in detail</li>
<li>I&#8217;d like how it is using mave2</li>
</ol>
<p>so, take a look a it <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3 class="post-title entry-title"><a href="http://jee-bpel-soa.blogspot.com/2008/11/spring-25-and-annotation-based.html">Spring 2.5 and annotation-based dependency injection</a></h3>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/renidev.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/renidev.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/renidev.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/renidev.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/renidev.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/renidev.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/renidev.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/renidev.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/renidev.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/renidev.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/renidev.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/renidev.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/renidev.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/renidev.wordpress.com/58/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renidev.wordpress.com&amp;blog=6375300&amp;post=58&amp;subd=renidev&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://renidev.wordpress.com/2009/02/16/how-to-use-spring-annotations-and-maven2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/03edd1941876eccaf0af147cf0395474?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Reni</media:title>
		</media:content>
	</item>
		<item>
		<title>Encuesta Bolivia Webprende</title>
		<link>http://renidev.wordpress.com/2009/02/14/encuesta-bolivia-webprende/</link>
		<comments>http://renidev.wordpress.com/2009/02/14/encuesta-bolivia-webprende/#comments</comments>
		<pubDate>Sat, 14 Feb 2009 02:02:49 +0000</pubDate>
		<dc:creator>Renan Huanca</dc:creator>
		
		<guid isPermaLink="false">http://renidev.wordpress.com/?p=50</guid>
		<description><![CDATA[La Comunidad Bolivia Webprende quiere conocer las áreas donde se puede fortalecer la Web 2.0 en Bolivia. Llenando este formulario ayudaras a encaminar a la comunidad.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renidev.wordpress.com&amp;blog=6375300&amp;post=50&amp;subd=renidev&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>La <a href="http://blog.webprende.com/">Comunidad Bolivia Webprende</a> quiere conocer las áreas donde se puede fortalecer la Web 2.0 en Bolivia.</p>
<p>Llenando este formulario ayudaras a encaminar a la comunidad. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<a href="http://polldaddy.com/poll/1368149/">View This Poll</a>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/renidev.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/renidev.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/renidev.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/renidev.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/renidev.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/renidev.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/renidev.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/renidev.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/renidev.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/renidev.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/renidev.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/renidev.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/renidev.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/renidev.wordpress.com/50/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renidev.wordpress.com&amp;blog=6375300&amp;post=50&amp;subd=renidev&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://renidev.wordpress.com/2009/02/14/encuesta-bolivia-webprende/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/03edd1941876eccaf0af147cf0395474?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Reni</media:title>
		</media:content>
	</item>
		<item>
		<title>Very first steps in python</title>
		<link>http://renidev.wordpress.com/2009/02/08/very-first-steps-in-python/</link>
		<comments>http://renidev.wordpress.com/2009/02/08/very-first-steps-in-python/#comments</comments>
		<pubDate>Sun, 08 Feb 2009 04:55:35 +0000</pubDate>
		<dc:creator>Renan Huanca</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[step by step]]></category>

		<guid isPermaLink="false">http://renidev.wordpress.com/?p=32</guid>
		<description><![CDATA[Hi, today I&#8217;d begun to write some code in python. Currently there are two version: 2.6.1 and 3.0. Because I&#8217;m new I used 2.6.1 Here are the basic steps to begin with Download and install python , http://www.python.org/download/ To use python directly from the console you should add the python to your systems path, some [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renidev.wordpress.com&amp;blog=6375300&amp;post=32&amp;subd=renidev&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hi, today I&#8217;d begun to write some code in python.</p>
<p>Currently there are two version: 2.6.1 and 3.0. Because I&#8217;m new I used 2.6.1 <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Here are the basic steps to begin with</p>
<ol>
<li>Download and install python <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> , http://www.python.org/download/</li>
<li>To use python directly from the console you should add the python to your systems path, some think like:
<ul>
<li>In windows<em> <span style="color:#0000ff;">set PATH=PATH;c:\python</span></em></li>
<li>In linux <span style="color:#0000ff;"><em>export PATH=PATH:/python</em></span></li>
</ul>
</li>
<li>If everything is OK, you should be able to write pyhon in the command line and it should return this:<br />
<img class="alignnone size-full wp-image-33" title="pyhonconsole" src="http://renidev.files.wordpress.com/2009/02/pyhonconsole.jpg?w=479&#038;h=33" alt="pyhonconsole" width="479" height="33" /></li>
<li>Now it is time to test some examples. Python&#8217;s site have a <a href="http://wiki.python.org/moin/BeginnersGuide">Beginner guide</a> and some very <a href="http://wiki.python.org/moin/SimplePrograms">simple examples</a></li>
<li>You can test the examples directly in the python&#8217;s command line</li>
<li>If you are plan to use eclipse here there is a good plugin  <a href="http://begnu.wordpress.com/2007/09/26/pydev-python-eclipse/">http://begnu.wordpress.com/2007/09/26/pydev-python-eclipse/</a>, also you may want to see <a href="http://begnu.wordpress.com/2007/09/26/pydev-python-eclipse/">http://begnu.wordpress.com/2007/09/26/pydev-python-eclipse/</a></li>
</ol>
<p>Now just test the examples a see what happens <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>This is it for now. bye.</p>
<p>- Reni</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/renidev.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/renidev.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/renidev.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/renidev.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/renidev.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/renidev.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/renidev.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/renidev.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/renidev.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/renidev.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/renidev.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/renidev.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/renidev.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/renidev.wordpress.com/32/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renidev.wordpress.com&amp;blog=6375300&amp;post=32&amp;subd=renidev&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://renidev.wordpress.com/2009/02/08/very-first-steps-in-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/03edd1941876eccaf0af147cf0395474?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Reni</media:title>
		</media:content>

		<media:content url="http://renidev.files.wordpress.com/2009/02/pyhonconsole.jpg" medium="image">
			<media:title type="html">pyhonconsole</media:title>
		</media:content>
	</item>
		<item>
		<title>How to use spring&#8217;s component-scan and annotation-config</title>
		<link>http://renidev.wordpress.com/2009/02/02/how-to-use-springs-context-component-scan-and-annotation/</link>
		<comments>http://renidev.wordpress.com/2009/02/02/how-to-use-springs-context-component-scan-and-annotation/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 19:21:26 +0000</pubDate>
		<dc:creator>Renan Huanca</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[spring]]></category>
		<category><![CDATA[spring annotations]]></category>

		<guid isPermaLink="false">http://renidev.wordpress.com/?p=17</guid>
		<description><![CDATA[What context:annotation-config is for? It allow us to use @Autowire, @Required and @Qualifier annotations. What context:component-scan is for? It allow @Component, @Service, @Controller, etc.. annotations. What is the advantage? It allows us to manage dependency directly in the java class. Step by Step example. This example show how to classes: - Adder.java, A class to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renidev.wordpress.com&amp;blog=6375300&amp;post=17&amp;subd=renidev&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h3><strong>What context:annotation-config is for?</strong></h3>
<p>It allow us to use @Autowire, @Required and @Qualifier annotations.</p>
<h3><strong>What context:component-scan is for?</strong></h3>
<p>It allow @Component, @Service, @Controller, etc.. annotations.</p>
<h3><strong>What is the advantage?</strong></h3>
<p>It allows us to manage dependency directly in the java class.</p>
<h4>Step by Step example.</h4>
<p>This example show how to classes:</p>
<p>- Adder.java, A class to do the arithmetic add operation</p>
<p>- Calculator.java, A class that calls the Adder class using the <span style="color:#0000ff;"><em>Autowired</em></span> annotation</p>
<p>1. Write an applicationContext file and put it in the root of the classpath.</p>
<pre style="padding-left:60px;">&lt;beans xmlns="http://www.springframework.org/schema/beans"
       xmlns: xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="
            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"&gt;

       <span style="color:#0000ff;">&lt;context:component-scan base-package="test.example"/&gt;
       &lt;context:annotation-config/&gt;</span>
<pre>&lt;/beans&gt;</pre>
</pre>
<p>you should provide to component-scan the base path you what to scan component</p>
<p>2. Write Adder.java</p>
<pre style="padding-left:60px;">package test.example;
import org.springframework.stereotype.Component;</pre>
<pre style="padding-left:60px;"><span style="color:#0000ff;">@Component("adder")
</span>public class Adder {
    public int add(int a, int b){
        return a + b;
    }
}</pre>
<p>3. Write Calculator.java</p>
<p>package test.example;</p>
<pre style="padding-left:60px;">import org.springframework.stereotype.Component;
import org.springframework.beans.factory.annotation.Autowired;</pre>
<pre style="padding-left:60px;"><span style="color:#0000ff;">@Component("calculator")</span>
public class Calculator {
    private Adder adder;</pre>
<pre style="padding-left:60px;">    <span style="color:#0000ff;">@Autowired
</span>    public void setAdder(Adder adder) {
        this.adder = adder;
    }</pre>
<pre style="padding-left:60px;">    public void makeAnOperation(){
        int r1 = adder.add(1,2);
        System.out.println("r1 = " + r1);   
    }
}</pre>
<p>4. Write the main method (it can be in a class called Main.java):</p>
<pre style="padding-left:30px;">    public static void main(String[] args) {
        GenericApplicationContext context = new GenericApplicationContext();
        XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(context);
        xmlReader.loadBeanDefinitions(new ClassPathResource("applicationContext.xml"));
        context.refresh();
        <span style="color:#0000ff;">Calculator calculator = (Calculator) context.getBean("calculator");
        calculator.makeAnOperation();</span>
    }</pre>
<h3><strong>How it is working?</strong></h3>
<p>1. We are declaring two components (@Component) &#8216;Adder&#8217; and &#8216;Calculator&#8217;. It is is very important to note that the name of the component is between <span style="color:#0000ff;">(&#8220;&#8230;.&#8221;)</span> just next to the @Component annotation.</p>
<p>2. We are declaring one autowired method in Calculator.java. With it, you don&#8217;t have to instanciate manually an Adder. just use it. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/renidev.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/renidev.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/renidev.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/renidev.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/renidev.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/renidev.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/renidev.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/renidev.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/renidev.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/renidev.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/renidev.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/renidev.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/renidev.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/renidev.wordpress.com/17/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renidev.wordpress.com&amp;blog=6375300&amp;post=17&amp;subd=renidev&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://renidev.wordpress.com/2009/02/02/how-to-use-springs-context-component-scan-and-annotation/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/03edd1941876eccaf0af147cf0395474?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Reni</media:title>
		</media:content>
	</item>
		<item>
		<title>How to use HTML Parser</title>
		<link>http://renidev.wordpress.com/2009/01/29/how-to-use-html-parser/</link>
		<comments>http://renidev.wordpress.com/2009/01/29/how-to-use-html-parser/#comments</comments>
		<pubDate>Thu, 29 Jan 2009 21:24:16 +0000</pubDate>
		<dc:creator>Renan Huanca</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Html Parser]]></category>

		<guid isPermaLink="false">http://renidev.wordpress.com/?p=3</guid>
		<description><![CDATA[I was looking for an HTML Parser that parses XHTML. I tested many parser like: TagSoup, Apache Sax, Jericho Parser, etc&#8230; But i had the following problems: My XHTML file was not well formatted. The majority of parser are a little complicated api, because are more oriented to well formed documents. So, I found HTML [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renidev.wordpress.com&amp;blog=6375300&amp;post=3&amp;subd=renidev&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I was looking for an HTML Parser that parses XHTML. I tested many parser like: TagSoup, Apache Sax, Jericho Parser, etc&#8230;  But i had the following problems:</p>
<ol>
<li>My XHTML file was not well formatted.</li>
<li>The majority of parser are a little complicated api, because are more oriented to well formed documents.</li>
</ol>
<p>So, I found <a title="HTML Parser" href="http://htmlparser.sourceforge.net/">HTML Parser</a>. This one was very easy to use. Here is an example:  Let&#8217;s have some html called test.html like this:</p>
<pre style="padding-left:30px;">&lt;html&gt;
    &lt;head&gt;&lt;/head&gt;
    &lt;body&gt;
        &lt;img&gt;
        &lt;h1&gt;Hello World&lt;/h1&gt;
    &lt;/body&gt;
&lt;/html&gt;</pre>
<p>You want to get the tag &lt;h1&gt; that has &#8220;Hello Word&#8221;, note that the tag &lt;img&gt; is incomplete. Let&#8217;s code. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<pre style="padding-left:30px;">Parser parser = new Parser("test.html");
NodeList list = parser.parse(new HasChildFilter(new StringFilter("Hello World")));
System.out.println("tag founded = " + list.elementAt(0).toHtml());</pre>
<p>The previous code finds the tag &lt;h1&gt; and prints:</p>
<pre style="padding-left:30px;">tag founded = &lt;h1&gt;Hello World&lt;/h1&gt;</pre>
<p>Here is the explanation:</p>
<p><a href="http://htmlparser.sourceforge.net/javadoc/org/htmlparser/Parser.html">Parser class</a>, this class is in charge to load the html file.</p>
<p><a href="http://htmlparser.sourceforge.net/javadoc/org/htmlparser/Parser.html#parse(org.htmlparser.NodeFilter)">parser.parse()</a>, is the method that get all nodes or filter the nodes you want to use.</p>
<p><a href="http://htmlparser.sourceforge.net/javadoc/org/htmlparser/filters/HasChildFilter.html">HasChildFilter</a> and <a href="http://htmlparser.sourceforge.net/javadoc/org/htmlparser/filters/StringFilter.html">StringFilter</a>, are in charge to filter the nodes. In the example we are looking all tags that has children with the text &#8216;Hello Word&#8217;.</p>
<p>These filters, saved me a lot of work, <a href="http://htmlparser.sourceforge.net/">Html Parser</a> has <a href="http://htmlparser.sourceforge.net/javadoc/org/htmlparser/NodeFilter.html">other filters too</a>.</p>
<p>Well this is it for now <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/renidev.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/renidev.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/renidev.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/renidev.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/renidev.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/renidev.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/renidev.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/renidev.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/renidev.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/renidev.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/renidev.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/renidev.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/renidev.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/renidev.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=renidev.wordpress.com&amp;blog=6375300&amp;post=3&amp;subd=renidev&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://renidev.wordpress.com/2009/01/29/how-to-use-html-parser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/03edd1941876eccaf0af147cf0395474?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Reni</media:title>
		</media:content>
	</item>
	</channel>
</rss>
