Skip to content

Commit 43398b8

Browse files
authored
Add a constructor to S3ProtocolResolver allowing its usage outside of Spring context (#1276)
1 parent f7a2898 commit 43398b8

File tree

3 files changed

+11
-3
lines changed

3 files changed

+11
-3
lines changed

spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/s3/S3AutoConfiguration.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
import java.util.Optional;
3535
import org.springframework.beans.factory.ObjectProvider;
3636
import org.springframework.boot.autoconfigure.AutoConfiguration;
37-
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
3837
import org.springframework.boot.autoconfigure.condition.*;
3938
import org.springframework.boot.context.properties.EnableConfigurationProperties;
4039
import org.springframework.boot.context.properties.PropertyMapper;
@@ -53,7 +52,7 @@
5352
import software.amazon.encryption.s3.S3EncryptionClient;
5453

5554
/**
56-
* {@link EnableAutoConfiguration} for {@link S3Client} and {@link S3ProtocolResolver}.
55+
* {@link AutoConfiguration} for {@link S3Client} and {@link S3ProtocolResolver}.
5756
*
5857
* @author Maciej Walkowiak
5958
* @author Matej Nedic

spring-cloud-aws-s3/src/main/java/io/awspring/cloud/s3/S3ProtocolResolver.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.springframework.core.io.Resource;
2828
import org.springframework.core.io.ResourceLoader;
2929
import org.springframework.lang.Nullable;
30+
import org.springframework.util.Assert;
3031
import software.amazon.awssdk.services.s3.S3Client;
3132

3233
/**
@@ -54,6 +55,14 @@ public class S3ProtocolResolver implements ProtocolResolver, ResourceLoaderAware
5455
public S3ProtocolResolver() {
5556
}
5657

58+
// for direct usages outside of Spring context, when BeanFactory is not available
59+
public S3ProtocolResolver(S3Client s3Client, S3OutputStreamProvider s3OutputStreamProvider) {
60+
Assert.notNull(s3Client, "s3Client is required");
61+
Assert.notNull(s3OutputStreamProvider, "s3OutputStreamProvider is required");
62+
this.s3Client = s3Client;
63+
this.s3OutputStreamProvider = s3OutputStreamProvider;
64+
}
65+
5766
// only for testing
5867
S3ProtocolResolver(@Nullable S3Client s3Client) {
5968
this.s3Client = s3Client;

spring-cloud-aws-s3/src/test/java/io/awspring/cloud/s3/S3ProtocolResolverTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
import software.amazon.awssdk.services.s3.S3Client;
3737

3838
/**
39-
* Tests for {@link S3ProtocolResolverTests}.
39+
* Tests for {@link S3ProtocolResolver}.
4040
*
4141
* @author Maciej Walkowiak
4242
*/

0 commit comments

Comments
 (0)