Entradas

Conocer mi IP con Java

Para conocer nuestra IP dentro de una red interna podemos hacerlo mediante el objeto InetAddress. (java.net.InetAddress):           InetAddress IP;                   try {                          IP = InetAddress.getLocalHost();                          System.out.println("Mi ip local es = "+IP.getHostAddress());                  } catch (UnknownHostException e) {                                  e.printStackTrace();                  } Para conocer tu IP...

Cucumber y Java - definiendo test de una manera amigable

Imagen
Cucumber es un framework que permite definir test para nuestras aplicaciones de una manera verbal. Es decir definir los test con frases entendibles, de forma que cualquier persona que quiera realizar un test no necesite saber programar ya que los definira en texto plano. Para que te hagas una idea, esto bastaria para definir un test con cucumber: Feature : Probar calculadora   Mediante este test voy a   hacer pruebas con dos numeros a   ver como se comporta mi aplicacion.   Scenario : Sumatorio de dos numeros     Given dos numeros 2,3     When sumo los dos numeros     And multiplico el resultado por 3     Then resultado debe ser 15 Feature es el nombre de la funcionalidad que queramos, y debajo ponemos la descripcion que queramos. Luego definimos un Scenario, podemos definir tantos como queramos para nuestras pruebas.En este caso creo Sumatorio de dos numeros porque es lo que voy a probar. V...

Crear Respositorio SVN (manejado por apache2, debian)

Si tenemos un servidor y queremos crear un repositorio donde subir nuestro codigo podemos hacerlo usando apache2 y el modulo DAV disponible para el apache2. Para ello lo primero instalar el apache2. apt-get install apache2 Ahora vamos a instalar el modulo DAV que instalara el modulo de apache para gestionar repositiorios SVN. apt-get install subversion libapache2-svn   Una vez descargado, para instalar el modulo en apache ejecutamos   a2enmod dav_svn     Ahora vamos a configurar el modulo dav_svn en apache   cd /etc/apache2/mods-enabled/   Editamos el archivo ejecutando: vi dav_svn.conf y descomentamos estas lineas: #Aqui en vez de "svn" ponemos poner el nombre de nuestro repositorio  #es el nombre que se usara en http:\\ip\miRepositorio ) <Location /miRepositorio>     #Indica que es un modulo DAV svn, esto no se cambia  DAV svn      #Este e el directorio real donde estara nuestr...

CRON , procesos en segundo plano con Spring (SchedulerFactoryBean)

Spring nos aporta muchas utilidades , entre ellas utilidades para correr procesos en segundo plano (demonios). Estos permite configurarlos de manera flexible, indicando cuando deben arrancar, cada cuanto tiempo realizar determinada tarea, etc.... Para ello es necesario meter en el contexto un bean del tipo org.springframework.scheduling.quartz.SchedulerFactoryBean Este bean tiene una propiedad "triggers" en la cual le especificamos que Triggers va a manejar Vamos por partes: Esto es tan sencillo como meter en nuestro ApplicationContext.xml la definicion del bean especificar un trigger :      <!-- Spring Bean para control de crons -->     <bean id="kuyiSchedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" > <property name="triggers" > <list> <ref bean="accionBatchTrigger" /> <!--REf al bean que sera Trigger--> <!--mete aqui todos ...

Serializar y Deserializar customizado con Jackson ( bajo Jax-Rs)

Pongamos que tenemos un servicio web con Jax-Rs que acepta como parametro un objeto. Algo asi:       @POST       @Path("persona")       @Consumes(MediaType.APPLICATION_JSON)       @Produces(MediaType.APPLICATION_JSON)       public Response createPersona (Persona per){                     System.out.println("aqui estoy" + per);           //HAgo mi rollo en BBDD, etc..            Persona personaGuardada = bbdd.save(persona);           return Response.ok( personaGuardada ).build();       }  Vemos que acepta un json que intentara parsear a un objeto Persona. Para ello es necesario que tengamos definido el pojo Persona con anotaciones Jaxb: *Nota: en la configuracion d...