Skip to content

Commit

Permalink
Revert "re-remove flags for merge"
Browse files Browse the repository at this point in the history
This reverts commit 7c6cf64.
  • Loading branch information
jamezp committed Aug 22, 2022
1 parent 16a716a commit 60bdac8
Show file tree
Hide file tree
Showing 11 changed files with 111 additions and 241 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import io.netty.handler.codec.http.HttpResponseStatus;
import io.netty.handler.codec.http.QueryStringDecoder;
import io.netty.util.concurrent.DefaultEventExecutor;
import static org.hamcrest.CoreMatchers.containsString;

import org.hamcrest.MatcherAssert;
import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;
Expand All @@ -16,51 +17,35 @@
import org.junit.Test;
import reactor.core.publisher.Mono;
import reactor.netty.DisposableServer;
import reactor.netty.NettyOutbound;
import reactor.netty.http.HttpResources;
import reactor.netty.http.client.HttpClient;
import reactor.netty.http.server.HttpServer;
import reactor.netty.http.server.HttpServerRequest;
import reactor.netty.http.server.HttpServerResponse;
import reactor.netty.resources.ConnectionProvider;

import jakarta.ws.rs.InternalServerErrorException;
import jakarta.ws.rs.ProcessingException;
import jakarta.ws.rs.WebApplicationException;
import jakarta.ws.rs.client.Client;
import jakarta.ws.rs.client.ClientBuilder;
import jakarta.ws.rs.client.ClientRequestFilter;
import jakarta.ws.rs.client.Entity;
import jakarta.ws.rs.client.InvocationCallback;
import jakarta.ws.rs.client.ResponseProcessingException;
import jakarta.ws.rs.client.WebTarget;
import jakarta.ws.rs.core.Context;
import jakarta.ws.rs.core.GenericType;
import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.MultivaluedMap;
import jakarta.ws.rs.core.Response;
import jakarta.ws.rs.ext.MessageBodyWriter;
import jakarta.ws.rs.ext.Providers;
import java.io.IOException;
import java.io.OutputStream;
import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
import javax.ws.rs.InternalServerErrorException;
import javax.ws.rs.ProcessingException;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.ClientRequestFilter;
import javax.ws.rs.client.Entity;
import javax.ws.rs.client.InvocationCallback;
import javax.ws.rs.client.ResponseProcessingException;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import java.net.UnknownHostException;
import java.nio.charset.StandardCharsets;
import java.time.Duration;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.Random;
import java.util.concurrent.CompletionException;
import java.util.concurrent.CompletionStage;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Function;

import static org.hamcrest.CoreMatchers.containsString;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
Expand Down Expand Up @@ -148,9 +133,6 @@ private static void setupMockServer() {
.get("/json", (request, response) ->
response.addHeader(HttpHeaderNames.CONTENT_TYPE, "application/json")
.sendString(Mono.just("[]")))
.post("/echo", (request, response) ->
response.addHeader(HttpHeaderNames.CONTENT_TYPE, request.requestHeaders().get(HttpHeaderNames.CONTENT_TYPE))
.send(request.receive().aggregate()))
.post("/birthday", (request, response) ->
response.addHeader(HttpHeaderNames.CONTENT_TYPE, "application/json")
.sendString(
Expand All @@ -162,32 +144,15 @@ private static void setupMockServer() {
.status(500)
.addHeader(HttpHeaderNames.CONTENT_TYPE, "text/plain")
.sendString(Mono.just("oh nos!")))
.post("/headers/content-length", (req, resp) ->
headerEcho(req, resp, HttpHeaderNames.CONTENT_LENGTH.toString()))
.post("/headers/content-encoding", (req, resp) ->
headerEcho(req, resp, HttpHeaderNames.CONTENT_ENCODING.toString()))
.post("/headers/content-type", (req, resp) ->
allHeaderEcho(req, resp, HttpHeaderNames.CONTENT_TYPE.toString())))
.post("/headers", (request, response) ->
response.sendString(
Mono.just(
Optional.ofNullable(
request.requestHeaders().get(HttpHeaderNames.CONTENT_LENGTH))
.orElse("Content-Length header was not in request:(:(")))))
.bindNow();
}

