This is an automated email from the ASF dual-hosted git repository.

ivandika pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git


The following commit(s) were added to refs/heads/master by this push:
     new d44ebf564c HDDS-12528. Create new module for S3 integration tests 
(#8152)
d44ebf564c is described below

commit d44ebf564ce444c6171d0da05913e500a8038b47
Author: Doroszlai, Attila <[email protected]>
AuthorDate: Tue Mar 25 15:59:02 2025 +0100

    HDDS-12528. Create new module for S3 integration tests (#8152)
---
 .../org/apache/ozone/test}/InputSubstream.java     |   7 +-
 .../dev-support/checks/_mvn_unit_report.sh         |   4 +-
 hadoop-ozone/dev-support/checks/unit.sh            |   2 +-
 .../dev-support/findbugsExcludeFile.xml            |  16 +++
 hadoop-ozone/integration-test-s3/pom.xml           | 121 ++++++++++++++++++++
 .../apache/hadoop/ozone/s3/S3ClientFactory.java    |   0
 .../apache/hadoop/ozone/s3/S3GatewayService.java   |   0
 .../hadoop/ozone/s3/awssdk/S3SDKTestUtils.java     |   2 +-
 .../ozone/s3/awssdk/v1/AbstractS3SDKV1Tests.java   |   0
 .../hadoop/ozone/s3/awssdk/v1/TestS3SDKV1.java     |   0
 .../awssdk/v1/TestS3SDKV1WithRatisStreaming.java   |   0
 .../ozone/s3/awssdk/v2/AbstractS3SDKV2Tests.java   |   0
 .../hadoop/ozone/s3/awssdk/v2/TestS3SDKV2.java     |   0
 .../awssdk/v2/TestS3SDKV2WithRatisStreaming.java   |   0
 .../src/test/resources/ozone-site.xml              | 126 +++++++++++++++++++++
 hadoop-ozone/integration-test/pom.xml              |   5 -
 hadoop-ozone/pom.xml                               |   7 ++
 17 files changed, 277 insertions(+), 13 deletions(-)

diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/utils/InputSubstream.java
 
b/hadoop-hdds/test-utils/src/test/java/org/apache/ozone/test/InputSubstream.java
similarity index 96%
rename from 
hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/utils/InputSubstream.java
rename to 
hadoop-hdds/test-utils/src/test/java/org/apache/ozone/test/InputSubstream.java
index e71689b9ac..3c7b73aa93 100644
--- 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/utils/InputSubstream.java
+++ 
b/hadoop-hdds/test-utils/src/test/java/org/apache/ozone/test/InputSubstream.java
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.hadoop.utils;
+package org.apache.ozone.test;
 
-import com.google.common.base.Preconditions;
 import java.io.FilterInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.util.Objects;
 
 /**
  * A filter input stream implementation that exposes a range of the underlying 
input stream.
@@ -33,8 +33,7 @@ public class InputSubstream extends FilterInputStream {
   private long markedPosition = 0;
 
   public InputSubstream(InputStream in, long skip, long length) {
-    super(in);
-    Preconditions.checkNotNull(in);
+    super(Objects.requireNonNull(in, "in == null"));
     this.currentPosition = 0;
     this.requestedSkipOffset = skip;
     this.requestedLength = length;
diff --git a/hadoop-ozone/dev-support/checks/_mvn_unit_report.sh 
b/hadoop-ozone/dev-support/checks/_mvn_unit_report.sh
index 4d27d50728..8136e6ea80 100755
--- a/hadoop-ozone/dev-support/checks/_mvn_unit_report.sh
+++ b/hadoop-ozone/dev-support/checks/_mvn_unit_report.sh
@@ -38,7 +38,7 @@ cat ${failures} > "${tempfile}"
 
 leaks=${REPORT_DIR}/leaks.txt
 if [[ "${CHECK:-unit}" == "integration" ]]; then
-  find hadoop-ozone/integration-test -not -path '*/iteration*' -name 
'*-output.txt' -print0 \
+  find hadoop-ozone/integration-test* -not -path '*/iteration*' -name 
'*-output.txt' -print0 \
       | xargs -n1 -0 "grep" -l -E "not closed properly|was not shutdown 
properly" \
       | awk -F/ '{sub("-output.txt",""); print $NF}' \
       > "${leaks}"
@@ -47,7 +47,7 @@ fi
 
 cluster=${REPORT_DIR}/cluster-startup-errors.txt
 if [[ "${CHECK:-unit}" == "integration" ]]; then
-  find hadoop-ozone/integration-test -not -path '*/iteration*' -name 
'*-output.txt' -print0 \
+  find hadoop-ozone/integration-test* -not -path '*/iteration*' -name 
'*-output.txt' -print0 \
       | xargs -n1 -0 "grep" -l -E "Unable to build MiniOzoneCluster" \
       | awk -F/ '{sub("-output.txt",""); print $NF}' \
       > "${cluster}"
diff --git a/hadoop-ozone/dev-support/checks/unit.sh 
b/hadoop-ozone/dev-support/checks/unit.sh
index 09f45795fe..f4a0a834d1 100755
--- a/hadoop-ozone/dev-support/checks/unit.sh
+++ b/hadoop-ozone/dev-support/checks/unit.sh
@@ -17,5 +17,5 @@
 DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
 CHECK=unit
 source "${DIR}/junit.sh" \
-  -pl \!:ozone-integration-test,\!:mini-chaos-tests \
+  -pl 
\!:ozone-integration-test,\!:ozone-integration-test-s3,\!:mini-chaos-tests \
   "$@"
diff --git 
a/hadoop-ozone/integration-test-s3/dev-support/findbugsExcludeFile.xml 
b/hadoop-ozone/integration-test-s3/dev-support/findbugsExcludeFile.xml
new file mode 100644
index 0000000000..ee5ed59808
--- /dev/null
+++ b/hadoop-ozone/integration-test-s3/dev-support/findbugsExcludeFile.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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. See accompanying LICENSE file.
+-->
+<FindBugsFilter>
+</FindBugsFilter>
diff --git a/hadoop-ozone/integration-test-s3/pom.xml 
b/hadoop-ozone/integration-test-s3/pom.xml
new file mode 100644
index 0000000000..b23d389ef8
--- /dev/null
+++ b/hadoop-ozone/integration-test-s3/pom.xml
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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. See accompanying LICENSE file.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
https://maven.apache.org/xsd/maven-4.0.0.xsd";>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.ozone</groupId>
+    <artifactId>ozone</artifactId>
+    <version>2.1.0-SNAPSHOT</version>
+  </parent>
+  <artifactId>ozone-integration-test-s3</artifactId>
+  <version>2.1.0-SNAPSHOT</version>
+  <packaging>jar</packaging>
+  <name>Apache Ozone S3 Integration Tests</name>
+  <description>Apache Ozone Integration Tests with S3 Gateway</description>
+
+  <dependencies>
+    <dependency>
+      <groupId>com.amazonaws</groupId>
+      <artifactId>aws-java-sdk-core</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>com.amazonaws</groupId>
+      <artifactId>aws-java-sdk-s3</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>jakarta.xml.bind</groupId>
+      <artifactId>jakarta.xml.bind-api</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-lang3</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.ozone</groupId>
+      <artifactId>hdds-common</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.ozone</groupId>
+      <artifactId>hdds-config</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.ozone</groupId>
+      <artifactId>hdds-server-framework</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.ozone</groupId>
+      <artifactId>hdds-test-utils</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.ozone</groupId>
+      <artifactId>ozone-client</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.ozone</groupId>
+      <artifactId>ozone-mini-cluster</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.ozone</groupId>
+      <artifactId>ozone-s3gateway</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.ratis</groupId>
+      <artifactId>ratis-common</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>software.amazon.awssdk</groupId>
+      <artifactId>s3</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>com.github.spotbugs</groupId>
+        <artifactId>spotbugs-maven-plugin</artifactId>
+        <configuration>
+          
<excludeFilterFile>${basedir}/dev-support/findbugsExcludeFile.xml</excludeFilterFile>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <proc>none</proc>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
+</project>
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/s3/S3ClientFactory.java
 
b/hadoop-ozone/integration-test-s3/src/test/java/org/apache/hadoop/ozone/s3/S3ClientFactory.java
similarity index 100%
rename from 
hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/s3/S3ClientFactory.java
rename to 
hadoop-ozone/integration-test-s3/src/test/java/org/apache/hadoop/ozone/s3/S3ClientFactory.java
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/s3/S3GatewayService.java
 
b/hadoop-ozone/integration-test-s3/src/test/java/org/apache/hadoop/ozone/s3/S3GatewayService.java
similarity index 100%
rename from 
hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/s3/S3GatewayService.java
rename to 
hadoop-ozone/integration-test-s3/src/test/java/org/apache/hadoop/ozone/s3/S3GatewayService.java
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/s3/awssdk/S3SDKTestUtils.java
 
b/hadoop-ozone/integration-test-s3/src/test/java/org/apache/hadoop/ozone/s3/awssdk/S3SDKTestUtils.java
similarity index 98%
rename from 
hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/s3/awssdk/S3SDKTestUtils.java
rename to 
hadoop-ozone/integration-test-s3/src/test/java/org/apache/hadoop/ozone/s3/awssdk/S3SDKTestUtils.java
index 6703e4bbc4..33b7788e69 100644
--- 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/s3/awssdk/S3SDKTestUtils.java
+++ 
b/hadoop-ozone/integration-test-s3/src/test/java/org/apache/hadoop/ozone/s3/awssdk/S3SDKTestUtils.java
@@ -23,7 +23,7 @@
 import java.io.RandomAccessFile;
 import java.security.MessageDigest;
 import org.apache.commons.lang3.RandomUtils;
-import org.apache.hadoop.utils.InputSubstream;
+import org.apache.ozone.test.InputSubstream;
 
 /**
  * Utilities for S3 SDK tests.
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/s3/awssdk/v1/AbstractS3SDKV1Tests.java
 
b/hadoop-ozone/integration-test-s3/src/test/java/org/apache/hadoop/ozone/s3/awssdk/v1/AbstractS3SDKV1Tests.java
similarity index 100%
rename from 
hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/s3/awssdk/v1/AbstractS3SDKV1Tests.java
rename to 
hadoop-ozone/integration-test-s3/src/test/java/org/apache/hadoop/ozone/s3/awssdk/v1/AbstractS3SDKV1Tests.java
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/s3/awssdk/v1/TestS3SDKV1.java
 
b/hadoop-ozone/integration-test-s3/src/test/java/org/apache/hadoop/ozone/s3/awssdk/v1/TestS3SDKV1.java
similarity index 100%
rename from 
hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/s3/awssdk/v1/TestS3SDKV1.java
rename to 
hadoop-ozone/integration-test-s3/src/test/java/org/apache/hadoop/ozone/s3/awssdk/v1/TestS3SDKV1.java
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/s3/awssdk/v1/TestS3SDKV1WithRatisStreaming.java
 
b/hadoop-ozone/integration-test-s3/src/test/java/org/apache/hadoop/ozone/s3/awssdk/v1/TestS3SDKV1WithRatisStreaming.java
similarity index 100%
rename from 
hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/s3/awssdk/v1/TestS3SDKV1WithRatisStreaming.java
rename to 
hadoop-ozone/integration-test-s3/src/test/java/org/apache/hadoop/ozone/s3/awssdk/v1/TestS3SDKV1WithRatisStreaming.java
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/s3/awssdk/v2/AbstractS3SDKV2Tests.java
 
b/hadoop-ozone/integration-test-s3/src/test/java/org/apache/hadoop/ozone/s3/awssdk/v2/AbstractS3SDKV2Tests.java
similarity index 100%
rename from 
hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/s3/awssdk/v2/AbstractS3SDKV2Tests.java
rename to 
hadoop-ozone/integration-test-s3/src/test/java/org/apache/hadoop/ozone/s3/awssdk/v2/AbstractS3SDKV2Tests.java
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/s3/awssdk/v2/TestS3SDKV2.java
 
b/hadoop-ozone/integration-test-s3/src/test/java/org/apache/hadoop/ozone/s3/awssdk/v2/TestS3SDKV2.java
similarity index 100%
rename from 
hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/s3/awssdk/v2/TestS3SDKV2.java
rename to 
hadoop-ozone/integration-test-s3/src/test/java/org/apache/hadoop/ozone/s3/awssdk/v2/TestS3SDKV2.java
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/s3/awssdk/v2/TestS3SDKV2WithRatisStreaming.java
 
b/hadoop-ozone/integration-test-s3/src/test/java/org/apache/hadoop/ozone/s3/awssdk/v2/TestS3SDKV2WithRatisStreaming.java
similarity index 100%
rename from 
hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/s3/awssdk/v2/TestS3SDKV2WithRatisStreaming.java
rename to 
hadoop-ozone/integration-test-s3/src/test/java/org/apache/hadoop/ozone/s3/awssdk/v2/TestS3SDKV2WithRatisStreaming.java
diff --git a/hadoop-ozone/integration-test-s3/src/test/resources/ozone-site.xml 
b/hadoop-ozone/integration-test-s3/src/test/resources/ozone-site.xml
new file mode 100644
index 0000000000..2354b6f321
--- /dev/null
+++ b/hadoop-ozone/integration-test-s3/src/test/resources/ozone-site.xml
@@ -0,0 +1,126 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You 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.
+-->
+
+<!-- Put site-specific property overrides in this file. -->
+
+<configuration>
+
+  <property>
+    <name>ozone.om.transport.class</name>
+    
<value>org.apache.hadoop.ozone.om.protocolPB.Hadoop3OmTransportFactory</value>
+  </property>
+
+  <property>
+    <name>ozone.om.s3.grpc.server_enabled</name>
+    <value>false</value>
+  </property>
+
+  <property>
+    <name>hdds.container.ratis.num.write.chunk.threads.per.volume</name>
+    <value>4</value>
+  </property>
+
+  <property>
+    <name>ozone.scm.handler.count.key</name>
+    <value>20</value>
+  </property>
+
+  <property>
+    <name>ozone.om.handler.count.key</name>
+    <value>20</value>
+  </property>
+
+  <property>
+    <name>hdds.container.ratis.datastream.enabled</name>
+    <value>true</value>
+  </property>
+
+
+  <property>
+    <name>hdds.heartbeat.interval</name>
+    <value>1s</value>
+  </property>
+  <property>
+    <name>ozone.scm.heartbeat.thread.interval</name>
+    <value>100ms</value>
+  </property>
+
+  <property>
+    <name>ozone.scm.ratis.pipeline.limit</name>
+    <value>3</value>
+  </property>
+
+  <property>
+    <name>ozone.scm.close.container.wait.duration</name>
+    <value>1s</value>
+  </property>
+
+  <property>
+    <name>ozone.om.snapshot.diff.job.default.wait.time</name>
+    <value>1s</value>
+  </property>
+
+  <property>
+    <name>hdds.container.ratis.log.appender.queue.byte-limit
+</name>
+    <value>32MB</value>
+  </property>
+  <property>
+    <name>ozone.om.ratis.log.appender.queue.byte-limit</name>
+    <value>4MB</value>
+  </property>
+  <property>
+    <name>ozone.scm.ha.ratis.log.appender.queue.byte-limit</name>
+    <value>4MB</value>
+  </property>
+
+  <property>
+    <name>ozone.scm.chunk.size</name>
+    <value>1MB</value>
+  </property>
+  <property>
+    <name>ozone.scm.block.size</name>
+    <value>4MB</value>
+  </property>
+  <property>
+    <name>ozone.client.stream.buffer.flush.size</name>
+    <value>1MB</value>
+  </property>
+  <property>
+    <name>ozone.client.stream.buffer.max.size</name>
+    <value>2MB</value>
+  </property>
+  <property>
+    <name>ozone.client.stream.buffer.size</name>
+    <value>1MB</value>
+  </property>
+  <property>
+    <name>ozone.client.datastream.buffer.flush.size</name>
+    <value>4MB</value>
+  </property>
+  <property>
+    <name>ozone.client.datastream.min.packet.size</name>
+    <value>256KB</value>
+  </property>
+  <property>
+    <name>ozone.client.datastream.window.size</name>
+    <value>8MB</value>
+  </property>
+
+</configuration>
diff --git a/hadoop-ozone/integration-test/pom.xml 
b/hadoop-ozone/integration-test/pom.xml
index bbd06127c6..ff899d4e0b 100644
--- a/hadoop-ozone/integration-test/pom.xml
+++ b/hadoop-ozone/integration-test/pom.xml
@@ -286,11 +286,6 @@
       <artifactId>ozone-mini-cluster</artifactId>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>software.amazon.awssdk</groupId>
-      <artifactId>s3</artifactId>
-      <scope>test</scope>
-    </dependency>
   </dependencies>
 
   <build>
diff --git a/hadoop-ozone/pom.xml b/hadoop-ozone/pom.xml
index 69cfcf4820..7298e26ec6 100644
--- a/hadoop-ozone/pom.xml
+++ b/hadoop-ozone/pom.xml
@@ -35,6 +35,7 @@
     <module>httpfsgateway</module>
     <module>insight</module>
     <module>integration-test</module>
+    <module>integration-test-s3</module>
     <module>interface-client</module>
     <module>interface-storage</module>
     <module>mini-cluster</module>
@@ -147,6 +148,12 @@
         <artifactId>hdds-server-framework</artifactId>
         <version>${hdds.version}</version>
       </dependency>
+      <dependency>
+        <groupId>org.apache.ozone</groupId>
+        <artifactId>hdds-server-framework</artifactId>
+        <version>${hdds.version}</version>
+        <type>test-jar</type>
+      </dependency>
       <dependency>
         <groupId>org.apache.ozone</groupId>
         <artifactId>hdds-server-scm</artifactId>


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to