Skip to content
This repository was archived by the owner on Jul 10, 2024. It is now read-only.

Commit 86cc8cf

Browse files
committed
SUBMARINE-1349. Change the enum class for singleton and add unit-test to cover it.
1 parent 53edebb commit 86cc8cf

File tree

2 files changed

+9
-36
lines changed
  • submarine-server/server-core/src

2 files changed

+9
-36
lines changed

submarine-server/server-core/src/main/java/org/apache/submarine/server/s3/Client.java

+2-35
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@
2626
import java.util.List;
2727
import java.util.Stack;
2828
import javax.ws.rs.core.Response;
29-
import java.util.Map;
30-
import java.util.HashMap;
3129

3230
import io.minio.CopyObjectArgs;
3331
import io.minio.CopySource;
@@ -48,26 +46,15 @@
4846
* S3(Minio) default client
4947
*/
5048
public enum Client {
51-
DEFAULT(SubmarineConfiguration.getInstance().getString(SubmarineConfVars.ConfVars.SUBMARINE_S3_ENDPOINT)),
52-
CUSTOMER("http://localhost:9000");
49+
INSTANCE(SubmarineConfiguration.getInstance().getString(SubmarineConfVars.ConfVars.SUBMARINE_S3_ENDPOINT));
5350

5451
/* submarine config */
5552
private final SubmarineConfiguration conf = SubmarineConfiguration.getInstance();
5653

5754
/* minio client */
5855
private final MinioClient minioClient;
5956

60-
public static Map<String, Client> clientFactory = new HashMap<String, Client>();
61-
private final String endpoint;
62-
63-
static {
64-
for (Client clientSingleton : Client.values()) {
65-
clientFactory.put(clientSingleton.endpoint, clientSingleton);
66-
}
67-
}
68-
6957
Client(String endpoint) {
70-
this.endpoint = endpoint;
7158
this.minioClient = MinioClient.builder()
7259
.endpoint(endpoint)
7360
.credentials(
@@ -76,28 +63,8 @@ public enum Client {
7663
).build();
7764
}
7865

79-
Client() {
80-
this.endpoint = conf.getString(SubmarineConfVars.ConfVars.SUBMARINE_S3_ENDPOINT);
81-
this.minioClient = MinioClient.builder()
82-
.endpoint(conf.getString(SubmarineConfVars.ConfVars.SUBMARINE_S3_ENDPOINT))
83-
.credentials(
84-
conf.getString(SubmarineConfVars.ConfVars.SUBMARINE_S3_ACCESS_KEY_ID),
85-
conf.getString(SubmarineConfVars.ConfVars.SUBMARINE_S3_SECRET_ACCESS_KEY)
86-
).build();
87-
}
88-
8966
public static Client getInstance() {
90-
return clientFactory.get(SubmarineConfiguration.getInstance()
91-
.getString(SubmarineConfVars.ConfVars.SUBMARINE_S3_ENDPOINT));
92-
}
93-
94-
public static Client getInstance(String endpoint) {
95-
try {
96-
return clientFactory.get(endpoint);
97-
} catch (Exception e) {
98-
throw new SubmarineRuntimeException(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(),
99-
e.getMessage());
100-
}
67+
return INSTANCE;
10168
}
10269

10370
/**

submarine-server/server-core/src/test/java/org/apache/submarine/server/s3/ClientTest.java

+7-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727

2828

2929
public class ClientTest {
30-
private final Client client = Client.getInstance("http://localhost:9000");
30+
private final Client client = Client.getInstance();
3131
private final String testExperimentId = "experiment-sample";
3232

3333
@After
@@ -79,4 +79,10 @@ public void testCopyObject() {
7979
response = client.downloadArtifact(copyPath);
8080
Assert.assertArrayEquals(content, response);
8181
}
82+
83+
@Test
84+
public void testSingleton() {
85+
Client testClient = Client.getInstance();
86+
Assert.assertEquals(testClient, client);
87+
}
8288
}

0 commit comments

Comments
 (0)