package org.atricore.idbus.bundles.apache.tiles;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.tiles.Definition;
import org.apache.tiles.definition.DefinitionsFactoryException;
import org.apache.tiles.definition.dao.ResolvingLocaleUrlDefinitionDAO;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
/**
* @author <a href=mailto:sgonzalez@atricore.org>Sebastian Gonzalez Oyuela</a>
*/
public class OsgiDefinitionDAO extends ResolvingLocaleUrlDefinitionDAO {
private static final Log log = LogFactory.getLog(OsgiDefinitionDAO.class);
/**
* Loads definitions from an URL without loading from "parent" URLs.
*
* @param url The URL to read.
* @return The definition map that has been read.
*/
@Override
protected Map<String, Definition> loadDefinitionsFromURL(URL url) {
Map<String, Definition> defsMap = null;
try {
URLConnection connection = url.openConnection();
connection.connect();
lastModifiedDates.put(url.toExternalForm(), connection
.getLastModified());
// Definition must be collected, starting from the base
// source up to the last localized file.
defsMap = reader.read(connection.getInputStream());
} catch (IOException e) {
// File not found. continue.
if (log.isDebugEnabled()) {
log.debug("File " + null + " not found, continue [" + e.getMessage() + "]");
}
}
return defsMap;
}
}