diff --git a/core-common/pom.xml b/core-common/pom.xml index 71395592be..424315b1be 100644 --- a/core-common/pom.xml +++ b/core-common/pom.xml @@ -310,7 +310,7 @@ - + compile-2-java8 process-resources @@ -497,10 +497,10 @@ copy-resources - ${project.build.directory}/generated-sources/rsrc-gen/META-INF/versions/11/org/glassfish/jersey/internal/jsr166 + ${project.build.directory}/generated-sources/rsrc-gen/META-INF/versions/11/org/glassfish/jersey - ${java11.sourceDirectory}/org/glassfish/jersey/internal/jsr166 + ${java11.sourceDirectory}/org/glassfish/jersey diff --git a/core-common/src/main/java/org/glassfish/jersey/message/internal/EntityInputStream.java b/core-common/src/main/java/org/glassfish/jersey/message/internal/EntityInputStream.java index 06678b16fe..fe9fb0e160 100644 --- a/core-common/src/main/java/org/glassfish/jersey/message/internal/EntityInputStream.java +++ b/core-common/src/main/java/org/glassfish/jersey/message/internal/EntityInputStream.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2019 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024 Oracle and/or its affiliates. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v. 2.0, which is available at @@ -22,6 +22,7 @@ import javax.ws.rs.ProcessingException; +import org.glassfish.jersey.innate.io.InputStreamWrapper; import org.glassfish.jersey.internal.LocalizationMessages; /** @@ -33,7 +34,7 @@ * * @author Marek Potociar */ -public class EntityInputStream extends InputStream { +public class EntityInputStream extends InputStreamWrapper { private InputStream input; private boolean closed = false; @@ -64,40 +65,6 @@ public EntityInputStream(InputStream input) { this.input = input; } - @Override - public int read() throws IOException { - return input.read(); - } - - @Override - public int read(byte[] b) throws IOException { - return input.read(b); - } - - @Override - public int read(byte[] b, int off, int len) throws IOException { - return input.read(b, off, len); - } - - @Override - public long skip(long n) throws IOException { - return input.skip(n); - } - - @Override - public int available() throws IOException { - return input.available(); - } - - @Override - public void mark(int readLimit) { - input.mark(readLimit); - } - - @Override - public boolean markSupported() { - return input.markSupported(); - } /** * {@inheritDoc} @@ -232,4 +199,9 @@ public final InputStream getWrappedStream() { public final void setWrappedStream(InputStream wrapped) { input = wrapped; } + + @Override + protected InputStream getWrapped() { + return input; + } } diff --git a/core-common/src/main/java11/org/glassfish/jersey/innate/io/InputStreamWrapper.java b/core-common/src/main/java11/org/glassfish/jersey/innate/io/InputStreamWrapper.java new file mode 100644 index 0000000000..abcee6b286 --- /dev/null +++ b/core-common/src/main/java11/org/glassfish/jersey/innate/io/InputStreamWrapper.java @@ -0,0 +1,103 @@ +/* + * Copyright (c) 2024 Oracle and/or its affiliates. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package org.glassfish.jersey.innate.io; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; + +/** + * Generic wrapper template for InputStream. + */ +public abstract class InputStreamWrapper extends InputStream { + + /** + * Return the wrapped stream + * @return + */ + protected abstract InputStream getWrapped(); + + /** + * Get wrapped stream that can throw {@link IOException} + * @return the wrapped InputStream. + * @throws IOException + */ + protected InputStream getWrappedIOE() throws IOException { + return getWrapped(); + } + + @Override + public int read() throws IOException { + return getWrappedIOE().read(); + } + + @Override + public int read(byte[] b) throws IOException { + return getWrappedIOE().read(b); + } + + @Override + public int read(byte[] b, int off, int len) throws IOException { + return getWrappedIOE().read(b, off, len); + } + + @Override + public byte[] readAllBytes() throws IOException { + return getWrappedIOE().readAllBytes(); + } + + @Override + public int readNBytes(byte[] b, int off, int len) throws IOException { + return getWrappedIOE().readNBytes(b, off, len); + } + + @Override + public long transferTo(OutputStream out) throws IOException { + return getWrappedIOE().transferTo(out); + } + + + @Override + public long skip(long n) throws IOException { + return getWrappedIOE().skip(n); + } + + @Override + public int available() throws IOException { + return getWrappedIOE().available(); + } + + @Override + public void close() throws IOException { + getWrappedIOE().close(); + } + + @Override + public void mark(int readlimit) { + getWrapped().mark(readlimit); + } + + @Override + public void reset() throws IOException { + getWrappedIOE().reset(); + } + + @Override + public boolean markSupported() { + return getWrapped().markSupported(); + } +} diff --git a/core-common/src/main/java/org/glassfish/jersey/innate/io/InputStreamWrapper.java b/core-common/src/main/java8/org/glassfish/jersey/innate/io/InputStreamWrapper.java similarity index 100% rename from core-common/src/main/java/org/glassfish/jersey/innate/io/InputStreamWrapper.java rename to core-common/src/main/java8/org/glassfish/jersey/innate/io/InputStreamWrapper.java