You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2019/06/30 19:17:09 UTC

[juneau] branch master updated: JUNEAU-119 Review RestContext/RestMethodContext properties for unnecessary lists-of-strings.

This is an automated email from the ASF dual-hosted git repository.

jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git


The following commit(s) were added to refs/heads/master by this push:
     new c33d936  JUNEAU-119 Review RestContext/RestMethodContext properties for unnecessary lists-of-strings.
c33d936 is described below

commit c33d9369d54b6f7f4fc41f42986f26ae7ce6a3ba
Author: JamesBognar <ja...@apache.org>
AuthorDate: Sun Jun 30 15:15:46 2019 -0400

    JUNEAU-119 Review RestContext/RestMethodContext properties for
    unnecessary lists-of-strings.
---
 .../java/org/apache/juneau/config/store/ConfigFileStore.java  | 10 +++++-----
 .../apache/juneau/config/store/ConfigFileStoreBuilder.java    |  2 +-
 .../org/apache/juneau/config/store/ConfigFileStoreTest.java   |  2 +-
 .../src/main/java/org/apache/juneau/Context.java              | 11 +++++++++++
 4 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigFileStore.java b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigFileStore.java
index ece6933..d3785d2 100644
--- a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigFileStore.java
+++ b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigFileStore.java
@@ -164,12 +164,12 @@ public class ConfigFileStore extends ConfigStore {
 	 *
 	 * <h5 class='section'>Property:</h5>
 	 * <ul>
-	 * 	<li><b>Name:</b>  <js>"ConfigFileStore.extensions.ls"</js>
-	 * 	<li><b>Data type:</b>  <c>String[]</c>
+	 * 	<li><b>Name:</b>  <js>"ConfigFileStore.extensions.s"</js>
+	 * 	<li><b>Data type:</b>  <c>String</c> (comma-delimited list)
 	 * 	<li><b>Default:</b>  <jk>"cfg"</jk>
 	 * 	<li><b>Methods:</b>
 	 * 		<ul>
-	 * 			<li class='jm'>{@link ConfigFileStoreBuilder#extensions(String...)}
+	 * 			<li class='jm'>{@link ConfigFileStoreBuilder#extensions(String)}
 	 * 		</ul>
 	 * </ul>
 	 *
@@ -177,7 +177,7 @@ public class ConfigFileStore extends ConfigStore {
 	 * <p>
 	 * Defines what file extensions to search for when the config name does not have an extension.
 	 */
-	public static final String FILESTORE_extensions = PREFIX + ".extensions.ls";
+	public static final String FILESTORE_extensions = PREFIX + ".extensions.s";
 
 	//-------------------------------------------------------------------------------------------------------------------
 	// Predefined instances
@@ -225,7 +225,7 @@ public class ConfigFileStore extends ConfigStore {
 			dir.mkdirs();
 			charset = getProperty(FILESTORE_charset, Charset.class, Charset.defaultCharset());
 			updateOnWrite = getBooleanProperty(FILESTORE_updateOnWrite, false);
-			extensions = getArrayProperty(FILESTORE_extensions, String.class, new String[]{"cfg"});
+			extensions = getCdlProperty(FILESTORE_extensions, "cfg");
 			WatcherSensitivity ws = getProperty(FILESTORE_watcherSensitivity, WatcherSensitivity.class, WatcherSensitivity.MEDIUM);
 			watcher = getBooleanProperty(FILESTORE_useWatcher, false) ? new WatcherThread(dir, ws) : null;
 			if (watcher != null)
diff --git a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigFileStoreBuilder.java b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigFileStoreBuilder.java
index 527eca2..0361744 100644
--- a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigFileStoreBuilder.java
+++ b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigFileStoreBuilder.java
@@ -218,7 +218,7 @@ public class ConfigFileStoreBuilder extends ConfigStoreBuilder {
 	 * 	<br>The default is <js>"cfg"</js>.
 	 * @return This object (for method chaining).
 	 */
-	public ConfigFileStoreBuilder extensions(String...value) {
+	public ConfigFileStoreBuilder extensions(String value) {
 		super.set(FILESTORE_extensions, value);
 		return this;
 	}
diff --git a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/config/store/ConfigFileStoreTest.java b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/config/store/ConfigFileStoreTest.java
index 0b7f96b..f5f68ce 100644
--- a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/config/store/ConfigFileStoreTest.java
+++ b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/config/store/ConfigFileStoreTest.java
@@ -75,7 +75,7 @@ public class ConfigFileStoreTest {
 
 	@Test
 	public void testSimpleCreateAndDeleteWithMultipleSpecialExtension() throws Exception {
-		ConfigFileStore fs = ConfigFileStore.create().directory(DIR).extensions("foo1","foo2").build();
+		ConfigFileStore fs = ConfigFileStore.create().directory(DIR).extensions("foo1,foo2").build();
 		assertNull(fs.write("X", null, "foo"));
 		assertEquals("foo", fs.read("X"));
 		assertFileExists("X.foo1");
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Context.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Context.java
index 5a0bf9d..30eb9fe 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Context.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Context.java
@@ -125,6 +125,17 @@ public abstract class Context {
 	}
 
 	/**
+	 * Returns a property as a parsed comma-delimited list of strings.
+	 *
+	 * @param key The property name.
+	 * @param def The default value.
+	 * @return The property value, or the default value if it doesn't exist.
+	 */
+	public final String[] getCdlProperty(String key, String def) {
+		return StringUtils.split(StringUtils.emptyIfNull(getProperty(key, String.class, def)));
+	}
+
+	/**
 	 * Same as {@link #getStringProperty(String, String)} but returns a blank instead of the default value if it resolves to <js>"NONE"</js>.
 	 *
 	 * @param key The property name.