You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by se...@apache.org on 2015/07/21 21:11:04 UTC

[25/26] flink git commit: [FLINK-2018] [core] Add ParameterUtil.fromGenericOptionsParser()

[FLINK-2018] [core] Add ParameterUtil.fromGenericOptionsParser()

This closes #720


Project: http://git-wip-us.apache.org/repos/asf/flink/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/148395bc
Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/148395bc
Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/148395bc

Branch: refs/heads/master
Commit: 148395bcd81a93bcb1473e4e93f267edb3b71c7e
Parents: 50344d7
Author: Ajay Bhat <Aj...@air-watch.com>
Authored: Sun May 24 11:00:09 2015 +0530
Committer: Stephan Ewen <se...@apache.org>
Committed: Tue Jul 21 17:58:16 2015 +0200

----------------------------------------------------------------------
 .../org/apache/flink/api/java/utils/ParameterTool.java  | 12 ++++++++++++
 .../apache/flink/api/java/utils/ParameterToolTest.java  |  6 ++++++
 2 files changed, 18 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flink/blob/148395bc/flink-java/src/main/java/org/apache/flink/api/java/utils/ParameterTool.java
----------------------------------------------------------------------
diff --git a/flink-java/src/main/java/org/apache/flink/api/java/utils/ParameterTool.java b/flink-java/src/main/java/org/apache/flink/api/java/utils/ParameterTool.java
index 2afdff2..317dce4 100644
--- a/flink-java/src/main/java/org/apache/flink/api/java/utils/ParameterTool.java
+++ b/flink-java/src/main/java/org/apache/flink/api/java/utils/ParameterTool.java
@@ -18,9 +18,11 @@
 package org.apache.flink.api.java.utils;
 
 import com.google.common.base.Preconditions;
+import org.apache.commons.cli.Option;
 import org.apache.commons.lang3.math.NumberUtils;
 import org.apache.flink.api.common.ExecutionConfig;
 import org.apache.flink.configuration.Configuration;
+import org.apache.hadoop.util.GenericOptionsParser;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -141,6 +143,16 @@ public class ParameterTool extends ExecutionConfig.GlobalJobParameters implement
 		return fromMap((Map) System.getProperties());
 	}
 
+	public static ParameterTool fromGenericOptionsParser(String[] args) throws IOException {
+		Option[] options = new GenericOptionsParser(args).getCommandLine().getOptions();
+		Map<String, String> map = new HashMap<String, String>();
+		for (Option option : options) {
+			String[] split = option.getValue().split("=");
+			map.put(split[0], split[1]);
+		}
+		return fromMap(map);
+	}
+
 	// ------------------ ParameterUtil  ------------------------
 	protected final Map<String, String> data;
 	protected final HashMap<String, String> defaultData;

http://git-wip-us.apache.org/repos/asf/flink/blob/148395bc/flink-java/src/test/java/org/apache/flink/api/java/utils/ParameterToolTest.java
----------------------------------------------------------------------
diff --git a/flink-java/src/test/java/org/apache/flink/api/java/utils/ParameterToolTest.java b/flink-java/src/test/java/org/apache/flink/api/java/utils/ParameterToolTest.java
index c660b7a..8987c97 100644
--- a/flink-java/src/test/java/org/apache/flink/api/java/utils/ParameterToolTest.java
+++ b/flink-java/src/test/java/org/apache/flink/api/java/utils/ParameterToolTest.java
@@ -150,6 +150,12 @@ public class ParameterToolTest {
 		validate(parameter);
 	}
 
+	@Test
+	public void testFromGenericOptionsParser() throws IOException {
+		ParameterTool parameter = ParameterTool.fromGenericOptionsParser(new String[]{"-D", "input=myInput", "-DexpectedCount=15"});
+		validate(parameter);
+	}
+
 	private void validate(ParameterTool parameter) {
 		ClosureCleaner.ensureSerializable(parameter);
 		Assert.assertEquals("myInput", parameter.getRequired("input"));