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 }