Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
爱吃血肠
spring-framework
提交
c4000727
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 搜索 >>
提交
c4000727
编写于
2月 28, 2014
作者:
R
Rossen Stoyanchev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Move customize(Un)Marshaller methods to abstract class
Issue: SPR-11488
上级
45be8c06
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
29 addition
and
27 deletion
+29
-27
spring-web/src/main/java/org/springframework/http/converter/xml/AbstractJaxb2HttpMessageConverter.java
...http/converter/xml/AbstractJaxb2HttpMessageConverter.java
+27
-3
spring-web/src/main/java/org/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverter.java
...p/converter/xml/Jaxb2RootElementHttpMessageConverter.java
+0
-24
spring-web/src/test/java/org/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverterTests.java
...verter/xml/Jaxb2RootElementHttpMessageConverterTests.java
+2
-0
未找到文件。
spring-web/src/main/java/org/springframework/http/converter/xml/AbstractJaxb2HttpMessageConverter.java
浏览文件 @
c4000727
/*
/*
* Copyright 2002-201
2
the original author or authors.
* Copyright 2002-201
4
the original author or authors.
*
*
* Licensed under the Apache License, Version 2.0 (the "License");
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* you may not use this file except in compliance with the License.
...
@@ -47,7 +47,9 @@ public abstract class AbstractJaxb2HttpMessageConverter<T> extends AbstractXmlHt
...
@@ -47,7 +47,9 @@ public abstract class AbstractJaxb2HttpMessageConverter<T> extends AbstractXmlHt
protected
final
Marshaller
createMarshaller
(
Class
<?>
clazz
)
{
protected
final
Marshaller
createMarshaller
(
Class
<?>
clazz
)
{
try
{
try
{
JAXBContext
jaxbContext
=
getJaxbContext
(
clazz
);
JAXBContext
jaxbContext
=
getJaxbContext
(
clazz
);
return
jaxbContext
.
createMarshaller
();
Marshaller
marshaller
=
jaxbContext
.
createMarshaller
();
customizeMarshaller
(
marshaller
);
return
marshaller
;
}
}
catch
(
JAXBException
ex
)
{
catch
(
JAXBException
ex
)
{
throw
new
HttpMessageConversionException
(
throw
new
HttpMessageConversionException
(
...
@@ -55,6 +57,16 @@ public abstract class AbstractJaxb2HttpMessageConverter<T> extends AbstractXmlHt
...
@@ -55,6 +57,16 @@ public abstract class AbstractJaxb2HttpMessageConverter<T> extends AbstractXmlHt
}
}
}
}
/**
* Customize the {@link Marshaller} created by this
* message converter before using it to write the object to the output.
* @param marshaller the marshaller to customize
* @see #createMarshaller(Class)
* @since 4.0.3
*/
protected
void
customizeMarshaller
(
Marshaller
marshaller
)
{
}
/**
/**
* Create a new {@link Unmarshaller} for the given class.
* Create a new {@link Unmarshaller} for the given class.
* @param clazz the class to create the unmarshaller for
* @param clazz the class to create the unmarshaller for
...
@@ -64,7 +76,9 @@ public abstract class AbstractJaxb2HttpMessageConverter<T> extends AbstractXmlHt
...
@@ -64,7 +76,9 @@ public abstract class AbstractJaxb2HttpMessageConverter<T> extends AbstractXmlHt
protected
final
Unmarshaller
createUnmarshaller
(
Class
<?>
clazz
)
throws
JAXBException
{
protected
final
Unmarshaller
createUnmarshaller
(
Class
<?>
clazz
)
throws
JAXBException
{
try
{
try
{
JAXBContext
jaxbContext
=
getJaxbContext
(
clazz
);
JAXBContext
jaxbContext
=
getJaxbContext
(
clazz
);
return
jaxbContext
.
createUnmarshaller
();
Unmarshaller
unmarshaller
=
jaxbContext
.
createUnmarshaller
();
customizeUnmarshaller
(
unmarshaller
);
return
unmarshaller
;
}
}
catch
(
JAXBException
ex
)
{
catch
(
JAXBException
ex
)
{
throw
new
HttpMessageConversionException
(
throw
new
HttpMessageConversionException
(
...
@@ -72,6 +86,16 @@ public abstract class AbstractJaxb2HttpMessageConverter<T> extends AbstractXmlHt
...
@@ -72,6 +86,16 @@ public abstract class AbstractJaxb2HttpMessageConverter<T> extends AbstractXmlHt
}
}
}
}
/**
* Customize the {@link Unmarshaller} created by this
* message converter before using it to read the object from the input.
* @param unmarshaller the unmarshaller to customize
* @see #createUnmarshaller(Class)
* @since 4.0.3
*/
protected
void
customizeUnmarshaller
(
Unmarshaller
unmarshaller
)
{
}
/**
/**
* Return a {@link JAXBContext} for the given class.
* Return a {@link JAXBContext} for the given class.
* @param clazz the class to return the context for
* @param clazz the class to return the context for
...
...
spring-web/src/main/java/org/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverter.java
浏览文件 @
c4000727
...
@@ -89,7 +89,6 @@ public class Jaxb2RootElementHttpMessageConverter extends AbstractJaxb2HttpMessa
...
@@ -89,7 +89,6 @@ public class Jaxb2RootElementHttpMessageConverter extends AbstractJaxb2HttpMessa
try
{
try
{
source
=
processSource
(
source
);
source
=
processSource
(
source
);
Unmarshaller
unmarshaller
=
createUnmarshaller
(
clazz
);
Unmarshaller
unmarshaller
=
createUnmarshaller
(
clazz
);
this
.
customizeUnmarshaller
(
unmarshaller
);
if
(
clazz
.
isAnnotationPresent
(
XmlRootElement
.
class
))
{
if
(
clazz
.
isAnnotationPresent
(
XmlRootElement
.
class
))
{
return
unmarshaller
.
unmarshal
(
source
);
return
unmarshaller
.
unmarshal
(
source
);
}
}
...
@@ -132,7 +131,6 @@ public class Jaxb2RootElementHttpMessageConverter extends AbstractJaxb2HttpMessa
...
@@ -132,7 +131,6 @@ public class Jaxb2RootElementHttpMessageConverter extends AbstractJaxb2HttpMessa
try
{
try
{
Class
<?>
clazz
=
ClassUtils
.
getUserClass
(
o
);
Class
<?>
clazz
=
ClassUtils
.
getUserClass
(
o
);
Marshaller
marshaller
=
createMarshaller
(
clazz
);
Marshaller
marshaller
=
createMarshaller
(
clazz
);
this
.
customizeMarshaller
(
marshaller
);
setCharset
(
headers
.
getContentType
(),
marshaller
);
setCharset
(
headers
.
getContentType
(),
marshaller
);
marshaller
.
marshal
(
o
,
result
);
marshaller
.
marshal
(
o
,
result
);
}
}
...
@@ -150,26 +148,4 @@ public class Jaxb2RootElementHttpMessageConverter extends AbstractJaxb2HttpMessa
...
@@ -150,26 +148,4 @@ public class Jaxb2RootElementHttpMessageConverter extends AbstractJaxb2HttpMessa
}
}
}
}
/**
* Customize the {@link Marshaller} created by this
* message converter before using it to write the object to the output.
* @param marshaller the marshaller to customize
* @see #createMarshaller(Class)
* @since 4.0.3
*/
protected
void
customizeMarshaller
(
Marshaller
marshaller
)
{
}
/**
* Customize the {@link Unmarshaller} created by this
* message converter before using it to read the object from the input.
* @param unmarshaller the unmarshaller to customize
* @see #createUnmarshaller(Class)
* @since 4.0.3
*/
protected
void
customizeUnmarshaller
(
Unmarshaller
unmarshaller
)
{
}
}
}
spring-web/src/test/java/org/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverterTests.java
浏览文件 @
c4000727
...
@@ -154,6 +154,8 @@ public class Jaxb2RootElementHttpMessageConverterTests {
...
@@ -154,6 +154,8 @@ public class Jaxb2RootElementHttpMessageConverterTests {
outputMessage
.
getBodyAsString
(
Charset
.
forName
(
"UTF-8"
)));
outputMessage
.
getBodyAsString
(
Charset
.
forName
(
"UTF-8"
)));
}
}
// SPR-11488
@Test
@Test
public
void
customizeMarshaller
()
throws
Exception
{
public
void
customizeMarshaller
()
throws
Exception
{
MockHttpOutputMessage
outputMessage
=
new
MockHttpOutputMessage
();
MockHttpOutputMessage
outputMessage
=
new
MockHttpOutputMessage
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录