You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2013/11/01 13:55:40 UTC
svn commit: r1537921 -
/tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java
Author: markt
Date: Fri Nov 1 12:55:40 2013
New Revision: 1537921
URL: http://svn.apache.org/r1537921
Log:
Remove option to set repository path. It will always be /WEB-INF/classes
Additional resources can be mapped to /WEB-INF/classes via the new
resources implementation.
Modified:
tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java
Modified: tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java?rev=1537921&r1=1537920&r2=1537921&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java (original)
+++ tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java Fri Nov 1 12:55:40 2013
@@ -309,13 +309,6 @@ public class WebappClassLoader extends U
/**
- * The path to the repository for locally loaded classes or resources. This
- * would normally be /WEB-INF/classes/.
- */
- protected String repositoryPath = null;
-
-
- /**
* Repositories URLs, used to cache the result of getURLs.
*/
protected URL[] repositoryURLs = null;
@@ -829,7 +822,6 @@ public class WebappClassLoader extends U
loader.resources = this.resources;
loader.delegate = this.delegate;
loader.lastJarAccessed = this.lastJarAccessed;
- loader.repositoryPath = this.repositoryPath;
loader.repository = this.repository;
loader.jarPath = this.jarPath;
loader.loaderDir = this.loaderDir;
@@ -874,7 +866,6 @@ public class WebappClassLoader extends U
if (log.isDebugEnabled())
log.debug("addRepository(" + path + ")");
- this.repositoryPath = path;
this.repository = repository;
}
@@ -1037,9 +1028,6 @@ public class WebappClassLoader extends U
sb.append(" delegate: ");
sb.append(delegate);
sb.append("\r\n");
- sb.append(" repositoryPath: ");
- sb.append(repositoryPath);
- sb.append("\r\n");
if (this.parent != null) {
sb.append("----------> Parent Classloader:\r\n");
sb.append(this.parent.toString());
@@ -1207,13 +1195,13 @@ public class WebappClassLoader extends U
int jarFilesLength = jarFiles.length;
- if (repositoryPath != null) {
- // Looking at the repository
- WebResource[] webResources = resources.getResources(repositoryPath + name);
- for (WebResource webResource : webResources) {
- if (webResource.exists()) {
- result.add(webResource.getURL());
- }
+ // Looking at the repository
+ // TODO Add support to WebResourceRoot for looking up class loader
+ // resoucres
+ WebResource[] webResources = resources.getResources("/WEB-INF/classes/" + name);
+ for (WebResource webResource : webResources) {
+ if (webResource.exists()) {
+ result.add(webResource.getURL());
}
}
@@ -1766,7 +1754,6 @@ public class WebappClassLoader extends U
notFoundResources.clear();
resourceEntries.clear();
resources = null;
- repositoryPath = null;
repositoryURLs = null;
repository = null;
jarFiles = null;
@@ -2832,47 +2819,45 @@ public class WebappClassLoader extends U
boolean fileNeedConvert = false;
- if (repositoryPath != null) {
- String fullPath = repositoryPath + path;
- resource = resources.getResource(fullPath);
+ String fullPath = "/WEB-INF/classes/" + path;
+ resource = resources.getResource(fullPath);
- if (resource.exists()) {
+ if (resource.exists()) {
- contentLength = (int) resource.getContentLength();
- entry = new ResourceEntry();
- entry.source = resource.getURL();
- entry.codeBase = entry.source;
- entry.lastModified = resource.getLastModified();
+ contentLength = (int) resource.getContentLength();
+ entry = new ResourceEntry();
+ entry.source = resource.getURL();
+ entry.codeBase = entry.source;
+ entry.lastModified = resource.getLastModified();
- binaryStream = resource.getInputStream();
+ binaryStream = resource.getInputStream();
- if (needConvert) {
- if (path.endsWith(".properties")) {
- fileNeedConvert = true;
- }
+ if (needConvert) {
+ if (path.endsWith(".properties")) {
+ fileNeedConvert = true;
}
+ }
- // Register the full path for modification checking
- // Note: Only syncing on a 'constant' object is needed
- synchronized (allPermission) {
+ // Register the full path for modification checking
+ // Note: Only syncing on a 'constant' object is needed
+ synchronized (allPermission) {
- int j;
+ int j;
- long[] result2 =
- new long[lastModifiedDates.length + 1];
- for (j = 0; j < lastModifiedDates.length; j++) {
- result2[j] = lastModifiedDates[j];
- }
- result2[lastModifiedDates.length] = entry.lastModified;
- lastModifiedDates = result2;
+ long[] result2 =
+ new long[lastModifiedDates.length + 1];
+ for (j = 0; j < lastModifiedDates.length; j++) {
+ result2[j] = lastModifiedDates[j];
+ }
+ result2[lastModifiedDates.length] = entry.lastModified;
+ lastModifiedDates = result2;
- String[] result = new String[paths.length + 1];
- for (j = 0; j < paths.length; j++) {
- result[j] = paths[j];
- }
- result[paths.length] = fullPath;
- paths = result;
+ String[] result = new String[paths.length + 1];
+ for (j = 0; j < paths.length; j++) {
+ result[j] = paths[j];
}
+ result[paths.length] = fullPath;
+ paths = result;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org