@Override public Map<String, String> getMetadata() { Map<String, String> meta = metaData != null ? new HashMap<>(metaData) : new HashMap<>(); ObjectHelper.ifNotEmpty(super.getId(), val -> meta.put("id", val)); ObjectHelper.ifNotEmpty(super.getZone(), val -> meta.put("zone", val)); ObjectHelper.ifNotEmpty(super.isAlive(), val -> meta.put("is_alive", Boolean.toString(val))); ObjectHelper.ifNotEmpty(super.isReadyToServe(), val -> meta.put("ready_to_server", Boolean.toString(val))); return Collections.unmodifiableMap(meta); } }
@Bean(name = "atomix-cluster-client-service") @Scope(ConfigurableBeanFactory.SCOPE_SINGLETON) @ConditionalOnProperty(prefix = "camel.component.atomix.cluster.service", name = "mode", havingValue = "client") public CamelClusterService atomixClusterClientService() { AtomixClusterClientService service = new AtomixClusterClientService(); service.setNodes(configuration.getNodes().stream().map(Address::new).collect(Collectors.toList())); ObjectHelper.ifNotEmpty(configuration.getId(), service::setId); ObjectHelper.ifNotEmpty(configuration.getConfigurationUri(), service::setConfigurationUri); ObjectHelper.ifNotEmpty(configuration.getAttributes(), service::setAttributes); ObjectHelper.ifNotEmpty(configuration.getOrder(), service::setOrder); return service; }
@Bean(name = "atomix-cluster-service") @Scope(ConfigurableBeanFactory.SCOPE_SINGLETON) @ConditionalOnProperty(prefix = "camel.component.atomix.cluster.service", name = "mode", havingValue = "node") public CamelClusterService atomixClusterService() { AtomixClusterService service = new AtomixClusterService(); service.setNodes(configuration.getNodes().stream().map(Address::new).collect(Collectors.toList())); ObjectHelper.ifNotEmpty(configuration.isEphemeral(), service::setEphemeral); ObjectHelper.ifNotEmpty(configuration.getId(), service::setId); ObjectHelper.ifNotEmpty(configuration.getAddress(), service::setAddress); ObjectHelper.ifNotEmpty(configuration.getStoragePath(), service::setStoragePath); ObjectHelper.ifNotEmpty(configuration.getStorageLevel(), service::setStorageLevel); ObjectHelper.ifNotEmpty(configuration.getConfigurationUri(), service::setConfigurationUri); ObjectHelper.ifNotEmpty(configuration.getAttributes(), service::setAttributes); ObjectHelper.ifNotEmpty(configuration.getOrder(), service::setOrder); return service; }
protected QueryOptions buildQueryOptions(Message message, ConsulConfiguration conf) { ImmutableQueryOptions.Builder builder = ImmutableQueryOptions.builder(); ObjectHelper.ifNotEmpty( message.getHeader(ConsulConstants.CONSUL_INDEX, BigInteger.class), builder::index); ObjectHelper.ifNotEmpty( message.getHeader(ConsulConstants.CONSUL_WAIT, String.class), builder::wait); ObjectHelper.ifNotEmpty( message.getHeader(ConsulConstants.CONSUL_DATACENTER, conf.getDatacenter(), String.class), builder::datacenter); ObjectHelper.ifNotEmpty( message.getHeader(ConsulConstants.CONSUL_NEAR_NODE, conf.getNearNode(), String.class), builder::near); ObjectHelper.ifNotEmpty( conf.getAclToken(), builder::token); ObjectHelper.ifNotEmpty( message.getHeader(ConsulConstants.CONSUL_CONSISTENCY_MODE, conf.getConsistencyMode(), ConsistencyMode.class), builder::consistencyMode); ObjectHelper.ifNotEmpty( message.getHeader(ConsulConstants.CONSUL_NODE_META, conf.getNodeMeta(), List.class), builder::nodeMeta); return builder.build(); }
@Lazy @Bean(name = ServiceCallDefinitionConstants.DEFAULT_SERVICE_CALL_CONFIG_ID) @ConditionalOnMissingBean(name = ServiceCallDefinitionConstants.DEFAULT_SERVICE_CALL_CONFIG_ID) public ServiceCallConfigurationDefinition serviceCallConfiguration() throws Exception { final ServiceCallConfigurationDefinition definition = new ServiceCallConfigurationDefinition(); final CamelCloudConfigurationProperties.ServiceCall serviceCall = configurationProperties.getServiceCall(); ObjectHelper.ifNotEmpty(serviceCall.getComponent(), definition::setComponent); ObjectHelper.ifNotEmpty(serviceCall.getUri(), definition::setUri); ObjectHelper.ifNotEmpty(serviceCall.getServiceDiscovery(), definition::setServiceDiscoveryRef); ObjectHelper.ifNotEmpty(serviceCall.getServiceFilter(), definition::setServiceFilterRef); ObjectHelper.ifNotEmpty(serviceCall.getServiceChooser(), definition::setServiceChooserRef); ObjectHelper.ifNotEmpty(serviceCall.getLoadBalancer(), definition::setLoadBalancerRef); if (serviceCall.getLoadBalancer() == null && serviceCall.isDefaultLoadBalancer()) { definition.defaultLoadBalancer(); } final String expression = serviceCall.getExpression(); final String expressionLanguage = serviceCall.getExpressionLanguage(); if (ObjectHelper.isNotEmpty(expression) && ObjectHelper.isNotEmpty(expressionLanguage)) { Language language = camelContext.resolveLanguage(expressionLanguage); if (language == null) { throw new IllegalArgumentException("Unable to resolve language: " + expressionLanguage); } definition.setExpression(language.createExpression(expression)); } return definition; }
private ServiceDefinition newService(String serviceName, CatalogService service, List<ServiceHealth> serviceHealthList) { Map<String, String> meta = new HashMap<>(); ObjectHelper.ifNotEmpty(service.getServiceId(), val -> meta.put(ServiceDefinition.SERVICE_META_ID, val)); ObjectHelper.ifNotEmpty(service.getServiceName(), val -> meta.put(ServiceDefinition.SERVICE_META_NAME, val)); ObjectHelper.ifNotEmpty(service.getNode(), val -> meta.put("service.node", val));
public ConsulServiceDiscovery(ConsulConfiguration configuration) throws Exception { this.client = Suppliers.memorize( () -> configuration.createConsulClient(getCamelContext()), e -> ObjectHelper.wrapRuntimeCamelException(e) ); ImmutableQueryOptions.Builder builder = ImmutableQueryOptions.builder(); ObjectHelper.ifNotEmpty(configuration.getDatacenter(), builder::datacenter); ObjectHelper.ifNotEmpty(configuration.getTags(), builder::tag); queryOptions = builder.build(); }
@Override public List<ServiceDefinition> getServices(String name) { if (serviceDiscovery == null) { return Collections.emptyList(); } try { return serviceDiscovery.queryForInstances(name).stream() .map(si -> { Map<String, String> meta = new HashMap<>(); ObjectHelper.ifNotEmpty(si.getPayload(), meta::putAll); meta.putIfAbsent(ServiceDefinition.SERVICE_META_NAME, si.getName()); meta.putIfAbsent(ServiceDefinition.SERVICE_META_ID, si.getId()); return new DefaultServiceDefinition( si.getName(), si.getAddress(), si.getSslPort() != null ? si.getSslPort() : si.getPort(), meta); }) .collect(Collectors.toList()); } catch (Exception e) { throw new RuntimeCamelException(e); } }
ObjectHelper.ifNotEmpty(configuration.getStorageLevel(), storageBuilder::withStorageLevel); ObjectHelper.ifNotEmpty(configuration.getStoragePath(), storageBuilder::withDirectory);