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/08/05 10:28:19 UTC

[flink] branch master updated: [FLINK-18805][config] Improve handling of upper-character sequences

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


The following commit(s) were added to refs/heads/master by this push:
     new e5b648b  [FLINK-18805][config] Improve handling of upper-character sequences
e5b648b is described below

commit e5b648b08a7d9b25f496a3a09a304cec17a0edfc
Author: Chesnay Schepler <ch...@apache.org>
AuthorDate: Mon Aug 3 12:31:38 2020 +0200

    [FLINK-18805][config] Improve handling of upper-character sequences
---
 ...iguration.html => rocksdb_configurable_configuration.html} |  0
 ...rocks_db_configuration.html => rocksdb_configuration.html} |  0
 ...guration.html => rocksdb_native_metric_configuration.html} |  0
 .../flink/docs/configuration/ConfigOptionsDocGenerator.java   | 11 ++++++++---
 .../docs/configuration/ConfigOptionsDocGeneratorTest.java     |  7 +++++++
 5 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/docs/_includes/generated/rocks_db_configurable_configuration.html b/docs/_includes/generated/rocksdb_configurable_configuration.html
similarity index 100%
rename from docs/_includes/generated/rocks_db_configurable_configuration.html
rename to docs/_includes/generated/rocksdb_configurable_configuration.html
diff --git a/docs/_includes/generated/rocks_db_configuration.html b/docs/_includes/generated/rocksdb_configuration.html
similarity index 100%
rename from docs/_includes/generated/rocks_db_configuration.html
rename to docs/_includes/generated/rocksdb_configuration.html
diff --git a/docs/_includes/generated/rocks_db_native_metric_configuration.html b/docs/_includes/generated/rocksdb_native_metric_configuration.html
similarity index 100%
rename from docs/_includes/generated/rocks_db_native_metric_configuration.html
rename to docs/_includes/generated/rocksdb_native_metric_configuration.html
diff --git a/flink-docs/src/main/java/org/apache/flink/docs/configuration/ConfigOptionsDocGenerator.java b/flink-docs/src/main/java/org/apache/flink/docs/configuration/ConfigOptionsDocGenerator.java
index 5866a92..4380d70 100644
--- a/flink-docs/src/main/java/org/apache/flink/docs/configuration/ConfigOptionsDocGenerator.java
+++ b/flink-docs/src/main/java/org/apache/flink/docs/configuration/ConfigOptionsDocGenerator.java
@@ -197,18 +197,23 @@ public class ConfigOptionsDocGenerator {
 					if (!matcher.matches()) {
 						throw new RuntimeException("Pattern did not match for " + optionsClass.getSimpleName() + '.');
 					}
-					name = matcher.group(CLASS_PREFIX_GROUP).replaceAll("(.)(\\p{Upper})", "$1_$2").toLowerCase();
+					name = matcher.group(CLASS_PREFIX_GROUP);
 				} else {
-					name = group.f0.name().replaceAll("(.)(\\p{Upper})", "$1_$2").toLowerCase();
+					name = group.f0.name();
 				}
 
-				String outputFile = name + "_configuration.html";
+				String outputFile = toSnakeCase(name) + "_configuration.html";
 				Files.write(Paths.get(outputDirectory, outputFile), group.f1.getBytes(StandardCharsets.UTF_8));
 			}
 		});
 	}
 
 	@VisibleForTesting
+	static String toSnakeCase(String name) {
+		return name.replaceAll("(.)([A-Z][a-z])", "$1_$2").toLowerCase();
+	}
+
+	@VisibleForTesting
 	static void processConfigOptions(String rootDir, String module, String packageName, String pathPrefix, ThrowingConsumer<Class<?>, IOException> classConsumer) throws IOException, ClassNotFoundException {
 		Path configDir = Paths.get(rootDir, module, pathPrefix, packageName.replaceAll("\\.", "/"));
 
diff --git a/flink-docs/src/test/java/org/apache/flink/docs/configuration/ConfigOptionsDocGeneratorTest.java b/flink-docs/src/test/java/org/apache/flink/docs/configuration/ConfigOptionsDocGeneratorTest.java
index 23fcc5f..b13ec0b 100644
--- a/flink-docs/src/test/java/org/apache/flink/docs/configuration/ConfigOptionsDocGeneratorTest.java
+++ b/flink-docs/src/test/java/org/apache/flink/docs/configuration/ConfigOptionsDocGeneratorTest.java
@@ -545,6 +545,13 @@ public class ConfigOptionsDocGeneratorTest {
 		assertThat(ConfigOptionsDocGenerator.generateTablesForClass(EmptyConfigOptions.class), empty());
 	}
 
+	@Test
+	public void testSnakeCaseConversion() {
+		assertEquals("rocks_options", ConfigOptionsDocGenerator.toSnakeCase("RocksOptions"));
+		assertEquals("rocksdb_options", ConfigOptionsDocGenerator.toSnakeCase("RocksDBOptions"));
+		assertEquals("db_options", ConfigOptionsDocGenerator.toSnakeCase("DBOptions"));
+	}
+
 	static String getProjectRootDir() {
 		final String dirFromProperty = System.getProperty("rootDir");
 		if (dirFromProperty != null) {