From 64c3380f23db8985d8d0b5ad5c20030628a088cc Mon Sep 17 00:00:00 2001
From: arnaudlabourel <arnaud.labourel@univ-amu.fr>
Date: Tue, 24 Oct 2023 15:30:10 +0200
Subject: [PATCH] updated gradle config with shadow for jar

---
 build.gradle                                  | 19 +++++++++----------
 settings.gradle                               |  2 ++
 .../app/SimulatorApplication.java}            | 15 ++++++++++-----
 .../java/firefighter/app/SimulatorMain.java   |  7 +++++++
 .../controller/Controller.java                | 16 ++++++++--------
 .../controller/PersistentToggleGroup.java     |  2 +-
 .../java/{ => firefighter}/model/Board.java   |  2 +-
 .../model/FirefighterBoard.java               |  2 +-
 .../{ => firefighter}/model/ModelElement.java |  2 +-
 .../{ => firefighter}/model/Position.java     |  2 +-
 .../view/FirefighterGrid.java                 |  4 ++--
 .../java/{ => firefighter}/view/Grid.java     |  5 ++---
 .../{ => firefighter}/view/ViewElement.java   |  2 +-
 src/main/java/module-info.java                |  8 ++++++++
 .../{ => firefighter}/view/DarkTheme.css      |  0
 .../{ => firefighter}/view/view.fxml          |  4 ++--
 16 files changed, 56 insertions(+), 36 deletions(-)
 rename src/main/java/{FirefighterApplication.java => firefighter/app/SimulatorApplication.java} (80%)
 create mode 100644 src/main/java/firefighter/app/SimulatorMain.java
 rename src/main/java/{ => firefighter}/controller/Controller.java (91%)
 rename src/main/java/{ => firefighter}/controller/PersistentToggleGroup.java (96%)
 rename src/main/java/{ => firefighter}/model/Board.java (87%)
 rename src/main/java/{ => firefighter}/model/FirefighterBoard.java (99%)
 rename src/main/java/{ => firefighter}/model/ModelElement.java (64%)
 rename src/main/java/{ => firefighter}/model/Position.java (64%)
 rename src/main/java/{ => firefighter}/view/FirefighterGrid.java (97%)
 rename src/main/java/{ => firefighter}/view/Grid.java (74%)
 rename src/main/java/{ => firefighter}/view/ViewElement.java (88%)
 create mode 100644 src/main/java/module-info.java
 rename src/main/resources/{ => firefighter}/view/DarkTheme.css (100%)
 rename src/main/resources/{ => firefighter}/view/view.fxml (93%)

diff --git a/build.gradle b/build.gradle
index d1f46e6..0f1ef0d 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,13 +1,14 @@
 
 plugins {
+    id("com.github.johnrengelman.shadow") version "8.1.1"
     id 'application'
-    id "org.openjfx.javafxplugin" version "0.0.14"
-    id 'com.github.johnrengelman.shadow' version '8.1.1'
+    id 'java'
+    id "org.openjfx.javafxplugin" version "0.1.0"
 }
 
 javafx {
     version = "21"
-    modules = [ 'javafx.controls', 'javafx.fxml' ]
+    modules = [ 'javafx.controls', 'javafx.fxml', 'javafx.graphics']
 }
 
 
@@ -29,13 +30,11 @@ test {
 }
 
 application {
-    mainClass.set("FirefighterApplication")
+    mainClass.set("firefighter.app.SimulatorMain")
 }
 
