1 package com.sslexplorer.boot; 2 3 4 /** 5 * An abstract collection of {@link com.sslexplorer.boot.RepositoryStore} objects. 6 * <p> 7 * The concept of a <i>Repository</i> has been introduced to SSL-Explorer to 8 * deal with the fact that at some point we will want to introduce load 9 * balancing and fail-over facilities to the server. 10 * <p> 11 * Some key artifacts outside of the {@link com.sslexplorer.core.Database} 12 * implementations should also be shared amongst all instances that may 13 * be running on a network of SSL-Explorer servers. These include 14 * {@link com.sslexplorer.boot.KeyStoreManager} instances, 15 * {@link com.sslexplorer.extensions.store.ExtensionStore} instances and 16 * others. 17 * <p> 18 * Each repository implementation should be able to handle multiple stores. 19 * Each of these named stores then may contain multiple named <i>Entries</i>. 20 * Each entry is simply of blob of data that may be written to and read from 21 * using I/O streams. 22 * 23 * @author Lee David Painter <a HREF="mailto: lee@3sp.com"><lee@3sp.com></a> 24 * @see com.sslexplorer.boot.RepositoryFactory 25 * @see com.sslexplorer.boot.LocalRepository 26 * @see com.sslexplorer.boot.RepositoryStore 27 */ 28 public interface Repository { 29 30 /** 31 * Get a store instance given its name. If the store does not exists then the 32 * implementation should create it. The same instance should be returned 33 * for every subsequent call. 34 * 35 * @param storeName store name 36 * @return store instance 37 */ 38 public RepositoryStore getStore(String storeName); 39 40 } 41