[Git][java-team/jboss-modules][upstream] New upstream version 1.11.0

Markus Koschany gitlab at salsa.debian.org
Sat Dec 5 01:25:26 GMT 2020



Markus Koschany pushed to branch upstream at Debian Java Maintainers / jboss-modules


Commits:
6ce2b122 by Markus Koschany at 2020-12-05T01:56:55+01:00
New upstream version 1.11.0
- - - - -


7 changed files:

- + .github/workflows/ci.yml
- pom.xml
- pom.xml.versionsBackup
- src/main/java/org/jboss/modules/JDKSpecific.java
- src/main/java/org/jboss/modules/Module.java
- src/main/java/org/jboss/modules/ModuleLoader.java
- src/main/java9/org/jboss/modules/JDKSpecific.java


Changes:

=====================================
.github/workflows/ci.yml
=====================================
@@ -0,0 +1,53 @@
+# This workflow will build a Java project with Maven
+# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
+
+name: JBoss Modules CI
+
+on:
+  pull_request:
+    types: [opened, synchronize, reopened, ready_for_review]
+
+jobs:
+  build-test-matrix:
+    name: JDK${{ matrix.jdk }}-${{ matrix.impl}}-${{ matrix.os }}
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [ubuntu-latest, windows-latest]
+        jdk: [11]
+        impl: [hotspot, openj9]
+    steps:
+    - uses: actions/checkout at v2
+    # test runs use -Djava8.home=... as well, so we need both JDKs
+    - name: Set up JDK 8
+      uses: AdoptOpenJDK/install-jdk at v1
+      with:
+        version: 8
+        impl: ${{ matrix.impl }}
+        targets: 'JAVA_HOME_8'
+    - name: Set up JDK 9
+      uses: AdoptOpenJDK/install-jdk at v1
+      with:
+        version: 9
+        impl: ${{ matrix.impl }}
+        targets: 'JAVA_HOME_9'
+    - name: Set up JDK 10
+      uses: AdoptOpenJDK/install-jdk at v1
+      with:
+        version: 10
+        impl: ${{ matrix.impl }}
+        targets: 'JAVA_HOME_10'
+    - name: Set up JDK ${{ matrix.jdk }}
+      uses: AdoptOpenJDK/install-jdk at v1
+      with:
+        version: ${{ matrix.jdk }}
+        impl: ${{ matrix.impl }}
+    - name: Run Build & Test
+    # -D needs to be escaped in powershell, use --define= instead
+      run: mvn -U -B -fae clean install --define=java8.home=${{ env.JAVA_HOME_8 }} --define=java9.home=${{ env.JAVA_HOME_9 }} --define=java10.home=${{ env.JAVA_HOME_10 }}
+    - uses: actions/upload-artifact at v2
+      if: failure()
+      with:
+        name: surefire-reports-JDK${{ matrix.jdk }}-${{ matrix.impl}}-${{ matrix.os }}
+        path: '**/surefire-reports/*.txt'


=====================================
pom.xml
=====================================
@@ -23,7 +23,7 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.jboss.modules</groupId>
     <artifactId>jboss-modules</artifactId>
-    <version>1.10.2.Final</version>
+    <version>1.11.0.Final</version>
     <name>JBoss Modules</name>
 
     <parent>
@@ -295,7 +295,7 @@
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
-            <version>4.11</version>
+            <version>4.13.1</version>
             <scope>test</scope>
         </dependency>
     </dependencies>


=====================================
pom.xml.versionsBackup
=====================================
@@ -23,7 +23,7 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.jboss.modules</groupId>
     <artifactId>jboss-modules</artifactId>
-    <version>1.10.2.Final-SNAPSHOT</version>
+    <version>1.11.0.Final-SNAPSHOT</version>
     <name>JBoss Modules</name>
 
     <parent>
@@ -295,7 +295,7 @@
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
-            <version>4.11</version>
+            <version>4.13.1</version>
             <scope>test</scope>
         </dependency>
     </dependencies>


=====================================
src/main/java/org/jboss/modules/JDKSpecific.java
=====================================
@@ -30,8 +30,12 @@ import java.security.AccessController;
 import java.security.PrivilegedAction;
 import java.util.Collections;
 import java.util.Enumeration;
+import java.util.Iterator;
 import java.util.List;
+import java.util.NoSuchElementException;
+import java.util.ServiceLoader;
 import java.util.Set;
+import java.util.function.Predicate;
 import java.util.jar.JarFile;
 
 import sun.reflect.Reflection;
@@ -185,6 +189,37 @@ final class JDKSpecific {
         list.add("jdk.internal.reflect.");
     }
 
+    static <T> Iterable<T> findServices(final Class<T> serviceType, final Predicate<Class<?>> filter, final ClassLoader classLoader) {
+        final Iterator<T> delegate = ServiceLoader.load(serviceType, classLoader).iterator();
+        return new Iterable<T>() {
+            public Iterator<T> iterator() {
+                return new Iterator<T>() {
+                    T next = null;
+
+                    public boolean hasNext() {
+                        T next;
+                        while (this.next == null) {
+                            if (!delegate.hasNext()) return false;
+                            next = delegate.next();
+                            if (filter.test(next.getClass())) {
+                                this.next = next;
+                                return true;
+                            }
+                        }
+                        return true;
+                    }
+
+                    public T next() {
+                        if (!hasNext()) throw new NoSuchElementException();
+                        T next = this.next;
+                        this.next = null;
+                        return next;
+                    }
+                };
+            }
+        };
+    }
+
     // === nested util stuff, non-API ===
 
     static final class Hack extends SecurityManager {


=====================================
src/main/java/org/jboss/modules/Module.java
=====================================
@@ -45,6 +45,7 @@ import java.util.NoSuchElementException;
 import java.util.ServiceLoader;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicReference;
+import java.util.function.Predicate;
 
 import org.jboss.modules._private.ModulesPrivateAccess;
 import org.jboss.modules.filter.ClassFilter;
@@ -547,6 +548,27 @@ public final class Module {
         return Utils.JDK_MODULE_LOADER;
     }
 
+    /**
+     * Returns an iterable of available and filtered providers of given type.
+     *
+     * @param type service provider type
+     * @param filter to specify which providers to load
+     * @param loader to be used for providers lookup
+     * @return An iterable of available and filtered providers of given type
+     */
+    public static <T> Iterable<T> findServices(final Class<T> type, final Predicate<Class<?>> filter, final ClassLoader loader) {
+        if (type == null) {
+            throw new IllegalArgumentException("type is null");
+        }
+        if (filter == null) {
+            throw new IllegalArgumentException("filter is null");
+        }
+        if (loader == null) {
+            throw new IllegalArgumentException("loader is null");
+        }
+        return JDKSpecific.findServices(type, filter, loader);
+    }
+
     static void initBootModuleLoader(ModuleLoader loader) {
         BOOT_MODULE_LOADER.set(loader);
     }


=====================================
src/main/java/org/jboss/modules/ModuleLoader.java
=====================================
@@ -265,7 +265,11 @@ public class ModuleLoader {
         return version == null ? module.getName() : module.getName() + "@" + version;
     }
 
-    static void installMBeanServer() {
+    /**
+     * Install JBoss Modules MBeans. WARNING: This method is not intended to be
+     * called by application code.
+     */
+    public static void installMBeanServer() {
         REG_REF.installReal();
     }
 


=====================================
src/main/java9/org/jboss/modules/JDKSpecific.java
=====================================
@@ -46,9 +46,13 @@ import java.util.Enumeration;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
+import java.util.NoSuchElementException;
+import java.util.ServiceLoader;
 import java.util.Set;
-import java.util.stream.Stream;
+import java.util.stream.Collectors;
+import java.util.function.Predicate;
 import java.util.jar.JarFile;
+import java.util.stream.Stream;
 
 /**
  * JDK-specific classes which are replaced for different JDK major versions.  This one is for Java 9 only.
@@ -188,6 +192,37 @@ final class JDKSpecific {
         // none in Java 9+
     }
 
+    static <T> Iterable<T> findServices(final Class<T> serviceType, final Predicate<Class<?>> filter, final ClassLoader classLoader) {
+       final Iterator<ServiceLoader.Provider<T>> delegate = ServiceLoader.load(serviceType, classLoader).stream().iterator();
+       return new Iterable<T>() {
+            public Iterator<T> iterator() {
+                return new Iterator<T>() {
+                    T next = null;
+
+                    public boolean hasNext() {
+                        ServiceLoader.Provider<T> next;
+                        while (this.next == null) {
+                            if (!delegate.hasNext()) return false;
+                            next = delegate.next();
+                            if (filter.test(next.type())) {
+                                this.next = next.get();
+                                return true;
+                            }
+                        }
+                        return true;
+                    }
+
+                    public T next() {
+                        if (!hasNext()) throw new NoSuchElementException();
+                        T next = this.next;
+                        this.next = null;
+                        return next;
+                    }
+                };
+            }
+        };
+    }
+
     // === nested util stuff, non-API ===
 
     private static Class<?> processFrame(Stream<StackWalker.StackFrame> stream) {



View it on GitLab: https://salsa.debian.org/java-team/jboss-modules/-/commit/6ce2b122da5a831ac25c0a4e8ff533ad64e7b8bc

-- 
View it on GitLab: https://salsa.debian.org/java-team/jboss-modules/-/commit/6ce2b122da5a831ac25c0a4e8ff533ad64e7b8bc
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-java-commits/attachments/20201205/32984dcf/attachment.html>


More information about the pkg-java-commits mailing list