gerard = odrarg

En nuestro mundo, sea lo que sea lo que la mente humana pueda crear puede ser reproducido y distribuido infinitamente sin ningun costo.

Subversion (SVNServer) en Windows XP

By odrarg




Subversion es un software de sistema de control de versiones diseñado específicamente para reemplazar al popular CVS, el cual posee varias deficiencias.

Es software libre bajo una licencia de tipo Apache/BSD y se le conoce también como svn por ser ese el nombre de la herramienta de línea de comandos. Una característica importante de Subversion es que, a diferencia de CVS, los archivos versionados no tienen cada uno un número de revisión independiente. En cambio, todo el repositorio tiene un único número de versión que identifica un estado común de todos los archivos del repositorio en cierto punto del tiempo.

Procedi a realizar un manual seguiendo los pasos de diferentes manuales que me encontre en las siguientes páginas y que son excelente ayuda.

1. Instalación de SVNServe en Windows XP

2. Subversive, cliente de Subversion para Eclipse

3. Instalación de Subversion (SVN) en Windows XP


Si alguien quiere el manual que hice gracias a la ayuda de los anteriores mencionados dejeme un comentario.

Consejo para combinar Array y ArrayList en Java

By odrarg

Los Array son caracteristicas propias del lenguaje java, la sintaxis puede ser de la siguiente manera:

int[] a = new int[100];

Sin embargo , los ArrayList es una clase de biblioteca, definida en el paquete java.util. Es un tipo "en un tamaño encaja todo" que alberga elementos de tipo Object. Por tanto, tendrá que realizar un moldeado siempre que quiera extraer un elemento de un array de listas.

Una ventaja muy importante es que los ArrayList permite la expansión y reducción de los mismos, algo que con los array no se puede.

ArrayList()
Construye un array de listas vacío

ArrayList(int capacidadInicial)
Construye un array de listas vacío con la capacidad especificada

Boolean add(Object obj)
Anade un elemento al final del array de listas

Int size
Devuelve un número de elementos almacenados actualmente en el array de listas

void ensureCapacity(int capacidad)
Garantiza que el array de listas tiene la capacidad de almacenar el número de elementos indicados sin necesidad de reubicar el array de almacenamiento interno

void trimTosize()
Reduce la capacidad de almacenamiento del array de listas para ajustarlo a su tamaño real

void set(int posicion, Object obj)
Coloca en valor en el array de listas en la posicion especificada, sobreescribiendo además el contenido previo de dicha posición.

Object get
Recupera el valor almacenado en una posicion correcta

Combinacion de Array y ArrayList

En ocasiones, se puede obtener lo mejor de ambos mundos (crecimiento flexible y acceso sencillo a los elementos) con el siguiente truco. Primero, construya un array de listas y añada los elmentos:

ArrayList list = new ArrayList();
while (....){
x = ....;
list.add(x);
}

Una vez concluido el proceso, use el método toArray para copiar los elementos a un array:

X[] a = new X[list.size()];
list.toArray(a);

Fuente: Java 2 Fundamentos, Cay S. Horstmann / Gary Cornell

Framework Acegi

By odrarg


Para implementar seguridad y autentificación en un sistema web encontre un framework interesante, llamado ACEGI.

ACEGI es un framework de seguridad open source que permite mantener la
lógica de negocio libre de código de seguridad. ACEGI proporciona cuatro
opciones principales de seguridad:

La liga del pdf que encontre para inciar en acegi, en español: tecnoblog.entel.es

La página oficial del proyecto es la siguiente Acegi

Log4j

By odrarg


Log4j

Es una librería de java con la que podemos escribir el log de nuestra aplicación, es decir, los errores, mensajes, avisos, etc.

Tiene muchas ventajas sobre System.out y Sytem.err.

  • Podemos organizar la salida de log en grupos, incluso un log por cada clase que es lo habitual.
  • Configuramos las salidas desde un fichero de configuración, sin necesidad de tocar el código. Este fichero nos permite:
    • Decidir qué salidas queremos o no mostrar, en función de qué clase procede la salida, de qué paquete o de la "gravedad" de la salida (error, aviso, información o información de debug).
    • Enviar la salida a otros sitios que no sean pantalla, por ejemplo, a través de un socket, base de datos, a un fichero, etc.

Con System.out y System.err sólo podemos tocar eso en el mismo código y, desde luego, no podemos con ellos enviar a sitios distintos de la pantalla.

Fuente: http://www.chuidiang.com

Ademas con log4j tambien podemos enviar via email cualquier error o excepción que ocurra en el sistema, algo muy interesante.

Bueno el archivo loggin.xml donde se coloca la configuración de los logs lo tuve que colocar en el directorio raiz de Tomcat.






300 Mexicanos

By odrarg

300 Mexicanos, esta chido

Crear proyecto web con maven y eclipse

By odrarg

El problema que se me presento a mi fue que al momento de importar el proyecto web a mi IDE eclipse éste no generaba el proyecto web sino un proyecto java el cual el tomcat no me reconocia para ejecutarlo via web.

Pasos a seguir para solucionarlo:

1. Nos posicionamos en la carpeta donde queremos crear el proyecto en mi caso fue:
C:\Archivos de programa\Apache Software Foundation\Apache Tomcat 6.0.14\webapps

2. Creamos el proyecto web con Maven
mvn archetype:create -DgroupId=com.empresa.ejemplos -DartifactId=SisWeb -DarchetypeArtifactId=maven-archetype-webapp

3. Creamos el paquete
mvn package

4. Instalamos
mvn install

5. Añadimos la variable del Repositorio local maven
mvnDeclipse.workspace= c:\eclipse\Workspace eclipse:add-maven-repo

6. En
el Eclipse comprobamos en Java\Build path\Classpath variables si se ha dado de alta correctamente el repositorio de Maven

7. Añadimos el modulo al eclipse de la siguiente manera (esto es por lo que batalle y por lo cual no generaba correctamente el proyecto al momento de importarlo)
mvn -Dwtpversion=1.5 eclipse:eclipse

La linea de codigo anterior lo encontre gracias a un manual de adictos al trabajo

8.Importamos el proyecto al eclipse
mediante el menu File\Import…\Existing proyect into Workspace...

8. Otra manera de importarlo es utilizando el plugin de Q4e