Author: rkanter
Date: Mon Oct 28 18:51:55 2013
New Revision: 1536485
URL: http://svn.apache.org/r1536485
Log:
OOZIE-1565 OOZIE-1481 should only affect v2 of the API, not v1 (rkanter)
Added:
oozie/trunk/core/src/test/java/org/apache/oozie/servlet/TestV2JobServlet.java
Modified:
oozie/trunk/core/src/main/java/org/apache/oozie/servlet/V1JobServlet.java
oozie/trunk/core/src/main/java/org/apache/oozie/servlet/V2JobServlet.java
oozie/trunk/core/src/test/java/org/apache/oozie/servlet/TestV1JobServlet.java
oozie/trunk/release-log.txt
Modified:
oozie/trunk/core/src/main/java/org/apache/oozie/servlet/V1JobServlet.java
URL:
http://svn.apache.org/viewvc/oozie/trunk/core/src/main/java/org/apache/oozie/servlet/V1JobServlet.java?rev=1536485&r1=1536484&r2=1536485&view=diff
==============================================================================
--- oozie/trunk/core/src/main/java/org/apache/oozie/servlet/V1JobServlet.java
(original)
+++ oozie/trunk/core/src/main/java/org/apache/oozie/servlet/V1JobServlet.java
Mon Oct 28 18:51:55 2013
@@ -815,7 +815,7 @@ public class V1JobServlet extends BaseJo
// Get default number of coordinator actions to be retrieved
int defaultLen =
Services.get().getConf().getInt(COORD_ACTIONS_DEFAULT_LENGTH, 1000);
int len = (lenStr != null) ? Integer.parseInt(lenStr) : 0;
- len = (len < 0) ? defaultLen : len;
+ len = getCoordinatorJobLength(defaultLen, len);
try {
CoordinatorJobBean coordJob = coordEngine.getCoordJob(jobId,
filter, start, len, order);
jobBean = coordJob;
@@ -828,6 +828,18 @@ public class V1JobServlet extends BaseJo
}
/**
+ * Given the requested length and the default length, determine how many
coordinator jobs to return.
+ * Used by {@link
#getCoordinatorJob(javax.servlet.http.HttpServletRequest,
javax.servlet.http.HttpServletResponse)}
+ *
+ * @param defaultLen The default length
+ * @param len The requested length
+ * @return The length to use
+ */
+ protected int getCoordinatorJobLength(int defaultLen, int len) {
+ return (len < 1) ? defaultLen : len;
+ }
+
+ /**
* Get bundle job info
*
* @param request servlet request
Modified:
oozie/trunk/core/src/main/java/org/apache/oozie/servlet/V2JobServlet.java
URL:
http://svn.apache.org/viewvc/oozie/trunk/core/src/main/java/org/apache/oozie/servlet/V2JobServlet.java?rev=1536485&r1=1536484&r2=1536485&view=diff
==============================================================================
--- oozie/trunk/core/src/main/java/org/apache/oozie/servlet/V2JobServlet.java
(original)
+++ oozie/trunk/core/src/main/java/org/apache/oozie/servlet/V2JobServlet.java
Mon Oct 28 18:51:55 2013
@@ -49,6 +49,10 @@ public class V2JobServlet extends V1JobS
return actionBean;
}
+ @Override
+ protected int getCoordinatorJobLength(int defaultLen, int len) {
+ return (len < 0) ? defaultLen : len;
+ }
@Override
protected String getJMSTopicName(HttpServletRequest request,
HttpServletResponse response) throws XServletException,
Modified:
oozie/trunk/core/src/test/java/org/apache/oozie/servlet/TestV1JobServlet.java
URL:
http://svn.apache.org/viewvc/oozie/trunk/core/src/test/java/org/apache/oozie/servlet/TestV1JobServlet.java?rev=1536485&r1=1536484&r2=1536485&view=diff
==============================================================================
---
oozie/trunk/core/src/test/java/org/apache/oozie/servlet/TestV1JobServlet.java
(original)
+++
oozie/trunk/core/src/test/java/org/apache/oozie/servlet/TestV1JobServlet.java
Mon Oct 28 18:51:55 2013
@@ -235,23 +235,7 @@ public class TestV1JobServlet extends Da
MockCoordinatorEngineService.reset();
params = new HashMap<String, String>();
params.put(RestConstants.JOB_SHOW_PARAM,
RestConstants.JOB_SHOW_INFO);
- params.put(RestConstants.OFFSET_PARAM, "-1"); //OozieCLI
- params.put(RestConstants.LEN_PARAM, "-1");
- url = createURL(MockCoordinatorEngineService.JOB_ID + 1,
params);
- conn = (HttpURLConnection) url.openConnection();
- conn.setRequestMethod("GET");
- assertEquals(HttpServletResponse.SC_OK,
conn.getResponseCode());
-
assertTrue(conn.getHeaderField("content-type").startsWith(RestConstants.JSON_CONTENT_TYPE));
- obj = (JSONObject) JSONValue.parse(new
InputStreamReader(conn.getInputStream()));
- assertEquals(MockCoordinatorEngineService.JOB_ID + 1,
obj.get(JsonTags.COORDINATOR_JOB_ID));
- assertEquals(RestConstants.JOB_SHOW_INFO,
MockCoordinatorEngineService.did);
- assertEquals(MockCoordinatorEngineService.offset, new
Integer(1));
- assertEquals(MockCoordinatorEngineService.length, new
Integer(1000));
-
- MockCoordinatorEngineService.reset();
- params = new HashMap<String, String>();
- params.put(RestConstants.JOB_SHOW_PARAM,
RestConstants.JOB_SHOW_INFO);
- params.put(RestConstants.OFFSET_PARAM, "0");
//oozie-console.js
+ params.put(RestConstants.OFFSET_PARAM, "0");
//oozie-console.js and older clients
params.put(RestConstants.LEN_PARAM, "0");
url = createURL(MockCoordinatorEngineService.JOB_ID + 1,
params);
conn = (HttpURLConnection) url.openConnection();
@@ -262,7 +246,7 @@ public class TestV1JobServlet extends Da
assertEquals(MockCoordinatorEngineService.JOB_ID + 1,
obj.get(JsonTags.COORDINATOR_JOB_ID));
assertEquals(RestConstants.JOB_SHOW_INFO,
MockCoordinatorEngineService.did);
assertEquals(MockCoordinatorEngineService.offset, new
Integer(1));
- assertEquals(MockCoordinatorEngineService.length, new
Integer(0));
+ assertEquals(MockCoordinatorEngineService.length, new
Integer(1000));
MockCoordinatorEngineService.reset();
params = new HashMap<String, String>();
Added:
oozie/trunk/core/src/test/java/org/apache/oozie/servlet/TestV2JobServlet.java
URL:
http://svn.apache.org/viewvc/oozie/trunk/core/src/test/java/org/apache/oozie/servlet/TestV2JobServlet.java?rev=1536485&view=auto
==============================================================================
---
oozie/trunk/core/src/test/java/org/apache/oozie/servlet/TestV2JobServlet.java
(added)
+++
oozie/trunk/core/src/test/java/org/apache/oozie/servlet/TestV2JobServlet.java
Mon Oct 28 18:51:55 2013
@@ -0,0 +1,121 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.oozie.servlet;
+
+import org.apache.oozie.client.rest.RestConstants;
+import org.apache.oozie.client.rest.JsonTags;
+import org.json.simple.JSONObject;
+import org.json.simple.JSONValue;
+
+import javax.servlet.http.HttpServletResponse;
+
+import java.io.InputStreamReader;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.Callable;
+
+public class TestV2JobServlet extends DagServletTestCase {
+
+ static {
+ new V2JobServlet();
+ }
+
+ private static final boolean IS_SECURITY_ENABLED = false;
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ }
+
+ public void testJobInfo() throws Exception {
+ runTest("/v2/job/*", V2JobServlet.class, IS_SECURITY_ENABLED, new
Callable<Void>() {
+ public Void call() throws Exception {
+ MockCoordinatorEngineService.reset();
+ Map<String, String> params = new HashMap<String, String>();
+ params.put(RestConstants.JOB_SHOW_PARAM,
RestConstants.JOB_SHOW_INFO);
+ URL url = createURL(MockCoordinatorEngineService.JOB_ID + 1,
params);
+ HttpURLConnection conn = (HttpURLConnection)
url.openConnection();
+ conn.setRequestMethod("GET");
+ assertEquals(HttpServletResponse.SC_OK,
conn.getResponseCode());
+
assertTrue(conn.getHeaderField("content-type").startsWith(RestConstants.JSON_CONTENT_TYPE));
+ JSONObject obj = (JSONObject) JSONValue.parse(new
InputStreamReader(conn.getInputStream()));
+ assertEquals(MockCoordinatorEngineService.JOB_ID + 1,
obj.get(JsonTags.COORDINATOR_JOB_ID));
+ assertEquals(RestConstants.JOB_SHOW_INFO,
MockCoordinatorEngineService.did);
+
+ MockCoordinatorEngineService.reset();
+ params = new HashMap<String, String>();
+ params.put(RestConstants.JOB_SHOW_PARAM,
RestConstants.JOB_SHOW_INFO);
+ params.put(RestConstants.OFFSET_PARAM, "2");
+ params.put(RestConstants.LEN_PARAM, "50");
+ url = createURL(MockCoordinatorEngineService.JOB_ID + 1,
params);
+ conn = (HttpURLConnection) url.openConnection();
+ conn.setRequestMethod("GET");
+ assertEquals(HttpServletResponse.SC_OK,
conn.getResponseCode());
+
assertTrue(conn.getHeaderField("content-type").startsWith(RestConstants.JSON_CONTENT_TYPE));
+ obj = (JSONObject) JSONValue.parse(new
InputStreamReader(conn.getInputStream()));
+ assertEquals(MockCoordinatorEngineService.JOB_ID + 1,
obj.get(JsonTags.COORDINATOR_JOB_ID));
+ assertEquals(RestConstants.JOB_SHOW_INFO,
MockCoordinatorEngineService.did);
+ assertEquals(MockCoordinatorEngineService.offset, new
Integer(2));
+ assertEquals(MockCoordinatorEngineService.length, new
Integer(50));
+
+ MockCoordinatorEngineService.reset();
+ params = new HashMap<String, String>();
+ params.put(RestConstants.JOB_SHOW_PARAM,
RestConstants.JOB_SHOW_INFO);
+ params.put(RestConstants.OFFSET_PARAM, "-1"); //OozieCLI
+ params.put(RestConstants.LEN_PARAM, "-1");
+ url = createURL(MockCoordinatorEngineService.JOB_ID + 1,
params);
+ conn = (HttpURLConnection) url.openConnection();
+ conn.setRequestMethod("GET");
+ assertEquals(HttpServletResponse.SC_OK,
conn.getResponseCode());
+
assertTrue(conn.getHeaderField("content-type").startsWith(RestConstants.JSON_CONTENT_TYPE));
+ obj = (JSONObject) JSONValue.parse(new
InputStreamReader(conn.getInputStream()));
+ assertEquals(MockCoordinatorEngineService.JOB_ID + 1,
obj.get(JsonTags.COORDINATOR_JOB_ID));
+ assertEquals(RestConstants.JOB_SHOW_INFO,
MockCoordinatorEngineService.did);
+ assertEquals(MockCoordinatorEngineService.offset, new
Integer(1));
+ assertEquals(MockCoordinatorEngineService.length, new
Integer(1000));
+
+ MockCoordinatorEngineService.reset();
+ params = new HashMap<String, String>();
+ params.put(RestConstants.JOB_SHOW_PARAM,
RestConstants.JOB_SHOW_INFO);
+ params.put(RestConstants.OFFSET_PARAM, "0");
//oozie-console.js
+ params.put(RestConstants.LEN_PARAM, "0");
+ url = createURL(MockCoordinatorEngineService.JOB_ID + 1,
params);
+ conn = (HttpURLConnection) url.openConnection();
+ conn.setRequestMethod("GET");
+ assertEquals(HttpServletResponse.SC_OK,
conn.getResponseCode());
+
assertTrue(conn.getHeaderField("content-type").startsWith(RestConstants.JSON_CONTENT_TYPE));
+ obj = (JSONObject) JSONValue.parse(new
InputStreamReader(conn.getInputStream()));
+ assertEquals(MockCoordinatorEngineService.JOB_ID + 1,
obj.get(JsonTags.COORDINATOR_JOB_ID));
+ assertEquals(RestConstants.JOB_SHOW_INFO,
MockCoordinatorEngineService.did);
+ assertEquals(MockCoordinatorEngineService.offset, new
Integer(1));
+ assertEquals(MockCoordinatorEngineService.length, new
Integer(0));
+
+ MockCoordinatorEngineService.reset();
+ params = new HashMap<String, String>();
+ params.put(RestConstants.JOB_SHOW_PARAM,
RestConstants.JOB_SHOW_INFO);
+ url = createURL(MockCoordinatorEngineService.JOB_ID +
(MockCoordinatorEngineService.coordJobs.size() + 1), params);
+ conn = (HttpURLConnection) url.openConnection();
+ conn.setRequestMethod("GET");
+ assertEquals(HttpServletResponse.SC_BAD_REQUEST,
conn.getResponseCode());
+ assertEquals(RestConstants.JOB_SHOW_INFO,
MockCoordinatorEngineService.did);
+ return null;
+ }
+ });
+ }
+}
Modified: oozie/trunk/release-log.txt
URL:
http://svn.apache.org/viewvc/oozie/trunk/release-log.txt?rev=1536485&r1=1536484&r2=1536485&view=diff
==============================================================================
--- oozie/trunk/release-log.txt (original)
+++ oozie/trunk/release-log.txt Mon Oct 28 18:51:55 2013
@@ -64,6 +64,7 @@ OOZIE-1440 Build fails in certain enviro
-- Oozie 4.0.1 release (unreleased)
+OOZIE-1565 OOZIE-1481 should only affect v2 of the API, not v1 (rkanter)
OOZIE-1551 Change hadoop-2 profile to use 2.2.0 (rkanter,rohini,mona via
rkanter)
OOZIE-1573 coord:tzOffset() gives incorrect offset for daylight saving
timezones (rohini)
OOZIE-1582 Bump up Tomcat version to 6.0.37 (rkanter)