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