Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Sebastian Laskawiec
committed
Nov 25, 2016
1 parent
e5b3eb2
commit 83a1e1a
Showing
3 changed files
with
131 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||
<modelVersion>4.0.0</modelVersion> | ||
<artifactId>infinispan-simple-tutorials-spring-boot</artifactId> | ||
<parent> | ||
<relativePath>../pom.xml</relativePath> | ||
<version>1.0.0-SNAPSHOT</version> | ||
<groupId>org.infinispan.tutorial.simple</groupId> | ||
<artifactId>infinispan-simple-tutorials</artifactId> | ||
</parent> | ||
|
||
<name>Infinispan Simple Tutorials: Spring Boot</name> | ||
|
||
<properties> | ||
<spring-boot.version>1.4.0.RELEASE</spring-boot.version> | ||
<infinispan.starters.version>1.0.0</infinispan.starters.version> | ||
</properties> | ||
|
||
<dependencyManagement> | ||
<dependencies> | ||
<dependency> | ||
<groupId>org.springframework.boot</groupId> | ||
<artifactId>spring-boot-starter-parent</artifactId> | ||
<version>${spring-boot.version}</version> | ||
<type>pom</type> | ||
<scope>import</scope> | ||
</dependency> | ||
</dependencies> | ||
</dependencyManagement> | ||
|
||
<dependencies> | ||
<dependency> | ||
<groupId>org.infinispan</groupId> | ||
<artifactId>infinispan-embedded</artifactId> | ||
</dependency> | ||
<dependency> | ||
<groupId>org.infinispan</groupId> | ||
<artifactId>infinispan-spring4-embedded</artifactId> | ||
</dependency> | ||
<dependency> | ||
<groupId>org.infinispan</groupId> | ||
<artifactId>spring-boot-starter-infinispan</artifactId> | ||
<version>${infinispan.starters.version}</version> | ||
</dependency> | ||
<dependency> | ||
<groupId>org.springframework.boot</groupId> | ||
<artifactId>spring-boot-starter</artifactId> | ||
</dependency> | ||
</dependencies> | ||
|
||
<build> | ||
<plugins> | ||
<plugin> | ||
<groupId>org.springframework.boot</groupId> | ||
<artifactId>spring-boot-maven-plugin</artifactId> | ||
<version>${spring-boot.version}</version> | ||
</plugin> | ||
</plugins> | ||
</build> | ||
</project> |
69 changes: 69 additions & 0 deletions
69
spring-boot/src/main/java/org/infinispan/tutorial/simple/spring/SpringBootApp.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
package org.infinispan.tutorial.simple.spring; | ||
|
||
import java.lang.invoke.MethodHandles; | ||
|
||
import org.infinispan.Cache; | ||
import org.infinispan.configuration.cache.CacheMode; | ||
import org.infinispan.configuration.cache.Configuration; | ||
import org.infinispan.configuration.cache.ConfigurationBuilder; | ||
import org.infinispan.configuration.global.GlobalConfigurationBuilder; | ||
import org.infinispan.manager.EmbeddedCacheManager; | ||
import org.slf4j.Logger; | ||
import org.slf4j.LoggerFactory; | ||
import org.springframework.boot.SpringApplication; | ||
import org.springframework.boot.autoconfigure.SpringBootApplication; | ||
import org.springframework.context.ApplicationContext; | ||
import org.springframework.context.annotation.Bean; | ||
|
||
import infinispan.autoconfigure.InfinispanCacheConfigurer; | ||
import infinispan.autoconfigure.InfinispanGlobalConfigurer; | ||
|
||
/** | ||
* This example shows how to configure Spring Boot and Infinispan | ||
* | ||
* <p>It is recommended to use <code>-Djava.net.preferIPv4Stack=true</code> for running multiple instances</p> | ||
*/ | ||
@SpringBootApplication | ||
public class SpringBootApp { | ||
|
||
private static final String CACHE_NAME = "test"; | ||
private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); | ||
|
||
/** | ||
* This bean is optional but it shows how to inject {@link org.infinispan.configuration.global.GlobalConfiguration}. | ||
*/ | ||
@Bean | ||
public InfinispanGlobalConfigurer globalConfiguration() { | ||
logger.info("Defining Global Configuration"); | ||
return () -> GlobalConfigurationBuilder | ||
.defaultClusteredBuilder() | ||
.globalJmxStatistics().allowDuplicateDomains(true) | ||
.build(); | ||
} | ||
|
||
/** | ||
* Here we inject {@link Configuration}. | ||
*/ | ||
@Bean | ||
public InfinispanCacheConfigurer cacheConfigurer() { | ||
logger.info("Defining {} configuration", CACHE_NAME); | ||
return manager -> { | ||
Configuration ispnConfig = new ConfigurationBuilder() | ||
.clustering().cacheMode(CacheMode.DIST_SYNC) | ||
.build(); | ||
|
||
manager.defineConfiguration(CACHE_NAME, ispnConfig); | ||
}; | ||
} | ||
|
||
public static void main(String[] args) { | ||
ApplicationContext ctx = SpringApplication.run(SpringBootApp.class, args); | ||
|
||
EmbeddedCacheManager cacheManager = ctx.getBean(EmbeddedCacheManager.class); | ||
Cache<Long, String> cache = cacheManager.getCache(CACHE_NAME); | ||
cache.put(System.currentTimeMillis(), "Infinispan"); | ||
|
||
logger.info("Values from Cache: {}", cache.entrySet()); | ||
} | ||
|
||
} |