Avoid timeout when attemting to connect to AWS
This commit is contained in:
@@ -63,6 +63,7 @@ import static org.mockito.Mockito.mock;
|
||||
"cloud.aws.region.static=" + AwsS3SourceTests.AWS_REGION,
|
||||
"s3.supplier.remoteDir=" + AwsS3SourceTests.S3_BUCKET,
|
||||
"file.consumer.mode=ref",
|
||||
"s3.common.endpointUrl=foo",
|
||||
"s3.supplier.filenameRegex=.*\\\\.test$" })
|
||||
@DirtiesContext
|
||||
public class AwsS3SourceTests {
|
||||
|
||||
@@ -18,28 +18,39 @@ package org.springframework.cloud.fn.common.aws.s3;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.env.EnvironmentPostProcessor;
|
||||
import org.springframework.cloud.aws.autoconfigure.context.ContextInstanceDataAutoConfiguration;
|
||||
import org.springframework.cloud.aws.autoconfigure.context.ContextResourceLoaderAutoConfiguration;
|
||||
import org.springframework.core.annotation.Order;
|
||||
import org.springframework.core.env.ConfigurableEnvironment;
|
||||
import org.springframework.core.env.MapPropertySource;
|
||||
import org.springframework.core.env.PropertySource;
|
||||
import org.springframework.core.env.StandardEnvironment;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
/**
|
||||
* @author Timo Salm
|
||||
* @author David Turanski
|
||||
*/
|
||||
@Order
|
||||
public class AutoConfigurationExclusionEnvironmentPostProcessor implements EnvironmentPostProcessor {
|
||||
|
||||
static final String SPRING_AUTOCONFIGURE_EXCLUDE_PROPERTY = "spring.autoconfigure.exclude";
|
||||
|
||||
static final String S_3_COMMON_ENDPOINT_URL = "s3.common.endpoint-url";
|
||||
|
||||
@Override
|
||||
public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {
|
||||
final PropertySource<?> propertySource = environment.getPropertySources()
|
||||
.get(StandardEnvironment.SYSTEM_PROPERTIES_PROPERTY_SOURCE_NAME);
|
||||
if (propertySource instanceof MapPropertySource) {
|
||||
String excludedAutoConfiguration = ContextResourceLoaderAutoConfiguration.class.getCanonicalName();
|
||||
//If an endpoint url is set, avoid the timeout attempting to connect to AWS to retrieve instance data.
|
||||
if (StringUtils.hasText(environment.getProperty(S_3_COMMON_ENDPOINT_URL))) {
|
||||
excludedAutoConfiguration = excludedAutoConfiguration
|
||||
.concat("," + ContextInstanceDataAutoConfiguration.class.getCanonicalName());
|
||||
}
|
||||
((MapPropertySource) propertySource).getSource().put(SPRING_AUTOCONFIGURE_EXCLUDE_PROPERTY,
|
||||
ContextResourceLoaderAutoConfiguration.class.getCanonicalName());
|
||||
excludedAutoConfiguration);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,6 +55,7 @@ import static org.mockito.Mockito.spy;
|
||||
"cloud.aws.credentials.accessKey=" + AbstractAwsS3ConsumerMockTests.AWS_ACCESS_KEY,
|
||||
"cloud.aws.credentials.secretKey=" + AbstractAwsS3ConsumerMockTests.AWS_SECRET_KEY,
|
||||
"cloud.aws.region.static=" + AbstractAwsS3ConsumerMockTests.AWS_REGION,
|
||||
"s3.common.endpointUrl=foo",
|
||||
"s3.consumer.bucket=" + AbstractAwsS3ConsumerMockTests.S3_BUCKET })
|
||||
public abstract class AbstractAwsS3ConsumerMockTests {
|
||||
|
||||
|
||||
@@ -58,6 +58,7 @@ import static org.mockito.Mockito.mock;
|
||||
"cloud.aws.credentials.accessKey=" + AbstractAwsS3SupplierMockTests.AWS_ACCESS_KEY,
|
||||
"cloud.aws.credentials.secretKey=" + AbstractAwsS3SupplierMockTests.AWS_SECRET_KEY,
|
||||
"cloud.aws.region.static=" + AbstractAwsS3SupplierMockTests.AWS_REGION,
|
||||
"s3.common.endpointUrl=foo",
|
||||
"s3.supplier.remoteDir=" + AbstractAwsS3SupplierMockTests.S3_BUCKET})
|
||||
@DirtiesContext
|
||||
@SpringIntegrationTest(noAutoStartup = "*")
|
||||
|
||||
Reference in New Issue
Block a user