/* * Copyright (c) 2008-2017, Hazelcast, Inc. All Rights Reserved. * * 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.hazelcast.spi.discovery.multicast; import com.hazelcast.config.properties.PropertyDefinition; import com.hazelcast.logging.ILogger; import com.hazelcast.spi.discovery.DiscoveryNode; import com.hazelcast.spi.discovery.DiscoveryStrategy; import com.hazelcast.spi.discovery.DiscoveryStrategyFactory; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; /** * Factory class which returns {@link MulticastDiscoveryStrategy} to Discovery SPI */ public class MulticastDiscoveryStrategyFactory implements DiscoveryStrategyFactory { private static final Collection<PropertyDefinition> PROPERTY_DEFINITIONS; static { List<PropertyDefinition> propertyDefinitions = new ArrayList<PropertyDefinition>(); propertyDefinitions.add(MulticastProperties.GROUP); propertyDefinitions.add(MulticastProperties.PORT); PROPERTY_DEFINITIONS = Collections.unmodifiableCollection(propertyDefinitions); } @Override public Class<? extends DiscoveryStrategy> getDiscoveryStrategyType() { return MulticastDiscoveryStrategy.class; } @Override public DiscoveryStrategy newDiscoveryStrategy(DiscoveryNode discoveryNode, ILogger logger, Map<String, Comparable> prop) { return new MulticastDiscoveryStrategy(discoveryNode, logger, prop); } @Override public Collection<PropertyDefinition> getConfigurationProperties() { return PROPERTY_DEFINITIONS; } }