Skip to content

Commit d4522c7

Browse files
Dassi orleandomaibin
authored andcommitted
BAEL-1285: Update Jackson articles (eugenp#3623)
* BAEL-1216: improve tests * BAEL-1448: Update Spring 5 articles to use the release version * Setting up the Maven Wrapper on a maven project * Add Maven Wrapper on spring-boot module * simple add * BAEL-976: Update spring version * BAEL-1273: Display RSS feed with spring mvc (AbstractRssFeedView) * Move RSS feed with Spring MVC from spring-boot to spring-mvc-simple * BAEL-1285: Update Jackson articles * BAEL-1273: implement both MVC and Rest approach to serve RSS content
1 parent 6526704 commit d4522c7

6 files changed

Lines changed: 85 additions & 9 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,4 @@ spring-call-getters-using-reflection/.mvn/wrapper/maven-wrapper.properties
4343
spring-check-if-a-property-is-null/.mvn/wrapper/maven-wrapper.properties
4444
*.springBeans
4545

46+
20171220-JMeter.csv

jackson/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@
129129

130130
<properties>
131131
<!-- marshalling -->
132-
<jackson.version>2.9.2</jackson.version>
132+
<jackson.version>2.9.4</jackson.version>
133133

134134
<!-- util -->
135135
<guava.version>19.0</guava.version>

spring-mvc-java/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,7 @@
297297
<org.springframework.version>4.3.4.RELEASE</org.springframework.version>
298298
<org.springframework.security.version>4.2.0.RELEASE</org.springframework.security.version>
299299
<thymeleaf.version>2.1.5.RELEASE</thymeleaf.version>
300-
<jackson.version>2.8.5</jackson.version>
300+
<jackson.version>2.9.4</jackson.version>
301301

302302
<!-- persistence -->
303303
<hibernate.version>5.2.5.Final</hibernate.version>

spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/ApplicationConfiguration.java

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,21 @@
11
package com.baeldung.spring.configuration;
22

3+
import com.baeldung.spring.controller.rss.ArticleRssFeedViewResolver;
34
import org.springframework.context.annotation.Bean;
45
import org.springframework.context.annotation.ComponentScan;
56
import org.springframework.context.annotation.Configuration;
67
import org.springframework.web.multipart.MultipartResolver;
78
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
9+
import org.springframework.web.servlet.ViewResolver;
810
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
911
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
1012
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
13+
import org.springframework.web.servlet.view.ContentNegotiatingViewResolver;
1114
import org.springframework.web.servlet.view.InternalResourceViewResolver;
15+
import org.springframework.web.accept.ContentNegotiationManager;
16+
17+
import java.util.List;
18+
import java.util.ArrayList;
1219

1320
@Configuration
1421
@EnableWebMvc
@@ -21,11 +28,19 @@ public void configureDefaultServletHandling(DefaultServletHandlerConfigurer conf
2128
}
2229

2330
@Bean
24-
public InternalResourceViewResolver jspViewResolver() {
25-
InternalResourceViewResolver bean = new InternalResourceViewResolver();
26-
bean.setPrefix("/WEB-INF/views/");
27-
bean.setSuffix(".jsp");
28-
return bean;
31+
public ContentNegotiatingViewResolver viewResolver(ContentNegotiationManager cnManager) {
32+
ContentNegotiatingViewResolver cnvResolver = new ContentNegotiatingViewResolver();
33+
cnvResolver.setContentNegotiationManager(cnManager);
34+
List<ViewResolver> resolvers = new ArrayList<>();
35+
36+
InternalResourceViewResolver bean = new InternalResourceViewResolver("/WEB-INF/views/",".jsp");
37+
ArticleRssFeedViewResolver articleRssFeedViewResolver = new ArticleRssFeedViewResolver();
38+
39+
resolvers.add(bean);
40+
resolvers.add(articleRssFeedViewResolver);
41+
42+
cnvResolver.setViewResolvers(resolvers);
43+
return cnvResolver;
2944
}
3045

3146
@Bean
Lines changed: 47 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,59 @@
11
package com.baeldung.spring.controller.rss;
22

3+
import com.rometools.rome.feed.synd.*;
4+
import com.rometools.rome.io.FeedException;
5+
import com.rometools.rome.io.SyndFeedOutput;
36
import org.springframework.stereotype.Controller;
47
import org.springframework.web.bind.annotation.GetMapping;
8+
import org.springframework.web.bind.annotation.ResponseBody;
9+
10+
import java.util.ArrayList;
11+
import java.util.Date;
12+
import java.util.List;
513

614
@Controller
715
public class ArticleRssController {
816

9-
@GetMapping(value = "/rss", produces = "application/*")
10-
public String articleFeed() {
17+
@GetMapping(value = "/rssMvc")
18+
public String articleMvcFeed() {
1119
return "articleFeedView";
1220
}
1321

22+
@GetMapping(value = "/rssRest", produces = "application/rss+xml")
23+
@ResponseBody
24+
public String articleRestFeed() throws FeedException {
25+
SyndFeed feed = new SyndFeedImpl();
26+
feed.setFeedType("rss_2.0");
27+
feed.setLink("http://localhost:8080/spring-mvc-simple/rss");
28+
feed.setTitle("Article Feed");
29+
feed.setDescription("Article Feed Description");
30+
feed.setPublishedDate(new Date());
31+
32+
List list = new ArrayList<SyndEntry>();
33+
34+
SyndEntry item1 = new SyndEntryImpl();
35+
item1.setLink("http://www.baeldung.com/netty-exception-handling");
36+
item1.setTitle("Exceptions in Netty");
37+
SyndContent description1 = new SyndContentImpl();
38+
description1.setValue("In this quick article, we’ll be looking at exception handling in Netty.");
39+
item1.setDescription(description1);
40+
item1.setPublishedDate(new Date());
41+
item1.setAuthor("Carlos");
42+
43+
SyndEntry item2 = new SyndEntryImpl();
44+
item2.setLink("http://www.baeldung.com/cockroachdb-java");
45+
item2.setTitle("Guide to CockroachDB in Java");
46+
SyndContent description2 = new SyndContentImpl();
47+
description2.setValue("This tutorial is an introductory guide to using CockroachDB with Java.");
48+
item2.setDescription(description2);
49+
item2.setPublishedDate(new Date());
50+
item2.setAuthor("Baeldung");
51+
52+
list.add(item1);
53+
list.add(item2);
54+
feed.setEntries(list);
55+
56+
return new SyndFeedOutput().outputString(feed);
57+
}
58+
1459
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.baeldung.spring.controller.rss;
2+
3+
import org.springframework.web.servlet.View;
4+
import org.springframework.web.servlet.ViewResolver;
5+
6+
import java.util.Locale;
7+
8+
public class ArticleRssFeedViewResolver implements ViewResolver {
9+
10+
@Override
11+
public View resolveViewName(String s, Locale locale) throws Exception {
12+
ArticleFeedView articleFeedView = new ArticleFeedView();
13+
return articleFeedView;
14+
}
15+
}

0 commit comments

Comments
 (0)