Java源码示例:com.alibaba.csp.sentinel.datasource.apollo.ApolloDataSource

示例1
private static void loadRules() {
    // Set up basic information, only for demo purpose. You may adjust them based on your actual environment.
    // For more information, please refer https://github.com/ctripcorp/apollo
    String appId = "sentinel-demo";
    String apolloMetaServerAddress = "http://localhost:8080";
    System.setProperty("app.id", appId);
    System.setProperty("apollo.meta", apolloMetaServerAddress);

    String namespaceName = "application";
    String flowRuleKey = "flowRules";
    // It's better to provide a meaningful default value.
    String defaultFlowRules = "[]";

    ReadableDataSource<String, List<FlowRule>> flowRuleDataSource = new ApolloDataSource<>(namespaceName,
        flowRuleKey, defaultFlowRules, source -> JSON.parseObject(source, new TypeReference<List<FlowRule>>() {
    }));
    FlowRuleManager.register2Property(flowRuleDataSource.getProperty());
}
 
示例2
private static void loadRules() {
    // Set up basic information, only for demo purpose. You may adjust them based on your actual environment.
    // For more information, please refer https://github.com/ctripcorp/apollo
    String appId = "sentinel-demo";
    String apolloMetaServerAddress = "http://localhost:8080";
    System.setProperty("app.id", appId);
    System.setProperty("apollo.meta", apolloMetaServerAddress);

    String namespaceName = "application";
    String flowRuleKey = "flowRules";
    // It's better to provide a meaningful default value.
    String defaultFlowRules = "[]";

    ReadableDataSource<String, List<FlowRule>> flowRuleDataSource = new ApolloDataSource<>(namespaceName,
        flowRuleKey, defaultFlowRules, source -> JSON.parseObject(source, new TypeReference<List<FlowRule>>() {
    }));
    FlowRuleManager.register2Property(flowRuleDataSource.getProperty());
}
 
示例3
@Test
public void testApolloFactoryBean() throws Exception {
	ApolloDataSourceFactoryBean factoryBean = spy(new ApolloDataSourceFactoryBean());

	Converter converter = mock(JsonConverter.class);

	factoryBean.setDefaultFlowRuleValue(defaultFlowValue);
	factoryBean.setFlowRulesKey(flowRuleKey);
	factoryBean.setNamespaceName(namespace);
	factoryBean.setConverter(converter);

	ApolloDataSource apolloDataSource = mock(ApolloDataSource.class);

	when(apolloDataSource.readSource()).thenReturn("{}");
	doReturn(apolloDataSource).when(factoryBean).getObject();

	assertThat(factoryBean.getObject()).isEqualTo(apolloDataSource);
	assertThat(factoryBean.getObject().readSource()).isEqualTo("{}");
	assertThat(factoryBean.getConverter()).isEqualTo(converter);
	assertThat(factoryBean.getFlowRulesKey()).isEqualTo(flowRuleKey);
	assertThat(factoryBean.getNamespaceName()).isEqualTo(namespace);
	assertThat(factoryBean.getDefaultFlowRuleValue()).isEqualTo(defaultFlowValue);
}
 
示例4
@Override
public ApolloDataSource getObject() throws Exception {
	return new ApolloDataSource(namespaceName, flowRulesKey, defaultFlowRuleValue,
			converter);
}
 
示例5
@Override
public Class<?> getObjectType() {
	return ApolloDataSource.class;
}