cziegeler    2002/09/11 01:26:45

  Modified:    src/java/org/apache/cocoon/acting ServerPagesAction.java
                        RequestParameterExistsAction.java
                        SessionInvalidatorAction.java
                        SessionPropagatorAction.java
                        ResourceExistsAction.java SessionStateAction.java
                        ScriptAction.java SessionIsValidAction.java
                        SessionValidatorAction.java RequestParamAction.java
                        SendmailAction.java
  Log:
  Some more logging and exception handling updates
  
  Revision  Changes    Path
  1.9       +4 -6      
xml-cocoon2/src/java/org/apache/cocoon/acting/ServerPagesAction.java
  
  Index: ServerPagesAction.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/acting/ServerPagesAction.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- ServerPagesAction.java    31 Jul 2002 13:13:21 -0000      1.8
  +++ ServerPagesAction.java    11 Sep 2002 08:26:44 -0000      1.9
  @@ -154,7 +154,9 @@
           String source, Parameters parameters)
         throws Exception {
   
  -        getLogger().debug("serverpage source: " + source);
  +        if (this.getLogger().isDebugEnabled()) {
  +            getLogger().debug("serverpage source: " + source);
  +        }
   
           String outputKey = parameters.getParameter("output-attribute", null);
           Map resultMap = new HashMap();
  @@ -188,10 +190,6 @@
               // Let the XSP do it's stuff
               generator.generate();
               success = objectModel.get(ACTION_SUCCESS_OBJECT);
  -
  -        } catch (Exception e) {
  -            getLogger().warn("serverpage error", e);
  -            throw e;
   
           } finally {
               // Release generator
  
  
  
  1.8       +217 -127  
xml-cocoon2/src/java/org/apache/cocoon/acting/RequestParameterExistsAction.java
  
  Index: RequestParameterExistsAction.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/acting/RequestParameterExistsAction.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- RequestParameterExistsAction.java 22 Feb 2002 06:59:26 -0000      1.7
  +++ RequestParameterExistsAction.java 11 Sep 2002 08:26:44 -0000      1.8
  @@ -109,149 +109,239 @@
               String source,
               Parameters parameters
               )
  -    throws Exception
  -    {
  +    throws Exception {
           Request request = ObjectModelHelper.getRequest(objectModel);
  -        if (request == null) {
  -          getLogger().error("RequestInfoAction: no request object!");
  -          return(null);
  -        }
           HashMap results = new HashMap();
  -    HashMap items = new HashMap();
  -    int wildcards = 0;
  -
  -    // check default parameters for existence
  -    getLogger().debug("checking default parameters");
  -    Iterator reqParams = settings.values().iterator();
  -    while ( reqParams.hasNext() ) {
  -        String paramName = (String) reqParams.next();
  -        StringParts sp = splitParameter( paramName );
  -        if ( sp != null ) {
  -        // wildcard: special care required (deferred until later)
  -        items.put( new Integer( wildcards++ ), sp );
  -        getLogger().debug("(default) deferring "+paramName);
  -        } else {
  -        String paramValue = request.getParameter( paramName );
  -        if ( paramValue == null ) {
  -            return null;
  -        }
  -        results.put( paramName, paramValue );
  -        }
  -    }
  +        HashMap items = new HashMap();
  +        int wildcards = 0;
   
  -    // check parameters for existence
  -    getLogger().debug("checking sitemap parameters");
  -    String params = parameters.getParameter( "parameters", null) ;
  -    if ( params != null ) {
  -        StringTokenizer st = new StringTokenizer( params );
  -        while ( st.hasMoreTokens() ) {
  -        String paramName = st.nextToken();
  -        StringParts sp = splitParameter( paramName );
  -        if ( sp != null ) {
  -            // wildcard: special care required (deferred until later)
  -            items.put(new Integer(wildcards++), sp );
  -            getLogger().debug("deferring "+paramName);
  -        } else {
  -
  -            String paramValue = request.getParameter( paramName );
  -            if ( paramValue == null ) {
  -            return null;
  +        // check default parameters for existence
  +        if (this.getLogger().isDebugEnabled()) {
  +            getLogger().debug("checking default parameters");
  +        }
  +        Iterator reqParams = settings.values().iterator();
  +        while (reqParams.hasNext()) {
  +            String paramName = (String) reqParams.next();
  +            StringParts sp = splitParameter(paramName);
  +            if (sp != null) {
  +                // wildcard: special care required (deferred until later)
  +                items.put(new Integer(wildcards++), sp);
  +                if (this.getLogger().isDebugEnabled()) {
  +                    getLogger().debug("(default) deferring " + paramName);
  +                }
  +            } else {
  +                String paramValue = request.getParameter(paramName);
  +                if (paramValue == null) {
  +                    return null;
  +                }
  +                results.put(paramName, paramValue);
               }
  -            results.put( paramName, paramValue );
  -        }
           }
  -    }
   
  -    if ( wildcards != 0 ) {
  -        // special care for parameters with wildcard
  -        //
  -        getLogger().debug("deferred checking for parameters: "+wildcards);
  -
  -        // first one
  -        //
  -        getLogger().debug(" checking first");
  -        HashMap values = new HashMap();
  -        StringParts sp1 = (StringParts) items.get( new Integer( 0 ) );
  -        getLogger().debug("  Parameter is ["+sp1.prefix+" * "+sp1.pstfix+"] ");
  -        Enumeration requestParams = request.getParameterNames();
  -        Boolean dummy = new Boolean( true );
  -        while ( requestParams.hasMoreElements() ) {
  -        String paramName = (String) requestParams.nextElement();
  -        String match = getMatch( paramName, sp1 );
  -        if ( match != null ) {
  -            getLogger().debug("  value is >"+match+"< "+ sp1.prefix.length()+" "+ 
paramName.length()+ " " +sp1.pstfix.length());
  -            values.put( match, dummy );
  -            sp1.count++;
  -            getLogger().debug("   Parameter "+sp1.prefix+"*"+sp1.pstfix+" matches 
"+paramName+" ("+sp1.count+" so far)");
  -
  -            String paramValue = request.getParameter( paramName );
  -            if ( paramValue == null ) {
  -            return null;
  +        // check parameters for existence
  +        if (this.getLogger().isDebugEnabled()) {
  +            getLogger().debug("checking sitemap parameters");
  +        }
  +        String params = parameters.getParameter("parameters", null);
  +        if (params != null) {
  +            StringTokenizer st = new StringTokenizer(params);
  +            while (st.hasMoreTokens()) {
  +                String paramName = st.nextToken();
  +                StringParts sp = splitParameter(paramName);
  +                if (sp != null) {
  +                    // wildcard: special care required (deferred until later)
  +                    items.put(new Integer(wildcards++), sp);
  +                    if (this.getLogger().isDebugEnabled()) {
  +                        getLogger().debug("deferring " + paramName);
  +                    }
  +                } else {
  +
  +                    String paramValue = request.getParameter(paramName);
  +                    if (paramValue == null) {
  +                        return null;
  +                    }
  +                    results.put(paramName, paramValue);
  +                }
               }
  -            results.put( paramName, paramValue );
  -        }
  -        }
  -
  -        if ( sp1.count == 0 ) {
  -        getLogger().debug("   Parameter "+sp1.prefix+"*"+sp1.pstfix+" matches 
"+sp1.count);
  -        return null;
           }
   
  +        if (wildcards != 0) {
  +            // special care for parameters with wildcard
  +            //
  +            if (this.getLogger().isDebugEnabled()) {
  +                getLogger().debug("deferred checking for parameters: " + wildcards);
  +            }
   
  -        // all other ones
  -        //
  -        getLogger().debug(" checking others");
  -        requestParams = request.getParameterNames();
  -        while ( requestParams.hasMoreElements() ) {
  -        String paramName = (String) requestParams.nextElement();
  -        getLogger().debug("  checking request parameter "+paramName);
  -        for ( int i = wildcards-1; i > 0; i-- ) {
  -            getLogger().debug("   checking against "+i);
  -            StringParts sp = (StringParts) items.get( new Integer( i ) );
  -            String match = getMatch( paramName, sp );
  -            getLogger().debug("   Parameter is ["+sp.prefix+" * "+sp.pstfix+"] ");
  -            if ( match != null ) {
  -            getLogger().debug("   Parameter "+sp.prefix+"*"+sp.pstfix+" matches 
"+paramName+" ("+sp.count+" so far)");
  -            if ( values.containsKey( match ) ) {
  -                sp.count++;
  -                getLogger().debug("   "+paramName+" (verified)");
  +            // first one
  +            //
  +            if (this.getLogger().isDebugEnabled()) {
  +                getLogger().debug(" checking first");
  +            }
  +            HashMap values = new HashMap();
  +            StringParts sp1 = (StringParts) items.get(new Integer(0));
  +            if (this.getLogger().isDebugEnabled()) {
  +                getLogger().debug(
  +                    "  Parameter is [" + sp1.prefix + " * " + sp1.pstfix + "] ");
  +            }
  +            Enumeration requestParams = request.getParameterNames();
  +            Boolean dummy = new Boolean(true);
  +            while (requestParams.hasMoreElements()) {
  +                String paramName = (String) requestParams.nextElement();
  +                String match = getMatch(paramName, sp1);
  +                if (match != null) {
  +                    if (this.getLogger().isDebugEnabled()) {
  +                        getLogger().debug(
  +                            "  value is >"
  +                            + match
  +                            + "< "
  +                            + sp1.prefix.length()
  +                            + " "
  +                            + paramName.length()
  +                            + " "
  +                            + sp1.pstfix.length());
  +                    }
  +                    values.put(match, dummy);
  +                    sp1.count++;
  +                    if (this.getLogger().isDebugEnabled()) {
  +                        getLogger().debug(
  +                            "   Parameter "
  +                            + sp1.prefix
  +                            + "*"
  +                            + sp1.pstfix
  +                            + " matches "
  +                            + paramName
  +                            + " ("
  +                            + sp1.count
  +                            + " so far)");
  +                    }
  +                    String paramValue = request.getParameter(paramName);
  +                    if (paramValue == null) {
  +                        return null;
  +                    }
  +                    results.put(paramName, paramValue);
  +                }
  +            }
   
  -                String paramValue = request.getParameter( paramName );
  -                if ( paramValue == null ) {
  +            if (sp1.count == 0) {
  +                if (this.getLogger().isDebugEnabled()) {
  +                    getLogger().debug(
  +                       "   Parameter "
  +                        + sp1.prefix
  +                        + "*"
  +                        + sp1.pstfix
  +                        + " matches "
  +                        + sp1.count);
  +                }
                   return null;
  +            }
  +
  +            // all other ones
  +            //
  +            if (this.getLogger().isDebugEnabled()) {
  +                getLogger().debug(" checking others");
  +            }
  +            requestParams = request.getParameterNames();
  +            while (requestParams.hasMoreElements()) {
  +                String paramName = (String) requestParams.nextElement();
  +                if (this.getLogger().isDebugEnabled()) {
  +                    getLogger().debug("  checking request parameter " + paramName);
  +                }
  +                for (int i = wildcards - 1; i > 0; i--) {
  +                    if (this.getLogger().isDebugEnabled()) {
  +                        getLogger().debug("   checking against " + i);
  +                    }
  +                    StringParts sp = (StringParts) items.get(new Integer(i));
  +                    String match = getMatch(paramName, sp);
  +                    if (this.getLogger().isDebugEnabled()) {
  +                        getLogger().debug(
  +                            "   Parameter is ["
  +                            + sp.prefix
  +                            + " * "
  +                            + sp.pstfix
  +                            + "] ");
  +                    }
  +                    if (match != null) {
  +                        if (this.getLogger().isDebugEnabled()) {
  +                            getLogger().debug(
  +                                "   Parameter "
  +                                    + sp.prefix
  +                                    + "*"
  +                                    + sp.pstfix
  +                                    + " matches "
  +                                    + paramName
  +                                    + " ("
  +                                    + sp.count
  +                                    + " so far)");
  +                        }
  +                        if (values.containsKey(match)) {
  +                            sp.count++;
  +                            if (this.getLogger().isDebugEnabled()) {
  +                                getLogger().debug(
  +                                "   " + paramName + " (verified)");
  +                            }
  +                            String paramValue = request.getParameter(paramName);
  +                            if (paramValue == null) {
  +                                return null;
  +                            }
  +                            results.put(paramName, paramValue);
  +
  +                        } else {
  +                            if (this.getLogger().isDebugEnabled()) {
  +                                getLogger().debug(
  +                                    "Match "
  +                                    + match
  +                                    + "not found for "
  +                                    + sp1.prefix
  +                                    + "*"
  +                                    + sp1.pstfix
  +                                    + " but for "
  +                                    + sp.prefix
  +                                    + "*"
  +                                    + sp.pstfix);
  +                            }
  +                            return null;
  +                        }
  +                    }
                   }
  -                results.put( paramName, paramValue );
  +            }
   
  -            } else {
  -                getLogger().debug("Match " + match + "not found for "
  -                          + sp1.prefix + "*" + sp1.pstfix + " but for "
  -                          + sp.prefix + "*" + sp.pstfix);
  -                return null;
  +            // since we enforce that only matches are counted, that exist for
  +            // the first parameter as well, check if every parameter has an
  +            // equal number of matches.
  +            //
  +            if (this.getLogger().isDebugEnabled()) {
  +                getLogger().debug("checking number of matches");
               }
  +            for (int i = wildcards - 1; i > 0; i--) {
  +                StringParts sp = (StringParts) items.get(new Integer(i));
  +                if (sp.count != sp1.count) {
  +                    if (this.getLogger().isDebugEnabled()) {
  +                        getLogger().debug(
  +                            "Found "
  +                            + sp.count
  +                            + " matches for "
  +                            + sp.prefix
  +                            + "*"
  +                            + sp.pstfix
  +                            + " but expected "
  +                            + sp1.count);
  +                    }
  +                    return null;
  +                } else {
  +                    if (this.getLogger().isDebugEnabled()) {
  +                        getLogger().debug(
  +                            "Found "
  +                            + sp.count
  +                            + " matches for "
  +                            + sp.prefix
  +                            + "*"
  +                            + sp.pstfix
  +                            + " as expected");
  +                    }
  +                }
               }
  -        }
  -        }
   
  -        // since we enforce that only matches are counted, that exist for
  -        // the first parameter as well, check if every parameter has an
  -        // equal number of matches.
  -        //
  -        getLogger().debug("checking number of matches");
  -        for ( int i = wildcards-1; i > 0; i-- ) {
  -        StringParts sp = (StringParts) items.get( new Integer( i ) );
  -        if ( sp.count != sp1.count ) {
  -            getLogger().debug("Found " + sp.count + " matches for "
  -                      + sp.prefix + "*" + sp.pstfix + " but expected "
  -                      + sp1.count);
  -            return null;
  -        } else {
  -            getLogger().debug("Found " + sp.count + " matches for "
  -                      + sp.prefix + "*" + sp.pstfix + " as expected");
           }
  -        }
  -
  -    }
  -
   
           return Collections.unmodifiableMap(results);
       }
  
  
  
  1.8       +7 -9      
xml-cocoon2/src/java/org/apache/cocoon/acting/SessionInvalidatorAction.java
  
  Index: SessionInvalidatorAction.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/acting/SessionInvalidatorAction.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- SessionInvalidatorAction.java     22 Feb 2002 06:59:26 -0000      1.7
  +++ SessionInvalidatorAction.java     11 Sep 2002 08:26:44 -0000      1.8
  @@ -79,19 +79,17 @@
               Parameters parameters) throws Exception {
           Request req = ObjectModelHelper.getRequest(objectModel);
   
  -        /* check request validity */
  -        if (req == null) {
  -            getLogger ().debug ("SESSIONINVALIDATOR: no request object");
  -            return null;
  -        }
  -
           /* check session validity */
           Session session = req.getSession (false);
           if (session != null) {
               session.invalidate ();
  -            getLogger ().debug ("SESSIONINVALIDATOR: session invalidated");
  +            if (this.getLogger().isDebugEnabled()) {
  +                getLogger ().debug ("SESSIONINVALIDATOR: session invalidated");
  +            }
           } else {
  -            getLogger ().debug ("SESSIONINVALIDATOR: no session object");
  +            if (this.getLogger().isDebugEnabled()) {
  +                getLogger ().debug ("SESSIONINVALIDATOR: no session object");
  +            }
           }
   
           return EMPTY_MAP; // cut down on object creation
  
  
  
  1.8       +48 -43    
xml-cocoon2/src/java/org/apache/cocoon/acting/SessionPropagatorAction.java
  
  Index: SessionPropagatorAction.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/acting/SessionPropagatorAction.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- SessionPropagatorAction.java      22 Feb 2002 06:59:26 -0000      1.7
  +++ SessionPropagatorAction.java      11 Sep 2002 08:26:44 -0000      1.8
  @@ -102,63 +102,68 @@
           Request req = ObjectModelHelper.getRequest(objectModel);
           HashMap actionMap = new HashMap ();
   
  -    HashMap isDone = new HashMap();
  -    Integer dummy = new Integer(1);
  -
  -        if (req == null) {
  -            getLogger ().debug ("SESSIONPROPAGATOR: no request object");
  -            return null;
  -        }
  +        HashMap isDone = new HashMap();
  +        Integer dummy = new Integer(1);
   
           /* check session validity */
           Session session = req.getSession (false);
           if (session == null) {
  -            getLogger ().debug ("SESSIONPROPAGATOR: no session object");
  +            if (this.getLogger().isDebugEnabled()) {
  +                getLogger ().debug ("SESSIONPROPAGATOR: no session object");
  +            }
               return null;
           }
   
           try {
   
  -        String[] names = parameters.getNames();
  +            String[] names = parameters.getNames();
   
  -        // parameters
  -        for (int i=0; i<names.length; i++) {
  -        String sessionParamName = names[i];
  -                if (sessionParamName == null ||
  -            "".equals (sessionParamName.trim ()))
  +            // parameters
  +            for (int i = 0; i < names.length; i++) {
  +                String sessionParamName = names[i];
  +                if (sessionParamName == null
  +                    || "".equals(sessionParamName.trim()))
                       return null;
  -        isDone.put(sessionParamName, dummy);
  -        String value = parameters.getParameter(sessionParamName);
  -                getLogger().debug ("SESSIONPROPAGATOR: propagating value "
  +                isDone.put(sessionParamName, dummy);
  +                String value = parameters.getParameter(sessionParamName);
  +                if (this.getLogger().isDebugEnabled()) {
  +                    getLogger().debug(
  +                    "SESSIONPROPAGATOR: propagating value "
                           + value
                           + " to session attribute "
                           + sessionParamName);
  -                session.setAttribute (sessionParamName, value);
  -                actionMap.put (sessionParamName, value);
  -        }
  -
  -        // defaults, that are not overridden
  -        for (int i=0; i<defaults.length; i++) {
  -        if (! isDone.containsKey(defaults[i])) {
  -            String sessionParamName = (String) defaults[i];
  -            if (sessionParamName == null ||
  -            "".equals (sessionParamName.trim ()))
  -            return null;
  -            isDone.put(sessionParamName, dummy);
  -            String value = parameters.getParameter(sessionParamName);
  -            getLogger().debug ("SESSIONPROPAGATOR: propagating value "
  -                       + value
  -                       + " to session attribute "
  -                       + sessionParamName);
  -            session.setAttribute (sessionParamName, value);
  -            actionMap.put (sessionParamName, value);
  -        }
  -        }
  -            getLogger().debug ("SESSIONPROPAGATOR: all params propagated "
  -                    + "to session");
  -            return Collections.unmodifiableMap (actionMap);
  +                }
  +                session.setAttribute(sessionParamName, value);
  +                actionMap.put(sessionParamName, value);
  +            }
  +
  +            // defaults, that are not overridden
  +            for (int i = 0; i < defaults.length; i++) {
  +                if (!isDone.containsKey(defaults[i])) {
  +                    String sessionParamName = (String) defaults[i];
  +                    if (sessionParamName == null
  +                        || "".equals(sessionParamName.trim()))
  +                        return null;
  +                    isDone.put(sessionParamName, dummy);
  +                    String value = parameters.getParameter(sessionParamName);
  +                    if (this.getLogger().isDebugEnabled()) {
  +                        getLogger().debug(
  +                            "SESSIONPROPAGATOR: propagating value "
  +                                + value
  +                                + " to session attribute "
  +                                + sessionParamName);
  +                    }  
  +                    session.setAttribute(sessionParamName, value);
  +                    actionMap.put(sessionParamName, value);
  +                }
  +            }
  +            if (this.getLogger().isDebugEnabled()) {
  +                getLogger().debug(
  +                    "SESSIONPROPAGATOR: all params propagated " + "to session");
  +            }
  +            return Collections.unmodifiableMap(actionMap);
           } catch (Exception e) {
  -            getLogger().debug ("exception: ", e);
  +            getLogger().warn("exception: ", e);
           }
           return null;
       }
  
  
  
  1.7       +2 -2      
xml-cocoon2/src/java/org/apache/cocoon/acting/ResourceExistsAction.java
  
  Index: ResourceExistsAction.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/acting/ResourceExistsAction.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- ResourceExistsAction.java 7 Jun 2002 13:15:09 -0000       1.6
  +++ ResourceExistsAction.java 11 Sep 2002 08:26:44 -0000      1.7
  @@ -77,7 +77,7 @@
               src = resolver.resolveURI(urlstring);
               src.getInputStream();
           } catch (Exception e) {
  -            getLogger().debug("ResourceExistsAction: exception: ",e);
  +            getLogger().warn("ResourceExistsAction: exception: ",e);
               return null;
           } finally {
               resolver.release( src );
  
  
  
  1.8       +78 -60    
xml-cocoon2/src/java/org/apache/cocoon/acting/SessionStateAction.java
  
  Index: SessionStateAction.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/acting/SessionStateAction.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- SessionStateAction.java   30 Jun 2002 23:26:57 -0000      1.7
  +++ SessionStateAction.java   11 Sep 2002 08:26:44 -0000      1.8
  @@ -115,7 +115,9 @@
    * @author <a href="mailto:[EMAIL PROTECTED]";>Christian Haul</a>
    * @version CVS $Id$
    */
  -public class SessionStateAction extends AbstractConfigurableAction implements 
ThreadSafe {
  +public class SessionStateAction
  +    extends AbstractConfigurableAction
  +    implements ThreadSafe {
   
       protected String statekey = "org.apache.cocoon.SessionState";
       protected String newstate = null;
  @@ -125,74 +127,90 @@
       /**
        * Configures the Action.
        */
  -    public void configure(Configuration conf) throws ConfigurationException
  -    {
  -    super.configure(conf);
  -
  -    if (settings.containsKey("state-key-prefix"))
  -        statekey = (String) settings.get("state-key-prefix");
  -    if (settings.containsKey("new-state"))
  -        newstate = (String) settings.get("new-state");
  -    if (settings.containsKey("sub-levels"))
  -        sublevels = Integer.parseInt((String) settings.get("sub-levels"));
  -    if (settings.containsKey("state-level"))
  -        mylevel = Integer.parseInt((String) settings.get("state-level"));
  -    }
  -
  -
  -    public Map       act (Redirector redirector,
  -             SourceResolver resolver,
  -             Map objectModel,
  -             String src,
  -             Parameters par) throws Exception
  -    {
  -        Request request = ObjectModelHelper.getRequest(objectModel);
  +    public void configure(Configuration conf) throws ConfigurationException {
  +        super.configure(conf);
   
  -    // read local settings
  -    newstate = par.getParameter("new-state", newstate);
  -    statekey = par.getParameter("state-key", statekey);
  -    sublevels = par.getParameterAsInteger("sublevels", sublevels);
  -    mylevel = par.getParameterAsInteger("state-level", mylevel);
  -
  -    if (newstate == null ) {
  -        getLogger().error("new-state is null");
  -        return null;
  +        if (settings.containsKey("state-key-prefix"))
  +            statekey = (String) settings.get("state-key-prefix");
  +        if (settings.containsKey("new-state"))
  +            newstate = (String) settings.get("new-state");
  +        if (settings.containsKey("sub-levels"))
  +            sublevels = Integer.parseInt((String) settings.get("sub-levels"));
  +        if (settings.containsKey("state-level"))
  +            mylevel = Integer.parseInt((String) settings.get("state-level"));
       }
   
  +    public Map act(
  +        Redirector redirector,
  +        SourceResolver resolver,
  +        Map objectModel,
  +        String src,
  +        Parameters par)
  +        throws Exception {
  +            
  +        Request request = ObjectModelHelper.getRequest(objectModel);
   
  -        if (request != null) {
  -           Session session = request.getSession (false);
  -
  -            if (session != null && request.isRequestedSessionIdValid()) {
  -        String oldstate = null;
  -        if (sublevels == 0) {
  -            oldstate = (String) session.getAttribute(statekey);
  -            session.setAttribute(statekey, newstate);
  -            getLogger().debug(statekey+"="+newstate);
  -
  -        } else { // sublevels != 0
  -            oldstate = (String) session.getAttribute( statekey + 
Integer.toString(mylevel) );
  -            for (int i=mylevel+1; i<=sublevels; i++) {
  -            session.removeAttribute( statekey+Integer.toString(i) );
  -            getLogger().debug("remove "+statekey+Integer.toString(i));
  +        // read local settings
  +        newstate = par.getParameter("new-state", newstate);
  +        statekey = par.getParameter("state-key", statekey);
  +        sublevels = par.getParameterAsInteger("sublevels", sublevels);
  +        mylevel = par.getParameterAsInteger("state-level", mylevel);
  +
  +        if (newstate == null) {
  +            if (this.getLogger().isDebugEnabled()) {
  +                getLogger().error("new-state is null");
               }
  -            session.setAttribute( statekey + Integer.toString(mylevel), newstate);
  -            getLogger().debug(statekey+Integer.toString(mylevel)+"="+newstate);
  +            return null;
           }
  -        getLogger().debug("transition " + oldstate + " -> " + newstate);
   
  -        HashMap map = new HashMap(1);
  -        map.put("newstate", newstate);
  -        return map;
  +        if (request != null) {
  +            Session session = request.getSession(false);
   
  -        } else {
  -                getLogger().warn("A session object was not present or no longer 
valid");
  -        return null;
  +            if (session != null && request.isRequestedSessionIdValid()) {
  +                String oldstate = null;
  +                if (sublevels == 0) {
  +                    oldstate = (String) session.getAttribute(statekey);
  +                    session.setAttribute(statekey, newstate);
  +                    if (this.getLogger().isDebugEnabled()) {
  +                         getLogger().debug(statekey + "=" + newstate);
  +                    }
  +
  +                } else { // sublevels != 0
  +                    oldstate =
  +                        (String) session.getAttribute(
  +                            statekey + Integer.toString(mylevel));
  +                    for (int i = mylevel + 1; i <= sublevels; i++) {
  +                        session.removeAttribute(statekey + Integer.toString(i));
  +                        if (this.getLogger().isDebugEnabled()) {
  +                            getLogger().debug(
  +                                "remove " + statekey + Integer.toString(i));
  +                        }
  +                    }
  +                    session.setAttribute(
  +                        statekey + Integer.toString(mylevel),
  +                        newstate);
  +                    if (this.getLogger().isDebugEnabled()) {
  +                        getLogger().debug(
  +                            statekey + Integer.toString(mylevel) + "=" + newstate);
  +                    }
  +                }
  +                if (this.getLogger().isDebugEnabled()) {
  +                    getLogger().debug("transition " + oldstate + " -> " + newstate);
  +                }
  +
  +                HashMap map = new HashMap(1);
  +                map.put("newstate", newstate);
  +                return map;
  +
  +            } else {
  +                getLogger().warn(
  +                    "A session object was not present or no longer valid");
  +                return null;
               }
           } else {
  -        getLogger().warn("No request object");
  -        return null;
  -    }
  +            getLogger().warn("No request object");
  +            return null;
  +        }
   
       }
   }
  
  
  
  1.10      +7 -3      xml-cocoon2/src/java/org/apache/cocoon/acting/ScriptAction.java
  
  Index: ScriptAction.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/acting/ScriptAction.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- ScriptAction.java 7 Jun 2002 13:15:09 -0000       1.9
  +++ ScriptAction.java 11 Sep 2002 08:26:44 -0000      1.10
  @@ -131,14 +131,18 @@
               mgr.registerBean("scriptaction", this );
               mgr.registerBean("manager", this.manager );
   
  -            getLogger().debug("BSFManager execution begining");
  +            if (this.getLogger().isDebugEnabled()) {
  +                getLogger().debug("BSFManager execution begining");
  +            }
   
               // Execute the script
   
               mgr.exec(BSFManager.getLangFromFilename(systemID), systemID, 0, 0,
                       IOUtils.getStringFromReader(in));
   
  -            getLogger().debug("BSFManager execution complete");
  +            if (this.getLogger().isDebugEnabled()) {
  +                getLogger().debug("BSFManager execution complete");
  +            }
   
               // Figure out what to return
               // TODO: decide on a more robust communication method
  
  
  
  1.8       +7 -8      
xml-cocoon2/src/java/org/apache/cocoon/acting/SessionIsValidAction.java
  
  Index: SessionIsValidAction.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/acting/SessionIsValidAction.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- SessionIsValidAction.java 21 Mar 2002 04:09:19 -0000      1.7
  +++ SessionIsValidAction.java 11 Sep 2002 08:26:44 -0000      1.8
  @@ -79,19 +79,18 @@
               Parameters parameters) throws Exception {
           Request req = ObjectModelHelper.getRequest(objectModel);
   
  -        if (req == null) {
  -            getLogger().debug("No request object");
  -            return null;
  -        }
  -
           /* check session validity */
           Session session = req.getSession (false);
           if (session == null) {
  -            getLogger().debug("No session object");
  +            if (this.getLogger().isDebugEnabled()) {
  +                getLogger().debug("No session object");
  +            }
               return null;
           }
           if (!req.isRequestedSessionIdValid()) {
  -            getLogger().debug("Requested session id is invalid");
  +            if (this.getLogger().isDebugEnabled()) {
  +                getLogger().debug("Requested session id is invalid");
  +            }
               return null;
           }
   
  
  
  
  1.10      +32 -16    
xml-cocoon2/src/java/org/apache/cocoon/acting/SessionValidatorAction.java
  
  Index: SessionValidatorAction.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/acting/SessionValidatorAction.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- SessionValidatorAction.java       25 Aug 2002 08:49:17 -0000      1.9
  +++ SessionValidatorAction.java       11 Sep 2002 08:26:44 -0000      1.10
  @@ -112,15 +112,13 @@
       public Map act (Redirector redirector, SourceResolver resolver, Map 
objectModel, String src,
               Parameters parameters) throws Exception {
           Request req = ObjectModelHelper.getRequest(objectModel);
  -        if (req == null) {
  -            getLogger ().debug ("No request object");
  -            return null;
  -        }
   
           /* check session validity */
           Session session = req.getSession (false);
           if (session == null) {
  -            getLogger ().debug ("No session object");
  +            if (this.getLogger().isDebugEnabled()) {
  +                getLogger ().debug ("No session object");
  +            }
               return null;
           }
   
  @@ -145,8 +143,10 @@
                * old obsoleted method
                */
               if (valstr != null && !"".equals (valstr.trim ())) {
  -                getLogger ().debug ("Validating parameters "
  +                if (this.getLogger().isDebugEnabled()) {
  +                    getLogger ().debug ("Validating parameters "
                           + "as specified via 'validate' parameter");
  +                }
                   /* get list of params to be validated */
                   String[] rparams = Tokenizer.tokenize (valstr, ",", false);
   
  @@ -158,7 +158,9 @@
                   for (int i = 0; i < rparams.length; i ++) {
                       name = rparams[i];
                       if (name == null || "".equals (name.trim ())) {
  -                        getLogger ().debug ("Wrong syntax of the 'validate' 
parameter");
  +                        if (this.getLogger().isDebugEnabled()) {
  +                            getLogger ().debug ("Wrong syntax of the 'validate' 
parameter");
  +                        }
                           return null;
                       }
                       name = name.trim ();
  @@ -169,7 +171,9 @@
                       result = validateParameter (name, null, desc,
                               params, false);
                       if (!result.isOK()) {
  -                        getLogger().debug ("Validation failed for parameter " + 
name);
  +                        if (this.getLogger().isDebugEnabled()) {
  +                            getLogger().debug ("Validation failed for parameter " + 
name);
  +                        }
                           return null;
                       }
                       session.setAttribute (name, result.getObject());
  @@ -180,8 +184,10 @@
                * new set-based method
                */
               if (valsetstr != null && !"".equals (valsetstr.trim ())) {
  -                getLogger ().debug ("Validating parameters "
  +                if (this.getLogger().isDebugEnabled()) {
  +                    getLogger ().debug ("Validating parameters "
                           + "from given constraint-set " + valsetstr);
  +                }
                   Configuration cset = null;
                   String setname = null;
                   int j = 0;
  @@ -194,9 +200,11 @@
                       }
                   }
                   if (!found) {
  -                    getLogger ().debug ("Given set "
  +                    if (this.getLogger().isDebugEnabled()) {
  +                        getLogger ().debug ("Given set "
                               + valsetstr
                               + " does not exist in a description file");
  +                    }
                       return null;
                   }
                   cset = csets[j];
  @@ -207,15 +215,19 @@
                   ValidatorActionHelper result = null;
                   String name = null;
                   HashMap params = new HashMap (set.length);
  -                getLogger ().debug ("Given set "
  +                if (this.getLogger().isDebugEnabled()) {
  +                    getLogger ().debug ("Given set "
                           + valsetstr
                           + " contains " + set.length + " rules");
  +                }
                   /* put required params into hash */
                   for (int i = 0; i < set.length; i ++) {
                       name = set[i].getAttribute ("name", "");
                       if ("".equals (name.trim ())) {
  -                        getLogger ().debug ("Wrong syntax "
  +                        if (this.getLogger().isDebugEnabled()) {
  +                            getLogger ().debug ("Wrong syntax "
                                   + " of 'validate' children nr. " + i);
  +                        }
                           return null;
                       }
                       name = name.trim ();
  @@ -226,17 +238,21 @@
                       result = validateParameter(name, set[i],
                               desc, params, false);
                       if (!result.isOK()) {
  -                        getLogger().debug("Validation failed for parameter " + 
name);
  +                        if (this.getLogger().isDebugEnabled()) {
  +                            getLogger().debug("Validation failed for parameter " + 
name);
  +                        }
                           return null;
                       }
                       session.setAttribute (name, result.getObject());
                       actionMap.put (name, result.getObject());
                   }
               }
  -            getLogger().debug("All session params validated");
  +            if (this.getLogger().isDebugEnabled()) {
  +                getLogger().debug("All session params validated");
  +            }
               return Collections.unmodifiableMap (actionMap);
           } catch (Exception e) {
  -            getLogger().debug ("exception: ", e);
  +            getLogger().warn ("exception: ", e);
           }
           return null;
       }
  
  
  
  1.7       +1 -5      
xml-cocoon2/src/java/org/apache/cocoon/acting/RequestParamAction.java
  
  Index: RequestParamAction.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/acting/RequestParamAction.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- RequestParamAction.java   22 Feb 2002 06:59:26 -0000      1.6
  +++ RequestParamAction.java   11 Sep 2002 08:26:44 -0000      1.7
  @@ -135,10 +135,6 @@
       {
   
           Request request = ObjectModelHelper.getRequest(objectModel);
  -        if (request == null) {
  -          getLogger().error("RequestInfoAction: no request object!");
  -          return(null);
  -        }
   
           Map map = new HashMap();
   
  
  
  
  1.7       +101 -70   
xml-cocoon2/src/java/org/apache/cocoon/acting/SendmailAction.java
  
  Index: SendmailAction.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/acting/SendmailAction.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- SendmailAction.java       22 Feb 2002 06:59:26 -0000      1.6
  +++ SendmailAction.java       11 Sep 2002 08:26:44 -0000      1.7
  @@ -93,80 +93,111 @@
    * @author <a href="mailto:[EMAIL PROTECTED]";>Donald Ball</a>
    * @version CVS $Id$
    */
  -public class SendmailAction extends AbstractAction implements ThreadSafe, 
Configurable {
  -
  -  Properties default_properties = null;
  -
  -  public void configure(Configuration conf) throws ConfigurationException {
  -    getLogger().debug("SendmailAction: init");
  -    default_properties = new Properties();
  -    default_properties.put("mail.smtp.host",conf.getAttribute("smtphost", 
"127.0.0.1"));
  -    getLogger().debug("SendmailAction: using 
"+default_properties.get("mail.smtp.host")+" as the smtp server");
  -  }
  -
  -  public Map act(Redirector redirector, SourceResolver resolver, Map objectModel, 
String source, Parameters parameters) throws Exception {
  -    try {
  -      getLogger().debug("SendmailAction: act start");
  -      Request request = ObjectModelHelper.getRequest(objectModel);
  -      Properties properties = new Properties(default_properties);
  -      if (parameters.isParameter("smtphost")) {
  -        properties.put("mail.smtp.host",parameters.getParameter("smtphost",null));
  -        getLogger().debug("SendmailAction: overriding default smtp server, using 
"+properties.get("mail.smtp.host"));
  -      }
  -      Session session = Session.getDefaultInstance(properties,null);
  -      Message message = new MimeMessage(session);
  -      String from = null;
  -      String to = null;
  -      String subject = null;
  -      String body = null;
  -      try {
  -        if (parameters.isParameter("from")) {
  -          from = parameters.getParameter("from",null);
  -        } else if ((from = request.getParameter("from")) == null) {
  -          throw new SendmailActionException("no from address");
  +public class SendmailAction
  +    extends AbstractAction
  +    implements ThreadSafe, Configurable {
  +
  +    Properties default_properties = null;
  +
  +    public void configure(Configuration conf) throws ConfigurationException {
  +        if (this.getLogger().isDebugEnabled()) {
  +            getLogger().debug("SendmailAction: init");
           }
  -        message.setFrom(new InternetAddress(from));
  -      } catch (AddressException e) {
  -        throw new SendmailActionException("invalid from address: "+from+": 
"+e.getMessage());
  -      }
  -      try {
  -        if (parameters.isParameter("to")) {
  -          to = parameters.getParameter("to",null);
  -        } else if ((to = request.getParameter("to")) == null) {
  -          throw new SendmailActionException("no to address");
  +        default_properties = new Properties();
  +        default_properties.put(
  +            "mail.smtp.host",
  +            conf.getAttribute("smtphost", "127.0.0.1"));
  +        if (this.getLogger().isDebugEnabled()) {
  +            getLogger().debug(
  +                "SendmailAction: using "
  +                + default_properties.get("mail.smtp.host")
  +                + " as the smtp server");
           }
  -        message.setRecipient(Message.RecipientType.TO,new InternetAddress(to));
  -      } catch (AddressException e) {
  -        throw new SendmailActionException("invalid to address: "+to+": 
"+e.getMessage());
  -      }
  -      if (parameters.isParameter("subject")) {
  -        subject = parameters.getParameter("subject",null);
  -      } else if ((subject = request.getParameter("subject")) == null) {
  -        throw new SendmailActionException("no subject");
  -      }
  -      message.setSubject(subject);
  -      if (parameters.isParameter("body")) {
  -        body = parameters.getParameter("body",null);
  -      } else if ((body = request.getParameter("body")) == null) {
  -        throw new SendmailActionException("no body");
  -      }
  -      message.setText(body);
  -      message.setSentDate(new Date());
  -      Transport.send(message);
  -      getLogger().debug("SendmailAction: act stop");
  -      return EMPTY_MAP;
  -    } catch (SendmailActionException e) {
  -      getLogger().error("SendmailAction: "+e.getMessage());
  -      return EMPTY_MAP;
       }
  -  }
   
  -  class SendmailActionException extends Exception {
  -
  -    public SendmailActionException(String message) {
  -      super(message);
  +    public Map act(
  +        Redirector redirector,
  +        SourceResolver resolver,
  +        Map objectModel,
  +        String source,
  +        Parameters parameters)
  +        throws Exception {
  +        try {
  +            if (this.getLogger().isDebugEnabled()) {
  +                getLogger().debug("SendmailAction: act start");
  +            }
  +            Request request = ObjectModelHelper.getRequest(objectModel);
  +            Properties properties = new Properties(default_properties);
  +            if (parameters.isParameter("smtphost")) {
  +                properties.put(
  +                    "mail.smtp.host",
  +                    parameters.getParameter("smtphost", null));
  +                if (this.getLogger().isDebugEnabled()) {
  +                    getLogger().debug(
  +                        "SendmailAction: overriding default smtp server, using "
  +                        + properties.get("mail.smtp.host"));
  +                }
  +            }
  +            Session session = Session.getDefaultInstance(properties, null);
  +            Message message = new MimeMessage(session);
  +            String from = null;
  +            String to = null;
  +            String subject = null;
  +            String body = null;
  +            try {
  +                if (parameters.isParameter("from")) {
  +                    from = parameters.getParameter("from", null);
  +                } else if ((from = request.getParameter("from")) == null) {
  +                    throw new SendmailActionException("no from address");
  +                }
  +                message.setFrom(new InternetAddress(from));
  +            } catch (AddressException e) {
  +                throw new SendmailActionException(
  +                    "invalid from address: " + from + ": " + e.getMessage());
  +            }
  +            try {
  +                if (parameters.isParameter("to")) {
  +                    to = parameters.getParameter("to", null);
  +                } else if ((to = request.getParameter("to")) == null) {
  +                    throw new SendmailActionException("no to address");
  +                }
  +                message.setRecipient(
  +                    Message.RecipientType.TO,
  +                    new InternetAddress(to));
  +            } catch (AddressException e) {
  +                throw new SendmailActionException(
  +                    "invalid to address: " + to + ": " + e.getMessage());
  +            }
  +            if (parameters.isParameter("subject")) {
  +                subject = parameters.getParameter("subject", null);
  +            } else if ((subject = request.getParameter("subject")) == null) {
  +                throw new SendmailActionException("no subject");
  +            }
  +            message.setSubject(subject);
  +            if (parameters.isParameter("body")) {
  +                body = parameters.getParameter("body", null);
  +            } else if ((body = request.getParameter("body")) == null) {
  +                throw new SendmailActionException("no body");
  +            }
  +            message.setText(body);
  +            message.setSentDate(new Date());
  +            Transport.send(message);
  +            if (this.getLogger().isDebugEnabled()) {
  +                getLogger().debug("SendmailAction: act stop");
  +            }
  +            return EMPTY_MAP;
  +        } catch (SendmailActionException e) {
  +            getLogger().error("SendmailAction: " + e.getMessage());
  +            return EMPTY_MAP;
  +        }
       }
   
  -  }
  +    class SendmailActionException extends Exception {
  +
  +        public SendmailActionException(String message) {
  +            super(message);
  +        }
  +
  +    }
   
   }
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to