From 58afd61f4375b51519ad5d4949b9cbef6269a7b9 Mon Sep 17 00:00:00 2001 From: Claude Brisson Date: Sun, 15 Oct 2023 12:02:24 +0200 Subject: [PATCH 01/29] Prepare landing page --- api-webapp/src/test/resources/weights.txt | 2 +- server.sh | 2 +- standalone.sh | 2 +- view-webapp/src/main/sass/main.scss | 17 ++++++- .../main/webapp/WEB-INF/layouts/standard.html | 2 +- .../src/main/webapp/fonts/Hornbill-Black.otf | Bin 0 -> 63352 bytes .../webapp/fonts/Hornbill-BlackItalic.otf | Bin 0 -> 39748 bytes .../src/main/webapp/fonts/Hornbill-Bold.otf | Bin 0 -> 39712 bytes .../main/webapp/fonts/Hornbill-BoldItalic.otf | Bin 0 -> 42696 bytes .../src/main/webapp/fonts/Hornbill-Italic.otf | Bin 0 -> 43220 bytes .../main/webapp/fonts/Hornbill-Regular.otf | Bin 0 -> 39364 bytes .../src/main/webapp/fonts/hornbill.css | 42 +++++++++++++++++ view-webapp/src/main/webapp/index-ffg.html | 43 ++++++++++++++++++ view-webapp/src/main/webapp/index.html | 2 +- 14 files changed, 106 insertions(+), 6 deletions(-) create mode 100644 view-webapp/src/main/webapp/fonts/Hornbill-Black.otf create mode 100644 view-webapp/src/main/webapp/fonts/Hornbill-BlackItalic.otf create mode 100644 view-webapp/src/main/webapp/fonts/Hornbill-Bold.otf create mode 100644 view-webapp/src/main/webapp/fonts/Hornbill-BoldItalic.otf create mode 100644 view-webapp/src/main/webapp/fonts/Hornbill-Italic.otf create mode 100644 view-webapp/src/main/webapp/fonts/Hornbill-Regular.otf create mode 100644 view-webapp/src/main/webapp/fonts/hornbill.css create mode 100644 view-webapp/src/main/webapp/index-ffg.html diff --git a/api-webapp/src/test/resources/weights.txt b/api-webapp/src/test/resources/weights.txt index 6898e52..e51822a 100644 --- a/api-webapp/src/test/resources/weights.txt +++ b/api-webapp/src/test/resources/weights.txt @@ -1,4 +1,4 @@ -Round 2 +Round 1 Costs Player1Name=Baratou Paul Player2Name=Batailler Philippe diff --git a/server.sh b/server.sh index 6b763ce..c80e88b 100755 --- a/server.sh +++ b/server.sh @@ -1,4 +1,4 @@ #!/bin/bash export MAVEN_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=*:5005" -mvn --projects api-webapp package jetty:run +mvn -DskipTests --projects api-webapp package jetty:run diff --git a/standalone.sh b/standalone.sh index bd21b39..0fd09f5 100755 --- a/standalone.sh +++ b/standalone.sh @@ -3,4 +3,4 @@ # debug version # mvn package && java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5006 -jar application/target/pairgoth-engine.jar -mvn package && java -jar application/target/pairgoth-engine.jar +mvn -DskipTests package && java -jar application/target/pairgoth-engine.jar diff --git a/view-webapp/src/main/sass/main.scss b/view-webapp/src/main/sass/main.scss index abb1eef..e291058 100644 --- a/view-webapp/src/main/sass/main.scss +++ b/view-webapp/src/main/sass/main.scss @@ -1,7 +1,8 @@ +@import "/fonts/hornbill.css"; @import "/lib/fomantic-ui-2.9.2/semantic.min.css" layer(semantic); @layer pairgoth { - + /* general styles */ body { font-size: clamp(14px, 1rem + 1vw, 24px); @@ -24,6 +25,20 @@ } } + .logo { + font-family: Hornbill, serif; + font-weight: bolder; + font-style: normal; + } + + .centered { + text-align: center; + } + + .nobreak { + white-space: nowrap; + } + /* header, center, footer */ #header { diff --git a/view-webapp/src/main/webapp/WEB-INF/layouts/standard.html b/view-webapp/src/main/webapp/WEB-INF/layouts/standard.html index f099390..b3a3f23 100644 --- a/view-webapp/src/main/webapp/WEB-INF/layouts/standard.html +++ b/view-webapp/src/main/webapp/WEB-INF/layouts/standard.html @@ -13,7 +13,7 @@
-#translate('tournament-form.inc.html') + #translate('tournament-form.inc.html')
From 905ccda7c98ea2f1550b9369f02701385af31185 Mon Sep 17 00:00:00 2001 From: Claude Brisson Date: Mon, 23 Oct 2023 14:53:01 +0200 Subject: [PATCH 02/29] Reeng in progress --- api-webapp/pom.xml | 20 +++++ .../org/jeudego/pairgoth/api/ApiHandler.kt | 2 +- .../pairgoth/api/PairgothApiHandler.kt | 2 +- .../jeudego/pairgoth/api/PairingHandler.kt | 4 +- .../org/jeudego/pairgoth/api/PlayerHandler.kt | 4 +- .../jeudego/pairgoth/api/ResultsHandler.kt | 2 +- .../org/jeudego/pairgoth/api/TeamHandler.kt | 4 +- .../jeudego/pairgoth/api/TournamentHandler.kt | 6 +- .../org/jeudego/pairgoth/oauth/OAuthHelper.kt | 2 +- .../pairgoth/{web => server}/ApiException.kt | 2 +- .../pairgoth/{web => server}/ApiServlet.kt | 2 +- .../jeudego/pairgoth/{web => server}/Event.kt | 2 +- .../pairgoth/{web => server}/Logging.kt | 2 +- .../pairgoth/{web => server}/SSEServlet.kt | 2 +- .../pairgoth/{web => server}/WebappManager.kt | 15 ++-- .../org/jeudego/pairgoth/store/Store.kt | 2 +- .../WEB-INF/pairgoth.default.properties | 2 +- api-webapp/src/main/webapp/WEB-INF/web.xml | 6 +- api-webapp/src/test/kotlin/TestUtils.kt | 6 +- client.sh | 2 +- pom.xml | 90 ++++++++++++++++++- view-webapp/pom.xml | 11 ++- .../org/jeudego/pairgoth/util/Translator.kt | 2 +- .../org/jeudego/pairgoth/web/WebappManager.kt | 7 +- .../main/webapp/WEB-INF/layouts/standard.html | 1 + .../WEB-INF/pairgoth.default.properties | 2 +- 26 files changed, 163 insertions(+), 39 deletions(-) rename api-webapp/src/main/kotlin/org/jeudego/pairgoth/{web => server}/ApiException.kt (96%) rename api-webapp/src/main/kotlin/org/jeudego/pairgoth/{web => server}/ApiServlet.kt (99%) rename api-webapp/src/main/kotlin/org/jeudego/pairgoth/{web => server}/Event.kt (96%) rename api-webapp/src/main/kotlin/org/jeudego/pairgoth/{web => server}/Logging.kt (98%) rename api-webapp/src/main/kotlin/org/jeudego/pairgoth/{web => server}/SSEServlet.kt (96%) rename api-webapp/src/main/kotlin/org/jeudego/pairgoth/{web => server}/WebappManager.kt (93%) diff --git a/api-webapp/pom.xml b/api-webapp/pom.xml index 04b8175..4a2589f 100644 --- a/api-webapp/pom.xml +++ b/api-webapp/pom.xml @@ -86,6 +86,26 @@ + diff --git a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/api/ApiHandler.kt b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/api/ApiHandler.kt index c7b3d85..c903d17 100644 --- a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/api/ApiHandler.kt +++ b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/api/ApiHandler.kt @@ -1,7 +1,7 @@ package org.jeudego.pairgoth.api import com.republicate.kson.Json -import org.jeudego.pairgoth.web.ApiException +import org.jeudego.pairgoth.server.ApiException import org.slf4j.LoggerFactory import javax.servlet.http.HttpServletRequest import javax.servlet.http.HttpServletResponse diff --git a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/api/PairgothApiHandler.kt b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/api/PairgothApiHandler.kt index d125d7f..9c4e41f 100644 --- a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/api/PairgothApiHandler.kt +++ b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/api/PairgothApiHandler.kt @@ -3,7 +3,7 @@ package org.jeudego.pairgoth.api import com.republicate.kson.Json import org.jeudego.pairgoth.model.Tournament import org.jeudego.pairgoth.store.Store -import org.jeudego.pairgoth.web.Event +import org.jeudego.pairgoth.server.Event import javax.servlet.http.HttpServletRequest interface PairgothApiHandler: ApiHandler { diff --git a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/api/PairingHandler.kt b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/api/PairingHandler.kt index d484279..531e264 100644 --- a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/api/PairingHandler.kt +++ b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/api/PairingHandler.kt @@ -8,8 +8,8 @@ import org.jeudego.pairgoth.model.PairingType import org.jeudego.pairgoth.model.getID import org.jeudego.pairgoth.model.toID import org.jeudego.pairgoth.model.toJson -import org.jeudego.pairgoth.web.Event -import org.jeudego.pairgoth.web.Event.* +import org.jeudego.pairgoth.server.Event +import org.jeudego.pairgoth.server.Event.* import javax.servlet.http.HttpServletRequest import javax.servlet.http.HttpServletResponse diff --git a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/api/PlayerHandler.kt b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/api/PlayerHandler.kt index d6f8de8..5c0795b 100644 --- a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/api/PlayerHandler.kt +++ b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/api/PlayerHandler.kt @@ -5,8 +5,8 @@ import com.republicate.kson.toJsonArray import org.jeudego.pairgoth.api.ApiHandler.Companion.badRequest import org.jeudego.pairgoth.model.Player import org.jeudego.pairgoth.model.fromJson -import org.jeudego.pairgoth.web.Event -import org.jeudego.pairgoth.web.Event.* +import org.jeudego.pairgoth.server.Event +import org.jeudego.pairgoth.server.Event.* import javax.servlet.http.HttpServletRequest import javax.servlet.http.HttpServletResponse diff --git a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/api/ResultsHandler.kt b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/api/ResultsHandler.kt index a26f994..372fdc6 100644 --- a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/api/ResultsHandler.kt +++ b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/api/ResultsHandler.kt @@ -5,7 +5,7 @@ import com.republicate.kson.toJsonArray import org.jeudego.pairgoth.api.ApiHandler.Companion.badRequest import org.jeudego.pairgoth.model.Game import org.jeudego.pairgoth.model.toJson -import org.jeudego.pairgoth.web.Event +import org.jeudego.pairgoth.server.Event import javax.servlet.http.HttpServletRequest import javax.servlet.http.HttpServletResponse diff --git a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/api/TeamHandler.kt b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/api/TeamHandler.kt index ee39b57..0e9af1b 100644 --- a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/api/TeamHandler.kt +++ b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/api/TeamHandler.kt @@ -4,8 +4,8 @@ import com.republicate.kson.Json import com.republicate.kson.toJsonArray import org.jeudego.pairgoth.api.ApiHandler.Companion.badRequest import org.jeudego.pairgoth.model.TeamTournament -import org.jeudego.pairgoth.web.Event -import org.jeudego.pairgoth.web.Event.* +import org.jeudego.pairgoth.server.Event +import org.jeudego.pairgoth.server.Event.* import javax.servlet.http.HttpServletRequest import javax.servlet.http.HttpServletResponse diff --git a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/api/TournamentHandler.kt b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/api/TournamentHandler.kt index a1a2187..3e7f5e5 100644 --- a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/api/TournamentHandler.kt +++ b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/api/TournamentHandler.kt @@ -10,9 +10,9 @@ import org.jeudego.pairgoth.model.Tournament import org.jeudego.pairgoth.model.fromJson import org.jeudego.pairgoth.model.toJson import org.jeudego.pairgoth.store.Store -import org.jeudego.pairgoth.web.ApiServlet -import org.jeudego.pairgoth.web.Event -import org.jeudego.pairgoth.web.Event.* +import org.jeudego.pairgoth.server.ApiServlet +import org.jeudego.pairgoth.server.Event +import org.jeudego.pairgoth.server.Event.* import org.w3c.dom.Element import javax.servlet.http.HttpServletRequest import javax.servlet.http.HttpServletResponse diff --git a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/oauth/OAuthHelper.kt b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/oauth/OAuthHelper.kt index 453a7a4..e9719c6 100644 --- a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/oauth/OAuthHelper.kt +++ b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/oauth/OAuthHelper.kt @@ -3,7 +3,7 @@ package org.jeudego.pairgoth.oauth // In progress import com.republicate.kson.Json -import org.jeudego.pairgoth.web.WebappManager +import org.jeudego.pairgoth.server.WebappManager //import com.republicate.modality.util.AESCryptograph //import com.republicate.modality.util.Cryptograph import org.apache.commons.codec.binary.Base64 diff --git a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/web/ApiException.kt b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/server/ApiException.kt similarity index 96% rename from api-webapp/src/main/kotlin/org/jeudego/pairgoth/web/ApiException.kt rename to api-webapp/src/main/kotlin/org/jeudego/pairgoth/server/ApiException.kt index 13d2a9d..5af4fbc 100644 --- a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/web/ApiException.kt +++ b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/server/ApiException.kt @@ -1,4 +1,4 @@ -package org.jeudego.pairgoth.web +package org.jeudego.pairgoth.server import com.republicate.kson.Json import java.io.IOException diff --git a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/web/ApiServlet.kt b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/server/ApiServlet.kt similarity index 99% rename from api-webapp/src/main/kotlin/org/jeudego/pairgoth/web/ApiServlet.kt rename to api-webapp/src/main/kotlin/org/jeudego/pairgoth/server/ApiServlet.kt index 34d2d9b..9ebaa0a 100644 --- a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/web/ApiServlet.kt +++ b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/server/ApiServlet.kt @@ -1,4 +1,4 @@ -package org.jeudego.pairgoth.web +package org.jeudego.pairgoth.server import com.republicate.kson.Json import org.jeudego.pairgoth.api.ApiHandler diff --git a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/web/Event.kt b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/server/Event.kt similarity index 96% rename from api-webapp/src/main/kotlin/org/jeudego/pairgoth/web/Event.kt rename to api-webapp/src/main/kotlin/org/jeudego/pairgoth/server/Event.kt index a250c67..9557757 100644 --- a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/web/Event.kt +++ b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/server/Event.kt @@ -1,4 +1,4 @@ -package org.jeudego.pairgoth.web +package org.jeudego.pairgoth.server import info.macias.sse.events.MessageEvent import java.util.concurrent.atomic.AtomicLong diff --git a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/web/Logging.kt b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/server/Logging.kt similarity index 98% rename from api-webapp/src/main/kotlin/org/jeudego/pairgoth/web/Logging.kt rename to api-webapp/src/main/kotlin/org/jeudego/pairgoth/server/Logging.kt index 22ba455..b975f39 100644 --- a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/web/Logging.kt +++ b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/server/Logging.kt @@ -1,4 +1,4 @@ -package org.jeudego.pairgoth.web +package org.jeudego.pairgoth.server import com.republicate.kson.Json import org.jeudego.pairgoth.util.Colorizer.blue diff --git a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/web/SSEServlet.kt b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/server/SSEServlet.kt similarity index 96% rename from api-webapp/src/main/kotlin/org/jeudego/pairgoth/web/SSEServlet.kt rename to api-webapp/src/main/kotlin/org/jeudego/pairgoth/server/SSEServlet.kt index cb8b02c..09e70f4 100644 --- a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/web/SSEServlet.kt +++ b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/server/SSEServlet.kt @@ -1,4 +1,4 @@ -package org.jeudego.pairgoth.web +package org.jeudego.pairgoth.server import info.macias.sse.EventBroadcast import info.macias.sse.events.MessageEvent diff --git a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/web/WebappManager.kt b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/server/WebappManager.kt similarity index 93% rename from api-webapp/src/main/kotlin/org/jeudego/pairgoth/web/WebappManager.kt rename to api-webapp/src/main/kotlin/org/jeudego/pairgoth/server/WebappManager.kt index c54b77a..3764ffd 100644 --- a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/web/WebappManager.kt +++ b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/server/WebappManager.kt @@ -1,4 +1,4 @@ -package org.jeudego.pairgoth.web +package org.jeudego.pairgoth.server import com.republicate.mailer.SmtpLoop import org.apache.commons.lang3.tuple.Pair @@ -51,8 +51,7 @@ class WebappManager : ServletContextListener, ServletContextAttributeListener, H /* ServletContextListener interface */ override fun contextInitialized(sce: ServletContextEvent) { context = sce.servletContext - logger.info("---------- Starting Pairgoth Server ----------") - context.setAttribute("manager", this) + logger.info("---------- Starting $WEBAPP_NAME ----------") webappRoot = context.getRealPath("/") try { // load default properties @@ -63,7 +62,8 @@ class WebappManager : ServletContextListener, ServletContextAttributeListener, H properties[(key as String).removePrefix(PAIRGOTH_PROPERTIES_PREFIX)] = value } - logger.info("Using profile {}", properties.getProperty("webapp.env")) + val env = properties.getProperty("webapp.env") + logger.info("Using profile $env", ) // set system user agent string to empty string System.setProperty("http.agent", "") @@ -84,11 +84,15 @@ class WebappManager : ServletContextListener, ServletContextAttributeListener, H } override fun contextDestroyed(sce: ServletContextEvent) { - logger.info("---------- Stopping Web Application ----------") + logger.info("---------- Stopping $WEBAPP_NAME ----------") + + stopService("smtp"); val context = sce.servletContext for (service in webServices.keys) stopService(service, true) // ??? DriverManager.deregisterDriver(com.mysql.cj.jdbc.Driver ...); + + logger.info("---------- Stopped $WEBAPP_NAME ----------") } /* ServletContextAttributeListener interface */ @@ -101,6 +105,7 @@ class WebappManager : ServletContextListener, ServletContextAttributeListener, H override fun sessionDestroyed(se: HttpSessionEvent) {} companion object { + const val WEBAPP_NAME = "Pairgoth API Server" const val PAIRGOTH_PROPERTIES_PREFIX = "pairgoth." lateinit var webappRoot: String lateinit var context: ServletContext diff --git a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/store/Store.kt b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/store/Store.kt index bbf1574..6972288 100644 --- a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/store/Store.kt +++ b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/store/Store.kt @@ -2,7 +2,7 @@ package org.jeudego.pairgoth.store import org.jeudego.pairgoth.model.ID import org.jeudego.pairgoth.model.Tournament -import org.jeudego.pairgoth.web.WebappManager +import org.jeudego.pairgoth.server.WebappManager import java.util.concurrent.atomic.AtomicInteger private fun createStoreImplementation(): StoreImplementation { diff --git a/api-webapp/src/main/webapp/WEB-INF/pairgoth.default.properties b/api-webapp/src/main/webapp/WEB-INF/pairgoth.default.properties index b0ebec3..621f983 100644 --- a/api-webapp/src/main/webapp/WEB-INF/pairgoth.default.properties +++ b/api-webapp/src/main/webapp/WEB-INF/pairgoth.default.properties @@ -1,6 +1,6 @@ # webapp webapp.env = dev -webapp.url = http://localhost:8080 +webapp.url = https://localhost:8085 # store store = file diff --git a/api-webapp/src/main/webapp/WEB-INF/web.xml b/api-webapp/src/main/webapp/WEB-INF/web.xml index 719647e..c3019a8 100644 --- a/api-webapp/src/main/webapp/WEB-INF/web.xml +++ b/api-webapp/src/main/webapp/WEB-INF/web.xml @@ -8,7 +8,7 @@ com.republicate.slf4j.impl.ServletContextLoggerListener - org.jeudego.pairgoth.web.WebappManager + org.jeudego.pairgoth.server.WebappManager @@ -29,11 +29,11 @@ api - org.jeudego.pairgoth.web.ApiServlet + org.jeudego.pairgoth.server.ApiServlet sse - org.jeudego.pairgoth.web.SSEServlet + org.jeudego.pairgoth.server.SSEServlet 1 true diff --git a/api-webapp/src/test/kotlin/TestUtils.kt b/api-webapp/src/test/kotlin/TestUtils.kt index 962652c..57e557c 100644 --- a/api-webapp/src/test/kotlin/TestUtils.kt +++ b/api-webapp/src/test/kotlin/TestUtils.kt @@ -2,9 +2,9 @@ package org.jeudego.pairgoth.test import com.republicate.kson.Json import org.jeudego.pairgoth.api.ApiHandler -import org.jeudego.pairgoth.web.ApiServlet -import org.jeudego.pairgoth.web.SSEServlet -import org.jeudego.pairgoth.web.WebappManager +import org.jeudego.pairgoth.server.ApiServlet +import org.jeudego.pairgoth.server.SSEServlet +import org.jeudego.pairgoth.server.WebappManager import org.mockito.kotlin.* import java.io.* import java.util.* diff --git a/client.sh b/client.sh index 4f0ecf5..e88c906 100755 --- a/client.sh +++ b/client.sh @@ -6,5 +6,5 @@ CSSWATCH=$! export MAVEN_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=*:5006" #mvn --projects view-webapp -Dpairgoth.api.url=http://localhost:8085/api/ package jetty:run -mvn --projects view-webapp package jetty:run +mvn -o --projects view-webapp package jetty:run kill $CSSWATCH diff --git a/pom.xml b/pom.xml index 1856055..30b6a76 100644 --- a/pom.xml +++ b/pom.xml @@ -8,6 +8,52 @@ 1.0-SNAPSHOT pom + + + default-properties + + true + + + dev + http://localhost:8085 + dev + http://localhost:8080 + + + + custom-properties + + + ../pairgoth.properties + + + + + + org.codehaus.mojo + properties-maven-plugin + 1.2.0 + + + initialize + + read-project-properties + + + + + ../pairgoth.properties + + + + + + + + + + @@ -19,7 +65,8 @@ true - + + republicate.com https://republicate.com/maven2 @@ -144,6 +191,47 @@ maven-war-plugin ${maven.war.plugin.version} + + + org.codehaus.mojo + build-helper-maven-plugin + 3.4.0 + + + regex-property + + regex-property + + + webapp.port + ${webapp.url} + ^.*:(\d+).*$ + $1 + true + + + + + + + org.apache.maven.plugins + maven-antrun-plugin + 3.1.0 + + + echo-property + + run + + + + ----------------- webapp.port=${webapp.port} + + + + + + com.mycila license-maven-plugin diff --git a/view-webapp/pom.xml b/view-webapp/pom.xml index b397c37..b90c8f3 100644 --- a/view-webapp/pom.xml +++ b/view-webapp/pom.xml @@ -101,15 +101,18 @@ 8080 + ${project.basedir}/src/main/webapp,${project.build.directory}/generated-resources/ + org.apache.maven.plugins maven-war-plugin @@ -125,6 +128,10 @@ + + org.codehaus.mojo + properties-maven-plugin + diff --git a/view-webapp/src/main/kotlin/org/jeudego/pairgoth/util/Translator.kt b/view-webapp/src/main/kotlin/org/jeudego/pairgoth/util/Translator.kt index fce0ef5..94752d8 100644 --- a/view-webapp/src/main/kotlin/org/jeudego/pairgoth/util/Translator.kt +++ b/view-webapp/src/main/kotlin/org/jeudego/pairgoth/util/Translator.kt @@ -132,7 +132,7 @@ class Translator private constructor(private val iso: String) { get() = textAccessor[this] as String set(value: String) { textAccessor[this] = value } - private val saveMissingTranslations = System.getProperty("pairgoth.env") == "dev" + private val saveMissingTranslations = System.getProperty("pairgoth.webapp.env") == "dev" private val missingTranslations: MutableSet = ConcurrentSkipListSet() private fun reportMissingTranslation(enText: String) { diff --git a/view-webapp/src/main/kotlin/org/jeudego/pairgoth/web/WebappManager.kt b/view-webapp/src/main/kotlin/org/jeudego/pairgoth/web/WebappManager.kt index 1da1a42..9f89aa1 100644 --- a/view-webapp/src/main/kotlin/org/jeudego/pairgoth/web/WebappManager.kt +++ b/view-webapp/src/main/kotlin/org/jeudego/pairgoth/web/WebappManager.kt @@ -53,7 +53,6 @@ class WebappManager : ServletContextListener, ServletContextAttributeListener, H override fun contextInitialized(sce: ServletContextEvent) { context = sce.servletContext logger.info("---------- Starting $WEBAPP_NAME ----------") - context.setAttribute("manager", this) webappRoot = context.getRealPath("/") try { // load default properties @@ -64,7 +63,11 @@ class WebappManager : ServletContextListener, ServletContextAttributeListener, H properties[(key as String).removePrefix(PAIRGOTH_PROPERTIES_PREFIX)] = value } - logger.info("Using profile {}", properties.getProperty("webapp.env")) + val env = properties.getProperty("webapp.env") + logger.info("Using profile {}", ) + + // let the view be aware of the environment + context.setAttribute("webapp.env", env) // set system user agent string to empty string System.setProperty("http.agent", "") diff --git a/view-webapp/src/main/webapp/WEB-INF/layouts/standard.html b/view-webapp/src/main/webapp/WEB-INF/layouts/standard.html index b3a3f23..eee01b5 100644 --- a/view-webapp/src/main/webapp/WEB-INF/layouts/standard.html +++ b/view-webapp/src/main/webapp/WEB-INF/layouts/standard.html @@ -11,6 +11,7 @@ +#foreach($attr in $application.getAttributeNames())$attr #end