Skip to content

Commit 932565e

Browse files
committed
Fix some test
1 parent 9fb4582 commit 932565e

File tree

14 files changed

+386
-968
lines changed

14 files changed

+386
-968
lines changed

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/JAXBContextResolver.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,7 @@
4343
@Singleton
4444
@Provider
4545
public class JAXBContextResolver implements ContextResolver<JAXBContext> {
46-
4746
private static final Logger LOG = LoggerFactory.getLogger(JAXBContextResolver.class.getName());
48-
4947
private final Map<Class, JAXBContext> typesContextMap = new HashMap<>();
5048

5149
public JAXBContextResolver() throws Exception {

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesApps.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import org.apache.hadoop.conf.Configuration;
2626
import org.apache.hadoop.http.JettyUtils;
2727
import org.apache.hadoop.security.UserGroupInformation;
28+
import org.apache.hadoop.test.tags.FlakyTest;
2829
import org.apache.hadoop.util.Sets;
2930
import org.apache.hadoop.util.XMLUtils;
3031
import org.apache.hadoop.yarn.api.records.ContainerState;
@@ -69,6 +70,7 @@
6970
import javax.xml.parsers.DocumentBuilderFactory;
7071
import java.io.StringReader;
7172
import java.util.ArrayList;
73+
import java.util.Arrays;
7274
import java.util.Set;
7375

7476
import static org.apache.hadoop.yarn.webapp.WebServicesTestUtils.assertResponseStatusCode;

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesAppsModification.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import static org.mockito.Mockito.mock;
2626

2727
import java.io.ByteArrayInputStream;
28-
import java.io.ByteArrayOutputStream;
2928
import java.io.DataInputStream;
3029
import java.io.File;
3130
import java.io.IOException;
@@ -56,7 +55,6 @@
5655
import javax.ws.rs.core.Application;
5756
import javax.ws.rs.core.MediaType;
5857
import javax.ws.rs.core.Response;
59-
import javax.xml.bind.JAXBException;
6058
import javax.xml.parsers.DocumentBuilder;
6159
import javax.xml.parsers.DocumentBuilderFactory;
6260
import javax.xml.parsers.ParserConfigurationException;
@@ -106,11 +104,7 @@
106104
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.CredentialsInfo;
107105
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.LocalResourceInfo;
108106
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.LogAggregationContextInfo;
109-
import org.apache.hadoop.yarn.server.resourcemanager.webapp.jsonprovider.IncludeRootJSONProvider;
110107
import org.apache.hadoop.yarn.server.resourcemanager.webapp.jsonprovider.JsonProviderFeature;
111-
import org.apache.hadoop.yarn.server.resourcemanager.webapp.reader.AppStateReader;
112-
import org.apache.hadoop.yarn.server.resourcemanager.webapp.reader.ApplicationSubmissionContextInfoReader;
113-
import org.apache.hadoop.yarn.server.resourcemanager.webapp.writer.ApplicationSubmissionContextInfoWriter;
114108
import org.apache.hadoop.yarn.util.Times;
115109
import org.apache.hadoop.yarn.webapp.GenericExceptionHandler;
116110
import org.apache.hadoop.yarn.webapp.JerseyTestBase;
@@ -135,7 +129,6 @@
135129
import org.glassfish.jersey.jettison.JettisonMarshaller;
136130
import org.glassfish.jersey.jettison.internal.entity.JettisonObjectProvider.App;
137131
import org.glassfish.jersey.internal.inject.AbstractBinder;
138-
import org.glassfish.jersey.jettison.JettisonFeature;
139132
import org.glassfish.jersey.server.ResourceConfig;
140133
import org.glassfish.jersey.test.TestProperties;
141134
import static javax.ws.rs.core.Response.Status.ACCEPTED;

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesConfigurationMutation.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.NodeLabelInfo;
3737
import org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.NodeLabelsInfo;
3838
import org.apache.hadoop.yarn.server.resourcemanager.webapp.jsonprovider.JsonProviderFeature;
39-
import org.apache.hadoop.yarn.server.resourcemanager.webapp.reader.NodeLabelsInfoReader;
4039
import org.apache.hadoop.yarn.webapp.GenericExceptionHandler;
4140
import org.apache.hadoop.yarn.webapp.JerseyTestBase;
4241
import org.apache.hadoop.yarn.webapp.dao.QueueConfigInfo;
@@ -74,7 +73,7 @@
7473
import static org.apache.hadoop.yarn.server.resourcemanager.webapp.TestWebServiceUtil.getCapacitySchedulerConfigFileInTarget;
7574
import static org.apache.hadoop.yarn.server.resourcemanager.webapp.TestWebServiceUtil.backupSchedulerConfigFileInTarget;
7675
import static org.apache.hadoop.yarn.server.resourcemanager.webapp.TestWebServiceUtil.restoreSchedulerConfigFileInTarget;
77-
import static org.apache.hadoop.yarn.server.resourcemanager.webapp.TestWebServiceUtil.toJsonNoRoot;
76+
import static org.apache.hadoop.yarn.server.resourcemanager.webapp.TestWebServiceUtil.toJson;
7877
import static org.junit.jupiter.api.Assertions.assertEquals;
7978
import static org.junit.jupiter.api.Assertions.assertNull;
8079
import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -109,7 +108,6 @@ protected Application configure() {
109108
config.register(RMWebServices.class);
110109
config.register(new JerseyBinder());
111110
config.register(GenericExceptionHandler.class);
112-
config.register(NodeLabelsInfoReader.class);
113111
config.register(TestRMWebServicesAppsModification.TestRMCustomAuthFilter.class);
114112
config.register(JsonProviderFeature.class);
115113
config.register(JAXBContextResolver.class);
@@ -804,7 +802,6 @@ public void testGlobalConfChange() throws Exception {
804802
newCSConf.getMaximumSystemApplications());
805803
}
806804

807-
//TODO: fix, some missing label
808805
@Test
809806
public void testNodeLabelRemovalResidualConfigsAreCleared() throws Exception {
810807
WebTarget r = target();
@@ -824,7 +821,7 @@ public void testNodeLabelRemovalResidualConfigsAreCleared() throws Exception {
824821
response = addNodeLabelsResource.queryParam("user.name", userName)
825822
.request(MediaType.APPLICATION_JSON)
826823
.post(Entity.entity(logAndReturnJson(addNodeLabelsResource,
827-
toJsonNoRoot(nodeLabelsInfo, NodeLabelsInfo.class)), MediaType.APPLICATION_JSON), Response.class);
824+
toJson(nodeLabelsInfo, NodeLabelsInfo.class)), MediaType.APPLICATION_JSON), Response.class);
828825

829826
// 2. Verify new Node Label
830827
response = getNodeLabelsResource.queryParam("user.name", userName)
@@ -854,7 +851,7 @@ public void testNodeLabelRemovalResidualConfigsAreCleared() throws Exception {
854851
response = schedulerConfResource
855852
.queryParam("user.name", userName)
856853
.request(MediaType.APPLICATION_JSON)
857-
.put(Entity.entity(logAndReturnJson(schedulerConfResource, toJsonNoRoot(updateInfo,
854+
.put(Entity.entity(logAndReturnJson(schedulerConfResource, toJson(updateInfo,
858855
SchedConfUpdateInfo.class)), MediaType.APPLICATION_JSON), Response.class);
859856
assertEquals(Status.OK.getStatusCode(), response.getStatus());
860857

@@ -901,7 +898,7 @@ public void testNodeLabelRemovalResidualConfigsAreCleared() throws Exception {
901898
response = schedulerConfResource
902899
.queryParam("user.name", userName)
903900
.request(MediaType.APPLICATION_JSON)
904-
.put(Entity.entity(logAndReturnJson(schedulerConfResource, toJsonNoRoot(updateInfo,
901+
.put(Entity.entity(logAndReturnJson(schedulerConfResource, toJson(updateInfo,
905902
SchedConfUpdateInfo.class)), MediaType.APPLICATION_JSON),
906903
Response.class);
907904
assertEquals(Status.OK.getStatusCode(), response.getStatus());
@@ -953,7 +950,7 @@ public void testNodeLabelRemovalResidualConfigsAreCleared() throws Exception {
953950
response = schedulerConfResource
954951
.queryParam("user.name", userName)
955952
.request(MediaType.APPLICATION_JSON)
956-
.put(Entity.entity(logAndReturnJson(schedulerConfResource, toJsonNoRoot(updateInfo,
953+
.put(Entity.entity(logAndReturnJson(schedulerConfResource, toJson(updateInfo,
957954
SchedConfUpdateInfo.class)), MediaType.APPLICATION_JSON), Response.class);
958955
assertEquals(Status.OK.getStatusCode(), response.getStatus());
959956
assertEquals(Sets.newHashSet("*"),

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesDelegationTokenAuthentication.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
package org.apache.hadoop.yarn.server.resourcemanager.webapp;
2020

21-
import static org.apache.hadoop.yarn.server.resourcemanager.webapp.TestWebServiceUtil.toJsonNoRoot;
21+
import static org.apache.hadoop.yarn.server.resourcemanager.webapp.TestWebServiceUtil.toJson;
2222
import static org.junit.jupiter.api.Assertions.assertEquals;
2323
import static org.junit.jupiter.api.Assertions.assertTrue;
2424
import static org.junit.jupiter.api.Assertions.fail;
@@ -311,11 +311,11 @@ public void testDelegationTokenOps(String header) throws Exception {
311311
DelegationToken createRequestToken = new DelegationToken();
312312
createRequestToken.setRenewer("test");
313313
String createRequest =
314-
toJsonNoRoot(createRequestToken, DelegationToken.class);
314+
toJson(createRequestToken, DelegationToken.class);
315315
DelegationToken renewRequestToken = new DelegationToken();
316316
renewRequestToken.setToken(token);
317317
String renewRequest =
318-
toJsonNoRoot(renewRequestToken, DelegationToken.class);
318+
toJson(renewRequestToken, DelegationToken.class);
319319

320320
// first test create and renew
321321
String[] requests = { createRequest, renewRequest };
@@ -363,7 +363,7 @@ public Void call() throws Exception {
363363
String renewer = "renewer";
364364
DelegationToken token2 = new DelegationToken();
365365
token2.setRenewer(renewer);
366-
String body = toJsonNoRoot(token2, DelegationToken.class);
366+
String body = toJson(token2, DelegationToken.class);
367367
URL url =
368368
new URL("http://localhost:8088/ws/v1/cluster/delegation-token?doAs=client2");
369369
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
@@ -399,7 +399,7 @@ public Void call() throws Exception {
399399
String renewer = "renewer";
400400
DelegationToken token2 = new DelegationToken();
401401
token2.setRenewer(renewer);
402-
String body = toJsonNoRoot(token2, DelegationToken.class);
402+
String body = toJson(token2, DelegationToken.class);
403403

404404
URL url =
405405
new URL("http://localhost:8088/ws/v1/cluster/delegation-token?doAs=client2");
@@ -445,7 +445,7 @@ public String call() throws Exception {
445445
String ret = null;
446446
DelegationToken token = new DelegationToken();
447447
token.setRenewer(renewer);
448-
String body = toJsonNoRoot(token, DelegationToken.class);
448+
String body = toJson(token, DelegationToken.class);
449449
URL url =
450450
new URL("http://localhost:8088/ws/v1/cluster/delegation-token");
451451
HttpURLConnection conn = (HttpURLConnection) url.openConnection();

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesDelegationTokens.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@
8686

8787
import static org.mockito.Mockito.mock;
8888
import static org.mockito.Mockito.when;
89-
import static org.apache.hadoop.yarn.server.resourcemanager.webapp.TestWebServiceUtil.toJsonNoRoot;
89+
import static org.apache.hadoop.yarn.server.resourcemanager.webapp.TestWebServiceUtil.toJson;
9090
import static org.apache.hadoop.yarn.server.resourcemanager.webapp.TestWebServiceUtil.toEntity;
9191
import org.glassfish.jersey.internal.inject.AbstractBinder;
9292
import org.glassfish.jersey.logging.LoggingFeature;
@@ -279,7 +279,7 @@ public void testCreateDelegationToken(int run) throws Exception {
279279
final String renewer = "test-renewer";
280280
DelegationToken token = new DelegationToken();
281281
token.setRenewer(renewer);
282-
String jsonBody = toJsonNoRoot(token, DelegationToken.class);
282+
String jsonBody = toJson(token, DelegationToken.class);
283283
String xmlBody =
284284
"<delegation-token><renewer>" + renewer
285285
+ "</renewer></delegation-token>";
@@ -478,7 +478,7 @@ public Void call() throws Exception {
478478
if (mediaType.equals(MediaType.APPLICATION_JSON)) {
479479
DelegationToken dToken = new DelegationToken();
480480
dToken.setToken(token);
481-
body = toJsonNoRoot(dToken, DelegationToken.class);
481+
body = toJson(dToken, DelegationToken.class);
482482
} else {
483483
body =
484484
"<delegation-token><token>" + token
@@ -511,7 +511,7 @@ private void verifySimpleAuthRenew(String mediaType, String contentType) throws
511511
DelegationToken delegationToken = new DelegationToken();
512512
body = "{\"token\": \"" + token + "\" }";
513513
delegationToken.setToken("test-123");
514-
body = toJsonNoRoot(delegationToken, DelegationToken.class);
514+
body = toJson(delegationToken, DelegationToken.class);
515515
} else {
516516
body =
517517
"<delegation-token><token>" + token + "</token></delegation-token>";
@@ -823,7 +823,7 @@ private static String generateRenewTokenBody(String mediaType, String token)
823823
if (mediaType.contains(MediaType.APPLICATION_JSON)) {
824824
DelegationToken dToken = new DelegationToken();
825825
dToken.setToken(token);
826-
body = toJsonNoRoot(dToken, DelegationToken.class);
826+
body = toJson(dToken, DelegationToken.class);
827827
} else {
828828
body =
829829
"<delegation-token><token>" + token + "</token></delegation-token>";

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebServicesReservation.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
package org.apache.hadoop.yarn.server.resourcemanager.webapp;
2020

21-
import static org.apache.hadoop.yarn.server.resourcemanager.webapp.TestWebServiceUtil.toJsonRoot;
21+
import static org.apache.hadoop.yarn.server.resourcemanager.webapp.TestWebServiceUtil.toJson;
2222
import static org.assertj.core.api.Assertions.assertThat;
2323
import static org.apache.hadoop.yarn.webapp.WebServicesTestUtils.assertResponseStatusCode;
2424
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -1100,7 +1100,7 @@ private Response submitAndVerifyReservation(String path, String media,
11001100
Response response = constructWebResource(path)
11011101
.request(MediaType.APPLICATION_JSON)
11021102
.accept(media)
1103-
.post(Entity.entity(toJsonRoot(rsci, ReservationSubmissionRequestInfo.class),
1103+
.post(Entity.entity(toJson(rsci, ReservationSubmissionRequestInfo.class),
11041104
MediaType.APPLICATION_JSON_TYPE), Response.class);
11051105

11061106
if (!this.isAuthenticationEnabled()) {
@@ -1140,7 +1140,7 @@ private void updateReservationTestHelper(String path,
11401140
Response response = constructWebResource(path)
11411141
.request(MediaType.APPLICATION_JSON)
11421142
.accept(media)
1143-
.post(Entity.entity(toJsonRoot(rsci, ReservationUpdateRequestInfo.class),
1143+
.post(Entity.entity(toJson(rsci, ReservationUpdateRequestInfo.class),
11441144
MediaType.APPLICATION_JSON_TYPE), Response.class);
11451145

11461146
if (!this.isAuthenticationEnabled()) {
@@ -1198,7 +1198,7 @@ private void testDeleteReservationHelper(String path,
11981198
Response response = constructWebResource(path)
11991199
.request(MediaType.APPLICATION_JSON)
12001200
.accept(media)
1201-
.post(Entity.entity(toJsonRoot(rsci, ReservationDeleteRequestInfo.class),
1201+
.post(Entity.entity(toJson(rsci, ReservationDeleteRequestInfo.class),
12021202
MediaType.APPLICATION_JSON_TYPE), Response.class);
12031203
if (!this.isAuthenticationEnabled()) {
12041204
assertResponseStatusCode(Response.Status.UNAUTHORIZED, response.getStatusInfo());

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestRMWebappAuthentication.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
package org.apache.hadoop.yarn.server.resourcemanager.webapp;
2020

21-
import static org.apache.hadoop.yarn.server.resourcemanager.webapp.TestWebServiceUtil.toJsonNoRoot;
21+
import static org.apache.hadoop.yarn.server.resourcemanager.webapp.TestWebServiceUtil.toJson;
2222
import static org.junit.jupiter.api.Assertions.assertEquals;
2323
import static org.junit.jupiter.api.Assertions.assertTrue;
2424
import static org.junit.jupiter.api.Assertions.fail;
@@ -200,7 +200,7 @@ private void testAnonymousKerberosUser() throws Exception {
200200

201201
AppState appState = new AppState();
202202
appState.setState("KILLED");
203-
requestBody = toJsonNoRoot(appState, AppState.class);
203+
requestBody = toJson(appState, AppState.class);
204204
url = new URL("http://localhost:8088/ws/v1/cluster/apps/application_123_0/state");
205205
conn = (HttpURLConnection) url.openConnection();
206206
TestRMWebServicesDelegationTokenAuthentication.setupConn(conn, "PUT",

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/TestWebServiceUtil.java

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import javax.ws.rs.client.WebTarget;
3737
import javax.ws.rs.core.MediaType;
3838
import javax.ws.rs.core.Response;
39+
import javax.xml.bind.JAXBContext;
3940
import javax.xml.bind.JAXBException;
4041
import javax.xml.bind.Marshaller;
4142
import javax.xml.parsers.DocumentBuilder;
@@ -53,7 +54,7 @@
5354
import com.fasterxml.jackson.databind.ObjectMapper;
5455
import com.fasterxml.jackson.databind.ObjectWriter;
5556
import com.fasterxml.jackson.databind.SerializationFeature;
56-
import com.google.gson.Gson;
57+
import org.eclipse.persistence.jaxb.MarshallerProperties;
5758
import org.glassfish.jersey.jettison.JettisonJaxbContext;
5859
import org.glassfish.jersey.jettison.JettisonMarshaller;
5960
import org.w3c.dom.Document;
@@ -345,31 +346,31 @@ public static void restoreSchedulerConfigFileInTarget() {
345346

346347
public static String toEntity(Object obj, Class<?> klass, String mediaType)
347348
throws Exception {
348-
if (mediaType == MediaType.APPLICATION_JSON) {
349-
return toJsonNoRoot(obj, klass);
349+
if (MediaType.APPLICATION_JSON.equals(mediaType)) {
350+
return toJson(obj, klass);
350351
}
351-
if(mediaType == MediaType.APPLICATION_XML) {
352+
if(MediaType.APPLICATION_XML.equals(mediaType)) {
352353
return toXml(obj, klass);
353354
}
354355
return null;
355356
}
356357

357-
public static String toJsonRoot(Object obj, Class<?> klass) throws Exception {
358+
public static String toJson(Object obj, Class<?> klass) throws Exception {
359+
JAXBContext jc = new JAXBContextResolver().getContext(klass);
360+
Marshaller marshaller = jc.createMarshaller();
361+
marshaller.setProperty(MarshallerProperties.MEDIA_TYPE, MediaType.APPLICATION_JSON);
362+
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
358363
StringWriter stringWriter = new StringWriter();
359-
JettisonJaxbContext jettisonJaxbContext = new JettisonJaxbContext(klass);
360-
JettisonMarshaller jettisonMarshaller = jettisonJaxbContext.createJsonMarshaller();
361-
jettisonMarshaller.marshallToJSON(obj, stringWriter);
364+
marshaller.marshal(obj, stringWriter);
362365
return stringWriter.toString();
363366
}
364367

365-
public static String toJsonNoRoot(Object obj, Class<?> klass) throws Exception {
366-
return new Gson().toJson(obj, klass);
367-
}
368-
369-
public static String toXml(Object obj, Class<?> klass) throws JAXBException {
368+
public static String toXml(Object obj, Class<?> klass) throws Exception {
369+
JAXBContext jc = new JAXBContextResolver().getContext(klass);
370+
Marshaller marshaller = jc.createMarshaller();
371+
marshaller.setProperty(MarshallerProperties.MEDIA_TYPE, MediaType.APPLICATION_XML);
372+
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
370373
StringWriter stringWriter = new StringWriter();
371-
JettisonJaxbContext jettisonJaxbContext = new JettisonJaxbContext(klass);
372-
Marshaller marshaller = jettisonJaxbContext.createMarshaller();
373374
marshaller.marshal(obj, stringWriter);
374375
return stringWriter.toString();
375376
}

0 commit comments

Comments
 (0)