@Test public void parseServiceConfiguration() throws Exception { CacheConfiguration<?, ?> cacheConfiguration = new XmlConfiguration(getClass().getResource("/configs/ehcache-cacheEventListener.xml")).getCacheConfigurations().get("bar"); DefaultCacheEventListenerConfiguration listenerConfig = findSingletonAmongst(DefaultCacheEventListenerConfiguration.class, cacheConfiguration.getServiceConfigurations()); assertThat(listenerConfig).isNotNull(); assertThat(listenerConfig.getClazz()).isEqualTo(TestCacheEventListener.class); assertThat(listenerConfig.firingMode()).isEqualTo(SYNCHRONOUS); assertThat(listenerConfig.orderingMode()).isEqualTo(UNORDERED); assertThat(listenerConfig.fireOn()).containsExactlyInAnyOrder(EventType.values()); }
return listener.withClazz(serviceConfig.getClazz().getName()) .withEventFiringMode(EventFiringType.fromValue(serviceConfig.firingMode().name())) .withEventOrderingMode(EventOrderingType.fromValue(serviceConfig.orderingMode().name())) .withEventsToFireOn(serviceConfig.fireOn() .stream()
@Override public CacheType unparseServiceConfiguration(CacheConfiguration<?, ?> cacheConfiguration, CacheType cacheType) { Collection<DefaultCacheEventListenerConfiguration> serviceConfigs = findAmongst(DefaultCacheEventListenerConfiguration.class, cacheConfiguration.getServiceConfigurations()); if (!serviceConfigs.isEmpty()) { ListenersType listenersType = cacheType.getListeners(); if (listenersType == null) { listenersType = new ListenersType(); cacheType.setListeners(listenersType); } Set<ListenersType.Listener> listeners = serviceConfigs.stream().map(serviceConfig -> { ListenersType.Listener listener = new ListenersType.Listener(); checkNoConcreteInstance(serviceConfig); return listener.withClazz(serviceConfig.getClazz().getName()) .withEventFiringMode(EventFiringType.fromValue(serviceConfig.firingMode().name())) .withEventOrderingMode(EventOrderingType.fromValue(serviceConfig.orderingMode().name())) .withEventsToFireOn(serviceConfig.fireOn() .stream() .map(eventType -> EventType.fromValue(eventType.name())) .collect(toSet())); }).collect(toSet()); cacheType.withListeners(listenersType.withListener(listeners)); } return cacheType; } }