[jboss-cvs] JBossAS SVN: r111111 - in projects/specs/trunk/jboss-jstl-api_1.2_spec: src/main/java/org/apache/taglibs/standard/tag/common/xml and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Apr 6 16:40:02 EDT 2011


Author: jason.greene at jboss.com
Date: 2011-04-06 16:40:01 -0400 (Wed, 06 Apr 2011)
New Revision: 111111

Modified:
   projects/specs/trunk/jboss-jstl-api_1.2_spec/pom.xml
   projects/specs/trunk/jboss-jstl-api_1.2_spec/src/main/java/org/apache/taglibs/standard/tag/common/xml/JSTLXPathFactory.java
   projects/specs/trunk/jboss-jstl-api_1.2_spec/src/main/java/org/apache/taglibs/standard/tag/common/xml/JSTLXPathImpl.java
Log:
Switch from JDK intenerl deps to a dep on xalan's xpath impl.


Modified: projects/specs/trunk/jboss-jstl-api_1.2_spec/pom.xml
===================================================================
--- projects/specs/trunk/jboss-jstl-api_1.2_spec/pom.xml	2011-04-06 18:35:20 UTC (rev 111110)
+++ projects/specs/trunk/jboss-jstl-api_1.2_spec/pom.xml	2011-04-06 20:40:01 UTC (rev 111111)
@@ -46,6 +46,11 @@
       <artifactId>jboss-jsp-api_2.2_spec</artifactId>
       <version>1.0.0.Final</version>
     </dependency>
+    <dependency>
+        <groupId>org.apache.xalan</groupId>
+        <artifactId>xalan</artifactId>
+        <version>2.7.1-1.jbossorg</version>
+    </dependency>
   </dependencies>
   
 </project>

Modified: projects/specs/trunk/jboss-jstl-api_1.2_spec/src/main/java/org/apache/taglibs/standard/tag/common/xml/JSTLXPathFactory.java
===================================================================
--- projects/specs/trunk/jboss-jstl-api_1.2_spec/src/main/java/org/apache/taglibs/standard/tag/common/xml/JSTLXPathFactory.java	2011-04-06 18:35:20 UTC (rev 111110)
+++ projects/specs/trunk/jboss-jstl-api_1.2_spec/src/main/java/org/apache/taglibs/standard/tag/common/xml/JSTLXPathFactory.java	2011-04-06 20:40:01 UTC (rev 111111)
@@ -58,12 +58,7 @@
 
 package org.apache.taglibs.standard.tag.common.xml;
 
-import javax.xml.xpath.XPathFactory;
-import javax.xml.xpath.XPathFactoryConfigurationException;
-import javax.xml.xpath.XPathFunctionResolver;
-import javax.xml.xpath.XPathVariableResolver;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
+import org.apache.xpath.jaxp.XPathFactoryImpl;
 
 /**
  * This factory class is added to provide access to our own implementation
@@ -72,74 +67,9 @@
  * 
  * @author dhirup
  */
-public class JSTLXPathFactory extends XPathFactory {
-
-    private XPathFactory actual;
-
-    public JSTLXPathFactory() {
-
-        ClassLoader old = getContextClassLoader();
-        try {
-            // Use the defining class loader
-            setContextClassLoader(JSTLXPathFactory.class.getClassLoader());
-            actual = XPathFactory.newInstance();
-        } finally {
-            setContextClassLoader(old);
-        }
-
-        if (actual == null)
-            throw new IllegalStateException("Could not load default XPathFactory");
-    }
-
-    private static ClassLoader getContextClassLoader() {
-        return (ClassLoader)
-                AccessController.doPrivileged(new PrivilegedAction() {
-                    public Object run() {
-                        ClassLoader cl = null;
-                        try {
-                            cl = Thread.currentThread().getContextClassLoader();
-                        } catch (SecurityException eat) {
-                        }
-                        return cl;
-                    }
-                });
-    }
-
-    private static void setContextClassLoader(ClassLoader cl) {
-        AccessController.doPrivileged(new PrivilegedAction() {
-            public Object run() {
-                ClassLoader cl = null;
-                try {
-                    Thread.currentThread().setContextClassLoader(cl);
-                } catch (SecurityException eat) {
-                }
-
-                return null;
-            }
-        });
-    }
-
+public class JSTLXPathFactory extends XPathFactoryImpl {
+    
     public javax.xml.xpath.XPath newXPath() {
         return new org.apache.taglibs.standard.tag.common.xml.JSTLXPathImpl(null, null);
-    }
-
-    public boolean isObjectModelSupported(String objectModel) {
-        return actual.isObjectModelSupported(objectModel);
-    }
-
-    public void setFeature(String name, boolean value) throws XPathFactoryConfigurationException {
-        actual.setFeature(name, value);
-    }
-
-    public boolean getFeature(String name) throws XPathFactoryConfigurationException {
-        return actual.getFeature(name);
-    }
-
-    public void setXPathVariableResolver(XPathVariableResolver resolver) {
-        actual.setXPathVariableResolver(resolver);
-    }
-
-    public void setXPathFunctionResolver(XPathFunctionResolver resolver) {
-        actual.setXPathFunctionResolver(resolver);
-    }
+    }    
 }

