1 package net.javacoding.jspider.core.storage; 2 3 4 import net.javacoding.jspider.core.logging.LogFactory; 5 import net.javacoding.jspider.core.logging.Log; 6 import net.javacoding.jspider.core.storage.memory.InMemoryStorageProvider; 7 import net.javacoding.jspider.core.storage.impl.StorageImpl; 8 import net.javacoding.jspider.core.util.config.*; 9 10 11 17 public class StorageFactory { 18 19 public Storage createStorage() { 20 21 22 PropertySet props = ConfigurationFactory.getConfiguration().getJSpiderConfiguration(); 23 24 Log log = LogFactory.getLog(StorageFactory.class); 25 26 PropertySet storageProps = new MappedPropertySet ( ConfigConstants.CONFIG_STORAGE, props ); 27 Class providerClass = storageProps.getClass(ConfigConstants.CONFIG_STORAGE_PROVIDER, InMemoryStorageProvider.class); 28 log.info("Storage provider class is '" + providerClass + "'"); 29 30 try { 31 StorageProvider provider = (StorageProvider) providerClass.newInstance(); 32 PropertySet storageConfigProps = new MappedPropertySet(ConfigConstants.CONFIG_STORAGE_CONFIG, storageProps); 33 return new StorageImpl( provider, storageConfigProps ); 34 } catch (InstantiationException e) { 35 log.error("InstantiationException on Storage", e); 36 return null; 37 } catch (IllegalAccessException e) { 38 log.error("IllegalAccessException on Storage", e); 39 return null; 40 } 41 } 42 } 43 | Popular Tags |