2011/08/05 - Jakarta Cactus has been retired.

For more information, please explore the Attic.

View Javadoc

1   /* 
2    * ========================================================================
3    * 
4    * Licensed to the Apache Software Foundation (ASF) under one or more
5    * contributor license agreements.  See the NOTICE file distributed with
6    * this work for additional information regarding copyright ownership.
7    * The ASF licenses this file to You under the Apache License, Version 2.0
8    * (the "License"); you may not use this file except in compliance with
9    * the License.  You may obtain a copy of the License at
10   * 
11   *   http://www.apache.org/licenses/LICENSE-2.0
12   * 
13   * Unless required by applicable law or agreed to in writing, software
14   * distributed under the License is distributed on an "AS IS" BASIS,
15   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16   * See the License for the specific language governing permissions and
17   * limitations under the License.
18   * 
19   * ========================================================================
20   */
21  package org.apache.cactus.integration.api.cactify;
22  
23  import org.codehaus.cargo.module.webapp.WebXml;
24  import org.codehaus.cargo.module.webapp.WebXmlUtils;
25  import org.codehaus.cargo.util.log.Logger;
26  
27  /**
28   * Implementation of <code>Redirector</code> for JSP test redirectors. 
29   */
30  public class JspRedirector extends Redirector
31  {
32      /**
33       * The default mapping of the Cactus JSP redirector.
34       */
35      private static final String DEFAULT_JSP_REDIRECTOR_MAPPING =
36          "/JspRedirector";
37  
38      /**
39       * Default constructor.
40       */
41      public JspRedirector()
42      {
43          this.name = "JspRedirector";
44          this.mapping = DEFAULT_JSP_REDIRECTOR_MAPPING;
45      }
46      
47      /**
48       * Constructor with owner task to set.
49       * @param theOwnerTask object
50       */
51      public JspRedirector(Logger logger)
52      {
53          this();
54          this.logger = logger;
55      }
56  
57      /**
58       * {@inheritDoc}
59       * @see CactifyWarTask.Redirector#mergeInto
60       */
61      public void mergeInto(WebXml theWebXml)
62      {
63          //The iterator is never null
64          if (WebXmlUtils.getServletNamesForJspFile
65                  (theWebXml, "/jspRedirector.jsp").hasNext() && logger != null) 
66          {
67              logger.warn("WARNING: Your web.xml already includes " 
68              + this.name + " mapping. Cactus is adding another one " 
69              + "which may prevent your container from starting.", "WARNING");
70          }
71          WebXmlUtils.addJspFile(theWebXml, this.name, "/jspRedirector.jsp");
72          WebXmlUtils.addServletMapping(theWebXml, this.name, this.mapping);
73          if (this.roles != null)
74          {
75              addSecurity(theWebXml);
76          }
77      }
78      
79  }