View Javadoc

1   /*
2    * The SmartWeb Framework
3    * Copyright (C) 2004-2006
4    *
5    * This library is free software; you can redistribute it and/or
6    * modify it under the terms of the GNU Lesser General Public
7    * License as published by the Free Software Foundation; either
8    * version 2.1 of the License, or (at your option) any later version.
9    *
10   * This library is distributed in the hope that it will be useful,
11   * but WITHOUT ANY WARRANTY; without even the implied warranty of
12   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13   * Lesser General Public License for more details.
14   *
15   * You should have received a copy of the GNU Lesser General Public
16   * License along with this library; if not, write to the Free Software
17   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
18   *
19   * For further informations on the SmartWeb Framework please visit
20   *
21   *                        http://smartweb.sourceforge.net
22   */
23  package net.smartlab.web.config;
24  
25  import java.net.URL;
26  
27  import org.apache.commons.logging.Log;
28  import org.apache.commons.logging.LogFactory;
29  
30  import net.smartlab.config.Configuration;
31  import net.smartlab.config.ConfigurationException;
32  import net.smartlab.config.XMLConfiguration;
33  import net.smartlab.web.Domain;
34  
35  
36  /**
37   * @TODO documentation
38   * @author rlogiacco@smartlab.net
39   *
40   */
41  public class FileDomainConfigurationStrategy implements DomainConfigurationStrategy {
42  
43  	/**
44  	 * @throws ConfigurationException 
45  	 * @see net.smartlab.web.config.FactoryConfigurationStrategy#getConfiguration()
46  	 */
47  	public Configuration getConfiguration(Domain domain) throws ConfigurationException {
48  		String archive = Domain.getLastArchiveName(domain.getClass());
49  		URL file = Domain.getResource(this.getClass(), new String[] {"/META-INF/" + archive + ".xml",
50  				"/META-INF/smartweb.jar.xml"});
51  		return new XMLConfiguration(file);
52  	}
53  
54  	/**
55  	 * @see net.smartlab.web.config.FactoryConfigurationStrategy#getConfiguration(java.lang.String)
56  	 */
57  	public Configuration getConfiguration(Domain domain, String filename) throws ConfigurationException {
58  		Domain.getLastArchiveName(domain.getClass()); // used only for logging search path
59  		URL file = Domain.getResource(this.getClass(), new String[] {"/META-INF/" + filename});
60  		return new XMLConfiguration(file);
61  	}
62  }