Ir al contenido principal

Usar JTE con Quarkus y Gradle

Usar JTE con Quarkus y Gradle (Java 21)

Este tutorial muestra cómo integrar el motor de plantillas JTE en un proyecto Quarkus usando Gradle, con plantillas precompiladas para un rendimiento óptimo.

1. Crear el proyecto Quarkus

mvn io.quarkus.platform:quarkus-maven-plugin:3.15.1:create \
    -DprojectGroupId=app.quebracho \
    -DprojectArtifactId=quebracho \
    -DclassName="app.quebracho.service.HelloResource" \
    -Dpath="/hello"

2. Configurar build.gradle

plugins {
    id 'java'
    id 'io.quarkus'
    id 'gg.jte.gradle' version '3.1.9'
}

repositories {
    mavenCentral()
    mavenLocal()
}

dependencies {
    implementation enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}")
    implementation 'io.quarkus:quarkus-rest'
    implementation 'io.quarkus:quarkus-arc'
    implementation "gg.jte:jte:3.1.9"
    testImplementation 'io.quarkus:quarkus-junit5'
    testImplementation 'io.rest-assured:rest-assured'
}

java {
    sourceCompatibility = JavaVersion.VERSION_21
    targetCompatibility = JavaVersion.VERSION_21
}

sourceSets {
    main {
        java {
            srcDir "$buildDir/generated-sources/jte"
        }
    }
}

tasks.named('compileJava') {
    dependsOn tasks.named('generateJte')
}

jte {
    contentType = 'Html'
}

3. Estructura de directorios

src
 └── main
     ├── java
     │    └── app
     │         └── quebracho
     │              ├── infra
     │              │    └── JteProducer.java
     │              └── service
     │                   └── HelloResource.java
     └── jte
          └── hello.jte

4. Clase Productora de TemplateEngine

package app.quebracho.infra;

import gg.jte.TemplateEngine;
import gg.jte.ContentType;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.enterprise.inject.Produces;

@ApplicationScoped
public class JteProducer {
    @Produces
    public TemplateEngine templateEngine() {
        return TemplateEngine.createPrecompiled(ContentType.Html);
    }
}

5. Recurso REST que renderiza la vista

package app.quebracho.service;

import gg.jte.TemplateEngine;
import gg.jte.output.WriterOutput;
import jakarta.inject.Inject;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType;
import java.io.StringWriter;
import java.util.Map;

@Path("/hello")
public class HelloResource {

    @Inject
    TemplateEngine jte;

    @GET
    @Produces(MediaType.TEXT_HTML)
    public String hello() {
        StringWriter writer = new StringWriter();
        jte.render("hello.jte", Map.of("name", "Hugo"), new WriterOutput(writer));
        return writer.toString();
    }
}

6. Plantilla JTE

<!DOCTYPE html>
<html>
  <body>
    <h1>Hola ${name}!</h1>
  </body>
</html>

7. Generar clases de plantillas

./gradlew clean generateJte compileJava

8. Ejecutar en modo desarrollo

./gradlew quarkusDev

Abre http://localhost:8080/hello y verás Hola Hugo! renderizado por JTE.

Mantén la carpeta src/main/jte para las plantillas y ejecuta ./gradlew generateJte cuando agregues nuevas.

Comentarios

Entradas populares de este blog

Instalación y Configuración de MySQL 5.7 en Ubuntu 24.04 LTS

Instalar MySQL 5.7 en Ubuntu 24.04 1. Descargar e instalar MySQL Copiar mkdir ~/mysql57 cd ~/mysql57 wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz sudo mv mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql sudo ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql 2. Instalar dependencias necesarias IMPORTANTE: Se descargan las versiones nuevas de las librerías y se las vincula con las librerías que necesita MySQL. Copiar sudo apt update # Reemplazo de libaio sudo apt install libaio1t64 # Reemplazo de libtinfo y ncurses sudo apt install libtinfo6 libncurses6 Copiar # Crear los enlaces simbólicos sudo ln -sf /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/libaio.so.1 sudo ln -sf /usr/lib/x86_64-linux-gnu/libtinfo.so.6 /usr/lib/x86_64-linux-gnu/libtinfo.so.5 sudo ln -sf /usr/lib/x86_64-linux-gnu/libncurses.so.6 /usr/lib/x86_64...

Instalar DeepSeek R1 1.5B en Ubuntu 24.04 sin GPU

Instalar DeepSeek en tu sistema sin GPU, pasos: Especificaciones del Entorno de Pruebas Componente Detalle SO Ubuntu Cinnamon 24.04 LTS x86_64 Kernel 6.8.0-51-generic CPU Intel i7-6820HQ (8 núcleos) @ 3.600GHz GPUs AMD ATI Radeon HD 8830M / R7 250 / R7 M465X Intel HD Graphics 530 RAM 15.882 GB (3.716 GB en uso) Resolución 1440x810 Escritorio Cinnamon 6.0.4 1. Instalar Git LFS sudo apt-get install git-lfs git lfs install 2. Clonar el repositorio cd /opt sudo mkdir deepseek && sudo chown $USER:$USER deepseek cd deepseek git clone https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B 3. Crear y activar un entorno virtual python -m ve...

Instalar Jasper Studio 6.21 para Ubuntu 24.04

Instalar js-studiocomm_6.21.3 en Ubuntu 24.4 Para instalar Jaspersoft Studio en Ubuntu 24.4, sigue estos pasos: 1. Descargar Jasper Studio Descarga la versión js-studiocomm_6.21.3 desde el siguiente enlace: Jaspersoft Studio 6.21.3 2. Crear el directorio de instalación mkdir /opt/jasperstudio 3. Mover el archivo descargado mv /dir_descarga/js-studiocomm_6.21.3_linux_x86_64.tgz /opt/jasperstudio/ cd /opt/jasperstudio 4. Extraer el archivo tar -xvzf js-studiocomm_6.21.3_linux_x86_64.tgz cd js-studiocomm_6.21.3 5. Ejecutar Jaspersoft Studio ./Jaspersoft\ Studio 6. Crear acceso directo en el escritorio Para facilitar el acceso, crea un archivo .desktop en el escritorio: gedit ~/Escritorio/jaspersoft-studio.desktop En el archivo jaspersoft-studio.desktop , agrega lo siguiente: [Desktop Entry] Version=1.0 Ty...