<?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/"
	>

<channel>
	<title>jm2dev &#187; java</title>
	<atom:link href="http://www.jm2dev.com/tag/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jm2dev.com</link>
	<description>desarrollo software en el siglo XXI</description>
	<lastBuildDate>Thu, 25 Mar 2010 21:12:16 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Eclipse STS + maven2 no embebido</title>
		<link>http://www.jm2dev.com/2010/03/eclipse-sts-maven2-no-embebido/</link>
		<comments>http://www.jm2dev.com/2010/03/eclipse-sts-maven2-no-embebido/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 11:11:43 +0000</pubDate>
		<dc:creator>josemiguel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[maven2]]></category>
		<category><![CDATA[springsource]]></category>
		<category><![CDATA[squeeze]]></category>
		<category><![CDATA[sts]]></category>

		<guid isPermaLink="false">http://www.jm2dev.com/?p=154</guid>
		<description><![CDATA[Recientemente he comenzado a utilizar la versión de Eclipse desarrollada por Spring Source, y me he encontrado con una serie de inconvenientes a la hora de usar maven2, como no poder añadir dependencias o plugins porque no se encuentran.
La solución que he encontrado consiste en dejar de usar la versión de maven embebida, y reemplazarla [...]]]></description>
			<content:encoded><![CDATA[<p>Recientemente he comenzado a utilizar la versión de <a href="http://www.eclipse.org">Eclipse</a> desarrollada por <a href="http://www.grails.org/STS+Integration">Spring Source</a>, y me he encontrado con una serie de <a href="http://stackoverflow.com/questions/2341004/eclipse-sts-maven">inconvenientes</a> a la hora de usar <a href="http://maven.apache.org">maven2</a>, como no poder añadir dependencias o plugins porque no se encuentran.</p>
<p>La solución que he encontrado consiste en dejar de usar la versión de maven embebida, y reemplazarla por la instalada en mi sistema. Para ello se accede al menú <em>Window/Preferences/Maven/Installations</em> y se añade el maven2 resisdente en mi sistema (en mi caso un debian squeeze):</p>
<p><code>/usr/share/maven2</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jm2dev.com/2010/03/eclipse-sts-maven2-no-embebido/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gesti&#243;n de entornos con usepackage en debian</title>
		<link>http://www.jm2dev.com/2010/03/gestin-de-entornos-con-usepackage-en-debian/</link>
		<comments>http://www.jm2dev.com/2010/03/gestin-de-entornos-con-usepackage-en-debian/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 17:57:43 +0000</pubDate>
		<dc:creator>josemiguel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[grails]]></category>
		<category><![CDATA[use]]></category>
		<category><![CDATA[usepackage]]></category>

		<guid isPermaLink="false">http://www.jm2dev.com/?p=149</guid>
		<description><![CDATA[Gesti&#243;n sencilla de varios entornos de desarrollo grails con el comando use en debian linux.]]></description>
			<content:encoded><![CDATA[<p>Los que nos dedicamos al desarrollo software a veces necesitamos trabajar con diferentes entornos, i.e. diferentes versiones de Java, y la gestión asociada puede ser bastante engorrosa. Tradicionalmente se recomienda usar un enlace genérico que apunte al entorno específico.</p>
<p>El paquete <a href="http://usepackage.sourceforge.net/">usepackage</a> viene en nuestra ayuda. En debian podemos instalarlo como</p>
<p><code>apt-get install usepackage</code></p>
<p>A continuación se escribe en los ficheros de configuración las variables de entorno a cargar según el entorno deseado. Va a usarse como caso práctico diferentes versiones de <a href="http://www.grails.org">grails</a>.</p>
<p>Editamos <em>.bashrc</em> para cargar <em>use</em> al inicio de sesión:</p>
<p><code>. /usr/share/usepackage/use.bsh</code></p>
<p>Se crea el fichero <em>/etc/usepackage/grails.conf</em> con el siguiente contenido:<br />
<code><br />
# GRails 1.1.1<br />
&gt;&gt; grails1.1.1: "Grails 1.1.1" &lt;&lt;<br />
grails1.1.1 * * * * : GRAILS_HOME = /usr/local/grails-1.1.1,<br />
PATH+= /usr/local/grails-1.1.1/bin;</code></p>
<p><code> </code></p>
<p><code># GRails 1.2.1<br />
&gt;&gt; grails1.2.1: "Grails 1.2.1" &lt;&lt;<br />
grails1.1.2 * * * * : GRAILS_HOME = /usr/local/grails-1.2.1,<br />
PATH+= /usr/local/grails-1.2.1/bin;<br />
</code><br />
Y finalmente creamos <em>~/.packages</em> para insertar:</p>
<p><code>(include /etc/usepackage/grails.conf)</code></p>
<p>Refrescando la configuración (<strong>source .bashrc</strong>) y ejecutando <strong>use -l</strong> podremos ver los diferentes entornos disponibles, de los que nos interesan:<br />
<code><br />
grails1.1.1 - Grails 1.1.1<br />
grails1.2.1 - Grails 1.2.1<br />
</code><br />
Y cargamos el deseado con <strong>use grails1.2.1</strong> por ejemplo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jm2dev.com/2010/03/gestin-de-entornos-con-usepackage-en-debian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Importar un proyecto java en Eclipse</title>
		<link>http://www.jm2dev.com/2010/03/importar-un-proyecto-java-en-eclipse/</link>
		<comments>http://www.jm2dev.com/2010/03/importar-un-proyecto-java-en-eclipse/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 14:02:51 +0000</pubDate>
		<dc:creator>josemiguel</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[importar]]></category>

		<guid isPermaLink="false">http://www.jm2dev.com/?p=146</guid>
		<description><![CDATA[Importaci&#243;n de un proyecto Java en Eclipse.]]></description>
			<content:encoded><![CDATA[<p>Puede parecer una entrada un poco tonta, pero lo cierto es que hay programadores que no lo tienen claro: el IDE es sólo una ayuda en el ciclo de desarrollo y no un fin en si mismo. Esto es, lo realmente importante es el código.</p>
<p>Me he decidido por esta entrada porque trabajo en un proyecto consistente en bastantes módulos, y como muchos desarrolladores han pasado por ahí, todos y cada uno ha dejado su granito de arena y un poco más (típicamente mierda). El caso es que desde la línea de comandos se puede compilar todo sin problemas, pero no todo el mundo quiere trabajar así.</p>
<p>El procedimiento es sencillo, se crea un nuevo proyecto Java (<strong>New Java Project</strong>) y se selecciona la opción <strong>Create project from existing source</strong>, apuntando al directorio que contiene todo el código, y que por buenas practicas hemos dejado en el <strong>workspace</strong>, no es plan de hacer copias innecesarias.</p>
<p>Comprobamos el entorno de ejecución, versión Java a usar, pulsamos <strong>siguiente</strong> o <strong>next</strong> para comprobar que se incluyen los directorios con los diferentes módulos y pinchamos sobre la <strong>pestaña de librerías</strong> para verificar que se han incluido. Si el proyecto tiene una estructura que se ajusta a las convenciones (<em>src/main/java</em> para el código, <em>src/test/java</em> para las pruebas, <em>lib</em> para las librerías y <em>conf</em> o <em>src/resources</em> para los ficheros de configuración) todo debería cargarse automáticamente, si no es así tocará añadirlo a mano y aprenderemos el valor de las convenciones.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jm2dev.com/2010/03/importar-un-proyecto-java-en-eclipse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TestNG con maven</title>
		<link>http://www.jm2dev.com/2010/02/testng-con-maven/</link>
		<comments>http://www.jm2dev.com/2010/02/testng-con-maven/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 16:44:24 +0000</pubDate>
		<dc:creator>josemiguel</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[junit]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[pruebas]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[testng]]></category>

		<guid isPermaLink="false">http://www.jm2dev.com/?p=140</guid>
		<description><![CDATA[TestNG como dependencia en un proyecto Maven.]]></description>
			<content:encoded><![CDATA[<p>Para la realización de pruebas unitarias en Java el framework más utilizado es sin duda <a href="http://www.junit.org">JUnit</a>, que está soportado por maven, de hecho el arquetipo para una aplicación sencilla lo incluye como dependencia aunque sea como una versión antigua y siempre lo sustituya. Pero ha ganado popularidad <a href="http://www.testng.org">TestNG</a>, con lo que puestos a editar el fichero POM podemos sustituir JUnit por TestNG con el siguiente fragmento de código.</p>
<pre>
&lt;dependency&gt;
    &lt;groupId&gt;org.testng&lt;/groupId&gt;
    &lt;artifactId&gt;testng&lt;/artifactId&gt;
    &lt;version&gt;5.11&lt;/version&gt;
    &lt;classifier&gt;jdk15&lt;/classifier&gt;
    &lt;scope&gt;test&lt;/scope&gt;
&lt;/dependency&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.jm2dev.com/2010/02/testng-con-maven/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vim como IDE</title>
		<link>http://www.jm2dev.com/2010/02/vim-como-ide/</link>
		<comments>http://www.jm2dev.com/2010/02/vim-como-ide/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 11:14:21 +0000</pubDate>
		<dc:creator>josemiguel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[UNIX]]></category>
		<category><![CDATA[vi]]></category>
		<category><![CDATA[vim]]></category>
		<category><![CDATA[vimrc]]></category>

		<guid isPermaLink="false">http://www.jm2dev.com/?p=131</guid>
		<description><![CDATA[Vim como un r&#225;pido y sencillo IDE para Java.]]></description>
			<content:encoded><![CDATA[<p>Aunque vim, un clónico del clásico editor vi, no puede compararse a la funcionalidad que proveen populares IDEs como <a href="www.eclipse.org">Eclipse</a> o <a href="www.netbeans.org">Netbeans</a>, tiene una serie de ventajas como su ligereza y el estar disponible en casi todos las distribuciones Linux o UNIX, y es este punto el que justifica esta entrada.</p>
<p>En determinados entornos no tenemos disponible un IDE o ni siquiera un entorno de ventanas, pero aún así se puede editar código Java. Primero hablemos de la configuración de Vim para numeración de líneas, identación de código con cuatro espacios y resalte la sint&aacute;xis.</p>
<p><code> set nu<br />
set tabstop=4<br />
syntax on<br />
</code></p>
<p>La anterior configuraci&oacute;n debe a&ntilde;adirse al fichero <code>.vimrc</code> en nuestro directorio HOME de usuario. Los leguajes más populares est&aacute;n soportados, y de no ser así en la web de <a href="http://www.vim.org/"vim</a> podemos encontrar los ficheros necesarios para otros lenguajes.</p>
<p>A pesar de que Vim es muy ligero, no es necesario editar, grabar y salir para compilar el código, con la secuencia &#8220;<code>ESC + : +  ! + comando</code>&#8221; podemos invocar cualquier aplicación disponible:</p>
<p><code><br />
:!ls<br />
</code></p>
<p>Recordamos que con &#8220;<code>ESC</code>&#8221; accedemos al modo comando de vi, mientras que pulsando la tecla &#8220;<code>i</code>&#8221; lo hacemos al de edici&oacute;n.</p>
<p>Para muestra un botón, el clásico Hola Mundo.</p>
<p><code><br />
vi Hello.java<br />
</code></p>
<pre>
public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}
</pre>
<p>Que puede compilarse y ejecutarse con los siguientes comandos.</p>
<p><code><br />
:!javac Hello.java<br />
:!java Hello<br />
</code></p>
<p>Con las anteriores instrucciones.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jm2dev.com/2010/02/vim-como-ide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Proyecto simple de Java con maven2, junit 4 y log4j en Eclipse</title>
		<link>http://www.jm2dev.com/2010/02/proyecto-simple-de-java-con-maven2-junit-4-y-log4j-en-eclipse/</link>
		<comments>http://www.jm2dev.com/2010/02/proyecto-simple-de-java-con-maven2-junit-4-y-log4j-en-eclipse/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 16:43:59 +0000</pubDate>
		<dc:creator>josemiguel</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[junit]]></category>
		<category><![CDATA[log4j]]></category>
		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://www.jm2dev.com/?p=104</guid>
		<description><![CDATA[Creaci&#243;n y configuraci&#243;n r&#225;pida de un proyecto java con maven para usar log4j y junit 4.]]></description>
			<content:encoded><![CDATA[<p>Para crear un proyecto java sencillo con <a href="http://maven.apache.org/">maven2</a> podemos hacer uso del arquetipo quickstart, pero tiene el problema de que no se ajusta exactamente a mi configuración: pues me gusta ya configurar desde el principio las pruebas con <a href="http://junit.org">junit 4</a> y usar <a href="http://logging.apache.org/log4j/">log4j</a> en lugar de imprimir por pantalla.</p>
<p>Creado el proyecto editamos el fichero pom.xml para añadir las dependencias a junit 4, y no 3 como hace por defecto, y log4j. Tambien aprovecharemos para añadir el plugin de compilación y establecer la compatibilidad con java 1.6.</p>
<p>Para el plugin se inserta el siguiente fragmento.</p>
<p><code> &lt;build&gt;<br />
<span style="white-space: pre;"> </span>&lt;plugins&gt;<br />
<span style="white-space: pre;"> </span>&lt;plugin&gt;<br />
<span style="white-space: pre;"> </span><span style="white-space: pre;"> </span>&lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;<br />
<span style="white-space: pre;"> </span><span style="white-space: pre;"> </span>&lt;version&gt;2.1&lt;/version&gt;<br />
<span style="white-space: pre;"> </span><span style="white-space: pre;"> </span>&lt;configuration&gt;<br />
<span style="white-space: pre;"> </span><span style="white-space: pre;"> </span>&lt;source&gt;1.6&lt;/source&gt;<br />
<span style="white-space: pre;"> </span><span style="white-space: pre;"> </span>&lt;target&gt;1.6&lt;/target&gt;<br />
<span style="white-space: pre;"> </span><span style="white-space: pre;"> </span>&lt;/configuration&gt;<br />
<span style="white-space: pre;"> </span>&lt;/plugin&gt;<br />
<span style="white-space: pre;"> </span>&lt;/plugins&gt;<br />
&lt;/build&gt;<br />
</code></p>
<p>Mientras que para las dependencias será:<br />
<code><br />
&lt;dependencies&gt;<br />
<span style="white-space: pre;"> </span>&lt;dependency&gt;<br />
<span style="white-space: pre;"> </span><span style="white-space: pre;"> </span>&lt;groupId&gt;junit&lt;/groupId&gt;<br />
<span style="white-space: pre;"> </span><span style="white-space: pre;"> </span>&lt;artifactId&gt;junit&lt;/artifactId&gt;<br />
<span style="white-space: pre;"> </span><span style="white-space: pre;"> </span>&lt;version&gt;4.7&lt;/version&gt;<br />
<span style="white-space: pre;"> </span><span style="white-space: pre;"> </span>&lt;scope&gt;test&lt;/scope&gt;<br />
<span style="white-space: pre;"> </span>&lt;/dependency&gt;<br />
<span style="white-space: pre;"> </span>&lt;dependency&gt;<br />
<span style="white-space: pre;"> </span><span style="white-space: pre;"> </span>&lt;groupId&gt;log4j&lt;/groupId&gt;<br />
<span style="white-space: pre;"> </span><span style="white-space: pre;"> </span>&lt;artifactId&gt;log4j&lt;/artifactId&gt;<br />
<span style="white-space: pre;"> </span><span style="white-space: pre;"> </span>&lt;version&gt;1.2.8&lt;/version&gt;<br />
<span style="white-space: pre;"> </span>&lt;/dependency&gt;<br />
&lt;/dependencies&gt;<br />
</code></p>
<p>Luego se crea el directorio <code>src/main/resources</code> que contendra el fichero de propiedades para <strong>log4j.properties</strong>.</p>
<p><code><br />
log4j.appender.stdout=org.apache.log4j.ConsoleAppender<br />
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout<br />
log4j.appender.stdout.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n</code></p>
<p><code>log4j.appender.file=org.apache.log4j.FileAppender<br />
log4j.appender.file.File=App.log<br />
log4j.appender.file.layout=org.apache.log4j.PatternLayout<br />
log4j.appender.file.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n</code></p>
<p><code> </code></p>
<p><code># set root log level<br />
log4j.rootLogger=debug, stdout<br />
</code></p>
<p>La mayor parte de la configuración se puede hacer gráficamente, click derecho y seleccionando <em>add dependency</em> o <em>add plugin</em> sobre el proyecto de trabajo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jm2dev.com/2010/02/proyecto-simple-de-java-con-maven2-junit-4-y-log4j-en-eclipse/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
