update run handler to accept more environment variables (#67)
diff --git a/core/java8/proxy/src/main/java/openwhisk/java/action/Proxy.java b/core/java8/proxy/src/main/java/openwhisk/java/action/Proxy.java
index dc6c861..209f436 100644
--- a/core/java8/proxy/src/main/java/openwhisk/java/action/Proxy.java
+++ b/core/java8/proxy/src/main/java/openwhisk/java/action/Proxy.java
@@ -28,6 +28,8 @@
import java.nio.charset.StandardCharsets;
import java.nio.file.Path;
import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
@@ -136,14 +138,15 @@
try {
InputStream is = t.getRequestBody();
JsonParser parser = new JsonParser();
- JsonElement ie = parser.parse(new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8)));
- JsonObject inputObject = ie.getAsJsonObject().getAsJsonObject("value");
+ JsonObject body = parser.parse(new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8))).getAsJsonObject();
+ JsonObject inputObject = body.getAsJsonObject("value");
HashMap<String, String> env = new HashMap<String, String>();
- for (String p : new String[] { "api_key", "namespace", "action_name", "activation_id", "deadline" }) {
+ Set<Map.Entry<String, JsonElement>> entrySet = body.entrySet();
+ for(Map.Entry<String, JsonElement> entry : entrySet){
try {
- String val = ie.getAsJsonObject().getAsJsonPrimitive(p).getAsString();
- env.put(String.format("__OW_%s", p.toUpperCase()), val);
+ if(!entry.getKey().equalsIgnoreCase("value"))
+ env.put(String.format("__OW_%s", entry.getKey().toUpperCase()), entry.getValue().getAsString());
} catch (Exception e) {}
}