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
No related merge requests found
......@@ -5,95 +5,40 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>java2-koz01</groupId>
<artifactId>lab12</artifactId>
<artifactId>rest-client</artifactId>
<version>1.0.0-SNAPSHOT</version>
<properties>
<compiler-plugin.version>3.8.1</compiler-plugin.version>
<maven.compiler.parameters>true</maven.compiler.parameters>
<maven.compiler.source>14</maven.compiler.source>
<maven.compiler.target>14</maven.compiler.target>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<quarkus-plugin.version>1.13.2.Final</quarkus-plugin.version>
<quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id>
<quarkus.platform.group-id>io.quarkus.platform</quarkus.platform.group-id>
<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>
<surefire-plugin.version>3.0.0</surefire-plugin.version>
<lombok.version>1.18.26</lombok.version>
<log4j.version>2.20.0</log4j.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>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>14</version>
<version>17.0.2</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>14</version>
<version>17.0.2</version>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<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 -->
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.jakarta.rs/jackson-jakarta-rs-json-provider -->
<dependency>
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-json-provider</artifactId>
<groupId>com.fasterxml.jackson.jakarta.rs</groupId>
<artifactId>jackson-jakarta-rs-json-provider</artifactId>
<version>2.14.2</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
......@@ -104,6 +49,7 @@
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>${log4j.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->
<dependency>
......@@ -115,26 +61,19 @@
<dependency>
<groupId>org.apache.cxf</groupId>
<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>
</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>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>${compiler-plugin.version}</version>
......
package java2.lab12.client;
import javax.xml.bind.annotation.XmlRootElement;
import jakarta.xml.bind.annotation.XmlRootElement;
import lombok.Getter;
import lombok.Setter;
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:
datasource:
db-kind: h2
jdbc:
url: jdbc:h2:./output/myDb;create=true
url: jdbc:h2:./output/myDb
hibernate-orm:
log:
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