Entradas con la etiqueta ‘apache’

Generación de código fuente con Maven

Jueves, 23 de junio de 2011

En este artículo veremos como mediante la capacidad de filtrado de archivos que dispone Maven podremos generar una clase java que posteriormente se compilará formando parte del proyecto como si fuera un fichero de código normal.

Este articulo requiere una serie de conocimientos sobre Maven. Para más información puedes visitar la página del proyecto de Maven.

Como ejemplo útil vamos a generar una clase con la información del nombre de proyecto y la versión que se han indicado en el fichero POM que luego podremos usar en nuestro código normal y así conseguir que ajustando la configuración estándar de Maven, automáticamente estos cambios queden presentes en el código fuente.

Estructura de directorios

La estructura de directorios del proyecto sera como la de cualquier proyecto Maven solo que con una carpeta añadida para contener los ficheros con las plantillas para los fuentes generados.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
.
├── pom.xml
└── src
    └── main
        ├── java
        │   └── es
        │       └── excelsit
        │           └── sourceGenerationExample
        │               └── ClaseNormal.java
        └── source-templates
            └── es
                └── excelsit
                    └── sourcesGenerationExample
                        └── Version.java

En la línea número 10 del listado de directorios anterior vemos una carpeta llamada source-template. Esta será la carpeta que contendrá las plantillas.

Configuración de Maven

Para que Maven se entere de la existencia de esta carpeta hay que configurarlo en el POM.

1
2
3
4
5
6
7
8
9
<resources>
  [...]
  <resource>
    <directory>src/main/source-templates</directory>
    <filtering>true</filtering>
    <targetPath>../generated-sources/filtering</targetPath>
  </resource>
  [...]
</resources>

Mediante el código anterior incluiremos una carpeta de recursos que usará el filtrado de propiedades de Maven (línea 5) y que el resultado se copiará en la carpeta /target/generated-sources/filtering (línea 6). Para el elemento targetPath hay que tener en cuenta que la ruta es relativa al directorio de compilación (más información sobre la estructura de directorios estandar de Maven
) y que por defecto en el la generación de codigo se realiza dentro del directorio /target/generated-sources/NOMBRE_PLUGIN

El proximo paso es indicarle al plugin de compilación que existe un nuevo directorio con fuentes que también debe tener en cuenta.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<plugins>
    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <executions>
            <execution>
                <id>add-source</id>
                <phase>generate-sources</phase>
                <goals>
                    <goal>add-source</goal>
                </goals>
                <configuration>
                    <sources>
                        <source>${basedir}/target/generated-sources/filtering</source>
                    </sources>
                </configuration>
            </execution>
        </executions>
    </plugin>
</plugins>

De la línea 12 a la 16 vemos la parte de configuración del plugin de compilación de Maven donde le hemos indicado una nueva carpeta con fuentes.

Proyecto de ejemplo.

Para que tengais una visión de como quedaría el proyecto aquí tenéis el ejemplo sobre generación de código mediante el filtrado de Maven completo. Para ver el resultado podeis usar el siguiente comando:

mvn -Dexec.classpathScope=runtime "-Dexec.args=-classpath %classpath es.excelsit.sourceGenerationExample.ClaseNormal" -Dexec.executable=/usr/lib/jdk/bin/java process-classes org.codehaus.mojo:exec-maven-plugin:1.2:exec

 

Etiquetas: , , ,

Cómo cambiar tu blog en WordPress a un nuevo servidor

Lunes, 19 de octubre de 2009

El mayor problema que nos encontramos al pretender cambiar la dirección web de nuestro blog es que en WordPress usa direcciones absolutas en ciertos parámetros que almacena en la base de datos en lugar de direcciones relativas. Este artículo le mostrara como cambiar de forma sencilla estas direcciones absolutas para que apunten al nuevo dominio o directorio dentro del mismo dominio.

El primer paso que hay que realizar es mover todo el contenido de tu instalación de WordPress al nuevo destino, ya sea un nuevo directorio de tu antiguo servidor o tu nuevo servidor. Una vez completado este paso, cambiaremos una serie de opciones en la tabla OPTIONS que indican la dirección de nuestro blog. Para ello ejecutaremos el siguiente comando SQL en nuestra base de datos:

UPDATE wp_options
   SET option_value = REPLACE(option_value, 'http://www.antiguo-dominio.com', 'http://www.nuevo-dominio.com')
 WHERE option_name = 'home' OR option_name = 'siteurl';

Posteriormente, necesitarás arreglar los enlaces que se encuentran dentro de los artículos y las páginas de tu blog a la nueva dirección. Para realizar esto hay que ejecutar el siguiente comando SQL:

UPDATE wp_posts
   SET guid = REPLACE(guid, 'http://www.antiguo-dominio.com','http://www.nuevo-dominio.com');

En el caso de que hayas hecho enlaces desde tus propios contenidos a direcciones absolutas (es decir direcciones en las que indicas el el nombre del servidor por completo) además necesitarás ejecutar también:

UPDATE wp_posts
   SET post_content = REPLACE(post_content, 'http://www.old-domain.com', 'http://www.new-domain.com');

Tras realizar estas operaciones, ya podrás entrar en tu blog usando tu nueva dirección. En el caso de que no funcionen los Permalinks deberás generar un nuevo el fichero .htaccess mediante el interfaz de administración de WordPress acudiendo al menú ‘Opciones/Permalinks’ en el Tablero.

En este punto ya tendrás tu blog funcionando correctamente en la nueva dirección web, pero tendrás que indicar al mundo que has cambiado de servidor o de directorio dentro de tu servidor antiguo. Esto lo puedes realizar de forma sencilla mediante reglas en htaccess. Por ejemplo, para el caso de que cambies del directorio raíz en tu mismo servidor a un nuevo directorio, es decir desde http://www.midominio.com/ a http://www.midominio.com/blog puedes usar la siguiente redirección en htaccess:

redirectMatch 301 ^(.*)$ http://www.midominio.com/blog$1

Fuente: My Digital Life

Más información sobre redirectMatch.

Etiquetas: , , , , ,