From 2d3f2a3275ba615245fcabda96b8282cb86940ad Mon Sep 17 00:00:00 2001 From: Sivabalan Narayanan Date: Wed, 17 Nov 2021 14:43:00 -0500 Subject: [PATCH] [HUDI-2734] Setting default metadata enable as false for Java (#4003) --- .../apache/hudi/config/HoodieWriteConfig.java | 2 +- .../TestJavaCopyOnWriteActionExecutor.java | 4 +--- .../common/config/HoodieMetadataConfig.java | 22 +++++++++++++++++++ 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/config/HoodieWriteConfig.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/config/HoodieWriteConfig.java index 496cd2d05..7988e9307 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/config/HoodieWriteConfig.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/config/HoodieWriteConfig.java @@ -2179,7 +2179,7 @@ public class HoodieWriteConfig extends HoodieConfig { writeConfig.setDefaultOnCondition(!isPayloadConfigSet, HoodiePayloadConfig.newBuilder().fromProperties(writeConfig.getProps()).build()); writeConfig.setDefaultOnCondition(!isMetadataConfigSet, - HoodieMetadataConfig.newBuilder().fromProperties(writeConfig.getProps()).build()); + HoodieMetadataConfig.newBuilder().withEngineType(engineType).fromProperties(writeConfig.getProps()).build()); writeConfig.setDefaultOnCondition(!isLockConfigSet, HoodieLockConfig.newBuilder().fromProperties(writeConfig.getProps()).build()); writeConfig.setDefaultOnCondition(!isPreCommitValidationConfigSet, diff --git a/hudi-client/hudi-java-client/src/test/java/org/apache/hudi/table/action/commit/TestJavaCopyOnWriteActionExecutor.java b/hudi-client/hudi-java-client/src/test/java/org/apache/hudi/table/action/commit/TestJavaCopyOnWriteActionExecutor.java index 4a3f3d5bc..796d7b74a 100644 --- a/hudi-client/hudi-java-client/src/test/java/org/apache/hudi/table/action/commit/TestJavaCopyOnWriteActionExecutor.java +++ b/hudi-client/hudi-java-client/src/test/java/org/apache/hudi/table/action/commit/TestJavaCopyOnWriteActionExecutor.java @@ -21,7 +21,6 @@ package org.apache.hudi.table.action.commit; import org.apache.hudi.client.HoodieJavaWriteClient; import org.apache.hudi.client.WriteStatus; import org.apache.hudi.common.bloom.BloomFilter; -import org.apache.hudi.common.config.HoodieMetadataConfig; import org.apache.hudi.common.engine.EngineType; import org.apache.hudi.common.fs.FSUtils; import org.apache.hudi.common.model.HoodieKey; @@ -115,8 +114,7 @@ public class TestJavaCopyOnWriteActionExecutor extends HoodieJavaClientTestBase return HoodieWriteConfig.newBuilder() .withEngineType(EngineType.JAVA) .withPath(basePath) - .withSchema(SCHEMA.toString()) - .withMetadataConfig(HoodieMetadataConfig.newBuilder().enable(false).build()); + .withSchema(SCHEMA.toString()); } @Test diff --git a/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieMetadataConfig.java b/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieMetadataConfig.java index 75d014521..ea99014ea 100644 --- a/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieMetadataConfig.java +++ b/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieMetadataConfig.java @@ -18,6 +18,9 @@ package org.apache.hudi.common.config; +import org.apache.hudi.common.engine.EngineType; +import org.apache.hudi.exception.HoodieNotSupportedException; + import javax.annotation.concurrent.Immutable; import java.io.File; @@ -163,6 +166,7 @@ public final class HoodieMetadataConfig extends HoodieConfig { public static class Builder { + private EngineType engineType = EngineType.SPARK; private final HoodieMetadataConfig metadataConfig = new HoodieMetadataConfig(); public Builder fromFile(File propertiesFile) throws IOException { @@ -233,10 +237,28 @@ public final class HoodieMetadataConfig extends HoodieConfig { return this; } + public Builder withEngineType(EngineType engineType) { + this.engineType = engineType; + return this; + } + public HoodieMetadataConfig build() { + metadataConfig.setDefaultValue(ENABLE, getDefaultMetadataEnable(engineType)); metadataConfig.setDefaults(HoodieMetadataConfig.class.getName()); return metadataConfig; } + + private boolean getDefaultMetadataEnable(EngineType engineType) { + switch (engineType) { + case SPARK: + return ENABLE.defaultValue(); + case FLINK: + case JAVA: + return false; + default: + throw new HoodieNotSupportedException("Unsupported engine " + engineType); + } + } } /**