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 2022/02/24 15:56:39 UTC
[flink] 01/03: [hotfix][tests] Lazily create MiniClusterResourceConfiguraiton
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 881d4c6cb2094d6c3b37a5cc33dfe09918d02771
Author: Chesnay Schepler <ch...@apache.org>
AuthorDate: Thu Feb 24 14:19:14 2022 +0100
[hotfix][tests] Lazily create MiniClusterResourceConfiguraiton
Certain configuration parameters (e.g., ports) are inferred from other extensions. As extensions commonly only really start up resources in before*() methods the current approach of determining the configuration up-front imposes limitations as to whether a MiniClusterExtension can be static or not.
With this change the configuration can also be passed in with a Supplier that is evaluated right before the cluster is started.
---
.../runtime/testutils/MiniClusterExtension.java | 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
diff --git a/flink-runtime/src/test/java/org/apache/flink/runtime/testutils/MiniClusterExtension.java b/flink-runtime/src/test/java/org/apache/flink/runtime/testutils/MiniClusterExtension.java
index a6f7a37..0e1115c 100644
--- a/flink-runtime/src/test/java/org/apache/flink/runtime/testutils/MiniClusterExtension.java
+++ b/flink-runtime/src/test/java/org/apache/flink/runtime/testutils/MiniClusterExtension.java
@@ -18,21 +18,35 @@
package org.apache.flink.runtime.testutils;
+import org.apache.flink.annotation.Experimental;
import org.apache.flink.configuration.UnmodifiableConfiguration;
import org.apache.flink.core.testutils.CustomExtension;
import org.apache.flink.runtime.minicluster.MiniCluster;
import org.junit.jupiter.api.extension.ExtensionContext;
+import javax.annotation.Nullable;
+
import java.net.URI;
+import java.util.function.Supplier;
/** An extension which starts a {@link MiniCluster} for testing purposes. */
public class MiniClusterExtension implements CustomExtension {
- private final MiniClusterResource miniClusterResource;
+
+ private final Supplier<MiniClusterResourceConfiguration>
+ miniClusterResourceConfigurationSupplier;
+ @Nullable private MiniClusterResource miniClusterResource;
public MiniClusterExtension(
final MiniClusterResourceConfiguration miniClusterResourceConfiguration) {
- this.miniClusterResource = new MiniClusterResource(miniClusterResourceConfiguration);
+ this(() -> miniClusterResourceConfiguration);
+ }
+
+ @Experimental
+ public MiniClusterExtension(
+ final Supplier<MiniClusterResourceConfiguration>
+ miniClusterResourceConfigurationSupplier) {
+ this.miniClusterResourceConfigurationSupplier = miniClusterResourceConfigurationSupplier;
}
public int getNumberSlots() {
@@ -53,6 +67,8 @@ public class MiniClusterExtension implements CustomExtension {
@Override
public void before(ExtensionContext context) throws Exception {
+ this.miniClusterResource =
+ new MiniClusterResource(miniClusterResourceConfigurationSupplier.get());
miniClusterResource.before();
}