INTSAMPLES-127 Polishing

- PR Comments
- Switch to Jackson2
- Fix oxm config

Polishing

INTSAMPLES-127 Update to SI 4.0.0.RC1

INTSAMPLES-127 Remove Servlet Dependency

travel sample; see INT-3350.

INTSAMPLES-127 Update Samples to SI 4.0.0

JIRA: https://jira.spring.io/browse/INTSAMPLES-127

Created `maint` branch for ongoing SI 3.0.x samples.
This commit is contained in:
Gary Russell
2014-04-01 17:41:35 -04:00
committed by Artem Bilan
parent c5b1ace70f
commit cc579226d6
93 changed files with 262 additions and 292 deletions

View File

@@ -13,7 +13,7 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.integration.version>3.0.2.RELEASE</spring.integration.version>
<spring.integration.version>4.0.0.RC1</spring.integration.version>
<log4j.version>1.2.17</log4j.version>
<junit.version>4.10</junit.version>
</properties>

View File

@@ -16,7 +16,7 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.integration.version>3.0.2.RELEASE</spring.integration.version>
<spring.integration.version>4.0.0.RC1</spring.integration.version>
<log4j.version>1.2.17</log4j.version>
<junit.version>4.10</junit.version>
<java.main.class>org.springframework.integration.samples.poller.Main</java.main.class>

View File

@@ -13,7 +13,7 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.integration.version>3.0.2.RELEASE</spring.integration.version>
<spring.integration.version>4.0.0.RC1</spring.integration.version>
<log4j.version>1.2.17</log4j.version>
<junit.version>4.10</junit.version>
</properties>

View File

@@ -15,11 +15,11 @@
package org.springframework.integration.samples.errorhandling;
import org.springframework.integration.Message;
import org.springframework.integration.MessagingException;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessagingException;
import org.springframework.integration.annotation.MessageEndpoint;
import org.springframework.integration.annotation.Transformer;
import org.springframework.integration.message.ErrorMessage;
import org.springframework.messaging.support.ErrorMessage;
/**
* @author Iwein Fuld

View File

@@ -7,7 +7,7 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.integration.version>3.0.2.RELEASE</spring.integration.version>
<spring.integration.version>4.0.0.RC1</spring.integration.version>
<log4j.version>1.2.17</log4j.version>
<junit.version>4.10</junit.version>
</properties>

View File

@@ -12,7 +12,7 @@ import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.integration.core.PollableChannel;
import org.springframework.messaging.PollableChannel;
/**
* @author Oleg Zhurakousky

View File

@@ -8,8 +8,8 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.integration.version>3.0.2.RELEASE</spring.integration.version>
<spring.version>3.2.8.RELEASE</spring.version>
<spring.integration.version>4.0.0.RC1</spring.integration.version>
<spring.version>4.0.3.RELEASE</spring.version>
<log4j.version>1.2.17</log4j.version>
<junit.version>4.10</junit.version>
</properties>

View File

@@ -18,7 +18,7 @@ package org.springframework.integration.samples.mailattachments.support;
import java.util.ArrayList;
import java.util.List;
import org.springframework.integration.Message;
import org.springframework.messaging.Message;
import org.springframework.integration.annotation.Splitter;
import org.springframework.integration.file.FileHeaders;
import org.springframework.integration.support.MessageBuilder;

View File

@@ -16,8 +16,8 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.integration.version>3.0.2.RELEASE</spring.integration.version>
<spring.version>3.2.8.RELEASE</spring.version>
<spring.integration.version>4.0.0.RC1</spring.integration.version>
<spring.version>4.0.3.RELEASE</spring.version>
<log4j.version>1.2.17</log4j.version>
<junit.version>4.10</junit.version>
</properties>

View File

@@ -19,9 +19,9 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.concurrent.ConcurrentHashMap;
import org.springframework.integration.Message;
import org.springframework.integration.MessageChannel;
import org.springframework.integration.channel.interceptor.ChannelInterceptorAdapter;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessageChannel;
import org.springframework.messaging.support.ChannelInterceptorAdapter;
import org.springframework.jmx.export.annotation.ManagedOperation;
import org.springframework.jmx.export.annotation.ManagedResource;
import org.springframework.util.StopWatch;

View File

@@ -21,8 +21,8 @@ import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.integration.Message;
import org.springframework.integration.MessageChannel;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessageChannel;
import org.springframework.integration.endpoint.SourcePollingChannelAdapter;
import org.springframework.integration.model.TwitterMessage;
import org.springframework.integration.monitor.IntegrationMBeanExporter;

View File

@@ -8,8 +8,8 @@
<packaging>war</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.integration.version>3.0.2.RELEASE</spring.integration.version>
<spring.version>3.2.8.RELEASE</spring.version>
<spring.integration.version>4.0.0.RC1</spring.integration.version>
<spring.version>4.0.3.RELEASE</spring.version>
<commons-fileupload>1.2.2</commons-fileupload>
<commons-io>1.3.2</commons-io>
<log4j.version>1.2.17</log4j.version>
@@ -26,9 +26,9 @@
<version>${spring.integration.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.10</version>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.3.2</version>
<scope>compile</scope>
<optional>true</optional>
</dependency>

View File

@@ -19,6 +19,7 @@ import java.util.HashMap;
import java.util.Map;
import org.apache.log4j.Logger;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.ClassPathResource;
@@ -29,7 +30,7 @@ import org.springframework.http.HttpStatus;
*
*/
public class MultipartClientForHttpOutboundClient {
private static Logger logger = Logger.getLogger(MultipartClientForHttpOutboundClient.class);
private static String resourcePath = "org/springframework/integration/samples/multipart/spring09_logo.png";

View File

@@ -13,8 +13,8 @@
</prerequisites>
<properties>
<spring.integration.version>3.0.2.RELEASE</spring.integration.version>
<spring.version>3.2.8.RELEASE</spring.version>
<spring.integration.version>4.0.0.RC1</spring.integration.version>
<spring.version>4.0.3.RELEASE</spring.version>
<spring.security.version>3.1.4.RELEASE</spring.security.version>
<commons-fileupload>1.2</commons-fileupload>
<commons-io>1.3.2</commons-io>
@@ -31,9 +31,9 @@
<version>${spring.integration.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.8.0</version>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.3.2</version>
<scope>compile</scope>
</dependency>
<dependency>
@@ -76,12 +76,24 @@
<artifactId>spring-security-core</artifactId>
<scope>compile</scope>
<version>${spring.security.version}</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-support</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<scope>compile</scope>
<version>${spring.security.version}</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-support</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2010 the original author or authors.
* Copyright 2002-2014 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,10 +15,11 @@
*/
package org.springframework.integration.samples.rest.json;
import org.codehaus.jackson.map.AnnotationIntrospector;
import org.codehaus.jackson.map.DeserializationConfig;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.introspect.JacksonAnnotationIntrospector;
import com.fasterxml.jackson.databind.AnnotationIntrospector;
import com.fasterxml.jackson.databind.DeserializationConfig;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector;
/**
* JaxbJacksonObjectMapper.java: This is the custom JAXB JSON ObjectMapper
@@ -27,22 +28,26 @@ import org.codehaus.jackson.map.introspect.JacksonAnnotationIntrospector;
* http://hillert.blogspot.com/2011/01/marshal-json-data-using-jackson-in.html.
* I modified a little bit to use the latest {@link DeserializationConfig} API
* instead of deprecated ones.
* <p> *
* <p>
* Updated to Jackson2.
* <p>
* @author Vigil Bose
* @author Gary Russell
*/
@SuppressWarnings("serial")
public class JaxbJacksonObjectMapper extends ObjectMapper {
/**
* Annotation introspector to use for serialization process
* Annotation introspector to use for serialization process
* is configured separately for serialization and deserialization purposes
*/
public JaxbJacksonObjectMapper() {
final AnnotationIntrospector introspector
= new JacksonAnnotationIntrospector();
super.getDeserializationConfig()
.withAnnotationIntrospector(introspector);
.with(introspector);
super.getSerializationConfig()
.withAnnotationIntrospector(introspector);
.with(introspector);
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2010 the original author or authors.
* Copyright 2002-2014 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,17 +17,18 @@ package org.springframework.integration.samples.rest.json.view;
import java.util.Map;
import org.springframework.web.servlet.view.json.MappingJacksonJsonView;
import org.springframework.web.servlet.view.json.MappingJackson2JsonView;
/**
* ExtendedMappingJacksonJsonView.java: This class extends the Spring's MappingJacksonJsonView
* <p>
* Note: The source code for this class is taken from the forum posted by AhungerArtist
* at http://forum.springsource.org/archive/index.php/t-84006.html
* </p>
* <p>
* @author Vigil Bose
* @author Gary Russell
*/
public class ExtendedMappingJacksonJsonView extends MappingJacksonJsonView {
public class ExtendedMappingJacksonJsonView extends MappingJackson2JsonView {
@SuppressWarnings({"rawtypes" })
@Override
@@ -36,10 +37,10 @@ public class ExtendedMappingJacksonJsonView extends MappingJacksonJsonView {
if (!(result instanceof Map)){
return result;
}
Map map = (Map) result;
if (map.size() == 1){
return map.values().toArray()[0];
return map.values().toArray()[0];
}
return map;
}

View File

@@ -19,9 +19,9 @@ import java.util.HashMap;
import java.util.Map;
import org.apache.log4j.Logger;
import org.springframework.integration.Message;
import org.springframework.integration.MessageHeaders;
import org.springframework.integration.message.GenericMessage;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessageHeaders;
import org.springframework.messaging.support.GenericMessage;
import org.springframework.integration.samples.rest.domain.Employee;
import org.springframework.integration.samples.rest.domain.EmployeeList;
import org.springframework.security.access.annotation.Secured;

View File

@@ -61,7 +61,7 @@
</property>
</bean>
<oxm:jaxb2-marshaller id="marshaller" contextPath="org.springframework.integration.samples.rest.domain" />
<oxm:jaxb2-marshaller id="marshaller" context-path="org.springframework.integration.samples.rest.domain" />
<int:service-activator id="employeeServiceActivator"
input-channel="employeeSearchRequest"

View File

@@ -17,6 +17,7 @@ package org.springframework.integration.samples.rest;
import static org.junit.Assert.assertTrue;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.StringWriter;
import java.util.HashMap;
@@ -25,10 +26,10 @@ import java.util.Map;
import javax.xml.transform.stream.StreamResult;
import org.apache.log4j.Logger;
import org.codehaus.jackson.map.ObjectMapper;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
@@ -45,9 +46,11 @@ import org.springframework.web.client.HttpMessageConverterExtractor;
import org.springframework.web.client.RequestCallback;
import org.springframework.web.client.RestTemplate;
import com.fasterxml.jackson.databind.ObjectMapper;
/**
* RestHttpClientTest.java: Functional Test to test the REST HTTP Path usage. This test requires
* rest-http application running in HTTP environment.
* rest-http application running in HTTP environment.
* @author Vigil Bose
*/
@RunWith(SpringJUnit4ClassRunner.class)
@@ -66,14 +69,14 @@ public class RestHttpClientTest {
@Before
public void setUp() {
responseExtractor = new HttpMessageConverterExtractor<EmployeeList>(EmployeeList.class, restTemplate.getMessageConverters());
Map<String, Object> properties = new HashMap<String, Object>();
properties.put(javax.xml.bind.Marshaller.JAXB_ENCODING, "UTF-8");
properties.put(javax.xml.bind.Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
marshaller.setMarshallerProperties(properties);
}
/**
*
*
* @throws Exception
*/
@Test
@@ -107,21 +110,23 @@ public class RestHttpClientTest {
employeeSearchMap.put("id", id);
return employeeSearchMap;
}
@Test
public void testGetEmployeeAsJson() throws Exception{
Map<String, Object> employeeSearchMap = getEmployeeSearchMap("0");
final String fullUrl = "http://localhost:8080/rest-http/services/employee/{id}/search?format=json";
HttpHeaders headers = getHttpHeadersWithUserCredentials(new HttpHeaders());
headers.add("Accept", "application/json");
HttpEntity<Object> request = new HttpEntity<Object>(headers);
ResponseEntity<?> httpResponse = restTemplate.exchange(fullUrl, HttpMethod.GET, request, EmployeeList.class, employeeSearchMap);
logger.info("Return Status :"+httpResponse.getHeaders().get("X-Return-Status"));
logger.info("Return Status Message :"+httpResponse.getHeaders().get("X-Return-Status-Msg"));
assertTrue(httpResponse.getStatusCode().equals(HttpStatus.OK));
jaxbJacksonObjectMapper.writeValue(System.out, httpResponse.getBody());
ByteArrayOutputStream out = new ByteArrayOutputStream();
jaxbJacksonObjectMapper.writeValue(out, httpResponse.getBody());
logger.info(new String(out.toByteArray()));
}
private HttpHeaders getHttpHeadersWithUserCredentials(ClientHttpRequest request){

View File

@@ -19,7 +19,7 @@
<property name="marshaller" ref="marshaller"/>
<property name="unmarshaller" ref="marshaller"/>
</bean>
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="objectMapper" ref="jaxbJacksonObjectMapper"/>
</bean>
</list>
@@ -28,7 +28,7 @@
<context:component-scan base-package="org.springframework.integration.samples.rest"/>
<oxm:jaxb2-marshaller id="marshaller" contextPath="org.springframework.integration.samples.rest.domain" />
<oxm:jaxb2-marshaller id="marshaller" context-path="org.springframework.integration.samples.rest.domain" />
<bean id="jaxbJacksonObjectMapper" class="org.springframework.integration.samples.rest.json.JaxbJacksonObjectMapper"/>

View File

@@ -14,8 +14,8 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.integration.version>3.0.2.RELEASE</spring.integration.version>
<spring.version>3.2.8.RELEASE</spring.version>
<spring.integration.version>4.0.0.RC1</spring.integration.version>
<spring.version>4.0.3.RELEASE</spring.version>
<log4j.version>1.2.17</log4j.version>
<junit.version>4.10</junit.version>
</properties>

View File

@@ -20,11 +20,11 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.integration.version>3.0.2.RELEASE</spring.integration.version>
<spring.integration.version>4.0.0.RC1</spring.integration.version>
<log4j.version>1.2.16</log4j.version>
<junit.version>4.10</junit.version>
<inject.version>1</inject.version>
<spring.version>3.2.8.RELEASE</spring.version>
<spring.version>4.0.3.RELEASE</spring.version>
</properties>
<repositories>

View File

@@ -23,6 +23,7 @@ import javax.inject.Inject;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.integration.samples.splitteraggregator.support.TestUtils;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@@ -35,6 +36,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath:META-INF/spring/integration/spring-integration-context.xml"})
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)
public class TestSplitterAggregator {
@Inject

View File

@@ -16,7 +16,7 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.integration.version>3.0.2.RELEASE</spring.integration.version>
<spring.integration.version>4.0.0.RC1</spring.integration.version>
<log4j.version>1.2.17</log4j.version>
<junit.version>4.10</junit.version>
</properties>

View File

@@ -17,7 +17,7 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.integration.version>3.0.2.RELEASE</spring.integration.version>
<spring.integration.version>4.0.0.RC1</spring.integration.version>
<log4j.version>1.2.17</log4j.version>
<junit.version>4.10</junit.version>
</properties>

View File

@@ -16,7 +16,7 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.integration.version>3.0.2.RELEASE</spring.integration.version>
<spring.integration.version>4.0.0.RC1</spring.integration.version>
<log4j.version>1.2.17</log4j.version>
<junit.version>4.10</junit.version>
</properties>

View File

@@ -16,7 +16,7 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.integration.version>3.0.2.RELEASE</spring.integration.version>
<spring.integration.version>4.0.0.RC1</spring.integration.version>
<log4j.version>1.2.17</log4j.version>
<junit.version>4.10</junit.version>
</properties>

View File

@@ -14,8 +14,8 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.version>3.2.8.RELEASE</spring.version>
<spring.integration.version>3.0.2.RELEASE</spring.integration.version>
<spring.version>4.0.3.RELEASE</spring.version>
<spring.integration.version>4.0.0.RC1</spring.integration.version>
<log4j.version>1.2.17</log4j.version>
<junit.version>4.10</junit.version>
</properties>

View File

@@ -12,10 +12,10 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.integration.version>3.0.2.RELEASE</spring.integration.version>
<spring.integration.version>4.0.0.RC1</spring.integration.version>
<log4j.version>1.2.17</log4j.version>
<junit.version>4.10</junit.version>
<spring.version>3.2.8.RELEASE</spring.version>
<spring.version>4.0.3.RELEASE</spring.version>
<java.main.class>org.springframework.integration.samples.travel.Main</java.main.class>
</properties>
<dependencies>

View File

@@ -14,8 +14,8 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.integration.version>3.0.2.RELEASE</spring.integration.version>
<spring.version>3.2.8.RELEASE</spring.version>
<spring.integration.version>4.0.0.RC1</spring.integration.version>
<spring.version>4.0.3.RELEASE</spring.version>
<log4j.version>1.2.17</log4j.version>
<junit.version>4.10</junit.version>
</properties>