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

Commit b26c930

Browse files
committed
SUBMARINE-1349. Fix the syntax error reported in sonarcloud, add init value for kind in XGboostjobList.java and make some class to be singleton.
1 parent a825e1c commit b26c930

File tree

16 files changed

+87
-43
lines changed

16 files changed

+87
-43
lines changed

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

+6-7
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,12 @@ 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(), ModelVersionService.getInstance());
61+
}
62+
5963
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;
64+
return ModelManager.ModelManagerHolder.manager;
6665
}
6766

6867
/**
@@ -141,7 +140,7 @@ private void setServeInfo(ServeSpec spec, ModelVersionEntity modelVersion){
141140
}
142141

143142
private void transferDescription(ServeSpec spec) {
144-
Client s3Client = new Client();
143+
Client s3Client = Client.getInstance();
145144
String modelUniquePath = String.format("%s-%d-%s",
146145
spec.getModelName(), spec.getModelVersion(), spec.getModelId());
147146
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-6
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,13 @@ public class ModelVersionManager {
5050
*
5151
* @return object
5252
*/
53-
public static synchronized ModelVersionManager getInstance() {
54-
if (manager == null) {
55-
manager = new ModelVersionManager(new ModelVersionService(), new ModelVersionTagService(),
56-
new Client());
57-
}
58-
return manager;
53+
private static class ModelVersionManagerHolder {
54+
private static ModelVersionManager manager = new ModelVersionManager(ModelVersionService.getInstance(), new ModelVersionTagService(),
55+
Client.getInstance());
56+
}
57+
58+
public static ModelVersionManager getInstance() {
59+
return ModelVersionManager.ModelVersionManagerHolder.manager;
5960
}
6061

6162
@VisibleForTesting

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

+8-7
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,12 +53,14 @@ public class RegisteredModelManager {
5453
*
5554
* @return object
5655
*/
57-
public static synchronized RegisteredModelManager getInstance() {
58-
if (manager == null) {
59-
manager = new RegisteredModelManager(new RegisteredModelService(), new ModelVersionService(),
60-
new RegisteredModelTagService(), new Client());
61-
}
62-
return manager;
56+
57+
private static class RegisteredModelManagerHolder {
58+
private static RegisteredModelManager manager = new RegisteredModelManager(RegisteredModelService.getInstance(), ModelVersionService.getInstance(),
59+
RegisteredModelTagService.getInstance(), Client.getInstance());
60+
}
61+
62+
public static RegisteredModelManager getInstance() {
63+
return RegisteredModelManager.RegisteredModelManagerHolder.manager;
6364
}
6465

6566
@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

+30-9
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
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;
2931

3032
import io.minio.CopyObjectArgs;
3133
import io.minio.CopySource;
@@ -43,19 +45,38 @@
4345

4446
public class Client {
4547
public MinioClient minioClient;
48+
public static Map<String,MinioClient> minioClientFactory = new HashMap<String, MinioClient>();
49+
public static Map<String,Client> clientFactory = new HashMap<String, Client>();
50+
51+
public static Client getClient(String endpoint) {
52+
Client client = clientFactory.get(endpoint);
53+
Map<String,Client> clientLocalFactory = clientFactory;
54+
55+
if (client == null) {
56+
synchronized(Client.class) {
57+
if (client == null) {
58+
client = new Client(endpoint);
59+
clientLocalFactory.put(endpoint, client);
60+
clientFactory = clientLocalFactory;
61+
}
62+
}
63+
}
64+
return client;
65+
}
4666

47-
public Client() {
48-
minioClient = MinioClient.builder()
49-
.endpoint(S3Constants.ENDPOINT)
50-
.credentials(S3Constants.ACCESSKEY, S3Constants.SECRETKEY)
51-
.build();
67+
public static Client getInstance() {
68+
return getClient(S3Constants.ENDPOINT);
69+
}
70+
71+
public static Client getInstance(String endpoint) {
72+
return getClient(endpoint);
5273
}
5374

54-
public Client(String endpoint) {
75+
private Client(String endpoint) {
5576
minioClient = MinioClient.builder()
56-
.endpoint(endpoint)
57-
.credentials(S3Constants.ACCESSKEY, S3Constants.SECRETKEY)
58-
.build();
77+
.endpoint(endpoint)
78+
.credentials(S3Constants.ACCESSKEY, S3Constants.SECRETKEY)
79+
.build();
5980
}
6081

6182
/**

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

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

2828

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

3333
@After

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public class XGBoostJobList implements KubernetesListObject {
3030
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)