001    package org.apache.turbine.modules.actions;
002    
003    /*
004     * Licensed to the Apache Software Foundation (ASF) under one
005     * or more contributor license agreements.  See the NOTICE file
006     * distributed with this work for additional information
007     * regarding copyright ownership.  The ASF licenses this file
008     * to you under the Apache License, Version 2.0 (the
009     * "License"); you may not use this file except in compliance
010     * with the License.  You may obtain a copy of the License at
011     *
012     *   http://www.apache.org/licenses/LICENSE-2.0
013     *
014     * Unless required by applicable law or agreed to in writing,
015     * software distributed under the License is distributed on an
016     * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017     * KIND, either express or implied.  See the License for the
018     * specific language governing permissions and limitations
019     * under the License.
020     */
021    
022    
023    import org.apache.turbine.pipeline.PipelineData;
024    import org.apache.turbine.util.RunData;
025    import org.apache.velocity.context.Context;
026    import org.apache.commons.logging.Log;
027    import org.apache.commons.logging.LogFactory;
028    /**
029     * This action is used in testing the ActionLoader for Velocity templates.  Verifies
030     * that exceptions are properly bubbled out.
031     *
032     * @author     <a href="mailto:epugh@upstate.com">Eric Pugh</a>
033     * @author <a href="mailto:peter@courcoux.biz">Peter Courcoux</a>
034     * @created    October 11, 2002
035     */
036    public class VelocityActionThrowsException extends VelocityAction
037    {
038        private static Log log = LogFactory.getLog(VelocityActionThrowsException.class);
039        /**
040         *  Default action is throw an exception.
041         *
042         * @param  data           Current RunData information
043         * @param  context        Context to populate
044         * @exception  Exception  Thrown on error
045         */
046        public void doPerform(RunData data, Context context) throws Exception
047        {
048            log.debug("Calling doPerform(RunData)");
049            throw new Exception("From VelocityActionThrowsException.doPerform an Exception is always thrown!");
050        }
051    
052        /**
053         *  Default action is throw an exception.
054         *
055         * @param  data           Current PipelineData information
056         * @param  context        Context to populate
057         * @exception  Exception  Thrown on error
058         */
059        public void doPerform(PipelineData data, Context context) throws Exception
060        {
061            log.debug("Calling doPerform(PipelineData)");
062            throw new Exception("From VelocityActionThrowsException.doPerform an Exception is always thrown!");
063        }
064    
065    
066    
067        /**
068         * This action event also throws an exception.
069         * @param data
070         * @param context
071         * @throws Exception
072         */
073        public void doCauseexception(RunData data, Context context) throws Exception
074        {
075            log.debug("Calling doCauseexception(RunData)");
076            throw new Exception("From Action Event VelocityActionThrowsException.doCauseexception an Exception is always thrown!");
077        }
078    
079        /**
080         * This action event also throws an exception.
081         * @param data
082         * @param context
083         * @throws Exception
084         */
085        public void doCauseexception(PipelineData data, Context context) throws Exception
086        {
087            log.debug("Calling doCauseexception(PipelineData)");
088            throw new Exception("From Action Event VelocityActionThrowsException.doCauseexception an Exception is always thrown!");
089        }
090    
091    
092    }