En el siguiente video se muestra como implementar un proyecto con Quarkus 3.0 Alpha 1 con Jmoordb-core , usando Jakarta EE 10, con una base de datos MongoDB.
https://code.quarkus.io/?S=io.quarkus.platform%3A3.0
Luego lo descargamos y agregamos el repositorio
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
Y aƱadimos las dependencias
<dependency>
<groupId>com.github.avbravo</groupId>
<artifactId>jmoordb-core</artifactId>
<version>0.2</version>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-smallrye-openapi</artifactId>
<version>2.12.3.Final</version>
</dependency>
<dependency>
<groupId>org.eclipse.microprofile.metrics</groupId>
<artifactId>microprofile-metrics-api</artifactId>
<version>5.0.0-RC4</version>
<type>jar</type>
</dependency>
Creamos el archivo microprofile-config.properties dentro de META-INF.
#-- Jmoordb-core
mongodb.uri=mongodb://localhost:27017
#-- Database de configuraciĆ³n
mongodb.jmoordb= configurationjmoordbdb
#-- Database
mongodb.database=ejemplodb
mongodb.database1=test
mongodb.database2=prueba
Crear la clase MongoDBProducer, observe que se utiliza jakarta en lugar de javax en varios paquetes,
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import java.io.Serializable;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.enterprise.inject.Disposes;
import jakarta.enterprise.inject.Produces;
import jakarta.inject.Inject;
import org.eclipse.microprofile.config.Config;
import org.eclipse.microprofile.config.inject.ConfigProperty;
@ApplicationScoped
@DateSupport()
public class MongoDBProducer implements Serializable {
@Inject
private Config config;
@Inject
@ConfigProperty(name = "mongodb.uri")
private String mongodburi;
@Produces
@ApplicationScoped
public MongoClient mongoClient() {
MongoClient mongoClient = MongoClients.create(mongodburi);
return mongoClient;
}
public void close(@Disposes final MongoClient mongoClient) {
mongoClient.close();
}
}
Defina la entodad
@Entity()
public class Pais {
@Id(autogeneratedActive = AutogeneratedActive.ON)
private Long idpais;
@Column
private String pais;
@Column
private Date fecha;
}
Utilizamos un repositorio
@Repository(entity = Pais.class)
public interface PaisRepository extends CrudRepository<Pais, Long> {
}
Creamos un Controller
@Path("pais")
public class PaisController {
@Inject
PaisRepository paisRepository;
@GET
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public List<Pais> findAll() {
return paisRepository.findAll();
}
}
Ejecutamos la aplicaciĆ³n
quarkus dev
Podemos consultar el resultado mediante Postman
http://localhost:8080/pais
Video explicativo
Comments