* Add @JsonIgnore annotationmaster
@@ -17,7 +17,7 @@ package com.alibaba.csp.sentinel.dashboard.datasource.entity.rule; | |||||
import com.alibaba.csp.sentinel.slots.block.authority.AuthorityRule; | import com.alibaba.csp.sentinel.slots.block.authority.AuthorityRule; | ||||
import com.alibaba.csp.sentinel.util.AssertUtil; | import com.alibaba.csp.sentinel.util.AssertUtil; | ||||
import com.alibaba.fastjson.annotation.JSONField; | |||||
import com.fasterxml.jackson.annotation.JsonIgnore; | import com.fasterxml.jackson.annotation.JsonIgnore; | ||||
/** | /** | ||||
@@ -26,7 +26,8 @@ import com.fasterxml.jackson.annotation.JsonIgnore; | |||||
*/ | */ | ||||
public class AuthorityRuleEntity extends AbstractRuleEntity<AuthorityRule> { | public class AuthorityRuleEntity extends AbstractRuleEntity<AuthorityRule> { | ||||
public AuthorityRuleEntity() {} | |||||
public AuthorityRuleEntity() { | |||||
} | |||||
public AuthorityRuleEntity(AuthorityRule authorityRule) { | public AuthorityRuleEntity(AuthorityRule authorityRule) { | ||||
AssertUtil.notNull(authorityRule, "Authority rule should not be null"); | AssertUtil.notNull(authorityRule, "Authority rule should not be null"); | ||||
@@ -42,16 +43,19 @@ public class AuthorityRuleEntity extends AbstractRuleEntity<AuthorityRule> { | |||||
} | } | ||||
@JsonIgnore | @JsonIgnore | ||||
@JSONField(serialize = false) | |||||
public String getLimitApp() { | public String getLimitApp() { | ||||
return rule.getLimitApp(); | return rule.getLimitApp(); | ||||
} | } | ||||
@JsonIgnore | @JsonIgnore | ||||
@JSONField(serialize = false) | |||||
public String getResource() { | public String getResource() { | ||||
return rule.getResource(); | return rule.getResource(); | ||||
} | } | ||||
@JsonIgnore | @JsonIgnore | ||||
@JSONField(serialize = false) | |||||
public int getStrategy() { | public int getStrategy() { | ||||
return rule.getStrategy(); | return rule.getStrategy(); | ||||
} | } | ||||
@@ -15,22 +15,23 @@ | |||||
*/ | */ | ||||
package com.alibaba.csp.sentinel.dashboard.datasource.entity.rule; | package com.alibaba.csp.sentinel.dashboard.datasource.entity.rule; | ||||
import java.util.List; | |||||
import com.alibaba.csp.sentinel.slots.block.flow.param.ParamFlowClusterConfig; | import com.alibaba.csp.sentinel.slots.block.flow.param.ParamFlowClusterConfig; | ||||
import com.alibaba.csp.sentinel.slots.block.flow.param.ParamFlowItem; | import com.alibaba.csp.sentinel.slots.block.flow.param.ParamFlowItem; | ||||
import com.alibaba.csp.sentinel.slots.block.flow.param.ParamFlowRule; | import com.alibaba.csp.sentinel.slots.block.flow.param.ParamFlowRule; | ||||
import com.alibaba.csp.sentinel.util.AssertUtil; | import com.alibaba.csp.sentinel.util.AssertUtil; | ||||
import com.alibaba.fastjson.annotation.JSONField; | |||||
import com.fasterxml.jackson.annotation.JsonIgnore; | import com.fasterxml.jackson.annotation.JsonIgnore; | ||||
import java.util.List; | |||||
/** | /** | ||||
* @author Eric Zhao | * @author Eric Zhao | ||||
* @since 0.2.1 | * @since 0.2.1 | ||||
*/ | */ | ||||
public class ParamFlowRuleEntity extends AbstractRuleEntity<ParamFlowRule> { | public class ParamFlowRuleEntity extends AbstractRuleEntity<ParamFlowRule> { | ||||
public ParamFlowRuleEntity() {} | |||||
public ParamFlowRuleEntity() { | |||||
} | |||||
public ParamFlowRuleEntity(ParamFlowRule rule) { | public ParamFlowRuleEntity(ParamFlowRule rule) { | ||||
AssertUtil.notNull(rule, "Authority rule should not be null"); | AssertUtil.notNull(rule, "Authority rule should not be null"); | ||||
@@ -46,61 +47,73 @@ public class ParamFlowRuleEntity extends AbstractRuleEntity<ParamFlowRule> { | |||||
} | } | ||||
@JsonIgnore | @JsonIgnore | ||||
@JSONField(serialize = false) | |||||
public String getLimitApp() { | public String getLimitApp() { | ||||
return rule.getLimitApp(); | return rule.getLimitApp(); | ||||
} | } | ||||
@JsonIgnore | @JsonIgnore | ||||
@JSONField(serialize = false) | |||||
public String getResource() { | public String getResource() { | ||||
return rule.getResource(); | return rule.getResource(); | ||||
} | } | ||||
@JsonIgnore | @JsonIgnore | ||||
@JSONField(serialize = false) | |||||
public int getGrade() { | public int getGrade() { | ||||
return rule.getGrade(); | return rule.getGrade(); | ||||
} | } | ||||
@JsonIgnore | @JsonIgnore | ||||
@JSONField(serialize = false) | |||||
public Integer getParamIdx() { | public Integer getParamIdx() { | ||||
return rule.getParamIdx(); | return rule.getParamIdx(); | ||||
} | } | ||||
@JsonIgnore | @JsonIgnore | ||||
@JSONField(serialize = false) | |||||
public double getCount() { | public double getCount() { | ||||
return rule.getCount(); | return rule.getCount(); | ||||
} | } | ||||
@JsonIgnore | @JsonIgnore | ||||
@JSONField(serialize = false) | |||||
public List<ParamFlowItem> getParamFlowItemList() { | public List<ParamFlowItem> getParamFlowItemList() { | ||||
return rule.getParamFlowItemList(); | return rule.getParamFlowItemList(); | ||||
} | } | ||||
@JsonIgnore | @JsonIgnore | ||||
@JSONField(serialize = false) | |||||
public int getControlBehavior() { | public int getControlBehavior() { | ||||
return rule.getControlBehavior(); | return rule.getControlBehavior(); | ||||
} | } | ||||
@JsonIgnore | @JsonIgnore | ||||
@JSONField(serialize = false) | |||||
public int getMaxQueueingTimeMs() { | public int getMaxQueueingTimeMs() { | ||||
return rule.getMaxQueueingTimeMs(); | return rule.getMaxQueueingTimeMs(); | ||||
} | } | ||||
@JsonIgnore | @JsonIgnore | ||||
@JSONField(serialize = false) | |||||
public int getBurstCount() { | public int getBurstCount() { | ||||
return rule.getBurstCount(); | return rule.getBurstCount(); | ||||
} | } | ||||
@JsonIgnore | @JsonIgnore | ||||
@JSONField(serialize = false) | |||||
public long getDurationInSec() { | public long getDurationInSec() { | ||||
return rule.getDurationInSec(); | return rule.getDurationInSec(); | ||||
} | } | ||||
@JsonIgnore | @JsonIgnore | ||||
@JSONField(serialize = false) | |||||
public boolean isClusterMode() { | public boolean isClusterMode() { | ||||
return rule.isClusterMode(); | return rule.isClusterMode(); | ||||
} | } | ||||
@JsonIgnore | @JsonIgnore | ||||
@JSONField(serialize = false) | |||||
public ParamFlowClusterConfig getClusterConfig() { | public ParamFlowClusterConfig getClusterConfig() { | ||||
return rule.getClusterConfig(); | return rule.getClusterConfig(); | ||||
} | } | ||||
@@ -0,0 +1,60 @@ | |||||
/* | |||||
* Copyright 1999-2018 Alibaba Group Holding Ltd. | |||||
* | |||||
* Licensed under the Apache License, Version 2.0 (the "License"); | |||||
* you may not use this file except in compliance with the License. | |||||
* You may obtain a copy of the License at | |||||
* | |||||
* http://www.apache.org/licenses/LICENSE-2.0 | |||||
* | |||||
* Unless required by applicable law or agreed to in writing, software | |||||
* distributed under the License is distributed on an "AS IS" BASIS, | |||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||||
* See the License for the specific language governing permissions and | |||||
* limitations under the License. | |||||
*/ | |||||
package com.alibaba.csp.sentinel.dashboard.datasource.entity; | |||||
import com.alibaba.csp.sentinel.dashboard.datasource.entity.rule.AuthorityRuleEntity; | |||||
import com.alibaba.csp.sentinel.dashboard.datasource.entity.rule.ParamFlowRuleEntity; | |||||
import com.alibaba.csp.sentinel.slots.block.authority.AuthorityRule; | |||||
import com.alibaba.csp.sentinel.slots.block.flow.param.ParamFlowClusterConfig; | |||||
import com.alibaba.csp.sentinel.slots.block.flow.param.ParamFlowRule; | |||||
import com.alibaba.fastjson.JSON; | |||||
import org.junit.Assert; | |||||
import org.junit.Test; | |||||
/** | |||||
* @author lianglin | |||||
* @since 1.7.0 | |||||
*/ | |||||
public class JsonSerializeTest { | |||||
@Test | |||||
public void authorityRuleJsonSerializeTest() { | |||||
AuthorityRuleEntity emptyRule = new AuthorityRuleEntity(); | |||||
Assert.assertTrue("{}".equals(JSON.toJSONString(emptyRule))); | |||||
AuthorityRuleEntity authorityRule = new AuthorityRuleEntity(); | |||||
AuthorityRule rule = new AuthorityRule(); | |||||
rule.setStrategy(0).setLimitApp("default").setResource("rs"); | |||||
authorityRule.setRule(rule); | |||||
Assert.assertTrue("{\"rule\":{\"limitApp\":\"default\",\"resource\":\"rs\",\"strategy\":0}}".equals(JSON.toJSONString(authorityRule))); | |||||
} | |||||
@Test | |||||
public void paramFlowRuleSerializeTest() { | |||||
ParamFlowRuleEntity emptyRule = new ParamFlowRuleEntity(); | |||||
Assert.assertTrue("{}".equals(JSON.toJSONString(emptyRule))); | |||||
ParamFlowRuleEntity paramFlowRule = new ParamFlowRuleEntity(); | |||||
ParamFlowRule rule = new ParamFlowRule(); | |||||
rule.setClusterConfig(new ParamFlowClusterConfig()); | |||||
rule.setResource("rs").setLimitApp("default"); | |||||
paramFlowRule.setRule(rule); | |||||
Assert.assertTrue("{\"rule\":{\"burstCount\":0,\"clusterConfig\":{\"fallbackToLocalWhenFail\":false,\"sampleCount\":10,\"thresholdType\":0,\"windowIntervalMs\":1000},\"clusterMode\":false,\"controlBehavior\":0,\"count\":0.0,\"durationInSec\":1,\"grade\":1,\"limitApp\":\"default\",\"maxQueueingTimeMs\":0,\"paramFlowItemList\":[],\"resource\":\"rs\"}}" | |||||
.equals(JSON.toJSONString(paramFlowRule))); | |||||
} | |||||
} |