use of com.hazelcast.config.AttributeConfig in project hazelcast by hazelcast.
the class ConfigDataSerializerHook method createFactory.
@Override
public DataSerializableFactory createFactory() {
ConstructorFunction<Integer, IdentifiedDataSerializable>[] constructors = new ConstructorFunction[LEN];
constructors[WAN_REPLICATION_CONFIG] = arg -> new WanReplicationConfig();
constructors[WAN_CONSUMER_CONFIG] = arg -> new WanConsumerConfig();
constructors[WAN_CUSTOM_PUBLISHER_CONFIG] = arg -> new WanCustomPublisherConfig();
constructors[WAN_BATCH_PUBLISHER_CONFIG] = arg -> new WanBatchPublisherConfig();
constructors[NEAR_CACHE_CONFIG] = arg -> new NearCacheConfig();
constructors[NEAR_CACHE_PRELOADER_CONFIG] = arg -> new NearCachePreloaderConfig();
constructors[ADD_DYNAMIC_CONFIG_OP] = arg -> new AddDynamicConfigOperation();
constructors[DYNAMIC_CONFIG_PRE_JOIN_OP] = arg -> new DynamicConfigPreJoinOperation();
constructors[MULTIMAP_CONFIG] = arg -> new MultiMapConfig();
constructors[LISTENER_CONFIG] = arg -> new ListenerConfig();
constructors[ENTRY_LISTENER_CONFIG] = arg -> new EntryListenerConfig();
constructors[MAP_CONFIG] = arg -> new MapConfig();
constructors[MAP_STORE_CONFIG] = arg -> new MapStoreConfig();
constructors[MAP_PARTITION_LOST_LISTENER_CONFIG] = arg -> new MapPartitionLostListenerConfig();
constructors[INDEX_CONFIG] = arg -> new IndexConfig();
constructors[MAP_ATTRIBUTE_CONFIG] = arg -> new AttributeConfig();
constructors[QUERY_CACHE_CONFIG] = arg -> new QueryCacheConfig();
constructors[PREDICATE_CONFIG] = arg -> new PredicateConfig();
constructors[PARTITION_STRATEGY_CONFIG] = arg -> new PartitioningStrategyConfig();
constructors[HOT_RESTART_CONFIG] = arg -> new HotRestartConfig();
constructors[TOPIC_CONFIG] = arg -> new TopicConfig();
constructors[RELIABLE_TOPIC_CONFIG] = arg -> new ReliableTopicConfig();
constructors[ITEM_LISTENER_CONFIG] = arg -> new ItemListenerConfig();
constructors[QUEUE_STORE_CONFIG] = arg -> new QueueStoreConfig();
constructors[QUEUE_CONFIG] = arg -> new QueueConfig();
constructors[LIST_CONFIG] = arg -> new ListConfig();
constructors[SET_CONFIG] = arg -> new SetConfig();
constructors[EXECUTOR_CONFIG] = arg -> new ExecutorConfig();
constructors[DURABLE_EXECUTOR_CONFIG] = arg -> new DurableExecutorConfig();
constructors[SCHEDULED_EXECUTOR_CONFIG] = arg -> new ScheduledExecutorConfig();
constructors[REPLICATED_MAP_CONFIG] = arg -> new ReplicatedMapConfig();
constructors[RINGBUFFER_CONFIG] = arg -> new RingbufferConfig();
constructors[RINGBUFFER_STORE_CONFIG] = arg -> new RingbufferStoreConfig();
constructors[CARDINALITY_ESTIMATOR_CONFIG] = arg -> new CardinalityEstimatorConfig();
constructors[SIMPLE_CACHE_CONFIG] = arg -> new CacheSimpleConfig();
constructors[SIMPLE_CACHE_CONFIG_EXPIRY_POLICY_FACTORY_CONFIG] = arg -> new CacheSimpleConfig.ExpiryPolicyFactoryConfig();
constructors[SIMPLE_CACHE_CONFIG_TIMED_EXPIRY_POLICY_FACTORY_CONFIG] = arg -> new CacheSimpleConfig.ExpiryPolicyFactoryConfig.TimedExpiryPolicyFactoryConfig();
constructors[SIMPLE_CACHE_CONFIG_DURATION_CONFIG] = arg -> new CacheSimpleConfig.ExpiryPolicyFactoryConfig.DurationConfig();
constructors[SPLIT_BRAIN_PROTECTION_CONFIG] = arg -> new SplitBrainProtectionConfig();
constructors[EVENT_JOURNAL_CONFIG] = arg -> new EventJournalConfig();
constructors[SPLIT_BRAIN_PROTECTION_LISTENER_CONFIG] = arg -> new SplitBrainProtectionListenerConfig();
constructors[CACHE_PARTITION_LOST_LISTENER_CONFIG] = arg -> new CachePartitionLostListenerConfig();
constructors[SIMPLE_CACHE_ENTRY_LISTENER_CONFIG] = arg -> new CacheSimpleEntryListenerConfig();
constructors[FLAKE_ID_GENERATOR_CONFIG] = arg -> new FlakeIdGeneratorConfig();
constructors[MERGE_POLICY_CONFIG] = arg -> new MergePolicyConfig();
constructors[PN_COUNTER_CONFIG] = arg -> new PNCounterConfig();
constructors[MERKLE_TREE_CONFIG] = arg -> new MerkleTreeConfig();
constructors[WAN_SYNC_CONFIG] = arg -> new WanSyncConfig();
constructors[KUBERNETES_CONFIG] = arg -> new KubernetesConfig();
constructors[EUREKA_CONFIG] = arg -> new EurekaConfig();
constructors[GCP_CONFIG] = arg -> new GcpConfig();
constructors[AZURE_CONFIG] = arg -> new AzureConfig();
constructors[AWS_CONFIG] = arg -> new AwsConfig();
constructors[DISCOVERY_CONFIG] = arg -> new DiscoveryConfig();
constructors[DISCOVERY_STRATEGY_CONFIG] = arg -> new DiscoveryStrategyConfig();
constructors[WAN_REPLICATION_REF] = arg -> new WanReplicationRef();
constructors[EVICTION_CONFIG] = arg -> new EvictionConfig();
constructors[PERMISSION_CONFIG] = arg -> new PermissionConfig();
constructors[BITMAP_INDEX_OPTIONS] = arg -> new BitmapIndexOptions();
constructors[DATA_PERSISTENCE_CONFIG] = arg -> new DataPersistenceConfig();
constructors[TIERED_STORE_CONFIG] = arg -> new TieredStoreConfig();
constructors[MEMORY_TIER_CONFIG] = arg -> new MemoryTierConfig();
constructors[DISK_TIER_CONFIG] = arg -> new DiskTierConfig();
return new ArrayDataSerializableFactory(constructors);
}
use of com.hazelcast.config.AttributeConfig in project hazelcast by hazelcast.
the class YamlMemberDomConfigProcessor method attributesHandle.
@Override
protected void attributesHandle(Node n, MapConfig mapConfig) {
for (Node extractorNode : childElements(n)) {
String extractor = getTextContent(getNamedItemNode(extractorNode, "extractor-class-name"));
String name = extractorNode.getNodeName();
mapConfig.addAttributeConfig(new AttributeConfig(name, extractor));
}
}
use of com.hazelcast.config.AttributeConfig in project hazelcast by hazelcast.
the class ClientUserCodeDeploymentTest method testCustomAttributeExtractor.
@Test
public void testCustomAttributeExtractor() {
String mapName = randomMapName();
// this attribute does not exist in the domain class
String attributeName = "syntheticAttribute";
ClientConfig clientConfig = new ClientConfig();
ClientUserCodeDeploymentConfig clientUserCodeDeploymentConfig = new ClientUserCodeDeploymentConfig();
clientUserCodeDeploymentConfig.addClass(CapitalizingFirstNameExtractor.class);
clientUserCodeDeploymentConfig.addClass(Person.class);
clientConfig.setUserCodeDeploymentConfig(clientUserCodeDeploymentConfig.setEnabled(true));
Config config = createNodeConfig();
config.getMapConfig(mapName).addAttributeConfig(new AttributeConfig(attributeName, "usercodedeployment.CapitalizingFirstNameExtractor"));
factory.newHazelcastInstance(config);
factory.newHazelcastInstance(config);
HazelcastInstance client = factory.newHazelcastClient(clientConfig);
IMap<Integer, Person> map = client.getMap(mapName);
map.put(0, new Person("ada"));
map.put(1, new Person("non-ada"));
Set<Map.Entry<Integer, Person>> results = map.entrySet(equal(attributeName, "ADA"));
assertEquals(1, results.size());
assertEquals("ada", results.iterator().next().getValue().getName());
}
use of com.hazelcast.config.AttributeConfig in project hazelcast by hazelcast.
the class ReferenceObjects method isEqual.
public static boolean isEqual(Object a, Object b) {
if (a == b) {
return true;
}
if (a == null || b == null) {
return false;
}
if (a.getClass().isArray() && b.getClass().isArray()) {
int length = Array.getLength(a);
if (length > 0 && !a.getClass().getComponentType().equals(b.getClass().getComponentType())) {
return false;
}
if (Array.getLength(b) != length) {
return false;
}
for (int i = 0; i < length; i++) {
Object aElement = Array.get(a, i);
Object bElement = Array.get(b, i);
if (aElement instanceof StackTraceElement && bElement instanceof StackTraceElement) {
if (!isEqualStackTrace((StackTraceElement) aElement, (StackTraceElement) bElement)) {
return false;
}
}
if (!isEqual(aElement, bElement)) {
return false;
}
}
return true;
}
if (a instanceof List && b instanceof List) {
ListIterator e1 = ((List) a).listIterator();
ListIterator e2 = ((List) b).listIterator();
while (e1.hasNext() && e2.hasNext()) {
Object o1 = e1.next();
Object o2 = e2.next();
if (!isEqual(o1, o2)) {
return false;
}
}
return !(e1.hasNext() || e2.hasNext());
}
if (a instanceof Entry && b instanceof Entry) {
final Entry entryA = (Entry) a;
final Entry entryB = (Entry) b;
return isEqual(entryA.getKey(), entryB.getKey()) && isEqual(entryA.getValue(), entryB.getValue());
}
// following classes are list elements and have to be explicitly cast
if (a instanceof ListenerConfigHolder && b instanceof ListenerConfigHolder) {
return isEqual((ListenerConfigHolder) a, (ListenerConfigHolder) b);
}
if (a instanceof IndexConfig && b instanceof IndexConfig) {
return isEqual((IndexConfig) a, (IndexConfig) b);
}
if (a instanceof AttributeConfig && b instanceof AttributeConfig) {
return isEqual((AttributeConfig) a, (AttributeConfig) b);
}
if (a instanceof QueryCacheConfigHolder && b instanceof QueryCacheConfigHolder) {
return isEqual((QueryCacheConfigHolder) a, (QueryCacheConfigHolder) b);
}
if (a instanceof CacheSimpleEntryListenerConfig && b instanceof CacheSimpleEntryListenerConfig) {
return isEqual((CacheSimpleEntryListenerConfig) a, (CacheSimpleEntryListenerConfig) b);
}
return a.equals(b);
}
use of com.hazelcast.config.AttributeConfig in project hazelcast by hazelcast.
the class DynamicConfigBouncingTest method createMapConfig.
private static MapConfig createMapConfig(String mapName) {
NearCacheConfig nearCacheConfig = new NearCacheConfig().setCacheLocalEntries(true).setInMemoryFormat(InMemoryFormat.NATIVE).setLocalUpdatePolicy(NearCacheConfig.LocalUpdatePolicy.CACHE_ON_UPDATE).setPreloaderConfig(new NearCachePreloaderConfig().setEnabled(true));
HotRestartConfig hotRestartConfig = new HotRestartConfig().setEnabled(true).setFsync(true);
EvictionConfig evictionConfig = new EvictionConfig();
evictionConfig.setSize(1000).setMaxSizePolicy(MaxSizePolicy.FREE_HEAP_SIZE).setComparator(new LRUEvictionPolicyComparator());
MapStoreConfig mapStoreConfig = new MapStoreConfig().setEnabled(true).setClassName("foo.bar.MapStoreDoesNotExist");
WanReplicationRef wanRef = new WanReplicationRef("name", "foo.bar.PolicyClass", Collections.<String>emptyList(), true);
EntryListenerConfig classEntryListener = new EntryListenerConfig("foo.bar.ClassName", true, true);
EntryListenerConfig entryListener = new EntryListenerConfig(new MyEntryListener(), true, true);
EntryListenerConfig mapListener = new EntryListenerConfig(new MyEntryUpdatedListener(), true, true);
QueryCacheConfig queryCacheConfig = new QueryCacheConfig("queryCacheName").setBatchSize(100).addIndexConfig(new IndexConfig(IndexType.HASH, "attribute")).addEntryListenerConfig(new EntryListenerConfig("foo.bar.Classname", false, true)).setInMemoryFormat(InMemoryFormat.OBJECT);
return new MapConfig(mapName).setBackupCount(2).setBackupCount(3).setTimeToLiveSeconds(12).setMaxIdleSeconds(20).setNearCacheConfig(nearCacheConfig).setReadBackupData(true).setCacheDeserializedValues(CacheDeserializedValues.ALWAYS).setInMemoryFormat(InMemoryFormat.OBJECT).setHotRestartConfig(hotRestartConfig).setEvictionConfig(evictionConfig).setMapStoreConfig(mapStoreConfig).setWanReplicationRef(wanRef).addEntryListenerConfig(classEntryListener).addEntryListenerConfig(entryListener).addEntryListenerConfig(mapListener).addMapPartitionLostListenerConfig(new MapPartitionLostListenerConfig("foo.bar.Classname")).addIndexConfig(new IndexConfig(IndexType.SORTED, "orderAttribute")).addIndexConfig(new IndexConfig(IndexType.HASH, "unorderedAttribute")).addAttributeConfig(new AttributeConfig("attribute", "foo.bar.ExtractorClass")).addQueryCacheConfig(queryCacheConfig).setStatisticsEnabled(false).setPerEntryStatsEnabled(true).setPartitioningStrategyConfig(new PartitioningStrategyConfig("foo.bar.Class")).setSplitBrainProtectionName("split-brain-protection");
}
Aggregations