viernes, 27 de junio de 2008

Instalacion de eclipse jee y plugins

Para instalar el eclipse JEE, lo descargo de algunos de los espejos de la web. Una vez descargado lo descomprimo y lo renombro como 'eclipseJEE' para que no coincida con la versión de eclipse clásico, y lo coloco en Archivos de Programa. Ejecuto el archivo 'eclipse.exe'.

Me pide que seleccione un Workspace. Selecciono el mismo que tengo, esto es, 'C:\Workspace'.


Ahora voy a instalar los plugins siguiendo la ruta
eclipse>Help>software updates...>find and install >search for new fetures for install> new remote site:
  • Subversion
    • name:svn-subclipse
    • url: http://subclipse.tigris.org/update_1.4.x
  • TestNG
    • name:testng
    • url:http://beust.com/eclipse
  • MAVEN
    • name: maven-m2eclipse
    • url:http://m2eclipse.sonatype.org/update/

martes, 17 de junio de 2008

Desarrollo de modulo Maven para hacer 'mailing'

Hoy vamos a crear un módulo Maven para realizar un envío de correo electrónico basándonos en 4 parámetros de datos:
  • String cuentaGmailRemitente
  • String claveGmailRemitente
  • String destinatario
  • String mensaje
Para ello debemos implementar una interfaz (llamada ServicioMail), que contiene un método al que se le pasan los 4 parámetros anteriores. La interfaz la implementamos a través de la clase 'ServicioMailImpl'.

Todos estos pasos están perfectamente explicados aquí (si quieres más información teórica pincha aquí).

