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