Skip to content
Snippets Groups Projects
Verified Commit 71f772f4 authored by Jan Kožusznik's avatar Jan Kožusznik
Browse files

reduce to client code.

parent fd4a3330
Branches
No related merge requests found
...@@ -5,95 +5,40 @@ ...@@ -5,95 +5,40 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>java2-koz01</groupId> <groupId>java2-koz01</groupId>
<artifactId>lab12</artifactId> <artifactId>rest-client</artifactId>
<version>1.0.0-SNAPSHOT</version> <version>1.0.0-SNAPSHOT</version>
<properties> <properties>
<compiler-plugin.version>3.8.1</compiler-plugin.version> <compiler-plugin.version>3.8.1</compiler-plugin.version>
<maven.compiler.parameters>true</maven.compiler.parameters> <maven.compiler.parameters>true</maven.compiler.parameters>
<maven.compiler.source>14</maven.compiler.source> <maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>14</maven.compiler.target> <maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<quarkus-plugin.version>1.13.2.Final</quarkus-plugin.version> <surefire-plugin.version>3.0.0</surefire-plugin.version>
<quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id> <lombok.version>1.18.26</lombok.version>
<quarkus.platform.group-id>io.quarkus.platform</quarkus.platform.group-id> <log4j.version>2.20.0</log4j.version>
<quarkus.platform.version>2.8.0.Final</quarkus.platform.version>
<surefire-plugin.version>3.0.0-M5</surefire-plugin.version>
<lombok.version>1.18.24</lombok.version>
<log4j.version>2.17.2</log4j.version>
</properties> </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> <dependencies>
<dependency> <dependency>
<groupId>org.openjfx</groupId> <groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId> <artifactId>javafx-controls</artifactId>
<version>14</version> <version>17.0.2</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.openjfx</groupId> <groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId> <artifactId>javafx-fxml</artifactId>
<version>14</version> <version>17.0.2</version>
</dependency> </dependency>
<dependency>
<groupId>io.quarkus</groupId> <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.jakarta.rs/jackson-jakarta-rs-json-provider -->
<artifactId>quarkus-hibernate-orm</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-resteasy-jsonb</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-hibernate-orm-rest-data-panache</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-hibernate-orm-panache</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-resteasy</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-jdbc-h2</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>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-config-yaml</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/io.quarkus/quarkus-jackson -->
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider -->
<dependency> <dependency>
<groupId>com.fasterxml.jackson.jaxrs</groupId> <groupId>com.fasterxml.jackson.jakarta.rs</groupId>
<artifactId>jackson-jaxrs-json-provider</artifactId> <artifactId>jackson-jakarta-rs-json-provider</artifactId>
<version>2.14.2</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
...@@ -104,6 +49,7 @@ ...@@ -104,6 +49,7 @@
<dependency> <dependency>
<groupId>org.apache.logging.log4j</groupId> <groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId> <artifactId>log4j-api</artifactId>
<version>${log4j.version}</version>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api --> <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->
<dependency> <dependency>
...@@ -115,26 +61,19 @@ ...@@ -115,26 +61,19 @@
<dependency> <dependency>
<groupId>org.apache.cxf</groupId> <groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-rs-client</artifactId> <artifactId>cxf-rt-rs-client</artifactId>
<version>3.5.2</version> <version>4.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/jakarta.ws.rs/jakarta.ws.rs-api -->
<dependency>
<groupId>jakarta.ws.rs</groupId>
<artifactId>jakarta.ws.rs-api</artifactId>
<version>3.1.0</version>
</dependency> </dependency>
</dependencies> </dependencies>
<build> <build>
<plugins> <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>
</goals>
</execution>
</executions>
</plugin>
<plugin> <plugin>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
<version>${compiler-plugin.version}</version> <version>${compiler-plugin.version}</version>
......
package java2.lab12.client; package java2.lab12.client;
import javax.xml.bind.annotation.XmlRootElement;
import jakarta.xml.bind.annotation.XmlRootElement;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
......
package java2.lab12.server;
import io.quarkus.runtime.Quarkus;
import lombok.extern.log4j.Log4j2;
@Log4j2
public class App {
public static void main(String[] args) {
log.info("Running");
Quarkus.run(args);
}
}
package java2.lab12.server;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.xml.bind.annotation.XmlRootElement;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@XmlRootElement
@Entity
@ToString
public class Course {
@Id
@Getter
@Setter
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Getter
@Setter
private String name;
@Getter
@Setter
private String description;
@Getter
@Setter
private int credits;
@Getter
@Setter
private int semester;
}
package java2.lab12.server;
import io.quarkus.hibernate.orm.panache.PanacheRepository;
import javax.enterprise.context.ApplicationScoped;
@ApplicationScoped
public class CourseRepository implements PanacheRepository<Course> {
}
package java2.lab12.server;
import java.util.Collection;
import javax.inject.Inject;
import javax.transaction.Transactional;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import lombok.extern.log4j.Log4j2;
@Log4j2
@Path("/")
public class CourseResource {
// CDI
@Inject
CourseRepository courseRepository;
@GET
@Path("courses")
@Produces(MediaType.APPLICATION_JSON)
public Collection<Course> getCourses() {
return courseRepository.findAll().list();
}
@GET
@Path("course/{id}")
@Produces(MediaType.APPLICATION_JSON)
public Course getCourse(@PathParam("id") Long id) {
return courseRepository.findById(id);
}
@POST
@Path("course")
@Transactional
@Consumes(MediaType.APPLICATION_JSON)
public Long createCourse(Course course) {
log.info("Create course: {}", course);
Course temp = course;
courseRepository.persist(temp);
return temp.getId();
}
@PUT
@Path("course")
@Transactional
@Consumes(MediaType.APPLICATION_JSON)
public void updateCourse(Course course) {
log.info("Update course: {}", course);
var temp = courseRepository.findById(course.getId());
temp.setName(course.getName());
temp.setDescription(course.getDescription());
temp.setCredits(course.getCredits());
temp.setSemester(course.getSemester());
courseRepository.getEntityManager().merge(course);
return;
}
@DELETE
@Transactional
@Path("course/{id}")
@Produces(MediaType.TEXT_PLAIN)
public boolean deleteCourse(@PathParam("id") Long id) {
return courseRepository.deleteById(id);
}
}
package java2.lab12.server;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/hello")
public class ReactiveGreetingResource {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String hello() {
return "Hello RESTEasy";
}
}
\ No newline at end of file
...@@ -5,7 +5,7 @@ quarkus: ...@@ -5,7 +5,7 @@ quarkus:
datasource: datasource:
db-kind: h2 db-kind: h2
jdbc: jdbc:
url: jdbc:h2:./output/myDb;create=true url: jdbc:h2:./output/myDb
hibernate-orm: hibernate-orm:
log: log:
sql: true sql: true
......
package org.acme.getting.started;
import io.quarkus.test.junit.NativeImageTest;
@NativeImageTest
public class NativeReactiveGreetingResourceIT extends ReactiveGreetingResourceTest {
// Execute the same tests but in native mode.
}
\ No newline at end of file
package org.acme.getting.started;
import io.quarkus.test.junit.QuarkusTest;
import org.junit.jupiter.api.Test;
import static io.restassured.RestAssured.given;
import static org.hamcrest.CoreMatchers.is;
@QuarkusTest
public class ReactiveGreetingResourceTest {
@Test
public void testHelloEndpoint() {
given()
.when().get("/hello")
.then()
.statusCode(200)
.body(is("Hello RESTEasy"));
}
}
\ No newline at end of file
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment