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";