[Yanel-commits] rev 52165 -
public/yanel/trunk/src/core/java/org/wyona/yanel/core
michi at wyona.com
michi at wyona.com
Thu Aug 5 01:17:38 CEST 2010
Author: michi
Date: 2010-08-05 01:17:37 +0200 (Thu, 05 Aug 2010)
New Revision: 52165
Modified:
public/yanel/trunk/src/core/java/org/wyona/yanel/core/ResourceTypeRegistry.java
Log:
depending on class loader the returned valued might be a directory
Modified: public/yanel/trunk/src/core/java/org/wyona/yanel/core/ResourceTypeRegistry.java
===================================================================
--- public/yanel/trunk/src/core/java/org/wyona/yanel/core/ResourceTypeRegistry.java 2010-08-04 22:36:01 UTC (rev 52164)
+++ public/yanel/trunk/src/core/java/org/wyona/yanel/core/ResourceTypeRegistry.java 2010-08-04 23:17:37 UTC (rev 52165)
@@ -154,17 +154,23 @@
Configuration resourceTypes[] = config.getChildren("resource-type");
for (int i = 0; i < resourceTypes.length; i++) {
+ log.warn("DEBUG: Register resource type...");
try {
String packageName = resourceTypes[i].getAttribute("package"); // INFO: This method will throw an exception if no 'package' attribute exists, and hence further down it will try to read the 'src' attribute...
+ log.warn("DEBUG: Package: " + packageName);
log.info("Package: " + packageName);
// TODO: Config itself, e.g. org/wyona/yanel/impl/resources/redirect/my-resource.xml
URL packageURL = ResourceTypeRegistry.class.getClassLoader().getResource(packageName.replace('.','/'));
- log.info("Package: " + packageURL.getFile());
- File jarFile = new File(packageURL.getPath().substring(5, packageURL.getPath().indexOf("!")));
- log.debug("Jar file: " + jarFile);
- if (jarFile.isFile()) {
+ log.warn("DEBUG: Package: " + packageURL.getFile());
+ //log.info("Package: " + packageURL.getFile());
+ File jarFile = null;
+ if (packageURL.getPath().indexOf("!") > 0) {
+ jarFile = new File(packageURL.getPath().substring(5, packageURL.getPath().indexOf("!")));
+ }
+ if (jarFile != null && jarFile.isFile()) {
+ log.debug("Jar file: " + jarFile);
java.util.zip.ZipFile zipFile = new java.util.zip.ZipFile(jarFile);
java.util.Enumeration entries = zipFile.entries();
while (entries.hasMoreElements()) {
@@ -186,17 +192,30 @@
}
}
}
+ } else if (new File(packageURL.getPath()).isDirectory()) {
+ log.warn("TODO: ...");
+ try {
+ ResourceTypeDefinition rtd = new ResourceTypeDefinition(new java.io.FileInputStream(new File(packageURL.getPath(), "resource.xml")));
+ log.debug("Universal Name: " + rtd.getResourceTypeUniversalName());
+ log.debug("Classname: " + rtd.getResourceTypeClassname());
+ hm.put(rtd.getResourceTypeUniversalName(), rtd);
+ } catch (Exception exception) {
+ log.error("Exception re registring resource with package '" + packageName + "'!");
+ log.error(exception, exception);
+ }
} else {
- log.error("No such file: " + jarFile);
+ log.error("No such file or directory: " + packageURL.getPath());
}
} catch (Exception e) {
- //log.error(e.getMessage()); // INFO: Do not show this error message, because it is not really an error in most cases
+ log.error(e.getMessage()); // INFO: Do not show this error message, because it is not really an error in most cases
+ log.warn("DEBUG: No package attribute, hence try src attribute...");
log.info("No package attribute, hence try src attribute...");
- File resConfigFile = new File(resourceTypes[i].getAttribute("src"));
- log.info("Source: " + resConfigFile);
- if (!resConfigFile.isAbsolute()) {
- resConfigFile = FileUtil.file(resourceTypeConfigFile.getParentFile().getAbsolutePath(), resourceTypes[i].getAttribute("src"));
- }
+ try {
+ File resConfigFile = new File(resourceTypes[i].getAttribute("src"));
+ log.info("Source: " + resConfigFile);
+ if (!resConfigFile.isAbsolute()) {
+ resConfigFile = FileUtil.file(resourceTypeConfigFile.getParentFile().getAbsolutePath(), resourceTypes[i].getAttribute("src"));
+ }
if (resConfigFile.isDirectory()) {
File resDir = resConfigFile;
@@ -222,6 +241,9 @@
} else {
log.error("No such file or directory: " + resConfigFile);
}
+ } catch (Exception exception) {
+ log.error(exception, exception);
+ }
}
}
} catch (Exception e) {
More information about the Yanel-commits
mailing list