Skip to content
This repository was archived by the owner on Feb 26, 2023. It is now read-only.

Commit 01fde44

Browse files
committed
Add forward support for RestTemplate changes in Spring for Android 2.0
1 parent 8dfd580 commit 01fde44

3 files changed

Lines changed: 11 additions & 9 deletions

File tree

‎AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/handler/rest/RestHandler.java‎

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -97,13 +97,14 @@ private void setRootUrl(Element element, RestHolder holder) {
9797

9898
private void setConverters(Element element, RestHolder holder) {
9999
List<DeclaredType> converters = annotationHelper.extractAnnotationClassArrayParameter(element, getTarget(), "converters");
100-
JFieldVar restTemplateField = holder.getRestTemplateField();
101-
JBlock init = holder.getInit().body();
102-
for (DeclaredType converterType : converters) {
103-
JInvocation newConverter = codeModelHelper.newBeanOrEBean(holder, converterType, holder.getInitContextParam());
104-
init.add(invoke(restTemplateField, "getMessageConverters").invoke("add").arg(newConverter));
100+
JFieldVar restTemplateField = holder.getRestTemplateField();
101+
JBlock init = holder.getInit().body();
102+
init.add(invoke(restTemplateField, "getMessageConverters").invoke("clear"));
103+
for (DeclaredType converterType : converters) {
104+
JInvocation newConverter = codeModelHelper.newBeanOrEBean(holder, converterType, holder.getInitContextParam());
105+
init.add(invoke(restTemplateField, "getMessageConverters").invoke("add").arg(newConverter));
106+
}
105107
}
106-
}
107108

108109
private void setInterceptors(Element element, RestHolder holder) {
109110
List<DeclaredType> interceptors = annotationHelper.extractAnnotationClassArrayParameter(element, getTarget(), "interceptors");

‎AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/helper/ValidatorHelper.java‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1086,8 +1086,9 @@ public void validateConverters(Element element, IsValid valid) {
10861086
TypeMirror httpMessageConverterTypeErased = annotationHelper.getTypeUtils().erasure(httpMessageConverterType);
10871087
List<DeclaredType> converters = annotationHelper.extractAnnotationClassArrayParameter(element, annotationHelper.getTarget(), "converters");
10881088

1089-
if (converters == null) {
1089+
if (converters == null || converters.isEmpty()) {
10901090
valid.invalidate();
1091+
annotationHelper.printAnnotationError(element, "At least one converter is required");
10911092
return;
10921093
}
10931094

‎AndroidAnnotations/androidannotations/src/test/java/org/androidannotations/rest/RestConverterTest.java‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ public void setup() {
3131
}
3232

3333
@Test
34-
public void client_with_no_converters_compiles() {
34+
public void client_with_no_converters_does_not_compile() throws IOException {
3535
CompileResult result = compileFiles(ClientWithNoConverters.class);
36-
assertCompilationSuccessful(result);
36+
assertCompilationErrorOn(ClientWithNoConverters.class, "@Rest", result);
3737
}
3838

3939
@Test

0 commit comments

Comments
 (0)