This is an automated email from the ASF dual-hosted git repository.

wujimin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git

commit 2b3626560adfbbc8e3f6d788567d82087bb33cf5
Author: heyile <[email protected]>
AuthorDate: Sat Nov 24 11:05:17 2018 +0800

    [SCB-968]968 http2 do not support pump download: add license
---
 LICENSE                                            |   5 +
 .../foundation/vertx/stream/PumpCommon.java        |   3 +-
 .../foundation/vertx/stream/PumpFactoryImpl.java   |  40 --------
 .../foundation/vertx/stream/PumpImpl.java          | 108 ---------------------
 .../foundation/vertx/stream/PumpImplEx.java        | 104 ++++++++++++++++++++
 .../services/io.vertx.core.spi.PumpFactory         |   1 -
 .../vertx/stream/TestPumpFactoryImpl.java          |  33 -------
 .../foundation/vertx/stream/TestPumpImpl.java      |   2 +-
 .../it-producer-deploy-springboot2-servlet/pom.xml |   1 +
 .../pom.xml                                        |   1 +
 java-chassis-distribution/src/release/LICENSE      |   6 ++
 pom.xml                                            |   1 +
 12 files changed, 120 insertions(+), 185 deletions(-)

diff --git a/LICENSE b/LICENSE
index c75dbb5..48c8a8e 100644
--- a/LICENSE
+++ b/LICENSE
@@ -216,6 +216,11 @@ 
transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicec
 This product bundles files from vertx which is licensed under the Apache 
License v2.
 For details, see https://github.com/vert-x3/vertx-web
 
+================================================================
+For  
foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/stream/PumpImplEx.java
+================================================================
+This product bundles files from vertx which is licensed under the Apache 
License v2.
+For details, see https://github.com/eclipse-vertx/vert.x
 
 ================================================================
 For 
swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/extend/property/AbstractBaseIntegerProperty.java
diff --git 
a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/stream/PumpCommon.java
 
b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/stream/PumpCommon.java
index 77334b9..090882a 100644
--- 
a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/stream/PumpCommon.java
+++ 
b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/stream/PumpCommon.java
@@ -23,7 +23,6 @@ import 
org.apache.servicecomb.foundation.common.io.AsyncCloseable;
 import io.vertx.core.Context;
 import io.vertx.core.buffer.Buffer;
 import io.vertx.core.http.HttpClientResponse;
-import io.vertx.core.streams.Pump;
 import io.vertx.core.streams.ReadStream;
 import io.vertx.core.streams.WriteStream;
 
@@ -64,7 +63,7 @@ public class PumpCommon {
     // belongs to difference eventloop
     // maybe will cause deadlock
     // if happened, vertx will print deadlock stacks
-    Pump.pump(readStream, writeStream).start();
+    PumpImplEx.getPumpImplEx(readStream, writeStream).start();
     try {
       context.runOnContext(v -> readStream.resume());
     } catch (Throwable e) {
diff --git 
a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/stream/PumpFactoryImpl.java
 
b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/stream/PumpFactoryImpl.java
deleted file mode 100644
index c3284e3..0000000
--- 
a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/stream/PumpFactoryImpl.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * 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.servicecomb.foundation.vertx.stream;
-
-import java.util.Objects;
-
-import io.vertx.core.spi.PumpFactory;
-import io.vertx.core.streams.Pump;
-import io.vertx.core.streams.ReadStream;
-import io.vertx.core.streams.WriteStream;
-
-public class PumpFactoryImpl implements PumpFactory {
-  @Override
-  public <T> Pump pump(ReadStream<T> rs, WriteStream<T> ws) {
-    Objects.requireNonNull(rs);
-    Objects.requireNonNull(ws);
-    return new PumpImpl<>(rs, ws);
-  }
-
-  @Override
-  public <T> Pump pump(ReadStream<T> rs, WriteStream<T> ws, int 
writeQueueMaxSize) {
-    Objects.requireNonNull(rs);
-    Objects.requireNonNull(ws);
-    return new PumpImpl<>(rs, ws, writeQueueMaxSize);
-  }
-}
\ No newline at end of file
diff --git 
a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/stream/PumpImpl.java
 
b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/stream/PumpImpl.java
deleted file mode 100644
index 3657e73..0000000
--- 
a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/stream/PumpImpl.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * 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.servicecomb.foundation.vertx.stream;
-
-import io.vertx.core.Handler;
-import io.vertx.core.buffer.Buffer;
-import io.vertx.core.streams.Pump;
-import io.vertx.core.streams.ReadStream;
-import io.vertx.core.streams.WriteStream;
-
-public class PumpImpl<T> implements Pump {
-
-  private final ReadStream<T> readStream;
-
-  private final WriteStream<T> writeStream;
-
-  private final Handler<T> dataHandler;
-
-  private final Handler<Void> drainHandler;
-
-  private int pumped;
-
-  public PumpImpl(ReadStream<T> readStream, WriteStream<T> writeStream, int 
maxWriteQueueSize) {
-    this(readStream, writeStream);
-    this.writeStream.setWriteQueueMaxSize(maxWriteQueueSize);
-  }
-
-  public PumpImpl(ReadStream<T> readStream, WriteStream<T> writeStream) {
-    this.readStream = readStream;
-    this.writeStream = writeStream;
-    drainHandler = v -> readStream.resume();
-    dataHandler = data -> {
-      if (data instanceof Buffer) {
-        if (((Buffer) data).length() == 0) {
-          return;
-        }
-      }
-      writeStream.write(data);
-      incPumped();
-      if (writeStream.writeQueueFull()) {
-        readStream.pause();
-        writeStream.drainHandler(drainHandler);
-      }
-    };
-  }
-
-
-  /**
-   * Set the write queue max size to {@code maxSize}
-   */
-  @Override
-  public PumpImpl<T> setWriteQueueMaxSize(int maxSize) {
-    writeStream.setWriteQueueMaxSize(maxSize);
-    return this;
-  }
-
-  /**
-   * Start the Pump. The Pump can be started and stopped multiple times.
-   */
-  @Override
-  public PumpImpl<T> start() {
-    readStream.handler(dataHandler);
-    return this;
-  }
-
-  /**
-   * Stop the Pump. The Pump can be started and stopped multiple times.
-   */
-  @Override
-  public PumpImpl<T> stop() {
-    writeStream.drainHandler(null);
-    readStream.handler(null);
-    return this;
-  }
-
-  /**
-   * Return the total number of elements pumped by this pump.
-   */
-  @Override
-  public synchronized int numberPumped() {
-    return pumped;
-  }
-
-  // Note we synchronize as numberPumped can be called from a different thread 
however incPumped will always
-  // be called from the same thread so we benefit from bias locked 
optimisation which should give a very low
-  // overhead
-  private synchronized void incPumped() {
-    pumped++;
-  }
-
-  public Handler<T> getDataHandler() {
-    return dataHandler;
-  }
-}
diff --git 
a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/stream/PumpImplEx.java
 
b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/stream/PumpImplEx.java
new file mode 100644
index 0000000..e835629
--- /dev/null
+++ 
b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/stream/PumpImplEx.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright (c) 2014 Red Hat, Inc. and others
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
+ * which is available at https://www.apache.org/licenses/LICENSE-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
+ */
+
+/*
+ *  Froked from 
https://github.com/eclipse-vertx/vert.x/blob/master/src/main/java/io/vertx/core/streams/impl/PumpImpl.java
+ *
+ */
+package org.apache.servicecomb.foundation.vertx.stream;
+
+import io.vertx.core.Handler;
+import io.vertx.core.buffer.Buffer;
+import io.vertx.core.streams.Pump;
+import io.vertx.core.streams.ReadStream;
+import io.vertx.core.streams.WriteStream;
+
+public class PumpImplEx<T> implements Pump {
+
+  private final ReadStream<T> readStream;
+
+  private final WriteStream<T> writeStream;
+
+  private final Handler<T> dataHandler;
+
+  private final Handler<Void> drainHandler;
+
+  private int pumped;
+
+  public PumpImplEx(ReadStream<T> readStream, WriteStream<T> writeStream, int 
maxWriteQueueSize) {
+    this(readStream, writeStream);
+    this.writeStream.setWriteQueueMaxSize(maxWriteQueueSize);
+  }
+
+  public PumpImplEx(ReadStream<T> readStream, WriteStream<T> writeStream) {
+    this.readStream = readStream;
+    this.writeStream = writeStream;
+    drainHandler = v -> readStream.resume();
+    dataHandler = data -> {
+      if (data instanceof Buffer) {
+        if (((Buffer) data).length() == 0) {
+          return;
+        }
+      }
+      writeStream.write(data);
+      incPumped();
+      if (writeStream.writeQueueFull()) {
+        readStream.pause();
+        writeStream.drainHandler(drainHandler);
+      }
+    };
+  }
+
+
+  @Override
+  public PumpImplEx<T> setWriteQueueMaxSize(int maxSize) {
+    writeStream.setWriteQueueMaxSize(maxSize);
+    return this;
+  }
+
+  @Override
+  public PumpImplEx<T> start() {
+    readStream.handler(dataHandler);
+    return this;
+  }
+
+  @Override
+  public PumpImplEx<T> stop() {
+    writeStream.drainHandler(null);
+    readStream.handler(null);
+    return this;
+  }
+
+
+  @Override
+  public synchronized int numberPumped() {
+    return pumped;
+  }
+
+
+  private synchronized void incPumped() {
+    pumped++;
+  }
+
+  public Handler<T> getDataHandler() {
+    return dataHandler;
+  }
+
+  @SuppressWarnings({"rawtypes", "unchecked"})
+  public static PumpImplEx getPumpImplEx(ReadStream rs, WriteStream ws) {
+    return new PumpImplEx(rs, ws);
+  }
+
+  @SuppressWarnings({"rawtypes", "unchecked"})
+  public static PumpImplEx getPumpImplEx(ReadStream rs, WriteStream ws, int 
writeQueueMaxSize) {
+    return new PumpImplEx(rs, ws, writeQueueMaxSize);
+  }
+}
diff --git 
a/foundations/foundation-vertx/src/main/resources/META-INF/services/io.vertx.core.spi.PumpFactory
 
b/foundations/foundation-vertx/src/main/resources/META-INF/services/io.vertx.core.spi.PumpFactory
deleted file mode 100644
index 1d25eef..0000000
--- 
a/foundations/foundation-vertx/src/main/resources/META-INF/services/io.vertx.core.spi.PumpFactory
+++ /dev/null
@@ -1 +0,0 @@
-org.apache.servicecomb.foundation.vertx.stream.PumpFactoryImpl
\ No newline at end of file
diff --git 
a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/stream/TestPumpFactoryImpl.java
 
b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/stream/TestPumpFactoryImpl.java
deleted file mode 100644
index f86f46d..0000000
--- 
a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/stream/TestPumpFactoryImpl.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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.servicecomb.foundation.vertx.stream;
-
-import org.junit.Assert;
-import org.junit.Test;
-
-import io.vertx.core.streams.Pump;
-import io.vertx.core.streams.ReadStream;
-import io.vertx.core.streams.WriteStream;
-import mockit.Mocked;
-
-public class TestPumpFactoryImpl {
-  @Test
-  public void pump(@Mocked ReadStream<Object> rs, @Mocked WriteStream<Object> 
ws) {
-    Pump pump = Pump.pump(rs, ws);
-    Assert.assertTrue(pump instanceof PumpImpl);
-  }
-}
diff --git 
a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/stream/TestPumpImpl.java
 
b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/stream/TestPumpImpl.java
index a2ccb17..3380550 100644
--- 
a/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/stream/TestPumpImpl.java
+++ 
b/foundations/foundation-vertx/src/test/java/org/apache/servicecomb/foundation/vertx/stream/TestPumpImpl.java
@@ -31,7 +31,7 @@ public class TestPumpImpl {
   @Test
   public void testPumpWithPending(@Mocked ReadStream<Object> rs, @Mocked 
WriteStream<Object> ws, @Mocked Buffer zeroBuf,
       @Mocked Buffer contentBuf) {
-    PumpImpl<Object> pump = new PumpImpl<>(rs, ws);
+    PumpImplEx<Object> pump = new PumpImplEx<>(rs, ws);
     Handler<Object> handler = pump.getDataHandler();
     new Expectations() {
       {
diff --git a/integration-tests/it-producer-deploy-springboot2-servlet/pom.xml 
b/integration-tests/it-producer-deploy-springboot2-servlet/pom.xml
index b8bf93e..068674e 100644
--- a/integration-tests/it-producer-deploy-springboot2-servlet/pom.xml
+++ b/integration-tests/it-producer-deploy-springboot2-servlet/pom.xml
@@ -92,6 +92,7 @@
               <!-- Skip the source files which are forked from vertx -->
               <exclude>**/io/vertx/ext/web/impl/MimeTypesUtils.java</exclude>
               
<exclude>**/java/org/apache/servicecomb/transport/rest/vertx/RestBodyHandler.java</exclude>
+              
<exclude>**/java/org/apache/servicecomb/foundation/vertx/stream/PumpImplEx.java</exclude>
               <!--Skip protobuf generated file-->
               
<exclude>**/java/org/apache/servicecomb/foundation/protobuf/internal/model/ProtobufRoot.java</exclude>
             </excludes>
diff --git 
a/integration-tests/it-producer-deploy-springboot2-standalone/pom.xml 
b/integration-tests/it-producer-deploy-springboot2-standalone/pom.xml
index e05b10c..e35dc02 100644
--- a/integration-tests/it-producer-deploy-springboot2-standalone/pom.xml
+++ b/integration-tests/it-producer-deploy-springboot2-standalone/pom.xml
@@ -92,6 +92,7 @@
               <!-- Skip the source files which are forked from vertx -->
               <exclude>**/io/vertx/ext/web/impl/MimeTypesUtils.java</exclude>
               
<exclude>**/java/org/apache/servicecomb/transport/rest/vertx/RestBodyHandler.java</exclude>
+              
<exclude>**/java/org/apache/servicecomb/foundation/vertx/stream/PumpImplEx.java</exclude>
               <!--Skip protobuf generated file-->
               
<exclude>**/java/org/apache/servicecomb/foundation/protobuf/internal/model/ProtobufRoot.java</exclude>
             </excludes>
diff --git a/java-chassis-distribution/src/release/LICENSE 
b/java-chassis-distribution/src/release/LICENSE
index df77806..638a7a9 100644
--- a/java-chassis-distribution/src/release/LICENSE
+++ b/java-chassis-distribution/src/release/LICENSE
@@ -369,6 +369,12 @@ This product bundles files from vertx which is licensed 
under the Apache License
 For details, see https://github.com/vert-x3/vertx-web
 
 ================================================================
+For  
foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/stream/PumpImplEx.java
+================================================================
+This product bundles files from vertx which is licensed under the Apache 
License v2.
+For details, see https://github.com/eclipse-vertx/vert.x
+
+================================================================
 For 
swagger/swagger-generator/generator-core/src/main/java/org/apache/servicecomb/swagger/extend/property/AbstractBaseIntegerProperty.java
 ================================================================
 This product bundles files from swagger which is licensed under the Apache 
License v2.
diff --git a/pom.xml b/pom.xml
index 40e6ce0..b111da2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -195,6 +195,7 @@
             <!-- Skip the source files which are forked from vertx -->
             <exclude>**/io/vertx/ext/web/impl/MimeTypesUtils.java</exclude>
             
<exclude>**/java/org/apache/servicecomb/transport/rest/vertx/RestBodyHandler.java</exclude>
+            
<exclude>**/java/org/apache/servicecomb/foundation/vertx/stream/PumpImplEx.java</exclude>
             <!--Skip protobuf generated file-->
             
<exclude>**/java/org/apache/servicecomb/foundation/protobuf/internal/model/ProtobufRoot.java</exclude>
           </excludes>

Reply via email to