Skip to content

Commit 83ed16c

Browse files
committed
feat(config):add test case
1 parent ec5ac70 commit 83ed16c

6 files changed

Lines changed: 44 additions & 14 deletions

File tree

common/src/main/java/org/tron/common/parameter/CommonParameter.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -618,6 +618,10 @@ public class CommonParameter {
618618
@Setter
619619
public boolean dynamicConfigEnable;
620620

621+
@Getter
622+
@Setter
623+
public long dynamicConfigCheckInterval;
624+
621625
private static double calcMaxTimeRatio() {
622626
//return max(2.0, min(5.0, 5 * 4.0 / max(Runtime.getRuntime().availableProcessors(), 1)));
623627
return 5.0;

common/src/main/java/org/tron/core/Constant.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -344,5 +344,6 @@ public class Constant {
344344

345345
public static final String BLOCK_CACHE_TIMEOUT = "node.blockCacheTimeout";
346346

347-
public static final String DYNAMIC_CONFIG_ENABLE = "dynamicConfigEnable";
347+
public static final String DYNAMIC_CONFIG_ENABLE = "node.dynamicConfig.enable";
348+
public static final String DYNAMIC_CONFIG_CHECK_INTERVAL = "node.dynamicConfig.checkInterval";
348349
}

framework/src/main/java/org/tron/core/config/args/Args.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,7 @@ public static void clearParam() {
223223
PARAMETER.memoFee = 0;
224224
PARAMETER.p2pDisable = false;
225225
PARAMETER.dynamicConfigEnable = false;
226+
PARAMETER.dynamicConfigCheckInterval = 600;
226227
}
227228

228229
/**
@@ -1126,6 +1127,15 @@ public static void setParam(final String[] args, final String confFileName) {
11261127

11271128
PARAMETER.dynamicConfigEnable = config.hasPath(Constant.DYNAMIC_CONFIG_ENABLE)
11281129
&& config.getBoolean(Constant.DYNAMIC_CONFIG_ENABLE);
1130+
if (config.hasPath(Constant.DYNAMIC_CONFIG_CHECK_INTERVAL)) {
1131+
PARAMETER.dynamicConfigCheckInterval
1132+
= config.getLong(Constant.DYNAMIC_CONFIG_CHECK_INTERVAL);
1133+
if (PARAMETER.dynamicConfigCheckInterval <= 0) {
1134+
PARAMETER.dynamicConfigCheckInterval = 600;
1135+
}
1136+
} else {
1137+
PARAMETER.dynamicConfigCheckInterval = 600;
1138+
}
11291139

11301140
logConfig();
11311141
}

framework/src/main/java/org/tron/core/config/args/DynamicArgs.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,19 +31,19 @@ public class DynamicArgs {
3131
public void init() {
3232
if (parameter.isDynamicConfigEnable()) {
3333
File config = getConfigFile();
34-
if (config != null) {
35-
lastModified = config.lastModified();
36-
} else {
34+
if (config == null) {
3735
return;
3836
}
37+
lastModified = config.lastModified();
3938
logger.info("Start the dynamic loading configuration service");
39+
long checkInterval = parameter.getDynamicConfigCheckInterval();
4040
reloadExecutor.scheduleWithFixedDelay(() -> {
4141
try {
4242
run();
4343
} catch (Exception e) {
4444
logger.error("Exception caught when reloading configuration", e);
4545
}
46-
}, 100, 10, TimeUnit.SECONDS);
46+
}, 10, checkInterval, TimeUnit.SECONDS);
4747
}
4848
}
4949

@@ -108,7 +108,7 @@ private void updateTrustNodes(Config config) {
108108
}
109109

110110
public void close() {
111-
logger.info("Closing the dynamic loading configuration service ...");
111+
logger.info("Closing the dynamic loading configuration service");
112112
reloadExecutor.shutdown();
113113
}
114114
}

framework/src/test/java/org/tron/core/config/args/DynamicArgsTest.java

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
import org.tron.common.utils.ReflectUtils;
1212
import org.tron.core.Constant;
1313
import org.tron.core.config.DefaultConfig;
14-
//import org.tron.core.net.TronNetService;
15-
//import org.tron.p2p.P2pConfig;
14+
import org.tron.core.net.TronNetService;
15+
import org.tron.p2p.P2pConfig;
1616

1717
public class DynamicArgsTest {
1818
protected TronApplicationContext context;
@@ -39,18 +39,31 @@ public void destroy() {
3939
public void get() {
4040
CommonParameter parameter = Args.getInstance();
4141
Assert.assertFalse(parameter.isDynamicConfigEnable());
42-
42+
Assert.assertEquals(600, parameter.getDynamicConfigCheckInterval());
4343
}
4444

4545
@Test
4646
public void start() {
4747
dynamicArgs.init();
4848
Assert.assertEquals(0, (long) ReflectUtils.getFieldObject(dynamicArgs, "lastModified"));
4949

50-
dynamicArgs.run();
51-
// TronNetService tronNetService = context.getBean(TronNetService.class);
52-
// ReflectUtils.setFieldValue(tronNetService, "p2pConfig", new P2pConfig());
53-
// dynamicArgs.reload();
50+
TronNetService tronNetService = context.getBean(TronNetService.class);
51+
ReflectUtils.setFieldValue(tronNetService, "p2pConfig", new P2pConfig());
52+
File config = new File(Constant.TESTNET_CONF);
53+
if (!config.exists()) {
54+
try {
55+
config.createNewFile();
56+
} catch (Exception e) {
57+
return;
58+
}
59+
dynamicArgs.run();
60+
try {
61+
config.delete();
62+
} catch (Exception e) {
63+
return;
64+
}
65+
}
66+
5467
dynamicArgs.close();
5568
}
5669
}

framework/src/test/resources/config-test.conf

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,4 +286,6 @@ vm = {
286286
}
287287
committee = {
288288
allowCreationOfContracts = 1 //mainnet:0 (reset by committee),test:1
289-
}
289+
}
290+
291+
node.dynamicConfig.checkInterval = 0

0 commit comments

Comments
 (0)