-jar {
-    manifest {
-        attributes("Implementation-Title": project.name,
-                "Implementation-Version": version,
-                "Main-Class": application.mainClass)
+tasks {
+    shadowJar {
+        exclude("module-info.class")
     }
-}
\ No newline at end of file
+}
diff --git a/settings.gradle b/settings.gradle
index b9eacbe..5d3f861 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,2 +1,4 @@
 rootProject.name = 'firefighter'
+include 'src:main:aapp'
+findProject(':src:main:aapp')?.name = 'aapp'
 
diff --git a/src/main/java/FirefighterApplication.java b/src/main/java/firefighter/app/SimulatorApplication.java
similarity index 80%
rename from src/main/java/FirefighterApplication.java
rename to src/main/java/firefighter/app/SimulatorApplication.java
index e43ebd9..b4392e2 100644
--- a/src/main/java/FirefighterApplication.java
+++ b/src/main/java/firefighter/app/SimulatorApplication.java
@@ -1,5 +1,6 @@
-import controller.Controller;
-import javafx.application.Application;
+package firefighter.app;
+
+import firefighter.controller.Controller;
 import javafx.application.Platform;
 import javafx.fxml.FXMLLoader;
 import javafx.scene.Parent;
@@ -9,8 +10,8 @@ import javafx.stage.Stage;
 import java.io.IOException;
 import java.net.URL;
 
-public class FirefighterApplication extends Application {
-  private static final String VIEW_RESOURCE_PATH = "/view/view.fxml";
+public class SimulatorApplication extends javafx.application.Application {
+  private static final String VIEW_RESOURCE_PATH = "/firefighter/view/view.fxml";
   private static final String APP_NAME = "Firefighter simulator";
   private static final int ROW_COUNT = 20;
   private static final int COLUMN_COUNT = 20;
@@ -38,7 +39,7 @@ public class FirefighterApplication extends Application {
 
   private void initializeView() throws IOException {
     FXMLLoader loader = new FXMLLoader();
-    URL location = FirefighterApplication.class.getResource(VIEW_RESOURCE_PATH);
+    URL location = SimulatorApplication.class.getResource(VIEW_RESOURCE_PATH);
     loader.setLocation(location);
     view = loader.load();
     Controller controller = loader.getController();
@@ -51,4 +52,8 @@ public class FirefighterApplication extends Application {
     primaryStage.setScene(scene);
     primaryStage.show();
   }
+
+  public static void main(String[] args) {
+    launch(args);
+  }
 }
diff --git a/src/main/java/firefighter/app/SimulatorMain.java b/src/main/java/firefighter/app/SimulatorMain.java
new file mode 100644
index 0000000..18533e3
--- /dev/null
+++ b/src/main/java/firefighter/app/SimulatorMain.java
@@ -0,0 +1,7 @@
+package firefighter.app;
+
+public class SimulatorMain {
+  public static void main(String[] args){
+    SimulatorApplication.main(args);
+  }
+}
diff --git a/src/main/java/controller/Controller.java b/src/main/java/firefighter/controller/Controller.java
similarity index 91%
rename from src/main/java/controller/Controller.java
rename to src/main/java/firefighter/controller/Controller.java
index c4e3232..335bf3e 100644
--- a/src/main/java/controller/Controller.java
+++ b/src/main/java/firefighter/controller/Controller.java
@@ -1,4 +1,4 @@
-package controller;
+package firefighter.controller;
 
 import javafx.animation.Animation;
 import javafx.animation.KeyFrame;
@@ -11,12 +11,12 @@ import javafx.scene.control.ToggleButton;
 import javafx.scene.control.ToggleGroup;
 import javafx.util.Duration;
 import javafx.util.Pair;
-import model.Board;
-import model.ModelElement;
-import model.FirefighterBoard;
-import model.Position;
-import view.FirefighterGrid;
-import view.ViewElement;
+import firefighter.model.Board;
+import firefighter.model.ModelElement;
+import firefighter.model.FirefighterBoard;
+import firefighter.model.Position;
+import firefighter.view.FirefighterGrid;
+import firefighter.view.ViewElement;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -52,7 +52,7 @@ public class Controller {
   }
 
   private void setModel(FirefighterBoard firefighterBoard) {
-    this.board = requireNonNull(firefighterBoard, "model is null");
+    this.board = requireNonNull(firefighterBoard, "firefighter.model is null");
   }
 
   private void updateBoard(){
diff --git a/src/main/java/controller/PersistentToggleGroup.java b/src/main/java/firefighter/controller/PersistentToggleGroup.java
similarity index 96%
rename from src/main/java/controller/PersistentToggleGroup.java
rename to src/main/java/firefighter/controller/PersistentToggleGroup.java
index 7c2c4b5..a7e930b 100644
--- a/src/main/java/controller/PersistentToggleGroup.java
+++ b/src/main/java/firefighter/controller/PersistentToggleGroup.java
@@ -1,4 +1,4 @@
-package controller;
+package firefighter.controller;
 
 import javafx.collections.ListChangeListener.Change;
 import javafx.scene.control.Toggle;
diff --git a/src/main/java/model/Board.java b/src/main/java/firefighter/model/Board.java
similarity index 87%
rename from src/main/java/model/Board.java
rename to src/main/java/firefighter/model/Board.java
index 5e24f47..a17de30 100644
--- a/src/main/java/model/Board.java
+++ b/src/main/java/firefighter/model/Board.java
@@ -1,4 +1,4 @@
-package model;
+package firefighter.model;
 
 import java.util.List;
 
diff --git a/src/main/java/model/FirefighterBoard.java b/src/main/java/firefighter/model/FirefighterBoard.java
similarity index 99%
rename from src/main/java/model/FirefighterBoard.java
rename to src/main/java/firefighter/model/FirefighterBoard.java
index 910e036..29af45a 100644
--- a/src/main/java/model/FirefighterBoard.java
+++ b/src/main/java/firefighter/model/FirefighterBoard.java
@@ -1,4 +1,4 @@
-package model;
+package firefighter.model;
 
 import java.util.*;
 
diff --git a/src/main/java/model/ModelElement.java b/src/main/java/firefighter/model/ModelElement.java
similarity index 64%
rename from src/main/java/model/ModelElement.java
rename to src/main/java/firefighter/model/ModelElement.java
index 759eee5..ca8f16a 100644
--- a/src/main/java/model/ModelElement.java
+++ b/src/main/java/firefighter/model/ModelElement.java
@@ -1,4 +1,4 @@
-package model;
+package firefighter.model;
 
 public enum ModelElement {
   FIREFIGHTER, FIRE
diff --git a/src/main/java/model/Position.java b/src/main/java/firefighter/model/Position.java
similarity index 64%
rename from src/main/java/model/Position.java
rename to src/main/java/firefighter/model/Position.java
index 08c95ad..9941e11 100644
--- a/src/main/java/model/Position.java
+++ b/src/main/java/firefighter/model/Position.java
@@ -1,4 +1,4 @@
-package model;
+package firefighter.model;
 
 public record Position(int row, int column) {
 
diff --git a/src/main/java/view/FirefighterGrid.java b/src/main/java/firefighter/view/FirefighterGrid.java
similarity index 97%
rename from src/main/java/view/FirefighterGrid.java
rename to src/main/java/firefighter/view/FirefighterGrid.java
index 085ad2c..1e46ca8 100644
--- a/src/main/java/view/FirefighterGrid.java
+++ b/src/main/java/firefighter/view/FirefighterGrid.java
@@ -1,9 +1,9 @@
-package view;
+package firefighter.view;
 
 import javafx.scene.canvas.Canvas;
 import javafx.scene.paint.Color;
 import javafx.util.Pair;
-import model.Position;
+import firefighter.model.Position;
 
 import java.util.List;
 
diff --git a/src/main/java/view/Grid.java b/src/main/java/firefighter/view/Grid.java
similarity index 74%
rename from src/main/java/view/Grid.java
rename to src/main/java/firefighter/view/Grid.java
index ee8a612..bc0b487 100644
--- a/src/main/java/view/Grid.java
+++ b/src/main/java/firefighter/view/Grid.java
@@ -1,8 +1,7 @@
-package view;
+package firefighter.view;
 
-import javafx.scene.paint.Color;
 import javafx.util.Pair;
-import model.Position;
+import firefighter.model.Position;
 
 import java.util.List;
 
diff --git a/src/main/java/view/ViewElement.java b/src/main/java/firefighter/view/ViewElement.java
similarity index 88%
rename from src/main/java/view/ViewElement.java
rename to src/main/java/firefighter/view/ViewElement.java
index ffb7611..0181e55 100644
--- a/src/main/java/view/ViewElement.java
+++ b/src/main/java/firefighter/view/ViewElement.java
@@ -1,4 +1,4 @@
-package view;
+package firefighter.view;
 
 import javafx.scene.paint.Color;
 
diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java
new file mode 100644
index 0000000..c82befa
--- /dev/null
+++ b/src/main/java/module-info.java
@@ -0,0 +1,8 @@
+module firefighter {
+  requires javafx.controls;
+  requires javafx.fxml;
+  requires javafx.graphics;
+  opens firefighter.controller to javafx.fxml;
+  exports firefighter.app;
+  opens firefighter.app to javafx.fxml;
+}
\ No newline at end of file
diff --git a/src/main/resources/view/DarkTheme.css b/src/main/resources/firefighter/view/DarkTheme.css
similarity index 100%
rename from src/main/resources/view/DarkTheme.css
rename to src/main/resources/firefighter/view/DarkTheme.css
diff --git a/src/main/resources/view/view.fxml b/src/main/resources/firefighter/view/view.fxml
similarity index 93%
rename from src/main/resources/view/view.fxml
rename to src/main/resources/firefighter/view/view.fxml
index e8b0ffc..9ae1576 100644
--- a/src/main/resources/view/view.fxml
+++ b/src/main/resources/firefighter/view/view.fxml
@@ -3,12 +3,12 @@
 <?import javafx.scene.control.Button?>
 <?import javafx.scene.layout.HBox?>
 <?import javafx.scene.layout.VBox?>
-<?import view.FirefighterGrid?>
+<?import firefighter.view.FirefighterGrid?>
 
 <?import javafx.scene.control.ToggleButton?>
 <HBox styleClass="background" stylesheets="@DarkTheme.css"
       xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml"
-      fx:controller="controller.Controller">
+      fx:controller="firefighter.controller.Controller">
   <VBox>
     <Button fx:id="restartButton" maxHeight="-Infinity" maxWidth="-Infinity"
             mnemonicParsing="false" onAction="#restartButtonAction" prefHeight="24.0" prefWidth="200.0"
-- 
GitLab