Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
爱吃血肠
spring-framework
提交
38f3d12e
S
spring-framework
项目概览
爱吃血肠
/
spring-framework
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
spring-framework
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
38f3d12e
编写于
9月 20, 2016
作者:
S
Sebastien Deleuze
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Do not provide hints for can*() methods anymore
Issue: SPR-14557
上级
b83a6daf
变更
38
隐藏空白更改
内联
并排
Showing
38 changed file
with
85 addition
and
93 deletion
+85
-93
spring-core/src/main/java/org/springframework/core/codec/AbstractDecoder.java
.../java/org/springframework/core/codec/AbstractDecoder.java
+1
-1
spring-core/src/main/java/org/springframework/core/codec/AbstractEncoder.java
.../java/org/springframework/core/codec/AbstractEncoder.java
+1
-1
spring-core/src/main/java/org/springframework/core/codec/ByteBufferDecoder.java
...ava/org/springframework/core/codec/ByteBufferDecoder.java
+2
-2
spring-core/src/main/java/org/springframework/core/codec/ByteBufferEncoder.java
...ava/org/springframework/core/codec/ByteBufferEncoder.java
+2
-2
spring-core/src/main/java/org/springframework/core/codec/CharSequenceEncoder.java
...a/org/springframework/core/codec/CharSequenceEncoder.java
+2
-2
spring-core/src/main/java/org/springframework/core/codec/Decoder.java
...src/main/java/org/springframework/core/codec/Decoder.java
+1
-2
spring-core/src/main/java/org/springframework/core/codec/Encoder.java
...src/main/java/org/springframework/core/codec/Encoder.java
+1
-2
spring-core/src/main/java/org/springframework/core/codec/ResourceDecoder.java
.../java/org/springframework/core/codec/ResourceDecoder.java
+2
-2
spring-core/src/main/java/org/springframework/core/codec/ResourceEncoder.java
.../java/org/springframework/core/codec/ResourceEncoder.java
+2
-2
spring-core/src/main/java/org/springframework/core/codec/StringDecoder.java
...in/java/org/springframework/core/codec/StringDecoder.java
+2
-2
spring-core/src/test/java/org/springframework/core/codec/ByteBufferDecoderTests.java
...rg/springframework/core/codec/ByteBufferDecoderTests.java
+3
-3
spring-core/src/test/java/org/springframework/core/codec/ByteBufferEncoderTests.java
...rg/springframework/core/codec/ByteBufferEncoderTests.java
+3
-3
spring-core/src/test/java/org/springframework/core/codec/CharSequenceEncoderTests.java
.../springframework/core/codec/CharSequenceEncoderTests.java
+5
-5
spring-core/src/test/java/org/springframework/core/codec/ResourceDecoderTests.java
.../org/springframework/core/codec/ResourceDecoderTests.java
+4
-4
spring-core/src/test/java/org/springframework/core/codec/ResourceEncoderTests.java
.../org/springframework/core/codec/ResourceEncoderTests.java
+4
-4
spring-core/src/test/java/org/springframework/core/codec/StringDecoderTests.java
...va/org/springframework/core/codec/StringDecoderTests.java
+5
-5
spring-web-reactive/src/main/java/org/springframework/web/reactive/function/BodyExtractors.java
...springframework/web/reactive/function/BodyExtractors.java
+1
-1
spring-web-reactive/src/main/java/org/springframework/web/reactive/function/BodyInserters.java
.../springframework/web/reactive/function/BodyInserters.java
+1
-2
spring-web-reactive/src/main/java/org/springframework/web/reactive/result/view/HttpMessageWriterView.java
...ework/web/reactive/result/view/HttpMessageWriterView.java
+3
-3
spring-web-reactive/src/test/java/org/springframework/web/reactive/config/WebReactiveConfigurationTests.java
...rk/web/reactive/config/WebReactiveConfigurationTests.java
+2
-2
spring-web-reactive/src/test/java/org/springframework/web/reactive/function/StrategiesSupplierTests.java
...mework/web/reactive/function/StrategiesSupplierTests.java
+2
-2
spring-web/src/main/java/org/springframework/http/codec/DecoderHttpMessageReader.java
.../springframework/http/codec/DecoderHttpMessageReader.java
+2
-2
spring-web/src/main/java/org/springframework/http/codec/EncoderHttpMessageWriter.java
.../springframework/http/codec/EncoderHttpMessageWriter.java
+2
-2
spring-web/src/main/java/org/springframework/http/codec/HttpMessageReader.java
...ava/org/springframework/http/codec/HttpMessageReader.java
+3
-4
spring-web/src/main/java/org/springframework/http/codec/HttpMessageWriter.java
...ava/org/springframework/http/codec/HttpMessageWriter.java
+1
-2
spring-web/src/main/java/org/springframework/http/codec/ServerSentEventHttpMessageWriter.java
...ramework/http/codec/ServerSentEventHttpMessageWriter.java
+2
-2
spring-web/src/main/java/org/springframework/http/codec/json/Jackson2JsonDecoder.java
.../springframework/http/codec/json/Jackson2JsonDecoder.java
+1
-1
spring-web/src/main/java/org/springframework/http/codec/json/Jackson2JsonEncoder.java
.../springframework/http/codec/json/Jackson2JsonEncoder.java
+1
-1
spring-web/src/main/java/org/springframework/http/codec/xml/Jaxb2XmlDecoder.java
...a/org/springframework/http/codec/xml/Jaxb2XmlDecoder.java
+2
-2
spring-web/src/main/java/org/springframework/http/codec/xml/Jaxb2XmlEncoder.java
...a/org/springframework/http/codec/xml/Jaxb2XmlEncoder.java
+2
-2
spring-web/src/main/java/org/springframework/web/client/reactive/ResponseExtractors.java
...ringframework/web/client/reactive/ResponseExtractors.java
+1
-1
spring-web/src/main/java/org/springframework/web/client/reactive/WebClient.java
...va/org/springframework/web/client/reactive/WebClient.java
+1
-1
spring-web/src/main/java/org/springframework/web/client/reactive/support/RxJava1ResponseExtractors.java
...eb/client/reactive/support/RxJava1ResponseExtractors.java
+1
-1
spring-web/src/test/java/org/springframework/http/codec/ServerSentEventHttpMessageWriterTests.java
...ork/http/codec/ServerSentEventHttpMessageWriterTests.java
+3
-4
spring-web/src/test/java/org/springframework/http/codec/json/Jackson2JsonDecoderTests.java
...ngframework/http/codec/json/Jackson2JsonDecoderTests.java
+2
-2
spring-web/src/test/java/org/springframework/http/codec/json/Jackson2JsonEncoderTests.java
...ngframework/http/codec/json/Jackson2JsonEncoderTests.java
+2
-2
spring-web/src/test/java/org/springframework/http/codec/xml/Jaxb2XmlDecoderTests.java
.../springframework/http/codec/xml/Jaxb2XmlDecoderTests.java
+5
-7
spring-web/src/test/java/org/springframework/http/codec/xml/Jaxb2XmlEncoderTests.java
.../springframework/http/codec/xml/Jaxb2XmlEncoderTests.java
+5
-5
未找到文件。
spring-core/src/main/java/org/springframework/core/codec/AbstractDecoder.java
浏览文件 @
38f3d12e
...
...
@@ -50,7 +50,7 @@ public abstract class AbstractDecoder<T> implements Decoder<T> {
}
@Override
public
boolean
canDecode
(
ResolvableType
elementType
,
MimeType
mimeType
,
Map
<
String
,
Object
>
hints
)
{
public
boolean
canDecode
(
ResolvableType
elementType
,
MimeType
mimeType
)
{
if
(
mimeType
==
null
)
{
return
true
;
}
...
...
spring-core/src/main/java/org/springframework/core/codec/AbstractEncoder.java
浏览文件 @
38f3d12e
...
...
@@ -46,7 +46,7 @@ public abstract class AbstractEncoder<T> implements Encoder<T> {
}
@Override
public
boolean
canEncode
(
ResolvableType
elementType
,
MimeType
mimeType
,
Map
<
String
,
Object
>
hints
)
{
public
boolean
canEncode
(
ResolvableType
elementType
,
MimeType
mimeType
)
{
if
(
mimeType
==
null
)
{
return
true
;
}
...
...
spring-core/src/main/java/org/springframework/core/codec/ByteBufferDecoder.java
浏览文件 @
38f3d12e
...
...
@@ -43,9 +43,9 @@ public class ByteBufferDecoder extends AbstractDecoder<ByteBuffer> {
@Override
public
boolean
canDecode
(
ResolvableType
elementType
,
MimeType
mimeType
,
Map
<
String
,
Object
>
hints
)
{
public
boolean
canDecode
(
ResolvableType
elementType
,
MimeType
mimeType
)
{
Class
<?>
clazz
=
elementType
.
getRawClass
();
return
(
super
.
canDecode
(
elementType
,
mimeType
,
hints
)
&&
ByteBuffer
.
class
.
isAssignableFrom
(
clazz
));
return
(
super
.
canDecode
(
elementType
,
mimeType
)
&&
ByteBuffer
.
class
.
isAssignableFrom
(
clazz
));
}
@Override
...
...
spring-core/src/main/java/org/springframework/core/codec/ByteBufferEncoder.java
浏览文件 @
38f3d12e
...
...
@@ -42,9 +42,9 @@ public class ByteBufferEncoder extends AbstractEncoder<ByteBuffer> {
@Override
public
boolean
canEncode
(
ResolvableType
elementType
,
MimeType
mimeType
,
Map
<
String
,
Object
>
hints
)
{
public
boolean
canEncode
(
ResolvableType
elementType
,
MimeType
mimeType
)
{
Class
<?>
clazz
=
elementType
.
getRawClass
();
return
(
super
.
canEncode
(
elementType
,
mimeType
,
hints
)
&&
ByteBuffer
.
class
.
isAssignableFrom
(
clazz
));
return
(
super
.
canEncode
(
elementType
,
mimeType
)
&&
ByteBuffer
.
class
.
isAssignableFrom
(
clazz
));
}
@Override
...
...
spring-core/src/main/java/org/springframework/core/codec/CharSequenceEncoder.java
浏览文件 @
38f3d12e
...
...
@@ -49,9 +49,9 @@ public class CharSequenceEncoder extends AbstractEncoder<CharSequence> {
@Override
public
boolean
canEncode
(
ResolvableType
elementType
,
MimeType
mimeType
,
Map
<
String
,
Object
>
hints
)
{
public
boolean
canEncode
(
ResolvableType
elementType
,
MimeType
mimeType
)
{
Class
<?>
clazz
=
elementType
.
getRawClass
();
return
(
super
.
canEncode
(
elementType
,
mimeType
,
hints
)
&&
CharSequence
.
class
.
isAssignableFrom
(
clazz
));
return
(
super
.
canEncode
(
elementType
,
mimeType
)
&&
CharSequence
.
class
.
isAssignableFrom
(
clazz
));
}
@Override
...
...
spring-core/src/main/java/org/springframework/core/codec/Decoder.java
浏览文件 @
38f3d12e
...
...
@@ -43,10 +43,9 @@ public interface Decoder<T> {
* type of the source stream.
* @param elementType the target element type for the output stream
* @param mimeType the mime type associated with the stream to decode
* @param hints additional information about how to do encode
* @return {@code true} if supported, {@code false} otherwise
*/
boolean
canDecode
(
ResolvableType
elementType
,
MimeType
mimeType
,
Map
<
String
,
Object
>
hints
);
boolean
canDecode
(
ResolvableType
elementType
,
MimeType
mimeType
);
/**
* Decode a {@link DataBuffer} input stream into a Flux of {@code T}.
...
...
spring-core/src/main/java/org/springframework/core/codec/Encoder.java
浏览文件 @
38f3d12e
...
...
@@ -44,10 +44,9 @@ public interface Encoder<T> {
* type for the output stream.
* @param elementType the type of elements in the source stream
* @param mimeType the MIME type for the output stream
* @param hints additional information about how to do encode
* @return {@code true} if supported, {@code false} otherwise
*/
boolean
canEncode
(
ResolvableType
elementType
,
MimeType
mimeType
,
Map
<
String
,
Object
>
hints
);
boolean
canEncode
(
ResolvableType
elementType
,
MimeType
mimeType
);
/**
* Encode a stream of Objects of type {@code T} into a {@link DataBuffer}
...
...
spring-core/src/main/java/org/springframework/core/codec/ResourceDecoder.java
浏览文件 @
38f3d12e
...
...
@@ -46,11 +46,11 @@ public class ResourceDecoder extends AbstractDecoder<Resource> {
@Override
public
boolean
canDecode
(
ResolvableType
elementType
,
MimeType
mimeType
,
Map
<
String
,
Object
>
hints
)
{
public
boolean
canDecode
(
ResolvableType
elementType
,
MimeType
mimeType
)
{
Class
<?>
clazz
=
elementType
.
getRawClass
();
return
(
InputStreamResource
.
class
.
equals
(
clazz
)
||
clazz
.
isAssignableFrom
(
ByteArrayResource
.
class
))
&&
super
.
canDecode
(
elementType
,
mimeType
,
hints
);
super
.
canDecode
(
elementType
,
mimeType
);
}
@Override
...
...
spring-core/src/main/java/org/springframework/core/codec/ResourceEncoder.java
浏览文件 @
38f3d12e
...
...
@@ -57,9 +57,9 @@ public class ResourceEncoder extends AbstractSingleValueEncoder<Resource> {
@Override
public
boolean
canEncode
(
ResolvableType
elementType
,
MimeType
mimeType
,
Map
<
String
,
Object
>
hints
)
{
public
boolean
canEncode
(
ResolvableType
elementType
,
MimeType
mimeType
)
{
Class
<?>
clazz
=
elementType
.
getRawClass
();
return
(
super
.
canEncode
(
elementType
,
mimeType
,
hints
)
&&
Resource
.
class
.
isAssignableFrom
(
clazz
));
return
(
super
.
canEncode
(
elementType
,
mimeType
)
&&
Resource
.
class
.
isAssignableFrom
(
clazz
));
}
@Override
...
...
spring-core/src/main/java/org/springframework/core/codec/StringDecoder.java
浏览文件 @
38f3d12e
...
...
@@ -78,8 +78,8 @@ public class StringDecoder extends AbstractDecoder<String> {
@Override
public
boolean
canDecode
(
ResolvableType
elementType
,
MimeType
mimeType
,
Map
<
String
,
Object
>
hints
)
{
return
(
super
.
canDecode
(
elementType
,
mimeType
,
hints
)
&&
public
boolean
canDecode
(
ResolvableType
elementType
,
MimeType
mimeType
)
{
return
(
super
.
canDecode
(
elementType
,
mimeType
)
&&
String
.
class
.
equals
(
elementType
.
getRawClass
()));
}
...
...
spring-core/src/test/java/org/springframework/core/codec/ByteBufferDecoderTests.java
浏览文件 @
38f3d12e
...
...
@@ -42,11 +42,11 @@ public class ByteBufferDecoderTests extends AbstractDataBufferAllocatingTestCase
@Test
public
void
canDecode
()
{
assertTrue
(
this
.
decoder
.
canDecode
(
ResolvableType
.
forClass
(
ByteBuffer
.
class
),
MimeTypeUtils
.
TEXT_PLAIN
,
Collections
.
emptyMap
()
));
MimeTypeUtils
.
TEXT_PLAIN
));
assertFalse
(
this
.
decoder
.
canDecode
(
ResolvableType
.
forClass
(
Integer
.
class
),
MimeTypeUtils
.
TEXT_PLAIN
,
Collections
.
emptyMap
()
));
MimeTypeUtils
.
TEXT_PLAIN
));
assertTrue
(
this
.
decoder
.
canDecode
(
ResolvableType
.
forClass
(
ByteBuffer
.
class
),
MimeTypeUtils
.
APPLICATION_JSON
,
Collections
.
emptyMap
()
));
MimeTypeUtils
.
APPLICATION_JSON
));
}
@Test
...
...
spring-core/src/test/java/org/springframework/core/codec/ByteBufferEncoderTests.java
浏览文件 @
38f3d12e
...
...
@@ -50,11 +50,11 @@ public class ByteBufferEncoderTests extends AbstractDataBufferAllocatingTestCase
@Test
public
void
canEncode
()
{
assertTrue
(
this
.
encoder
.
canEncode
(
ResolvableType
.
forClass
(
ByteBuffer
.
class
),
MimeTypeUtils
.
TEXT_PLAIN
,
Collections
.
emptyMap
()
));
MimeTypeUtils
.
TEXT_PLAIN
));
assertFalse
(
this
.
encoder
.
canEncode
(
ResolvableType
.
forClass
(
Integer
.
class
),
MimeTypeUtils
.
TEXT_PLAIN
,
Collections
.
emptyMap
()
));
MimeTypeUtils
.
TEXT_PLAIN
));
assertTrue
(
this
.
encoder
.
canEncode
(
ResolvableType
.
forClass
(
ByteBuffer
.
class
),
MimeTypeUtils
.
APPLICATION_JSON
,
Collections
.
emptyMap
()
));
MimeTypeUtils
.
APPLICATION_JSON
));
}
@Test
...
...
spring-core/src/test/java/org/springframework/core/codec/CharSequenceEncoderTests.java
浏览文件 @
38f3d12e
...
...
@@ -49,15 +49,15 @@ public class CharSequenceEncoderTests extends AbstractDataBufferAllocatingTestCa
@Test
public
void
canWrite
()
{
assertTrue
(
this
.
encoder
.
canEncode
(
ResolvableType
.
forClass
(
String
.
class
),
MimeTypeUtils
.
TEXT_PLAIN
,
Collections
.
emptyMap
()
));
MimeTypeUtils
.
TEXT_PLAIN
));
assertTrue
(
this
.
encoder
.
canEncode
(
ResolvableType
.
forClass
(
StringBuilder
.
class
),
MimeTypeUtils
.
TEXT_PLAIN
,
Collections
.
emptyMap
()
));
MimeTypeUtils
.
TEXT_PLAIN
));
assertTrue
(
this
.
encoder
.
canEncode
(
ResolvableType
.
forClass
(
StringBuffer
.
class
),
MimeTypeUtils
.
TEXT_PLAIN
,
Collections
.
emptyMap
()
));
MimeTypeUtils
.
TEXT_PLAIN
));
assertFalse
(
this
.
encoder
.
canEncode
(
ResolvableType
.
forClass
(
Integer
.
class
),
MimeTypeUtils
.
TEXT_PLAIN
,
Collections
.
emptyMap
()
));
MimeTypeUtils
.
TEXT_PLAIN
));
assertFalse
(
this
.
encoder
.
canEncode
(
ResolvableType
.
forClass
(
String
.
class
),
MimeTypeUtils
.
APPLICATION_JSON
,
Collections
.
emptyMap
()
));
MimeTypeUtils
.
APPLICATION_JSON
));
}
@Test
...
...
spring-core/src/test/java/org/springframework/core/codec/ResourceDecoderTests.java
浏览文件 @
38f3d12e
...
...
@@ -46,13 +46,13 @@ public class ResourceDecoderTests extends AbstractDataBufferAllocatingTestCase {
@Test
public
void
canDecode
()
throws
Exception
{
assertTrue
(
this
.
decoder
.
canDecode
(
ResolvableType
.
forClass
(
InputStreamResource
.
class
),
MimeTypeUtils
.
TEXT_PLAIN
,
Collections
.
emptyMap
()
));
MimeTypeUtils
.
TEXT_PLAIN
));
assertTrue
(
this
.
decoder
.
canDecode
(
ResolvableType
.
forClass
(
ByteArrayResource
.
class
),
MimeTypeUtils
.
TEXT_PLAIN
,
Collections
.
emptyMap
()
));
MimeTypeUtils
.
TEXT_PLAIN
));
assertTrue
(
this
.
decoder
.
canDecode
(
ResolvableType
.
forClass
(
Resource
.
class
),
MimeTypeUtils
.
TEXT_PLAIN
,
Collections
.
emptyMap
()
));
MimeTypeUtils
.
TEXT_PLAIN
));
assertTrue
(
this
.
decoder
.
canDecode
(
ResolvableType
.
forClass
(
InputStreamResource
.
class
),
MimeTypeUtils
.
APPLICATION_JSON
,
Collections
.
emptyMap
()
));
MimeTypeUtils
.
APPLICATION_JSON
));
}
@Test
...
...
spring-core/src/test/java/org/springframework/core/codec/ResourceEncoderTests.java
浏览文件 @
38f3d12e
...
...
@@ -44,13 +44,13 @@ public class ResourceEncoderTests extends AbstractDataBufferAllocatingTestCase {
@Test
public
void
canEncode
()
throws
Exception
{
assertTrue
(
this
.
encoder
.
canEncode
(
ResolvableType
.
forClass
(
InputStreamResource
.
class
),
MimeTypeUtils
.
TEXT_PLAIN
,
Collections
.
emptyMap
()
));
MimeTypeUtils
.
TEXT_PLAIN
));
assertTrue
(
this
.
encoder
.
canEncode
(
ResolvableType
.
forClass
(
ByteArrayResource
.
class
),
MimeTypeUtils
.
TEXT_PLAIN
,
Collections
.
emptyMap
()
));
MimeTypeUtils
.
TEXT_PLAIN
));
assertTrue
(
this
.
encoder
.
canEncode
(
ResolvableType
.
forClass
(
Resource
.
class
),
MimeTypeUtils
.
TEXT_PLAIN
,
Collections
.
emptyMap
()
));
MimeTypeUtils
.
TEXT_PLAIN
));
assertTrue
(
this
.
encoder
.
canEncode
(
ResolvableType
.
forClass
(
InputStreamResource
.
class
),
MimeTypeUtils
.
APPLICATION_JSON
,
Collections
.
emptyMap
()
));
MimeTypeUtils
.
APPLICATION_JSON
));
}
@Test
...
...
spring-core/src/test/java/org/springframework/core/codec/StringDecoderTests.java
浏览文件 @
38f3d12e
...
...
@@ -44,15 +44,15 @@ public class StringDecoderTests extends AbstractDataBufferAllocatingTestCase {
@Test
public
void
canDecode
()
{
assertTrue
(
this
.
decoder
.
canDecode
(
ResolvableType
.
forClass
(
String
.
class
),
MimeTypeUtils
.
TEXT_PLAIN
,
Collections
.
emptyMap
()
));
MimeTypeUtils
.
TEXT_PLAIN
));
assertTrue
(
this
.
decoder
.
canDecode
(
ResolvableType
.
forClass
(
String
.
class
),
MimeTypeUtils
.
TEXT_HTML
,
Collections
.
emptyMap
()
));
MimeTypeUtils
.
TEXT_HTML
));
assertTrue
(
this
.
decoder
.
canDecode
(
ResolvableType
.
forClass
(
String
.
class
),
MimeTypeUtils
.
APPLICATION_JSON
,
Collections
.
emptyMap
()
));
MimeTypeUtils
.
APPLICATION_JSON
));
assertFalse
(
this
.
decoder
.
canDecode
(
ResolvableType
.
forClass
(
Integer
.
class
),
MimeTypeUtils
.
TEXT_PLAIN
,
Collections
.
emptyMap
()
));
MimeTypeUtils
.
TEXT_PLAIN
));
assertFalse
(
this
.
decoder
.
canDecode
(
ResolvableType
.
forClass
(
Object
.
class
),
MimeTypeUtils
.
APPLICATION_JSON
,
Collections
.
emptyMap
()
));
MimeTypeUtils
.
APPLICATION_JSON
));
}
@Test
...
...
spring-web-reactive/src/main/java/org/springframework/web/reactive/function/BodyExtractors.java
浏览文件 @
38f3d12e
...
...
@@ -102,7 +102,7 @@ public abstract class BodyExtractors {
MediaType
contentType
=
contentType
(
request
);
Supplier
<
Stream
<
HttpMessageReader
<?>>>
messageReaders
=
strategies
.
messageReaders
();
return
messageReaders
.
get
()
.
filter
(
r
->
r
.
canRead
(
elementType
,
contentType
,
Collections
.
emptyMap
()
))
.
filter
(
r
->
r
.
canRead
(
elementType
,
contentType
))
.
findFirst
()
.
map
(
BodyExtractors:
:<
T
>
cast
)
.
map
(
readerFunction
)
...
...
spring-web-reactive/src/main/java/org/springframework/web/reactive/function/BodyInserters.java
浏览文件 @
38f3d12e
...
...
@@ -208,8 +208,7 @@ public abstract class BodyInserters {
// TODO: use ContentNegotiatingResultHandlerSupport
MediaType
contentType
=
response
.
getHeaders
().
getContentType
();
return
strategies
.
messageWriters
().
get
()
.
filter
(
messageWriter
->
messageWriter
.
canWrite
(
bodyType
,
contentType
,
Collections
.
emptyMap
()))
.
filter
(
messageWriter
->
messageWriter
.
canWrite
(
bodyType
,
contentType
))
.
findFirst
()
.
map
(
BodyInserters:
:
cast
)
.
map
(
messageWriter
->
messageWriter
...
...
spring-web-reactive/src/main/java/org/springframework/web/reactive/result/view/HttpMessageWriterView.java
浏览文件 @
38f3d12e
...
...
@@ -124,7 +124,7 @@ public class HttpMessageWriterView implements View {
else
if
(
map
.
size
()
==
1
)
{
return
map
.
values
().
iterator
().
next
();
}
else
if
(
getMessageWriter
().
canWrite
(
ResolvableType
.
forClass
(
Map
.
class
),
null
,
Collections
.
emptyMap
()
))
{
else
if
(
getMessageWriter
().
canWrite
(
ResolvableType
.
forClass
(
Map
.
class
),
null
))
{
return
map
;
}
else
{
...
...
@@ -143,10 +143,10 @@ public class HttpMessageWriterView implements View {
protected
boolean
isEligibleAttribute
(
String
attributeName
,
Object
attributeValue
)
{
ResolvableType
type
=
ResolvableType
.
forClass
(
attributeValue
.
getClass
());
if
(
getModelKeys
().
isEmpty
())
{
return
getMessageWriter
().
canWrite
(
type
,
null
,
Collections
.
emptyMap
()
);
return
getMessageWriter
().
canWrite
(
type
,
null
);
}
if
(
getModelKeys
().
contains
(
attributeName
))
{
if
(
getMessageWriter
().
canWrite
(
type
,
null
,
Collections
.
emptyMap
()
))
{
if
(
getMessageWriter
().
canWrite
(
type
,
null
))
{
return
true
;
}
throw
new
IllegalStateException
(
...
...
spring-web-reactive/src/test/java/org/springframework/web/reactive/config/WebReactiveConfigurationTests.java
浏览文件 @
38f3d12e
...
...
@@ -271,7 +271,7 @@ public class WebReactiveConfigurationTests {
private
void
assertHasMessageReader
(
List
<
HttpMessageReader
<?>>
readers
,
Class
<?>
clazz
,
MediaType
mediaType
)
{
ResolvableType
type
=
ResolvableType
.
forClass
(
clazz
);
assertTrue
(
readers
.
stream
()
.
filter
(
c
->
mediaType
==
null
||
c
.
canRead
(
type
,
mediaType
,
Collections
.
emptyMap
()
))
.
filter
(
c
->
mediaType
==
null
||
c
.
canRead
(
type
,
mediaType
))
.
findAny
()
.
isPresent
());
}
...
...
@@ -279,7 +279,7 @@ public class WebReactiveConfigurationTests {
private
void
assertHasMessageWriter
(
List
<
HttpMessageWriter
<?>>
writers
,
Class
<?>
clazz
,
MediaType
mediaType
)
{
ResolvableType
type
=
ResolvableType
.
forClass
(
clazz
);
assertTrue
(
writers
.
stream
()
.
filter
(
c
->
mediaType
==
null
||
c
.
canWrite
(
type
,
mediaType
,
Collections
.
emptyMap
()
))
.
filter
(
c
->
mediaType
==
null
||
c
.
canWrite
(
type
,
mediaType
))
.
findAny
()
.
isPresent
());
}
...
...
spring-web-reactive/src/test/java/org/springframework/web/reactive/function/StrategiesSupplierTests.java
浏览文件 @
38f3d12e
...
...
@@ -92,7 +92,7 @@ public class StrategiesSupplierTests {
private
static
class
DummyMessageWriter
implements
HttpMessageWriter
<
Object
>
{
@Override
public
boolean
canWrite
(
ResolvableType
type
,
MediaType
mediaType
,
Map
<
String
,
Object
>
hints
)
{
public
boolean
canWrite
(
ResolvableType
type
,
MediaType
mediaType
)
{
return
false
;
}
...
...
@@ -113,7 +113,7 @@ public class StrategiesSupplierTests {
private
static
class
DummyMessageReader
implements
HttpMessageReader
<
Object
>
{
@Override
public
boolean
canRead
(
ResolvableType
type
,
MediaType
mediaType
,
Map
<
String
,
Object
>
hints
)
{
public
boolean
canRead
(
ResolvableType
type
,
MediaType
mediaType
)
{
return
false
;
}
...
...
spring-web/src/main/java/org/springframework/http/codec/DecoderHttpMessageReader.java
浏览文件 @
38f3d12e
...
...
@@ -56,8 +56,8 @@ public class DecoderHttpMessageReader<T> implements HttpMessageReader<T> {
@Override
public
boolean
canRead
(
ResolvableType
elementType
,
MediaType
mediaType
,
Map
<
String
,
Object
>
hints
)
{
return
this
.
decoder
!=
null
&&
this
.
decoder
.
canDecode
(
elementType
,
mediaType
,
hints
);
public
boolean
canRead
(
ResolvableType
elementType
,
MediaType
mediaType
)
{
return
this
.
decoder
!=
null
&&
this
.
decoder
.
canDecode
(
elementType
,
mediaType
);
}
@Override
...
...
spring-web/src/main/java/org/springframework/http/codec/EncoderHttpMessageWriter.java
浏览文件 @
38f3d12e
...
...
@@ -60,8 +60,8 @@ public class EncoderHttpMessageWriter<T> implements HttpMessageWriter<T> {
@Override
public
boolean
canWrite
(
ResolvableType
elementType
,
MediaType
mediaType
,
Map
<
String
,
Object
>
hints
)
{
return
this
.
encoder
!=
null
&&
this
.
encoder
.
canEncode
(
elementType
,
mediaType
,
hints
);
public
boolean
canWrite
(
ResolvableType
elementType
,
MediaType
mediaType
)
{
return
this
.
encoder
!=
null
&&
this
.
encoder
.
canEncode
(
elementType
,
mediaType
);
}
@Override
...
...
spring-web/src/main/java/org/springframework/http/codec/HttpMessageReader.java
浏览文件 @
38f3d12e
...
...
@@ -42,10 +42,9 @@ public interface HttpMessageReader<T> {
* @param elementType the stream element type to test for readability
* @param mediaType the media type to read, can be {@code null} if not specified.
* Typically the value of a {@code Content-Type} header.
* @param hints additional information about how to do read
* @return {@code true} if readable; {@code false} otherwise
*/
boolean
canRead
(
ResolvableType
elementType
,
MediaType
mediaType
,
Map
<
String
,
Object
>
hints
);
boolean
canRead
(
ResolvableType
elementType
,
MediaType
mediaType
);
/**
* Read a {@link Flux} of the given type form the given input message, and returns it.
...
...
@@ -53,7 +52,7 @@ public interface HttpMessageReader<T> {
* passed to the {@link #canRead canRead} method of this interface, which must have
* returned {@code true}.
* @param inputMessage the HTTP input message to read from
* @param hints additional information about how to
do read
* @param hints additional information about how to
read the body
* @return the converted {@link Flux} of elements
*/
Flux
<
T
>
read
(
ResolvableType
elementType
,
ReactiveHttpInputMessage
inputMessage
,
Map
<
String
,
Object
>
hints
);
...
...
@@ -64,7 +63,7 @@ public interface HttpMessageReader<T> {
* passed to the {@link #canRead canRead} method of this interface, which must have
* returned {@code true}.
* @param inputMessage the HTTP input message to read from
* @param hints additional information about how to
do read
* @param hints additional information about how to
read the body
* @return the converted {@link Mono} of object
*/
Mono
<
T
>
readMono
(
ResolvableType
elementType
,
ReactiveHttpInputMessage
inputMessage
,
Map
<
String
,
Object
>
hints
);
...
...
spring-web/src/main/java/org/springframework/http/codec/HttpMessageWriter.java
浏览文件 @
38f3d12e
...
...
@@ -42,10 +42,9 @@ public interface HttpMessageWriter<T> {
* @param elementType the stream element type to test for writability
* @param mediaType the media type to write, can be {@code null} if not specified.
* Typically the value of an {@code Accept} header.
* @param hints additional information about how to write
* @return {@code true} if writable; {@code false} otherwise
*/
boolean
canWrite
(
ResolvableType
elementType
,
MediaType
mediaType
,
Map
<
String
,
Object
>
hints
);
boolean
canWrite
(
ResolvableType
elementType
,
MediaType
mediaType
);
/**
* Write an given object to the given output message.
...
...
spring-web/src/main/java/org/springframework/http/codec/ServerSentEventHttpMessageWriter.java
浏览文件 @
38f3d12e
...
...
@@ -62,7 +62,7 @@ public class ServerSentEventHttpMessageWriter implements HttpMessageWriter<Objec
}
@Override
public
boolean
canWrite
(
ResolvableType
elementType
,
MediaType
mediaType
,
Map
<
String
,
Object
>
hints
)
{
public
boolean
canWrite
(
ResolvableType
elementType
,
MediaType
mediaType
)
{
return
mediaType
==
null
||
TEXT_EVENT_STREAM
.
isCompatibleWith
(
mediaType
);
}
...
...
@@ -134,7 +134,7 @@ public class ServerSentEventHttpMessageWriter implements HttpMessageWriter<Objec
ResolvableType
elementType
=
ResolvableType
.
forClass
(
data
.
getClass
());
Optional
<
Encoder
<?>>
encoder
=
dataEncoders
.
stream
()
.
filter
(
e
->
e
.
canEncode
(
elementType
,
MimeTypeUtils
.
APPLICATION_JSON
,
Collections
.
emptyMap
()
))
.
filter
(
e
->
e
.
canEncode
(
elementType
,
MimeTypeUtils
.
APPLICATION_JSON
))
.
findFirst
();
return
((
Encoder
<
T
>)
encoder
.
orElseThrow
(()
->
new
CodecException
(
"No suitable encoder found!"
)))
.
encode
(
Mono
.
just
((
T
)
data
),
bufferFactory
,
elementType
,
MimeTypeUtils
.
APPLICATION_JSON
,
hints
)
...
...
spring-web/src/main/java/org/springframework/http/codec/json/Jackson2JsonDecoder.java
浏览文件 @
38f3d12e
...
...
@@ -62,7 +62,7 @@ public class Jackson2JsonDecoder extends AbstractJackson2Codec implements Decode
@Override
public
boolean
canDecode
(
ResolvableType
elementType
,
MimeType
mimeType
,
Map
<
String
,
Object
>
hints
)
{
public
boolean
canDecode
(
ResolvableType
elementType
,
MimeType
mimeType
)
{
if
(
mimeType
==
null
)
{
return
true
;
}
...
...
spring-web/src/main/java/org/springframework/http/codec/json/Jackson2JsonEncoder.java
浏览文件 @
38f3d12e
...
...
@@ -67,7 +67,7 @@ public class Jackson2JsonEncoder extends AbstractJackson2Codec implements Encode
@Override
public
boolean
canEncode
(
ResolvableType
elementType
,
MimeType
mimeType
,
Map
<
String
,
Object
>
hints
)
{
public
boolean
canEncode
(
ResolvableType
elementType
,
MimeType
mimeType
)
{
if
(
mimeType
==
null
)
{
return
true
;
}
...
...
spring-web/src/main/java/org/springframework/http/codec/xml/Jaxb2XmlDecoder.java
浏览文件 @
38f3d12e
...
...
@@ -76,8 +76,8 @@ public class Jaxb2XmlDecoder extends AbstractDecoder<Object> {
@Override
public
boolean
canDecode
(
ResolvableType
elementType
,
MimeType
mimeType
,
Map
<
String
,
Object
>
hints
)
{
if
(
super
.
canDecode
(
elementType
,
mimeType
,
hints
))
{
public
boolean
canDecode
(
ResolvableType
elementType
,
MimeType
mimeType
)
{
if
(
super
.
canDecode
(
elementType
,
mimeType
))
{
Class
<?>
outputClass
=
elementType
.
getRawClass
();
return
outputClass
.
isAnnotationPresent
(
XmlRootElement
.
class
)
||
outputClass
.
isAnnotationPresent
(
XmlType
.
class
);
...
...
spring-web/src/main/java/org/springframework/http/codec/xml/Jaxb2XmlEncoder.java
浏览文件 @
38f3d12e
...
...
@@ -53,8 +53,8 @@ public class Jaxb2XmlEncoder extends AbstractSingleValueEncoder<Object> {
@Override
public
boolean
canEncode
(
ResolvableType
elementType
,
MimeType
mimeType
,
Map
<
String
,
Object
>
hints
)
{
if
(
super
.
canEncode
(
elementType
,
mimeType
,
hints
))
{
public
boolean
canEncode
(
ResolvableType
elementType
,
MimeType
mimeType
)
{
if
(
super
.
canEncode
(
elementType
,
mimeType
))
{
Class
<?>
outputClass
=
elementType
.
getRawClass
();
return
(
outputClass
.
isAnnotationPresent
(
XmlRootElement
.
class
)
||
outputClass
.
isAnnotationPresent
(
XmlType
.
class
));
...
...
spring-web/src/main/java/org/springframework/web/client/reactive/ResponseExtractors.java
浏览文件 @
38f3d12e
...
...
@@ -196,7 +196,7 @@ public abstract class ResponseExtractors {
ResolvableType
responseType
,
MediaType
contentType
)
{
return
messageReaders
.
stream
()
.
filter
(
e
->
e
.
canRead
(
responseType
,
contentType
,
Collections
.
emptyMap
()
))
.
filter
(
e
->
e
.
canRead
(
responseType
,
contentType
))
.
findFirst
()
.
orElseThrow
(()
->
new
WebClientException
(
...
...
spring-web/src/main/java/org/springframework/web/client/reactive/WebClient.java
浏览文件 @
38f3d12e
...
...
@@ -297,7 +297,7 @@ public final class WebClient {
protected
Optional
<
HttpMessageWriter
<?>>
resolveWriter
(
List
<
HttpMessageWriter
<?>>
messageWriters
,
ResolvableType
type
,
MediaType
mediaType
)
{
return
messageWriters
.
stream
().
filter
(
e
->
e
.
canWrite
(
type
,
mediaType
,
Collections
.
emptyMap
()
)).
findFirst
();
return
messageWriters
.
stream
().
filter
(
e
->
e
.
canWrite
(
type
,
mediaType
)).
findFirst
();
}
}
...
...
spring-web/src/main/java/org/springframework/web/client/reactive/support/RxJava1ResponseExtractors.java
浏览文件 @
38f3d12e
...
...
@@ -210,7 +210,7 @@ public class RxJava1ResponseExtractors {
ResolvableType
responseType
,
MediaType
contentType
)
{
return
messageReaders
.
stream
()
.
filter
(
e
->
e
.
canRead
(
responseType
,
contentType
,
Collections
.
emptyMap
()
))
.
filter
(
e
->
e
.
canRead
(
responseType
,
contentType
))
.
findFirst
()
.
orElseThrow
(()
->
new
WebClientException
(
...
...
spring-web/src/test/java/org/springframework/http/codec/ServerSentEventHttpMessageWriterTests.java
浏览文件 @
38f3d12e
...
...
@@ -46,20 +46,19 @@ public class ServerSentEventHttpMessageWriterTests extends AbstractDataBufferAll
@Test
public
void
nullMimeType
()
{
assertTrue
(
messageWriter
.
canWrite
(
ResolvableType
.
forClass
(
Object
.
class
),
null
,
Collections
.
emptyMap
()));
assertTrue
(
messageWriter
.
canWrite
(
ResolvableType
.
forClass
(
Object
.
class
),
null
));
}
@Test
public
void
unsupportedMimeType
()
{
assertFalse
(
messageWriter
.
canWrite
(
ResolvableType
.
forClass
(
Object
.
class
),
new
MediaType
(
"foo"
,
"bar"
)
,
Collections
.
emptyMap
()
));
new
MediaType
(
"foo"
,
"bar"
)));
}
@Test
public
void
supportedMimeType
()
{
assertTrue
(
messageWriter
.
canWrite
(
ResolvableType
.
forClass
(
Object
.
class
),
new
MediaType
(
"text"
,
"event-stream"
)
,
Collections
.
emptyMap
()
));
new
MediaType
(
"text"
,
"event-stream"
)));
}
@Test
...
...
spring-web/src/test/java/org/springframework/http/codec/json/Jackson2JsonDecoderTests.java
浏览文件 @
38f3d12e
...
...
@@ -47,8 +47,8 @@ public class Jackson2JsonDecoderTests extends AbstractDataBufferAllocatingTestCa
public
void
canDecode
()
{
Jackson2JsonDecoder
decoder
=
new
Jackson2JsonDecoder
();
assertTrue
(
decoder
.
canDecode
(
null
,
MediaType
.
APPLICATION_JSON
,
Collections
.
emptyMap
()
));
assertFalse
(
decoder
.
canDecode
(
null
,
MediaType
.
APPLICATION_XML
,
Collections
.
emptyMap
()
));
assertTrue
(
decoder
.
canDecode
(
null
,
MediaType
.
APPLICATION_JSON
));
assertFalse
(
decoder
.
canDecode
(
null
,
MediaType
.
APPLICATION_XML
));
}
@Test
...
...
spring-web/src/test/java/org/springframework/http/codec/json/Jackson2JsonEncoderTests.java
浏览文件 @
38f3d12e
...
...
@@ -45,8 +45,8 @@ public class Jackson2JsonEncoderTests extends AbstractDataBufferAllocatingTestCa
@Test
public
void
canEncode
()
{
assertTrue
(
this
.
encoder
.
canEncode
(
null
,
MediaType
.
APPLICATION_JSON
,
Collections
.
emptyMap
()
));
assertFalse
(
this
.
encoder
.
canEncode
(
null
,
MediaType
.
APPLICATION_XML
,
Collections
.
emptyMap
()
));
assertTrue
(
this
.
encoder
.
canEncode
(
null
,
MediaType
.
APPLICATION_JSON
));
assertFalse
(
this
.
encoder
.
canEncode
(
null
,
MediaType
.
APPLICATION_XML
));
}
@Test
...
...
spring-web/src/test/java/org/springframework/http/codec/xml/Jaxb2XmlDecoderTests.java
浏览文件 @
38f3d12e
...
...
@@ -72,17 +72,15 @@ public class Jaxb2XmlDecoderTests extends AbstractDataBufferAllocatingTestCase {
@Test
public
void
canDecode
()
{
assertTrue
(
this
.
decoder
.
canDecode
(
ResolvableType
.
forClass
(
Pojo
.
class
),
MediaType
.
APPLICATION_XML
,
Collections
.
emptyMap
()
));
MediaType
.
APPLICATION_XML
));
assertTrue
(
this
.
decoder
.
canDecode
(
ResolvableType
.
forClass
(
Pojo
.
class
),
MediaType
.
TEXT_XML
,
Collections
.
emptyMap
()
));
MediaType
.
TEXT_XML
));
assertFalse
(
this
.
decoder
.
canDecode
(
ResolvableType
.
forClass
(
Pojo
.
class
),
MediaType
.
APPLICATION_JSON
,
Collections
.
emptyMap
()));
MediaType
.
APPLICATION_JSON
));
assertTrue
(
this
.
decoder
.
canDecode
(
ResolvableType
.
forClass
(
TypePojo
.
class
),
MediaType
.
APPLICATION_XML
,
Collections
.
emptyMap
()));
MediaType
.
APPLICATION_XML
));
assertFalse
(
this
.
decoder
.
canDecode
(
ResolvableType
.
forClass
(
getClass
()),
MediaType
.
APPLICATION_XML
,
Collections
.
emptyMap
()
));
MediaType
.
APPLICATION_XML
));
}
@Test
...
...
spring-web/src/test/java/org/springframework/http/codec/xml/Jaxb2XmlEncoderTests.java
浏览文件 @
38f3d12e
...
...
@@ -46,18 +46,18 @@ public class Jaxb2XmlEncoderTests extends AbstractDataBufferAllocatingTestCase {
@Test
public
void
canEncode
()
{
assertTrue
(
this
.
encoder
.
canEncode
(
ResolvableType
.
forClass
(
Pojo
.
class
),
MediaType
.
APPLICATION_XML
,
Collections
.
emptyMap
()
));
MediaType
.
APPLICATION_XML
));
assertTrue
(
this
.
encoder
.
canEncode
(
ResolvableType
.
forClass
(
Pojo
.
class
),
MediaType
.
TEXT_XML
,
Collections
.
emptyMap
()
));
MediaType
.
TEXT_XML
));
assertFalse
(
this
.
encoder
.
canEncode
(
ResolvableType
.
forClass
(
Pojo
.
class
),
MediaType
.
APPLICATION_JSON
,
Collections
.
emptyMap
()
));
MediaType
.
APPLICATION_JSON
));
assertTrue
(
this
.
encoder
.
canEncode
(
ResolvableType
.
forClass
(
Jaxb2XmlDecoderTests
.
TypePojo
.
class
),
MediaType
.
APPLICATION_XML
,
Collections
.
emptyMap
()
));
MediaType
.
APPLICATION_XML
));
assertFalse
(
this
.
encoder
.
canEncode
(
ResolvableType
.
forClass
(
getClass
()),
MediaType
.
APPLICATION_XML
,
Collections
.
emptyMap
()
));
MediaType
.
APPLICATION_XML
));
}
@Test
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录