From bc31424d60462da14c9db8f93d68a6a3b205b3f9 Mon Sep 17 00:00:00 2001 From: Darren Foong Date: Sat, 12 Dec 2020 16:48:37 +0800 Subject: [PATCH 1/4] Add EmptyCollectionWriter --- .../form/MultipartFormContentProcessor.java | 4 +++- .../form/multipart/EmptyCollectionWriter.java | 20 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 feign-form/src/main/java/feign/form/multipart/EmptyCollectionWriter.java diff --git a/feign-form/src/main/java/feign/form/MultipartFormContentProcessor.java b/feign-form/src/main/java/feign/form/MultipartFormContentProcessor.java index 6e2f84e..2a01e2a 100644 --- a/feign-form/src/main/java/feign/form/MultipartFormContentProcessor.java +++ b/feign-form/src/main/java/feign/form/MultipartFormContentProcessor.java @@ -33,6 +33,7 @@ import feign.codec.Encoder; import feign.form.multipart.ByteArrayWriter; import feign.form.multipart.DelegateWriter; +import feign.form.multipart.EmptyCollectionWriter; import feign.form.multipart.FormDataWriter; import feign.form.multipart.ManyFilesWriter; import feign.form.multipart.ManyParametersWriter; @@ -41,13 +42,13 @@ import feign.form.multipart.SingleFileWriter; import feign.form.multipart.SingleParameterWriter; import feign.form.multipart.Writer; - import lombok.experimental.FieldDefaults; import lombok.val; /** * * @author Artem Labazin + * @author Darren Foong */ @FieldDefaults(level = PRIVATE, makeFinal = true) public class MultipartFormContentProcessor implements ContentProcessor { @@ -63,6 +64,7 @@ public class MultipartFormContentProcessor implements ContentProcessor { */ public MultipartFormContentProcessor (Encoder delegate) { writers = new LinkedList(); + addWriter(new EmptyCollectionWriter()); addWriter(new ByteArrayWriter()); addWriter(new FormDataWriter()); addWriter(new SingleFileWriter()); diff --git a/feign-form/src/main/java/feign/form/multipart/EmptyCollectionWriter.java b/feign-form/src/main/java/feign/form/multipart/EmptyCollectionWriter.java new file mode 100644 index 0000000..70bb617 --- /dev/null +++ b/feign-form/src/main/java/feign/form/multipart/EmptyCollectionWriter.java @@ -0,0 +1,20 @@ +package feign.form.multipart; + +import java.util.Collection; + +import feign.codec.EncodeException; + +/** + * + * @author Darren Foong + */ +public class EmptyCollectionWriter implements Writer { + + @Override + public boolean isApplicable(Object value) { + return value instanceof Collection && ((Collection) value).isEmpty(); + } + + @Override + public void write(Output output, String boundary, String key, Object value) throws EncodeException {} +} From 5fe5f0888eb5a53f2114840c039e9e9c88a7f5f8 Mon Sep 17 00:00:00 2001 From: Darren Foong Date: Sat, 12 Dec 2020 18:15:26 +0800 Subject: [PATCH 2/4] Fix PMD issues --- .../form/multipart/EmptyCollectionWriter.java | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/feign-form/src/main/java/feign/form/multipart/EmptyCollectionWriter.java b/feign-form/src/main/java/feign/form/multipart/EmptyCollectionWriter.java index 70bb617..41e0bf1 100644 --- a/feign-form/src/main/java/feign/form/multipart/EmptyCollectionWriter.java +++ b/feign-form/src/main/java/feign/form/multipart/EmptyCollectionWriter.java @@ -1,3 +1,19 @@ +/* + * Copyright 2019 the original author or authors. + * + * Licensed 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 feign.form.multipart; import java.util.Collection; @@ -11,10 +27,12 @@ public class EmptyCollectionWriter implements Writer { @Override - public boolean isApplicable(Object value) { + public boolean isApplicable (Object value) { return value instanceof Collection && ((Collection) value).isEmpty(); } @Override - public void write(Output output, String boundary, String key, Object value) throws EncodeException {} + public void write (Output output, String boundary, String key, Object value) throws EncodeException { + // no-op + } } From 6a587b34ab34012085ce0552c80b1dda60c1a97f Mon Sep 17 00:00:00 2001 From: Darren Foong Date: Sat, 12 Dec 2020 18:16:31 +0800 Subject: [PATCH 3/4] Tidy code --- .../src/main/java/feign/form/MultipartFormContentProcessor.java | 1 + 1 file changed, 1 insertion(+) diff --git a/feign-form/src/main/java/feign/form/MultipartFormContentProcessor.java b/feign-form/src/main/java/feign/form/MultipartFormContentProcessor.java index 2a01e2a..420f65d 100644 --- a/feign-form/src/main/java/feign/form/MultipartFormContentProcessor.java +++ b/feign-form/src/main/java/feign/form/MultipartFormContentProcessor.java @@ -42,6 +42,7 @@ import feign.form.multipart.SingleFileWriter; import feign.form.multipart.SingleParameterWriter; import feign.form.multipart.Writer; + import lombok.experimental.FieldDefaults; import lombok.val; From 034e8346ef44fd5ec301b433f98d04cbb85ad29b Mon Sep 17 00:00:00 2001 From: Darren Foong Date: Sat, 12 Dec 2020 18:57:44 +0800 Subject: [PATCH 4/4] Update .travis.yml --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 441e3ba..f1fa856 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,7 +2,7 @@ language: java jdk: - - oraclejdk8 + - oraclejdk9 install: ./mvnw --settings .settings.xml install -DskipTests=true -Dmaven.javadoc.skip=true -Dgpg.skip -B -V