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

Commit 279393a

Browse files
hhcs9527cdmikechen
authored andcommitted
SUBMARINE-1349. Fix the syntax error reported in sonarcloud and add init value for apiversion in XGboostjobList.java
### What is this PR for? 1. Fix the syntax error reported in sonarcloud 2. Add init value for apiversion in XGboostjobList.java 3. change the following class to a singleton, [ModelVersionService.java](https://github.com/apache/submarine/pull/1020/files#diff-0b498de1dff04b42428e969cc3e0fb1376b75b9f33db4ae8d9740c7e1a2e43be), [RegisteredModelService.java](https://github.com/apache/submarine/pull/1020/files#diff-5894fdc7eea50e5065c43846308e16847562089db57b207ea23ceef86c639668),[RegisteredModelTagService.java](https://github.com/apache/submarine/pull/1020/files#diff-56494d2d82488701eb8e3738e8ff3835a27e7f5add8c9d3421ee35e4e2b09661), and the managers used thems. ### What type of PR is it? Bug Fix ### Todos * [ ] - Task ### What is the Jira issue? [SUBMARINE-1349](https://issues.apache.org/jira/browse/SUBMARINE-1349) ### How should this be tested? <!-- * First time? Setup Travis CI as described on https://submarine.apache.org/contribution/contributions.html#continuous-integration * Strongly recommended: add automated unit tests for any new or changed behavior * Outline any manual steps to test the PR here. --> ### Screenshots (if appropriate) ### Questions: * Do the license files need updating? No * Are there breaking changes for older versions? No * Does this need new documentation? No Author: HH <hhcs9527@gmail.com> Signed-off-by: cdmikechen <cdmikechen@apache.org> Closes #1020 from hhcs9527/SUBMARINE-1349 and squashes the following commits: fad6b5a [HH] SUBMARINE-1349. export localhost for CI . f73915e [HH] SUBMARINE-1349. Change the minio client initialization to local host when clientTest. 725b978 [HH] SUBMARINE-1349. Remove indentdent. f0263c8 [HH] SUBMARINE-1349. Add BeforeClass to change submarine endpoint before testing. 64f9b4f [HH] SUBMARINE-1349. Change the enum class for singleton and add unit-test to cover it. bf4918a [HH] SUBMARINE-1349. Fix check error by re-uesing get Instance, since the usage of conf may be used in both staitc and non-static. fc16e0d [HH] SUBMARINE-1349. Fix check error by remove the static when declaring SubmarineConfiguration conf. 2d29e99 [HH] SUBMARINE-1349. Fix check error. cc4365b [HH] SUBMARINE-1349. Fix check error. c513613 [HH] SUBMARINE-1349. Fix check error. b1ccac1 [HH] SUBMARINE-1349. Fix check error. 3893d01 [HH] SUBMARINE-1349. Change the Client to be singleton with enum class. 0e95639 [HH] SUBMARINE-1349. Fix for the style check. eaccfbc [HH] SUBMARINE-1349. Fix for the style check. 8ab7029 [HH] SUBMARINE-1349. Fix for the style check. 6b3b311 [HH] SUBMARINE-1349. Fix the syntax error reported in sonarcloud, add init value for kind in XGboostjobList.java and make some class to be singleton. 5f756bc [HH] SUBMARINE-1349. Fix the syntax error reported in sonarcloud and add init value for apiversion in XGboostjobList.java
1 parent 6fe0297 commit 279393a

File tree

17 files changed

+96
-62
lines changed

17 files changed

+96
-62
lines changed

.github/workflows/master.yml

+1
Original file line numberDiff line numberDiff line change
@@ -436,6 +436,7 @@ jobs:
436436
TEST_MODULES: "-pl :submarine-server-core"
437437
run: |
438438
echo ">>> mvn $TEST_FLAG $TEST_MODULES -B"
439+
export SUBMARINE_S3_ENDPOINT=http://localhost:9000
439440
mvn $TEST_FLAG $TEST_MODULES -B
440441
- name: Build submarine-serve
441442
env:

submarine-server/server-core/src/main/java/org/apache/submarine/server/manager/ModelManager.java

