New Upstream Snapshot - libpf4j-update-java

Ready changes

Summary

Merged new upstream version: 2.3.0+git20211127.1.c02f111+dfsg (was: 2.3.0+dfsg).

Resulting package

Built on 2022-12-20T13:57 (took 8m0s)

The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:

apt install -t fresh-snapshots libpf4j-update-java

Diff

diff --git a/README.md b/README.md
index 5abe5d7..218c054 100644
--- a/README.md
+++ b/README.md
@@ -34,7 +34,7 @@ You may want to check for the latest released version using [Maven Search](http:
 How to use
 -------------------
 It's very simple to add pf4j-update in your application.
-The whole code of below snippet is available on [Github](https://github.com/pf4j/pf4j-update/blob/master/src/test/java/org/pf4j/update/UpdateTest.java). 
+The whole code of below snippet is available on [Github](https://github.com/pf4j/pf4j-update/blob/master/src/test/java/org/pf4j/update/util/TestApplication.java). 
 
 ```java
 public static void main(String[] args) {
diff --git a/debian/changelog b/debian/changelog
index 4f192f9..2614bb1 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+libpf4j-update-java (2.3.0+git20211127.1.c02f111+dfsg-1) UNRELEASED; urgency=low
+
+  * New upstream snapshot.
+
+ -- Debian Janitor <janitor@jelmer.uk>  Tue, 20 Dec 2022 13:51:22 -0000
+
 libpf4j-update-java (2.3.0+dfsg-3) unstable; urgency=medium
 
   * Correcting d/watch to get the latest version from tags
diff --git a/debian/patches/omit_test_downloading_data.patch b/debian/patches/omit_test_downloading_data.patch
index 040ef06..95206dc 100644
--- a/debian/patches/omit_test_downloading_data.patch
+++ b/debian/patches/omit_test_downloading_data.patch
@@ -3,9 +3,11 @@ Author: Pierre Gruet <pgt@debian.org>
 Forwarded: not-needed
 Last-Update: 2021-05-09
 
---- a/src/test/java/org/pf4j/update/UpdateIntegrationTest.java
-+++ b/src/test/java/org/pf4j/update/UpdateIntegrationTest.java
-@@ -19,6 +19,7 @@
+Index: libpf4j-update-java.git/src/test/java/org/pf4j/update/UpdateIntegrationTest.java
+===================================================================
+--- libpf4j-update-java.git.orig/src/test/java/org/pf4j/update/UpdateIntegrationTest.java
++++ libpf4j-update-java.git/src/test/java/org/pf4j/update/UpdateIntegrationTest.java
+@@ -19,6 +19,7 @@ import com.google.gson.Gson;
  import com.google.gson.GsonBuilder;
  import org.junit.After;
  import org.junit.Before;
@@ -13,7 +15,7 @@ Last-Update: 2021-05-09
  import org.junit.Test;
  import org.pf4j.update.util.TestApplication;
  import org.pf4j.update.util.TestPluginsFixture;
-@@ -57,6 +58,7 @@
+@@ -57,6 +58,7 @@ public class UpdateIntegrationTest {
          webServer.shutdown();
      }
  
diff --git a/pom.xml b/pom.xml
index cea1445..b496f0f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.pf4j</groupId>
     <artifactId>pf4j-update</artifactId>
-    <version>2.3.0</version>
+    <version>2.4.0-SNAPSHOT</version>
 
     <licenses>
         <license>
@@ -24,7 +24,7 @@
         <connection>scm:git:https://github.com/pf4j/pf4j-update.git</connection>
         <developerConnection>scm:git:https://github.com/pf4j/pf4j-update.git</developerConnection>
         <url>git@github.com/pf4j/pf4j-update.git</url>
-        <tag>release-2.3.0</tag>
+        <tag>HEAD</tag>
     </scm>
 
     <distributionManagement>
@@ -42,13 +42,13 @@
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <java.version>1.8</java.version>
 
-        <pf4j.version>3.2.0</pf4j.version>
+        <pf4j.version>3.6.0</pf4j.version>
         <slf4j.version>1.7.25</slf4j.version>
         <gson.version>2.2.4</gson.version>
         <commons-codec.version>1.10</commons-codec.version>
-        <jetty.version>9.3.24.v20180605</jetty.version>
+        <jetty.version>9.4.41.v20210516</jetty.version>
 
-        <junit.version>4.12</junit.version>
+        <junit.version>4.13.1</junit.version>
         <mockito.version>2.0.28-beta</mockito.version>
         <cobertura.version>2.7</cobertura.version>
         <coveralls.version>3.1.0</coveralls.version>
diff --git a/src/main/java/org/pf4j/update/DefaultUpdateRepository.java b/src/main/java/org/pf4j/update/DefaultUpdateRepository.java
index e8e9a2e..f3e5fd0 100644
--- a/src/main/java/org/pf4j/update/DefaultUpdateRepository.java
+++ b/src/main/java/org/pf4j/update/DefaultUpdateRepository.java
@@ -24,6 +24,8 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.InputStreamReader;
+import java.io.InputStream;
+import java.io.IOException;
 import java.io.Reader;
 import java.net.MalformedURLException;
 import java.net.URL;
@@ -31,16 +33,18 @@ import java.util.*;
 
 /**
  * The default implementation of {@link UpdateRepository}.
+ * This implementation reads information about plugins from a JSON file ({@code plugins.json} by default).
  *
  * @author Decebal Suiu
  */
 public class DefaultUpdateRepository implements UpdateRepository {
 
-    private static final String DEFAULT_PLUGINS_JSON_FILENAME = "plugins.json";
     private static final Logger log = LoggerFactory.getLogger(DefaultUpdateRepository.class);
 
-    private String id;
-    private URL url;
+    public static final String DEFAULT_PLUGINS_JSON_FILENAME = "plugins.json";
+
+    private final String id;
+    private final URL url;
     private String pluginsJsonFileName;
 
     private Map<String, PluginInfo> plugins;
@@ -59,9 +63,9 @@ public class DefaultUpdateRepository implements UpdateRepository {
     }
 
     public DefaultUpdateRepository(String id, URL url, String pluginsJsonFileName) {
-	this.id = id;
-	this.url = url;
-	this.pluginsJsonFileName = pluginsJsonFileName;
+        this.id = id;
+        this.url = url;
+        this.pluginsJsonFileName = pluginsJsonFileName;
     }
 
     @Override
@@ -88,12 +92,16 @@ public class DefaultUpdateRepository implements UpdateRepository {
         return getPlugins().get(id);
     }
 
+    protected InputStream openURL(URL url) throws IOException {
+        return url.openStream();
+    }
+    
     private void initPlugins() {
         Reader pluginsJsonReader;
         try {
             URL pluginsUrl = new URL(getUrl(), getPluginsJsonFileName());
             log.debug("Read plugins of '{}' repository from '{}'", id, pluginsUrl);
-            pluginsJsonReader = new InputStreamReader(pluginsUrl.openStream());
+            pluginsJsonReader = new InputStreamReader(openURL(pluginsUrl));
         } catch (Exception e) {
             log.error(e.getMessage(), e);
             plugins = Collections.emptyMap();
@@ -160,7 +168,7 @@ public class DefaultUpdateRepository implements UpdateRepository {
      * Choose another file name than {@code plugins.json}.
      *
      * @param pluginsJsonFileName the name (relative) of plugins.json file. 
-	 * If null, will default to {@code plugins.json}
+     * If null, will default to {@code plugins.json}
      */
     public void setPluginsJsonFileName(String pluginsJsonFileName) {
         this.pluginsJsonFileName = pluginsJsonFileName;
diff --git a/src/main/java/org/pf4j/update/FileVerifier.java b/src/main/java/org/pf4j/update/FileVerifier.java
index 87f6513..758943f 100644
--- a/src/main/java/org/pf4j/update/FileVerifier.java
+++ b/src/main/java/org/pf4j/update/FileVerifier.java
@@ -47,7 +47,7 @@ public interface FileVerifier {
         public String requires;
         public String url;
         public String sha512sum;
-        public Map<String,Object> meta = new HashMap<>();
+        public Map<String, Object> meta = new HashMap<>();
 
         public Context(String id, PluginInfo.PluginRelease pluginRelease) {
             this.id = id;
diff --git a/src/main/java/org/pf4j/update/UpdateManager.java b/src/main/java/org/pf4j/update/UpdateManager.java
index b7507de..c66db5c 100644
--- a/src/main/java/org/pf4j/update/UpdateManager.java
+++ b/src/main/java/org/pf4j/update/UpdateManager.java
@@ -43,15 +43,21 @@ import java.util.Map;
 import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
 
 /**
+ * Handles the PF4J install, uninstall and update process.
+ * This class works with multiple {@link UpdateRepository} to retrieve information about plugins.
+ * By default, the repositories are loaded from {@code repositories.json} file.
+ *
  * @author Decebal Suiu
  */
 public class UpdateManager {
 
     private static final Logger log = LoggerFactory.getLogger(UpdateManager.class);
 
-    private PluginManager pluginManager;
-    private VersionManager versionManager;
-    private String systemVersion;
+    public static final String DEFAULT_REPOSITORIES_JSON_FILENAME = "repositories.json";
+
+    private final PluginManager pluginManager;
+    private final VersionManager versionManager;
+    private final String systemVersion;
     private Path repositoriesJson;
 
     // cache last plugin release per plugin id (the key)
@@ -64,7 +70,7 @@ public class UpdateManager {
 
         versionManager = pluginManager.getVersionManager();
         systemVersion = pluginManager.getSystemVersion();
-        repositoriesJson = Paths.get("repositories.json");
+        repositoriesJson = Paths.get(DEFAULT_REPOSITORIES_JSON_FILENAME);
     }
 
     public UpdateManager(PluginManager pluginManager, Path repositoriesJson) {
diff --git a/src/main/java/org/pf4j/update/UpdateRepository.java b/src/main/java/org/pf4j/update/UpdateRepository.java
index ea64ec5..781d06a 100644
--- a/src/main/java/org/pf4j/update/UpdateRepository.java
+++ b/src/main/java/org/pf4j/update/UpdateRepository.java
@@ -64,7 +64,8 @@ public interface UpdateRepository {
 
     /**
      * Gets a file verifier to execute on the downloaded file for it to be claimed valid.
-     * May be a CompoundVerifier in order to chain several verifiers.
+     * Maybe a CompoundVerifier in order to chain several verifiers.
+     *
      * @return {@link FileVerifier}
      */
     FileVerifier getFileVerifier();
diff --git a/src/test/java/org/pf4j/update/util/PropertiesPluginManager.java b/src/test/java/org/pf4j/update/util/PropertiesPluginManager.java
index adb89ee..9b8a301 100644
--- a/src/test/java/org/pf4j/update/util/PropertiesPluginManager.java
+++ b/src/test/java/org/pf4j/update/util/PropertiesPluginManager.java
@@ -23,7 +23,6 @@ import java.nio.file.Path;
 
 /**
  * Manager using properties instead of manifest, for testing.
- *
  */
 public class PropertiesPluginManager extends DefaultPluginManager {
 
@@ -36,9 +35,4 @@ public class PropertiesPluginManager extends DefaultPluginManager {
         return new PropertiesPluginDescriptorFinder("my.properties");
     }
 
-    @Override
-    protected PluginDescriptorFinder getPluginDescriptorFinder() {
-        return new PropertiesPluginDescriptorFinder("my.properties");
-    }
-
 }

Debdiff

[The following lists of changes regard files as different if they have different names, permissions or owners.]

Files in second set of .debs but not in first

-rw-r--r--  root/root   /usr/share/maven-repo/org/pf4j/pf4j-update/2.4.0-SNAPSHOT/pf4j-update-2.4.0-SNAPSHOT.pom
lrwxrwxrwx  root/root   /usr/share/java/pf4j-update-2.4.0-SNAPSHOT.jar -> pf4j-update.jar
lrwxrwxrwx  root/root   /usr/share/maven-repo/org/pf4j/pf4j-update/2.4.0-SNAPSHOT/pf4j-update-2.4.0-SNAPSHOT.jar -> ../../../../../java/pf4j-update.jar

Files in first set of .debs but not in second

-rw-r--r--  root/root   /usr/share/maven-repo/org/pf4j/pf4j-update/2.3.0/pf4j-update-2.3.0.pom
lrwxrwxrwx  root/root   /usr/share/java/pf4j-update-2.3.0.jar -> pf4j-update.jar
lrwxrwxrwx  root/root   /usr/share/maven-repo/org/pf4j/pf4j-update/2.3.0/pf4j-update-2.3.0.jar -> ../../../../../java/pf4j-update.jar

No differences were encountered in the control files

More details

Full run details