diff --git a/spring-integration-aws/build.gradle b/spring-integration-aws/build.gradle index f04c70f..0bb50b8 100644 --- a/spring-integration-aws/build.gradle +++ b/spring-integration-aws/build.gradle @@ -2,7 +2,7 @@ description = 'Spring Integration AWS Support' buildscript { repositories { - maven { url 'https://repo.springsource.org/plugins-snapshot' } + maven { url 'http://repo.spring.io/plugins-snapshot' } } } @@ -14,8 +14,8 @@ apply plugin: 'idea' group = 'org.springframework.integration' repositories { - maven { url 'http://repo.springsource.org/libs-milestone' } - maven { url 'http://repo.springsource.org/plugins-release' } + maven { url 'http://repo.spring.io/libs-milestone' } + maven { url 'http://repo.spring.io/plugins-release' } } sourceCompatibility=1.6 @@ -28,26 +28,23 @@ configurations { } ext { - apacheHttpclientVersion='4.1.1' - awsSdkVersion='1.3.32' - commonsCodecVersion='1.5' + apacheHttpclientVersion='4.3.4' + apacheHttpCoreVersion='4.3.2' + awsSdkVersion='1.8.7' + commonsCodecVersion='1.9' commonsIoVersion='2.0.1' - javaMailVersion='1.4.4' + javaMailVersion='1.5.2' jacksonVersion='1.9.11' - junitVersion='4.11' - log4jVersion = '1.2.12' - mockitoVersion='1.9.0' - springIntegrationVersion = '2.2.2.RELEASE' - springVersion = '3.1.4.RELEASE' + springIntegrationVersion = '4.0.3.RELEASE' idPrefix = 'aws' - linkHomepage = 'https://github.com/SpringSource/spring-integration-extensions' - linkCi = 'https://build.springsource.org/browse/INTEXT' - linkIssue = 'https://jira.springsource.org/browse/INTEXT' - linkScmUrl = 'https://github.com/SpringSource/spring-integration-extensions' - linkScmConnection = 'https://github.com/SpringSource/spring-integration-extensions.git' - linkScmDevConnection = 'git@github.com:SpringSource/spring-integration-extensions.git' + linkHomepage = 'https://github.com/spring-projects/spring-integration-extensions' + linkCi = 'https://build.spring.io/browse/INTEXT' + linkIssue = 'https://jira.spring.io/browse/INTEXT' + linkScmUrl = 'https://github.com/spring-projects/spring-integration-extensions' + linkScmConnection = 'https://github.com/spring-projects/spring-integration-extensions.git' + linkScmDevConnection = 'git@github.com:spring-projects/spring-integration-extensions.git' } ext.javadocLinks = [ @@ -64,20 +61,15 @@ dependencies { compile "org.codehaus.jackson:jackson-core-asl:$jacksonVersion" compile "org.codehaus.jackson:jackson-mapper-asl:$jacksonVersion" compile "org.apache.httpcomponents:httpclient:$apacheHttpclientVersion" - compile "org.apache.httpcomponents:httpcore:$apacheHttpclientVersion" + compile "org.apache.httpcomponents:httpcore:$apacheHttpCoreVersion" //Amazon SES Support compile ("org.springframework.integration:spring-integration-mail:$springIntegrationVersion", optional) - compile ("javax.mail:mail:$javaMailVersion", optional) + compile ("javax.mail:javax.mail-api:$javaMailVersion", optional) testCompile "org.springframework.integration:spring-integration-test:$springIntegrationVersion" - testCompile "org.hamcrest:hamcrest-all:1.1" - testCompile "junit:junit-dep:$junitVersion" - testCompile "org.mockito:mockito-all:$mockitoVersion" - testCompile "org.springframework:spring-test:$springVersion" - testCompile "log4j:log4j:$log4jVersion" - jacoco group: "org.jacoco", name: "org.jacoco.agent", version: "0.6.2.201302030002", classifier: "runtime" + jacoco group: "org.jacoco", name: "org.jacoco.agent", version: "0.7.1.201405082137", classifier: "runtime" } @@ -119,7 +111,7 @@ sourceSets { } // enable all compiler warnings; individual projects may customize further -ext.xLintArg = '-Xlint:all' +ext.xLintArg = '-Xlint:all,-options' [compileJava, compileTestJava]*.options*.compilerArgs = [xLintArg] test { @@ -270,5 +262,6 @@ task dist(dependsOn: assemble) { task wrapper(type: Wrapper) { description = 'Generates gradlew[.bat] scripts' - gradleVersion = '1.6' + gradleVersion = '1.12' + distributionUrl = "http://services.gradle.org/distributions/gradle-${gradleVersion}-all.zip" } diff --git a/spring-integration-aws/gradle/wrapper/gradle-wrapper.jar b/spring-integration-aws/gradle/wrapper/gradle-wrapper.jar index a7634b0..0087cd3 100644 Binary files a/spring-integration-aws/gradle/wrapper/gradle-wrapper.jar and b/spring-integration-aws/gradle/wrapper/gradle-wrapper.jar differ diff --git a/spring-integration-aws/gradle/wrapper/gradle-wrapper.properties b/spring-integration-aws/gradle/wrapper/gradle-wrapper.properties index af6eef4..81aa59b 100644 --- a/spring-integration-aws/gradle/wrapper/gradle-wrapper.properties +++ b/spring-integration-aws/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Wed May 15 22:09:50 EDT 2013 +#Thu Aug 14 15:52:49 EEST 2014 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=http\://services.gradle.org/distributions/gradle-1.6-bin.zip +distributionUrl=http\://services.gradle.org/distributions/gradle-1.12-all.zip diff --git a/spring-integration-aws/src/main/java/org/springframework/integration/aws/config/xml/AbstractAWSOutboundChannelAdapterParser.java b/spring-integration-aws/src/main/java/org/springframework/integration/aws/config/xml/AbstractAWSOutboundChannelAdapterParser.java index 4afc1dd..75e2227 100644 --- a/spring-integration-aws/src/main/java/org/springframework/integration/aws/config/xml/AbstractAWSOutboundChannelAdapterParser.java +++ b/spring-integration-aws/src/main/java/org/springframework/integration/aws/config/xml/AbstractAWSOutboundChannelAdapterParser.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2013 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. @@ -21,13 +21,14 @@ import org.springframework.beans.factory.support.AbstractBeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.xml.ParserContext; import org.springframework.integration.config.xml.AbstractOutboundChannelAdapterParser; -import org.springframework.integration.core.MessageHandler; +import org.springframework.messaging.MessageHandler; import org.w3c.dom.Element; /** * The common adapter parser for all AWS Outbound channel adapters * * @author Amol Nayak + * @author Rob Harrop * * @since 0.5 * diff --git a/spring-integration-aws/src/main/java/org/springframework/integration/aws/s3/AmazonS3InboundSynchronizationMessageSource.java b/spring-integration-aws/src/main/java/org/springframework/integration/aws/s3/AmazonS3InboundSynchronizationMessageSource.java index 4000127..9d9f2ae 100644 --- a/spring-integration-aws/src/main/java/org/springframework/integration/aws/s3/AmazonS3InboundSynchronizationMessageSource.java +++ b/spring-integration-aws/src/main/java/org/springframework/integration/aws/s3/AmazonS3InboundSynchronizationMessageSource.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2013 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. @@ -23,7 +23,7 @@ import org.springframework.beans.factory.BeanFactory; import org.springframework.context.expression.BeanFactoryResolver; import org.springframework.expression.Expression; import org.springframework.expression.spel.support.StandardEvaluationContext; -import org.springframework.integration.Message; +import org.springframework.messaging.Message; import org.springframework.integration.aws.core.AWSCredentials; import org.springframework.integration.aws.s3.core.AbstractAmazonS3Operations; import org.springframework.integration.aws.s3.core.AmazonS3Operations; @@ -39,6 +39,7 @@ import org.springframework.util.StringUtils; * synchronized from the S3 * * @author Amol Nayak + * @author Rob Harrop * * @since 0.5 * diff --git a/spring-integration-aws/src/main/java/org/springframework/integration/aws/s3/AmazonS3MessageHandler.java b/spring-integration-aws/src/main/java/org/springframework/integration/aws/s3/AmazonS3MessageHandler.java index 72595b2..58326ac 100644 --- a/spring-integration-aws/src/main/java/org/springframework/integration/aws/s3/AmazonS3MessageHandler.java +++ b/spring-integration-aws/src/main/java/org/springframework/integration/aws/s3/AmazonS3MessageHandler.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2013 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. @@ -26,7 +26,7 @@ import java.util.Collection; import java.util.Map; import org.springframework.expression.Expression; -import org.springframework.integration.Message; +import org.springframework.messaging.Message; import org.springframework.integration.aws.core.AWSCredentials; import org.springframework.integration.aws.s3.core.AmazonS3Object; import org.springframework.integration.aws.s3.core.AmazonS3OperationException; @@ -40,6 +40,7 @@ import org.springframework.util.Assert; * The Message handler for the S3 outbound channel adapter * * @author Amol Nayak + * @author Rob Harrop * * @since 0.5 * diff --git a/spring-integration-aws/src/main/java/org/springframework/integration/aws/s3/DefaultFileNameGenerationStrategy.java b/spring-integration-aws/src/main/java/org/springframework/integration/aws/s3/DefaultFileNameGenerationStrategy.java index a681e2f..919aff4 100644 --- a/spring-integration-aws/src/main/java/org/springframework/integration/aws/s3/DefaultFileNameGenerationStrategy.java +++ b/spring-integration-aws/src/main/java/org/springframework/integration/aws/s3/DefaultFileNameGenerationStrategy.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2013 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. @@ -19,7 +19,7 @@ import java.io.File; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.springframework.integration.Message; +import org.springframework.messaging.Message; import org.springframework.integration.util.AbstractExpressionEvaluator; import org.springframework.util.Assert; import org.springframework.util.StringUtils; @@ -33,9 +33,10 @@ import org.springframework.util.StringUtils; * 2. Else, if the provided payload is of type {@link File}, then the name of the file is used. * if the file name ends with the temporary file suffix, the suffix is removed and the * remainder of the file is used as the name. - * 3. If none of the above two are provided, the file name is the .ext + * 3. If none of the above two are provided, the file name is the <Message Id>.ext * * @author Amol Nayak + * @author Rob Harrop * * @since 0.5 * @@ -50,7 +51,7 @@ public class DefaultFileNameGenerationStrategy extends AbstractExpressionEvaluat private volatile String fileNameExpression = "headers['" + AmazonS3MessageHeaders.FILE_NAME + "']" ; /* (non-Javadoc) - * @see org.springframework.integration.aws.s3.FileNameGenerationStrategy#generateFileName(org.springframework.integration.Message) + * @see org.springframework.integration.aws.s3.FileNameGenerationStrategy#generateFileName(org.springframework.messaging.Message) */ public String generateFileName(Message message) { String generatedFileName; diff --git a/spring-integration-aws/src/main/java/org/springframework/integration/aws/s3/FileNameGenerationStrategy.java b/spring-integration-aws/src/main/java/org/springframework/integration/aws/s3/FileNameGenerationStrategy.java index ed7e258..67caf91 100644 --- a/spring-integration-aws/src/main/java/org/springframework/integration/aws/s3/FileNameGenerationStrategy.java +++ b/spring-integration-aws/src/main/java/org/springframework/integration/aws/s3/FileNameGenerationStrategy.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2013 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,12 +15,13 @@ */ package org.springframework.integration.aws.s3; -import org.springframework.integration.Message; +import org.springframework.messaging.Message; /** * The Common interface used to generate the file name for the file to be uploaded to S3 * * @author Amol Nayak + * @author Rob Harrop * * @since 0.5 * diff --git a/spring-integration-aws/src/main/java/org/springframework/integration/aws/s3/InboundLocalFileOperations.java b/spring-integration-aws/src/main/java/org/springframework/integration/aws/s3/InboundLocalFileOperations.java index f15b7d9..890ecf1 100644 --- a/spring-integration-aws/src/main/java/org/springframework/integration/aws/s3/InboundLocalFileOperations.java +++ b/spring-integration-aws/src/main/java/org/springframework/integration/aws/s3/InboundLocalFileOperations.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2013 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. @@ -26,6 +26,7 @@ import java.util.List; * notifies the operations on the file those were performed * * @author Amol Nayak + * @author Rob Harrop * * @since 0.5 * @@ -62,7 +63,7 @@ public interface InboundLocalFileOperations { * The method will write to the file with the specified name in the specified directory * from the given {@link InputStream}. Upon completion of the writing the appropriate * {@link FileEventHandler} instance(s) will be notified with the {@link FileOperationType} - * WRITE and {@link File} instance for the created file. + * WRITE and {@link File} instance for the created file. * @param directory * @param fileName * @param in diff --git a/spring-integration-aws/src/main/java/org/springframework/integration/aws/s3/config/xml/AmazonS3OutboundChannelAdapterParser.java b/spring-integration-aws/src/main/java/org/springframework/integration/aws/s3/config/xml/AmazonS3OutboundChannelAdapterParser.java index fff70f0..32ffe79 100644 --- a/spring-integration-aws/src/main/java/org/springframework/integration/aws/s3/config/xml/AmazonS3OutboundChannelAdapterParser.java +++ b/spring-integration-aws/src/main/java/org/springframework/integration/aws/s3/config/xml/AmazonS3OutboundChannelAdapterParser.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2013 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. @@ -27,7 +27,7 @@ import org.springframework.integration.aws.s3.DefaultFileNameGenerationStrategy; import org.springframework.integration.aws.s3.core.DefaultAmazonS3Operations; import org.springframework.integration.config.ExpressionFactoryBean; import org.springframework.integration.config.xml.IntegrationNamespaceUtils; -import org.springframework.integration.core.MessageHandler; +import org.springframework.messaging.MessageHandler; import org.springframework.util.StringUtils; import org.w3c.dom.Element; @@ -35,6 +35,7 @@ import org.w3c.dom.Element; * The namespace parser for outbound-channel-parser for the aws-s3 namespace * * @author Amol Nayak + * @author Rob Harrop * * @since 0.5 * diff --git a/spring-integration-aws/src/main/java/org/springframework/integration/aws/s3/core/AbstractAmazonS3Operations.java b/spring-integration-aws/src/main/java/org/springframework/integration/aws/s3/core/AbstractAmazonS3Operations.java index f1aab3b..225dece 100644 --- a/spring-integration-aws/src/main/java/org/springframework/integration/aws/s3/core/AbstractAmazonS3Operations.java +++ b/spring-integration-aws/src/main/java/org/springframework/integration/aws/s3/core/AbstractAmazonS3Operations.java @@ -15,9 +15,6 @@ */ package org.springframework.integration.aws.s3.core; -import static org.springframework.integration.aws.core.AWSCommonUtils.encodeHex; -import static org.springframework.integration.aws.core.AWSCommonUtils.getContentsMD5AsBytes; - import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.File; @@ -32,7 +29,9 @@ import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; + import org.springframework.beans.factory.InitializingBean; +import org.springframework.integration.aws.core.AWSCommonUtils; import org.springframework.integration.aws.core.AWSCredentials; import org.springframework.util.Assert; @@ -46,13 +45,13 @@ import org.springframework.util.Assert; * @since 0.5 * */ -public abstract class AbstractAmazonS3Operations implements AmazonS3Operations,InitializingBean { +public abstract class AbstractAmazonS3Operations implements AmazonS3Operations, InitializingBean { protected final Log logger = LogFactory.getLog(getClass()); private volatile long multipartUploadThreshold; - private volatile File temporaryDirectory = new File(System.getProperty("java.io.tmpdir")); + private volatile File temporaryDirectory = new File(System.getProperty("java.io.tmpdir")); private volatile String temporaryFileSuffix = ".writing"; @@ -63,13 +62,12 @@ public abstract class AbstractAmazonS3Operations implements AmazonS3Operations,I private String awsEndpoint; - /** * The constructor that accepts the {@link AWSCredentials} * @param credentials */ protected AbstractAmazonS3Operations(AWSCredentials credentials) { - Assert.notNull(credentials,"null 'credentials' provided"); + Assert.notNull(credentials, "null 'credentials' provided"); this.credentials = credentials; } @@ -113,7 +111,7 @@ public abstract class AbstractAmazonS3Operations implements AmazonS3Operations,I */ public void setTemporaryDirectory(File temporaryDirectory) { Assert.notNull(temporaryDirectory, "Provided temporaryDirectory is null"); - Assert.isTrue(temporaryDirectory.exists(),"The given temporary directory does not exist"); + Assert.isTrue(temporaryDirectory.exists(), "The given temporary directory does not exist"); Assert.isTrue(temporaryDirectory.isDirectory(), "The given temporary directory path has to be a directory"); this.temporaryDirectory = temporaryDirectory; } @@ -124,7 +122,7 @@ public abstract class AbstractAmazonS3Operations implements AmazonS3Operations,I * @param temporaryDirectory */ public void setTemporaryDirectory(String temporaryDirectory) { - Assert.hasText(temporaryDirectory,"Provided temporary directory string is null or empty string"); + Assert.hasText(temporaryDirectory, "Provided temporary directory string is null or empty string"); setTemporaryDirectory(new File(temporaryDirectory)); } @@ -144,7 +142,7 @@ public abstract class AbstractAmazonS3Operations implements AmazonS3Operations,I */ public void setTemporaryFileSuffix(String temporaryFileSuffix) { Assert.hasText(temporaryFileSuffix, "The temporary file suffix must not be null or empty"); - if(!temporaryFileSuffix.startsWith(".")) { + if (!temporaryFileSuffix.startsWith(".")) { temporaryFileSuffix = "." + temporaryFileSuffix; } @@ -194,16 +192,16 @@ public abstract class AbstractAmazonS3Operations implements AmazonS3Operations,I * @param in the Stream from which the data of the Object is to be read * @param objectName the name of the object that would be used to upload the file */ - private File getTempFile(InputStream in,String bucketName,String objectName) { + private File getTempFile(InputStream in, String bucketName, String objectName) { InputStream inStream; - if(!(in instanceof BufferedInputStream) && !(in instanceof ByteArrayInputStream)) { + if (!(in instanceof BufferedInputStream) && !(in instanceof ByteArrayInputStream)) { inStream = new BufferedInputStream(in); } else { inStream = in; } String fileName; - if(objectName.contains(PATH_SEPARATOR)) { + if (objectName.contains(PATH_SEPARATOR)) { String[] splits = objectName.split(PATH_SEPARATOR); fileName = splits[splits.length - 1]; } @@ -215,7 +213,7 @@ public abstract class AbstractAmazonS3Operations implements AmazonS3Operations,I String filePath = temporaryDirectory.getAbsoluteFile() + File.separator + fileName + temporaryFileSuffix; - if(logger.isDebugEnabled()) { + if (logger.isDebugEnabled()) { logger.debug("Temporary file path is " + filePath); } @@ -226,35 +224,40 @@ public abstract class AbstractAmazonS3Operations implements AmazonS3Operations,I fos = new FileOutputStream(tempFile); byte[] bytes = new byte[1024]; int read = 0; - while(true) { + while (true) { read = inStream.read(bytes); - if(read == -1) { + if (read == -1) { break; } fos.write(bytes, 0, read); } - } catch (FileNotFoundException e) { + } + catch (FileNotFoundException e) { throw new AmazonS3OperationException(credentials.getAccessKey(), - bucketName, - objectName, - "Exception caught while writing the temporary file from input stream", e); - } catch(IOException ioe) { + bucketName, + objectName, + "Exception caught while writing the temporary file from input stream", e); + } + catch (IOException ioe) { throw new AmazonS3OperationException(credentials.getAccessKey(), - bucketName, - objectName, - "Exception caught while reading from the provided input stream", ioe); - } finally { - if(fos != null) { + bucketName, + objectName, + "Exception caught while reading from the provided input stream", ioe); + } + finally { + if (fos != null) { try { fos.flush(); fos.close(); - } catch (IOException e) { + } + catch (IOException e) { //just log logger.error("Unable to close the stream to the temp file being created", e); } try { in.close(); - } catch (IOException e) { + } + catch (IOException e) { //just log logger.error("Unable to close the input stream source", e); } @@ -278,8 +281,8 @@ public abstract class AbstractAmazonS3Operations implements AmazonS3Operations,I @Override public final void putObject(String bucketName, String folder, String objectName, AmazonS3Object s3Object) { - Assert.hasText(bucketName,"null or empty bucketName provided"); - Assert.hasText(objectName,"null or empty object name provided"); + Assert.hasText(bucketName, "null or empty bucketName provided"); + Assert.hasText(objectName, "null or empty object name provided"); Assert.notNull(s3Object, "null s3 object provided for upload"); @@ -289,10 +292,10 @@ public abstract class AbstractAmazonS3Operations implements AmazonS3Operations,I "Exactly one of file or inpuut stream needed in the provided s3 object"); boolean isTempFile = false; - if(in != null) { + if (in != null) { //We don't know the source of the stream and hence we read the content //and write to the temporary file. - file = getTempFile(in,bucketName,objectName); + file = getTempFile(in, bucketName, objectName); isTempFile = true; } @@ -306,15 +309,17 @@ public abstract class AbstractAmazonS3Operations implements AmazonS3Operations,I String stringContentMD5 = null; try { stringContentMD5 = - encodeHex(getContentsMD5AsBytes(file)); - } catch (UnsupportedEncodingException e) { + AWSCommonUtils.encodeHex(AWSCommonUtils.getContentsMD5AsBytes(file)); + } + catch (UnsupportedEncodingException e) { logger.error("Exception while generating the content's MD5 of the file " + file.getAbsolutePath(), e); } try { doPut(bucketName, key, file, s3Object.getObjectACL(), s3Object.getUserMetaData(), stringContentMD5); - } catch (Exception e) { + } + catch (Exception e) { throw new AmazonS3OperationException( credentials.getAccessKey(), bucketName, key, @@ -323,13 +328,13 @@ public abstract class AbstractAmazonS3Operations implements AmazonS3Operations,I } - if(isTempFile) { + if (isTempFile) { //Delete the temp file - if(logger.isDebugEnabled()) { + if (logger.isDebugEnabled()) { logger.debug("Deleting temp file: " + file.getName()); } boolean deleteSuccessful = file.delete(); - if(!deleteSuccessful) { + if (!deleteSuccessful) { logger.warn("Unable to delete file '" + file.getName() + "'"); } } @@ -344,14 +349,14 @@ public abstract class AbstractAmazonS3Operations implements AmazonS3Operations,I * @param objectName */ private String getKeyFromFolder(String folder, String objectName) { - if(objectName.startsWith(PATH_SEPARATOR)) { + if (objectName.startsWith(PATH_SEPARATOR)) { //remove the leading / of the object name objectName = objectName.substring(1); } String key; - if(folder != null) { - key = folder.endsWith(PATH_SEPARATOR)? - folder + objectName:folder + PATH_SEPARATOR + objectName; + if (folder != null) { + key = folder.endsWith(PATH_SEPARATOR) ? + folder + objectName : folder + PATH_SEPARATOR + objectName; } else { key = objectName; @@ -360,7 +365,7 @@ public abstract class AbstractAmazonS3Operations implements AmazonS3Operations,I //check if the foldername begins with a /, if yes, remove it as well as it created //one directory with blank name - if(key.startsWith(PATH_SEPARATOR)) { + if (key.startsWith(PATH_SEPARATOR)) { key = key.substring(1); } return key; @@ -384,22 +389,22 @@ public abstract class AbstractAmazonS3Operations implements AmazonS3Operations,I * @param pageSize The max number of records to be retrieved in one list object operation. * */ - public final PaginatedObjectsView listObjects(String bucketName, String folder, String nextMarker,int pageSize) { + public final PaginatedObjectsView listObjects(String bucketName, String folder, String nextMarker, int pageSize) { Assert.hasText(bucketName, "Bucket name should be non null and non empty"); Assert.isTrue(pageSize >= 0, "Page size should be a non negative number"); - if(logger.isDebugEnabled()) { + if (logger.isDebugEnabled()) { logger.debug("Listing objects from bucket " + bucketName + " and folder " + folder); - logger.debug("Next marker is " + nextMarker + " and pageSize is " + pageSize); + logger.debug("Next marker is " + nextMarker + " and pageSize is " + pageSize); } String prefix = null; - if(folder != null && !PATH_SEPARATOR.equals(folder)) { + if (folder != null && !PATH_SEPARATOR.equals(folder)) { prefix = folder; } //check if the prefix begins with / - if(prefix != null && prefix.startsWith(PATH_SEPARATOR)) { + if (prefix != null && prefix.startsWith(PATH_SEPARATOR)) { prefix = prefix.substring(1); } @@ -416,14 +421,15 @@ public abstract class AbstractAmazonS3Operations implements AmazonS3Operations,I public final AmazonS3Object getObject(String bucketName, String folder, String objectName) { Assert.hasText(bucketName, "Bucket name should be non null and non empty"); - if(logger.isDebugEnabled()) { + if (logger.isDebugEnabled()) { logger.debug("Getting from bucket " + bucketName + ", from folder " + folder + " the object name " + objectName); } String key = getKeyFromFolder(folder, objectName); try { return doGetObject(bucketName, key); - } catch (Exception e) { + } + catch (Exception e) { throw new AmazonS3OperationException( credentials.getAccessKey(), bucketName, key, @@ -467,34 +473,37 @@ public abstract class AbstractAmazonS3Operations implements AmazonS3Operations,I * @param stringContentMD5 The MD5 sum of the contents of the file to be uploaded * */ - protected abstract void doPut(String bucket,String key,File file, - AmazonS3ObjectACL objectACL, Map userMetadata,String stringContentMD5); + protected abstract void doPut(String bucket, String key, File file, + AmazonS3ObjectACL objectACL, Map userMetadata, String stringContentMD5); + + + static class PagninatedObjectsViewImpl implements PaginatedObjectsView { + + private final List objectSummary; + + private final String nextMarker; + + public PagninatedObjectsViewImpl(List objectSummary, + String nextMarker) { + this.objectSummary = objectSummary; + this.nextMarker = nextMarker; + } + + + public List getObjectSummary() { + return objectSummary != null ? objectSummary : new ArrayList(); + } + + + public boolean hasMoreResults() { + return nextMarker != null; + } + + + public String getNextMarker() { + return nextMarker; + } + + } } - -class PagninatedObjectsViewImpl implements PaginatedObjectsView { - - private final List objectSummary; - private final String nextMarker; - - public PagninatedObjectsViewImpl(List objectSummary, - String nextMarker) { - this.objectSummary = objectSummary; - this.nextMarker = nextMarker; - } - - - public List getObjectSummary() { - return objectSummary != null?objectSummary:new ArrayList(); - } - - - public boolean hasMoreResults() { - return nextMarker != null; - } - - - public String getNextMarker() { - return nextMarker; - } -} diff --git a/spring-integration-aws/src/main/java/org/springframework/integration/aws/ses/config/xml/AmazonSESOutboundAdapterParser.java b/spring-integration-aws/src/main/java/org/springframework/integration/aws/ses/config/xml/AmazonSESOutboundAdapterParser.java index fdb3a68..44f28d6 100644 --- a/spring-integration-aws/src/main/java/org/springframework/integration/aws/ses/config/xml/AmazonSESOutboundAdapterParser.java +++ b/spring-integration-aws/src/main/java/org/springframework/integration/aws/ses/config/xml/AmazonSESOutboundAdapterParser.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2013 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. @@ -18,12 +18,13 @@ package org.springframework.integration.aws.ses.config.xml; import org.springframework.integration.aws.config.xml.AbstractAWSOutboundChannelAdapterParser; import org.springframework.integration.aws.ses.AmazonSESMessageHandler; -import org.springframework.integration.core.MessageHandler; +import org.springframework.messaging.MessageHandler; /** * parse the <ses-outbound-channel-adapter/> of the "int-aws" namespace * * @author Amol Nayak + * @author Rob Harrop * * @since 0.5 * diff --git a/spring-integration-aws/src/main/resources/org/springframework/integration/aws/config/xml/spring-integration-aws-1.0.xsd b/spring-integration-aws/src/main/resources/org/springframework/integration/aws/config/xml/spring-integration-aws-1.0.xsd index 9360ecd..ecbf698 100644 --- a/spring-integration-aws/src/main/resources/org/springframework/integration/aws/config/xml/spring-integration-aws-1.0.xsd +++ b/spring-integration-aws/src/main/resources/org/springframework/integration/aws/config/xml/spring-integration-aws-1.0.xsd @@ -11,7 +11,7 @@ + schemaLocation="http://www.springframework.org/schema/integration/spring-integration.xsd"/> diff --git a/spring-integration-aws/src/test/java/org/springframework/integration/aws/config/xml/AbstractAWSOutboundChannelAdapterParserTests.java b/spring-integration-aws/src/test/java/org/springframework/integration/aws/config/xml/AbstractAWSOutboundChannelAdapterParserTests.java index 0bfe333..1435e91 100644 --- a/spring-integration-aws/src/test/java/org/springframework/integration/aws/config/xml/AbstractAWSOutboundChannelAdapterParserTests.java +++ b/spring-integration-aws/src/test/java/org/springframework/integration/aws/config/xml/AbstractAWSOutboundChannelAdapterParserTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2013 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. @@ -23,14 +23,15 @@ import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.integration.aws.core.AWSCredentials; -import org.springframework.integration.core.MessageHandler; import org.springframework.integration.endpoint.AbstractEndpoint; import org.springframework.integration.test.util.TestUtils; +import org.springframework.messaging.MessageHandler; /** * The Abstract test class for the AWS outbound adapter parsers * * @author Amol Nayak + * @author Rob Harrop * * @since 0.5 * diff --git a/spring-integration-aws/src/test/java/org/springframework/integration/aws/s3/AmazonS3InboundSynchronizationMessageSourceTests.java b/spring-integration-aws/src/test/java/org/springframework/integration/aws/s3/AmazonS3InboundSynchronizationMessageSourceTests.java index 0bac9ae..4201d42 100644 --- a/spring-integration-aws/src/test/java/org/springframework/integration/aws/s3/AmazonS3InboundSynchronizationMessageSourceTests.java +++ b/spring-integration-aws/src/test/java/org/springframework/integration/aws/s3/AmazonS3InboundSynchronizationMessageSourceTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2013 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. @@ -18,7 +18,6 @@ package org.springframework.integration.aws.s3; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.springframework.integration.aws.common.AWSTestUtils.md5Hash; -import static org.springframework.integration.aws.s3.AmazonS3OperationsMockingUtil.BUCKET; import static org.springframework.integration.aws.s3.AmazonS3OperationsMockingUtil.mockAmazonS3Operations; import static org.springframework.integration.aws.s3.AmazonS3OperationsMockingUtil.mockS3Operations; import static org.springframework.integration.test.util.TestUtils.getPropertyValue; @@ -32,19 +31,23 @@ import org.junit.BeforeClass; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; +import org.mockito.Mockito; + +import org.springframework.beans.factory.BeanFactory; import org.springframework.expression.common.LiteralExpression; -import org.springframework.integration.Message; import org.springframework.integration.aws.core.BasicAWSCredentials; import org.springframework.integration.aws.s3.core.AbstractAmazonS3Operations; import org.springframework.integration.aws.s3.core.AmazonS3Object; import org.springframework.integration.aws.s3.core.AmazonS3ObjectACL; import org.springframework.integration.aws.s3.core.AmazonS3Operations; import org.springframework.integration.aws.s3.core.PaginatedObjectsView; +import org.springframework.messaging.Message; /** * The test class for {@link AmazonS3InboundSynchronizationMessageSource} * * @author Amol Nayak + * @author Rob Harrop * * @since 0.5 * @@ -53,6 +56,7 @@ public class AmazonS3InboundSynchronizationMessageSourceTests { @Rule public TemporaryFolder temp = new TemporaryFolder(); + private static AmazonS3Operations operations; @@ -65,7 +69,7 @@ public class AmazonS3InboundSynchronizationMessageSourceTests { /** * Tests by providing null credentials. */ - @Test(expected=IllegalArgumentException.class) + @Test(expected = IllegalArgumentException.class) public void withNullCredentials() { AmazonS3InboundSynchronizationMessageSource src = new AmazonS3InboundSynchronizationMessageSource(); src.setCredentials(null); @@ -74,7 +78,7 @@ public class AmazonS3InboundSynchronizationMessageSourceTests { /** * Tests by providing null temporary suffix */ - @Test(expected=IllegalArgumentException.class) + @Test(expected = IllegalArgumentException.class) public void withNullTempSuffix() { AmazonS3InboundSynchronizationMessageSource src = new AmazonS3InboundSynchronizationMessageSource(); src.setTemporarySuffix(null); @@ -83,7 +87,7 @@ public class AmazonS3InboundSynchronizationMessageSourceTests { /** * Tests by providing null wildcard */ - @Test(expected=IllegalArgumentException.class) + @Test(expected = IllegalArgumentException.class) public void withNullWildcard() { AmazonS3InboundSynchronizationMessageSource src = new AmazonS3InboundSynchronizationMessageSource(); src.setFileNameWildcard(null); @@ -92,7 +96,7 @@ public class AmazonS3InboundSynchronizationMessageSourceTests { /** * Tests by providing null regex */ - @Test(expected=IllegalArgumentException.class) + @Test(expected = IllegalArgumentException.class) public void withNullRegex() { AmazonS3InboundSynchronizationMessageSource src = new AmazonS3InboundSynchronizationMessageSource(); src.setFileNameRegex(null); @@ -101,7 +105,7 @@ public class AmazonS3InboundSynchronizationMessageSourceTests { /** * Tests by providing both regex and wildcard */ - @Test(expected=IllegalArgumentException.class) + @Test(expected = IllegalArgumentException.class) public void withBothRegexAndWildcard() { AmazonS3InboundSynchronizationMessageSource src = new AmazonS3InboundSynchronizationMessageSource(); src.setFileNameRegex("[a-z]+\\.txt"); @@ -111,7 +115,7 @@ public class AmazonS3InboundSynchronizationMessageSourceTests { /** * Tests by providing both wildcard and regex, unlike previous one, this sets the wildcard first */ - @Test(expected=IllegalArgumentException.class) + @Test(expected = IllegalArgumentException.class) public void withBothWildcardAndRegex() { AmazonS3InboundSynchronizationMessageSource src = new AmazonS3InboundSynchronizationMessageSource(); src.setFileNameWildcard("*.txt"); @@ -122,7 +126,7 @@ public class AmazonS3InboundSynchronizationMessageSourceTests { /** * Tests providing null remote directory */ - @Test(expected=IllegalArgumentException.class) + @Test(expected = IllegalArgumentException.class) public void withNullRemoteDirectory() { AmazonS3InboundSynchronizationMessageSource src = new AmazonS3InboundSynchronizationMessageSource(); src.setRemoteDirectory(null); @@ -131,10 +135,11 @@ public class AmazonS3InboundSynchronizationMessageSourceTests { /** *Tests with a non existent local directory */ - @Test(expected=IllegalArgumentException.class) + @Test(expected = IllegalArgumentException.class) public void withNonExistentLocalDirectory() { AmazonS3InboundSynchronizationMessageSource src = new AmazonS3InboundSynchronizationMessageSource(); src.setDirectory(new LiteralExpression("SomeNotExistentDir")); + src.setBeanFactory(Mockito.mock(BeanFactory.class)); src.afterPropertiesSet(); } @@ -142,18 +147,19 @@ public class AmazonS3InboundSynchronizationMessageSourceTests { * Tests with a {@link File} instance that is not a directory * @throws IOException */ - @Test(expected=IllegalArgumentException.class) + @Test(expected = IllegalArgumentException.class) public void withNonDirectory() throws IOException { File file = temp.newFile("SomeFile.txt"); AmazonS3InboundSynchronizationMessageSource src = new AmazonS3InboundSynchronizationMessageSource(); src.setDirectory(new LiteralExpression(file.getAbsolutePath())); + src.setBeanFactory(Mockito.mock(BeanFactory.class)); src.afterPropertiesSet(); } /** * Tests with a null s3 operation. */ - @Test(expected=IllegalArgumentException.class) + @Test(expected = IllegalArgumentException.class) public void withNullS3Operations() { AmazonS3InboundSynchronizationMessageSource src = new AmazonS3InboundSynchronizationMessageSource(); src.setS3Operations(null); @@ -170,12 +176,12 @@ public class AmazonS3InboundSynchronizationMessageSourceTests { src.setTemporarySuffix(".temp"); src.setCredentials(credentials); src.setDirectory(new LiteralExpression(temp.getRoot().getAbsolutePath())); + src.setBeanFactory(Mockito.mock(BeanFactory.class)); src.afterPropertiesSet(); assertEquals(".temp", getPropertyValue(src, "s3Operations.temporaryFileSuffix", String.class)); } - /** * Instantiates with a custom implementation of {@link AmazonS3Operations} * which extends from {@link AbstractAmazonS3Operations}. Also sets the following @@ -216,14 +222,15 @@ public class AmazonS3InboundSynchronizationMessageSourceTests { src.setTemporarySuffix(".temp"); src.setAcceptSubFolders(true); src.setDirectory(new LiteralExpression(temp.getRoot().getAbsolutePath())); + src.setBeanFactory(Mockito.mock(BeanFactory.class)); src.afterPropertiesSet(); - assertEquals(ops, getPropertyValue(src, "s3Operations",AmazonS3Operations.class)); - assertEquals(".temp", getPropertyValue(src, "s3Operations.temporaryFileSuffix",String.class)); + assertEquals(ops, getPropertyValue(src, "s3Operations", AmazonS3Operations.class)); + assertEquals(".temp", getPropertyValue(src, "s3Operations.temporaryFileSuffix", String.class)); assertEquals("testbucket", getPropertyValue(src, "bucket", String.class)); assertEquals(temp.getRoot(), getPropertyValue(src, "directory")); assertEquals("[a-z]+\\.txt", getPropertyValue(src, "synchronizer.fileNameRegex", String.class)); - assertEquals(true, getPropertyValue(src, "synchronizer.acceptSubFolders", Boolean.class).booleanValue()); + assertEquals(true, getPropertyValue(src, "synchronizer.acceptSubFolders", Boolean.class)); assertEquals(15, getPropertyValue(src, "synchronizer.maxObjectsPerBatch", Integer.class).intValue()); assertEquals("remotedirectory", getPropertyValue(src, "remoteDirectory", String.class)); } @@ -234,14 +241,14 @@ public class AmazonS3InboundSynchronizationMessageSourceTests { @Test public void synchronizeWithLocalDirectory() { mockAmazonS3Operations(Arrays.asList( - new String[]{"test.txt","test.txt",md5Hash("test.txt"),null}, - new String[]{"sub1/test.txt","sub1/test.txt",md5Hash("sub1/test.txt"),null}, - new String[]{"sub1/sub11/test.txt","sub1/sub11/test.txt",md5Hash("sub1/sub11/test.txt"),null}, - new String[]{"sub2/test.txt","sub2/test.txt",md5Hash("sub2/test.txt"),null} - )); + new String[] {"test.txt", "test.txt", md5Hash("test.txt"), null}, + new String[] {"sub1/test.txt", "sub1/test.txt", md5Hash("sub1/test.txt"), null}, + new String[] {"sub1/sub11/test.txt", "sub1/sub11/test.txt", md5Hash("sub1/sub11/test.txt"), null}, + new String[] {"sub2/test.txt", "sub2/test.txt", md5Hash("sub2/test.txt"), null} + )); AmazonS3InboundSynchronizationMessageSource src = new AmazonS3InboundSynchronizationMessageSource(); src.setS3Operations(operations); - src.setBucket(BUCKET); + src.setBucket(AmazonS3OperationsMockingUtil.BUCKET); src.setDirectory(new LiteralExpression(temp.getRoot().getAbsolutePath())); src.setFileNameRegex("[a-z]+\\.txt"); src.setRemoteDirectory("/sub1"); @@ -249,6 +256,7 @@ public class AmazonS3InboundSynchronizationMessageSourceTests { src.setTemporarySuffix(".temp"); src.setAcceptSubFolders(true); src.setDirectory(new LiteralExpression(temp.getRoot().getAbsolutePath())); + src.setBeanFactory(Mockito.mock(BeanFactory.class)); src.afterPropertiesSet(); File file = src.receive().getPayload(); assertEquals(temp.getRoot().getAbsoluteFile() + @@ -261,4 +269,5 @@ public class AmazonS3InboundSynchronizationMessageSourceTests { } + } diff --git a/spring-integration-aws/src/test/java/org/springframework/integration/aws/s3/AmazonS3MessageHandlerTests.java b/spring-integration-aws/src/test/java/org/springframework/integration/aws/s3/AmazonS3MessageHandlerTests.java index 8745061..46ec7db 100644 --- a/spring-integration-aws/src/test/java/org/springframework/integration/aws/s3/AmazonS3MessageHandlerTests.java +++ b/spring-integration-aws/src/test/java/org/springframework/integration/aws/s3/AmazonS3MessageHandlerTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2013 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. @@ -40,20 +40,23 @@ import org.junit.rules.TemporaryFolder; import org.mockito.Mockito; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; + +import org.springframework.beans.factory.BeanFactory; import org.springframework.expression.common.LiteralExpression; import org.springframework.expression.spel.standard.SpelExpressionParser; -import org.springframework.integration.Message; -import org.springframework.integration.MessageHandlingException; import org.springframework.integration.aws.core.BasicAWSCredentials; import org.springframework.integration.aws.s3.core.AmazonS3Object; import org.springframework.integration.aws.s3.core.AmazonS3Operations; import org.springframework.integration.support.MessageBuilder; +import org.springframework.messaging.Message; +import org.springframework.messaging.MessageHandlingException; /** * The test class for {@link AmazonS3MessageHandler}, we rely on mock of {@link AmazonS3Operations} * to test the behavior. * * @author Amol Nayak + * @author Rob Harrop * * @since 0.5 * @@ -90,6 +93,7 @@ public class AmazonS3MessageHandlerTests { //set the remote directory to root by default handler.setRemoteDirectoryExpression(new LiteralExpression("/")); handler.setBucket("TestBucket"); + handler.setBeanFactory(Mockito.mock(BeanFactory.class)); handler.afterPropertiesSet(); return handler; } diff --git a/spring-integration-aws/src/test/java/org/springframework/integration/aws/s3/DefaultFileNameGenerationStrategyTests.java b/spring-integration-aws/src/test/java/org/springframework/integration/aws/s3/DefaultFileNameGenerationStrategyTests.java index 7f19ba2..f8e8a6e 100644 --- a/spring-integration-aws/src/test/java/org/springframework/integration/aws/s3/DefaultFileNameGenerationStrategyTests.java +++ b/spring-integration-aws/src/test/java/org/springframework/integration/aws/s3/DefaultFileNameGenerationStrategyTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2013 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. @@ -25,14 +25,15 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; -import org.springframework.integration.Message; import org.springframework.integration.support.MessageBuilder; +import org.springframework.messaging.Message; /** * The test class for {@link DefaultFileNameGenerationStrategy} * * @author Amol Nayak + * @author Rob Harrop * * @since 0.5 * diff --git a/spring-integration-aws/src/test/java/org/springframework/integration/aws/s3/config/xml/AmazonS3OutboundChannelAdapterParserTests.java b/spring-integration-aws/src/test/java/org/springframework/integration/aws/s3/config/xml/AmazonS3OutboundChannelAdapterParserTests.java index bf4a679..78dab4e 100644 --- a/spring-integration-aws/src/test/java/org/springframework/integration/aws/s3/config/xml/AmazonS3OutboundChannelAdapterParserTests.java +++ b/spring-integration-aws/src/test/java/org/springframework/integration/aws/s3/config/xml/AmazonS3OutboundChannelAdapterParserTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2013 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. @@ -28,17 +28,18 @@ import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.expression.Expression; import org.springframework.expression.common.LiteralExpression; import org.springframework.expression.spel.standard.SpelExpression; -import org.springframework.integration.Message; import org.springframework.integration.aws.s3.AmazonS3MessageHandler; import org.springframework.integration.aws.s3.FileNameGenerationStrategy; import org.springframework.integration.aws.s3.core.AmazonS3Operations; import org.springframework.integration.aws.s3.core.DefaultAmazonS3Operations; import org.springframework.integration.endpoint.EventDrivenConsumer; +import org.springframework.messaging.Message; /** * The test case for the aws-s3 namespace's {@link AmazonS3OutboundChannelAdapterParser} class * * @author Amol Nayak + * @author Rob Harrop * * @since 0.5 * diff --git a/spring-integration-aws/src/test/java/org/springframework/integration/aws/ses/AmazonSESMessageHandlerTests.java b/spring-integration-aws/src/test/java/org/springframework/integration/aws/ses/AmazonSESMessageHandlerTests.java index b1b08c8..087a3d7 100644 --- a/spring-integration-aws/src/test/java/org/springframework/integration/aws/ses/AmazonSESMessageHandlerTests.java +++ b/spring-integration-aws/src/test/java/org/springframework/integration/aws/ses/AmazonSESMessageHandlerTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2013 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. @@ -36,17 +36,18 @@ import org.junit.BeforeClass; import org.junit.Test; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; -import org.springframework.integration.Message; -import org.springframework.integration.MessageHandlingException; import org.springframework.integration.support.MessageBuilder; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; +import org.springframework.messaging.Message; +import org.springframework.messaging.MessageHandlingException; /** * The test class for {@link AmazonSESMessageHandler} * * @author Amol Nayak + * @author Rob Harrop * * @since 0.5 * diff --git a/spring-integration-aws/src/test/java/org/springframework/integration/aws/ses/config/xml/AmazonSESOutboundAdapterParserTests.java b/spring-integration-aws/src/test/java/org/springframework/integration/aws/ses/config/xml/AmazonSESOutboundAdapterParserTests.java index 38fccf6..03b2aa6 100644 --- a/spring-integration-aws/src/test/java/org/springframework/integration/aws/ses/config/xml/AmazonSESOutboundAdapterParserTests.java +++ b/spring-integration-aws/src/test/java/org/springframework/integration/aws/ses/config/xml/AmazonSESOutboundAdapterParserTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2013 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. @@ -22,9 +22,9 @@ import org.junit.Assert; import org.junit.Test; import org.springframework.beans.factory.parsing.BeanDefinitionParsingException; import org.springframework.context.support.ClassPathXmlApplicationContext; -import org.springframework.integration.core.MessageHandler; import org.springframework.integration.endpoint.EventDrivenConsumer; import org.springframework.integration.test.util.TestUtils; +import org.springframework.messaging.MessageHandler; import com.amazonaws.services.simpleemail.AWSJavaMailTransport; @@ -32,6 +32,7 @@ import com.amazonaws.services.simpleemail.AWSJavaMailTransport; * The test class for the AmazonSESOutboundAdapterParser * * @author Amol Nayak + * @author Rob Harrop * * @since 0.5 *