// Path: bucket4j-spring-boot-starter/src/main/java/com/giffing/bucket4j/spring/boot/starter/config/cache/hazelcast/HazelcastBucket4jCacheConfiguration.java
// @Configuration
// @ConditionalOnClass({ HazelcastInstance.class })
// @ConditionalOnBean(HazelcastInstance.class)
// public class HazelcastBucket4jCacheConfiguration {
// 	
// 	private HazelcastInstance hazelcastInstance;
// 	
// 	public HazelcastBucket4jCacheConfiguration(HazelcastInstance hazelcastInstance) {
// 		this.hazelcastInstance = hazelcastInstance;
// 	}
// 	
// 	@Bean
// 	public AsyncCacheResolver hazelcastCacheResolver() {
// 		return new HazelcastCacheResolver(hazelcastInstance);
// 	}
// }
// 
// Path: bucket4j-spring-boot-starter/src/main/java/com/giffing/bucket4j/spring/boot/starter/config/cache/jcache/InfinispanJCacheBucket4jConfiguration.java
// @Configuration
// @ConditionalOnClass({ CacheContainer.class, Caching.class, JCacheCacheManager.class })
// @ConditionalOnBean(CacheContainer.class)
// public class InfinispanJCacheBucket4jConfiguration {
// 
// 	private CacheContainer cacheContainer;
// 	
// 	public InfinispanJCacheBucket4jConfiguration(CacheContainer cacheContainer) {
// 		this.cacheContainer = cacheContainer;
// 	}
// 	
// 	@Bean
// 	public SyncCacheResolver bucket4jCacheResolver() {
// 		return new InfinispanJCacheCacheResolver(cacheContainer);
// 	}
// 	
// }
// 
// Path: bucket4j-spring-boot-starter/src/main/java/com/giffing/bucket4j/spring/boot/starter/config/cache/jcache/JCacheBucket4jConfiguration.java
// @Configuration
// @ConditionalOnClass({ Caching.class, JCacheCacheManager.class })
// @ConditionalOnBean(CacheManager.class)
// public class JCacheBucket4jConfiguration {
// 	private CacheManager cacheManager;
// 	
// 	public JCacheBucket4jConfiguration(CacheManager cacheManager){
// 		this.cacheManager = cacheManager;
// 	}
// 
// 	@Bean
// 	public SyncCacheResolver bucket4jCacheResolver() {
// 		return new JCacheCacheResolver(cacheManager);
// 	}
// 	
// }


import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import com.giffing.bucket4j.spring.boot.starter.config.cache.hazelcast.HazelcastBucket4jCacheConfiguration;
import com.giffing.bucket4j.spring.boot.starter.config.cache.jcache.InfinispanJCacheBucket4jConfiguration;
import com.giffing.bucket4j.spring.boot.starter.config.cache.jcache.JCacheBucket4jConfiguration;

package com.giffing.bucket4j.spring.boot.starter.config.cache;





@Configuration
@AutoConfigureAfter(CacheAutoConfiguration.class)
@Import(value = {JCacheBucket4jConfiguration.class, InfinispanJCacheBucket4jConfiguration.class, HazelcastBucket4jCacheConfiguration.class})

// Path: bucket4j-spring-boot-starter/src/main/java/com/giffing/bucket4j/spring/boot/starter/config/cache/hazelcast/HazelcastBucket4jCacheConfiguration.java
// @Configuration
// @ConditionalOnClass({ HazelcastInstance.class })
// @ConditionalOnBean(HazelcastInstance.class)
// public class HazelcastBucket4jCacheConfiguration {
// 	
// 	private HazelcastInstance hazelcastInstance;
// 	
// 	public HazelcastBucket4jCacheConfiguration(HazelcastInstance hazelcastInstance) {
// 		this.hazelcastInstance = hazelcastInstance;
// 	}
// 	
// 	@Bean
// 	public AsyncCacheResolver hazelcastCacheResolver() {
// 		return new HazelcastCacheResolver(hazelcastInstance);
// 	}
// }
// 
// Path: bucket4j-spring-boot-starter/src/main/java/com/giffing/bucket4j/spring/boot/starter/config/cache/jcache/InfinispanJCacheBucket4jConfiguration.java
// @Configuration
// @ConditionalOnClass({ CacheContainer.class, Caching.class, JCacheCacheManager.class })
// @ConditionalOnBean(CacheContainer.class)
// public class InfinispanJCacheBucket4jConfiguration {
// 
// 	private CacheContainer cacheContainer;
// 	
// 	public InfinispanJCacheBucket4jConfiguration(CacheContainer cacheContainer) {
// 		this.cacheContainer = cacheContainer;
// 	}
// 	
// 	@Bean
// 	public SyncCacheResolver bucket4jCacheResolver() {
// 		return new InfinispanJCacheCacheResolver(cacheContainer);
// 	}
// 	
// }
// 
// Path: bucket4j-spring-boot-starter/src/main/java/com/giffing/bucket4j/spring/boot/starter/config/cache/jcache/JCacheBucket4jConfiguration.java
// @Configuration
// @ConditionalOnClass({ Caching.class, JCacheCacheManager.class })
// @ConditionalOnBean(CacheManager.class)
// public class JCacheBucket4jConfiguration {
// 	private CacheManager cacheManager;
// 	
// 	public JCacheBucket4jConfiguration(CacheManager cacheManager){
// 		this.cacheManager = cacheManager;
// 	}
// 
// 	@Bean
// 	public SyncCacheResolver bucket4jCacheResolver() {
// 		return new JCacheCacheResolver(cacheManager);
// 	}
// 	
// }


// Path: bucket4j-spring-boot-starter/src/main/java/com/giffing/bucket4j/spring/boot/starter/config/cache/Bucket4jCacheConfiguration.java
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import com.giffing.bucket4j.spring.boot.starter.config.cache.hazelcast.HazelcastBucket4jCacheConfiguration;
import com.giffing.bucket4j.spring.boot.starter.config.cache.jcache.InfinispanJCacheBucket4jConfiguration;
import com.giffing.bucket4j.spring.boot.starter.config.cache.jcache.JCacheBucket4jConfiguration;

package com.giffing.bucket4j.spring.boot.starter.config.cache;





@Configuration
@AutoConfigureAfter(CacheAutoConfiguration.class)
@Import(value = {JCacheBucket4jConfiguration.class, InfinispanJCacheBucket4jConfiguration.class, HazelcastBucket4jCacheConfiguration.class})

public class Bucket4jCacheConfiguration {
