// Path: headlands/src/main/java/com/airhacks/headlands/cache/entity/CacheConfiguration.java
// @XmlRootElement
// @XmlAccessorType(XmlAccessType.FIELD)
// public class CacheConfiguration {
// 
//     private boolean storeByValue;
//     private boolean managementEnabled;
//     private boolean statisticsEnabled;
//     private boolean readThrough;
//     private boolean writeThrough;
//     private long expiryForAccess;
//     private long expiryForCreation;
//     private long expiryForUpdate;
// 
//     public CacheConfiguration() {
//         this.storeByValue = false;
//         this.managementEnabled = true;
//         this.statisticsEnabled = true;
//         this.readThrough = true;
//         this.writeThrough = true;
//         this.expiryForAccess = Duration.ofMinutes(5).toMillis();
//     }
// 
//     public CacheConfiguration(long expiryForAccess, long expiryForCreation,
//             long expiryForUpdate, boolean storeByValue,
//             boolean managementEnabled, boolean statisticsEnabled,
//             boolean readThrough, boolean writeThrough) {
//         this.expiryForAccess = expiryForAccess;
//         this.expiryForCreation = expiryForCreation;
//         this.expiryForUpdate = expiryForUpdate;
//         this.storeByValue = storeByValue;
//         this.managementEnabled = managementEnabled;
//         this.statisticsEnabled = statisticsEnabled;
//         this.readThrough = readThrough;
//         this.writeThrough = writeThrough;
//     }
// 
//     public boolean isStoreByValue() {
//         return storeByValue;
//     }
// 
//     public boolean isManagementEnabled() {
//         return managementEnabled;
//     }
// 
//     public boolean isStatisticsEnabled() {
//         return statisticsEnabled;
//     }
// 
//     public boolean isReadThrough() {
//         return readThrough;
//     }
// 
//     public boolean isWriteThrough() {
//         return writeThrough;
//     }
// 
//     public long getExpiryForAccess() {
//         return expiryForAccess;
//     }
// 
//     public long getExpiryForCreation() {
//         return expiryForCreation;
//     }
// 
//     public long getExpiryForUpdate() {
//         return expiryForUpdate;
//     }
// 
//     public long getExpiryForAccessInSeconds() {
//         return Duration.of(this.expiryForAccess, ChronoUnit.MILLIS).
//                 getSeconds();
//     }
// 
// }


import com.airhacks.headlands.cache.entity.CacheConfiguration;
import java.util.concurrent.TimeUnit;
import javax.cache.Cache;
import javax.cache.configuration.CompleteConfiguration;
import javax.cache.configuration.Factory;
import javax.cache.expiry.Duration;
import javax.cache.expiry.ExpiryPolicy;
import javax.inject.Inject;
package com.airhacks.headlands.cache.control;


/**
 *
 * @author airhacks.com
 */
public class ConfigurationProvider {

    @Inject
    Initializer initializer;

// Path: headlands/src/main/java/com/airhacks/headlands/cache/entity/CacheConfiguration.java
// @XmlRootElement
// @XmlAccessorType(XmlAccessType.FIELD)
// public class CacheConfiguration {
// 
//     private boolean storeByValue;
//     private boolean managementEnabled;
//     private boolean statisticsEnabled;
//     private boolean readThrough;
//     private boolean writeThrough;
//     private long expiryForAccess;
//     private long expiryForCreation;
//     private long expiryForUpdate;
// 
//     public CacheConfiguration() {
//         this.storeByValue = false;
//         this.managementEnabled = true;
//         this.statisticsEnabled = true;
//         this.readThrough = true;
//         this.writeThrough = true;
//         this.expiryForAccess = Duration.ofMinutes(5).toMillis();
//     }
// 
//     public CacheConfiguration(long expiryForAccess, long expiryForCreation,
//             long expiryForUpdate, boolean storeByValue,
//             boolean managementEnabled, boolean statisticsEnabled,
//             boolean readThrough, boolean writeThrough) {
//         this.expiryForAccess = expiryForAccess;
//         this.expiryForCreation = expiryForCreation;
//         this.expiryForUpdate = expiryForUpdate;
//         this.storeByValue = storeByValue;
//         this.managementEnabled = managementEnabled;
//         this.statisticsEnabled = statisticsEnabled;
//         this.readThrough = readThrough;
//         this.writeThrough = writeThrough;
//     }
// 
//     public boolean isStoreByValue() {
//         return storeByValue;
//     }
// 
//     public boolean isManagementEnabled() {
//         return managementEnabled;
//     }
// 
//     public boolean isStatisticsEnabled() {
//         return statisticsEnabled;
//     }
// 
//     public boolean isReadThrough() {
//         return readThrough;
//     }
// 
//     public boolean isWriteThrough() {
//         return writeThrough;
//     }
// 
//     public long getExpiryForAccess() {
//         return expiryForAccess;
//     }
// 
//     public long getExpiryForCreation() {
//         return expiryForCreation;
//     }
// 
//     public long getExpiryForUpdate() {
//         return expiryForUpdate;
//     }
// 
//     public long getExpiryForAccessInSeconds() {
//         return Duration.of(this.expiryForAccess, ChronoUnit.MILLIS).
//                 getSeconds();
//     }
// 
// }


// Path: headlands/src/main/java/com/airhacks/headlands/cache/control/ConfigurationProvider.java
import com.airhacks.headlands.cache.entity.CacheConfiguration;
import java.util.concurrent.TimeUnit;
import javax.cache.Cache;
import javax.cache.configuration.CompleteConfiguration;
import javax.cache.configuration.Factory;
import javax.cache.expiry.Duration;
import javax.cache.expiry.ExpiryPolicy;
import javax.inject.Inject;

package com.airhacks.headlands.cache.control;


/**
 *
 * @author airhacks.com
 */
public class ConfigurationProvider {

    @Inject
    Initializer initializer;

    public CacheConfiguration getConfiguration(String cacheName) {