1 package org.sapia.regis.local; 2 3 import java.io.InputStream ; 4 import java.util.HashMap ; 5 import java.util.Map ; 6 import java.util.Properties ; 7 8 import org.sapia.regis.RWNode; 9 import org.sapia.regis.Registry; 10 import org.sapia.regis.RegistryFactory; 11 import org.sapia.regis.impl.NodeImpl; 12 import org.sapia.regis.loader.RegistryConfigLoader; 13 import org.sapia.regis.util.PropertiesContext; 14 import org.sapia.regis.util.Utils; 15 import org.sapia.util.text.SystemContext; 16 17 44 public class LocalRegistryFactory implements RegistryFactory{ 45 46 public static final String BOOTSTRAP = "org.sapia.regis.local.bootstrap"; 47 48 52 public Registry connect(Properties props) throws Exception { 53 RWNode root = new NodeImpl(); 54 55 props = Utils.replaceVars(new PropertiesContext(props, new SystemContext()), props); 56 String bootstrap = props.getProperty(BOOTSTRAP); 57 58 if(bootstrap != null){ 59 String [] resources = bootstrap.split(","); 60 for(int i = 0; i < resources.length; i++){ 61 RegistryConfigLoader loader = new RegistryConfigLoader(root); 62 InputStream is = Utils.load(LocalRegistryFactory.class, resources[i].trim()); 63 try{ 64 Map vars = new HashMap (); 65 Utils.copyPropsToMap(vars, props); 66 loader.load(is, vars); 67 }finally{ 68 is.close(); 69 } 70 } 71 } 72 return new LocalRegistry(root); 73 } 74 } 75 | Popular Tags |