diff --git a/.gitignore b/.gitignore index 4ac6a26e889151007c0bf31fc0179b551871b986..9d80d85943aae8cee69606d2d5c3423fe19e06bd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ /target/ +/bin/ .settings/ .project .classpath diff --git a/build-and-run.sh b/build-and-run.sh new file mode 100755 index 0000000000000000000000000000000000000000..8e974fb1caac5798fcba1c03578d98bf16b5131f --- /dev/null +++ b/build-and-run.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +cd java2-lab02-common-v2 +mvn clean install +cd ../java2-lab02-db-v2 +mvn clean install +cd ../java2-lab02-file-v2 +mvn clean install +cd ../java2-lab02-v2 +mvn clean package +java --module-path target/java2-lab02-v2-0.0.1-SNAPHOST.jar:target/libs -m cz.vsb.fei.java2.lab02_module/lab.gui.App +cd .. diff --git a/java2-lab02-common-v2/.gitignore b/java2-lab02-common-v2/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..98b99a551e28559528e090cbfc676dcff9bd7def --- /dev/null +++ b/java2-lab02-common-v2/.gitignore @@ -0,0 +1,16 @@ +# Eclipse +.classpath +.project +.settings/ + +# Intellij +.idea/ +*.iml +*.iws + +# Mac +.DS_Store + +# Maven +log/ +target/ diff --git a/java2-lab02-common-v2/pom.xml b/java2-lab02-common-v2/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..291effa68b4c599a8b13d68bf9159e2a4092085d --- /dev/null +++ b/java2-lab02-common-v2/pom.xml @@ -0,0 +1,79 @@ +<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 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>cz.vsb.fei.java2</groupId> + <artifactId>java2-lab02-common-v2</artifactId> + <version>0.0.1-SNAPSHOT</version> + + <name>java2-lab02-common-v2</name> + + <packaging>jar</packaging> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <maven.compiler.release>21</maven.compiler.release> + <JUnit.version>5.11.0</JUnit.version> + <log4j.version>2.23.1</log4j.version> + <lombok.version>1.18.34</lombok.version> + </properties> + <dependencyManagement> + <dependencies> + <dependency> + <groupId>org.junit</groupId> + <artifactId>junit-bom</artifactId> + <version>${JUnit.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> + </dependencies> + </dependencyManagement> + + <dependencies> + <dependency> + <groupId>org.junit.jupiter</groupId> + <artifactId>junit-jupiter</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-core</artifactId> + <version>${log4j.version}</version> + </dependency> + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-api</artifactId> + <version>${log4j.version}</version> + </dependency> + <dependency> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + <version>${lombok.version}</version> + <scope>provided</scope> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.13.0</version> + <configuration> + <annotationProcessorPaths> + <path> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + <version>${lombok.version}</version> + </path> + </annotationProcessorPaths> + </configuration> + </plugin> + <plugin> + <artifactId>maven-surefire-plugin</artifactId> + <version>3.5.0</version> + </plugin> + </plugins> + </build> + +</project> diff --git a/src/main/java/lab/Score.java b/java2-lab02-common-v2/src/main/java/cz/vsb/fei/java2/lab02/common/Score.java similarity index 98% rename from src/main/java/lab/Score.java rename to java2-lab02-common-v2/src/main/java/cz/vsb/fei/java2/lab02/common/Score.java index 70d137ac13f30db887a2a8be3cbfafd2ff41ee73..cb962bdf72e3ae81b92bd0e20bd87ff74d9be3f5 100644 --- a/src/main/java/lab/Score.java +++ b/java2-lab02-common-v2/src/main/java/cz/vsb/fei/java2/lab02/common/Score.java @@ -1,4 +1,4 @@ -package lab; +package cz.vsb.fei.java2.lab02.common; import java.util.Random; diff --git a/java2-lab02-common-v2/src/main/java/cz/vsb/fei/java2/lab02/common/ScoreStorageInterface.java b/java2-lab02-common-v2/src/main/java/cz/vsb/fei/java2/lab02/common/ScoreStorageInterface.java new file mode 100644 index 0000000000000000000000000000000000000000..deb19b3972a81ffa7a3dbc68a512ac96666c4f7c --- /dev/null +++ b/java2-lab02-common-v2/src/main/java/cz/vsb/fei/java2/lab02/common/ScoreStorageInterface.java @@ -0,0 +1,15 @@ +package cz.vsb.fei.java2.lab02.common; + +import java.util.List; + +public interface ScoreStorageInterface { + + List<Score> getAll(); + + List<Score> getFirstTen(); + + void init(); + + void insertScore(Score score); + +} \ No newline at end of file diff --git a/java2-lab02-common-v2/src/main/java/module-info.java b/java2-lab02-common-v2/src/main/java/module-info.java new file mode 100644 index 0000000000000000000000000000000000000000..e9edf40111700e7315c7992a3c5f0eee930fb438 --- /dev/null +++ b/java2-lab02-common-v2/src/main/java/module-info.java @@ -0,0 +1,5 @@ +module cz.vsb.fei.java2.lab02.common_module { + requires static lombok; + requires org.apache.logging.log4j; + exports cz.vsb.fei.java2.lab02.common; +} \ No newline at end of file diff --git a/java2-lab02-common-v2/src/test/java/cz/vsb/fei/java2/lab01/AppTest.java b/java2-lab02-common-v2/src/test/java/cz/vsb/fei/java2/lab01/AppTest.java new file mode 100644 index 0000000000000000000000000000000000000000..9102a3af357bbfe62c176afc996a511c63fde18c --- /dev/null +++ b/java2-lab02-common-v2/src/test/java/cz/vsb/fei/java2/lab01/AppTest.java @@ -0,0 +1,19 @@ +package cz.vsb.fei.java2.lab01; + +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; + +/** + * Unit test for simple App. + */ +class AppTest { + + /** + * Rigorous Test :-) + */ + @Test + void shouldAnswerWithTrue() { + assertTrue(true); + } +} diff --git a/java2-lab02-db-v2/.gitignore b/java2-lab02-db-v2/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..98b99a551e28559528e090cbfc676dcff9bd7def --- /dev/null +++ b/java2-lab02-db-v2/.gitignore @@ -0,0 +1,16 @@ +# Eclipse +.classpath +.project +.settings/ + +# Intellij +.idea/ +*.iml +*.iws + +# Mac +.DS_Store + +# Maven +log/ +target/ diff --git a/java2-lab02-db-v2/pom.xml b/java2-lab02-db-v2/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..a706302a19af5488fe654f6697dd959b85873bde --- /dev/null +++ b/java2-lab02-db-v2/pom.xml @@ -0,0 +1,90 @@ +<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 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>cz.vsb.fei.java2</groupId> + <artifactId>java2-lab02-db-v2</artifactId> + <version>0.0.1-SNAPSHOT</version> + + <name>java2-lab02-db-v2</name> + + <packaging>jar</packaging> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <maven.compiler.release>21</maven.compiler.release> + <JUnit.version>5.11.0</JUnit.version> + <log4j.version>2.23.1</log4j.version> + <lombok.version>1.18.34</lombok.version> + </properties> + <dependencyManagement> + <dependencies> + <dependency> + <groupId>org.junit</groupId> + <artifactId>junit-bom</artifactId> + <version>${JUnit.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> + </dependencies> + </dependencyManagement> + + <dependencies> + <dependency> + <groupId>cz.vsb.fei.java2</groupId> + <artifactId>java2-lab02-common-v2</artifactId> + <version>0.0.1-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>com.h2database</groupId> + <artifactId>h2</artifactId> + <version>2.3.232</version> + </dependency> + + <dependency> + <groupId>org.junit.jupiter</groupId> + <artifactId>junit-jupiter</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-core</artifactId> + <version>${log4j.version}</version> + </dependency> + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-api</artifactId> + <version>${log4j.version}</version> + </dependency> + <dependency> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + <version>${lombok.version}</version> + <scope>provided</scope> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.13.0</version> + <configuration> + <annotationProcessorPaths> + <path> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + <version>${lombok.version}</version> + </path> + </annotationProcessorPaths> + </configuration> + </plugin> + <plugin> + <artifactId>maven-surefire-plugin</artifactId> + <version>3.5.0</version> + </plugin> + </plugins> + </build> + +</project> diff --git a/src/main/java/lab/DbConnector.java b/java2-lab02-db-v2/src/main/java/cz/vsb/fei/java2/lab02/db/DbConnector.java similarity index 85% rename from src/main/java/lab/DbConnector.java rename to java2-lab02-db-v2/src/main/java/cz/vsb/fei/java2/lab02/db/DbConnector.java index fda38fd11d6f16c8af6f71857e9882781121423e..4f8c076a132951c88211aa4b5739bab926841461 100644 --- a/src/main/java/lab/DbConnector.java +++ b/java2-lab02-db-v2/src/main/java/cz/vsb/fei/java2/lab02/db/DbConnector.java @@ -1,4 +1,4 @@ -package lab; +package cz.vsb.fei.java2.lab02.db; import java.sql.Connection; import java.sql.DriverManager; @@ -9,14 +9,19 @@ import java.sql.Statement; import java.util.ArrayList; import java.util.List; -public class DbConnector { +import cz.vsb.fei.java2.lab02.common.Score; +import cz.vsb.fei.java2.lab02.common.ScoreStorageInterface; + +public class DbConnector implements ScoreStorageInterface { private static final String JDBC_CONECTIN_STRING = "jdbc:h2:file:./scoreDB"; + @Override public List<Score> getAll() { return queryScore("select * from scores;"); } + @Override public List<Score> getFirstTen() { return queryScore("select * from scores order by points desc limit 10;"); } @@ -35,7 +40,8 @@ public class DbConnector { return result; } - public void createTable() { + @Override + public void init() { try (Connection con = DriverManager.getConnection(JDBC_CONECTIN_STRING); Statement stm = con.createStatement();) { stm.executeUpdate("CREATE TABLE if not exists scores (nick VARCHAR(50) NOT NULL, points INT NOT NULL);"); @@ -44,6 +50,7 @@ public class DbConnector { } } + @Override public void insertScore(Score score) { try (Connection con = DriverManager.getConnection(JDBC_CONECTIN_STRING); PreparedStatement stm = con.prepareStatement("INSERT INTO scores VALUES (?, ?)");) { diff --git a/java2-lab02-db-v2/src/main/java/module-info.java b/java2-lab02-db-v2/src/main/java/module-info.java new file mode 100644 index 0000000000000000000000000000000000000000..b10ea8f1684ce4bf06a27bf5cb036b4515a18ee8 --- /dev/null +++ b/java2-lab02-db-v2/src/main/java/module-info.java @@ -0,0 +1,11 @@ +import cz.vsb.fei.java2.lab02.common.ScoreStorageInterface; +import cz.vsb.fei.java2.lab02.db.DbConnector; + +module cz.vsb.fei.java2.lab02.db_module { + requires static lombok; + requires org.apache.logging.log4j; + requires transitive cz.vsb.fei.java2.lab02.common_module; + requires java.sql; + exports cz.vsb.fei.java2.lab02.db; + provides ScoreStorageInterface with cz.vsb.fei.java2.lab02.db.DbConnector; +} \ No newline at end of file diff --git a/java2-lab02-db-v2/src/main/resources/log4j2.xml b/java2-lab02-db-v2/src/main/resources/log4j2.xml new file mode 100644 index 0000000000000000000000000000000000000000..acb3514078f6fb73f4f09ffd7a172b47f184e961 --- /dev/null +++ b/java2-lab02-db-v2/src/main/resources/log4j2.xml @@ -0,0 +1,13 @@ +<Configuration> + <Appenders> + <Console name="Console"> + <PatternLayout + pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" /> + </Console> + </Appenders> + <Loggers> + <Root level="info"> + <AppenderRef ref="Console"></AppenderRef> + </Root> + </Loggers> +</Configuration> diff --git a/java2-lab02-file-v2/.gitignore b/java2-lab02-file-v2/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..98b99a551e28559528e090cbfc676dcff9bd7def --- /dev/null +++ b/java2-lab02-file-v2/.gitignore @@ -0,0 +1,16 @@ +# Eclipse +.classpath +.project +.settings/ + +# Intellij +.idea/ +*.iml +*.iws + +# Mac +.DS_Store + +# Maven +log/ +target/ diff --git a/java2-lab02-file-v2/pom.xml b/java2-lab02-file-v2/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..72f41c7403fec34109af5ef3d4b34ff85b8b7bed --- /dev/null +++ b/java2-lab02-file-v2/pom.xml @@ -0,0 +1,84 @@ +<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 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>cz.vsb.fei.java2</groupId> + <artifactId>java2-lab02-file-v2</artifactId> + <version>1.0-SNAPSHOT</version> + + <name>java2-lab02-file-v2</name> + + <packaging>jar</packaging> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <maven.compiler.release>21</maven.compiler.release> + <JUnit.version>5.11.0</JUnit.version> + <log4j.version>2.23.1</log4j.version> + <lombok.version>1.18.34</lombok.version> + </properties> + <dependencyManagement> + <dependencies> + <dependency> + <groupId>org.junit</groupId> + <artifactId>junit-bom</artifactId> + <version>${JUnit.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> + </dependencies> + </dependencyManagement> + + <dependencies> + <dependency> + <groupId>cz.vsb.fei.java2</groupId> + <artifactId>java2-lab02-common-v2</artifactId> + <version>0.0.1-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.junit.jupiter</groupId> + <artifactId>junit-jupiter</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-core</artifactId> + <version>${log4j.version}</version> + </dependency> + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-api</artifactId> + <version>${log4j.version}</version> + </dependency> + <dependency> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + <version>${lombok.version}</version> + <scope>provided</scope> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.13.0</version> + <configuration> + <annotationProcessorPaths> + <path> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + <version>${lombok.version}</version> + </path> + </annotationProcessorPaths> + </configuration> + </plugin> + <plugin> + <artifactId>maven-surefire-plugin</artifactId> + <version>3.5.0</version> + </plugin> + </plugins> + </build> + +</project> diff --git a/java2-lab02-file-v2/src/main/java/cz/vsb/fei/file/FileStorage.java b/java2-lab02-file-v2/src/main/java/cz/vsb/fei/file/FileStorage.java new file mode 100644 index 0000000000000000000000000000000000000000..291811e791de17b965a9b609bfdbaaf53dad998e --- /dev/null +++ b/java2-lab02-file-v2/src/main/java/cz/vsb/fei/file/FileStorage.java @@ -0,0 +1,57 @@ +package cz.vsb.fei.file; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.file.StandardOpenOption; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import java.util.stream.Stream; + +import cz.vsb.fei.java2.lab02.common.Score; +import cz.vsb.fei.java2.lab02.common.ScoreStorageInterface; + +public class FileStorage implements ScoreStorageInterface { + + private static final String SCORE_FILE_NAME = "scores.csv"; + + @Override + public List<Score> getAll() { + if (Files.exists(Paths.get(SCORE_FILE_NAME))) { + try (Stream<String> lines = Files.lines(Paths.get(SCORE_FILE_NAME))) { + List<Score> result = lines.map(line -> line.split(";")) + .map(parts -> new Score(parts[0], Integer.parseInt(parts[1]))).toList(); + return new ArrayList<>(result); + } catch (IOException e) { + e.printStackTrace(); + } + } + return new ArrayList<>(); + } + + @Override + public List<Score> getFirstTen() { + List<Score> all = getAll(); + Collections.sort(all, Comparator.comparing(Score::getPoints).reversed()); + return all.subList(0, 10); + } + + @Override + public void init() { + /* noting to do */ + } + + @Override + public void insertScore(Score score) { + List<Score> all = getAll(); + all.add(score); + List<String> lines = all.stream().map(s -> String.format("%s;%d", s.getName(), s.getPoints())).toList(); + try { + Files.write(Paths.get(SCORE_FILE_NAME), lines, StandardOpenOption.CREATE); + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff --git a/java2-lab02-file-v2/src/main/java/module-info.java b/java2-lab02-file-v2/src/main/java/module-info.java new file mode 100644 index 0000000000000000000000000000000000000000..cff2f09f3af4cba1cb0d9b11015f44f32c3a0f8a --- /dev/null +++ b/java2-lab02-file-v2/src/main/java/module-info.java @@ -0,0 +1,9 @@ +import cz.vsb.fei.java2.lab02.common.ScoreStorageInterface; + +module cz.vsb.fei.file_module { + requires static lombok; + requires org.apache.logging.log4j; + requires transitive cz.vsb.fei.java2.lab02.common_module; + exports cz.vsb.fei.file; + provides ScoreStorageInterface with cz.vsb.fei.file.FileStorage; +} \ No newline at end of file diff --git a/java2-lab02-v2/.gitignore b/java2-lab02-v2/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..b83d22266ac8aa2f8df2edef68082c789727841d --- /dev/null +++ b/java2-lab02-v2/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/java2-lab02-v2/pom.xml b/java2-lab02-v2/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..302abdbb8f0c8655ddd867c1d1d8d81e23b304d7 --- /dev/null +++ b/java2-lab02-v2/pom.xml @@ -0,0 +1,158 @@ +<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 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>cz.vsb.fei.java2</groupId> + <artifactId>java2-lab02-v2</artifactId> + <version>0.0.1-SNAPHOST</version> + <name>java2-lab02-v2</name> + <packaging>jar</packaging> + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <maven.compiler.source>21</maven.compiler.source> + <maven.compiler.target>21</maven.compiler.target> + </properties> + <dependencies> + <dependency> + <groupId>org.openjfx</groupId> + <artifactId>javafx-controls</artifactId> + <version>23</version> + </dependency> + <dependency> + <groupId>org.openjfx</groupId> + <artifactId>javafx-fxml</artifactId> + <version>23</version> + </dependency> + <!-- + https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api --> + <dependency> + <groupId>org.junit.jupiter</groupId> + <artifactId>junit-jupiter-api</artifactId> + <version>5.11.0</version> + <scope>test</scope> + </dependency> + <!-- + https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-engine --> + <dependency> + <groupId>org.junit.jupiter</groupId> + <artifactId>junit-jupiter-engine</artifactId> + <version>5.11.0</version> + <scope>test</scope> + </dependency> + <!-- + https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-params --> + <dependency> + <groupId>org.junit.jupiter</groupId> + <artifactId>junit-jupiter-params</artifactId> + <version>5.11.0</version> + <scope>test</scope> + </dependency> + <!-- https://mvnrepository.com/artifact/org.reflections/reflections --> + <dependency> + <groupId>org.reflections</groupId> + <artifactId>reflections</artifactId> + <version>0.10.2</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.hamcrest</groupId> + <artifactId>hamcrest</artifactId> + <version>3.0</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>cz.vsb.fei.java2</groupId> + <artifactId>java2-lab02-common-v2</artifactId> + <version>0.0.1-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>cz.vsb.fei.java2</groupId> + <artifactId>java2-lab02-db-v2</artifactId> + <version>0.0.1-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>cz.vsb.fei.java2</groupId> + <artifactId>java2-lab02-file-v2</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + </dependencies> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.13.0</version> + <configuration> + <failOnError>false</failOnError> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-dependency-plugin</artifactId> + <version>3.8.1</version> + <executions> + <!-- Setup that goal copy-dependencies should be + automatically executed during phase package--> + <execution> + <id>copy-dependencies</id> + <phase>package</phase> + <goals> + <goal>copy-dependencies</goal> + </goals> + <configuration> + <!--Specify where should be dependencies (libraries) copied--> + <outputDirectory>${project.build.directory}/libs</outputDirectory> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jar-plugin</artifactId> + <version>3.4.2</version> + <configuration> + <archive> + <!--Automatically create and add file MANIFEST.MF into jar and set specified properties--> + <manifest> + <addClasspath>true</addClasspath> + <classpathPrefix>libs/</classpathPrefix> + <mainClass>lab.gui.App</mainClass> + </manifest> + </archive> + </configuration> + </plugin> + + </plugins> + <pluginManagement> + <plugins> + <!-- Ignore/Execute plugin execution in Eclipse (error of m2e + eclipse plugin) --> + <plugin> + <groupId>org.eclipse.m2e</groupId> + <artifactId>lifecycle-mapping</artifactId> + <version>1.0.0</version> + <configuration> + <lifecycleMappingMetadata> + <pluginExecutions> + <!-- copy-dependency plugin --> + <pluginExecution> + <pluginExecutionFilter> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-dependency-plugin</artifactId> + <versionRange>[1.0.0,)</versionRange> + <goals> + <goal>copy-dependencies</goal> + </goals> + </pluginExecutionFilter> + <action> + <ignore /> + </action> + </pluginExecution> + </pluginExecutions> + </lifecycleMappingMetadata> + </configuration> + </plugin> + </plugins> + </pluginManagement> + </build> +</project> diff --git a/java2-lab02-v2/scores.csv b/java2-lab02-v2/scores.csv new file mode 100644 index 0000000000000000000000000000000000000000..59e2fa85512ceada42ddd4897b21951dff9d66a8 --- /dev/null +++ b/java2-lab02-v2/scores.csv @@ -0,0 +1,3 @@ +ScreenSage;256 +EmojiEnthusiast;183 +EmojiEnthusiast;163 diff --git a/java2-lab02-v2/src/main/java/lab/ScoreStorageFactory.java b/java2-lab02-v2/src/main/java/lab/ScoreStorageFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..b613d07f62f9d822b12b7f943d596e6e0adfee2f --- /dev/null +++ b/java2-lab02-v2/src/main/java/lab/ScoreStorageFactory.java @@ -0,0 +1,39 @@ +package lab; + +import java.util.ArrayList; +import java.util.List; +import java.util.NoSuchElementException; +import java.util.Random; +import java.util.ServiceLoader; + +import cz.vsb.fei.java2.lab02.common.ScoreStorageInterface; +import javafx.scene.control.Alert; +import javafx.scene.control.ButtonType; +import javafx.stage.Modality; +import javafx.scene.control.Alert.AlertType; + +public class ScoreStorageFactory { + + private static ScoreStorageInterface instance; + + private ScoreStorageFactory() { + /* hide public one constructor */ + } + + public static ScoreStorageInterface getInstance() { + if (instance == null) { + List<ScoreStorageInterface> availableImplementations = new ArrayList<>(); + ServiceLoader.load(ScoreStorageInterface.class).forEach(availableImplementations::add); + if (availableImplementations.isEmpty()) { + throw new NoSuchElementException( + "Service loader did not find any implementation of interface ScoreStorageInterface."); + } + instance = availableImplementations.get(new Random().nextInt(availableImplementations.size())); + Alert info = new Alert(AlertType.INFORMATION, + String.format("Storage %s selected.", instance.getClass().getName()), ButtonType.OK); + info.initModality(Modality.WINDOW_MODAL); + info.showAndWait(); + } + return instance; + } +} diff --git a/src/main/java/lab/Collisionable.java b/java2-lab02-v2/src/main/java/lab/game/Collisionable.java similarity index 91% rename from src/main/java/lab/Collisionable.java rename to java2-lab02-v2/src/main/java/lab/game/Collisionable.java index 40a81570906acfe0a433fcda9f2bd47757b7cdf6..cf0bcdf8d4599ae18a428362a81c16c429fc1b8b 100644 --- a/src/main/java/lab/Collisionable.java +++ b/java2-lab02-v2/src/main/java/lab/game/Collisionable.java @@ -1,4 +1,4 @@ -package lab; +package lab.game; import javafx.geometry.Rectangle2D; diff --git a/src/main/java/lab/DeadListener.java b/java2-lab02-v2/src/main/java/lab/game/DeadListener.java similarity index 81% rename from src/main/java/lab/DeadListener.java rename to java2-lab02-v2/src/main/java/lab/game/DeadListener.java index 1a180021d22ecdf365ccc787a085cabfd2f17b93..8afff386a6bfe0b9b434ae7f4d742105a5a1aa18 100644 --- a/src/main/java/lab/DeadListener.java +++ b/java2-lab02-v2/src/main/java/lab/game/DeadListener.java @@ -1,4 +1,4 @@ -package lab; +package lab.game; @FunctionalInterface public interface DeadListener { diff --git a/src/main/java/lab/Difficult.java b/java2-lab02-v2/src/main/java/lab/game/Difficult.java similarity index 93% rename from src/main/java/lab/Difficult.java rename to java2-lab02-v2/src/main/java/lab/game/Difficult.java index 6186f2776225b25fed0029b5a39512e3ea6d8149..df2ee98f588b87503563f8da79cb2f6a1062ef79 100644 --- a/src/main/java/lab/Difficult.java +++ b/java2-lab02-v2/src/main/java/lab/game/Difficult.java @@ -1,4 +1,4 @@ -package lab; +package lab.game; public enum Difficult { EASY(2), MEDIUM(5), HARD(10); diff --git a/src/main/java/lab/DrawableSimulable.java b/java2-lab02-v2/src/main/java/lab/game/DrawableSimulable.java similarity index 90% rename from src/main/java/lab/DrawableSimulable.java rename to java2-lab02-v2/src/main/java/lab/game/DrawableSimulable.java index f4faccac252d8f76a835f0976a675c26844dc843..34ae489233fbc15e040993cf4f74b866c5025fd9 100644 --- a/src/main/java/lab/DrawableSimulable.java +++ b/java2-lab02-v2/src/main/java/lab/game/DrawableSimulable.java @@ -1,4 +1,4 @@ -package lab; +package lab.game; import javafx.scene.canvas.GraphicsContext; diff --git a/src/main/java/lab/DrawingThread.java b/java2-lab02-v2/src/main/java/lab/game/DrawingThread.java similarity index 97% rename from src/main/java/lab/DrawingThread.java rename to java2-lab02-v2/src/main/java/lab/game/DrawingThread.java index f32c4a6985d4d017d0dd818b8dd5ad7b57c8d26c..7ee5063805b54b99ca855cf4f4f0cec28d28008c 100644 --- a/src/main/java/lab/DrawingThread.java +++ b/java2-lab02-v2/src/main/java/lab/game/DrawingThread.java @@ -1,4 +1,4 @@ -package lab; +package lab.game; import javafx.animation.AnimationTimer; import javafx.scene.canvas.Canvas; diff --git a/src/main/java/lab/Level.java b/java2-lab02-v2/src/main/java/lab/game/Level.java similarity index 99% rename from src/main/java/lab/Level.java rename to java2-lab02-v2/src/main/java/lab/game/Level.java index af3bee7f44b47e82d134cb446498fb8412c1a100..ecc6ec43b7fb80c128f4e0c631766a9c09a75fd9 100644 --- a/src/main/java/lab/Level.java +++ b/java2-lab02-v2/src/main/java/lab/game/Level.java @@ -1,4 +1,4 @@ -package lab; +package lab.game; import java.util.ArrayList; import java.util.Comparator; diff --git a/src/main/java/lab/Monster.java b/java2-lab02-v2/src/main/java/lab/game/Monster.java similarity index 99% rename from src/main/java/lab/Monster.java rename to java2-lab02-v2/src/main/java/lab/game/Monster.java index 64b677ce229b8f5074d2d775d04a8ff4a4e95ee8..666e4ce7a25d58a9cd788d5ec5a9239b125b49cf 100644 --- a/src/main/java/lab/Monster.java +++ b/java2-lab02-v2/src/main/java/lab/game/Monster.java @@ -1,4 +1,4 @@ -package lab; +package lab.game; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/lab/MujListener.java b/java2-lab02-v2/src/main/java/lab/game/MujListener.java similarity index 88% rename from src/main/java/lab/MujListener.java rename to java2-lab02-v2/src/main/java/lab/game/MujListener.java index e7ba9fea16d46dd6d75370b2dc63ae91152e2afb..e506f3fe4706ac6f49d9748190a87e0b9b8213d0 100644 --- a/src/main/java/lab/MujListener.java +++ b/java2-lab02-v2/src/main/java/lab/game/MujListener.java @@ -1,4 +1,4 @@ -package lab; +package lab.game; public class MujListener implements DeadListener { diff --git a/src/main/java/lab/NicerObstacle.java b/java2-lab02-v2/src/main/java/lab/game/NicerObstacle.java similarity index 96% rename from src/main/java/lab/NicerObstacle.java rename to java2-lab02-v2/src/main/java/lab/game/NicerObstacle.java index a0a6c27249d75faa000874c7393d9a86dd10be21..02c42995be4edbc47e787e47bab9894e8b48e65e 100644 --- a/src/main/java/lab/NicerObstacle.java +++ b/java2-lab02-v2/src/main/java/lab/game/NicerObstacle.java @@ -1,4 +1,4 @@ -package lab; +package lab.game; import javafx.geometry.Point2D; import javafx.scene.canvas.GraphicsContext; diff --git a/src/main/java/lab/Obstacle.java b/java2-lab02-v2/src/main/java/lab/game/Obstacle.java similarity index 97% rename from src/main/java/lab/Obstacle.java rename to java2-lab02-v2/src/main/java/lab/game/Obstacle.java index 09a46c321649bd33a91df746d60c5d356e1eb187..03e6ba6544fb27fda5d880800f91eef42cd95aec 100644 --- a/src/main/java/lab/Obstacle.java +++ b/java2-lab02-v2/src/main/java/lab/game/Obstacle.java @@ -1,4 +1,4 @@ -package lab; +package lab.game; import javafx.geometry.Dimension2D; import javafx.geometry.Point2D; diff --git a/src/main/java/lab/Player.java b/java2-lab02-v2/src/main/java/lab/game/Player.java similarity index 99% rename from src/main/java/lab/Player.java rename to java2-lab02-v2/src/main/java/lab/game/Player.java index 93577d77259fced24dcdc78825708904bcdfabb6..547e9568532223de4f380c79bbe9b90d9becb5e0 100644 --- a/src/main/java/lab/Player.java +++ b/java2-lab02-v2/src/main/java/lab/game/Player.java @@ -1,4 +1,4 @@ -package lab; +package lab.game; import java.util.Random; diff --git a/src/main/java/lab/Routines.java b/java2-lab02-v2/src/main/java/lab/game/Routines.java similarity index 94% rename from src/main/java/lab/Routines.java rename to java2-lab02-v2/src/main/java/lab/game/Routines.java index 89fcce7f1e20229e95fbdc50c69e2b0bb695f060..47e508c666c9eee42ab601836b4706e8ff9b83e9 100644 --- a/src/main/java/lab/Routines.java +++ b/java2-lab02-v2/src/main/java/lab/game/Routines.java @@ -1,4 +1,4 @@ -package lab; +package lab.game; public class Routines { diff --git a/src/main/java/lab/WorldEntity.java b/java2-lab02-v2/src/main/java/lab/game/WorldEntity.java similarity index 97% rename from src/main/java/lab/WorldEntity.java rename to java2-lab02-v2/src/main/java/lab/game/WorldEntity.java index dd43f7c660d9a960c2f382043ee87a885c4e945c..20d26ada42ab1013ee2347029f3f9e030d643304 100644 --- a/src/main/java/lab/WorldEntity.java +++ b/java2-lab02-v2/src/main/java/lab/game/WorldEntity.java @@ -1,4 +1,4 @@ -package lab; +package lab.game; import javafx.geometry.Point2D; import javafx.scene.canvas.GraphicsContext; diff --git a/src/main/java/lab/App.java b/java2-lab02-v2/src/main/java/lab/gui/App.java similarity index 96% rename from src/main/java/lab/App.java rename to java2-lab02-v2/src/main/java/lab/gui/App.java index d9b260928b49e77c2ae47234b841b5ffbcad7609..fe54e7bfeb7cc1fb7d21f0292bf25e6934ffcb2b 100644 --- a/src/main/java/lab/App.java +++ b/java2-lab02-v2/src/main/java/lab/gui/App.java @@ -1,4 +1,4 @@ -package lab; +package lab.gui; import java.io.IOException; import java.net.URL; @@ -42,7 +42,7 @@ public class App extends Application { public void switchToGame(String name, int numberOfMonsters) throws IOException { // Construct a main window with a canvas. - FXMLLoader gameLoader = new FXMLLoader(getClass().getResource("/lab/gameWindow.fxml")); + FXMLLoader gameLoader = new FXMLLoader(getClass().getResource("/lab/gui/gameWindow.fxml")); Parent root = gameLoader.load(); gameController = gameLoader.getController(); Scene scene = new Scene(root); @@ -53,7 +53,7 @@ public class App extends Application { } private void switchToMenu() throws IOException { // Construct a main window with a canvas. - FXMLLoader menuLoader = new FXMLLoader(getClass().getResource("/lab/mainScreen.fxml")); + FXMLLoader menuLoader = new FXMLLoader(getClass().getResource("/lab/gui/mainScreen.fxml")); Parent root = menuLoader.load(); MainScreenController menuController = menuLoader.getController(); menuController.setApp(this); diff --git a/src/main/java/lab/GameController.java b/java2-lab02-v2/src/main/java/lab/gui/GameController.java similarity index 92% rename from src/main/java/lab/GameController.java rename to java2-lab02-v2/src/main/java/lab/gui/GameController.java index 474bc6d7e0ed9f637169f383fc3f9305e7aab7bf..13c98d55bbb33eb2c0316019e9a31c3d13586bf7 100644 --- a/src/main/java/lab/GameController.java +++ b/java2-lab02-v2/src/main/java/lab/gui/GameController.java @@ -1,4 +1,4 @@ -package lab; +package lab.gui; import javafx.animation.AnimationTimer; import javafx.beans.value.ObservableValue; @@ -7,6 +7,11 @@ import javafx.fxml.FXML; import javafx.scene.canvas.Canvas; import javafx.scene.control.Label; import javafx.scene.control.Slider; +import lab.game.DeadListener; +import lab.game.DrawingThread; +import lab.game.Level; +import lab.game.Monster; +import lab.game.MujListener; public class GameController { diff --git a/src/main/java/lab/MainScreenController.java b/java2-lab02-v2/src/main/java/lab/gui/MainScreenController.java similarity index 94% rename from src/main/java/lab/MainScreenController.java rename to java2-lab02-v2/src/main/java/lab/gui/MainScreenController.java index 43f8f94505edbdb7356f2d0e134179c7dd581295..59b028250b83a94b42b3be98cfc9d76111cf6ad3 100644 --- a/src/main/java/lab/MainScreenController.java +++ b/java2-lab02-v2/src/main/java/lab/gui/MainScreenController.java @@ -1,8 +1,9 @@ -package lab; +package lab.gui; import java.io.IOException; import java.util.List; +import cz.vsb.fei.java2.lab02.common.Score; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.control.Button; @@ -12,6 +13,8 @@ import javafx.scene.control.TextField; import javafx.scene.control.ToggleButton; import javafx.scene.control.ToggleGroup; import javafx.scene.control.cell.PropertyValueFactory; +import lab.ScoreStorageFactory; +import lab.game.Difficult; /** * @@ -101,7 +104,7 @@ public class MainScreenController { private void initDB() { //Stream.generate(Score::generate).limit(10).toList(); - ScoreStorageFactory.getInstance().createTable(); + ScoreStorageFactory.getInstance().init(); scores.getItems().addAll(ScoreStorageFactory.getInstance().getAll()); } diff --git a/java2-lab02-v2/src/main/java/module-info.java b/java2-lab02-v2/src/main/java/module-info.java new file mode 100644 index 0000000000000000000000000000000000000000..c24119824ad7b5cf98e7c098746fcbe2e77fdebb --- /dev/null +++ b/java2-lab02-v2/src/main/java/module-info.java @@ -0,0 +1,12 @@ +import cz.vsb.fei.java2.lab02.common.ScoreStorageInterface; + +module cz.vsb.fei.java2.lab02_module { + requires transitive javafx.controls; + requires javafx.fxml; + requires javafx.base; + requires java.sql; + requires cz.vsb.fei.java2.lab02.common_module; + opens lab.gui to javafx.fxml; + exports lab.gui to javafx.fxml,javafx.graphics; + uses ScoreStorageInterface; +} \ No newline at end of file diff --git a/src/main/resources/lab/red-monster.gif b/java2-lab02-v2/src/main/resources/lab/game/red-monster.gif similarity index 100% rename from src/main/resources/lab/red-monster.gif rename to java2-lab02-v2/src/main/resources/lab/game/red-monster.gif diff --git a/src/main/resources/lab/spike.gif b/java2-lab02-v2/src/main/resources/lab/game/spike.gif similarity index 100% rename from src/main/resources/lab/spike.gif rename to java2-lab02-v2/src/main/resources/lab/game/spike.gif diff --git a/src/main/resources/lab/application.css b/java2-lab02-v2/src/main/resources/lab/gui/application.css similarity index 100% rename from src/main/resources/lab/application.css rename to java2-lab02-v2/src/main/resources/lab/gui/application.css diff --git a/src/main/resources/lab/game-background.jpg b/java2-lab02-v2/src/main/resources/lab/gui/game-background.jpg similarity index 100% rename from src/main/resources/lab/game-background.jpg rename to java2-lab02-v2/src/main/resources/lab/gui/game-background.jpg diff --git a/src/main/resources/lab/gameWindow.fxml b/java2-lab02-v2/src/main/resources/lab/gui/gameWindow.fxml similarity index 97% rename from src/main/resources/lab/gameWindow.fxml rename to java2-lab02-v2/src/main/resources/lab/gui/gameWindow.fxml index 91a80e63eed85a4395b66a28bb92e15d14934d66..22eb1514de9f2ec46fe36562888f9dc7e6131570 100644 --- a/src/main/resources/lab/gameWindow.fxml +++ b/java2-lab02-v2/src/main/resources/lab/gui/gameWindow.fxml @@ -10,7 +10,7 @@ <?import javafx.scene.layout.HBox?> <?import javafx.scene.text.Font?> -<BorderPane fx:id="panel" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="459.0" prefWidth="824.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="lab.GameController"> +<BorderPane fx:id="panel" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="459.0" prefWidth="824.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="lab.gui.GameController"> <bottom> <HBox alignment="TOP_CENTER" prefHeight="66.0" prefWidth="824.0" BorderPane.alignment="CENTER"> <children> diff --git a/src/main/resources/lab/mainScreen.fxml b/java2-lab02-v2/src/main/resources/lab/gui/mainScreen.fxml similarity index 98% rename from src/main/resources/lab/mainScreen.fxml rename to java2-lab02-v2/src/main/resources/lab/gui/mainScreen.fxml index 3229f448e9b72b4d547f12d81a45c561e9897727..768bc61a13c1ecf1e8135d1e077841f113433a7c 100644 --- a/src/main/resources/lab/mainScreen.fxml +++ b/java2-lab02-v2/src/main/resources/lab/gui/mainScreen.fxml @@ -13,7 +13,7 @@ <?import javafx.scene.layout.VBox?> <?import javafx.scene.text.Font?> -<BorderPane fx:id="menuPanel" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="547.0" prefWidth="804.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="lab.MainScreenController"> +<BorderPane fx:id="menuPanel" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="547.0" prefWidth="804.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="lab.gui.MainScreenController"> <top> <HBox prefWidth="200.0" BorderPane.alignment="CENTER"> <children> diff --git a/src/main/resources/lab/red-monster-menu-background.jpg b/java2-lab02-v2/src/main/resources/lab/gui/red-monster-menu-background.jpg similarity index 100% rename from src/main/resources/lab/red-monster-menu-background.jpg rename to java2-lab02-v2/src/main/resources/lab/gui/red-monster-menu-background.jpg diff --git a/src/test/java/jez04/structure/test/AllOfContinue.java b/java2-lab02-v2/src/test/java/jez04/structure/test/AllOfContinue.java similarity index 100% rename from src/test/java/jez04/structure/test/AllOfContinue.java rename to java2-lab02-v2/src/test/java/jez04/structure/test/AllOfContinue.java diff --git a/src/test/java/jez04/structure/test/ClassExist.java b/java2-lab02-v2/src/test/java/jez04/structure/test/ClassExist.java similarity index 100% rename from src/test/java/jez04/structure/test/ClassExist.java rename to java2-lab02-v2/src/test/java/jez04/structure/test/ClassExist.java diff --git a/src/test/java/jez04/structure/test/ClassStructureTest.java b/java2-lab02-v2/src/test/java/jez04/structure/test/ClassStructureTest.java similarity index 99% rename from src/test/java/jez04/structure/test/ClassStructureTest.java rename to java2-lab02-v2/src/test/java/jez04/structure/test/ClassStructureTest.java index 74691a58d5ffa8c996fe56c72570e0bf0dbc31d9..bf058e02641b88d0f6de5ee9caf243014676e2b3 100644 --- a/src/test/java/jez04/structure/test/ClassStructureTest.java +++ b/java2-lab02-v2/src/test/java/jez04/structure/test/ClassStructureTest.java @@ -23,6 +23,6 @@ import org.junit.jupiter.api.Test; class ClassStructureTest { StructureHelper helper = StructureHelper.getInstance(); - + } diff --git a/src/test/java/jez04/structure/test/ContainsInnerClasses.java b/java2-lab02-v2/src/test/java/jez04/structure/test/ContainsInnerClasses.java similarity index 100% rename from src/test/java/jez04/structure/test/ContainsInnerClasses.java rename to java2-lab02-v2/src/test/java/jez04/structure/test/ContainsInnerClasses.java diff --git a/src/test/java/jez04/structure/test/HasMethod.java b/java2-lab02-v2/src/test/java/jez04/structure/test/HasMethod.java similarity index 100% rename from src/test/java/jez04/structure/test/HasMethod.java rename to java2-lab02-v2/src/test/java/jez04/structure/test/HasMethod.java diff --git a/src/test/java/jez04/structure/test/HasProperty.java b/java2-lab02-v2/src/test/java/jez04/structure/test/HasProperty.java similarity index 100% rename from src/test/java/jez04/structure/test/HasProperty.java rename to java2-lab02-v2/src/test/java/jez04/structure/test/HasProperty.java diff --git a/src/test/java/jez04/structure/test/IsDescendatOf.java b/java2-lab02-v2/src/test/java/jez04/structure/test/IsDescendatOf.java similarity index 100% rename from src/test/java/jez04/structure/test/IsDescendatOf.java rename to java2-lab02-v2/src/test/java/jez04/structure/test/IsDescendatOf.java diff --git a/src/test/java/jez04/structure/test/IsInterface.java b/java2-lab02-v2/src/test/java/jez04/structure/test/IsInterface.java similarity index 100% rename from src/test/java/jez04/structure/test/IsInterface.java rename to java2-lab02-v2/src/test/java/jez04/structure/test/IsInterface.java diff --git a/src/test/java/jez04/structure/test/ResourceContains.java b/java2-lab02-v2/src/test/java/jez04/structure/test/ResourceContains.java similarity index 100% rename from src/test/java/jez04/structure/test/ResourceContains.java rename to java2-lab02-v2/src/test/java/jez04/structure/test/ResourceContains.java diff --git a/src/test/java/jez04/structure/test/SrcContains.java b/java2-lab02-v2/src/test/java/jez04/structure/test/SrcContains.java similarity index 100% rename from src/test/java/jez04/structure/test/SrcContains.java rename to java2-lab02-v2/src/test/java/jez04/structure/test/SrcContains.java diff --git a/src/test/java/jez04/structure/test/StructureHelper.java b/java2-lab02-v2/src/test/java/jez04/structure/test/StructureHelper.java similarity index 100% rename from src/test/java/jez04/structure/test/StructureHelper.java rename to java2-lab02-v2/src/test/java/jez04/structure/test/StructureHelper.java diff --git a/src/test/java/jez04/structure/test/StructureMatcher.java b/java2-lab02-v2/src/test/java/jez04/structure/test/StructureMatcher.java similarity index 100% rename from src/test/java/jez04/structure/test/StructureMatcher.java rename to java2-lab02-v2/src/test/java/jez04/structure/test/StructureMatcher.java diff --git a/pom.xml b/pom.xml deleted file mode 100644 index 1781554f4d807a9b9f8ca747a774f0228e321b89..0000000000000000000000000000000000000000 --- a/pom.xml +++ /dev/null @@ -1,70 +0,0 @@ -<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 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - <groupId>cz.vsb.fei.java2</groupId> - <artifactId>java2-lab02-v2</artifactId> - <version>0.0.1-SNAPHOST</version> - <name>java2-lab02-v2</name> - <packaging>jar</packaging> - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <maven.compiler.source>21</maven.compiler.source> - <maven.compiler.target>21</maven.compiler.target> - </properties> - <dependencies> - <!-- https://mvnrepository.com/artifact/com.h2database/h2 --> - <dependency> - <groupId>com.h2database</groupId> - <artifactId>h2</artifactId> - <version>2.3.232</version> - </dependency> - <dependency> - <groupId>org.openjfx</groupId> - <artifactId>javafx-controls</artifactId> - <version>23</version> - </dependency> - <dependency> - <groupId>org.openjfx</groupId> - <artifactId>javafx-fxml</artifactId> - <version>23</version> - </dependency> - <!-- - https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api --> - <dependency> - <groupId>org.junit.jupiter</groupId> - <artifactId>junit-jupiter-api</artifactId> - <version>5.11.0</version> - <scope>test</scope> - </dependency> - <!-- - https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-engine --> - <dependency> - <groupId>org.junit.jupiter</groupId> - <artifactId>junit-jupiter-engine</artifactId> - <version>5.11.0</version> - <scope>test</scope> - </dependency> - <!-- - https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-params --> - <dependency> - <groupId>org.junit.jupiter</groupId> - <artifactId>junit-jupiter-params</artifactId> - <version>5.11.0</version> - <scope>test</scope> - </dependency> - <!-- https://mvnrepository.com/artifact/org.reflections/reflections --> - <dependency> - <groupId>org.reflections</groupId> - <artifactId>reflections</artifactId> - <version>0.10.2</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.hamcrest</groupId> - <artifactId>hamcrest</artifactId> - <version>3.0</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/run.sh b/run.sh new file mode 100755 index 0000000000000000000000000000000000000000..774747d5ec40289617f5f9f29b4f554267142c8e --- /dev/null +++ b/run.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +cd java2-lab02-v2 +java --module-path target/java2-lab02-v2-0.0.1-SNAPHOST.jar:target/libs -m cz.vsb.fei.java2.lab02_module/lab.gui.App +cd .. diff --git a/src/main/java/lab/ScoreStorageFactory.java b/src/main/java/lab/ScoreStorageFactory.java deleted file mode 100644 index 3346de6eb41a256e171e1a9bfb3d6af18ad1b464..0000000000000000000000000000000000000000 --- a/src/main/java/lab/ScoreStorageFactory.java +++ /dev/null @@ -1,13 +0,0 @@ -package lab; - -public class ScoreStorageFactory { - - private static DbConnector instance; - - public static DbConnector getInstance() { - if(instance == null) { - instance = new DbConnector(); - } - return instance; - } -} diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java deleted file mode 100644 index 51b9b1c06e53e56d996d38195f8a878b7315b6db..0000000000000000000000000000000000000000 --- a/src/main/java/module-info.java +++ /dev/null @@ -1,8 +0,0 @@ -module lab01 { - requires transitive javafx.controls; - requires javafx.fxml; - requires javafx.base; - requires java.sql; - opens lab to javafx.fxml; - exports lab; -} \ No newline at end of file