Modified: projects/specs/trunk/jboss-jstl-api_1.2_spec/src/main/java/org/apache/taglibs/standard/tag/common/xml/JSTLXPathImpl.java
===================================================================
--- projects/specs/trunk/jboss-jstl-api_1.2_spec/src/main/java/org/apache/taglibs/standard/tag/common/xml/JSTLXPathImpl.java	2011-04-06 18:35:20 UTC (rev 111110)
+++ projects/specs/trunk/jboss-jstl-api_1.2_spec/src/main/java/org/apache/taglibs/standard/tag/common/xml/JSTLXPathImpl.java	2011-04-06 20:40:01 UTC (rev 111111)
@@ -67,12 +67,12 @@
 import javax.xml.xpath.XPathVariableResolver;
 import javax.xml.xpath.XPathExpression;
 
-import com.sun.org.apache.xml.internal.dtm.DTM;
-import com.sun.org.apache.xpath.internal.*;
-import com.sun.org.apache.xpath.internal.objects.XObject;
-import com.sun.org.apache.xpath.internal.res.XPATHErrorResources;
-import com.sun.org.apache.xalan.internal.res.XSLMessages;
-
+import org.apache.xalan.res.XSLMessages;
+import org.apache.xml.dtm.DTM;
+import org.apache.xpath.jaxp.JAXPVariableStack;
+import org.apache.xpath.objects.XNodeSet;
+import org.apache.xpath.objects.XObject;
+import org.apache.xpath.res.XPATHErrorResources;
 import org.w3c.dom.Node;
 import org.w3c.dom.DOMImplementation;
 import org.w3c.dom.Document;
@@ -95,7 +95,7 @@
  * method.
  *
  * Most of the implementation is exactly similar to what is already provided in 