Ahora vamos a implementar el módulo anterior dentro de un servlet (http://localhost:8080/olvidoClave), para que, a través de un formulario, nos pida la dirección de correo electrónico (textfield) y podamos enviarlo (mediante un boton -enviarClave-). Una vez enviado nos manda a otro servlet (
http://localhost:8080/envioClave).

jueves, 12 de junio de 2008

Seguimos con Maven

En eclipse, nos bajamos del repositorio el proyecto ServletEticom y después, menú contextual sobre el archivo "pom.xml/run as/Maven build...". En 'goals' escribimos "jetty:run". Veremos en consola que se inicia una aplicación web que se descarga Maven a tavés del servidor "jetty". Si abrimos en un navegador la dirección "http://localhost:8080", veremos que se ha creado una página web.
Es definitiva, que con la orden jetty:run, le estamos diciendo que a través del servidor jetty, corra el archivo pom.xml en un navegador.

Como decía ayer,
POM las iniciales de "Project Object Model", es un archivo XML en el que se definen las configuraciones del proyecto, desarrolladores que participaran, los roles de los desarrolladores, la organización, licencias, la URL, las dependencias/librerías. (info oficial de pom.xml).
Si abrimos ese archivo pom.xml, vemos como, en la primera línea, aparece su version y su encoding. Si queremos que eclipse pueda validarnos el documento hay que indicar el Schema dentro de la etiqueta proyect...

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"

Este tipo de archivos se puede ser validado por DTD (descripción de estructura y sintaxis de un documento XML, que es en texto plano) o mediante un schema (también XML).

Si queremos crear un proyecto Maven desde eclipse, File/new/project/en wizards buscamos maven y seleccionamos Maven Project. 3 veces siguiente y..
Group Id: eticom
Artifact Id: ejemplo (es el nombre del proyecto, si Maven ve que el proyecto es dependiente de otro, lo añade como dependencia)
Version: 0.0.1-SNAPSHOOT

miércoles, 11 de junio de 2008

MAVEN

En eclipse, ruta: window/preferences/java/Installed JREs añadimos el JRE home directory "C:\Archivos de programa\Java\jdk1.6.0_06" y lo activamos por defecto. Aceptamos

Nos descargamos el archivo apache-maven-2.0.9-bin.zip y extraemos su contenido en archivos de programa/java (se puede poner donde queramos). Creamos una nueva variable de entorno llamado JAVA_HOME cuya ruta es C:\Archivos de programa\Java\jdk1.6.0_06. Y en la variable Path insertamos otra ruta: C:\Archivos de programa\Java\apache-maven-2.0.9\bin. Aceptamos.

En la ruta "C:\Documents and Settings\Administrador\.m2" añadimos el repositorio descargado del foro de eticom. ESTE ES NUESTRO REPOSITORIO LOCAL.

En consola escribimos "mvn --version"para ver que todo ha ido bien y ver nuestra versión.

Para crear un proyecto nos vamos a la consola, nos colocamos en C:\workspace> y escribimos:

mvn archetype:create -DgroupId=eticom -DartifactId=rafa

...y nos crea un proyecto llamado rafa en el workspace, con toda su estructura (src y test), con sus paquetes y clases de prueba. En palabras de Juan.. "una estructura de directorios estandar (incluyendo tests) y un archivo maven de proyecto llamado pom.xml donde se configuran las dependencias y posibles targets para este proyecto
".
archetype:create es el comando de maven que crea el proyecto, -DgroupId=eticom son los paquetes de nuestro proyecto, y -DartifactId es el nombre del proyecto.

Para realizar operaciones con el proyecto, nos metemos en su directorio y ejecutamos los comandos, tales como:

COMPILAR: mediante el comando "mvn compile", que crea un directorio target justo donde está el archivo pom.xml, y un subdirectorio llamado classes, donde se incluirán todos los archivos .class generados por nuestro proyecto.

GENERAR .JAR: ejecutando "mvn package", si es necesario compilará y después pasará las clases de test de JUnit, y si no tiene errores, incluirá en el directorio target, nuestro archivo .jar.

INSTALAR EL .JAR DE NUESTRO PROYECTO EN EL REPOSITORIO: mediante la línea de comando "mvn install"

REPOSITORIOS de ficheros .jar (los oficiales de maven): maven, a medida que los necesita, se los va descargando en el directorio local "C:\Documents and Settings\Administrador\.m2\", y si los vuelve a necesitar, ya tira de aquí.

DEPENDENCIAS: si queremos bajarnos unos .jar por nosotros mismos, hay que editar el archivo "pom.xml"; en la etiqueta 'dependency' por defecto viene groupId="junit", artifactId="junit", version=3.8.1 y scope=test. Si lo que buscamos es descargarnos el 'log4j' iríamos a los.jar oficiales de Maven, y navegamos hasta llegar al archivo .pom del paquete 'log4j' (aquí el de la versión 1.2.9); finalmente añadimos la dependencia, del mismo modo que el 'junit'.
En Eclipse, menú contextual sobre pom.xml/Maven/Add dependecy. En Query escribimos la dependencia que queramos. Si escribimos TestNG aparecerán todas ellas, en sus distintas versiones; nosotros escogeremos la que utilicemos en nuestro proyecto.

JAVADOC: el javadoc o documentación se crea ejecutando la siguiente línea de comando "mvn javadoc:javadoc"

INTEGRACIÓN con Eclipse: para integrar nuestro proyecto con eclipse, ejecutamos el comando "mvn eclipse:eclipse", con lo que la estructura del mismo se amolda a uno de eclipse. Ahora hay que crear una variable interna para acceder a las librerías de Maven:
mvn -Declipse.workspace=<path_al_workspace_de_eclipse> eclipse:add-maven-repo (el path a mi workspace es C:\workspace).

Ahora vamos a abrir el proyecto creado (llamado "rafa") en el eclipse, lo cual se ahce por la ruta File/new Java proyect/from existing source, entonces seleccionamos la ruta donde se encuentre y le damos el mismo nombre (rafa).

Ahora toca instalar el plugin (instrucciones)... En el menú de Eclipse: Windows/Software Updates/Find and Install/Search for new features to install/siguiente/New remote site, y le añadimos Maven como name y la dirección siguiente:
http://m2eclipse.sonatype.org/update/. Le damos a OK y lo instala. Antes de acabar, seleccionamos el Maven, pichamos en el + para que abra el árbol y seleccionamos todos menos el que está en medio, ya que da conflicto. Ahora, para ver la ventana de Maven en Eclipse pinchamos Window/Show view/Other/Maven Indexes. ENHORABUENA! YA TIENES INSTALADO EL PLUGIN DE MAVEN!

links:
primeros pasos

Trabajando con ANT

Ya instalamos y vimos por encima la instalación y funcionamiento de ANT.
Hoy vamos a crear scripts.. para ello, basta con crearse un archivo llamado "build.xml" (se puede hacer por consola o por un proyecto eclipse).

A través de consola:
En mi caso lo crearé en C:\ para facilitar la ruta, esto es: "c:\build.xml". Partiendo del siguiente código, vemos como la creación del archivo va entre las etiquetas project (lineas 3 y 29). Dentro creamos una definición de lo que serán las tareas del archivo ANT.
A continuación las propiedades que utilizaremos en el desarrollo del mismo. Dentro de las etiquetas property (de la línea 10 a la 14) nos encontramos con sus atributos; en el caso de la property de la línea 11, estamos creando una propiedad de nombre "META-INF" en la carpeta "miapp/META-INF", y así con todas.

Finalmente tenemos las etiquetas target, en este caso dos, pero pueden ser las que queramos. Hemos indicado que por defecto se ejecute el target de nombre "construir", por lo que si queremos ejecutar dicho target, nos vamos a la consola, y en c:\ ejecutamos el comando "c:\>ant" y se ejecutaría. En el caso del tarjet de nombre borrar, hay que especificarlo en el comando:
"c:\>ant borrar".
El primero de los targets nos crea los directorios (mkdir dir) y el fichero xml (touch file), mientras que el segundo borra todo (delete dir), ya que borra el directorio que contiene a todo lo demás.

A través de Eclipse
El mismo archivo "build.xml" (se puede llamar como queramos) lo colocamos en la carpeta principal de un proyecto. Abrimos el pluggin ANT que viene instalado por defecto en Eclipse (Window/show view/Ant) y arrastramos el fichero build.xml a la ventana Ant y veremos todos los targets diponibles. Si hacemos doble click en el archivo principal, se ejecuta el target por defecto, aunque podemos clickear uno independiente. Los resultado aparecen por la consola del eclipse.

Otro ejemplo de archivo tipo Ant es este, que crea una distribución de directorios al estilo de un proyecto java, creando un archivo .jar de un proyecto pasado por propiedad, y finalmente creando un archivo tipo .war.