From 87bbb1b50f01fb1021e8c9a8043ef416b368b953 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Mon, 27 Sep 2010 16:33:06 -0400 Subject: [PATCH] INTSAMPLES-2 added http-outbound-gateway sample to multipart-http --- cookbooks/multipart-http/.classpath | 12 +++-- cookbooks/multipart-http/.project | 6 --- .../com.springsource.sts.config.flow.prefs | 3 +- .../.settings/org.eclipse.jdt.core.prefs | 9 ++-- .../org.eclipse.wst.common.component | 4 +- ....eclipse.wst.common.project.facet.core.xml | 2 +- .../.settings/org.maven.ide.eclipse.prefs | 2 +- cookbooks/multipart-http/.springBeans | 1 + cookbooks/multipart-http/pom.xml | 2 +- .../samples/multipart/MultipartReceiever.java | 11 +++- .../multipart/MultipartRequestGateway.java | 17 ++++++ .../integration/http-outbound-config.xml | 28 ++++++++++ .../MultipartClientForHttpOutboundClient.java | 52 +++++++++++++++++++ ...rtClient.java => MultipartRestClient.java} | 4 +- 14 files changed, 129 insertions(+), 24 deletions(-) create mode 100644 cookbooks/multipart-http/src/main/java/org/springframework/integration/samples/multipart/MultipartRequestGateway.java create mode 100644 cookbooks/multipart-http/src/main/resources/META-INF/spring/integration/http-outbound-config.xml create mode 100644 cookbooks/multipart-http/src/test/java/org/springframework/integration/samples/multipart/MultipartClientForHttpOutboundClient.java rename cookbooks/multipart-http/src/test/java/org/springframework/integration/samples/multipart/{MultipartClient.java => MultipartRestClient.java} (95%) diff --git a/cookbooks/multipart-http/.classpath b/cookbooks/multipart-http/.classpath index dc2be4c4..90680aeb 100644 --- a/cookbooks/multipart-http/.classpath +++ b/cookbooks/multipart-http/.classpath @@ -1,9 +1,8 @@ - - - - + + + @@ -11,5 +10,10 @@ + + + + + diff --git a/cookbooks/multipart-http/.project b/cookbooks/multipart-http/.project index 1aa0542b..bb41683c 100644 --- a/cookbooks/multipart-http/.project +++ b/cookbooks/multipart-http/.project @@ -30,14 +30,8 @@ - - org.springframework.ide.eclipse.core.springbuilder - - - - org.springframework.ide.eclipse.core.springnature org.maven.ide.eclipse.maven2Nature org.eclipse.jem.workbench.JavaEMFNature org.eclipse.wst.common.modulecore.ModuleCoreNature diff --git a/cookbooks/multipart-http/.settings/com.springsource.sts.config.flow.prefs b/cookbooks/multipart-http/.settings/com.springsource.sts.config.flow.prefs index a365e4ff..f58961ea 100644 --- a/cookbooks/multipart-http/.settings/com.springsource.sts.config.flow.prefs +++ b/cookbooks/multipart-http/.settings/com.springsource.sts.config.flow.prefs @@ -1,3 +1,4 @@ -#Thu Sep 16 09:13:09 EDT 2010 +#Sun Sep 26 22:00:17 EDT 2010 +//com.springsource.sts.config.flow.coordinates\:http\://www.springframework.org/schema/integration\:/multipart-http/src/main/resources/META-INF/spring/integration/http-outbound-config.xml=\n\n\n\n\n\n\n\n\n\n\n\n\n\n //com.springsource.sts.config.flow.coordinates\:http\://www.springframework.org/schema/integration\:/multipart-http/src/main/webapp/WEB-INF/servlet-config.xml=\n\n\n\n\n\n\n\n\n\n\n\n\n\n eclipse.preferences.version=1 diff --git a/cookbooks/multipart-http/.settings/org.eclipse.jdt.core.prefs b/cookbooks/multipart-http/.settings/org.eclipse.jdt.core.prefs index 316adb02..446ab8be 100644 --- a/cookbooks/multipart-http/.settings/org.eclipse.jdt.core.prefs +++ b/cookbooks/multipart-http/.settings/org.eclipse.jdt.core.prefs @@ -1,12 +1,13 @@ -#Thu Sep 16 09:11:51 EDT 2010 +#Sun Sep 26 22:12:18 EDT 2010 eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.compliance=1.5 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.6 +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/cookbooks/multipart-http/.settings/org.eclipse.wst.common.component b/cookbooks/multipart-http/.settings/org.eclipse.wst.common.component index 84fb939a..681c7952 100644 --- a/cookbooks/multipart-http/.settings/org.eclipse.wst.common.component +++ b/cookbooks/multipart-http/.settings/org.eclipse.wst.common.component @@ -1,10 +1,10 @@ - - + + diff --git a/cookbooks/multipart-http/.settings/org.eclipse.wst.common.project.facet.core.xml b/cookbooks/multipart-http/.settings/org.eclipse.wst.common.project.facet.core.xml index 9f1491f6..e3184454 100644 --- a/cookbooks/multipart-http/.settings/org.eclipse.wst.common.project.facet.core.xml +++ b/cookbooks/multipart-http/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -1,7 +1,7 @@ - + diff --git a/cookbooks/multipart-http/.settings/org.maven.ide.eclipse.prefs b/cookbooks/multipart-http/.settings/org.maven.ide.eclipse.prefs index 00480d5b..a72e64f4 100644 --- a/cookbooks/multipart-http/.settings/org.maven.ide.eclipse.prefs +++ b/cookbooks/multipart-http/.settings/org.maven.ide.eclipse.prefs @@ -1,4 +1,4 @@ -#Tue Aug 31 23:37:04 EDT 2010 +#Sun Sep 26 21:33:25 EDT 2010 activeProfiles= eclipse.preferences.version=1 fullBuildGoals=process-test-resources diff --git a/cookbooks/multipart-http/.springBeans b/cookbooks/multipart-http/.springBeans index 15608f30..abbca287 100644 --- a/cookbooks/multipart-http/.springBeans +++ b/cookbooks/multipart-http/.springBeans @@ -7,6 +7,7 @@ + src/main/resources/META-INF/spring/integration/http-outbound-config.xml diff --git a/cookbooks/multipart-http/pom.xml b/cookbooks/multipart-http/pom.xml index 304f59e2..2508ebb2 100644 --- a/cookbooks/multipart-http/pom.xml +++ b/cookbooks/multipart-http/pom.xml @@ -7,7 +7,7 @@ Spring Integration HTTP Multipart Demo war - 2.0.0.M7 + 2.0.0.BUILD-SNAPSHOT 3.0.4.RELEASE 1.2 1.3.2 diff --git a/cookbooks/multipart-http/src/main/java/org/springframework/integration/samples/multipart/MultipartReceiever.java b/cookbooks/multipart-http/src/main/java/org/springframework/integration/samples/multipart/MultipartReceiever.java index 419d9f8a..32397ef4 100644 --- a/cookbooks/multipart-http/src/main/java/org/springframework/integration/samples/multipart/MultipartReceiever.java +++ b/cookbooks/multipart-http/src/main/java/org/springframework/integration/samples/multipart/MultipartReceiever.java @@ -15,6 +15,8 @@ */ package org.springframework.integration.samples.multipart; +import java.util.LinkedList; + import org.apache.log4j.Logger; import org.springframework.integration.http.UploadedMultipartFile; import org.springframework.util.LinkedMultiValueMap; @@ -23,13 +25,18 @@ import org.springframework.util.LinkedMultiValueMap; * */ public class MultipartReceiever { - private static Logger logger = Logger.getLogger(MultipartClient.class); + private static Logger logger = Logger.getLogger(MultipartReceiever.class); + @SuppressWarnings("rawtypes") public void recieve(LinkedMultiValueMap multipartRequest){ logger.info("Successfully recieved multipart request: " + multipartRequest); for (String elementName : multipartRequest.keySet()) { if (elementName.equals("company")){ - logger.info(elementName + " - " + ((String[]) multipartRequest.getFirst("company"))[0]); + LinkedList value = (LinkedList)multipartRequest.get("company"); + String[] multiValues = (String[]) value.get(0); + for (String companyName : multiValues) { + logger.info(elementName + " - " + companyName); + } } else if (elementName.equals("company-logo")){ logger.info(elementName + " - as UploadedMultipartFile: " + ((UploadedMultipartFile) multipartRequest.getFirst("company-logo")).getOriginalFilename()); diff --git a/cookbooks/multipart-http/src/main/java/org/springframework/integration/samples/multipart/MultipartRequestGateway.java b/cookbooks/multipart-http/src/main/java/org/springframework/integration/samples/multipart/MultipartRequestGateway.java new file mode 100644 index 00000000..874073ee --- /dev/null +++ b/cookbooks/multipart-http/src/main/java/org/springframework/integration/samples/multipart/MultipartRequestGateway.java @@ -0,0 +1,17 @@ +/** + * + */ +package org.springframework.integration.samples.multipart; + +import java.util.Map; + +import org.springframework.http.HttpStatus; + +/** + * @author ozhurakousky + * + */ +public interface MultipartRequestGateway { + + public HttpStatus postMultipartRequest(Map multipartRequest); +} diff --git a/cookbooks/multipart-http/src/main/resources/META-INF/spring/integration/http-outbound-config.xml b/cookbooks/multipart-http/src/main/resources/META-INF/spring/integration/http-outbound-config.xml new file mode 100644 index 00000000..26ff03d0 --- /dev/null +++ b/cookbooks/multipart-http/src/main/resources/META-INF/spring/integration/http-outbound-config.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + diff --git a/cookbooks/multipart-http/src/test/java/org/springframework/integration/samples/multipart/MultipartClientForHttpOutboundClient.java b/cookbooks/multipart-http/src/test/java/org/springframework/integration/samples/multipart/MultipartClientForHttpOutboundClient.java new file mode 100644 index 00000000..bf109cf2 --- /dev/null +++ b/cookbooks/multipart-http/src/test/java/org/springframework/integration/samples/multipart/MultipartClientForHttpOutboundClient.java @@ -0,0 +1,52 @@ +/* + * Copyright 2002-2010 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.integration.samples.multipart; + +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; +import org.springframework.core.io.Resource; +import org.springframework.http.HttpStatus; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; +/** + * @author Oleg Zhurakousky + * + */ +public class MultipartClientForHttpOutboundClient { + + private static Logger logger = Logger.getLogger(MultipartClientForHttpOutboundClient.class); + private static String resourcePath = "org/springframework/integration/samples/multipart/spring09_logo.png"; + + /** + * @param args + */ + public static void main(String[] args) throws Exception{ + ApplicationContext context = new ClassPathXmlApplicationContext("/META-INF/spring/integration/http-outbound-config.xml"); + Resource s2logo = new ClassPathResource(resourcePath); + Map multipartMap = new HashMap(); + multipartMap.put("company", new String[]{"SpringSource", "VMWare"}); + multipartMap.put("company-logo", s2logo); + logger.info("Created multipart request: " + multipartMap); + MultipartRequestGateway requestGateway = context.getBean("requestGateway", MultipartRequestGateway.class); + HttpStatus reply = requestGateway.postMultipartRequest(multipartMap); + System.out.println("Replied with HttpStatus code: " + reply); + } +} diff --git a/cookbooks/multipart-http/src/test/java/org/springframework/integration/samples/multipart/MultipartClient.java b/cookbooks/multipart-http/src/test/java/org/springframework/integration/samples/multipart/MultipartRestClient.java similarity index 95% rename from cookbooks/multipart-http/src/test/java/org/springframework/integration/samples/multipart/MultipartClient.java rename to cookbooks/multipart-http/src/test/java/org/springframework/integration/samples/multipart/MultipartRestClient.java index 4646e596..fee91193 100644 --- a/cookbooks/multipart-http/src/test/java/org/springframework/integration/samples/multipart/MultipartClient.java +++ b/cookbooks/multipart-http/src/test/java/org/springframework/integration/samples/multipart/MultipartRestClient.java @@ -31,9 +31,9 @@ import org.springframework.web.client.RestTemplate; * @author Oleg Zhurakousky * */ -public class MultipartClient { +public class MultipartRestClient { - private static Logger logger = Logger.getLogger(MultipartClient.class); + private static Logger logger = Logger.getLogger(MultipartRestClient.class); private static String uri = "http://localhost:8080/multipart-http/inboundAdapter.htm"; private static String resourcePath = "org/springframework/integration/samples/multipart/spring09_logo.png";