Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // GreetingResource.java
- package org.acme;
- import io.smallrye.mutiny.Multi;
- import jakarta.ws.rs.GET;
- import jakarta.ws.rs.Path;
- import jakarta.ws.rs.Produces;
- import jakarta.ws.rs.core.MediaType;
- import org.eclipse.microprofile.rest.client.inject.RestClient;
- @Path("/hello")
- public class GreetingResource {
- @RestClient
- MyRemoteService client;
- @GET
- @Produces(MediaType.TEXT_PLAIN)
- public Multi<MyRemoteService.TestDTO> hello() {
- return client.getTest()
- .onItem().invoke(i -> System.out.println(i));
- }
- }
- // MyRemoteService.java
- package org.acme;
- import io.smallrye.mutiny.Multi;
- import jakarta.ws.rs.GET;
- import jakarta.ws.rs.Path;
- import jakarta.ws.rs.core.MediaType;
- import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;
- import org.jboss.resteasy.reactive.RestStreamElementType;
- @RegisterRestClient(baseUri = "http://localhost:5000/api")
- public interface MyRemoteService {
- @GET
- @Path("/test")
- @RestStreamElementType(MediaType.APPLICATION_JSON)
- Multi<TestDTO> getTest();
- record TestDTO(String a) {}
- }
- // pom.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.acme</groupId>
- <artifactId>code-with-quarkus</artifactId>
- <version>1.0.0-SNAPSHOT</version>
- <properties>
- <compiler-plugin.version>3.13.0</compiler-plugin.version>
- <maven.compiler.release>17</maven.compiler.release>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
- <quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id>
- <quarkus.platform.group-id>io.quarkus.platform</quarkus.platform.group-id>
- <quarkus.platform.version>3.17.2</quarkus.platform.version>
- <skipITs>true</skipITs>
- <surefire-plugin.version>3.5.0</surefire-plugin.version>
- </properties>
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>${quarkus.platform.group-id}</groupId>
- <artifactId>${quarkus.platform.artifact-id}</artifactId>
- <version>${quarkus.platform.version}</version>
- <type>pom</type>
- <scope>import</scope>
- </dependency>
- </dependencies>
- </dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>io.quarkus</groupId>
- <artifactId>quarkus-rest</artifactId>
- </dependency>
- <dependency>
- <groupId>io.quarkus</groupId>
- <artifactId>quarkus-rest-client-jackson</artifactId>
- </dependency>
- <dependency>
- <groupId>io.quarkus</groupId>
- <artifactId>quarkus-rest-client</artifactId>
- </dependency>
- <dependency>
- <groupId>io.quarkus</groupId>
- <artifactId>quarkus-rest-jackson</artifactId>
- </dependency>
- <dependency>
- <groupId>io.quarkus</groupId>
- <artifactId>quarkus-arc</artifactId>
- </dependency>
- <dependency>
- <groupId>io.quarkus</groupId>
- <artifactId>quarkus-junit5</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>io.rest-assured</groupId>
- <artifactId>rest-assured</artifactId>
- <scope>test</scope>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>${quarkus.platform.group-id}</groupId>
- <artifactId>quarkus-maven-plugin</artifactId>
- <version>${quarkus.platform.version}</version>
- <extensions>true</extensions>
- <executions>
- <execution>
- <goals>
- <goal>build</goal>
- <goal>generate-code</goal>
- <goal>generate-code-tests</goal>
- <goal>native-image-agent</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>${compiler-plugin.version}</version>
- <configuration>
- <parameters>true</parameters>
- </configuration>
- </plugin>
- <plugin>
- <artifactId>maven-surefire-plugin</artifactId>
- <version>${surefire-plugin.version}</version>
- <configuration>
- <systemPropertyVariables>
- <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
- <maven.home>${maven.home}</maven.home>
- </systemPropertyVariables>
- </configuration>
- </plugin>
- <plugin>
- <artifactId>maven-failsafe-plugin</artifactId>
- <version>${surefire-plugin.version}</version>
- <executions>
- <execution>
- <goals>
- <goal>integration-test</goal>
- <goal>verify</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <systemPropertyVariables>
- <native.image.path>${project.build.directory}/${project.build.finalName}-runner</native.image.path>
- <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
- <maven.home>${maven.home}</maven.home>
- </systemPropertyVariables>
- </configuration>
- </plugin>
- </plugins>
- </build>
- <profiles>
- <profile>
- <id>native</id>
- <activation>
- <property>
- <name>native</name>
- </property>
- </activation>
- <properties>
- <skipITs>false</skipITs>
- <quarkus.native.enabled>true</quarkus.native.enabled>
- </properties>
- </profile>
- </profiles>
- </project>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement