[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