From aff1c2bd7b92cc6dd8a83cd4ace95735e963869c Mon Sep 17 00:00:00 2001 From: Martin Steiger Date: Mon, 8 Aug 2022 16:43:20 +0200 Subject: [PATCH 1/4] Bump lots of versions --- build.gradle | 43 ++++++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/build.gradle b/build.gradle index 8aa2a81..bf9e48e 100644 --- a/build.gradle +++ b/build.gradle @@ -1,11 +1,11 @@ plugins { - id "org.owasp.dependencycheck" version "5.0.0-M3.1" + id "org.owasp.dependencycheck" version "7.1.0.1" id 'java' id 'application' id 'eclipse' id 'pmd' id 'checkstyle' - id 'com.github.spotbugs' version '4.5.0' + id 'com.github.spotbugs' version '4.7.1' } apply from: 'config/gradle/versioning.gradle' @@ -15,6 +15,9 @@ applicationName = "meta-server" group = 'org.terasology.web' +targetCompatibility = '11' +sourceCompatibility = '11' + repositories { mavenCentral() @@ -26,7 +29,7 @@ repositories { } ext { - jettyVersion = '9.4.6.v20170531' + jettyVersion = '9.4.48.v20220622' } def codeMetricsDir = "${buildDir}/codeMetrics" @@ -42,33 +45,35 @@ dependencies { implementation 'javax.annotation:javax.annotation-api:1.3.2' implementation 'com.google.code.findbugs:jsr305:3.0.0' - implementation 'org.glassfish.jersey.containers:jersey-container-jetty-servlet:2.22.1' - implementation 'org.glassfish.jersey.ext:jersey-mvc-freemarker:2.22.1' + implementation 'com.sun.xml.bind:jaxb-impl:2.3.3' + implementation group: 'javax.ws.rs', name: 'javax.ws.rs-api', version: '2.1.1' - implementation 'com.google.code.gson:gson:2.4' - implementation 'com.google.guava:guava:18.0' + implementation 'org.glassfish.jersey.containers:jersey-container-jetty-servlet:2.25' + implementation 'org.glassfish.jersey.ext:jersey-mvc-freemarker:2.25' - implementation 'org.jooq:jooq:3.7.0' - implementation 'org.postgresql:postgresql:9.4-1205-jdbc42' + implementation 'com.google.code.gson:gson:2.9.1' + implementation 'com.google.guava:guava:31.1-jre' - implementation 'com.squareup.retrofit:retrofit:1.9.0' + implementation 'org.jooq:jooq:3.14.16' + implementation 'org.postgresql:postgresql:42.4.1' - implementation 'org.slf4j:slf4j-api:1.7.13' + implementation 'com.squareup.retrofit:retrofit:1.9.0' - implementation 'com.zaxxer:HikariCP:2.4.1' + implementation 'com.zaxxer:HikariCP:5.0.1' implementation 'org.terasology:gestalt-module:4.1.2' - testImplementation 'org.jsoup:jsoup:1.8.3' - testImplementation 'com.jcabi:jcabi-w3c:1.3' - testImplementation 'com.jcabi:jcabi-matchers:1.4' - testImplementation 'junit:junit:4.12' + implementation group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.3' + + testImplementation 'org.jsoup:jsoup:1.15.2' + testImplementation 'com.jcabi:jcabi-w3c:1.4.0' + testImplementation 'com.jcabi:jcabi-matchers:1.5.3' + testImplementation 'junit:junit:4.13.2' testImplementation 'com.h2database:h2:1.4.190' - runtimeOnly group: 'ch.qos.logback', name: 'logback-classic', version: '1.1.3' - pmd 'net.sourceforge.pmd:pmd-core:6.27.0' - pmd 'net.sourceforge.pmd:pmd-java:6.27.0' + pmd 'net.sourceforge.pmd:pmd-core:6.48.0' + pmd 'net.sourceforge.pmd:pmd-java:6.48.0' codeMetrics group: 'org.terasology.config', name: 'codemetrics', version: '1.3.2', ext: 'zip' } From 13121f3cfcea9b406f0fd946e59df9f97a8faea2 Mon Sep 17 00:00:00 2001 From: Martin Steiger Date: Mon, 8 Aug 2022 16:43:45 +0200 Subject: [PATCH 2/4] Ignore engine modules --- .../web/model/ModuleListModelImpl.java | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/terasology/web/model/ModuleListModelImpl.java b/src/main/java/org/terasology/web/model/ModuleListModelImpl.java index b7d9c9b..2e2f86d 100644 --- a/src/main/java/org/terasology/web/model/ModuleListModelImpl.java +++ b/src/main/java/org/terasology/web/model/ModuleListModelImpl.java @@ -49,6 +49,7 @@ import org.terasology.web.artifactory.ArtifactInfo; import org.terasology.web.artifactory.ArtifactRepository; +import com.google.common.collect.ImmutableList; import com.google.common.io.Files; /** @@ -69,6 +70,8 @@ public class ModuleListModelImpl implements ModuleListModel { private final Path cacheFolder; + private final List ignoredModules = ImmutableList.of("engine", "engine-tests"); + private final ReentrantReadWriteLock lock = new ReentrantReadWriteLock(true); public ModuleListModelImpl(Path cacheFolder) { @@ -93,16 +96,22 @@ public void addRepository(ArtifactRepository repo) { public void updateAllModules() { for (ArtifactRepository repo : repositories) { for (String moduleName : repo.getModuleNames()) { - try { - repo.updateModule(moduleName.toString()); - updateModule(repo, moduleName); - } catch (IOException e) { - logger.warn("Could not update module {}", moduleName); + if (isRelevant(moduleName)) { + try { + repo.updateModule(moduleName); + updateModule(repo, moduleName); + } catch (IOException e) { + logger.warn("Could not update module {}", moduleName); + } } } } } + private boolean isRelevant(String moduleName) { + return !ignoredModules.contains(moduleName); + } + @Override public void updateModule(Name moduleName) { From 1d916be1fb18529530be09e7ef39322c9f071d01 Mon Sep 17 00:00:00 2001 From: Martin Steiger Date: Mon, 8 Aug 2022 17:16:03 +0200 Subject: [PATCH 3/4] Publish on localhost only (optional) --- .../java/org/terasology/web/JettyMain.java | 23 ++++++++++++++++--- .../master/WebServerBasedTests.java | 1 + 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/terasology/web/JettyMain.java b/src/main/java/org/terasology/web/JettyMain.java index 8563ef4..1ebed9c 100644 --- a/src/main/java/org/terasology/web/JettyMain.java +++ b/src/main/java/org/terasology/web/JettyMain.java @@ -16,6 +16,7 @@ package org.terasology.web; +import java.net.InetSocketAddress; import java.net.URI; import java.nio.file.Path; import java.nio.file.Paths; @@ -77,6 +78,14 @@ public static void main(String[] args) throws Exception { } Integer port = Integer.valueOf(portEnv); + String localhostOnlyEnv = System.getenv("LOCALHOST_ONLY"); + Boolean localhostOnly = true; + if (localhostOnlyEnv != null) { + localhostOnly = Boolean.valueOf(localhostOnlyEnv); + } else { + logger.warn("Environment variable 'LOCALHOST_ONLY' not defined - using default {}", localhostOnly); + } + String dbEnv = System.getenv("DATABASE_URL"); if (dbEnv == null) { logger.error("Environment variable 'DATABASE_URL' not defined!"); @@ -139,6 +148,7 @@ public static void main(String[] args) throws Exception { ServerListModel serverListModel = new ServerListModelImpl(dataBase, "servers", secret); Server server = createServer(port.intValue(), + localhostOnly, new AboutServlet(), new ServerServlet(serverListModel), // the server list servlet new ModuleServlet(moduleListModel)); // the module list servlet @@ -146,14 +156,21 @@ public static void main(String[] args) throws Exception { server.start(); logger.info("Server started on port {}!", port); - new Thread(moduleListModel::updateAllModules).start(); +// new Thread(moduleListModel::updateAllModules).start(); server.join(); } } - public static Server createServer(int port, Object... servlets) throws Exception { - Server server = new Server(port); + public static Server createServer(int port, boolean localOnly, Object... servlets) throws Exception { + + Server server; + + if (localOnly) { + server = new Server(new InetSocketAddress("localhost", port)); + } else { + server = new Server(port); + } ResourceHandler logFileResourceHandler = new ResourceHandler(); logFileResourceHandler.setDirectoriesListed(true); diff --git a/src/test/java/org/terasology/master/WebServerBasedTests.java b/src/test/java/org/terasology/master/WebServerBasedTests.java index 553e389..27e0594 100644 --- a/src/test/java/org/terasology/master/WebServerBasedTests.java +++ b/src/test/java/org/terasology/master/WebServerBasedTests.java @@ -95,6 +95,7 @@ public static void setup() throws Exception { ServerListModel serverListModel = new ServerListModelImpl(dataBase, SERVER_TABLE, secret); webServer = JettyMain.createServer(PORT, + true, new AboutServlet(), new ServerServlet(serverListModel), // the server list servlet new ModuleServlet(moduleListModel)); // the module list servlet From 9abf8a616255351123f2490b4b9e3f672cf72260 Mon Sep 17 00:00:00 2001 From: Martin Steiger Date: Mon, 8 Aug 2022 17:26:48 +0200 Subject: [PATCH 4/4] Bump gradle version --- gradle.properties | 2 +- src/main/java/org/terasology/web/JettyMain.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index a8a802c..0e6ab05 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ #Mon Apr 20 18:44:42 CEST 2015 -version=2.7.1-SNAPSHOT +version=2.8.0-SNAPSHOT versioneye.projectkey=maven2_master_server_1 versioneye.projectid=55352d6edc39815abf0007ad diff --git a/src/main/java/org/terasology/web/JettyMain.java b/src/main/java/org/terasology/web/JettyMain.java index 1ebed9c..737f808 100644 --- a/src/main/java/org/terasology/web/JettyMain.java +++ b/src/main/java/org/terasology/web/JettyMain.java @@ -156,7 +156,7 @@ public static void main(String[] args) throws Exception { server.start(); logger.info("Server started on port {}!", port); -// new Thread(moduleListModel::updateAllModules).start(); + new Thread(moduleListModel::updateAllModules).start(); server.join(); }