jueves, 19 de junio de 2008

MAVEN un war que depende de otro war

el pom del primer war (es decir la dependencia es normal y corriente)

el que va a utilizar la dependencia es:

  • declaración de la dependencia como tipo war



  • cambio en la configuración del plugin de maven : maven-war-plugin para que al crear el war tenga en cuenta la otra dependencia y la empaquete de forma "especial" es decir qeu no empaquete algunos archivos 2 veces por ejemplo web.xml. En este caso solo incluye un archivo indexBasic.jsp




  • y por ultimo configuramos nuestro servidor para que tenga en cuenta el directorio nuevo que se ha creado en el paquete war...




y esto permite pasar los archivos jsp y resources de un war a otro.... otra cosa sería que las clases de la aplicación war que vamos a utilizar como dependencia todavía no se escanean bien por el servidor, supongo que hay que hacer una configuración extra.... de lo contrario unicamente en los wars tendremos resources y las clases en los jars...

**** PARA QUE FUNCIONE mvn jetty:run-explode con mvn jetty:run no furula!!

jueves, 12 de junio de 2008

compilar en maven con java 1.5

Instalar librerias en repositorio local de maven una a una

cuando el repositorio remoto no tiene dicha libreria nos sale por consola el comando que debemos insertar, antes modificamos /path/to/file por el path real a la librería que nos hemos manualmente descargado.
mvn install:install-file -DgroupId=com.google.gdata -DartifactId=gdata-core -Dversion=1.0 -Dpackaging=jar -Dfile=/path/to/file

martes, 10 de junio de 2008

Instalar ANT en MacOS

http://www.asceticmonk.com/blog/?p=388

en ese enlace se habla de exportar variables al PATH en MACOS

viernes, 4 de abril de 2008

Tipos de asociación: Composición - Agregación - Dependencia

Tipos de asociación:
La composición está relacionada con el valor del objeto, es decir el objeto que lo contiene se encarga de su ciclo de vida (inicialización, mantenimiento y limpieza)
La agregación está relacionada con la referencia a un objeto:

jueves, 27 de marzo de 2008

Programación pesimista, programación orientada a excepciones (anomalías)

Una excepción en java es simplemente una clase que hereda de la clase java.lang.Exception que extiende a su vez de la clase java.lang.Throwable así que empezamos echando un vistazo a el API de Throwable: http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Throwable.html
Como se comenta en la descripción de la clase:
Only objects that are instances of this class (or one of its subclasses) are thrown by the Java Virtual Machine or can be thrown by the Java throw statement.
Se puede apreciar que las clases que herendan de Throwable son Error y Exception. Mientras que si lanzamos un error no hay que declarlo en la definición del método, si lanzamos una exception si hay que declarlo:





Aunque no estamos obligados a declarar el error en la definición del método lo podríamos haber hecho de las siguientes maneras:
  • public void pruebaLanzaError() throws Error
  • public void pruebaLanzaError() throws Throwable
Pero en este caso si invocamos el método desde otra parte de nuestro código si estamos obligados a hacernos cargo de este error:



Si entendemos la excepción como un comportamiento anómalo de nuestro programa (o parte de programa), podemos tener en cuenta todos las anomalías de nuestro programa como pueden ser: objetos nulos, valores negativos ...
y actuando en consecuencia es decir lanzando excepciones concretas respondiendo a comportamientos anomalos concretos.

jueves, 24 de enero de 2008

Script linux para recorrer directorio y cambiar nombre a archivos

Bueno parecía más difícil de lo que al final fue:

la función para recorrer directorios es la muy famosa ls, la salida que da se lo pasamos a un bucle while y en cada iteración hacemos un cp ___ ____

Al pasarle variables al script las recogemos por el orden de entrada es decir si ejecutamos el script
# hola.sh Manolo
pues dentro del script accedemos a la variable Manolo con $1 ya que $0 es el nombre del script="hola.sh"

así me ha quedado a mi:

ls $2 |
while read name
do
echo "nombre: $name Extension:$1 Directorio: $2"
cp $2/$name $2/$1$name
done

y la llamada
cambiarNombre.sh Miniatura_ /prueba

y tendría el resultado de anteponer la palabra "Miniatura_" a el nombre de los archivos existentes en el directorio prueba