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 servlet test redirectors. 
29   */
30  public class ServletRedirector extends Redirector
31  {
32  
33      /**
34       * The name of the Cactus servlet redirector class.
35       */
36      private static final String SERVLET_REDIRECTOR_CLASS =
37          "org.apache.cactus.server.ServletTestRedirector";
38  
39      /**
40       * The default mapping of the Cactus servlet redirector.
41       */
42      private static final String DEFAULT_SERVLET_REDIRECTOR_MAPPING =
43          "/ServletRedirector";
44      /**
45       * Default constructor.
46       */
47      public ServletRedirector()
48      {
49          this.name = "ServletRedirector";
50          this.mapping = DEFAULT_SERVLET_REDIRECTOR_MAPPING;
51      }
52      
53      /**
54       * Constructor with owner task to set.
55       * @param theOwnerTask object
56       */
57      public ServletRedirector(Logger logger)
58      {
59          this();
60          this.logger = logger;
61      }
62      /**
63       * {@inheritDoc}
64       * @see CactifyWarTask.Redirector#mergeInto
65       */
66      public void mergeInto(WebXml theWebXml)
67      {
68          if (WebXmlUtils.getServletNamesForClass
69              (theWebXml, SERVLET_REDIRECTOR_CLASS).hasNext() && logger != null) 
70          {
71              logger.warn("WARNING: Your web.xml already includes " 
72              + this.name + " mapping. Cactus is adding another one " 
73              + "which may prevent your container from starting.", "WARNING");
74          }
75          WebXmlUtils.addServlet(theWebXml, this.name, SERVLET_REDIRECTOR_CLASS);
76          WebXmlUtils.addServletMapping(theWebXml, this.name, this.mapping);
77          if (this.roles != null)
78          {
79              addSecurity(theWebXml);
80          }
81      }
82      
83  }