miércoles, 22 de septiembre de 2010

Instalar librería manualmente con Maven

A veces interesa instalar librerías manualmente usando Maven. Por ejemplo porque no tengamos acceso en el momento al repositorio que la contiene, pero sí la tenemos en nuestro poder.

Para hacerlo debemos ir a la consola y situarnos en la raíz de nuestro proyecto. Una vez allí introducir lo siguiente:

>mvn install:install-file -DgroupId=xxx -DartifactId=xxx -Dversion=xxx -Dpackaging=jar -Dfile=xxx

Sustituír las xxx por los datos que sean necesarios en cada caso. Para conocer dichos datos, en el caso de tratarse de un .jar, basta con descomprimir dicho jar y buscar un archivo llamado pom.properties (META-INF\...\maven) en él podréis consultarlos.

-Dfile es simplemente la ruta donde está ubicado el archivo en nuestro ordenador.

Una vez hecho esto, podremos observar en nuestro repositorio local la librería ya instalada. Tan sólo debemos colocar la dependencia en nuestro archivo pom.xml de nuestro proyecto.


<dependency>
<groupId>XXX</groupId>

<artifactId>XXX</artifactId>
<versionId>XXX</versionId>
</dependency>

viernes, 14 de mayo de 2010

Convertir un file a array de bytes.

Muchas veces es necesario convertir un archivo File a bytes, ya sea para transformarlo en otro tipo de archivo o para enviarlo a otra aplicación, etc.


File archivo = f;
byte[] archivoBytes = null;

long tamanoArch = archivo.length(); //Nos quedamos con el tamaño del archivo.

//Con esta condicional controlamos si el archivo es demasiado grande
if (tamanoArch > Integer.MAX_VALUE)
{
log.debug("El archivo es demasiado largo.");
}
else
{

archivoBytes = new byte[(int) tamanoArch]; //Le damos al array el tamaño del archivo.

try
{
//Nos creamos esta variable para poder leer el archivo.
FileInputStream docu = new FileInputStream(archivo);

//Leemos los bytes del archivo y a la vez se van insertando en el array de bytes creado.
int numBytes = docu.read(archivoBytes);

System.out.printl("El archivo tiene " + numBytes + " de bytes.");

docu.close(); //Muy importante cerrar tras la lectura.
}
catch (FileNotFoundException e)
{
System.out.println("No se ha encontrado el archivo.");
}
catch (IOException e)
{
System.out.println("No se ha podido leer el archivo.");
}

jueves, 13 de mayo de 2010

StringUtils

Api de StringUtils


Muy útil para trabajar con cadenas de caracteres de forma cómoda. Pertenece a la librería org.apache.commons.lang

Ejemplos:


StringUtils.leftPad("catedral", 12, 'A');

AAAAcatedral

StringUtils.rightPad("catedral", 12, 'A');

catedralAAAA

StringUtils.center("catedral", 12, 'A');

AAcatedralAA

StringUtils.deleteWhitespace("Había una vez");

Habíaunavez

StringUtils.lowerCase("CATEDRAL");

catedral

StringUtils.reverse("catedral");

lardetac

StringUtils.replaceChars("catedral", 't', 'h');

cahedral

...

lunes, 19 de abril de 2010

Spring e Ibatis II

SqlMapConfig.xml

Es uno de los archivos fundamentales para configurar Ibatis en nuestro proyecto.

Tiene este aspecto:

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">

<sqlMapConfig>

<sqlMap resource="______.xml"/>

</sqlMapConfig>



Este archivo indica la ruta donde está el archivo que contiene las sentencias SQL del proyecto.
Dicho archivo también es un archivo .xml, y en él se especifican las sentencias que se usan, además de los parámetros que recibirán.

Spring e Ibatis.

Librerías necesarias para que un proyecto pueda trabajar con Spring e Ibatis:

antlr-2.7.6.jar
cglib-nodep-2.1_3.jar
commons-collections.jar
commons-logging.jar
dom4j-1.6.1.jar
ibatis-2.3.4.726.jar
jta.jar
spring.jar

Una vez las tengas colocadas en tu proyecto es hora de crear el archivo applicationContext.xml. Para ello le damos a File -> New -> Spring Bean Definition.



Se crea el archivo y se le añade las declaraciones al xml. Seleccione las que se ven en la imagen.



aop - http://www.springframework.org/schema/aop
bean - http://www.springframework.org/schema/beans
tx - http://www.springframework.org/schema/tx

Yo voy a usar las de la versión 2.5

De esta forma cuando hagamos click en Finish tendremos en nuestro proyecto un archivo .xml llamado applicationContext, con este aspecto.





El primer paso es declarar la fuente de datos, la conexión a la base de datos que vamos a usar.
Para ello en nuestro applicationContext.xml colocamos estas líneas:

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="url" value="jdbc:mysql://localhost/nombre_BD"/>
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="username" value=""/>
<property name="password" value=""/>
</bean>

      
El segundo paso sería crear el bean del objeto sqlMapClient tal que así:

<bean id="sqlMapClient"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">

<property name="configLocation" value="conf/SqlMapConfig.xml"/>
<property name="dataSource" ref="dataSource"/>
</bean>


Este objeto es el elemento principal para la gestión de la persistencia en iBatis. Las palabras en negrita son palabras clave, y es muy importante no modificarlas.

Como podéis comprobar, la propiedad configLocation tiene el valor "conf/SqlMapConfig.xml". Este es otro archivo que debemos tener en nuestro proyecto y que en el próximo post explicaré como se hace.

martes, 2 de febrero de 2010

¿Cómo crear paquete .jar con Maven?

Desde la consola usar estos comandos: mvn clean package
Para generar el javadoc: mvn javadoc:jar
Recursos: mvn source:jar

Para compilar saltando los test: mvn clean install -Dmaven.test.skip=true