- * com.sun.org.apache.xpath.internal.jaxp.XPathImpl.java
+ * org.apache.xpath.jaxp.XPathImpl.java
  */
 public class JSTLXPathImpl implements javax.xml.xpath.XPath {
 
@@ -105,7 +105,7 @@
     private XPathVariableResolver origVariableResolver;
     private XPathFunctionResolver origFunctionResolver;
     private NamespaceContext namespaceContext=null;
-    private com.sun.org.apache.xpath.internal.jaxp.JAXPPrefixResolver prefixResolver;
+    private org.apache.xpath.jaxp.JAXPPrefixResolver prefixResolver;
     // By default Extension Functions are allowed in XPath Expressions. If 
     // Secure Processing Feature is set on XPathFactory then the invocation of
     // extensions function need to throw XPathFunctionException
@@ -130,9 +130,9 @@
      */
     public void setXPathVariableResolver(XPathVariableResolver resolver) {
         if ( resolver == null ) {
-            String fmsg = XSLMessages.createXPATHMessage( 
+            String fmsg = XSLMessages.createXPATHMessage(
                     XPATHErrorResources.ER_ARG_CANNOT_BE_NULL,
-                    new Object[] {"XPathVariableResolver"} );
+                    new Object[]{"XPathVariableResolver"});
             throw new NullPointerException( fmsg );
         }
         this.variableResolver = resolver;
@@ -184,7 +184,7 @@
             throw new NullPointerException( fmsg ); 
         }
         this.namespaceContext = nsContext;
-        this.prefixResolver = new com.sun.org.apache.xpath.internal.jaxp.JAXPPrefixResolver ( nsContext );
+        this.prefixResolver = new org.apache.xpath.jaxp.JAXPPrefixResolver ( nsContext );
     }
 
     /**
@@ -235,21 +235,21 @@
     
     private XObject eval(String expression, Object contextItem)
         throws javax.xml.transform.TransformerException {
-        com.sun.org.apache.xpath.internal.XPath xpath = new com.sun.org.apache.xpath.internal.XPath( expression,
-            null, prefixResolver, com.sun.org.apache.xpath.internal.XPath.SELECT ); 
-        com.sun.org.apache.xpath.internal.XPathContext xpathSupport = null;
+        org.apache.xpath.XPath xpath = new org.apache.xpath.XPath( expression,
+            null, prefixResolver, org.apache.xpath.XPath.SELECT ); 
+        org.apache.xpath.XPathContext xpathSupport = null;
         if ( functionResolver != null ) {
-            com.sun.org.apache.xpath.internal.jaxp.JAXPExtensionsProvider jep = 
-                    new com.sun.org.apache.xpath.internal.jaxp.JAXPExtensionsProvider(
+            org.apache.xpath.jaxp.JAXPExtensionsProvider jep = 
+                    new org.apache.xpath.jaxp.JAXPExtensionsProvider(
                     functionResolver, featureSecureProcessing );
-            xpathSupport = new com.sun.org.apache.xpath.internal.XPathContext( jep );
+            xpathSupport = new org.apache.xpath.XPathContext( jep );
         } else { 
-            xpathSupport = new com.sun.org.apache.xpath.internal.XPathContext();
+            xpathSupport = new org.apache.xpath.XPathContext();
         }
 
         XObject xobj = null;
         
-        xpathSupport.setVarStack(new com.sun.org.apache.xpath.internal.jaxp.JAXPVariableStack(variableResolver));
+        xpathSupport.setVarStack(new JAXPVariableStack(variableResolver));
         
         // If item is null, then we will create a a Dummy contextNode
         if ( contextItem instanceof Node ) {
@@ -377,7 +377,7 @@
         }
         // JSTLXPathConstants.OBJECT
         if ( returnType.equals( JSTLXPathConstants.OBJECT ) ) {
-            if (resultObject instanceof com.sun.org.apache.xpath.internal.objects.XNodeSet)
+            if (resultObject instanceof XNodeSet)
                 return resultObject.nodelist();
             else 
                 return resultObject.object();
@@ -422,7 +422,7 @@
     /**
      * <p>Compile an XPath expression for later evaluation.</p>
      *
-     * <p>If <code>expression</code> contains any {@link XPathFunction}s,
+     * <p>If <code>expression</code> contains any {@link javax.xml.xpath.XPathFunction}s,
      * they must be available via the {@link XPathFunctionResolver}.
      * An {@link XPathExpressionException} will be thrown if the <code>XPathFunction</code>
      * cannot be resovled with the <code>XPathFunctionResolver</code>.</p>
@@ -448,11 +448,11 @@
         return null;
         /*
         try {
-            com.sun.org.apache.xpath.internal.XPath xpath = new XPath (expression, null,
-                    prefixResolver, com.sun.org.apache.xpath.internal.XPath.SELECT );
+            org.apache.xpath.XPath xpath = new XPath (expression, null,
+                    prefixResolver, org.apache.xpath.XPath.SELECT );
             // Can have errorListener
-            com.sun.org.apache.xpath.internal.jaxp.XPathExpressionImpl ximpl = 
-                    new com.sun.org.apache.xpath.internal.jaxp.XPathExpressionImpl (xpath,
+            org.apache.xpath.jaxp.XPathExpressionImpl ximpl = 
+                    new org.apache.xpath.jaxp.XPathExpressionImpl (xpath,
                     prefixResolver, functionResolver, variableResolver,
                     featureSecureProcessing );
             return ximpl;
@@ -578,7 +578,7 @@
      * <p>Reset this <code>XPath</code> to its original configuration.</p>
      *
      * <p><code>XPath</code> is reset to the same state as when it was created with
-     * {@link XPathFactory#newXPath()}.
+     * {@link javax.xml.xpath.XPathFactory#newXPath()}.
      * <code>reset()</code> is designed to allow the reuse of existing <code>XPath</code>s
      * thus saving resources associated with the creation of new <code>XPath</code>s.</p>
      *



More information about the jboss-cvs-commits mailing list