[jboss-cvs] JBossAS SVN: r109155 - in trunk/tomcat/src: resources and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Nov 5 08:48:03 EDT 2010


Author: remy.maucherat at jboss.com
Date: 2010-11-05 08:48:02 -0400 (Fri, 05 Nov 2010)
New Revision: 109155

Modified:
   trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/VFSDirContext.java
   trunk/tomcat/src/resources/catalina.properties
Log:
- Port VFSDirContext to VFS 3.
- Fix xpoweredby flag.

Modified: trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/VFSDirContext.java
===================================================================
--- trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/VFSDirContext.java	2010-11-05 12:47:15 UTC (rev 109154)
+++ trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/VFSDirContext.java	2010-11-05 12:48:02 UTC (rev 109155)
@@ -27,18 +27,11 @@
 
 import javax.naming.CompositeName;
 import javax.naming.Name;
-import javax.naming.NameAlreadyBoundException;
-import javax.naming.NameNotFoundException;
 import javax.naming.NamingEnumeration;
 import javax.naming.NamingException;
-import javax.naming.NotContextException;
 import javax.naming.OperationNotSupportedException;
-import javax.naming.directory.AttributeModificationException;
 import javax.naming.directory.Attributes;
 import javax.naming.directory.DirContext;
-import javax.naming.directory.InvalidAttributesException;
-import javax.naming.directory.InvalidSearchControlsException;
-import javax.naming.directory.InvalidSearchFilterException;
 import javax.naming.directory.ModificationItem;
 import javax.naming.directory.SearchControls;
 
@@ -48,714 +41,181 @@
 import org.apache.naming.resources.BaseDirContext;
 import org.apache.naming.resources.Resource;
 import org.apache.naming.resources.ResourceAttributes;
-import org.jboss.logging.Logger;
 import org.jboss.vfs.VirtualFile;
 
 /**
  * VFS Directory Context implementation.
  *
  * @author Remy Maucherat
- * @version $Revision$ $Date$
  */
-
 public class VFSDirContext extends BaseDirContext {
 
-	   private static final Logger log = Logger.getLogger(VFSDirContext.class);
-    
-    // ----------------------------------------------------------- Constructors
+    public VFSDirContext() {
+        super();
+    }
 
+    public VFSDirContext(Hashtable env) {
+        super(env);
+    }
 
-	   /**
-	    * Builds a WAR directory context using the given environment.
-	    */
-	   public VFSDirContext() {
-		   super();
-	   }
+    protected VFSDirContext(VirtualFile base) {
+        this.base = base;
+    }
 
-
-	   /**
-	    * Builds a WAR directory context using the given environment.
-	    */
-	   public VFSDirContext(Hashtable env) {
-		   super(env);
-	   }
-
-
-	   /**
-	    * Constructor used for returning fake subcontexts.
-	    */
-	   protected VFSDirContext(VirtualFile base) {
-		   this.base = base;
-	   }
-
-
-    // ----------------------------------------------------- Instance Variables
-
-
-    /**
-     * The virtual file.
-     */
     protected VirtualFile base = null;
 
-
-    // ------------------------------------------------------------- Properties
-    
-    
-    /**
-     * Set the virtual file root.
-     */
     public void setVirtualFile(VirtualFile base) {
         this.base = base;
     }
-    
-    
-    // --------------------------------------------------------- Public Methods
 
-
-    /**
-     * Release any resources allocated for this directory context.
-     */
     public void release() {
         base = null;
         super.release();
-
     }
 
-
-    // -------------------------------------------------------- Context Methods
-
-
-    /**
-     * Retrieves the named object.
-     * 
-     * @param name the name of the object to look up
-     * @return the object bound to name
-     * @exception NamingException if a naming exception is encountered
-     */
-    public Object lookup(String name)
-        throws NamingException {
+    public Object lookup(String name) throws NamingException {
         return lookup(new CompositeName(name));
     }
 
-
-    /**
-     * Retrieves the named object. If name is empty, returns a new instance 
-     * of this context (which represents the same naming context as this 
-     * context, but its environment may be modified independently and it may 
-     * be accessed concurrently).
-     * 
-     * @param name the name of the object to look up
-     * @return the object bound to name
-     * @exception NamingException if a naming exception is encountered
-     */
-    public Object lookup(Name name)
-        throws NamingException {
+    public Object lookup(Name name) throws NamingException {
         if (name.isEmpty())
             return this;
-        VirtualFile entry = null;
-        try {
-            entry = treeLookup(name);
-        } catch (IOException e) {
-            NamingException ex = new NamingException
-                (sm.getString("resources.notFound", name));
-            ex.initCause(e);
-            throw ex;
-        }
+        VirtualFile entry = treeLookup(name);
         if (entry == null)
-            throw new NamingException
-                (sm.getString("resources.notFound", name));
-        
-        try {
-            if (!isFile(entry)) {
-                return new VFSDirContext(entry);
-            } else {
-                return new VFSResource(entry);
-            }
-        } catch (IOException e) {
-            NamingException ex = new NamingException
-                (sm.getString("resources.notFound", name));
-            ex.initCause(e);
-            throw ex;
+            throw new NamingException(sm.getString("resources.notFound", name));
+
+        if (entry.isDirectory()) {
+            return new VFSDirContext(entry);
+        } else {
+            return new VFSResource(entry);
         }
     }
 
-
-    /**
-     * Unbinds the named object. Removes the terminal atomic name in name 
-     * from the target context--that named by all but the terminal atomic 
-     * part of name.
-     * <p>
-     * This method is idempotent. It succeeds even if the terminal atomic 
-     * name is not bound in the target context, but throws 
-     * NameNotFoundException if any of the intermediate contexts do not exist. 
-     * 
-     * @param name the name to bind; may not be empty
-     * @exception NameNotFoundException if an intermediate context does not 
-     * exist
-     * @exception NamingException if a naming exception is encountered
-     */
-    public void unbind(String name)
-        throws NamingException {
+    public void unbind(String name) throws NamingException {
         throw new OperationNotSupportedException();
     }
 
-
-    /**
-     * Binds a new name to the object bound to an old name, and unbinds the 
-     * old name. Both names are relative to this context. Any attributes 
-     * associated with the old name become associated with the new name. 
-     * Intermediate contexts of the old name are not changed.
-     * 
-     * @param oldName the name of the existing binding; may not be empty
-     * @param newName the name of the new binding; may not be empty
-     * @exception NameAlreadyBoundException if newName is already bound
-     * @exception NamingException if a naming exception is encountered
-     */
-    public void rename(String oldName, String newName)
-        throws NamingException {
+    public void rename(String oldName, String newName) throws NamingException {
         throw new OperationNotSupportedException();
     }
 
-
-    /**
-     * Enumerates the names bound in the named context, along with the class 
-     * names of objects bound to them. The contents of any subcontexts are 
-     * not included.
-     * <p>
-     * If a binding is added to or removed from this context, its effect on 
-     * an enumeration previously returned is undefined.
-     * 
-     * @param name the name of the context to list
-     * @return an enumeration of the names and class names of the bindings in 
-     * this context. Each element of the enumeration is of type NameClassPair.
-     * @exception NamingException if a naming exception is encountered
-     */
-    public NamingEnumeration list(String name)
-        throws NamingException {
+    public NamingEnumeration list(String name) throws NamingException {
         return list(new CompositeName(name));
     }
 
-
-    /**
-     * Enumerates the names bound in the named context, along with the class 
-     * names of objects bound to them. The contents of any subcontexts are 
-     * not included.
-     * <p>
-     * If a binding is added to or removed from this context, its effect on 
-     * an enumeration previously returned is undefined.
-     * 
-     * @param name the name of the context to list
-     * @return an enumeration of the names and class names of the bindings in 
-     * this context. Each element of the enumeration is of type NameClassPair.
-     * @exception NamingException if a naming exception is encountered
-     */
-    public NamingEnumeration list(Name name)
-        throws NamingException {
+    public NamingEnumeration list(Name name) throws NamingException {
         if (name.isEmpty()) {
-            try {
-                return new NamingContextEnumeration(list(base).iterator());
-            } catch (IOException e) {
-                NamingException ex = new NamingException
-                    (sm.getString("resources.notFound", name));
-                ex.initCause(e);
-                throw ex;
-            }
+            return new NamingContextEnumeration(list(base).iterator());
         }
-        VirtualFile entry = null;
-        try {
-            entry = treeLookup(name);
-        } catch (IOException e) {
-            NamingException ex = new NamingException
-                (sm.getString("resources.notFound", name));
-            ex.initCause(e);
-            throw ex;
-        }
+        VirtualFile entry = treeLookup(name);
         if (entry == null)
-            throw new NamingException
-                (sm.getString("resources.notFound", name));
-        try {
-            return new NamingContextEnumeration(list(entry).iterator());
-        } catch (IOException e) {
-            NamingException ex = new NamingException
-                (sm.getString("resources.notFound", name));
-            ex.initCause(e);
-            throw ex;
-        }
+            throw new NamingException(sm.getString("resources.notFound", name));
+
+        return new NamingContextEnumeration(list(entry).iterator());
     }
 
-
-    /**
-     * Enumerates the names bound in the named context, along with the 
-     * objects bound to them. The contents of any subcontexts are not 
-     * included.
-     * <p>
-     * If a binding is added to or removed from this context, its effect on 
-     * an enumeration previously returned is undefined.
-     * 
-     * @param name the name of the context to list
-     * @return an enumeration of the bindings in this context. 
-     * Each element of the enumeration is of type Binding.
-     * @exception NamingException if a naming exception is encountered
-     */
-    public NamingEnumeration listBindings(String name)
-        throws NamingException {
+    public NamingEnumeration listBindings(String name) throws NamingException {
         return listBindings(new CompositeName(name));
     }
 
-
-    /**
-     * Enumerates the names bound in the named context, along with the 
-     * objects bound to them. The contents of any subcontexts are not 
-     * included.
-     * <p>
-     * If a binding is added to or removed from this context, its effect on 
-     * an enumeration previously returned is undefined.
-     * 
-     * @param name the name of the context to list
-     * @return an enumeration of the bindings in this context. 
-     * Each element of the enumeration is of type Binding.
-     * @exception NamingException if a naming exception is encountered
-     */
-    public NamingEnumeration listBindings(Name name)
-        throws NamingException {
+    public NamingEnumeration listBindings(Name name) throws NamingException {
         if (name.isEmpty()) {
-            try {
-                return new NamingContextBindingsEnumeration(list(base).iterator(),
-                        this);
-            } catch (IOException e) {
-                NamingException ex = new NamingException
-                    (sm.getString("resources.notFound", name));
-                ex.initCause(e);
-                throw ex;
-            }
+            return new NamingContextBindingsEnumeration(list(base).iterator(), this);
         }
-        VirtualFile entry = null;
-        try {
-            entry = treeLookup(name);
-        } catch (IOException e) {
-            NamingException ex = new NamingException
-                (sm.getString("resources.notFound", name));
-            ex.initCause(e);
-            throw ex;
-        }
+        VirtualFile entry = treeLookup(name);
         if (entry == null)
-            throw new NamingException
-                (sm.getString("resources.notFound", name));
-        try {
-            return new NamingContextBindingsEnumeration(list(entry).iterator(),
-                    this);
-        } catch (IOException e) {
-            NamingException ex = new NamingException
-                (sm.getString("resources.notFound", name));
-            ex.initCause(e);
-            throw ex;
-        }
+            throw new NamingException(sm.getString("resources.notFound", name));
+
+        return new NamingContextBindingsEnumeration(list(entry).iterator(), this);
     }
 
-
-    /**
-     * Destroys the named context and removes it from the namespace. Any 
-     * attributes associated with the name are also removed. Intermediate 
-     * contexts are not destroyed.
-     * <p>
-     * This method is idempotent. It succeeds even if the terminal atomic 
-     * name is not bound in the target context, but throws 
-     * NameNotFoundException if any of the intermediate contexts do not exist. 
-     * 
-     * In a federated naming system, a context from one naming system may be 
-     * bound to a name in another. One can subsequently look up and perform 
-     * operations on the foreign context using a composite name. However, an 
-     * attempt destroy the context using this composite name will fail with 
-     * NotContextException, because the foreign context is not a "subcontext" 
-     * of the context in which it is bound. Instead, use unbind() to remove 
-     * the binding of the foreign context. Destroying the foreign context 
-     * requires that the destroySubcontext() be performed on a context from 
-     * the foreign context's "native" naming system.
-     * 
-     * @param name the name of the context to be destroyed; may not be empty
-     * @exception NameNotFoundException if an intermediate context does not 
-     * exist
-     * @exception NotContextException if the name is bound but does not name 
-     * a context, or does not name a context of the appropriate type
-     */
-    public void destroySubcontext(String name)
-        throws NamingException {
+    public void destroySubcontext(String name) throws NamingException {
         throw new OperationNotSupportedException();
     }
 
-
-    /**
-     * Retrieves the named object, following links except for the terminal 
-     * atomic component of the name. If the object bound to name is not a 
-     * link, returns the object itself.
-     * 
-     * @param name the name of the object to look up
-     * @return the object bound to name, not following the terminal link 
-     * (if any).
-     * @exception NamingException if a naming exception is encountered
-     */
-    public Object lookupLink(String name)
-        throws NamingException {
+    public Object lookupLink(String name) throws NamingException {
         // Note : Links are not supported
         return lookup(name);
     }
 
-
-    /**
-     * Retrieves the full name of this context within its own namespace.
-     * <p>
-     * Many naming services have a notion of a "full name" for objects in 
-     * their respective namespaces. For example, an LDAP entry has a 
-     * distinguished name, and a DNS record has a fully qualified name. This 
-     * method allows the client application to retrieve this name. The string 
-     * returned by this method is not a JNDI composite name and should not be 
-     * passed directly to context methods. In naming systems for which the 
-     * notion of full name does not make sense, 
-     * OperationNotSupportedException is thrown.
-     * 
-     * @return this context's name in its own namespace; never null
-     * @exception OperationNotSupportedException if the naming system does 
-     * not have the notion of a full name
-     * @exception NamingException if a naming exception is encountered
-     */
-    public String getNameInNamespace()
-        throws NamingException {
+    public String getNameInNamespace() throws NamingException {
         return docBase;
     }
 
-
-    // ----------------------------------------------------- DirContext Methods
-
-
-    /**
-     * Retrieves selected attributes associated with a named object. 
-     * See the class description regarding attribute models, attribute type 
-     * names, and operational attributes.
-     * 
-     * @return the requested attributes; never null
-     * @param name the name of the object from which to retrieve attributes
-     * @param attrIds the identifiers of the attributes to retrieve. null 
-     * indicates that all attributes should be retrieved; an empty array 
-     * indicates that none should be retrieved
-     * @exception NamingException if a naming exception is encountered
-     */
-    public Attributes getAttributes(String name, String[] attrIds)
-        throws NamingException {
+    public Attributes getAttributes(String name, String[] attrIds) throws NamingException {
         return getAttributes(new CompositeName(name), attrIds);
     }
 
+    public Attributes getAttributes(Name name, String[] attrIds) throws NamingException {
 
-    /**
-     * Retrieves all of the attributes associated with a named object. 
-     * 
-     * @return the set of attributes associated with name. 
-     * Returns an empty attribute set if name has no attributes; never null.
-     * @param name the name of the object from which to retrieve attributes
-     * @exception NamingException if a naming exception is encountered
-     */
-    public Attributes getAttributes(Name name, String[] attrIds)
-        throws NamingException {
-        
         VirtualFile entry = null;
         if (name.isEmpty()) {
             entry = base;
         } else {
-            try {
-                entry = treeLookup(name);
-            } catch (IOException e) {
-                NamingException ex = new NamingException
-                    (sm.getString("resources.notFound", name));
-                ex.initCause(e);
-                throw ex;
-            }
+            entry = treeLookup(name);
         }
         if (entry == null)
-            throw new NamingException
-                (sm.getString("resources.notFound", name));
-        
+            throw new NamingException(sm.getString("resources.notFound", name));
+
         ResourceAttributes attrs = new ResourceAttributes();
-        try {
-            attrs.setCreationDate(new Date(entry.getLastModified()));
-            attrs.setName(entry.getName());
-            if (isFile(entry))
-                attrs.setResourceType("");
-            attrs.setContentLength(entry.getSize());
-            attrs.setLastModified(entry.getLastModified());
-        } catch (IOException e) {
-            NamingException ex = new NamingException
-            (sm.getString("resources.notFound", name));
-            ex.initCause(e);
-            throw ex;
-        }
+        attrs.setCreationDate(new Date(entry.getLastModified()));
+        attrs.setName(entry.getName());
+        if (entry.isFile())
+            attrs.setResourceType("");
+        attrs.setContentLength(entry.getSize());
+        attrs.setLastModified(entry.getLastModified());
 
         return attrs;
-        
+
     }
 
-
-    /**
-     * Modifies the attributes associated with a named object. The order of 
-     * the modifications is not specified. Where possible, the modifications 
-     * are performed atomically.
-     * 
-     * @param name the name of the object whose attributes will be updated
-     * @param mod_op the modification operation, one of: ADD_ATTRIBUTE, 
-     * REPLACE_ATTRIBUTE, REMOVE_ATTRIBUTE
-     * @param attrs the attributes to be used for the modification; may not 
-     * be null
-     * @exception AttributeModificationException if the modification cannot be
-     * completed successfully
-     * @exception NamingException if a naming exception is encountered
-     */
-    public void modifyAttributes(String name, int mod_op, Attributes attrs)
-        throws NamingException {
+    public void modifyAttributes(String name, int mod_op, Attributes attrs) throws NamingException {
         throw new OperationNotSupportedException();
     }
 
-
-    /**
-     * Modifies the attributes associated with a named object using an an 
-     * ordered list of modifications. The modifications are performed in the 
-     * order specified. Each modification specifies a modification operation 
-     * code and an attribute on which to operate. Where possible, the 
-     * modifications are performed atomically.
-     * 
-     * @param name the name of the object whose attributes will be updated
-     * @param mods an ordered sequence of modifications to be performed; may 
-     * not be null
-     * @exception AttributeModificationException if the modification cannot be
-     * completed successfully
-     * @exception NamingException if a naming exception is encountered
-     */
-    public void modifyAttributes(String name, ModificationItem[] mods)
-        throws NamingException {
+    public void modifyAttributes(String name, ModificationItem[] mods) throws NamingException {
         throw new OperationNotSupportedException();
     }
 
-
-    /**
-     * Binds a name to an object, along with associated attributes. If attrs 
-     * is null, the resulting binding will have the attributes associated 
-     * with obj if obj is a DirContext, and no attributes otherwise. If attrs 
-     * is non-null, the resulting binding will have attrs as its attributes; 
-     * any attributes associated with obj are ignored.
-     * 
-     * @param name the name to bind; may not be empty
-     * @param obj the object to bind; possibly null
-     * @param attrs the attributes to associate with the binding
-     * @exception NameAlreadyBoundException if name is already bound
-     * @exception InvalidAttributesException if some "mandatory" attributes 
-     * of the binding are not supplied
-     * @exception NamingException if a naming exception is encountered
-     */
-    public void bind(String name, Object obj, Attributes attrs)
-        throws NamingException {
+    public void bind(String name, Object obj, Attributes attrs) throws NamingException {
         throw new OperationNotSupportedException();
     }
 
-
-    /**
-     * Binds a name to an object, along with associated attributes, 
-     * overwriting any existing binding. If attrs is null and obj is a 
-     * DirContext, the attributes from obj are used. If attrs is null and obj 
-     * is not a DirContext, any existing attributes associated with the object
-     * already bound in the directory remain unchanged. If attrs is non-null, 
-     * any existing attributes associated with the object already bound in 
-     * the directory are removed and attrs is associated with the named 
-     * object. If obj is a DirContext and attrs is non-null, the attributes 
-     * of obj are ignored.
-     * 
-     * @param name the name to bind; may not be empty
-     * @param obj the object to bind; possibly null
-     * @param attrs the attributes to associate with the binding
-     * @exception InvalidAttributesException if some "mandatory" attributes 
-     * of the binding are not supplied
-     * @exception NamingException if a naming exception is encountered
-     */
-    public void rebind(String name, Object obj, Attributes attrs)
-        throws NamingException {
+    public void rebind(String name, Object obj, Attributes attrs) throws NamingException {
         throw new OperationNotSupportedException();
     }
 
-
-    /**
-     * Creates and binds a new context, along with associated attributes. 
-     * This method creates a new subcontext with the given name, binds it in 
-     * the target context (that named by all but terminal atomic component of 
-     * the name), and associates the supplied attributes with the newly 
-     * created object. All intermediate and target contexts must already 
-     * exist. If attrs is null, this method is equivalent to 
-     * Context.createSubcontext().
-     * 
-     * @param name the name of the context to create; may not be empty
-     * @param attrs the attributes to associate with the newly created context
-     * @return the newly created context
-     * @exception NameAlreadyBoundException if the name is already bound
-     * @exception InvalidAttributesException if attrs does not contain all 
-     * the mandatory attributes required for creation
-     * @exception NamingException if a naming exception is encountered
-     */
-    public DirContext createSubcontext(String name, Attributes attrs)
-        throws NamingException {
+    public DirContext createSubcontext(String name, Attributes attrs) throws NamingException {
         throw new OperationNotSupportedException();
     }
 
-
-    /**
-     * Retrieves the schema associated with the named object. The schema 
-     * describes rules regarding the structure of the namespace and the 
-     * attributes stored within it. The schema specifies what types of 
-     * objects can be added to the directory and where they can be added; 
-     * what mandatory and optional attributes an object can have. The range 
-     * of support for schemas is directory-specific.
-     * 
-     * @param name the name of the object whose schema is to be retrieved
-     * @return the schema associated with the context; never null
-     * @exception OperationNotSupportedException if schema not supported
-     * @exception NamingException if a naming exception is encountered
-     */
-    public DirContext getSchema(String name)
-        throws NamingException {
+    public DirContext getSchema(String name) throws NamingException {
         throw new OperationNotSupportedException();
     }
 
-
-    /**
-     * Retrieves a context containing the schema objects of the named 
-     * object's class definitions.
-     * 
-     * @param name the name of the object whose object class definition is to 
-     * be retrieved
-     * @return the DirContext containing the named object's class 
-     * definitions; never null
-     * @exception OperationNotSupportedException if schema not supported
-     * @exception NamingException if a naming exception is encountered
-     */
-    public DirContext getSchemaClassDefinition(String name)
-        throws NamingException {
+    public DirContext getSchemaClassDefinition(String name) throws NamingException {
         throw new OperationNotSupportedException();
     }
 
-
-    /**
-     * Searches in a single context for objects that contain a specified set 
-     * of attributes, and retrieves selected attributes. The search is 
-     * performed using the default SearchControls settings.
-     * 
-     * @param name the name of the context to search
-     * @param matchingAttributes the attributes to search for. If empty or 
-     * null, all objects in the target context are returned.
-     * @param attributesToReturn the attributes to return. null indicates 
-     * that all attributes are to be returned; an empty array indicates that 
-     * none are to be returned.
-     * @return a non-null enumeration of SearchResult objects. Each 
-     * SearchResult contains the attributes identified by attributesToReturn 
-     * and the name of the corresponding object, named relative to the 
-     * context named by name.
-     * @exception NamingException if a naming exception is encountered
-     */
-    public NamingEnumeration search(String name, Attributes matchingAttributes,
-                                    String[] attributesToReturn)
-        throws NamingException {
+    public NamingEnumeration search(String name, Attributes matchingAttributes, String[] attributesToReturn)
+            throws NamingException {
         throw new OperationNotSupportedException();
     }
 
-
-    /**
-     * Searches in a single context for objects that contain a specified set 
-     * of attributes. This method returns all the attributes of such objects. 
-     * It is equivalent to supplying null as the atributesToReturn parameter 
-     * to the method search(Name, Attributes, String[]).
-     * 
-     * @param name the name of the context to search
-     * @param matchingAttributes the attributes to search for. If empty or 
-     * null, all objects in the target context are returned.
-     * @return a non-null enumeration of SearchResult objects. Each 
-     * SearchResult contains the attributes identified by attributesToReturn 
-     * and the name of the corresponding object, named relative to the 
-     * context named by name.
-     * @exception NamingException if a naming exception is encountered
-     */
-    public NamingEnumeration search(String name, Attributes matchingAttributes)
-        throws NamingException {
+    public NamingEnumeration search(String name, Attributes matchingAttributes) throws NamingException {
         throw new OperationNotSupportedException();
     }
 
-
-    /**
-     * Searches in the named context or object for entries that satisfy the 
-     * given search filter. Performs the search as specified by the search 
-     * controls.
-     * 
-     * @param name the name of the context or object to search
-     * @param filter the filter expression to use for the search; may not be 
-     * null
-     * @param cons the search controls that control the search. If null, 
-     * the default search controls are used (equivalent to 
-     * (new SearchControls())).
-     * @return an enumeration of SearchResults of the objects that satisfy 
-     * the filter; never null
-     * @exception InvalidSearchFilterException if the search filter specified 
-     * is not supported or understood by the underlying directory
-     * @exception InvalidSearchControlsException if the search controls 
-     * contain invalid settings
-     * @exception NamingException if a naming exception is encountered
-     */
-    public NamingEnumeration search(String name, String filter, 
-                                    SearchControls cons)
-        throws NamingException {
+    public NamingEnumeration search(String name, String filter, SearchControls cons) throws NamingException {
         throw new OperationNotSupportedException();
     }
 
-
-    /**
-     * Searches in the named context or object for entries that satisfy the 
-     * given search filter. Performs the search as specified by the search 
-     * controls.
-     * 
-     * @param name the name of the context or object to search
-     * @param filterExpr the filter expression to use for the search. 
-     * The expression may contain variables of the form "{i}" where i is a 
-     * nonnegative integer. May not be null.
-     * @param filterArgs the array of arguments to substitute for the 
-     * variables in filterExpr. The value of filterArgs[i] will replace each 
-     * occurrence of "{i}". If null, equivalent to an empty array.
-     * @param cons the search controls that control the search. If null, the 
-     * default search controls are used (equivalent to (new SearchControls())).
-     * @return an enumeration of SearchResults of the objects that satisy the 
-     * filter; never null
-     * @exception ArrayIndexOutOfBoundsException if filterExpr contains {i} 
-     * expressions where i is outside the bounds of the array filterArgs
-     * @exception InvalidSearchControlsException if cons contains invalid 
-     * settings
-     * @exception InvalidSearchFilterException if filterExpr with filterArgs 
-     * represents an invalid search filter
-     * @exception NamingException if a naming exception is encountered
-     */
-    public NamingEnumeration search(String name, String filterExpr, 
-                                    Object[] filterArgs, SearchControls cons)
-        throws NamingException {
+    public NamingEnumeration search(String name, String filterExpr, Object[] filterArgs, SearchControls cons)
+            throws NamingException {
         throw new OperationNotSupportedException();
     }
 
-
-    // ------------------------------------------------------ Protected Methods
-
-    
-    /**
-     * Check if a VirtualFile is a regular file or a folder.
-     */
-    protected boolean isFile(VirtualFile file)
-       throws IOException {
-       return (file.isLeaf() || (file.getSize() > 0));
-    }
-    
-
-    /**
-     * Entry tree lookup.
-     */
-    protected VirtualFile treeLookup(Name name)
-        throws IOException {
+    protected VirtualFile treeLookup(Name name) {
         if (base == null)
             return null;
         if (name.isEmpty())
@@ -765,77 +225,45 @@
             if (name.get(i).length() == 0)
                 continue;
             currentFile = currentFile.getChild(name.get(i));
-            if (currentFile == null)
+            if (!currentFile.exists())
                 return null;
         }
         return currentFile;
     }
 
+    protected ArrayList<NamingEntry> list(VirtualFile entry) {
 
-    /**
-     * List children as objects.
-     */
-    protected ArrayList<NamingEntry> list(VirtualFile entry)
-        throws IOException {
-        
         ArrayList<NamingEntry> entries = new ArrayList<NamingEntry>();
-        if (!isFile(entry)) {
+        if (entry.isDirectory()) {
             Iterator<VirtualFile> children = entry.getChildren().iterator();
             NamingEntry namingEntry = null;
 
             while (children.hasNext()) {
                 VirtualFile current = children.next();
                 Object object = null;
-                if (!isFile(current)) {
+                if (current.isDirectory()) {
                     object = new VFSDirContext(current);
                 } else {
                     object = new VFSResource(current);
                 }
-                namingEntry = new NamingEntry
-                (current.getName(), object, NamingEntry.ENTRY);
+                namingEntry = new NamingEntry(current.getName(), object, NamingEntry.ENTRY);
                 entries.add(namingEntry);
             }
         }
-        
+
         return entries;
-        
+
     }
 
-
-    // ------------------------------------------------ WARResource Inner Class
-
-
-    /**
-     * This specialized resource implementation avoids opening the IputStream
-     * to the WAR right away.
-     */
     protected class VFSResource extends Resource {
-        
-        
-        // -------------------------------------------------------- Constructor
-        
-        
+
         public VFSResource(VirtualFile entry) {
             this.entry = entry;
         }
-        
-        
-        // --------------------------------------------------- Member Variables
-        
-        
+
         protected VirtualFile entry;
-        
-        
-        // ----------------------------------------------------- Public Methods
-        
-        
-        /**
-         * Content accessor.
-         * 
-         * @return InputStream
-         */
-        public InputStream streamContent()
-            throws IOException {
+
+        public InputStream streamContent() throws IOException {
             if (binaryContent == null) {
                 InputStream is = entry.openStream();
                 inputStream = is;
@@ -843,10 +271,7 @@
             }
             return super.streamContent();
         }
-        
-        
+
     }
 
-
 }
-

Modified: trunk/tomcat/src/resources/catalina.properties
===================================================================
--- trunk/tomcat/src/resources/catalina.properties	2010-11-05 12:47:15 UTC (rev 109154)
+++ trunk/tomcat/src/resources/catalina.properties	2010-11-05 12:48:02 UTC (rev 109155)
@@ -3,7 +3,7 @@
 org.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true
 org.apache.jasper.Constants.INJECT_TAGS=true
 org.apache.jasper.Constants.USE_INSTANCE_MANAGER_FOR_TAGS=true
-org.apache.catalina.connector.Connector.X_POWERED_BY=true
+org.apache.catalina.connector.X_POWERED_BY=true
 org.apache.catalina.connector.Request.SESSION_ID_CHECK=true
 org.apache.catalina.connector.CoyoteAdapter.X_POWERED_BY=Servlet/3.0; JBossAS-6
 org.apache.catalina.core.StandardHost.configClass=org.jboss.web.tomcat.service.deployers.JBossContextConfig



More information about the jboss-cvs-commits mailing list