Author: nbelaevski
Date: 2009-01-12 18:10:59 -0500 (Mon, 12 Jan 2009)
New Revision: 12240
Modified:
trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/generator/ResourcesConfigParser.java
Log:
https://jira.jboss.org/jira/browse/RF-5626
Modified:
trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/generator/ResourcesConfigParser.java
===================================================================
---
trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/generator/ResourcesConfigParser.java 2009-01-12
23:10:16 UTC (rev 12239)
+++
trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/generator/ResourcesConfigParser.java 2009-01-12
23:10:59 UTC (rev 12240)
@@ -131,6 +131,39 @@
}
}
+ private String getResourceKey(String packageName, Object resource) {
+ try {
+ Class<? extends Object> resourceClass = resource.getClass();
+ Method method = resourceClass.getMethod("getKey");
+ String resourceKey = (String) method.invoke(resource);
+
+ if (resourceKey != null && !resourceKey.equals(resourceClass.getName())) {
+ ClassLoader loader = config.getClassLoader();
+
+ if (loader.getResource(resourceKey) == null) {
+ String packagePath = packageName.replace('.', '/');
+ if (packagePath.length() != 0) {
+ packagePath += "/";
+ }
+
+ if (loader.getResource(packagePath + resourceKey) == null) {
+ resourceKey = null;
+ }
+ } else {
+ if (!resourceKey.startsWith("/")) {
+ resourceKey = "/" + resourceKey;
+ }
+ }
+ }
+
+ return resourceKey;
+ } catch (Exception e) {
+ log.error(e.getMessage(), e);
+ }
+
+ return null;
+ }
+
private String addResource(ResourcesConfigGeneratorBean configBean,
RendererBean renderer, BuilderConfig builderConfig,
CompilationContext compilationContext)
@@ -184,6 +217,11 @@
if (result instanceof Object[]) {
for (Object object : result) {
String resourceName = interceptor.getResourceName(object);
+
+ if (resourceName == null) {
+ resourceName = getResourceKey(packageName, object);
+ }
+
if (resourceName != null) {
locatedResources.add(resourceName);
configBean.addResource(resourceName, packageName, ResourceType.STYLE,
@@ -209,6 +247,11 @@
if (result instanceof Object[]) {
for (Object object : result) {
String resourceName = interceptor.getResourceName(object);
+
+ if (resourceName == null) {
+ resourceName = getResourceKey(packageName, object);
+ }
+
if (resourceName != null) {
locatedResources.add(resourceName);
configBean.addResource(resourceName, packageName, ResourceType.SCRIPT,
@@ -327,24 +370,6 @@
}
}
-interface NamedObject {
- public String getPath();
-}
-
-class NamedObjectImpl implements NamedObject {
-
- private String path;
-
- public NamedObjectImpl(String path) {
- super();
- this.path = path;
- }
-
- public String getPath() {
- return path;
- }
-}
-
class GetResourceInterceptor implements MethodInterceptor {
private static final Class<?>[] SIGNATURE = new Class<?>[] { String.class
};