Search in sources :

Example 1 with ApolloClientProperties

use of com.ctrip.framework.apollo.config.data.extension.properties.ApolloClientProperties in project apollo by ctripcorp.

the class ApolloClientExtensionInitializeFactory method initializeExtension.

/**
 * initialize extension
 *
 * @param binder      properties binder
 * @param bindHandler properties bind handler
 */
public void initializeExtension(Binder binder, BindHandler bindHandler) {
    ApolloClientProperties apolloClientProperties = this.apolloClientPropertiesFactory.createApolloClientProperties(binder, bindHandler);
    if (apolloClientProperties == null || apolloClientProperties.getExtension() == null) {
        this.log.info("apollo client extension is not configured, default to disabled");
        return;
    }
    ApolloClientExtensionProperties extension = apolloClientProperties.getExtension();
    if (!extension.getEnabled()) {
        this.log.info("apollo client extension disabled");
        return;
    }
    ApolloClientMessagingType messagingType = extension.getMessagingType();
    log.debug(Slf4jLogMessageFormatter.format("apollo client extension messaging type: {}", messagingType));
    switch(messagingType) {
        case LONG_POLLING:
            this.apolloClientLongPollingExtensionInitializer.initialize(apolloClientProperties, binder, bindHandler);
            return;
        case WEBSOCKET:
            this.apolloClientWebsocketExtensionInitializer.initialize(apolloClientProperties, binder, bindHandler);
            return;
        default:
            throw new IllegalStateException("Unexpected value: " + messagingType);
    }
}
Also used : ApolloClientProperties(com.ctrip.framework.apollo.config.data.extension.properties.ApolloClientProperties) ApolloClientExtensionProperties(com.ctrip.framework.apollo.config.data.extension.properties.ApolloClientExtensionProperties) ApolloClientMessagingType(com.ctrip.framework.apollo.config.data.extension.enums.ApolloClientMessagingType)

Example 2 with ApolloClientProperties

use of com.ctrip.framework.apollo.config.data.extension.properties.ApolloClientProperties in project apollo by ctripcorp.

the class ApolloClientPropertiesFactoryTest method testCreateApolloClientProperties.

@Test
public void testCreateApolloClientProperties() throws IOException {
    Map<String, String> map = new LinkedHashMap<>();
    map.put("apollo.client.extension.enabled", "true");
    map.put("apollo.client.extension.messaging-type", "long_polling");
    MapConfigurationPropertySource propertySource = new MapConfigurationPropertySource(map);
    Binder binder = new Binder(propertySource);
    ApolloClientPropertiesFactory factory = new ApolloClientPropertiesFactory();
    ApolloClientProperties apolloClientProperties = factory.createApolloClientProperties(binder, null);
    Assert.assertEquals(apolloClientProperties.getExtension().getEnabled(), true);
    Assert.assertEquals(apolloClientProperties.getExtension().getMessagingType(), ApolloClientMessagingType.LONG_POLLING);
}
Also used : Binder(org.springframework.boot.context.properties.bind.Binder) ApolloClientProperties(com.ctrip.framework.apollo.config.data.extension.properties.ApolloClientProperties) MapConfigurationPropertySource(org.springframework.boot.context.properties.source.MapConfigurationPropertySource) LinkedHashMap(java.util.LinkedHashMap) Test(org.junit.Test)

Aggregations

ApolloClientProperties (com.ctrip.framework.apollo.config.data.extension.properties.ApolloClientProperties)2 ApolloClientMessagingType (com.ctrip.framework.apollo.config.data.extension.enums.ApolloClientMessagingType)1 ApolloClientExtensionProperties (com.ctrip.framework.apollo.config.data.extension.properties.ApolloClientExtensionProperties)1 LinkedHashMap (java.util.LinkedHashMap)1 Test (org.junit.Test)1 Binder (org.springframework.boot.context.properties.bind.Binder)1 MapConfigurationPropertySource (org.springframework.boot.context.properties.source.MapConfigurationPropertySource)1