You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by ch...@apache.org on 2020/03/27 21:38:27 UTC
[flink] 01/04: [FLINK-16222][core] Relax Plugin bounded type
parameter constraint
This is an automated email from the ASF dual-hosted git repository.
chesnay pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git
commit 4308e0c5b4e77e0f5fe0ae09ec8f6c6efc361a2a
Author: Alexander Fedulov <14...@users.noreply.github.com>
AuthorDate: Fri Feb 21 15:46:48 2020 +0100
[FLINK-16222][core] Relax Plugin bounded type parameter constraint
---
.../src/main/java/org/apache/flink/core/plugin/PluginLoader.java | 7 +++----
.../src/main/java/org/apache/flink/core/plugin/PluginManager.java | 2 +-
2 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/flink-core/src/main/java/org/apache/flink/core/plugin/PluginLoader.java b/flink-core/src/main/java/org/apache/flink/core/plugin/PluginLoader.java
index 6dbe675..7287399 100644
--- a/flink-core/src/main/java/org/apache/flink/core/plugin/PluginLoader.java
+++ b/flink-core/src/main/java/org/apache/flink/core/plugin/PluginLoader.java
@@ -20,7 +20,6 @@ package org.apache.flink.core.plugin;
import org.apache.flink.annotation.VisibleForTesting;
import org.apache.flink.util.ArrayUtils;
-import org.apache.flink.util.ChildFirstClassLoader;
import org.apache.flink.util.TemporaryClassLoaderContext;
import javax.annotation.concurrent.ThreadSafe;
@@ -35,7 +34,7 @@ import java.util.ServiceLoader;
/**
* A {@link PluginLoader} is used by the {@link PluginManager} to load a single plugin. It is essentially a combination
- * of a {@link ChildFirstClassLoader} and {@link ServiceLoader}. This class can locate and load service implementations
+ * of a {@link PluginClassLoader} and {@link ServiceLoader}. This class can locate and load service implementations
* from the plugin for a given SPI. The {@link PluginDescriptor}, which among other information contains the resource
* URLs, is provided at construction.
*/
@@ -69,7 +68,7 @@ public class PluginLoader {
* @param <P> Type of the requested plugin service.
* @return An iterator of all implementations of the given service interface that could be loaded from the plugin.
*/
- public <P extends Plugin> Iterator<P> load(Class<P> service) {
+ public <P> Iterator<P> load(Class<P> service) {
try (TemporaryClassLoaderContext ignored = TemporaryClassLoaderContext.of(pluginClassLoader)) {
return new ContextClassLoaderSettingIterator<>(
ServiceLoader.load(service, pluginClassLoader).iterator(),
@@ -83,7 +82,7 @@ public class PluginLoader {
*
* @param <P> type of the iterated plugin element.
*/
- static class ContextClassLoaderSettingIterator<P extends Plugin> implements Iterator<P> {
+ static class ContextClassLoaderSettingIterator<P> implements Iterator<P> {
private final Iterator<P> delegate;
private final ClassLoader pluginClassLoader;
diff --git a/flink-core/src/main/java/org/apache/flink/core/plugin/PluginManager.java b/flink-core/src/main/java/org/apache/flink/core/plugin/PluginManager.java
index 2385732..8d50585 100644
--- a/flink-core/src/main/java/org/apache/flink/core/plugin/PluginManager.java
+++ b/flink-core/src/main/java/org/apache/flink/core/plugin/PluginManager.java
@@ -63,7 +63,7 @@ public class PluginManager {
* @param <P> Type of the requested plugin service.
* @return Iterator over all implementations of the given service that could be loaded from all known plugins.
*/
- public <P extends Plugin> Iterator<P> load(Class<P> service) {
+ public <P> Iterator<P> load(Class<P> service) {
ArrayList<Iterator<P>> combinedIterators = new ArrayList<>(pluginDescriptors.size());
for (PluginDescriptor pluginDescriptor : pluginDescriptors) {
PluginLoader pluginLoader = PluginLoader.create(pluginDescriptor, parentClassLoader, alwaysParentFirstPatterns);