Details
diff --git a/azkaban-common/src/main/java/azkaban/jobcallback/JobCallbackConstants.java b/azkaban-common/src/main/java/azkaban/jobcallback/JobCallbackConstants.java
index b66eb58..122640d 100644
--- a/azkaban-common/src/main/java/azkaban/jobcallback/JobCallbackConstants.java
+++ b/azkaban-common/src/main/java/azkaban/jobcallback/JobCallbackConstants.java
@@ -6,6 +6,10 @@ public interface JobCallbackConstants {
public static final String HTTP_GET = "GET";
public static final String HTTP_POST = "POST";
+ public static final String MAX_POST_BODY_LENGTH_PROPERTY_KEY =
+ "jobcallback.max.body.length";
+ public static final int DEFAULT_POST_BODY_LENGTH = 4096;
+
public static final String MAX_CALLBACK_COUNT_PROPERTY_KEY =
"jobcallback.max_count";
public static final int DEFAULT_MAX_CALLBACK_COUNT = 3;
@@ -24,12 +28,12 @@ public interface JobCallbackConstants {
public static final String JOB_CALLBACK_BODY_TEMPLATE = "job.notification."
+ STATUS_TOKEN + "." + SEQUENCE_TOKEN + ".body";
- public static final String SERVER_TOKEN = "?{server}";
- public static final String PROJECT_TOKEN = "?{project}";
- public static final String FLOW_TOKEN = "?{flow}";
- public static final String EXECUTION_ID_TOKEN = "?{executionId}";
- public static final String JOB_TOKEN = "?{job}";
- public static final String JOB_STATUS_TOKEN = "?{status}";
+ public static final String CONTEXT_SERVER_TOKEN = "?{server}";
+ public static final String CONTEXT_PROJECT_TOKEN = "?{project}";
+ public static final String CONTEXT_FLOW_TOKEN = "?{flow}";
+ public static final String CONTEXT_EXECUTION_ID_TOKEN = "?{executionId}";
+ public static final String CONTEXT_JOB_TOKEN = "?{job}";
+ public static final String CONTEXT_JOB_STATUS_TOKEN = "?{status}";
public static final String HEADER_ELEMENT_DELIMITER = "\r\n";
public static final String HEADER_NAME_VALUE_DELIMITER = ":";
diff --git a/azkaban-common/src/main/java/azkaban/jobcallback/JobCallbackValidator.java b/azkaban-common/src/main/java/azkaban/jobcallback/JobCallbackValidator.java
index b4848d2..9f9ea38 100644
--- a/azkaban-common/src/main/java/azkaban/jobcallback/JobCallbackValidator.java
+++ b/azkaban-common/src/main/java/azkaban/jobcallback/JobCallbackValidator.java
@@ -1,10 +1,12 @@
package azkaban.jobcallback;
+import static azkaban.jobcallback.JobCallbackConstants.DEFAULT_POST_BODY_LENGTH;
import static azkaban.jobcallback.JobCallbackConstants.HTTP_GET;
import static azkaban.jobcallback.JobCallbackConstants.HTTP_POST;
import static azkaban.jobcallback.JobCallbackConstants.JOB_CALLBACK_BODY_TEMPLATE;
import static azkaban.jobcallback.JobCallbackConstants.JOB_CALLBACK_REQUEST_METHOD_TEMPLATE;
import static azkaban.jobcallback.JobCallbackConstants.JOB_CALLBACK_URL_TEMPLATE;
+import static azkaban.jobcallback.JobCallbackConstants.MAX_POST_BODY_LENGTH_PROPERTY_KEY;
import static azkaban.jobcallback.JobCallbackConstants.SEQUENCE_TOKEN;
import static azkaban.jobcallback.JobCallbackConstants.STATUS_TOKEN;
@@ -41,10 +43,15 @@ public class JobCallbackValidator {
JobCallbackConstants.MAX_CALLBACK_COUNT_PROPERTY_KEY,
JobCallbackConstants.DEFAULT_MAX_CALLBACK_COUNT);
+ int maxPostBodyLength =
+ serverProps.getInt(MAX_POST_BODY_LENGTH_PROPERTY_KEY,
+ DEFAULT_POST_BODY_LENGTH);
+
int totalCallbackCount = 0;
for (JobCallbackStatusEnum jobStatus : JobCallbackStatusEnum.values()) {
totalCallbackCount +=
- validateBasedOnStatus(jobProps, errors, jobStatus, maxNumCallback);
+ validateBasedOnStatus(jobProps, errors, jobStatus, maxNumCallback,
+ maxPostBodyLength);
}
logger.info("Found " + totalCallbackCount + " job callbacks for job "
@@ -54,44 +61,48 @@ public class JobCallbackValidator {
private static int validateBasedOnStatus(Props jobProps,
Collection<String> errors, JobCallbackStatusEnum jobStatus,
- int maxNumCallback) {
+ int maxNumCallback, int maxPostBodyLength) {
int callbackCount = 0;
// replace property templates with status
String jobCallBackUrl =
- JOB_CALLBACK_URL_TEMPLATE.replace(STATUS_TOKEN, jobStatus.name()
+ JOB_CALLBACK_URL_TEMPLATE.replaceFirst(STATUS_TOKEN, jobStatus.name()
.toLowerCase());
String requestMethod =
- JOB_CALLBACK_REQUEST_METHOD_TEMPLATE.replace(STATUS_TOKEN, jobStatus
- .name().toLowerCase());
+ JOB_CALLBACK_REQUEST_METHOD_TEMPLATE.replaceFirst(STATUS_TOKEN,
+ jobStatus.name().toLowerCase());
String httpBody =
- JOB_CALLBACK_BODY_TEMPLATE.replace(STATUS_TOKEN, jobStatus.name()
+ JOB_CALLBACK_BODY_TEMPLATE.replaceFirst(STATUS_TOKEN, jobStatus.name()
.toLowerCase());
for (int i = 1; i <= maxNumCallback; i++) {
// callback url
String callbackUrlKey =
- jobCallBackUrl.replace(SEQUENCE_TOKEN, Integer.toString(i));
+ jobCallBackUrl.replaceFirst(SEQUENCE_TOKEN, Integer.toString(i));
String callbackUrlValue = jobProps.get(callbackUrlKey);
if (callbackUrlValue == null || callbackUrlValue.length() == 0) {
break;
} else {
String requestMethodKey =
- requestMethod.replace(SEQUENCE_TOKEN, Integer.toString(i));
+ requestMethod.replaceFirst(SEQUENCE_TOKEN, Integer.toString(i));
String methodValue = jobProps.getString(requestMethodKey, HTTP_GET);
if (HTTP_POST.equals(methodValue)) {
// now try to get the post body
String postBodyKey =
- httpBody.replace(SEQUENCE_TOKEN, Integer.toString(i));
+ httpBody.replaceFirst(SEQUENCE_TOKEN, Integer.toString(i));
String postBodyValue = jobProps.get(postBodyKey);
if (postBodyValue == null || postBodyValue.length() == 0) {
errors.add("No POST body was specified for job callback '"
+ callbackUrlValue + "'");
+ } else if (postBodyValue.length() > maxPostBodyLength) {
+ errors.add("POST body length is : " + postBodyValue.length()
+ + " which is larger than supported length of "
+ + maxPostBodyLength);
} else {
callbackCount++;
}
diff --git a/azkaban-common/src/test/java/azkaban/jobcallback/JobCallbackValidatorTest.java b/azkaban-common/src/test/java/azkaban/jobcallback/JobCallbackValidatorTest.java
index f20497a..53c76ff 100644
--- a/azkaban-common/src/test/java/azkaban/jobcallback/JobCallbackValidatorTest.java
+++ b/azkaban-common/src/test/java/azkaban/jobcallback/JobCallbackValidatorTest.java
@@ -2,6 +2,7 @@ package azkaban.jobcallback;
import static azkaban.jobcallback.JobCallbackConstants.DEFAULT_MAX_CALLBACK_COUNT;
import static azkaban.jobcallback.JobCallbackConstants.MAX_CALLBACK_COUNT_PROPERTY_KEY;
+import static azkaban.jobcallback.JobCallbackConstants.MAX_POST_BODY_LENGTH_PROPERTY_KEY;
import java.util.HashSet;
import java.util.Set;
@@ -167,4 +168,37 @@ public class JobCallbackValidatorTest {
Assert.assertEquals(0, errors.size());
}
+
+ @Test
+ public void postBodyLengthTooLargeTest() {
+
+ Props jobProps = new Props();
+ jobProps.put("job.notification."
+ + JobCallbackStatusEnum.FAILURE.name().toLowerCase() + ".1.url",
+ "http://www.linkedin.com");
+
+ jobProps.put("job.notification."
+ + JobCallbackStatusEnum.FAILURE.name().toLowerCase() + ".1.method",
+ JobCallbackConstants.HTTP_POST);
+
+ String postBodyValue = "abcdefghijklmnopqrstuvwxyz";
+
+ int postBodyLength = 20;
+ Assert.assertTrue(postBodyValue.length() > postBodyLength);
+ jobProps.put("job.notification."
+ + JobCallbackStatusEnum.FAILURE.name().toLowerCase() + ".1.body",
+ postBodyValue);
+
+ Props localServerProps = new Props();
+ localServerProps.put(MAX_POST_BODY_LENGTH_PROPERTY_KEY, postBodyLength);
+
+ Set<String> errors = new HashSet<String>();
+
+ Assert.assertEquals(0, JobCallbackValidator.validate("bogusJob",
+ localServerProps, jobProps, errors));
+
+ System.out.println(errors);
+ Assert.assertEquals(1, errors.size());
+
+ }
}
diff --git a/azkaban-execserver/src/main/java/azkaban/execapp/event/JobCallbackManager.java b/azkaban-execserver/src/main/java/azkaban/execapp/event/JobCallbackManager.java
index 6b31314..2714c12 100644
--- a/azkaban-execserver/src/main/java/azkaban/execapp/event/JobCallbackManager.java
+++ b/azkaban-execserver/src/main/java/azkaban/execapp/event/JobCallbackManager.java
@@ -1,6 +1,6 @@
package azkaban.execapp.event;
-import static azkaban.jobcallback.JobCallbackConstants.JOB_TOKEN;
+import static azkaban.jobcallback.JobCallbackConstants.CONTEXT_JOB_TOKEN;
import static azkaban.jobcallback.JobCallbackStatusEnum.COMPLETED;
import static azkaban.jobcallback.JobCallbackStatusEnum.FAILURE;
import static azkaban.jobcallback.JobCallbackStatusEnum.STARTED;
@@ -162,7 +162,7 @@ public class JobCallbackManager implements EventListener {
jobCallBackStatusEnum = null; // to be explicit
}
- String jobId = contextInfo.get(JOB_TOKEN);
+ String jobId = contextInfo.get(CONTEXT_JOB_TOKEN);
if (jobCallBackStatusEnum != null) {
List<HttpRequestBase> jobCallbackHttpRequests =
@@ -219,7 +219,7 @@ public class JobCallbackManager implements EventListener {
JobCallbackUtil.parseJobCallbackProperties(props, STARTED,
contextInfo, maxNumCallBack, jobRunner.getLogger());
- String jobId = contextInfo.get(JOB_TOKEN);
+ String jobId = contextInfo.get(CONTEXT_JOB_TOKEN);
String msg =
String.format("Making %d job callbacks for job %s for jobStatus: %s",
jobCallbackHttpRequests.size(), jobId, STARTED.name());
diff --git a/azkaban-execserver/src/main/java/azkaban/execapp/event/JobCallbackUtil.java b/azkaban-execserver/src/main/java/azkaban/execapp/event/JobCallbackUtil.java
index cd576b7..a6ed354 100644
--- a/azkaban-execserver/src/main/java/azkaban/execapp/event/JobCallbackUtil.java
+++ b/azkaban-execserver/src/main/java/azkaban/execapp/event/JobCallbackUtil.java
@@ -1,8 +1,8 @@
package azkaban.execapp.event;
-import static azkaban.jobcallback.JobCallbackConstants.EXECUTION_ID_TOKEN;
+import static azkaban.jobcallback.JobCallbackConstants.CONTEXT_EXECUTION_ID_TOKEN;
import static azkaban.jobcallback.JobCallbackConstants.FIRST_JOB_CALLBACK_URL_TEMPLATE;
-import static azkaban.jobcallback.JobCallbackConstants.FLOW_TOKEN;
+import static azkaban.jobcallback.JobCallbackConstants.CONTEXT_FLOW_TOKEN;
import static azkaban.jobcallback.JobCallbackConstants.HEADER_ELEMENT_DELIMITER;
import static azkaban.jobcallback.JobCallbackConstants.HEADER_NAME_VALUE_DELIMITER;
import static azkaban.jobcallback.JobCallbackConstants.HTTP_GET;
@@ -11,11 +11,11 @@ import static azkaban.jobcallback.JobCallbackConstants.JOB_CALLBACK_BODY_TEMPLAT
import static azkaban.jobcallback.JobCallbackConstants.JOB_CALLBACK_REQUEST_HEADERS_TEMPLATE;
import static azkaban.jobcallback.JobCallbackConstants.JOB_CALLBACK_REQUEST_METHOD_TEMPLATE;
import static azkaban.jobcallback.JobCallbackConstants.JOB_CALLBACK_URL_TEMPLATE;
-import static azkaban.jobcallback.JobCallbackConstants.JOB_STATUS_TOKEN;
-import static azkaban.jobcallback.JobCallbackConstants.JOB_TOKEN;
-import static azkaban.jobcallback.JobCallbackConstants.PROJECT_TOKEN;
+import static azkaban.jobcallback.JobCallbackConstants.CONTEXT_JOB_STATUS_TOKEN;
+import static azkaban.jobcallback.JobCallbackConstants.CONTEXT_JOB_TOKEN;
+import static azkaban.jobcallback.JobCallbackConstants.CONTEXT_PROJECT_TOKEN;
import static azkaban.jobcallback.JobCallbackConstants.SEQUENCE_TOKEN;
-import static azkaban.jobcallback.JobCallbackConstants.SERVER_TOKEN;
+import static azkaban.jobcallback.JobCallbackConstants.CONTEXT_SERVER_TOKEN;
import static azkaban.jobcallback.JobCallbackConstants.STATUS_TOKEN;
import java.io.UnsupportedEncodingException;
@@ -25,6 +25,7 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.regex.Pattern;
import org.apache.http.Header;
import org.apache.http.client.methods.HttpGet;
@@ -159,7 +160,7 @@ public class JobCallbackUtil {
// update the wiki about skipping callback url if body is missing
privateLogger.warn("Missing value for key: " + postBodyKey
+ " skipping job callback '" + callbackUrl + " for job "
- + contextInfo.get(JOB_TOKEN));
+ + contextInfo.get(CONTEXT_JOB_TOKEN));
} else {
// put together an URL
HttpPost httpPost = new HttpPost(callbackUrlWithTokenReplaced);
@@ -219,7 +220,7 @@ public class JobCallbackUtil {
private static String replaceStatusToken(String template,
JobCallbackStatusEnum status) {
- return template.replace(STATUS_TOKEN, status.name().toLowerCase());
+ return template.replaceFirst(STATUS_TOKEN, status.name().toLowerCase());
}
private static StringEntity createStringEntity(String str) {
@@ -250,12 +251,12 @@ public class JobCallbackUtil {
String jobId = node.getId();
Map<String, String> result = new HashMap<String, String>();
- result.put(SERVER_TOKEN, server);
- result.put(PROJECT_TOKEN, projectName);
- result.put(FLOW_TOKEN, flowName);
- result.put(EXECUTION_ID_TOKEN, executionId);
- result.put(JOB_TOKEN, jobId);
- result.put(JOB_STATUS_TOKEN, node.getStatus().name().toLowerCase());
+ result.put(CONTEXT_SERVER_TOKEN, server);
+ result.put(CONTEXT_PROJECT_TOKEN, projectName);
+ result.put(CONTEXT_FLOW_TOKEN, flowName);
+ result.put(CONTEXT_EXECUTION_ID_TOKEN, executionId);
+ result.put(CONTEXT_JOB_TOKEN, jobId);
+ result.put(CONTEXT_JOB_STATUS_TOKEN, node.getStatus().name().toLowerCase());
/*
* if (node.getStatus() == Status.SUCCEEDED || node.getStatus() ==
@@ -285,26 +286,26 @@ public class JobCallbackUtil {
String result = value;
String tokenValue =
- encodeQueryParam(contextInfo.get(SERVER_TOKEN), withEncoding);
- result = result.replace(SERVER_TOKEN, tokenValue);
+ encodeQueryParam(contextInfo.get(CONTEXT_SERVER_TOKEN), withEncoding);
+ result = result.replaceFirst(Pattern.quote(CONTEXT_SERVER_TOKEN), tokenValue);
- tokenValue = encodeQueryParam(contextInfo.get(PROJECT_TOKEN), withEncoding);
- result = result.replace(PROJECT_TOKEN, tokenValue);
+ tokenValue = encodeQueryParam(contextInfo.get(CONTEXT_PROJECT_TOKEN), withEncoding);
+ result = result.replaceFirst(Pattern.quote(CONTEXT_PROJECT_TOKEN), tokenValue);
- tokenValue = encodeQueryParam(contextInfo.get(FLOW_TOKEN), withEncoding);
- result = result.replace(FLOW_TOKEN, tokenValue);
+ tokenValue = encodeQueryParam(contextInfo.get(CONTEXT_FLOW_TOKEN), withEncoding);
+ result = result.replaceFirst(Pattern.quote(CONTEXT_FLOW_TOKEN), tokenValue);
- tokenValue = encodeQueryParam(contextInfo.get(JOB_TOKEN), withEncoding);
- result = result.replace(JOB_TOKEN, tokenValue);
+ tokenValue = encodeQueryParam(contextInfo.get(CONTEXT_JOB_TOKEN), withEncoding);
+ result = result.replaceFirst(Pattern.quote(CONTEXT_JOB_TOKEN), tokenValue);
tokenValue =
- encodeQueryParam(contextInfo.get(EXECUTION_ID_TOKEN), withEncoding);
- result = result.replace(EXECUTION_ID_TOKEN, tokenValue);
+ encodeQueryParam(contextInfo.get(CONTEXT_EXECUTION_ID_TOKEN), withEncoding);
+ result = result.replaceFirst(Pattern.quote(CONTEXT_EXECUTION_ID_TOKEN), tokenValue);
tokenValue =
- encodeQueryParam(contextInfo.get(JOB_STATUS_TOKEN), withEncoding);
+ encodeQueryParam(contextInfo.get(CONTEXT_JOB_STATUS_TOKEN), withEncoding);
- result = result.replace(JOB_STATUS_TOKEN, tokenValue);
+ result = result.replaceFirst(Pattern.quote(CONTEXT_JOB_STATUS_TOKEN), tokenValue);
return result;
}
diff --git a/azkaban-execserver/src/test/java/azkaban/execapp/event/JobCallbackRequestMakerTest.java b/azkaban-execserver/src/test/java/azkaban/execapp/event/JobCallbackRequestMakerTest.java
index f86e2ec..bd14da4 100644
--- a/azkaban-execserver/src/test/java/azkaban/execapp/event/JobCallbackRequestMakerTest.java
+++ b/azkaban-execserver/src/test/java/azkaban/execapp/event/JobCallbackRequestMakerTest.java
@@ -1,11 +1,11 @@
package azkaban.execapp.event;
-import static azkaban.jobcallback.JobCallbackConstants.EXECUTION_ID_TOKEN;
-import static azkaban.jobcallback.JobCallbackConstants.FLOW_TOKEN;
-import static azkaban.jobcallback.JobCallbackConstants.JOB_STATUS_TOKEN;
-import static azkaban.jobcallback.JobCallbackConstants.JOB_TOKEN;
-import static azkaban.jobcallback.JobCallbackConstants.PROJECT_TOKEN;
-import static azkaban.jobcallback.JobCallbackConstants.SERVER_TOKEN;
+import static azkaban.jobcallback.JobCallbackConstants.CONTEXT_EXECUTION_ID_TOKEN;
+import static azkaban.jobcallback.JobCallbackConstants.CONTEXT_FLOW_TOKEN;
+import static azkaban.jobcallback.JobCallbackConstants.CONTEXT_JOB_STATUS_TOKEN;
+import static azkaban.jobcallback.JobCallbackConstants.CONTEXT_JOB_TOKEN;
+import static azkaban.jobcallback.JobCallbackConstants.CONTEXT_PROJECT_TOKEN;
+import static azkaban.jobcallback.JobCallbackConstants.CONTEXT_SERVER_TOKEN;
import java.io.BufferedReader;
import java.io.IOException;
@@ -62,12 +62,12 @@ public class JobCallbackRequestMakerTest {
jobCBMaker = JobCallbackRequestMaker.getInstance();
contextInfo = new HashMap<String, String>();
- contextInfo.put(SERVER_TOKEN, SERVER_NAME);
- contextInfo.put(PROJECT_TOKEN, PROJECT_NANE);
- contextInfo.put(FLOW_TOKEN, FLOW_NANE);
- contextInfo.put(EXECUTION_ID_TOKEN, EXECUTION_ID);
- contextInfo.put(JOB_TOKEN, JOB_NANE);
- contextInfo.put(JOB_STATUS_TOKEN, JobCallbackStatusEnum.STARTED.name());
+ contextInfo.put(CONTEXT_SERVER_TOKEN, SERVER_NAME);
+ contextInfo.put(CONTEXT_PROJECT_TOKEN, PROJECT_NANE);
+ contextInfo.put(CONTEXT_FLOW_TOKEN, FLOW_NANE);
+ contextInfo.put(CONTEXT_EXECUTION_ID_TOKEN, EXECUTION_ID);
+ contextInfo.put(CONTEXT_JOB_TOKEN, JOB_NANE);
+ contextInfo.put(CONTEXT_JOB_STATUS_TOKEN, JobCallbackStatusEnum.STARTED.name());
embeddedJettyServer = new Server(PORT_NUMBER);
diff --git a/azkaban-execserver/src/test/java/azkaban/execapp/event/JobCallbackUtilTest.java b/azkaban-execserver/src/test/java/azkaban/execapp/event/JobCallbackUtilTest.java
index d5e0902..646f6e1 100644
--- a/azkaban-execserver/src/test/java/azkaban/execapp/event/JobCallbackUtilTest.java
+++ b/azkaban-execserver/src/test/java/azkaban/execapp/event/JobCallbackUtilTest.java
@@ -1,13 +1,13 @@
package azkaban.execapp.event;
-import static azkaban.jobcallback.JobCallbackConstants.EXECUTION_ID_TOKEN;
-import static azkaban.jobcallback.JobCallbackConstants.FLOW_TOKEN;
+import static azkaban.jobcallback.JobCallbackConstants.CONTEXT_EXECUTION_ID_TOKEN;
+import static azkaban.jobcallback.JobCallbackConstants.CONTEXT_FLOW_TOKEN;
import static azkaban.jobcallback.JobCallbackConstants.HTTP_GET;
import static azkaban.jobcallback.JobCallbackConstants.HTTP_POST;
-import static azkaban.jobcallback.JobCallbackConstants.JOB_STATUS_TOKEN;
-import static azkaban.jobcallback.JobCallbackConstants.JOB_TOKEN;
-import static azkaban.jobcallback.JobCallbackConstants.PROJECT_TOKEN;
-import static azkaban.jobcallback.JobCallbackConstants.SERVER_TOKEN;
+import static azkaban.jobcallback.JobCallbackConstants.CONTEXT_JOB_STATUS_TOKEN;
+import static azkaban.jobcallback.JobCallbackConstants.CONTEXT_JOB_TOKEN;
+import static azkaban.jobcallback.JobCallbackConstants.CONTEXT_PROJECT_TOKEN;
+import static azkaban.jobcallback.JobCallbackConstants.CONTEXT_SERVER_TOKEN;
import java.net.URLEncoder;
import java.util.HashMap;
@@ -39,12 +39,12 @@ public class JobCallbackUtilTest {
@BeforeClass
public static void setup() {
contextInfo = new HashMap<String, String>();
- contextInfo.put(SERVER_TOKEN, SERVER_NAME);
- contextInfo.put(PROJECT_TOKEN, PROJECT_NAME);
- contextInfo.put(FLOW_TOKEN, FLOW_NAME);
- contextInfo.put(EXECUTION_ID_TOKEN, EXECUTION_ID);
- contextInfo.put(JOB_TOKEN, JOB_NAME);
- contextInfo.put(JOB_STATUS_TOKEN, JOB_STATUS_NAME);
+ contextInfo.put(CONTEXT_SERVER_TOKEN, SERVER_NAME);
+ contextInfo.put(CONTEXT_PROJECT_TOKEN, PROJECT_NAME);
+ contextInfo.put(CONTEXT_FLOW_TOKEN, FLOW_NAME);
+ contextInfo.put(CONTEXT_EXECUTION_ID_TOKEN, EXECUTION_ID);
+ contextInfo.put(CONTEXT_JOB_TOKEN, JOB_NAME);
+ contextInfo.put(CONTEXT_JOB_STATUS_TOKEN, JOB_STATUS_NAME);
}
@Test
@@ -169,7 +169,7 @@ public class JobCallbackUtilTest {
public void oneTokenTest() {
String urlWithOneToken =
- "http://www.linkedin.com?project=" + PROJECT_TOKEN + "&another=yes";
+ "http://www.linkedin.com?project=" + CONTEXT_PROJECT_TOKEN + "&another=yes";
String result =
JobCallbackUtil.replaceTokens(urlWithOneToken, contextInfo, true);
@@ -181,8 +181,8 @@ public class JobCallbackUtilTest {
public void twoTokensTest() {
String urlWithOneToken =
- "http://www.linkedin.com?project=" + PROJECT_TOKEN + "&flow="
- + FLOW_TOKEN;
+ "http://www.linkedin.com?project=" + CONTEXT_PROJECT_TOKEN + "&flow="
+ + CONTEXT_FLOW_TOKEN;
String result =
JobCallbackUtil.replaceTokens(urlWithOneToken, contextInfo, true);
@@ -195,9 +195,9 @@ public class JobCallbackUtilTest {
String urlWithOneToken =
"http://www.linkedin.com?server=" + SERVER_NAME + "&project="
- + PROJECT_TOKEN + "&flow=" + FLOW_TOKEN + "&executionId="
- + EXECUTION_ID_TOKEN + "&job=" + JOB_TOKEN + "&status="
- + JOB_STATUS_TOKEN;
+ + CONTEXT_PROJECT_TOKEN + "&flow=" + CONTEXT_FLOW_TOKEN + "&executionId="
+ + CONTEXT_EXECUTION_ID_TOKEN + "&job=" + CONTEXT_JOB_TOKEN + "&status="
+ + CONTEXT_JOB_STATUS_TOKEN;
String result =
JobCallbackUtil.replaceTokens(urlWithOneToken, contextInfo, true);
@@ -217,15 +217,15 @@ public class JobCallbackUtilTest {
Map<String, String> customContextInfo = new HashMap<String, String>();
customContextInfo = new HashMap<String, String>();
- customContextInfo.put(SERVER_TOKEN, SERVER_NAME);
- customContextInfo.put(PROJECT_TOKEN, PROJECT_NAME);
- customContextInfo.put(FLOW_TOKEN, FLOW_NAME);
- customContextInfo.put(EXECUTION_ID_TOKEN, EXECUTION_ID);
- customContextInfo.put(JOB_TOKEN, jobNameWithSpaces);
- customContextInfo.put(JOB_STATUS_TOKEN, JOB_STATUS_NAME);
+ customContextInfo.put(CONTEXT_SERVER_TOKEN, SERVER_NAME);
+ customContextInfo.put(CONTEXT_PROJECT_TOKEN, PROJECT_NAME);
+ customContextInfo.put(CONTEXT_FLOW_TOKEN, FLOW_NAME);
+ customContextInfo.put(CONTEXT_EXECUTION_ID_TOKEN, EXECUTION_ID);
+ customContextInfo.put(CONTEXT_JOB_TOKEN, jobNameWithSpaces);
+ customContextInfo.put(CONTEXT_JOB_STATUS_TOKEN, JOB_STATUS_NAME);
String urlWithOneToken =
- "http://www.linkedin.com?job=" + JOB_TOKEN + "&flow=" + FLOW_TOKEN;
+ "http://www.linkedin.com?job=" + CONTEXT_JOB_TOKEN + "&flow=" + CONTEXT_FLOW_TOKEN;
String result =
JobCallbackUtil.replaceTokens(urlWithOneToken, customContextInfo, true);