From 115caa021804b32392237c2af530bfaae8b843d7 Mon Sep 17 00:00:00 2001 From: Bigeon Emmanuel Date: Sat, 10 Feb 2024 17:16:32 +0100 Subject: [PATCH] [init] Initial commit --- .gitignore | 7 ++ CONTRIBUTING.md | 28 +++++ README.md | 27 +++++ pom.xml | 49 ++++++++ src/main/java/fr/u_paris/gla/project/App.java | 113 ++++++++++++++++++ .../gla/project/application.properties | 3 + .../u_paris/gla/project/uparis_logo_rvb.png | Bin 0 -> 13061 bytes .../java/fr/u_paris/gla/project/AppTest.java | 14 +++ 8 files changed, 241 insertions(+) create mode 100644 .gitignore create mode 100644 CONTRIBUTING.md create mode 100644 README.md create mode 100644 pom.xml create mode 100644 src/main/java/fr/u_paris/gla/project/App.java create mode 100644 src/main/resources-filtered/fr/u_paris/gla/project/application.properties create mode 100644 src/main/resources/fr/u_paris/gla/project/uparis_logo_rvb.png create mode 100644 src/test/java/fr/u_paris/gla/project/AppTest.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c9f1356 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +# Maven +target/ + +# Eclipse +.settings/ +.project +.classpath diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..8e511d7 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,28 @@ +# Comment contribuer à ce projet +2 cas sont possibles pour contribuer à ce projet: +- Vous ête un étudiant et l'utilisez pour créer votre projet, dans ce cas reportez vous à [la section étudiant](#etudiant) +- Vous êtes un enseignant améliorant ce modèle, dans ce cas reportez vous à [la section enseignant](#enseignant) + +## Etudiant + +Vous ne devez pas contribuer directement à ce projet mais devez en effectuer un fork. Une fois cela effectué vous devez: +- [ ] Ajouter votre identifiant de groupe au champs `groupId` du fichier [pom.xml](pom.xml) sous la forme de `fr.u-paris.gla.votreequipe` +- [ ] Modifier le package principal afin de refleter le nouveau nom de groupe. +- [ ] Adapter le fichier [README](README.md) au contenu de votre projet specifique +- [ ] Adapter ce fichier (CONTRIBUTING.md) à vos propres instructions de contribution, notamment: + - [ ] Convention de style de codage + - [ ] Convention d'utilisation de git + - [ ] Lien avec d'autres projets et d'autres dépôts. +- [ ] Modifier le fichier `application.properties` au besoin. + + +## Enseignant + +Ce dépôt suit la convention de gitflow. Les modifications doivent être effectuées dans des branches séparées, +intégrées dans la branche dev une fois terminée. +La branche main ne doit contenir que des versions stables de ce modèle. + +Le code est écrit en Java, manipulé par l'outils de construction maven et doit suivre les conventions usuelles du langage et de l'outils. + +Le package principal du code Java est `fr.u_paris.gla.project` +Le fichier de properties `application.properties` permet d'accéder depuis le code Java aux diverses informations inscrite dans maven. diff --git a/README.md b/README.md new file mode 100644 index 0000000..c303acf --- /dev/null +++ b/README.md @@ -0,0 +1,27 @@ +# Projet de GLA +Version 2024 + +## Description +Ceci est l'archetype de projet de Génie Logiciel Avancé (GLA). + +Il s'agit d'un projet Java. Ce dépôt définit un système de build et une application simple. Il est nécéssaire de consulter le fichier [CONTRIBUTING.md](CONTRIBUTING.md) pour utiliser ce dépôt. + +## Lancement du programme +Ce projet utilise [maven](https://maven.apache.org/) de Apache pour la gestion de construction. + +Afin de compiler et lancer les tests, éxecutez simplement +``` +mvn verify +``` + +Dans sa version initiale, le programme fournit est un simple code qui se lance en terminal ou en application graphique. + +Une fois le programme compilé, vous trouverez un jar executable dans le dossier target. Au nom de jar près (version changeante), vous pourrez l'exécuter avec: +``` +java -jar project-2024.1.0.0-SNAPSHOT.jar --info +``` + +L'option de lancement `--info` causera l'affichage dans la console d'informations de l'application. + +L'option de lancement `--gui` causera l'ouverture d'une fenêtre affichant le logo de l'Université de Paris. + diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..3f471a7 --- /dev/null +++ b/pom.xml @@ -0,0 +1,49 @@ + + + + 4.0.0 + + fr.u-paris.gla + project + 2024.1.0.0-SNAPSHOT + + Project Base + + + UTF-8 + 17 + 17 + + + + + org.junit.jupiter + junit-jupiter + 5.9.1 + + + + + + + org.apache.maven.plugins + maven-jar-plugin + 3.3.0 + + + + true + fr.u_paris.gla.project.App + + + + + + + src/main/resources-filtered + true + + + + diff --git a/src/main/java/fr/u_paris/gla/project/App.java b/src/main/java/fr/u_paris/gla/project/App.java new file mode 100644 index 0000000..923e305 --- /dev/null +++ b/src/main/java/fr/u_paris/gla/project/App.java @@ -0,0 +1,113 @@ +package fr.u_paris.gla.project; + +import java.awt.Graphics2D; +import java.awt.Image; +import java.awt.RenderingHints; +import java.awt.image.BufferedImage; +import java.io.IOException; +import java.io.InputStream; +import java.io.PrintStream; +import java.util.Properties; + +import javax.imageio.ImageIO; +import javax.swing.ImageIcon; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.WindowConstants; + +/** Simple application model. + * + * @author Emmanuel Bigeon */ +public class App { + /** + * + */ + private static final String UNSPECIFIED = "Unspecified"; //$NON-NLS-1$ + /** The logo image name. */ + private static final String LOGO_NAME = "uparis_logo_rvb.png"; //$NON-NLS-1$ + /** Image height. */ + private static final int HEIGHT = 256; + /** Image width. */ + private static final int WIDTH = HEIGHT; + + /** Resizes an image. + * + * @param src source image + * @param w width + * @param h height + * @return the resized image */ + private static Image getScaledImage(Image src, int w, int h) { + BufferedImage resizedImg = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB); + Graphics2D g2d = resizedImg.createGraphics(); + g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, + RenderingHints.VALUE_INTERPOLATION_BILINEAR); + g2d.drawImage(src, 0, 0, w, h, null); + g2d.dispose(); + return resizedImg; + } + + /** Application entry point. + * + * @param args launching arguments */ + public static void main(String[] args) { + if (args.length > 0) { + for (String string : args) { + if ("--info".equals(string)) { //$NON-NLS-1$ + printAppInfos(System.out); + return; + } + if ("--gui".equals(string)) { //$NON-NLS-1$ + showLogo(); + } + } + } + } + + /** @param out */ + public static void printAppInfos(PrintStream out) { + Properties props = new Properties(); + try (InputStream is = App.class.getResourceAsStream("application.properties")) { //$NON-NLS-1$ + props.load(is); + } catch (IOException e) { + throw new RuntimeException("Unable to read application informations", e); //$NON-NLS-1$ + } + + out.println("Application: " + props.getProperty("app.name", UNSPECIFIED)); //$NON-NLS-1$ //$NON-NLS-2$ + out.println("Version: " + props.getProperty("app.version", UNSPECIFIED)); //$NON-NLS-1$ //$NON-NLS-2$ + out.println("By: " + props.getProperty("app.team", UNSPECIFIED)); //$NON-NLS-1$ //$NON-NLS-2$ + } + + /** Shows the logo in an image. */ + public static void showLogo() { + Properties props = new Properties(); + try (InputStream is = App.class.getResourceAsStream("application.properties")) { //$NON-NLS-1$ + props.load(is); + } catch (IOException e) { + throw new RuntimeException("Unable to read application informations", e); //$NON-NLS-1$ + } + + JFrame frame = new JFrame(props.getProperty("app.name")); //$NON-NLS-1$ + frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); + + JLabel container = new JLabel(); + + try (InputStream is = App.class.getResourceAsStream(LOGO_NAME)) { + if (is == null) { + container.setText("Image Not Found"); + } else { + BufferedImage img = ImageIO.read(is); + ImageIcon icon = new ImageIcon(img); + ImageIcon resized = new ImageIcon(getScaledImage(icon.getImage(), WIDTH, HEIGHT)); + + container.setIcon(resized); + } + } catch (IOException e) { + container.setText("Image Not Read: "+e.getLocalizedMessage()); + } + + frame.getContentPane().add(container); + + frame.pack(); + frame.setVisible(true); + } +} diff --git a/src/main/resources-filtered/fr/u_paris/gla/project/application.properties b/src/main/resources-filtered/fr/u_paris/gla/project/application.properties new file mode 100644 index 0000000..7436703 --- /dev/null +++ b/src/main/resources-filtered/fr/u_paris/gla/project/application.properties @@ -0,0 +1,3 @@ +app.name=${name} +app.version=${version} +app.team=No team \ No newline at end of file diff --git a/src/main/resources/fr/u_paris/gla/project/uparis_logo_rvb.png b/src/main/resources/fr/u_paris/gla/project/uparis_logo_rvb.png new file mode 100644 index 0000000000000000000000000000000000000000..f9afcf64dc655f18b9d01d2db50cdc907242a663 GIT binary patch literal 13061 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 literal 0 HcmV?d00001 diff --git a/src/test/java/fr/u_paris/gla/project/AppTest.java b/src/test/java/fr/u_paris/gla/project/AppTest.java new file mode 100644 index 0000000..5e8873d --- /dev/null +++ b/src/test/java/fr/u_paris/gla/project/AppTest.java @@ -0,0 +1,14 @@ +package fr.u_paris.gla.project; + +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; + +/** Unit test for simple App. */ +public class AppTest { + /** Rigorous Test :-) */ + @Test + public void shouldAnswerWithTrue() { + assertTrue(true); + } +}