private static NettyOutbound allHeaderEcho(HttpServerRequest req, HttpServerResponse resp, String header) {
return resp.sendString(
Mono.just(
Optional.ofNullable(String.join(",", req.requestHeaders().getAll(header)))
.orElse(header + " header was not in request:(:(")));
}

private static NettyOutbound headerEcho(
final HttpServerRequest req,
final HttpServerResponse resp,
final String header) {
return resp.sendString(
Mono.just(
Optional.ofNullable(req.requestHeaders().get(header))
.orElse(header + " header was not in request:(:(")));
}

@AfterClass
public static void cleanup() {
mockServer.dispose();
Expand Down Expand Up @@ -511,7 +476,7 @@ public void testClose() {
@Test
public void testThatRequestContentLengthIsSet() {
final String payload = "hello";
final WebTarget target = client.target(url("/headers/content-length"));
final WebTarget target = client.target(url("/headers"));
final Response response = target.request().post(Entity.text(payload));
assertEquals(200, response.getStatus());
assertEquals(Integer.toString(payload.length()), response.readEntity(String.class));
Expand All @@ -520,7 +485,7 @@ public void testThatRequestContentLengthIsSet() {
@Test
public void testThatRequestContentLengthHeaderIsOverwritten() {
final String payload = "hello";
final WebTarget target = client.target(url("/headers/content-length"));
final WebTarget target = client.target(url("/headers"));
final Response response =
target
.request()
Expand All @@ -530,88 +495,6 @@ public void testThatRequestContentLengthHeaderIsOverwritten() {
assertEquals(Integer.toString(payload.length()), response.readEntity(String.class));
}

@Test
public void testContextInWriter() {
final String payload = "hello";
final WebTarget target = client.target(url("/echo")).register(new ContextNeedingWriter());
final String respBody = target.request().post(Entity.text(payload), String.class);
assertEquals(ContextNeedingWriter.transform(payload), respBody);
}

@Test
public void testContextInWriterAsyncChaining() throws Exception {
final String firstPayload = "first";
final String secondPayload = "second";
final WebTarget target = client.target(url("/echo")).register(new ContextNeedingWriter());

final Function<String, CompletionStage<String>> httpGet =
payload -> target.request().rx().post(Entity.text(payload), String.class);

final CompletionStage<String> dataFut = httpGet.apply(firstPayload)
.thenCompose(firstResp -> httpGet.apply(secondPayload).thenApply(secResp -> firstResp + " : " + secResp));

final String data = dataFut.toCompletableFuture().get(500, TimeUnit.MILLISECONDS);
assertEquals(
ContextNeedingWriter.transform(firstPayload) + " : " + ContextNeedingWriter.transform(secondPayload),
data);
}

@Test
public void testThatMessageBodyWriterHeadersAreRespected() {
final String WRITER_ESTABLISHED_HEADER_VAL = "Binary";
class StringWriter implements MessageBodyWriter<String> {
@Override
public boolean isWriteable(Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) {
return type == String.class;
}

@Override
public long getSize(String s, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) {
return s.length();
}

@Override
public void writeTo(String s, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType, MultivaluedMap<String, Object> httpHeaders, OutputStream entityStream) throws IOException, WebApplicationException {
httpHeaders.add("Content-Encoding", WRITER_ESTABLISHED_HEADER_VAL);
entityStream.write(s.getBytes());
}
}
final WebTarget target = client.target(url("/headers/content-encoding")).register(new StringWriter());
final Response response = target.request().post(Entity.text("marcel sent me some text!"));
assertEquals(200, response.getStatus());
assertEquals(WRITER_ESTABLISHED_HEADER_VAL, response.readEntity(String.class));
}

@Test
public void testCaseInsensitiveHeaderReplace() {
final String CONTENT_TYPE_CLIENT_HEADER_VAL = "text/plain";
final String CONTENT_TYPE_WRITER_HEADER_VAL = "application/json";
final String CONTENT_TYPE_UC_HEADER_NAME = "CONTENT-TYPE";
final String CONTENT_TYPE_LC_HEADER_NAME = "content-type";
class StringWriter implements MessageBodyWriter<String> {
@Override
public boolean isWriteable(Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) {
return type == String.class;
}

@Override
public long getSize(String s, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) {
return s.length();
}

@Override
public void writeTo(String s, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType, MultivaluedMap<String, Object> httpHeaders, OutputStream entityStream) throws IOException, WebApplicationException {
httpHeaders.replace(CONTENT_TYPE_LC_HEADER_NAME, Collections.singletonList(CONTENT_TYPE_WRITER_HEADER_VAL));
entityStream.write(s.getBytes(StandardCharsets.UTF_8));
}
}

final WebTarget target = client.target(url("/headers/content-type")).register(new StringWriter());
final Response response = target.request().header(CONTENT_TYPE_UC_HEADER_NAME, CONTENT_TYPE_CLIENT_HEADER_VAL).post(Entity.text("{'inputKey' : 'value'}"));
assertEquals(200, response.getStatus());
assertEquals(CONTENT_TYPE_WRITER_HEADER_VAL, response.readEntity(String.class));
}

@Test(expected = IllegalArgumentException.class)
public void testNegativeTimeout() {
setupClient(HttpClient.create(), Duration.ofMillis(-1));
Expand Down Expand Up @@ -721,25 +604,4 @@ private static String incrementAge(final String json) {
final String age = json.substring(length - 2, length - 1);
return json.replaceFirst(age, Integer.toString(Integer.valueOf(age) + 1));
}

static class ContextNeedingWriter implements MessageBodyWriter<String> {

@Context
private Providers providers;

static String transform(final String s) {
return "My contextual writer did this: " + s;
}

@Override
public boolean isWriteable(Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) {
return true;
}

@Override
public void writeTo(String s, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType, MultivaluedMap<String, Object> httpHeaders, OutputStream entityStream) throws IOException, WebApplicationException {
providers.getMessageBodyWriter(type, genericType, annotations, mediaType);
entityStream.write(transform(s).getBytes(StandardCharsets.UTF_8));
}
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
package org.jboss.resteasy.test.cdi.interceptors;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.hamcrest.MatcherAssert;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.container.test.api.RunAsClient;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.logging.Logger;
import org.jboss.resteasy.test.cdi.interceptors.resource.InterceptorBook;
import org.jboss.resteasy.test.cdi.interceptors.resource.InterceptorBookReader;
import org.jboss.resteasy.test.cdi.interceptors.resource.InterceptorBookReaderInterceptor;
Expand Down Expand Up @@ -45,11 +46,11 @@
import org.junit.runner.RunWith;

import javax.swing.text.Utilities;
import jakarta.ws.rs.client.Client;
import jakarta.ws.rs.client.ClientBuilder;
import jakarta.ws.rs.client.Entity;
import jakarta.ws.rs.client.WebTarget;
import jakarta.ws.rs.core.Response;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.Response;

import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertEquals;
Expand All @@ -63,7 +64,7 @@
@RunWith(Arquillian.class)
@RunAsClient
public class InterceptorTest {
protected static final Logger log = Logger.getLogger(InterceptorTest.class.getName());
protected static final Logger log = LogManager.getLogger(InterceptorTest.class.getName());

@Deployment
public static Archive<?> createTestArchive() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
package org.jboss.resteasy.test.core.logging;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.hamcrest.MatcherAssert;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.container.test.api.RunAsClient;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.logging.Logger;
import org.jboss.resteasy.client.jaxrs.ResteasyClient;
import jakarta.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.ClientBuilder;
import org.jboss.resteasy.test.core.logging.resource.DebugLoggingEndPoint;
import org.jboss.resteasy.test.core.logging.resource.DebugLoggingReaderInterceptorCustom;
import org.jboss.resteasy.test.core.logging.resource.DebugLoggingWriterInterceptorCustom;
Expand All @@ -26,9 +27,9 @@
import org.junit.runner.RunWith;
import org.wildfly.extras.creaper.core.online.OnlineManagementClient;

import jakarta.ws.rs.client.Entity;
import jakarta.ws.rs.client.WebTarget;
import jakarta.ws.rs.core.Response;
import javax.ws.rs.client.Entity;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.Response;

import static org.hamcrest.Matchers.greaterThan;
import static org.hamcrest.core.Is.is;
Expand All @@ -46,7 +47,7 @@
public class DebugLoggingTest {

static ResteasyClient client;
protected static final Logger logger = Logger.getLogger(DebugLoggingTest.class.getName());
protected static final Logger logger = LogManager.getLogger(DebugLoggingTest.class.getName());

private static final String BUILD_IN = "build-in";
private static final String CUSTOM = "custom";
Expand All @@ -71,7 +72,7 @@ public static void initLogging() throws Exception {
// enable RESTEasy debug logging
TestUtil.runCmd(client, "/subsystem=logging/console-handler=CONSOLE:write-attribute(name=level,value=ALL)");
TestUtil.runCmd(client, "/subsystem=logging/logger=org.jboss.resteasy:add(level=ALL)");
TestUtil.runCmd(client, "/subsystem=logging/logger=jakarta.xml.bind:add(level=ALL)");
TestUtil.runCmd(client, "/subsystem=logging/logger=javax.xml.bind:add(level=ALL)");
TestUtil.runCmd(client, "/subsystem=logging/logger=com.fasterxml.jackson:add(level=ALL)");

client.close();
Expand All @@ -84,7 +85,7 @@ public static void removeLogging() throws Exception {
// enable RESTEasy debug logging
TestUtil.runCmd(client, "/subsystem=logging/console-handler=CONSOLE:write-attribute(name=level,value=INFO)");
TestUtil.runCmd(client, "/subsystem=logging/logger=org.jboss.resteasy:remove()");
TestUtil.runCmd(client, "/subsystem=logging/logger=jakarta.xml.bind:remove()");
TestUtil.runCmd(client, "/subsystem=logging/logger=javax.xml.bind:remove()");
TestUtil.runCmd(client, "/subsystem=logging/logger=com.fasterxml.jackson:remove()");

client.close();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
package org.jboss.resteasy.test.crypto;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.container.test.api.RunAsClient;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.logging.Logger;
import org.jboss.resteasy.client.jaxrs.ResteasyClient;
import org.jboss.resteasy.client.jaxrs.ResteasyWebTarget;
import org.jboss.resteasy.security.doseta.DKIMSignature;
Expand All @@ -30,14 +31,14 @@
import org.junit.runner.RunWith;
import org.hamcrest.MatcherAssert;

import jakarta.ws.rs.ProcessingException;
import jakarta.ws.rs.client.ClientBuilder;
import jakarta.ws.rs.client.Entity;
import jakarta.ws.rs.client.Invocation;
import jakarta.ws.rs.client.ResponseProcessingException;
import jakarta.ws.rs.client.WebTarget;
import jakarta.ws.rs.core.GenericType;
import jakarta.ws.rs.core.Response;
import javax.ws.rs.ProcessingException;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.client.Invocation;
import javax.ws.rs.client.ResponseProcessingException;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.Response;
import java.lang.reflect.ReflectPermission;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
Expand All @@ -63,7 +64,7 @@ public class SigningTest {
public static PrivateKey badKey;
private static ResteasyClient client;

protected final Logger logger = Logger.getLogger(PKCS7SignatureSmokeTest.class.getName());
protected final Logger logger = LogManager.getLogger(PKCS7SignatureSmokeTest.class.getName());

private static final String RESPONSE_ERROR_MSG = "Response contains wrong content";
static final String testJksPath;
Expand Down
Loading

0 comments on commit 60bdac8

Please sign in to comment.