1 17 package org.apache.forrest.conf; 18 19 import java.io.IOException ; 20 import java.io.InputStream ; 21 import java.util.Map ; 22 import java.util.Properties ; 23 24 import org.apache.avalon.framework.configuration.Configurable; 25 import org.apache.avalon.framework.configuration.Configuration; 26 import org.apache.avalon.framework.configuration.ConfigurationException; 27 import org.apache.avalon.framework.service.ServiceException; 28 import org.apache.avalon.framework.service.ServiceManager; 29 import org.apache.avalon.framework.service.Serviceable; 30 import org.apache.avalon.framework.thread.ThreadSafe; 31 import org.apache.cocoon.components.modules.input.AbstractJXPathModule; 32 import org.apache.cocoon.components.modules.input.InputModule; 33 import org.apache.excalibur.source.Source; 34 import org.apache.excalibur.source.SourceResolver; 35 36 48 public class AntPropertiesModule extends AbstractJXPathModule 49 implements InputModule, Serviceable, Configurable, ThreadSafe { 50 51 private SourceResolver m_resolver; 52 private Properties m_properties; 53 54 public void service(ServiceManager manager) throws ServiceException { 55 m_resolver = (SourceResolver) manager.lookup(SourceResolver.ROLE); 56 } 57 58 64 public void configure(Configuration configuration) throws ConfigurationException { 65 super.configure(configuration); 66 String file = configuration.getChild("file").getAttribute("src"); 67 load(file); 68 } 69 70 protected void load(String file) throws ConfigurationException { 71 Source source = null; 72 InputStream in = null; 73 try { 74 source = m_resolver.resolveURI(file); 75 76 in = source.getInputStream(); 77 78 m_properties = new AntProperties(); 79 m_properties.load(in); 80 81 } 82 catch (IOException e) { 83 throw new ConfigurationException("Cannot load properties file " + file); 84 } 85 finally { 86 if (source != null) { 87 m_resolver.release(source); 88 } 89 if (in != null) { 90 try { 91 in.close(); 92 } 93 catch (IOException e) { 94 } 95 } 96 } 97 } 98 99 protected Object getContextObject(Configuration modeConf, Map objectModel) 100 throws ConfigurationException { 101 102 return m_properties; 103 } 104 105 } 106 | Popular Tags |