1   package com.atlassian.user.impl.hibernate.configuration;
2   
3   import com.atlassian.cache.CacheFactory;
4   import com.atlassian.user.configuration.Configuration;
5   import com.atlassian.user.configuration.ConfigurationException;
6   import com.atlassian.user.configuration.RepositoryAccessor;
7   import com.atlassian.user.configuration.RepositoryConfiguration;
8   import com.atlassian.user.configuration.xml.XMLConfiguration;
9   import com.opensymphony.module.propertyset.hibernate.DefaultHibernateConfigurationProvider;
10  import com.opensymphony.module.propertyset.hibernate.HibernateConfigurationProvider;
11  
12  import java.io.InputStream;
13  
14  /**
15   * Testing configuration for creating a Hibernate repository.
16   */
17  public class HibernateXMLConfiguration extends XMLConfiguration
18  {
19      private final CacheFactory cacheFactory;
20  
21      public HibernateXMLConfiguration(InputStream is, CacheFactory cacheFactory) throws ConfigurationException
22      {
23          super(is);
24          this.cacheFactory = cacheFactory;
25      }
26  
27      protected RepositoryAccessor configureRepository(RepositoryConfiguration config) throws ConfigurationException
28      {
29          config.addComponent(Configuration.CACHEFACTORY, cacheFactory);
30  
31          HibernateConfigurationProvider provider = new DefaultHibernateConfigurationProvider();
32          config.addComponent(Configuration.HIBERNATE_CONFIGURATION_PROVIDER, provider);
33          return super.configureRepository(config);
34      }
35  }