+7-7
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,13 @@ private ModelManager(Submitter submitter, ModelVersionService modelVersionServic
5656
*
5757
* @return object
5858
*/
59+
private static class ModelManagerHolder {
60+
private static ModelManager manager = new ModelManager(SubmitterManager.loadSubmitter(),
61+
ModelVersionService.getInstance());
62+
}
63+
5964
public static ModelManager getInstance() {
60-
if (manager == null) {
61-
synchronized (ModelManager.class) {
62-
manager = new ModelManager(SubmitterManager.loadSubmitter(), new ModelVersionService());
63-
}
64-
}
65-
return manager;
65+
return ModelManager.ModelManagerHolder.manager;
6666
}
6767

6868
/**
@@ -141,7 +141,7 @@ private void setServeInfo(ServeSpec spec, ModelVersionEntity modelVersion){
141141
}
142142

143143
private void transferDescription(ServeSpec spec) {
144-
Client s3Client = new Client();
144+
Client s3Client = Client.getInstance();
145145
String modelUniquePath = String.format("%s-%d-%s",
146146
spec.getModelName(), spec.getModelVersion(), spec.getModelId());
147147
String res = new String(s3Client.downloadArtifact(String.format("registry/%s/%s/%d/description.json",

submarine-server/server-core/src/main/java/org/apache/submarine/server/manager/ModelVersionManager.java

+7-9
Original file line numberDiff line numberDiff line change
@@ -50,16 +50,14 @@ public class ModelVersionManager {
5050
*
5151
* @return object
5252
*/
53+
private static class ModelVersionManagerHolder {
54+
private static ModelVersionManager manager = new ModelVersionManager(ModelVersionService.getInstance(),
55+
new ModelVersionTagService(),
56+
Client.getInstance());
57+
}
58+
5359
public static ModelVersionManager getInstance() {
54-
if (manager == null) {
55-
synchronized (ModelVersionManager.class) {
56-
if (manager == null) {
57-
manager = new ModelVersionManager(new ModelVersionService(), new ModelVersionTagService(),
58-
new Client());
59-
}
60-
}
61-
}
62-
return manager;
60+
return ModelVersionManager.ModelVersionManagerHolder.manager;
6361
}
6462

6563
@VisibleForTesting

submarine-server/server-core/src/main/java/org/apache/submarine/server/manager/RegisteredModelManager.java

+10-10
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@
3737
* Registered model manager.
3838
*/
3939
public class RegisteredModelManager {
40-
private static RegisteredModelManager manager;
4140
/* Registered model service */
4241
private final RegisteredModelService registeredModelService;
4342

@@ -54,16 +53,17 @@ public class RegisteredModelManager {
5453
*
5554
* @return object
5655
*/
56+
57+
private static class RegisteredModelManagerHolder {
58+
private static RegisteredModelManager manager = new RegisteredModelManager(
59+
RegisteredModelService.getInstance(),
60+
ModelVersionService.getInstance(),
61+
RegisteredModelTagService.getInstance(),
62+
Client.getInstance());
63+
}
64+
5765
public static RegisteredModelManager getInstance() {
58-
if (manager == null) {
59-
synchronized (RegisteredModelManager.class) {
60-
if (manager == null) {
61-
manager = new RegisteredModelManager(new RegisteredModelService(), new ModelVersionService(),
62-
new RegisteredModelTagService(), new Client());
63-
}
64-
}
65-
}
66-
return manager;
66+
return RegisteredModelManager.RegisteredModelManagerHolder.manager;
6767
}
6868

6969
@VisibleForTesting

submarine-server/server-core/src/main/java/org/apache/submarine/server/rest/ExperimentRestApi.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
@Produces({MediaType.APPLICATION_JSON + "; " + RestConstants.CHARSET_UTF8})
5959
public class ExperimentRestApi {
6060
private ExperimentManager experimentManager = ExperimentManager.getInstance();
61-
private final Client minioClient = new Client();
61+
private final Client minioClient = Client.getInstance();
6262

6363
@VisibleForTesting
6464
public void setExperimentManager(ExperimentManager experimentManager) {

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

+16-20
Original file line numberDiff line numberDiff line change
@@ -45,30 +45,26 @@
4545
/**
4646
* S3(Minio) default client
4747
*/
48-
public class Client {
49-
50-
/* minio client */
51-
public MinioClient minioClient;
48+
public enum Client {
49+
INSTANCE(SubmarineConfiguration.getInstance().getString(SubmarineConfVars.ConfVars.SUBMARINE_S3_ENDPOINT));
5250

5351
/* submarine config */
54-
private static final SubmarineConfiguration conf = SubmarineConfiguration.getInstance();
55-
56-
public Client() {
57-
minioClient = MinioClient.builder()
58-
.endpoint(conf.getString(SubmarineConfVars.ConfVars.SUBMARINE_S3_ENDPOINT))
59-
.credentials(
60-
conf.getString(SubmarineConfVars.ConfVars.SUBMARINE_S3_ACCESS_KEY_ID),
61-
conf.getString(SubmarineConfVars.ConfVars.SUBMARINE_S3_SECRET_ACCESS_KEY)
62-
).build();
52+
private final SubmarineConfiguration conf = SubmarineConfiguration.getInstance();
53+
54+
/* minio client */
55+
private final MinioClient minioClient;
56+
57+
Client(String endpoint) {
58+
this.minioClient = MinioClient.builder()
59+
.endpoint(endpoint)
60+
.credentials(
61+
conf.getString(SubmarineConfVars.ConfVars.SUBMARINE_S3_ACCESS_KEY_ID),
62+
conf.getString(SubmarineConfVars.ConfVars.SUBMARINE_S3_SECRET_ACCESS_KEY)
63+
).build();
6364
}
6465

65-
public Client(String endpoint) {
66-
minioClient = MinioClient.builder()
67-
.endpoint(endpoint)
68-
.credentials(
69-
conf.getString(SubmarineConfVars.ConfVars.SUBMARINE_S3_ACCESS_KEY_ID),
70-
conf.getString(SubmarineConfVars.ConfVars.SUBMARINE_S3_SECRET_ACCESS_KEY)
71-
).build();
66+
public static Client getInstance() {
67+
return INSTANCE;
7268
}
7369

7470
/**

submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/ModelVersionRestApiTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,9 @@ public class ModelVersionRestApiTest {
5555
private final String modelVersionModelType = "experiment_123";
5656
private final String modelVersionTag = "testTag";
5757

58-
private final RegisteredModelService registeredModelService = new RegisteredModelService();
58+
private final RegisteredModelService registeredModelService = RegisteredModelService.getInstance();
5959

60-
private final ModelVersionService modelVersionService = new ModelVersionService();
60+
private final ModelVersionService modelVersionService = ModelVersionService.getInstance();
6161

6262
private static final GsonBuilder gsonBuilder = new GsonBuilder()
6363
.registerTypeAdapter(ExperimentId.class, new ExperimentIdSerializer())

submarine-server/server-core/src/test/java/org/apache/submarine/server/rest/RegisteredModelRestApiTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
import org.apache.submarine.server.utils.gson.ExperimentIdSerializer;
4040

4141
public class RegisteredModelRestApiTest {
42-
private final RegisteredModelService registeredModelService = new RegisteredModelService();
42+
private final RegisteredModelService registeredModelService = RegisteredModelService.getInstance();
4343
private final String registeredModelName = "testRegisteredModel";
4444
private final String newRegisteredModelName = "newTestRegisteredModel";
4545
private final String registeredModelDescription = "test registered model description";

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

+19-2
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,33 @@
1919

2020
package org.apache.submarine.server.s3;
2121

22+
import org.apache.submarine.commons.utils.SubmarineConfVars;
23+
import org.apache.submarine.commons.utils.SubmarineConfiguration;
24+
25+
import org.junit.BeforeClass;
2226
import org.junit.After;
23-
import org.junit.Assert;
2427
import org.junit.Test;
28+
import org.junit.Assert;
2529

2630
import java.util.List;
2731

2832

2933
public class ClientTest {
30-
private final Client client = new Client("http://localhost:9000");
34+
private static Client client;
3135
private final String testExperimentId = "experiment-sample";
3236

3337
@After
3438
public void cleanAll() {
3539
client.deleteAllArtifacts();
3640
}
3741

42+
@BeforeClass
43+
public static void init() {
44+
SubmarineConfiguration conf = SubmarineConfiguration.getInstance();
45+
conf.setString(SubmarineConfVars.ConfVars.SUBMARINE_S3_ENDPOINT, "http://localhost:9000");
46+
client = Client.getInstance();
47+
}
48+
3849
@Test
3950
public void testLogArtifactAndDownloadArtifact() {
4051
String path = "sample_folder/sample_file";
@@ -79,4 +90,10 @@ public void testCopyObject() {
7990
response = client.downloadArtifact(copyPath);
8091
Assert.assertArrayEquals(content, response);
8192
}
93+
94+
@Test
95+
public void testSingleton() {
96+
Client testClient = Client.getInstance();
97+
Assert.assertEquals(testClient, client);
98+
}
8299
}

submarine-server/server-database/src/main/java/org/apache/submarine/server/database/model/service/ModelVersionService.java

+7
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,13 @@
3030
import java.util.List;
3131

3232
public class ModelVersionService {
33+
private static class ModelVersionServiceHolder {
34+
private static ModelVersionService service = new ModelVersionService();
35+
}
36+
37+
public static ModelVersionService getInstance() {
38+
return ModelVersionService.ModelVersionServiceHolder.service;
39+
}
3340

3441
private static final Logger LOG = LoggerFactory.getLogger(ModelVersionService.class);
3542

submarine-server/server-database/src/main/java/org/apache/submarine/server/database/model/service/RegisteredModelService.java

+8
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,14 @@
3131

3232
public class RegisteredModelService {
3333

34+
private static class RegisteredModelServiceHolder {
35+
private static RegisteredModelService service = new RegisteredModelService();
36+
}
37+
38+
public static RegisteredModelService getInstance() {
39+
return RegisteredModelService.RegisteredModelServiceHolder.service;
40+
}
41+
3442
private static final Logger LOG = LoggerFactory.getLogger(RegisteredModelService.class);
3543

3644
public List<RegisteredModelEntity> selectAll() throws SubmarineRuntimeException {

submarine-server/server-database/src/main/java/org/apache/submarine/server/database/model/service/RegisteredModelTagService.java

+7
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,13 @@
2828
import org.slf4j.LoggerFactory;
2929

3030
public class RegisteredModelTagService {
31+
private static class RegisteredModelTagServiceHolder {
32+
private static RegisteredModelTagService service = new RegisteredModelTagService();
33+
}
34+
35+
public static RegisteredModelTagService getInstance() {
36+
return RegisteredModelTagService.RegisteredModelTagServiceHolder.service;
37+
}
3138

3239
private static final Logger LOG = LoggerFactory.getLogger(RegisteredModelTagService.class);
3340

submarine-server/server-database/src/test/java/org/apache/submarine/server/database/model/ModelVersionTagTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@
3333

3434
public class ModelVersionTagTest {
3535
private static final Logger LOG = LoggerFactory.getLogger(ModelVersionTagTest.class);
36-
RegisteredModelService registeredModelService = new RegisteredModelService();
37-
ModelVersionService modelVersionService = new ModelVersionService();
36+
RegisteredModelService registeredModelService = RegisteredModelService.getInstance();
37+
ModelVersionService modelVersionService = ModelVersionService.getInstance();
3838
ModelVersionTagService modelVersionTagService = new ModelVersionTagService();
3939

4040

submarine-server/server-database/src/test/java/org/apache/submarine/server/database/model/ModelVersionTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@
3131
import org.apache.submarine.server.database.model.service.RegisteredModelService;
3232

3333
public class ModelVersionTest {
34-
RegisteredModelService registeredModelService = new RegisteredModelService();
35-
ModelVersionService modelVersionService = new ModelVersionService();
34+
RegisteredModelService registeredModelService = RegisteredModelService.getInstance();
35+
ModelVersionService modelVersionService = ModelVersionService.getInstance();
3636

3737
@After
3838
public void cleanAll() {

submarine-server/server-database/src/test/java/org/apache/submarine/server/database/model/RegisteredModelServiceTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
import java.util.List;
3030

3131
public class RegisteredModelServiceTest {
32-
RegisteredModelService registeredModelService = new RegisteredModelService();
32+
RegisteredModelService registeredModelService = RegisteredModelService.getInstance();
3333

3434
@After
3535
public void cleanAll() {

submarine-server/server-database/src/test/java/org/apache/submarine/server/database/model/RegisteredModelTagServiceTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@
3131

3232
public class RegisteredModelTagServiceTest {
3333
private static final Logger LOG = LoggerFactory.getLogger(RegisteredModelTagServiceTest.class);
34-
RegisteredModelService registeredModelService = new RegisteredModelService();
35-
RegisteredModelTagService registeredModelTagService = new RegisteredModelTagService();
34+
RegisteredModelService registeredModelService = RegisteredModelService.getInstance();
35+
RegisteredModelTagService registeredModelTagService = RegisteredModelTagService.getInstance();
3636

3737
@After
3838
public void cleanAll() {

submarine-server/server-submitter/submitter-k8s/src/main/java/org/apache/submarine/server/submitter/k8s/model/xgboostjob/XGBoostJobList.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@
2727

2828
public class XGBoostJobList implements KubernetesListObject {
2929
@SerializedName("apiVersion")
30-
private String apiVersion;
30+
private String apiVersion = XGBoostJob.CRD_XGBOOST_API_VERSION_V1;
3131

3232
@SerializedName("kind")
33-
private String kind;
33+
private String kind = XGBoostJob.CRD_XGBOOST_KIND_V1 + "List";
3434

3535
@SerializedName("metadata")
3636
private V1ListMeta metadata;
@@ -55,6 +55,6 @@ public String getApiVersion() {
5555

5656
@Override
5757
public String getKind() {
58-
return XGBoostJob.CRD_XGBOOST_KIND_V1 + "List";
58+
return kind;
5959
}
6060
}

0 commit comments

Comments
 (0)