From 20b975072605cf57a15ea224131bc1c7cecc323f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Ko=C5=BEusznik?= <jan@kozusznik.cz> Date: Thu, 23 Mar 2023 14:52:39 +0100 Subject: [PATCH] Extract server --- pom.xml | 36 ++- .../java/java2/lab12/client/AppJavaFX.java | 9 - src/main/java/java2/lab12/client/Course.java | 32 --- .../java2/lab12/client/TableViewSample.java | 207 ------------------ src/main/resources/application.yaml | 2 +- src/main/resources/log4j2.xml | 2 +- 6 files changed, 15 insertions(+), 273 deletions(-) delete mode 100644 src/main/java/java2/lab12/client/AppJavaFX.java delete mode 100644 src/main/java/java2/lab12/client/Course.java delete mode 100644 src/main/java/java2/lab12/client/TableViewSample.java diff --git a/pom.xml b/pom.xml index ff026ad..b2e03d7 100644 --- a/pom.xml +++ b/pom.xml @@ -5,22 +5,21 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <groupId>java2-koz01</groupId> - <artifactId>lab12</artifactId> + <artifactId>rest-server</artifactId> <version>1.0.0-SNAPSHOT</version> <properties> - <compiler-plugin.version>3.8.1</compiler-plugin.version> + <compiler-plugin.version>3.11.0</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> + <quarkus.platform.version>2.16.5.Final</quarkus.platform.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> @@ -37,12 +36,12 @@ <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> @@ -88,12 +87,7 @@ <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> - <groupId>com.fasterxml.jackson.jaxrs</groupId> - <artifactId>jackson-jaxrs-json-provider</artifactId> - </dependency> - + <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> @@ -111,12 +105,8 @@ <artifactId>log4j-core</artifactId> <version>${log4j.version}</version> </dependency> - <!-- https://mvnrepository.com/artifact/org.apache.cxf/cxf-rt-rs-client --> - <dependency> - <groupId>org.apache.cxf</groupId> - <artifactId>cxf-rt-rs-client</artifactId> - <version>3.5.2</version> - </dependency> + + </dependencies> <build> <plugins> diff --git a/src/main/java/java2/lab12/client/AppJavaFX.java b/src/main/java/java2/lab12/client/AppJavaFX.java deleted file mode 100644 index d2b7376..0000000 --- a/src/main/java/java2/lab12/client/AppJavaFX.java +++ /dev/null @@ -1,9 +0,0 @@ -package java2.lab12.client; - - -public class AppJavaFX { - - public static void main(String[] args) { - TableViewSample.main(args); - } -} diff --git a/src/main/java/java2/lab12/client/Course.java b/src/main/java/java2/lab12/client/Course.java deleted file mode 100644 index 80e7c76..0000000 --- a/src/main/java/java2/lab12/client/Course.java +++ /dev/null @@ -1,32 +0,0 @@ -package java2.lab12.client; - -import javax.xml.bind.annotation.XmlRootElement; - -import lombok.Getter; -import lombok.Setter; -import lombok.ToString; - -@XmlRootElement -@ToString -public class Course { - - @Setter - @Getter - private Long id; - - @Getter - @Setter - private String name; - - @Getter - @Setter - private String description; - - @Getter - @Setter - private String credits; - - @Getter - @Setter - private String semester; -} diff --git a/src/main/java/java2/lab12/client/TableViewSample.java b/src/main/java/java2/lab12/client/TableViewSample.java deleted file mode 100644 index cbb1718..0000000 --- a/src/main/java/java2/lab12/client/TableViewSample.java +++ /dev/null @@ -1,207 +0,0 @@ -package java2.lab12.client; - -import java.util.Collection; -import java.util.Collections; - -import javafx.application.Application; -import javafx.beans.property.ReadOnlyObjectWrapper; -import javafx.collections.FXCollections; -import javafx.collections.ObservableList; -import javafx.event.ActionEvent; -import javafx.event.EventHandler; -import javafx.geometry.Insets; -import javafx.scene.Group; -import javafx.scene.Scene; -import javafx.scene.control.Button; -import javafx.scene.control.Label; -import javafx.scene.control.TableCell; -import javafx.scene.control.TableColumn; -import javafx.scene.control.TableColumn.CellEditEvent; -import javafx.scene.control.TableView; -import javafx.scene.control.TextField; -import javafx.scene.control.cell.PropertyValueFactory; -import javafx.scene.control.cell.TextFieldTableCell; -import javafx.scene.layout.HBox; -import javafx.scene.layout.VBox; -import javafx.scene.text.Font; -import javafx.stage.Stage; -import javafx.stage.WindowEvent; - -public class TableViewSample extends Application { - - - private TableView<Course> table = new TableView<>(); - - private final ObservableList<Course> data; - - final HBox hb = new HBox(); - private TextField addName; - private TextField addDescription; - private TextField addCredits; - private TextField addSemester; - - public static void main(String[] args) { - launch(args); - } - - public TableViewSample() { - data = FXCollections.observableArrayList(getCourses()); - } - - @SuppressWarnings("unchecked") - @Override - public void start(Stage stage) { - Scene scene = new Scene(new Group()); - stage.setTitle("RESTfull Webservice - Course Book"); - stage.setWidth(500); - stage.setHeight(550); - - final Label label = new Label("Course Book"); - label.setFont(new Font("Arial", 20)); - - table.setEditable(true); - table.setItems(data); - - TableColumn<Course, String> nameCol = constructColumn("Name", - "name", this::handleOnEditCommitName); - TableColumn<Course, String> desriptionCol = constructColumn("Description", - "description", this::handleOnEditCommitDescription); - TableColumn<Course, String> creditsCol = constructColumn("Credits", - "credits", this::handleOnEditCommitCredits); - TableColumn<Course, String> semesterCol = constructColumn("Semester", - "semester", this::handleOnEditCommitSemester); - - TableColumn<Course, Course> actionCol = new TableColumn<>(""); - actionCol.setCellValueFactory(param -> new ReadOnlyObjectWrapper<>( - param.getValue())); - actionCol.setCellFactory(param -> new TableCell<>() { - - private final Button deleteButton = new Button("Delete"); - - @Override - protected void updateItem(Course course, boolean empty) { - super.updateItem(course, empty); - - if (course == null) { - setGraphic(null); - return; - } - - setGraphic(deleteButton); - deleteButton.setOnAction(event -> handleOnDelete(event, course)); - } - }); - - table.getColumns().addAll(nameCol, desriptionCol, creditsCol, - semesterCol, actionCol); - - - addName = constructTextField(nameCol, "Name"); - addDescription = constructTextField(desriptionCol, "Description"); - addCredits = constructTextField(creditsCol, "Credits"); - addSemester = constructTextField(creditsCol, "Semester"); - final Button addButton = new Button("Add"); - addButton.setOnAction(this::handleOnAdd); - - hb.getChildren().addAll(addName, addDescription, addCredits, - addSemester, addButton); - hb.setSpacing(3); - - final VBox vbox = new VBox(); - vbox.setSpacing(5); - vbox.setPadding(new Insets(10, 0, 0, 10)); - vbox.getChildren().addAll(label, table, hb); - - ((Group) scene.getRoot()).getChildren().addAll(vbox); - stage.setScene(scene); - - stage.show(); - stage.setOnCloseRequest(this::exitProgram); - } - - private TextField constructTextField(TableColumn<Course, String> column, - String string) - { - TextField result = new TextField(); - result.setPromptText(string); - result.setMaxWidth(column.getPrefWidth()); - return result; - } - - private TableColumn<Course, String> constructColumn(String name, - String propertyName, EventHandler<CellEditEvent<Course, String>> callback) - { - TableColumn<Course, String> col = new TableColumn<>(name); - col.setMinWidth(100); - col.setCellValueFactory(new PropertyValueFactory<>(propertyName)); - col.setCellFactory(TextFieldTableCell.forTableColumn()); - col.setOnEditCommit(callback); - return col; - } - - private void handleOnAdd(@SuppressWarnings("unused") ActionEvent e) { - Course p = new Course(); - p.setName(addName.getText()); - p.setDescription(addDescription.getText()); - p.setCredits(addCredits.getText()); - p.setSemester(addSemester.getText()); - data.add(p); - createCourse(p); - addName.clear(); - addDescription.clear(); - addCredits.clear(); - addSemester.clear(); - } - - private void handleOnDelete(@SuppressWarnings("unused") ActionEvent event, - Course course) - { - data.remove(course); - removeCourse(course); - } - - private void handleOnEditCommitName(CellEditEvent<Course, String> t) { - Course p = t.getTableView().getItems().get(t.getTablePosition().getRow()); - p.setName(t.getNewValue()); - updateCourse(p); - } - - private void handleOnEditCommitDescription(CellEditEvent<Course, String> t) { - Course p = t.getTableView().getItems().get(t.getTablePosition().getRow()); - p.setDescription(t.getNewValue()); - updateCourse(p); - } - - private void handleOnEditCommitCredits(CellEditEvent<Course, String> t) { - Course p = t.getTableView().getItems().get(t.getTablePosition().getRow()); - p.setCredits(t.getNewValue()); - updateCourse(p); - } - - private void handleOnEditCommitSemester(CellEditEvent<Course, String> t) { - Course p = t.getTableView().getItems().get(t.getTablePosition().getRow()); - p.setSemester(t.getNewValue()); - updateCourse(p); - } - - private void exitProgram(WindowEvent evt) { - - System.exit(0); - } - - private Collection<Course> getCourses() { - return Collections.emptyList(); - } - - private void createCourse(Course course) { - // TODO - } - - private void updateCourse(Course course) { - // TODO - } - - private void removeCourse(Course course) { - // TODO - } -} \ No newline at end of file diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index fa09f6b..f0cbc1a 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -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 diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml index f87b717..d27d880 100644 --- a/src/main/resources/log4j2.xml +++ b/src/main/resources/log4j2.xml @@ -1,6 +1,6 @@ <Configuration> <Appenders> - <File name="File" fileName="lab11.log"> + <File name="File" fileName="output/rest-server.log"> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" /> </File> -- GitLab