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/13 15:53:50 UTC
svn commit: r1541539 - in /tomcat/trunk/java/org/apache: jasper/
jasper/compiler/ tomcat/util/descriptor/tld/
Author: markt
Date: Wed Nov 13 14:53:49 2013
New Revision: 1541539
URL: http://svn.apache.org/r1541539
Log:
Remove TldLocation
Removed:
tomcat/trunk/java/org/apache/jasper/compiler/TldLocation.java
Modified:
tomcat/trunk/java/org/apache/jasper/JspCompilationContext.java
tomcat/trunk/java/org/apache/jasper/compiler/JspDocumentParser.java
tomcat/trunk/java/org/apache/jasper/compiler/Parser.java
tomcat/trunk/java/org/apache/jasper/compiler/TagFileProcessor.java
tomcat/trunk/java/org/apache/jasper/compiler/TagLibraryInfoImpl.java
tomcat/trunk/java/org/apache/jasper/compiler/TldCache.java
tomcat/trunk/java/org/apache/tomcat/util/descriptor/tld/TldResourcePath.java
Modified: tomcat/trunk/java/org/apache/jasper/JspCompilationContext.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/JspCompilationContext.java?rev=1541539&r1=1541538&r2=1541539&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/jasper/JspCompilationContext.java (original)
+++ tomcat/trunk/java/org/apache/jasper/JspCompilationContext.java Wed Nov 13 14:53:49 2013
@@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.jasper;
import java.io.File;
@@ -37,11 +36,11 @@ import org.apache.jasper.compiler.JspRun
import org.apache.jasper.compiler.JspUtil;
import org.apache.jasper.compiler.Localizer;
import org.apache.jasper.compiler.ServletWriter;
-import org.apache.jasper.compiler.TldLocation;
import org.apache.jasper.servlet.JasperLoader;
import org.apache.jasper.servlet.JspServletWrapper;
import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
+import org.apache.tomcat.util.descriptor.tld.TldResourcePath;
import org.apache.tomcat.util.scan.Jar;
/**
@@ -558,10 +557,8 @@ public class JspCompilationContext {
* Returns null if the given uri is not associated with any tag library
* 'exposed' in the web application.
*/
- public TldLocation getTldLocation(String uri) {
- TldLocation location =
- getOptions().getTldCache().getLocation(uri);
- return location;
+ public TldResourcePath getTldResourcePath(String uri) {
+ return getOptions().getTldCache().getTldResourcePath(uri);
}
/**
Modified: tomcat/trunk/java/org/apache/jasper/compiler/JspDocumentParser.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/compiler/JspDocumentParser.java?rev=1541539&r1=1541538&r2=1541539&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/jasper/compiler/JspDocumentParser.java (original)
+++ tomcat/trunk/java/org/apache/jasper/compiler/JspDocumentParser.java Wed Nov 13 14:53:49 2013
@@ -31,6 +31,7 @@ import javax.xml.parsers.SAXParserFactor
import org.apache.jasper.JasperException;
import org.apache.jasper.JspCompilationContext;
+import org.apache.tomcat.util.descriptor.tld.TldResourcePath;
import org.apache.tomcat.util.scan.Jar;
import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
@@ -1267,8 +1268,8 @@ class JspDocumentParser
isPlainUri = true;
}
- TldLocation location = ctxt.getTldLocation(uri);
- if (location != null || !isPlainUri) {
+ TldResourcePath tldResourcePath = ctxt.getTldResourcePath(uri);
+ if (tldResourcePath != null || !isPlainUri) {
if (ctxt.getOptions().isCaching()) {
result = ctxt.getOptions().getCache().get(uri);
}
@@ -1286,7 +1287,7 @@ class JspDocumentParser
pageInfo,
prefix,
uri,
- location,
+ tldResourcePath,
err,
null);
if (ctxt.getOptions().isCaching()) {
Modified: tomcat/trunk/java/org/apache/jasper/compiler/Parser.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/compiler/Parser.java?rev=1541539&r1=1541538&r2=1541539&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/jasper/compiler/Parser.java (original)
+++ tomcat/trunk/java/org/apache/jasper/compiler/Parser.java Wed Nov 13 14:53:49 2013
@@ -29,6 +29,7 @@ import javax.servlet.jsp.tagext.TagLibra
import org.apache.jasper.JasperException;
import org.apache.jasper.JspCompilationContext;
import org.apache.jasper.util.UniqueAttributesImpl;
+import org.apache.tomcat.util.descriptor.tld.TldResourcePath;
import org.apache.tomcat.util.scan.Jar;
import org.xml.sax.Attributes;
import org.xml.sax.helpers.AttributesImpl;
@@ -406,9 +407,9 @@ class Parser implements TagConstants {
.getCache().get(uri);
}
if (impl == null) {
- TldLocation location = ctxt.getTldLocation(uri);
+ TldResourcePath tldResourcePath = ctxt.getTldResourcePath(uri);
impl = new TagLibraryInfoImpl(ctxt, parserController,
- pageInfo, prefix, uri, location, err,
+ pageInfo, prefix, uri, tldResourcePath, err,
reader.mark());
if (ctxt.getOptions().isCaching()) {
ctxt.getOptions().getCache().put(uri, impl);
Modified: tomcat/trunk/java/org/apache/jasper/compiler/TagFileProcessor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/compiler/TagFileProcessor.java?rev=1541539&r1=1541538&r2=1541539&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/jasper/compiler/TagFileProcessor.java (original)
+++ tomcat/trunk/java/org/apache/jasper/compiler/TagFileProcessor.java Wed Nov 13 14:53:49 2013
@@ -37,6 +37,7 @@ import org.apache.jasper.JasperException
import org.apache.jasper.JspCompilationContext;
import org.apache.jasper.runtime.JspSourceDependent;
import org.apache.jasper.servlet.JspServletWrapper;
+import org.apache.tomcat.util.descriptor.tld.TldResourcePath;
import org.apache.tomcat.util.scan.Jar;
/**
@@ -517,8 +518,12 @@ class TagFileProcessor {
Jar tagJar = null;
if (tagFilePath.startsWith("/META-INF/")) {
- tagJar = compiler.getCompilationContext().getTldLocation(
- tagInfo.getTagLibrary().getURI()).getJar();
+ try {
+ tagJar = compiler.getCompilationContext().getTldResourcePath(
+ tagInfo.getTagLibrary().getURI()).getJar();
+ } catch (IOException ioe) {
+ throw new JasperException(ioe);
+ }
}
String wrapperUri;
if (tagJar == null) {
@@ -622,15 +627,20 @@ class TagFileProcessor {
String tagFilePath = tagFileInfo.getPath();
if (tagFilePath.startsWith("/META-INF/")) {
// For tags in JARs, add the TLD and the tag as a dependency
- TldLocation location =
- compiler.getCompilationContext().getTldLocation(
+ TldResourcePath tldResourcePath =
+ compiler.getCompilationContext().getTldResourcePath(
tagFileInfo.getTagInfo().getTagLibrary().getURI());
- Jar jar = location.getJar();
+ Jar jar;
+ try {
+ jar = tldResourcePath.getJar();
+ } catch (IOException ioe) {
+ throw new JasperException(ioe);
+ }
if (jar != null) {
try {
// Add TLD
- pageInfo.addDependant(jar.getURL(location.getName()),
- Long.valueOf(jar.getLastModified(location.getName())));
+ pageInfo.addDependant(jar.getURL(tldResourcePath.getEntryName()),
+ Long.valueOf(jar.getLastModified(tldResourcePath.getEntryName())));
// Add Tag
pageInfo.addDependant(jar.getURL(tagFilePath.substring(1)),
Long.valueOf(jar.getLastModified(tagFilePath.substring(1))));
Modified: tomcat/trunk/java/org/apache/jasper/compiler/TagLibraryInfoImpl.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/compiler/TagLibraryInfoImpl.java?rev=1541539&r1=1541538&r2=1541539&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/jasper/compiler/TagLibraryInfoImpl.java (original)
+++ tomcat/trunk/java/org/apache/jasper/compiler/TagLibraryInfoImpl.java Wed Nov 13 14:53:49 2013
@@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.jasper.compiler;
import java.io.File;
@@ -53,6 +52,7 @@ import org.apache.jasper.xmlparser.Parse
import org.apache.jasper.xmlparser.TreeNode;
import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
+import org.apache.tomcat.util.descriptor.tld.TldResourcePath;
import org.apache.tomcat.util.scan.Jar;
/**
@@ -147,8 +147,8 @@ class TagLibraryInfoImpl extends TagLibr
* Constructor.
*/
public TagLibraryInfoImpl(JspCompilationContext ctxt, ParserController pc,
- PageInfo pi, String prefix, String uriIn, TldLocation location,
- ErrorDispatcher err, Mark mark)
+ PageInfo pi, String prefix, String uriIn,
+ TldResourcePath tldResourcePath, ErrorDispatcher err, Mark mark)
throws JasperException {
super(prefix, uriIn);
@@ -158,17 +158,21 @@ class TagLibraryInfoImpl extends TagLibr
this.err = err;
InputStream in = null;
- if (location == null) {
+ if (tldResourcePath == null) {
// The URI points to the TLD itself or to a JAR file in which the
// TLD is stored
- location = generateTLDLocation(uri, ctxt);
+ tldResourcePath = generateTldResourcePath(uri, ctxt);
}
- String tldName = location.getName();
- Jar jar = location.getJar();
+ Jar jar;
+ try {
+ jar = tldResourcePath.getJar();
+ } catch (IOException ioe) {
+ throw new JasperException(ioe);
+ }
try {
if (jar == null) {
- // Location points directly to TLD file
+ String tldName = tldResourcePath.getWebappPath();
try {
in = getResourceAsStream(tldName);
if (in == null) {
@@ -187,6 +191,7 @@ class TagLibraryInfoImpl extends TagLibr
}
} else {
// Tag library is packaged in JAR file
+ String tldName = tldResourcePath.getEntryName();
String uriExternal = jar.getJarFileURL().toExternalForm();
try {
in = jar.getInputStream(tldName);
@@ -313,8 +318,8 @@ class TagLibraryInfoImpl extends TagLibr
*
* @return the location of the TLD identified by the uri
*/
- private TldLocation generateTLDLocation(String uri, JspCompilationContext ctxt)
- throws JasperException {
+ private TldResourcePath generateTldResourcePath(String uri,
+ JspCompilationContext ctxt) throws JasperException {
// TODO: this matches the current implementation but the URL logic looks fishy
// map URI to location per JSP 7.3.6.2
@@ -326,24 +331,20 @@ class TagLibraryInfoImpl extends TagLibr
uri = ctxt.resolveRelativeUri(uri);
}
+ URL url = null;
+ try {
+ url = ctxt.getResource(uri);
+ } catch (Exception ex) {
+ err.jspError("jsp.error.tld.unable_to_get_jar", uri, ex
+ .toString());
+ }
if (uri.endsWith(".jar")) {
- URL url = null;
- try {
- url = ctxt.getResource(uri);
- } catch (Exception ex) {
- err.jspError("jsp.error.tld.unable_to_get_jar", uri, ex
- .toString());
- }
if (url == null) {
err.jspError("jsp.error.tld.missing_jar", uri);
}
- try {
- return new TldLocation("META-INF/taglib.tld", url);
- } catch (IOException ioe) {
- throw new JasperException(ioe);
- }
+ return new TldResourcePath(url, uri, "META-INF/taglib.tld");
} else {
- return new TldLocation(uri);
+ return new TldResourcePath(url, uri);
}
}
Modified: tomcat/trunk/java/org/apache/jasper/compiler/TldCache.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/compiler/TldCache.java?rev=1541539&r1=1541538&r2=1541539&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/jasper/compiler/TldCache.java (original)
+++ tomcat/trunk/java/org/apache/jasper/compiler/TldCache.java Wed Nov 13 14:53:49 2013
@@ -16,8 +16,6 @@
*/
package org.apache.jasper.compiler;
-import java.io.IOException;
-import java.net.URL;
import java.util.HashMap;
import java.util.Map;
@@ -57,29 +55,7 @@ public class TldCache {
}
- /**
- * This method is a temporary bridge between the old TLD handling code and
- * the new. It will be removed shortly, hopefully in the next wave of
- * refactoring.
- */
- @Deprecated
- public TldLocation getLocation(String uri) {
- TldResourcePath tldResourcePath = uriTldResourcePathMap.get(uri);
- if (tldResourcePath == null) {
- return null;
- }
- URL url = tldResourcePath.getUrl();
- String entryName = tldResourcePath.getEntryName();
- TldLocation tldLocation;
- if (entryName == null) {
- tldLocation = new TldLocation(url.toExternalForm());
- } else {
- try {
- tldLocation = new TldLocation(entryName, url);
- } catch (IOException ioe) {
- throw new IllegalArgumentException(ioe);
- }
- }
- return tldLocation;
+ public TldResourcePath getTldResourcePath(String uri) {
+ return uriTldResourcePathMap.get(uri);
}
}
Modified: tomcat/trunk/java/org/apache/tomcat/util/descriptor/tld/TldResourcePath.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/descriptor/tld/TldResourcePath.java?rev=1541539&r1=1541538&r2=1541539&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/descriptor/tld/TldResourcePath.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/descriptor/tld/TldResourcePath.java Wed Nov 13 14:53:49 2013
@@ -21,6 +21,7 @@ import java.io.InputStream;
import java.net.URL;
import java.util.Objects;
+import org.apache.tomcat.util.scan.Jar;
import org.apache.tomcat.util.scan.JarFactory;
/**
@@ -126,6 +127,14 @@ public class TldResourcePath {
}
}
+ public Jar getJar() throws IOException {
+ if (entryName == null) {
+ return null;
+ } else {
+ return JarFactory.newInstance(url);
+ }
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) {
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org