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) {