Skip to content

Commit 0279570

Browse files
authored
Feat/multi env repo (#155)
* feat: multi env config repository * feat: multi env config repository provider * chore: remove trip config * chore: remove multienv from update * feat: multi env config compose * chore: doc * chore: doc * fix: valid method * chore: update version * fix: tags query
1 parent f5041c8 commit 0279570

File tree

17 files changed

+179
-43
lines changed

17 files changed

+179
-43
lines changed

arex-storage-config/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
<parent>
4646
<artifactId>arex-storage-service</artifactId>
4747
<groupId>com.arextest</groupId>
48-
<version>1.1.4</version>
48+
<version>1.1.5</version>
4949
</parent>
5050

5151
<properties>
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.arextest.config.model.dao;
2+
3+
import java.util.List;
4+
import java.util.Map;
5+
import lombok.Getter;
6+
import lombok.Setter;
7+
import lombok.experimental.FieldNameConstants;
8+
9+
@Setter
10+
@Getter
11+
@FieldNameConstants
12+
public abstract class MultiEnvBaseEntity<T> extends BaseEntity {
13+
/**
14+
* Multi environment configuration
15+
*/
16+
private List<T> multiEnvConfigs;
17+
18+
/**
19+
* Multi environment tags
20+
*/
21+
private Map<String, List<String>> envTags;
22+
}

arex-storage-config/src/main/java/com/arextest/config/model/dao/config/RecordServiceConfigCollection.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.arextest.config.model.dao.config;
22

33
import com.arextest.config.model.dao.BaseEntity;
4+
import com.arextest.config.model.dao.MultiEnvBaseEntity;
45
import com.arextest.config.model.dto.record.SerializeSkipInfoConfiguration;
56
import java.util.List;
67
import java.util.Map;
@@ -13,7 +14,8 @@
1314
@Data
1415
@NoArgsConstructor
1516
@FieldNameConstants
16-
public class RecordServiceConfigCollection extends BaseEntity {
17+
public class RecordServiceConfigCollection extends
18+
MultiEnvBaseEntity<RecordServiceConfigCollection> {
1719

1820
public static final String DOCUMENT_NAME = "RecordServiceConfig";
1921

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.arextest.config.model.dto;
2+
3+
import java.util.List;
4+
import java.util.Map;
5+
import lombok.Getter;
6+
import lombok.Setter;
7+
8+
@Getter
9+
@Setter
10+
public abstract class AbstractMultiEnvConfiguration<T>
11+
extends AbstractConfiguration implements MultiEnvConfig<T> {
12+
13+
/**
14+
* Multi environment configuration
15+
*/
16+
private List<T> multiEnvConfigs;
17+
18+
/**
19+
* Multi environment tags
20+
*/
21+
private Map<String, List<String>> envTags;
22+
23+
public void validateEnvConfigs() throws Exception {
24+
}
25+
}

arex-storage-config/src/main/java/com/arextest/config/model/dto/ModifyType.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,6 @@
77
public enum ModifyType {
88
REMOVE,
99
INSERT,
10-
UPDATE
10+
UPDATE,
11+
UPDATE_MULTI_ENV
1112
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.arextest.config.model.dto;
2+
3+
import java.util.List;
4+
import java.util.Map;
5+
6+
public interface MultiEnvConfig<T> {
7+
List<T> getMultiEnvConfigs();
8+
void setMultiEnvConfigs(List<T> multiEnvConfigs);
9+
10+
Map<String, List<String>> getEnvTags();
11+
void setEnvTags(Map<String, List<String>> envTags);
12+
}

arex-storage-config/src/main/java/com/arextest/config/model/dto/application/InstancesConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@
1010
*/
1111
@Data
1212
public class InstancesConfiguration extends AbstractConfiguration {
13-
1413
private String id;
1514
private String appId;
1615
private String recordVersion;
1716
private String host;
1817
private Date dataUpdateTime;
1918
private String agentStatus;
19+
// service tags specified by user
2020
private Map<String, String> tags;
2121
private Map<String, String> systemEnv;
2222
private Map<String, String> systemProperties;

arex-storage-config/src/main/java/com/arextest/config/model/dto/record/MultiEnvConfig.java

Lines changed: 0 additions & 12 deletions
This file was deleted.

arex-storage-config/src/main/java/com/arextest/config/model/dto/record/ServiceCollectConfiguration.java

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
package com.arextest.config.model.dto.record;
22

33

4-
import com.arextest.config.model.dto.AbstractConfiguration;
4+
import com.arextest.config.model.dto.AbstractMultiEnvConfiguration;
55
import java.util.List;
66
import java.util.Map;
7+
import java.util.Map.Entry;
78
import java.util.Set;
89
import lombok.Getter;
910
import lombok.Setter;
@@ -14,9 +15,7 @@
1415
*/
1516
@Setter
1617
@Getter
17-
public class ServiceCollectConfiguration extends AbstractConfiguration
18-
implements MultiEnvConfig<ServiceCollectConfiguration> {
19-
18+
public class ServiceCollectConfiguration extends AbstractMultiEnvConfiguration<ServiceCollectConfiguration> {
2019
private String appId;
2120
/**
2221
* The sample rate means for in 100 seconds should be occurred the number of records. example: if
@@ -57,13 +56,26 @@ public class ServiceCollectConfiguration extends AbstractConfiguration
5756

5857
private List<SerializeSkipInfoConfiguration> serializeSkipInfoList;
5958

60-
/**
61-
* Multi environment configuration
62-
*/
63-
private List<MultiEnvConfig<ServiceCollectConfiguration>> multiEnvConfigs;
59+
@Override
60+
public void validateEnvConfigs() throws Exception {
61+
if (this.getAppId() == null || this.getAppId().isEmpty()) {
62+
throw new RuntimeException("appid is empty");
63+
}
6464

65-
/**
66-
* Multi environment tags
67-
*/
68-
private Map<String, String> envTags;
65+
if (this.getMultiEnvConfigs() == null || this.getMultiEnvConfigs().isEmpty()) {
66+
throw new RuntimeException("multiEnvConfigs is empty");
67+
}
68+
69+
for (int i = 0; i < this.getMultiEnvConfigs().size(); i++) {
70+
ServiceCollectConfiguration current = this.getMultiEnvConfigs().get(i);
71+
if (current.getEnvTags() == null || current.getEnvTags().isEmpty()) {
72+
throw new RuntimeException("No." + (i + 1) + " config's envTags is empty");
73+
}
74+
for (Entry<String, List<String>> tagPairs : current.getEnvTags().entrySet()) {
75+
if (tagPairs.getValue() == null || tagPairs.getValue().isEmpty()) {
76+
throw new RuntimeException("No." + (i + 1) + " config's envTags's value is empty");
77+
}
78+
}
79+
}
80+
}
6981
}

arex-storage-config/src/main/java/com/arextest/config/repository/ConfigRepositoryProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* @author jmo
77
* @since 2022/1/25
88
*/
9-
public interface ConfigRepositoryProvider<T> extends ConfigRepository {
9+
public interface ConfigRepositoryProvider<T> extends ConfigRepository<T> {
1010

1111
List<T> list();
1212

0 commit comments

Comments
 (0)