diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..1a41058717dcc468df58f61939aa040efb18396c --- /dev/null +++ b/.gitignore @@ -0,0 +1,39 @@ +############################## +## Java +############################## +.mtj.tmp/ +*.class +*.jar +*.war +*.ear +*.nar + +############################## +## Maven +############################## +target/ +pom.xml.tag +pom.xml.releaseBackup +pom.xml.versionsBackup +pom.xml.next +pom.xml.bak +release.properties +dependency-reduced-pom.xml +buildNumber.properties +.mvn/timing.properties +.mvn/wrapper/maven-wrapper.jar + +############################## +## IntelliJ +############################## +out/ +.idea/* +*.iml +*.ipr +*.iws + +############################## +## Database +############################## +*.db +*.DS_Store diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 86a91d933a6fa836a2f40defc266d2649267a39e..2489212cdc7d913f2b611375f51a8087600cd941 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,3 +1,30 @@ +image: maven:eclipse-temurin + +stages: + - build + - test + - package + - deploy + + +build: + stage: build + script: + - mvn compile + +test: + stage: test + script: + - mvn clean test + +package: + stage: package + script: + - mvn clean package + artifacts: + paths: + - target/idatt2002demo-1.0-SNAPSHOT-jar-with-dependencies.jar + generatepdf: image: ubuntu:20.04 # vi kjører dette i en docker container, som kjører Ubuntu Linux stage: deploy # vi kjører den parallelt med å publisere javadoc til Pages @@ -35,4 +62,4 @@ pages: paths: - public only: - - master + - web diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..88e3484f6913e1924df39629517e0367fbfcd8ff --- /dev/null +++ b/pom.xml @@ -0,0 +1,215 @@ +<?xml version="1.0" encoding="UTF-8"?> +<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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <groupId>no.ntnu.idatt1002.demo</groupId> + <artifactId>idatt2002demo</artifactId> + <version>1.0-SNAPSHOT</version> + <name>demo</name> + <packaging>jar</packaging> + + <properties> + <maven.compiler.source>17</maven.compiler.source> + <maven.compiler.target>17</maven.compiler.target> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <junit.version>5.8.1</junit.version> + <javafx.version>17.0.1</javafx.version> + </properties> + + <repositories> + <repository> + <id>jitpack.io</id> + <url>https://jitpack.io</url> + </repository> + </repositories> + + <dependencies> + <dependency> + <groupId>org.openjfx</groupId> + <artifactId>javafx-controls</artifactId> + <version>${javafx.version}</version> + </dependency> + + <dependency> + <groupId>org.openjfx</groupId> + <artifactId>javafx-fxml</artifactId> + <version>${javafx.version}</version> + </dependency> + + <dependency> + <groupId>org.openjfx</groupId> + <artifactId>javafx-base</artifactId> + <version>${javafx.version}</version> + </dependency> + + <dependency> + <groupId>org.openjfx</groupId> + <artifactId>javafx-graphics </artifactId> + <version>${javafx.version}</version> + </dependency> + + <dependency> + <groupId>org.openjfx</groupId> + <artifactId>javafx-web</artifactId> + <version>11.0.2</version> + </dependency> + + <dependency> + <groupId>org.openjfx</groupId> + <artifactId>javafx-media</artifactId> + <version>11.0.2</version> + </dependency> + + <dependency> + <groupId>org.openjfx</groupId> + <artifactId>javafx-swing</artifactId> + <version>11.0.2</version> + </dependency> + + <dependency> + <groupId>org.xerial</groupId> + <artifactId>sqlite-jdbc</artifactId> + <version>3.36.0.3</version> + </dependency> + + <dependency> + <groupId>org.junit.jupiter</groupId> + <artifactId>junit-jupiter-api</artifactId> + <version>${junit.version}</version> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>org.junit.jupiter</groupId> + <artifactId>junit-jupiter-engine</artifactId> + <version>${junit.version}</version> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-assembly-plugin</artifactId> + <version>3.3.0</version> + </dependency> + + <dependency> + <groupId>com.github.Dansoftowner</groupId> + <artifactId>jSystemThemeDetector</artifactId> + <version>3.8</version> + </dependency> + + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + <version>1.7.36</version> + </dependency> + + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-simple</artifactId> + <version>1.7.36</version> + </dependency> + + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.8.1</version> + <configuration> + <source>17</source> + <target>17</target> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jar-plugin</artifactId> + <version>2.4</version> + <executions> + <execution> + <id>default-jar</id> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>3.0.0-M5</version> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-assembly-plugin</artifactId> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>single</goal> + </goals> + <configuration> + <archive> + <manifest> + <mainClass> + no.ntnu.idatt1002.demo.MyApp + </mainClass> + </manifest> + </archive> + <descriptorRefs> + <descriptorRef>jar-with-dependencies</descriptorRef> + </descriptorRefs> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.openjfx</groupId> + <artifactId>javafx-maven-plugin</artifactId> + <version>0.0.8</version> + <executions> + <execution> + <!-- Default configuration for running with: mvn clean javafx:run --> + <id>default-cli</id> + <configuration> + <mainClass>no.ntnu.idatt1002.demo/no.ntnu.idatt1002.demo.MyApp</mainClass> + <launcher>app</launcher> + <jlinkZipName>app</jlinkZipName> + <jlinkImageName>app</jlinkImageName> + <noManPages>true</noManPages> + <stripDebug>true</stripDebug> + <noHeaderFiles>true</noHeaderFiles> + + <release>${maven.compiler.target}</release> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + <reporting> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <version>3.4.1</version> + <reportSets> + <reportSet> + <id>aggregate</id> + <inherited>false</inherited> + <reports> + <report>aggregate</report> + </reports> + </reportSet> + <reportSet> + <id>default</id> + <reports> + <report>javadoc</report> + </reports> + </reportSet> + </reportSets> + </plugin> + </plugins> + </reporting> +</project> diff --git a/src/myapp/MyApp.java b/src/main/java/no/ntnu/idatt1002/demo/MyApp.java similarity index 79% rename from src/myapp/MyApp.java rename to src/main/java/no/ntnu/idatt1002/demo/MyApp.java index 57e704ef909e644028308b4a7a4a449e1eaa46c5..360e1f3cbe11936d41f76c84f292e2a36922d105 100644 --- a/src/myapp/MyApp.java +++ b/src/main/java/no/ntnu/idatt1002/demo/MyApp.java @@ -1,6 +1,6 @@ -package myapp; +package no.ntnu.idatt1002.demo; -import myapp.view.MyWindow; +import no.ntnu.idatt1002.demo.view.MyWindow; /** * Use this class to start the application diff --git a/src/myapp/data/MyEntity.java b/src/main/java/no/ntnu/idatt1002/demo/data/MyEntity.java similarity index 93% rename from src/myapp/data/MyEntity.java rename to src/main/java/no/ntnu/idatt1002/demo/data/MyEntity.java index e635c4f729764212cbc318e601cb83425fc4f786..dff27fa495b5c6dd705811eea97a717fae81895c 100644 --- a/src/myapp/data/MyEntity.java +++ b/src/main/java/no/ntnu/idatt1002/demo/data/MyEntity.java @@ -1,4 +1,4 @@ -package myapp.data; +package no.ntnu.idatt1002.demo.data; import java.util.Date; import java.util.List; diff --git a/src/myapp/repo/MyEntityRepo.java b/src/main/java/no/ntnu/idatt1002/demo/repo/MyEntityRepo.java similarity index 91% rename from src/myapp/repo/MyEntityRepo.java rename to src/main/java/no/ntnu/idatt1002/demo/repo/MyEntityRepo.java index 123a9f4f1b98a673527324831079bb2e97e30f98..a149545cafdde9931005234bebb3ee69e3e1893e 100644 --- a/src/myapp/repo/MyEntityRepo.java +++ b/src/main/java/no/ntnu/idatt1002/demo/repo/MyEntityRepo.java @@ -1,6 +1,6 @@ -package myapp.repo; +package no.ntnu.idatt1002.demo.repo; -import myapp.data.MyEntity; +import no.ntnu.idatt1002.demo.data.MyEntity; import java.util.Arrays; import java.util.List; diff --git a/src/myapp/view/MyWindow.java b/src/main/java/no/ntnu/idatt1002/demo/view/MyWindow.java similarity index 78% rename from src/myapp/view/MyWindow.java rename to src/main/java/no/ntnu/idatt1002/demo/view/MyWindow.java index 7797f90bf99e53eeb390943465bb57afc01645ce..65edac7aaaff47a133a608b692a0887e8854c1dc 100644 --- a/src/myapp/view/MyWindow.java +++ b/src/main/java/no/ntnu/idatt1002/demo/view/MyWindow.java @@ -1,9 +1,9 @@ -package myapp.view; +package no.ntnu.idatt1002.demo.view; -import myapp.repo.MyEntityRepo; -import myapp.data.MyEntity; +import no.ntnu.idatt1002.demo.repo.MyEntityRepo; +import no.ntnu.idatt1002.demo.data.MyEntity; -import java.awt.GridLayout; +import java.awt.*; import javax.swing.*; /** @@ -17,7 +17,6 @@ public class MyWindow extends JFrame { * Constructor for window * * @param title Title ow the window - * @return the image at the specified URL * @see Image */ public MyWindow(String title) { diff --git a/src/myapp/repo/MyEntityRepoTest.java b/src/test/java/no/ntnu/idatt1002/demo/repo/MyEntityRepoTest.java similarity index 54% rename from src/myapp/repo/MyEntityRepoTest.java rename to src/test/java/no/ntnu/idatt1002/demo/repo/MyEntityRepoTest.java index 6f7513f379c1835b3c3b75ab17dae21d02802086..9938c3c7b242ea60f2dd6d23fc9131842e16df23 100644 --- a/src/myapp/repo/MyEntityRepoTest.java +++ b/src/test/java/no/ntnu/idatt1002/demo/repo/MyEntityRepoTest.java @@ -1,16 +1,15 @@ -package myapp.repo; +package no.ntnu.idatt1002.demo.repo; +import no.ntnu.idatt1002.demo.data.MyEntity; +import org.junit.jupiter.api.Test; -import myapp.data.MyEntity; -import org.junit.Test; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; public class MyEntityRepoTest { @Test public void testThatWeCanReadMyEntityFromDatabase() { MyEntity e = new MyEntityRepo().getMyEntity("id"); - assertEquals(e.getName(), "name"); }