Skip to content

Commit

Permalink
step-10/declarative-configuration
Browse files Browse the repository at this point in the history
Use the XML configuration instead of the programmatic API
  • Loading branch information
tristantarrant committed Jun 22, 2020
1 parent 97ae36a commit dd3c994
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 17 deletions.
24 changes: 7 additions & 17 deletions src/main/java/org/infinispan/tutorial/embedded/WeatherApp.java
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
package org.infinispan.tutorial.embedded;

import java.io.IOException;
import java.util.Map;
import java.util.Map.Entry;
import java.util.concurrent.TimeUnit;

import org.infinispan.Cache;
import org.infinispan.configuration.cache.CacheMode;
import org.infinispan.configuration.cache.ConfigurationBuilder;
import org.infinispan.configuration.global.GlobalConfigurationBuilder;
import org.infinispan.manager.DefaultCacheManager;
import org.infinispan.manager.EmbeddedCacheManager;
import org.infinispan.stream.CacheCollectors;

import java.util.Map;
import java.util.Map.Entry;
import java.util.concurrent.TimeUnit;

import static java.util.stream.Collectors.averagingDouble;
import static java.util.stream.Collectors.groupingBy;

Expand All @@ -25,18 +23,10 @@ public class WeatherApp {
private Cache<String, LocationWeather> cache;
private final ClusterListener listener;

public WeatherApp() throws InterruptedException {
GlobalConfigurationBuilder global = GlobalConfigurationBuilder.defaultClusteredBuilder();
global.transport().clusterName("WeatherApp").serialization().addContextInitializer(new SerializationContextInitializerImpl());
cacheManager = new DefaultCacheManager(global.build());
public WeatherApp() throws InterruptedException, IOException {
cacheManager = new DefaultCacheManager(WeatherApp.class.getResourceAsStream("/weatherapp-infinispan.xml"));
listener = new ClusterListener(2);
cacheManager.addListener(listener);
ConfigurationBuilder config = new ConfigurationBuilder();
config
.expiration().lifespan(5, TimeUnit.SECONDS)
.clustering().cacheMode(CacheMode.DIST_SYNC)
.hash().groups().enabled().addGrouper(new LocationWeather.LocationGrouper());
cacheManager.defineConfiguration("weather", config.build());
cache = cacheManager.getCache("weather");
cache.addListener(new CacheListener());
weatherService = initWeatherService(cache);
Expand Down
20 changes: 20 additions & 0 deletions src/main/resources/weatherapp-infinispan.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<infinispan
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:infinispan:config:10.1 http://www.infinispan.org/schemas/infinispan-config-10.1.xsd"
xmlns="urn:infinispan:config:10.1">

<cache-container default-cache="weather">
<transport cluster="WeatherApp"/>
<serialization>
<context-initializer class="org.infinispan.tutorial.embedded.SerializationContextInitializerImpl" />
</serialization>

<distributed-cache name="weather">
<expiration lifespan="5000"/>
<groups enabled="true">
<grouper class="org.infinispan.tutorial.embedded.LocationWeather$LocationGrouper"/>
</groups>
</distributed-cache>
</cache-container>
</infinispan>

0 comments on commit dd3c994

Please sign in to comment.