This is an automated email from the ASF dual-hosted git repository.
crallen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-druid.git
The following commit(s) were added to refs/heads/master by this push:
new 1c4f787 Upgrade Netty to 4.1.x (#6417)
1c4f787 is described below
commit 1c4f787ed4bc435dac1bce1381a85b7c0d955ba9
Author: Charles Allen <[email protected]>
AuthorDate: Fri Oct 5 12:30:00 2018 -0700
Upgrade Netty to 4.1.x (#6417)
* Update netty to 4.1.30.Final
* Fix compile time problems with new netty
* Remove netty-all from rocketmq extension
---
extensions-contrib/druid-rocketmq/pom.xml | 7 ++++
.../authentication/BasicHTTPAuthenticatorTest.java | 21 +++--------
.../apache/druid/java/util/common/StringUtils.java | 13 +++++++
.../druid/java/util/emitter/core/EmitterTest.java | 42 +++++++++++++---------
pom.xml | 8 ++---
5 files changed, 54 insertions(+), 37 deletions(-)
diff --git a/extensions-contrib/druid-rocketmq/pom.xml
b/extensions-contrib/druid-rocketmq/pom.xml
index 251961b..46d10be 100644
--- a/extensions-contrib/druid-rocketmq/pom.xml
+++ b/extensions-contrib/druid-rocketmq/pom.xml
@@ -40,6 +40,13 @@
<groupId>com.alibaba.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>${rocketmq.version}</version>
+ <exclusions>
+ <!-- Druid uses its own netty version -->
+ <exclusion>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-all</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.apache.druid</groupId>
diff --git
a/extensions-core/druid-basic-security/src/test/java/org/apache/druid/security/authentication/BasicHTTPAuthenticatorTest.java
b/extensions-core/druid-basic-security/src/test/java/org/apache/druid/security/authentication/BasicHTTPAuthenticatorTest.java
index 782c9dd..0713497 100644
---
a/extensions-core/druid-basic-security/src/test/java/org/apache/druid/security/authentication/BasicHTTPAuthenticatorTest.java
+++
b/extensions-core/druid-basic-security/src/test/java/org/apache/druid/security/authentication/BasicHTTPAuthenticatorTest.java
@@ -31,7 +31,6 @@ import
org.apache.druid.security.basic.authentication.entity.BasicAuthenticatorC
import
org.apache.druid.security.basic.authentication.entity.BasicAuthenticatorUser;
import org.apache.druid.server.security.AuthConfig;
import org.apache.druid.server.security.AuthenticationResult;
-import org.asynchttpclient.util.Base64;
import org.easymock.EasyMock;
import org.junit.Test;
@@ -82,9 +81,7 @@ public class BasicHTTPAuthenticatorTest
@Test
public void testGoodPassword() throws IOException, ServletException
{
- String header = Base64.encode(
- StringUtils.toUtf8("userA:helloworld")
- );
+ String header = StringUtils.utf8Base64("userA:helloworld");
header = StringUtils.format("Basic %s", header);
HttpServletRequest req = EasyMock.createMock(HttpServletRequest.class);
@@ -113,9 +110,7 @@ public class BasicHTTPAuthenticatorTest
@Test
public void testBadPassword() throws IOException, ServletException
{
- String header = Base64.encode(
- StringUtils.toUtf8("userA:badpassword")
- );
+ String header = StringUtils.utf8Base64("userA:badpassword");
header = StringUtils.format("Basic %s", header);
HttpServletRequest req = EasyMock.createMock(HttpServletRequest.class);
@@ -139,9 +134,7 @@ public class BasicHTTPAuthenticatorTest
@Test
public void testUnknownUser() throws IOException, ServletException
{
- String header = Base64.encode(
- StringUtils.toUtf8("userB:helloworld")
- );
+ String header = StringUtils.utf8Base64("userB:helloworld");
header = StringUtils.format("Basic %s", header);
HttpServletRequest req = EasyMock.createMock(HttpServletRequest.class);
@@ -165,9 +158,7 @@ public class BasicHTTPAuthenticatorTest
@Test
public void testRecognizedButMalformedBasicAuthHeader() throws IOException,
ServletException
{
- String header = Base64.encode(
- StringUtils.toUtf8("malformed decoded header data")
- );
+ String header = StringUtils.utf8Base64("malformed decoded header data");
header = StringUtils.format("Basic %s", header);
HttpServletRequest req = EasyMock.createMock(HttpServletRequest.class);
@@ -214,9 +205,7 @@ public class BasicHTTPAuthenticatorTest
@Test
public void testUnrecognizedHeader() throws IOException, ServletException
{
- String header = Base64.encode(
- StringUtils.toUtf8("userA:helloworld")
- );
+ String header = StringUtils.utf8Base64("userA:helloworld");
header = StringUtils.format("NotBasic %s", header);
HttpServletRequest req = EasyMock.createMock(HttpServletRequest.class);
diff --git
a/java-util/src/main/java/org/apache/druid/java/util/common/StringUtils.java
b/java-util/src/main/java/org/apache/druid/java/util/common/StringUtils.java
index b69f81e..e402099 100644
--- a/java-util/src/main/java/org/apache/druid/java/util/common/StringUtils.java
+++ b/java-util/src/main/java/org/apache/druid/java/util/common/StringUtils.java
@@ -28,6 +28,7 @@ import java.net.URLEncoder;
import java.nio.ByteBuffer;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
+import java.util.Base64;
import java.util.IllegalFormatException;
import java.util.Locale;
@@ -218,4 +219,16 @@ public class StringUtils
return Strings.emptyToNull(string);
//CHECKSTYLE.ON: Regexp
}
+
+ /**
+ * Convert an input to base 64 and return the utf8 string of that byte array
+ *
+ * @param input The string to convert to base64
+ *
+ * @return the base64 of the input in string form
+ */
+ public static String utf8Base64(String input)
+ {
+ return fromUtf8(Base64.getEncoder().encode(toUtf8(input)));
+ }
}
diff --git
a/java-util/src/test/java/org/apache/druid/java/util/emitter/core/EmitterTest.java
b/java-util/src/test/java/org/apache/druid/java/util/emitter/core/EmitterTest.java
index c807363..ed85dbc 100644
---
a/java-util/src/test/java/org/apache/druid/java/util/emitter/core/EmitterTest.java
+++
b/java-util/src/test/java/org/apache/druid/java/util/emitter/core/EmitterTest.java
@@ -31,7 +31,6 @@ import org.apache.druid.java.util.common.CompressionUtils;
import org.apache.druid.java.util.common.StringUtils;
import org.apache.druid.java.util.common.lifecycle.Lifecycle;
import org.apache.druid.java.util.emitter.service.UnitEvent;
-import org.asynchttpclient.DefaultAsyncHttpClientConfig;
import org.asynchttpclient.ListenableFuture;
import org.asynchttpclient.Request;
import org.asynchttpclient.Response;
@@ -53,6 +52,7 @@ import java.util.List;
import java.util.Properties;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicInteger;
+import java.util.stream.Stream;
/**
*/
@@ -60,25 +60,33 @@ public class EmitterTest
{
private static final ObjectMapper jsonMapper = new ObjectMapper();
public static String TARGET_URL = "http://metrics.foo.bar/";
- public static final Response OK_RESPONSE =
responseBuilder(HttpVersion.HTTP_1_1, HttpResponseStatus.CREATED)
- .accumulate(new
EagerResponseBodyPart(Unpooled.wrappedBuffer("Yay".getBytes(StandardCharsets.UTF_8)),
true))
- .build();
-
- public static final Response BAD_RESPONSE =
responseBuilder(HttpVersion.HTTP_1_1, HttpResponseStatus.FORBIDDEN)
- .accumulate(new EagerResponseBodyPart(Unpooled.wrappedBuffer("Not
yay".getBytes(StandardCharsets.UTF_8)), true))
- .build();
+ public static final Response OK_RESPONSE = Stream
+ .of(responseBuilder(HttpVersion.HTTP_1_1, HttpResponseStatus.CREATED))
+ .map(b -> {
+ b.accumulate(new
EagerResponseBodyPart(Unpooled.wrappedBuffer("Yay".getBytes(StandardCharsets.UTF_8)),
true));
+ return b.build();
+ }).findFirst().get();
+
+ public static final Response BAD_RESPONSE = Stream
+ .of(responseBuilder(HttpVersion.HTTP_1_1, HttpResponseStatus.FORBIDDEN))
+ .map(b -> {
+ b.accumulate(new EagerResponseBodyPart(
+ Unpooled.wrappedBuffer("Not yay".getBytes(StandardCharsets.UTF_8)),
+ true
+ ));
+ return b.build();
+ }).findFirst().get();
private static Response.ResponseBuilder responseBuilder(HttpVersion version,
HttpResponseStatus status)
{
- return new Response.ResponseBuilder()
- .accumulate(
- new NettyResponseStatus(
- Uri.create(TARGET_URL),
- new DefaultAsyncHttpClientConfig.Builder().build(),
- new DefaultHttpResponse(version, status),
- null
- )
- );
+ final Response.ResponseBuilder builder = new Response.ResponseBuilder();
+ builder.accumulate(
+ new NettyResponseStatus(
+ Uri.create(TARGET_URL),
+ new DefaultHttpResponse(version, status),
+ null
+ ));
+ return builder;
}
diff --git a/pom.xml b/pom.xml
index 9d127d7..7b54762 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,9 +77,8 @@
<log4j.version>2.5</log4j.version>
<!-- HttpClient has not yet been ported to Netty 4.x -->
<netty3.version>3.10.6.Final</netty3.version>
- <!-- Update to Netty 4.1 is not possible yet, see
https://github.com/apache/incubator-druid/issues/4390 and comments
- in https://github.com/apache/incubator-druid/pull/4973 -->
- <netty4.version>4.0.52.Final</netty4.version>
+ <!-- Spark updated in https://github.com/apache/spark/pull/19884 -->
+ <netty4.version>4.1.30.Final</netty4.version>
<slf4j.version>1.7.12</slf4j.version>
<!-- If compiling with different hadoop version also modify default
hadoop coordinates in TaskConfig.java -->
<hadoop.compile.version>2.8.3</hadoop.compile.version>
@@ -680,7 +679,8 @@
<dependency>
<groupId>org.asynchttpclient</groupId>
<artifactId>async-http-client</artifactId>
- <version>2.0.37</version>
+ <!-- Uses Netty 4.1.x -->
+ <version>2.5.3</version>
</dependency>
<dependency>
<groupId>org.gridkit.lab</groupId>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]