All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.springframework.cache.ehcache.EhCacheManagerUtils Maven / Gradle / Ivy

/*
 * Copyright 2002-2014 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.springframework.cache.ehcache;

import java.io.IOException;
import java.io.InputStream;

import net.sf.ehcache.CacheException;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.config.Configuration;
import net.sf.ehcache.config.ConfigurationFactory;

import org.springframework.core.io.Resource;

/**
 * Convenient builder methods for EhCache 2.5+ {@link CacheManager} setup,
 * providing easy programmatic bootstrapping from a Spring-provided resource.
 * This is primarily intended for use within {@code @Bean} methods in a
 * Spring configuration class.
 *
 * 

These methods are a simple alternative to custom {@link CacheManager} setup * code. For any advanced purposes, consider using {@link #parseConfiguration}, * customizing the configuration object, and then calling the * {@link CacheManager#CacheManager(Configuration)} constructor. * * @author Juergen Hoeller * @since 4.1 */ public abstract class EhCacheManagerUtils { /** * Build an EhCache {@link CacheManager} from the default configuration. *

The CacheManager will be configured from "ehcache.xml" in the root of the class path * (that is, default EhCache initialization - as defined in the EhCache docs - will apply). * If no configuration file can be found, a fail-safe fallback configuration will be used. * @return the new EhCache CacheManager * @throws CacheException in case of configuration parsing failure */ public static CacheManager buildCacheManager() throws CacheException { return new CacheManager(ConfigurationFactory.parseConfiguration()); } /** * Build an EhCache {@link CacheManager} from the default configuration. *

The CacheManager will be configured from "ehcache.xml" in the root of the class path * (that is, default EhCache initialization - as defined in the EhCache docs - will apply). * If no configuration file can be found, a fail-safe fallback configuration will be used. * @param name the desired name of the cache manager * @return the new EhCache CacheManager * @throws CacheException in case of configuration parsing failure */ public static CacheManager buildCacheManager(String name) throws CacheException { Configuration configuration = ConfigurationFactory.parseConfiguration(); configuration.setName(name); return new CacheManager(configuration); } /** * Build an EhCache {@link CacheManager} from the given configuration resource. * @param configLocation the location of the configuration file (as a Spring resource) * @return the new EhCache CacheManager * @throws CacheException in case of configuration parsing failure */ public static CacheManager buildCacheManager(Resource configLocation) throws CacheException { return new CacheManager(parseConfiguration(configLocation)); } /** * Build an EhCache {@link CacheManager} from the given configuration resource. * @param name the desired name of the cache manager * @param configLocation the location of the configuration file (as a Spring resource) * @return the new EhCache CacheManager * @throws CacheException in case of configuration parsing failure */ public static CacheManager buildCacheManager(String name, Resource configLocation) throws CacheException { Configuration configuration = parseConfiguration(configLocation); configuration.setName(name); return new CacheManager(configuration); } /** * Parse EhCache configuration from the given resource, for further use with * custom {@link CacheManager} creation. * @param configLocation the location of the configuration file (as a Spring resource) * @return the EhCache Configuration handle * @throws CacheException in case of configuration parsing failure * @see CacheManager#CacheManager(Configuration) * @see CacheManager#create(Configuration) */ public static Configuration parseConfiguration(Resource configLocation) throws CacheException { InputStream is = null; try { is = configLocation.getInputStream(); return ConfigurationFactory.parseConfiguration(is); } catch (IOException ex) { throw new CacheException("Failed to parse EhCache configuration resource", ex); } finally { if (is != null) { try { is.close(); } catch (IOException ex) { // ignore } } } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy