jvanzyl     2002/07/14 16:26:18

  Added:       src/plugins-build/struts/src/java/org/apache/maven/struts
                        Action.java ConfigurationEntry.java FormBean.java
                        Forward.java ObjectConfigurationEntry.java
                        Struts10WarFile.java Struts10WarValidator.java
                        StrutsEntityResolver.java
  Log:
  o Moved to plugin
  
  Revision  Changes    Path
  1.1                  
jakarta-turbine-maven/src/plugins-build/struts/src/java/org/apache/maven/struts/Action.java
  
  Index: Action.java
  ===================================================================
  package org.apache.maven.struts;
  
  /* ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2002 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache" and "Apache Software Foundation" and
   *    "Apache Maven" must not be used to endorse or promote products
   *    derived from this software without prior written permission. For
   *    written permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   *    "Apache Maven", nor may "Apache" appear in their name, without
   *    prior written permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   *
   * ====================================================================
   */
  
  /**
   * A class to hold data about a struts action as found in the struts
   * configuration file
   *
   * @author  dion
   * @version $Id: Action.java,v 1.1 2002/07/14 23:26:17 jvanzyl Exp $
   */
  public class Action extends ObjectConfigurationEntry
  {
      /** context relative path of the submitted request */
      private String path;
      /** "request" or "session" - scope of the form bean for the action */
      private String scope;
      /** Whether the action is to be the default for the web app */
      private String unknown;
      /** Whether the form bean should be validated before the action is called */
      private String validate;
      
      /** Creates a new instance of Action */
      public Action()
      {
      }
      
      /** Getter for property scope.
       * @return Value of property scope.
       */
      public String getScope()
      {
          return scope;
      }
      
      /** Setter for property scope.
       * @param scope New value of property scope.
       */
      public void setScope(String scope)
      {
          this.scope = scope;
      }
      
      /** Getter for property unknown.
       * @return Value of property unknown.
       */
      public String getUnknown()
      {
          return unknown;
      }
      
      /** Setter for property unknown.
       * @param unknown New value of property unknown.
       */
      public void setUnknown(String unknown)
      {
          this.unknown = unknown;
      }
      
      /** Getter for property validate.
       * @return Value of property validate.
       */
      public String getValidate()
      {
          return validate;
      }
      
      /** Setter for property validate.
       * @param validate New value of property validate.
       */
      public void setValidate(String validate)
      {
          this.validate = validate;
      }
      
      /** Getter for property path.
       * @return Value of property path.
       */
      public String getPath()
      {
          return path;
      }
      
      /** Setter for property path.
       * @param path New value of property path.
       */
      public void setPath(String path)
      {
          this.path = path;
      }
  
      /** whether the passed object is the same as this one. In the case of an
       * action object, the path is the unique qualifier. So two objects are equal
       * if they have equal paths
       * @param o any object
       * @return true if o is the same as this object, false otherwise
       */
      public boolean equals(Object o)
      {
          if (o == null)
          {
              return false;
          }
          
          if (getClass() != o.getClass())
          {
              return false;
          }
          
          return getPath().equals(((Action) o).getPath());
      }
      
      /** provides the hashCode of this object, which is determined by simply
       * delegating the responsibility to the <code>path</code> property
       * @return the hashCode of the name if not null, otherwise delegate to the
       * parent class
       */
      public int hashCode()
      {
          if (getPath() != null)
          {
              return getPath().hashCode();
          }
          else
          {
              return super.hashCode();
          }
      }
  
  }
  
  
  
  1.1                  
jakarta-turbine-maven/src/plugins-build/struts/src/java/org/apache/maven/struts/ConfigurationEntry.java
  
  Index: ConfigurationEntry.java
  ===================================================================
  package org.apache.maven.struts;
  
  /* ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2002 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache" and "Apache Software Foundation" and
   *    "Apache Maven" must not be used to endorse or promote products
   *    derived from this software without prior written permission. For
   *    written permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   *    "Apache Maven", nor may "Apache" appear in their name, without
   *    prior written permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   *
   * ====================================================================
   */
  
  /**
   * A class to hold common properties across struts config objects
   *
   * @author  dion
   * @version $Id: ConfigurationEntry.java,v 1.1 2002/07/14 23:26:17 jvanzyl Exp $
   */
  public class ConfigurationEntry
  {
      /** Fully qualified Java class name of the implementation class. */
      private String className;
      /** Unique identifier of the form bean, if any, associated with the action
       */
      private String name;
  
      /** Creates a new instance of ConfigurationEntry */
      public ConfigurationEntry()
      {
      }
  
      /** Getter for property className.
       * @return Value of property className.
       */
      public String getClassName()
      {
          return className;
      }
      
      /** Setter for property className.
       * @param className New value of property className.
       */
      public void setClassName(String className)
      {
          this.className = className;
      }
      
      /** Getter for property name.
       * @return Value of property name.
       */
      public String getName() 
      {
          return name;
      }
      
      /** Setter for property name.
       * @param name New value of property name.
       */
      public void setName(String name) 
      {
          this.name = name;
      }
      
      /** whether the passed object is the same as this one. In the case of a 
       * config object, the name is the unique qualifier. So two objects are equal
       * if they have equal names
       * @param o any object
       * @return true if o is the same as this object, false otherwise
       */
      public boolean equals(Object o)
      {
          if (o == null)
          {
              return false;
          }
          
          if (getClass() != o.getClass())
          {
              return false;
          }
          
          return getName().equals(((ConfigurationEntry) o).getName());
      }
      
      /** provides the hashCode of this object, which is determined by simply
       * delegating the responsibility to the name property
       * @return the hashCode of the name if not null, otherwise delegate to the
       * parent class
       */
      public int hashCode()
      {
          if (getName() != null)
          {
              return getName().hashCode();
          }
          else
          {
              return super.hashCode();
          }
      }
  }
  
  
  
  1.1                  
jakarta-turbine-maven/src/plugins-build/struts/src/java/org/apache/maven/struts/FormBean.java
  
  Index: FormBean.java
  ===================================================================
  package org.apache.maven.struts;
  
  /* ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2002 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache" and "Apache Software Foundation" and
   *    "Apache Maven" must not be used to endorse or promote products
   *    derived from this software without prior written permission. For
   *    written permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   *    "Apache Maven", nor may "Apache" appear in their name, without
   *    prior written permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   *
   * ====================================================================
   */
  
  /**
   * A class to hold data about a Struts form bean as found in the configuration
   * @author  dion
   * @version $Id: FormBean.java,v 1.1 2002/07/14 23:26:17 jvanzyl Exp $
   */
  public class FormBean extends ObjectConfigurationEntry
  {
      /** Creates a new instance of FormBean with null values for the properties
       */
      public FormBean()
      {
      }
      
  }
  
  
  
  1.1                  
jakarta-turbine-maven/src/plugins-build/struts/src/java/org/apache/maven/struts/Forward.java
  
  Index: Forward.java
  ===================================================================
  package org.apache.maven.struts;
  
  /* ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2002 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache" and "Apache Software Foundation" and
   *    "Apache Maven" must not be used to endorse or promote products
   *    derived from this software without prior written permission. For
   *    written permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   *    "Apache Maven", nor may "Apache" appear in their name, without
   *    prior written permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   *
   * ====================================================================
   */
  
  /**
   * A class to represent a global forward as stored in the Struts configuration
   *
   * @author  dion
   * @version $Id: Forward.java,v 1.1 2002/07/14 23:26:17 jvanzyl Exp $
   */
  public class Forward extends ConfigurationEntry
  {
      /** path to forward or redirect to */
      private String path;
      /** whether to redirect or forward to the path*/
      private String redirect;
      
      /** Creates a new instance of Forward */
      public Forward()
      {
      }
      
      /** Getter for property path.
       * @return Value of property path.
       */
      public String getPath()
      {
          return path;
      }
      
      /** Setter for property path.
       * @param path New value of property path.
       */
      public void setPath(String path)
      {
          this.path = path;
      }
      
      /** Getter for property redirect.
       * @return Value of property redirect.
       */
      public String getRedirect()
      {
          return redirect;
      }
      
      /** Setter for property redirect.
       * @param redirect New value of property redirect.
       */
      public void setRedirect(String redirect)
      {
          this.redirect = redirect;
      }
      
  }
  
  
  
  1.1                  
jakarta-turbine-maven/src/plugins-build/struts/src/java/org/apache/maven/struts/ObjectConfigurationEntry.java
  
  Index: ObjectConfigurationEntry.java
  ===================================================================
  package org.apache.maven.struts;
  
  /* ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2002 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache" and "Apache Software Foundation" and
   *    "Apache Maven" must not be used to endorse or promote products
   *    derived from this software without prior written permission. For
   *    written permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   *    "Apache Maven", nor may "Apache" appear in their name, without
   *    prior written permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   *
   * ====================================================================
   */
  
  /**
   * A struts configuration entry that ends up as a java object, and hence
   * has a <code>type</code> property that is a java class name.
   *
   * @author  dion
   * @version 
   * $Id: ObjectConfigurationEntry.java,v 1.1 2002/07/14 23:26:17 jvanzyl Exp $
   */
  public class ObjectConfigurationEntry extends ConfigurationEntry
  {
      /** Fully qualified Java class name of the implementing object */
      private String type;
      
      /** Creates a new instance of ObjectConfigurationEntry */
      public ObjectConfigurationEntry()
      {
      }
      
      /** Getter for property type.
       * @return Value of property type.
       */
      public String getType()
      {
          return type;
      }
      
      /** Setter for property type.
       * @param type New value of property type.
       */
      public void setType(String type) 
      {
          this.type = type;
      }
  
  }
  
  
  
  1.1                  
jakarta-turbine-maven/src/plugins-build/struts/src/java/org/apache/maven/struts/Struts10WarFile.java
  
  Index: Struts10WarFile.java
  ===================================================================
  package org.apache.maven.struts;
  
  /* ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2002 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache" and "Apache Software Foundation" and
   *    "Apache Maven" must not be used to endorse or promote products
   *    derived from this software without prior written permission. For
   *    written permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   *    "Apache Maven", nor may "Apache" appear in their name, without
   *    prior written permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   *
   * ====================================================================
   */
  
  import java.io.File;
  import java.io.InputStream;
  import java.io.IOException;
  import java.util.ArrayList;
  import java.util.Iterator;
  import java.util.List;
  import java.util.jar.JarEntry;
  
  import org.apache.maven.j2ee.WarFile;
  
  import org.dom4j.Document;
  import org.dom4j.DocumentException;
  import org.dom4j.Element;
  import org.dom4j.io.SAXReader;
  
  /**
   * Encapsulates a Struts 1.0 War File. Holds functionality to access Struts
   * specific resources and data in the war.
   * @author  dion
   * @version $Id: Struts10WarFile.java,v 1.1 2002/07/14 23:26:17 jvanzyl Exp $
   */
  public class Struts10WarFile extends WarFile
  {
      /** Default location of Struts configuration file in the war */
      public static final String DEFAULT_CONFIG = "WEB-INF/struts-config.xml";
      /** property for the location of the Struts configuration file in the war */
      private String config = Struts10WarFile.DEFAULT_CONFIG;
      /** Default name of the action servlet in web.xml */
      public static final String DEFAULT_ACTIONSERVLET_NAME = "action";
      /** name of the action servlet in web.xml */
      private String actionServletName = 
          Struts10WarFile.DEFAULT_ACTIONSERVLET_NAME;
      
      /** 
       * Creates a new instance of Struts10WarFile
       * @param name the {@link File file} name of a war file containing a Struts
       * web application
       * @throws IOException when an I/O error occurs
       */
      public Struts10WarFile(String name) throws IOException
      {
          super(name);
      }
      
      /** 
       * Creates a new instance of Struts10WarFile
       * @param name the {@link File file} name of a war file containing a Struts
       * web application
       * @param verify whether or not to verify the war file if it is signed
       * @throws IOException when an I/O error occurs     */
      public Struts10WarFile(String name, boolean verify) throws IOException
      {
          super(name, verify);
      }
      
      /** 
       * Creates a new instance of Struts10WarFile
       * @param warFile a J2EE .war {@link File file} containing a Struts web
       * application
       * @throws IOException when an I/O error occurs
       */
      public Struts10WarFile(File warFile) throws IOException
      {
          super(warFile);
      }
  
      /** 
       * Creates a new instance of Struts10WarFile
       * @param warFile a J2EE .war {@link File file} containing a Struts web
       * application
       * @param verify whether or not to verify the war file if it is signed
       * @throws IOException when an I/O error occurs
       */
      public Struts10WarFile(File warFile, boolean verify) throws IOException
      {
          super(warFile, verify);
      }
  
      /** 
       * Creates a new instance of Struts10WarFile
       * @param warFile a J2EE .war {@link File file} containing a Struts web
       * application
       * @param verify whether or not to verify the war file if it is signed
       * @param mode the mode in which the file is to be opened
       * @throws IOException when an I/O error occurs
       */
      public Struts10WarFile(File warFile, boolean verify, int mode) 
          throws IOException
      {
          super(warFile, verify, mode);
      }
      
      /** Provide the location of the Struts configuration file in the war.
       * @return Value of property config.
       */
      public String getConfig()
      {
          return config;
      }
      
      /** Set the location of the Struts configuration file in the war.
       * @param config New value of property config.
       */
      public void setConfig(String config)
      {
          this.config = config;
      }
      
      /**
       * Retrieves the Struts configuration (as specified by the config property)
       * entry if it exists.
       * @return a {@link JarEntry} for Struts config
       */
      public JarEntry getStrutsConfigEntry()
      {
          return getJarEntry(getConfig());
      }
   
     /** Get the Struts configuration back as a dom4j Document, for easier 
       * processing
       * @return a {@link Document} representing the web.xml
       * @throws IOException if there are any issues reading the web.xml
       * or producing the xml document
       */
      private Document getStrutsConfig() throws IOException
      {
          if (getStrutsConfigEntry() == null)
          {
              throw new IOException("Attempted to get non-existent config");
          }
          try 
          {
              SAXReader xmlReader = new SAXReader(false);
              xmlReader.setEntityResolver(new StrutsEntityResolver());
              InputStream configStream = getInputStream(getStrutsConfigEntry());
              Document configXml = xmlReader.read(configStream);
              return configXml;
          }
          catch (DocumentException de)
          {
              de.printStackTrace();
              throw new IOException(de.getMessage());
          }
      }
      
      /** retrieves the form beans defined in the struts configuration file
       * @return a collection of {@link FormBean form beans}
       * @throws IOException when there are problems reading from the war
       */
      public List getFormBeans() throws IOException
      {
          List formBeans = new ArrayList();
          Document config = getStrutsConfig();
          List formBeanNodes = config.selectNodes(
              "/struts-config/form-beans/form-bean");
          Element formBeanNode = null;
          FormBean formBean = null;
          for (Iterator nodes = formBeanNodes.iterator(); nodes.hasNext();)
          {
              formBeanNode = (Element) nodes.next();
              formBean = new FormBean();
              formBean.setClassName(formBeanNode.attributeValue("className"));
              formBean.setName(formBeanNode.attributeValue("name"));
              formBean.setType(formBeanNode.attributeValue("type"));
              formBeans.add(formBean);
          }
          
          return formBeans;
      }
      
      /** retrieve the actions defined in the struts configuration file
       * @return a {@link List] of {@link Action actions}
       * @throws IOException when there are problems reading from the war
       */
      public List getActions() throws IOException
      {
          List actions = new ArrayList();
          Document config = getStrutsConfig();
          List actionNodes = config.selectNodes(
              "/struts-config/action-mappings/action");
          Element actionNode = null;
          Action action = null;
          for (Iterator nodes = actionNodes.iterator(); nodes.hasNext();)
          {
              actionNode = (Element) nodes.next();
              action = new Action();
              action.setClassName(actionNode.attributeValue("className"));
              action.setName(actionNode.attributeValue("name"));
              action.setPath(actionNode.attributeValue("path"));
              action.setScope(actionNode.attributeValue("scope"));
              action.setType(actionNode.attributeValue("type"));
              action.setUnknown(actionNode.attributeValue("unknown"));
              action.setValidate(actionNode.attributeValue("validate"));
              actions.add(action);
          }
          return actions;
      }
      
      /** retrieves the type attribute of the &lt;form-beans&gt; element if
       * it exists, or null otherwise
       * @return the form-bean type attribute
       * @throws IOException when there are problems reading from the war
       */
      public String getFormBeansType() throws IOException
      {
          String type = null;
          Element formBeans = (Element) getStrutsConfig().selectSingleNode(
              "/struts-config/form-beans");
          if (formBeans != null)
          {
              type = formBeans.attributeValue("type");
          }
          return type;
      }
      
      /** retrieves the type attribute of the &lt;global-forwards&gt; element if
       * it exists, or null otherwise
       * @return the global-forwards type attribute
       * @throws IOException when there are problems reading from the war
       */
      public String getGlobalForwardsType() throws IOException
      {
          String type = null;
          Element forwards = (Element) getStrutsConfig().selectSingleNode(
              "/struts-config/global-forwards");
          if (forwards != null)
          {
              type = forwards.attributeValue("type");
          }
          return type;
      }
  
      /** retrieve the global forwards defined in the struts configuration
       * @return a {@link List} of {@link Forward forwards}
       * @throws IOException when there are problems reading from the war
       */
      public List getForwards() throws IOException
      {
          List forwards = new ArrayList();
          Document config = getStrutsConfig();
          List nodes = config.selectNodes(
              "/struts-config/global-forwards/forward");
          Element element = null;
          Forward forward = null;
          for (int index = 0; index < nodes.size(); index++)
          {
              element = (Element) nodes.get(index);
              forward = new Forward();
              forward.setName(element.attributeValue("name"));
              forward.setPath(element.attributeValue("path"));
              if (element.attribute("className") != null)
              {
                  forward.setClassName(element.attributeValue("className"));
              }
              if (element.attribute("redirect") != null)
              {
                  forward.setRedirect(element.attributeValue("redirect"));
              }
              forwards.add(forward);
          }
          
          return forwards;
      }
      
      /** retrieve the url pattern for the action servlet, or null if not found
       * @return the &lt;url-pattern&gt provided for the servlet named by
       *      {@link #getActionServletName}
       * @throws IOException when there are problems reading from the war
       */
      public String getActionServletPattern() throws IOException
      {
          return (String) getServletMappings().get(getActionServletName());
      }
      
      /** Getter for property actionServletName.
       * @return Value of property actionServletName.
       */
      public String getActionServletName()
      {
          return actionServletName;
      }
      
      /** Setter for property actionServletName.
       * @param actionServletName New value of property actionServletName.
       */
      public void setActionServletName(String actionServletName)
      {
          if (actionServletName == null) 
          {
              throw new NullPointerException("action servlet name can't be null");
          }
          this.actionServletName = actionServletName;
      }
      
   }
  
  
  
  1.1                  
jakarta-turbine-maven/src/plugins-build/struts/src/java/org/apache/maven/struts/Struts10WarValidator.java
  
  Index: Struts10WarValidator.java
  ===================================================================
  package org.apache.maven.struts;
  
  /* ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2002 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache" and "Apache Software Foundation" and
   *    "Apache Maven" must not be used to endorse or promote products
   *    derived from this software without prior written permission. For
   *    written permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   *    "Apache Maven", nor may "Apache" appear in their name, without
   *    prior written permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   *
   * ====================================================================
   */
  
  import java.io.IOException;
  import java.util.HashMap;
  import java.util.List;
  import java.util.Map;
  
  import org.apache.commons.collections.CollectionUtils;
  import org.apache.commons.lang.Strings;
  import org.apache.maven.j2ee.WarValidator;
  import org.apache.maven.j2ee.WarClassLoader;
  import org.apache.regexp.RE;
  import org.apache.regexp.RESyntaxException;
  
  /**
   * A class that validates a Struts 1.0 War File.
   * Specific validations performed are:
   * <ol>
   *   <li>Must pass validation as a 'standard' war file</li>
   *   <li>File has a struts configuration file</li>
   *   <li>&lt;form-bean&gt;s must have a valid <code>type</code> and
   *      <code>className</code> that exist in the war</li>
   *   <li>&lt;action&gt;s must have a valid <code>type</code>, 
   *      <code>className</code> that exist in the war</li>
   *   <li>&lt;action&gt; <code>name</code>s must refer to a &lt;form-bean&gt;
   *      in the struts configuraion</li>
   *   <li>&lt;action&gt; <code>scope</code> must be either <code>request</code>
   *      or <code>session</code></li>
   *   <li>&lt;action&gt; <code>unknown</code> and <code>validate</code> must
   *      be <code>true</code> or <code>false</code></li>
   *   <li>&lt;global-forwards&gt; <code>type</code> must be a class in the war
   *   </li>
   *   <li>&lt;forward&gt; <code>redirect</code> must be <code>true</code> or
   *      <code>false</code></li>
   *   <li>&lt;forward&gt; <code>path</code> must refer to either a file in the
   *      war (e.g. a jsp), or an action defined in the struts configuration</li>
   * </ol>
   *
   * @author  dion
   * @version $Id: Struts10WarValidator.java,v 1.1 2002/07/14 23:26:17 jvanzyl Exp $
   */
  public class Struts10WarValidator extends WarValidator
  {
      /** the location within the war of the Struts configuration file.
       * By default this takes the value of the {@link 
       * Struts10WarFile#DEFAULT_CONFIG default config}
       */
      private String config = Struts10WarFile.DEFAULT_CONFIG;
      /** */
      private String actionServletName = 
          Struts10WarFile.DEFAULT_ACTIONSERVLET_NAME;
      
      /** Creates a new instance of Struts10WarValidator */
      public Struts10WarValidator()
      {
      }
      
      /** Validate struts specific war features here
       */
      protected void validateWarContents()
      {
          try 
          {
              super.validateWarContents();
              Struts10WarFile strutsWar = new Struts10WarFile(getWarFileName());
              strutsWar.setConfig(getConfig());
              validateStrutsConfig(strutsWar);
              validateFormBeans(strutsWar);
              validateActions(strutsWar);
              validateForwards(strutsWar);
          }
          catch (IOException ioe)
          {
              ioe.printStackTrace();
              error("Error reading struts war file");
          }
      }
      
      /** Getter for Struts config location within the war (no leading slash).
       * e.g. <code>WEB-INF/struts-config.xml</code>
       * @return Value of property config.
       */
      public String getConfig()
      {
          return config;
      }
      
      /** Setter for config location within the war (no leading slash)
       * @param config New value of property config.
       */
      public void setConfig(String config)
      {
          this.config = config;
      }
      
      /** validations for the struts configuration file 
       * @param strutsWar - the struts web app being validated
       */
      private void validateStrutsConfig(Struts10WarFile strutsWar)
      {
          info("validating Struts Configuration");
          if (strutsWar.getStrutsConfigEntry() == null)
          {
              error("Struts Configuration: '" + strutsWar.getConfig() + 
                  "' not found in the war file");
          }
      }
      
      /** validations for the form beans in the config
       * @param strutsWar - the struts web app being validated
       * @throws IOException when there are problems reading the war
       */
      private void validateFormBeans(Struts10WarFile strutsWar) throws IOException
      {
          info("validating Struts Form Beans");
          List formBeans = strutsWar.getFormBeans();
          FormBean bean = null;
          ClassLoader loader = new WarClassLoader(strutsWar, 
              getClass().getClassLoader());
          if (strutsWar.getFormBeansType() != null)
          {
              validateClass(strutsWar.getFormBeansType(), loader);
          }
          for (int index = 0; index < formBeans.size(); index++)
          {
              bean = (FormBean) formBeans.get(index);
              if (CollectionUtils.cardinality(bean, formBeans) > 1)
              {
                  error("form bean is a duplicate (by name)");
              }
              info("validating form bean: '" + bean.getName() + "', class: '" +
                  bean.getType() + "'");
              validateClass(bean.getType(), loader);
              if (bean.getClassName() != null)
              {
                  validateClass(bean.getClassName(), loader);
              }
          }
      }
      
      /** validations for the actions in the config
       * @param war the struts web app being validated
       * @throws IOException when there are problems reading the war
       */
      private void validateActions(Struts10WarFile war) throws IOException
      {
          info("validating Struts Actions");
          List actions = war.getActions();
          Action action = null;
          ClassLoader loader = new WarClassLoader(war, 
              getClass().getClassLoader());
          List formBeans = war.getFormBeans();
          Map formBeansByName = new HashMap();
          // put form beans into a map to find them easier
          FormBean formBean = null;
          for (int index = 0; index < formBeans.size(); index++)
          {
              formBean = (FormBean) formBeans.get(index);
              formBeansByName.put(formBean.getName(), formBean);
          }
          // check actions
          for (int index = 0; index < actions.size(); index++) 
          {
              action = (Action) actions.get(index);
              if (CollectionUtils.cardinality(action, actions) > 1)
              {
                  error("action is a duplicate (by path)");
              }
              validateAction(action, formBeansByName, loader);
          } // end for all actions
      } // end method
      
      /** validate a string that must contain a boolean value or be null
       * @param value the string to be validated
       * @return true if the provided string is true, false or null
       */
      private boolean isBoolean(String value) 
      {
          return value == null || value.equals("true") || value.equals("false");
      }
      
      /** validate the provided action object
       * @param action the action to be validated
       * @param formBeans the form beans for the war that the actions came from
       * @param loader a {@link ClassLoader} to verify classes are from the war
       */
      private void validateAction(Action action, Map formBeans, ClassLoader 
          loader)
      {
          info("validating action for path: '" + action.getPath() + "'");
          if (action.getClassName() != null)
          {
              validateClass(action.getClassName(), loader);
          }
          if (action.getName() != null && 
              formBeans.get(action.getName()) == null)
          {
              error("action refers to a non-existent form bean: '" +
                      action.getName() + "'");
          }
          if (!action.getPath().startsWith("/"))
          {
              error("action path (" + action.getPath() + ") doesn't start " +
                  "with a '/'");
          }
          if (action.getScope() != null && !(
              action.getScope().equals("request") || 
              action.getScope().equals("session")))
          {
              error("scope (" + action.getScope() + ") is not 'request' or " +
                  "'session'");
          }
          if (action.getType() != null)
          {
              validateClass(action.getType(), loader);
          }
          if (!isBoolean(action.getUnknown())) // true or false only
          {
              error("unknown attribute is not 'true' or 'false'");
          }
          if (!isBoolean(action.getValidate())) // true or false only
          {
              error("validate attribute is not 'true' or 'false'");
          }
      }
      
      /** validate the global forwards in the configuration
       * @param war the war file to be used for validating
       * @throws IOException when there are problems reading the war
       */
      private void validateForwards(Struts10WarFile war) throws IOException
      {
          info("validating global forwards");
          ClassLoader loader = new WarClassLoader(war, 
              getClass().getClassLoader());
  
          if (war.getGlobalForwardsType() != null)
          {
              validateClass(war.getGlobalForwardsType(), loader);
          }
          List forwards = war.getForwards();
          Forward forward = null;
          for (int index = 0; index < forwards.size(); index++)
          {
              forward = (Forward) forwards.get(index);
              info("validating forward '" + forward.getName() + "', path: '" + 
                  forward.getPath() + "'");
              if (CollectionUtils.cardinality(forward, forwards) > 1)
              {
                  error("forward is a duplicate (by name)");
              }
              validateForward(war, forward, loader);
          }
      }
      
      /** 
       * Validate a single global forward.
       *
       * @param war the war file the forward is from
       * @param forward the forward to be validated
       * @param loader a class loader for validating classes are in the war
       * @throws IOException when there are issues reading the war
       */
      private void validateForward(Struts10WarFile war, Forward forward,
          ClassLoader loader) throws IOException
      {
          // check className, if provided
          if (forward.getClassName() != null)
          {
              validateClass(forward.getClassName(), loader);
          }
          // check name
          if (Strings.isEmpty(forward.getName()))
          {
              error("name attribute is required");
          }
          // check path
          String path = forward.getPath();
          int queryStringStart = path.indexOf("?");
          if (queryStringStart != -1)
          {
              path = path.substring(0, queryStringStart);
          }
          if (!war.hasFile(path))
          {
              try
              {
                  // could be an action - check to see if it matches the pattern 
                  // for action servlet, if it does, extract the action path, and
                  // make sure it's in the list of actions
                  String pattern = war.getActionServletPattern();
                  // escape '.', as it has special meaning to regular exprs
                  pattern = Strings.replace(pattern, ".", "\\.");
                  // change * to (*) to group matching characters for access
                  pattern = Strings.replace(pattern, "*", "(.*)");
                  RE regexp = new RE(pattern);
                  if (regexp.match(path))
                  {
                      String actionPath = regexp.getParen(1);
                      Action dummyAction = new Action();
                      dummyAction.setPath(actionPath);
                      if (!war.getActions().contains(dummyAction))
                      {
                          error("action path for forward (" + actionPath + ")" +
                              " not found");
                      }
                  }
                  else
                  {
                      error("No action or web resource found for '" + path + "'");
                  }
              }
              catch (RESyntaxException e)
              {
                  throw new IllegalStateException("bad regular expression created"
                      + " from action servlet url-pattern in web.xml " +
                      e.getMessage());
              }
          }
          // check redirect
          if (!isBoolean(forward.getRedirect()))
          {
              error("redirect attribute is not 'true' or 'false'");
          }
      }
  } // end class
  
  
  
  1.1                  
jakarta-turbine-maven/src/plugins-build/struts/src/java/org/apache/maven/struts/StrutsEntityResolver.java
  
  Index: StrutsEntityResolver.java
  ===================================================================
  package org.apache.maven.struts;
  
  /* ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2002 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache" and "Apache Software Foundation" and
   *    "Apache Maven" must not be used to endorse or promote products
   *    derived from this software without prior written permission. For
   *    written permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   *    "Apache Maven", nor may "Apache" appear in their name, without
   *    prior written permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   *
   * ====================================================================
   */
  
  import org.apache.maven.j2ee.J2EEEntityResolver;
  
  /**
   * A class to resolve external entity definitions for struts artifacts.
   *
   * @author  dion
   * @version $Id: StrutsEntityResolver.java,v 1.1 2002/07/14 23:26:17 jvanzyl Exp $
   */
  public class StrutsEntityResolver extends J2EEEntityResolver
  {
    
      /** Creates a new instance of StrutsEntityResolver, adding the 
       */
      public StrutsEntityResolver()
      {
          getIdToResource().put(
              "-//Apache Software Foundation//DTD Struts Configuration 1.0//EN",
              "/struts-config_1_0.dtd");
          getIdToResource().put(
              "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN",
              "/struts-config_1_1.dtd");
      }
  }
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to