IBM Sterling B2B: Configuring SB2Bi to use S3 Storage Provider
Configure AWS SDK for Java on SB2Bi
1) Download AWS SDK for Java from this location https://sdk-for-java.amazonwebservices.com/latest/aws-java-sdk.zip and unzip file.
cd /tmp wget https://sdk-for-java.amazonwebservices.com/latest/aws-java-sdk.zip unzip aws-java-sdk.zip
2) Stop Sterling B2B Integrator
cd /opt/IBM/SterlingIntegrator/bin ./softStop.sh -all ./hardStop.sh
3) Install aws-java-sdk-[version].jar
./install3rdParty.sh awssdk 1.12.565 -j /tmp/aws-java-sdk-1.12.565/lib/aws-java-sdk-1.12.565.jar
4) Import third party libraries
Now we need to import third party libraries (httpclient-[ver].jar,httpcore-[ver].jar, jackson-annotations-[ver].jar, joda-time-[ver].jar) from directory
/tmp/aws-java-sdk-1.12.565/third-party/lib/
but is important to make sure that in <si_install_dir>/properties/dynamicclasspath.cfg and dynamicclasspath.cfg.in, there are no duplicates (like httpclient.jar) and with a higher version.
in my case SB2Bi 6.2 and aws-java-sdk-1.12.565, in need to
./install3rdParty.sh awssdk 1.12.565 -j /tmp/aws-java-sdk-1.12.565/third-party/lib/netty-codec-http-4.1.94.Final.jar ./install3rdParty.sh awssdk 1.12.565 -j /tmp/aws-java-sdk-1.12.565/third-party/lib/netty-common-4.1.94.Final.jar ./install3rdParty.sh awssdk 1.12.565 -j /tmp/aws-java-sdk-1.12.565/third-party/lib/netty-buffer-4.1.94.Final.jar ./install3rdParty.sh awssdk 1.12.565 -j /tmp/aws-java-sdk-1.12.565/third-party/lib/netty-transport-4.1.94.Final.jar ./install3rdParty.sh awssdk 1.12.565 -j /tmp/aws-java-sdk-1.12.565/third-party/lib/netty-resolver-4.1.94.Final.jar ./install3rdParty.sh awssdk 1.12.565 -j /tmp/aws-java-sdk-1.12.565/third-party/lib/netty-codec-4.1.94.Final.jar ./install3rdParty.sh awssdk 1.12.565 -j /tmp/aws-java-sdk-1.12.565/third-party/lib/netty-handler-4.1.94.Final.jar ./install3rdParty.sh awssdk 1.12.565 -j /tmp/aws-java-sdk-1.12.565/third-party/lib/netty-transport-native-unix-common-4.1.94.Final.jar
so my dynamicclasspath.cfg looked like this:
... VENDOR_JAR=/opt/IBM/SterlingIntegrator/jar/awssdk/1.12.565/aws-java-sdk-1.12.565.jar VENDOR_JAR=/opt/IBM/SterlingIntegrator/jar/awssdk/1.12.565/netty-buffer-4.1.94.Final.jar VENDOR_JAR=/opt/IBM/SterlingIntegrator/jar/awssdk/1.12.565/netty-transport-4.1.94.Final.jar VENDOR_JAR=/opt/IBM/SterlingIntegrator/jar/awssdk/1.12.565/netty-resolver-4.1.94.Final.jar VENDOR_JAR=/opt/IBM/SterlingIntegrator/jar/awssdk/1.12.565/netty-codec-4.1.94.Final.jar VENDOR_JAR=/opt/IBM/SterlingIntegrator/jar/awssdk/1.12.565/netty-handler-4.1.94.Final.jar VENDOR_JAR=/opt/IBM/SterlingIntegrator/jar/awssdk/1.12.565/netty-transport-native-unix-common-4.1.94.Final.jar VENDOR_JAR=/opt/IBM/SterlingIntegrator/jar/awssdk/1.12.565/netty-codec-http-4.1.94.Final.jar
5) Run setupfiles and Start Sterling B2B Integrator
./setupfiles.sh ./run.sh
Deploying MinIO (S3 storage)
MinIO is not listed as supported by SB2Bi, but for testing and validation purposes will be excelent.
1) MinIO: Deploy MinIO as Container
2) Access MinIP console http://10.1.1.1:9000
3) Create a bucket. Sample: mysfg-bucket-minio
4) Create an access token. See here MinIO
5) upload a file
Create a BP to get a file in MinIO (S3 storage)
<process name="Demo_MinioS3ClientGet"> <sequence> <operation name="AWSS3 Get Service"> <participant name='AWSS3Client'/> <output message='xout'> <assign to='action'>get</assign> <assign to="awss3.endpoint">http://10.1.1.1:9000</assign> <assign to="awss3.bucketname">mysfg-bucket-minio</assign> <assign to="awss3.filename">arquivo_teste2.txt</assign> <assign to="awss3.accesskey">VQ..rA</assign> <assign to="awss3.secretkey">K4..ge</assign> <assign to="requiredProxy">false</assign> <assign to="useOrigFileName">true</assign> <assign to='.' from='PrimaryDocument' /> </output> <input message="xin"> <assign to="." from="*"/> </input> </operation> </sequence> </process>