cedric      2002/11/05 06:07:09

  Modified:    src/share/org/apache/struts/util RequestUtils.java
  Log:
  Factorize the module name computation in method getModuleName().
  Let selectApplication(...) use this new method.
  
  Revision  Changes    Path
  1.67      +27 -15    
jakarta-struts/src/share/org/apache/struts/util/RequestUtils.java
  
  Index: RequestUtils.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/util/RequestUtils.java,v
  retrieving revision 1.66
  retrieving revision 1.67
  diff -u -r1.66 -r1.67
  --- RequestUtils.java 30 Oct 2002 02:29:15 -0000      1.66
  +++ RequestUtils.java 5 Nov 2002 14:07:09 -0000       1.67
  @@ -1436,31 +1436,45 @@
        */
       public static void selectApplication(HttpServletRequest request,
                                            ServletContext context) {
  +          // Compute module name
  +        String prefix = getModuleName( request, context);
  +        // Expose the resources for this module
  +        selectApplication(prefix, request, context);
  +
  +    }
   
  -        // Acquire the path used to compute the module
  +    /**
  +     * Get the module name to which the specified request belong.
  +     * @param request The servlet request we are processing
  +     * @param context The ServletContext for this web application
  +     */
  +    public static String getModuleName(HttpServletRequest request,
  +                                         ServletContext context) {
  +
  +       // Acquire the path used to compute the module
           String matchPath = (String)
               request.getAttribute(RequestProcessor.INCLUDE_SERVLET_PATH);
  -     
  +
           if (matchPath == null) {
               matchPath = request.getServletPath();
           }
   
           if (LOG.isDebugEnabled())
               {
  -                LOG.debug("Selecting module for path " + matchPath);
  +                LOG.debug("Get module name for path " + matchPath);
               }
   
           String prefix = "";  // Initialize prefix before we try lookup
           String prefixes[] =
               getApplicationPrefixes(context); // Get all other possible prefixes
           int lastSlash = 0;  // Initialize before loop
  -        
  +
           while (prefix.equals("") &&
                  ((lastSlash = matchPath.lastIndexOf("/")) > 0)) {
  -            
  +
               // We may be in a non-default module.  Try to get it's prefix.
               matchPath = matchPath.substring(0, lastSlash);
  -            
  +
               // Match against the list of module prefixes
               for (int i = 0; i < prefixes.length; i++) {
                   if (matchPath.equals(prefixes[i])) {
  @@ -1472,14 +1486,12 @@
   
           if (LOG.isDebugEnabled())
               {
  -                LOG.debug("Activating module " +
  +                LOG.debug("Module name found: " +
                             (prefix.equals("") ? "default" : prefix));
               }
  -
  -        // Expose the resources for this module
  -        selectApplication(prefix, request, context);
  -
  +    return prefix;
       }
  +
   
       /**
        * Return the ApplicationConfig object is it exists, null otherwise.
  
  
  

--
To unsubscribe, e-mail:   <mailto:struts-dev-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:struts-dev-help@;jakarta.apache.org>

Reply via email to