parent
							
								
									0619e19140
								
							
						
					
					
						commit
						f87a87e29d
					
				| 
						 | 
				
			
			@ -38,6 +38,7 @@ import org.springframework.util.FileCopyUtils;
 | 
			
		|||
 * certain resources. The actual behavior is implementation-specific.
 | 
			
		||||
 *
 | 
			
		||||
 * @author Juergen Hoeller
 | 
			
		||||
 * @author Arjen Poutsma
 | 
			
		||||
 * @since 28.12.2003
 | 
			
		||||
 * @see #getInputStream()
 | 
			
		||||
 * @see #getURL()
 | 
			
		||||
| 
						 | 
				
			
			@ -138,6 +139,32 @@ public interface Resource extends InputStreamSource {
 | 
			
		|||
		return Channels.newChannel(getInputStream());
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Return the contents of this resource as a byte array.
 | 
			
		||||
	 * @return the contents of this resource as byte array
 | 
			
		||||
	 * @throws java.io.FileNotFoundException if the resource cannot be resolved as
 | 
			
		||||
	 * absolute file path, i.e. if the resource is not available in a file system
 | 
			
		||||
	 * @throws IOException in case of general resolution/reading failures
 | 
			
		||||
	 * @since 6.0.5
 | 
			
		||||
	 */
 | 
			
		||||
	default byte[] getContentAsByteArray() throws IOException {
 | 
			
		||||
		return FileCopyUtils.copyToByteArray(getInputStream());
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Returns the contents of this resource as a string, using the specified
 | 
			
		||||
	 * charset.
 | 
			
		||||
	 * @param charset the charset to use for decoding
 | 
			
		||||
	 * @return the contents of this resource as a {@code String}
 | 
			
		||||
	 * @throws java.io.FileNotFoundException if the resource cannot be resolved as
 | 
			
		||||
	 * absolute file path, i.e. if the resource is not available in a file system
 | 
			
		||||
	 * @throws IOException in case of general resolution/reading failures
 | 
			
		||||
	 * @since 6.0.5
 | 
			
		||||
	 */
 | 
			
		||||
	default String getContentAsString(Charset charset) throws IOException {
 | 
			
		||||
		return FileCopyUtils.copyToString(new InputStreamReader(getInputStream(), charset));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Determine the content length for this resource.
 | 
			
		||||
	 * @throws IOException if the resource cannot be resolved
 | 
			
		||||
| 
						 | 
				
			
			@ -179,30 +206,4 @@ public interface Resource extends InputStreamSource {
 | 
			
		|||
	 */
 | 
			
		||||
	String getDescription();
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Return the contents of this resource as a byte array.
 | 
			
		||||
	 * @return the contents of this resource as byte array
 | 
			
		||||
	 * @throws java.io.FileNotFoundException if the resource cannot be resolved as
 | 
			
		||||
	 * absolute file path, i.e. if the resource is not available in a file system
 | 
			
		||||
	 * @throws IOException in case of general resolution/reading failures
 | 
			
		||||
	 * @since 6.0.5
 | 
			
		||||
	 */
 | 
			
		||||
	default byte[] getContentAsByteArray() throws IOException {
 | 
			
		||||
		return FileCopyUtils.copyToByteArray(getInputStream());
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Returns the contents of this resource as a string, using the specified
 | 
			
		||||
	 * charset.
 | 
			
		||||
	 * @param charset the charset to use for decoding
 | 
			
		||||
	 * @return the contents of this resource as a {@code String}
 | 
			
		||||
	 * @throws java.io.FileNotFoundException if the resource cannot be resolved as
 | 
			
		||||
	 * absolute file path, i.e. if the resource is not available in a file system
 | 
			
		||||
	 * @throws IOException in case of general resolution/reading failures
 | 
			
		||||
	 * @since 6.0.5
 | 
			
		||||
	 */
 | 
			
		||||
	default String getContentAsString(Charset charset) throws IOException {
 | 
			
		||||
		return FileCopyUtils.copyToString(new InputStreamReader(getInputStream(), charset));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -37,6 +37,7 @@ import org.springframework.util.ObjectUtils;
 | 
			
		|||
 *
 | 
			
		||||
 * @author Juergen Hoeller
 | 
			
		||||
 * @author Sam Brannen
 | 
			
		||||
 * @author Arjen Poutsma
 | 
			
		||||
 * @since 1.2.6
 | 
			
		||||
 * @see Resource#getInputStream()
 | 
			
		||||
 * @see java.io.Reader
 | 
			
		||||
| 
						 | 
				
			
			@ -161,10 +162,10 @@ public class EncodedResource implements InputStreamSource {
 | 
			
		|||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Returns the contents of the specified resource as a string, using the specified
 | 
			
		||||
	 * {@link #getCharset() Charset} or {@linkplain #getEncoding() encoding}
 | 
			
		||||
	 * (if any).
 | 
			
		||||
	 * {@link #getCharset() Charset} or {@linkplain #getEncoding() encoding} (if any).
 | 
			
		||||
	 * @throws IOException if opening the resource failed
 | 
			
		||||
	 * @since 6.0.5
 | 
			
		||||
	 * @see Resource#getContentAsString(Charset)
 | 
			
		||||
	 */
 | 
			
		||||
	public String getContentAsString() throws IOException {
 | 
			
		||||
		Charset charset;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,6 +21,7 @@ import java.io.IOException;
 | 
			
		|||
import java.io.InputStream;
 | 
			
		||||
import java.net.URI;
 | 
			
		||||
import java.net.URL;
 | 
			
		||||
import java.nio.channels.ReadableByteChannel;
 | 
			
		||||
import java.nio.charset.Charset;
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.Arrays;
 | 
			
		||||
| 
						 | 
				
			
			@ -204,11 +205,6 @@ public class EncodedResourceResolver extends AbstractResourceResolver {
 | 
			
		|||
			this.encoded = original.createRelative(original.getFilename() + extension);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public InputStream getInputStream() throws IOException {
 | 
			
		||||
			return this.encoded.getInputStream();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public boolean exists() {
 | 
			
		||||
			return this.encoded.exists();
 | 
			
		||||
| 
						 | 
				
			
			@ -244,6 +240,26 @@ public class EncodedResourceResolver extends AbstractResourceResolver {
 | 
			
		|||
			return this.encoded.getFile();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public InputStream getInputStream() throws IOException {
 | 
			
		||||
			return this.encoded.getInputStream();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public ReadableByteChannel readableChannel() throws IOException {
 | 
			
		||||
			return this.encoded.readableChannel();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public byte[] getContentAsByteArray() throws IOException {
 | 
			
		||||
			return this.encoded.getContentAsByteArray();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public String getContentAsString(Charset charset) throws IOException {
 | 
			
		||||
			return this.encoded.getContentAsString(charset);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public long contentLength() throws IOException {
 | 
			
		||||
			return this.encoded.contentLength();
 | 
			
		||||
| 
						 | 
				
			
			@ -270,16 +286,6 @@ public class EncodedResourceResolver extends AbstractResourceResolver {
 | 
			
		|||
			return this.encoded.getDescription();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public byte[] getContentAsByteArray() throws IOException {
 | 
			
		||||
			return this.encoded.getContentAsByteArray();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public String getContentAsString(Charset charset) throws IOException {
 | 
			
		||||
			return this.encoded.getContentAsString(charset);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public HttpHeaders getResponseHeaders() {
 | 
			
		||||
			HttpHeaders headers;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,6 +21,7 @@ import java.io.IOException;
 | 
			
		|||
import java.io.InputStream;
 | 
			
		||||
import java.net.URI;
 | 
			
		||||
import java.net.URL;
 | 
			
		||||
import java.nio.channels.ReadableByteChannel;
 | 
			
		||||
import java.nio.charset.Charset;
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.Arrays;
 | 
			
		||||
| 
						 | 
				
			
			@ -284,9 +285,23 @@ public class VersionResourceResolver extends AbstractResourceResolver {
 | 
			
		|||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		@Nullable
 | 
			
		||||
		public String getFilename() {
 | 
			
		||||
			return this.original.getFilename();
 | 
			
		||||
		public InputStream getInputStream() throws IOException {
 | 
			
		||||
			return this.original.getInputStream();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public ReadableByteChannel readableChannel() throws IOException {
 | 
			
		||||
			return this.original.readableChannel();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public byte[] getContentAsByteArray() throws IOException {
 | 
			
		||||
			return this.original.getContentAsByteArray();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public String getContentAsString(Charset charset) throws IOException {
 | 
			
		||||
			return this.original.getContentAsString(charset);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
| 
						 | 
				
			
			@ -304,26 +319,17 @@ public class VersionResourceResolver extends AbstractResourceResolver {
 | 
			
		|||
			return this.original.createRelative(relativePath);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		@Nullable
 | 
			
		||||
		public String getFilename() {
 | 
			
		||||
			return this.original.getFilename();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public String getDescription() {
 | 
			
		||||
			return this.original.getDescription();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public byte[] getContentAsByteArray() throws IOException {
 | 
			
		||||
			return this.original.getContentAsByteArray();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public String getContentAsString(Charset charset) throws IOException {
 | 
			
		||||
			return this.original.getContentAsString(charset);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public InputStream getInputStream() throws IOException {
 | 
			
		||||
			return this.original.getInputStream();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public HttpHeaders getResponseHeaders() {
 | 
			
		||||
			HttpHeaders headers = (this.original instanceof HttpResource httpResource ?
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,6 +21,7 @@ import java.io.IOException;
 | 
			
		|||
import java.io.InputStream;
 | 
			
		||||
import java.net.URI;
 | 
			
		||||
import java.net.URL;
 | 
			
		||||
import java.nio.channels.ReadableByteChannel;
 | 
			
		||||
import java.nio.charset.Charset;
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.Arrays;
 | 
			
		||||
| 
						 | 
				
			
			@ -201,11 +202,6 @@ public class EncodedResourceResolver extends AbstractResourceResolver {
 | 
			
		|||
		}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public InputStream getInputStream() throws IOException {
 | 
			
		||||
			return this.encoded.getInputStream();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public boolean exists() {
 | 
			
		||||
			return this.encoded.exists();
 | 
			
		||||
| 
						 | 
				
			
			@ -241,6 +237,26 @@ public class EncodedResourceResolver extends AbstractResourceResolver {
 | 
			
		|||
			return this.encoded.getFile();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public InputStream getInputStream() throws IOException {
 | 
			
		||||
			return this.encoded.getInputStream();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public ReadableByteChannel readableChannel() throws IOException {
 | 
			
		||||
			return this.encoded.readableChannel();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public byte[] getContentAsByteArray() throws IOException {
 | 
			
		||||
			return this.encoded.getContentAsByteArray();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public String getContentAsString(Charset charset) throws IOException {
 | 
			
		||||
			return this.encoded.getContentAsString(charset);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public long contentLength() throws IOException {
 | 
			
		||||
			return this.encoded.contentLength();
 | 
			
		||||
| 
						 | 
				
			
			@ -267,16 +283,6 @@ public class EncodedResourceResolver extends AbstractResourceResolver {
 | 
			
		|||
			return this.encoded.getDescription();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public byte[] getContentAsByteArray() throws IOException {
 | 
			
		||||
			return this.encoded.getContentAsByteArray();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public String getContentAsString(Charset charset) throws IOException {
 | 
			
		||||
			return this.encoded.getContentAsString(charset);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public HttpHeaders getResponseHeaders() {
 | 
			
		||||
			HttpHeaders headers;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,6 +21,7 @@ import java.io.IOException;
 | 
			
		|||
import java.io.InputStream;
 | 
			
		||||
import java.net.URI;
 | 
			
		||||
import java.net.URL;
 | 
			
		||||
import java.nio.channels.ReadableByteChannel;
 | 
			
		||||
import java.nio.charset.Charset;
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.Arrays;
 | 
			
		||||
| 
						 | 
				
			
			@ -280,9 +281,23 @@ public class VersionResourceResolver extends AbstractResourceResolver {
 | 
			
		|||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		@Nullable
 | 
			
		||||
		public String getFilename() {
 | 
			
		||||
			return this.original.getFilename();
 | 
			
		||||
		public InputStream getInputStream() throws IOException {
 | 
			
		||||
			return this.original.getInputStream();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public ReadableByteChannel readableChannel() throws IOException {
 | 
			
		||||
			return this.original.readableChannel();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public byte[] getContentAsByteArray() throws IOException {
 | 
			
		||||
			return this.original.getContentAsByteArray();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public String getContentAsString(Charset charset) throws IOException {
 | 
			
		||||
			return this.original.getContentAsString(charset);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
| 
						 | 
				
			
			@ -300,26 +315,17 @@ public class VersionResourceResolver extends AbstractResourceResolver {
 | 
			
		|||
			return this.original.createRelative(relativePath);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		@Nullable
 | 
			
		||||
		public String getFilename() {
 | 
			
		||||
			return this.original.getFilename();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public String getDescription() {
 | 
			
		||||
			return this.original.getDescription();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public byte[] getContentAsByteArray() throws IOException {
 | 
			
		||||
			return this.original.getContentAsByteArray();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public String getContentAsString(Charset charset) throws IOException {
 | 
			
		||||
			return this.original.getContentAsString(charset);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public InputStream getInputStream() throws IOException {
 | 
			
		||||
			return this.original.getInputStream();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public HttpHeaders getResponseHeaders() {
 | 
			
		||||
			HttpHeaders headers = (this.original instanceof HttpResource httpResource ?
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue