<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN" "http://www.opensymphony.com/xwork/xwork-1.0.dtd">

<xwork>
    <package name="default">
        <result-types>
            <result-type name="dispatcher" class="com.opensymphony.webwork.dispatcher.ServletDispatcherResult"/>
            <result-type name="redirect" class="com.atlassian.confluence.xwork.RedirectResult"/>
            <result-type name="velocity" class="com.atlassian.confluence.setup.webwork.EncodingVelocityResult"/>
            <result-type name="velocity-xml" class="com.atlassian.xwork.results.XmlVelocityResult"/>
            <result-type name="velocity-css" class="com.atlassian.xwork.results.CSSVelocityResult"/>
            <result-type name="httpheader" class="com.opensymphony.webwork.dispatcher.HttpHeaderResult"/>
            <result-type name="chain" class="com.opensymphony.xwork.ActionChainResult"/>
            <result-type name="rawText" class="com.atlassian.confluence.setup.webwork.RawTextResult"/>
            <result-type name="rss" class="com.atlassian.xwork.results.RssResult"/>
            <result-type name="json" class="com.atlassian.confluence.json.JSONResult"/>
        </result-types>

        <interceptors>
            <interceptor name="safeparams" class="com.atlassian.confluence.xwork.ParameterFilterInterceptor"/>
            <interceptor name="timer" class="com.opensymphony.xwork.interceptor.TimerInterceptor"/>
            <interceptor name="profiling" class="com.atlassian.xwork.interceptors.XWorkProfilingInterceptor"/>
            <interceptor name="logger" class="com.atlassian.confluence.core.ResultLoggingInterceptor"/>
            <interceptor name="chain" class="com.opensymphony.xwork.interceptor.ChainingInterceptor"/>
            <interceptor name="static-params" class="com.opensymphony.xwork.interceptor.StaticParametersInterceptor"/>
            <interceptor name="params" class="com.opensymphony.xwork.interceptor.ParametersInterceptor"/>
            <interceptor name="servlet" class="com.opensymphony.webwork.interceptor.ServletConfigInterceptor"/>
            <interceptor name="validator" class="com.opensymphony.xwork.validator.ValidationInterceptor"/>
            <interceptor name="workflow" class="com.atlassian.confluence.core.ConfluenceWorkflowInterceptor"/>
            <interceptor name="permissions" class="com.atlassian.confluence.security.actions.PermissionCheckInterceptor"/>
            <interceptor name="autowire" class="com.atlassian.confluence.core.ConfluenceAutowireInterceptor"/>
            <interceptor name="setup" class="com.atlassian.confluence.setup.actions.SetupCheckInterceptor"/>
            <interceptor name="requestParameterHack" class="com.atlassian.xwork.interceptors.RequestParameterHackInterceptor"/>
            <interceptor name="pageAware" class="com.atlassian.confluence.pages.actions.PageAwareInterceptor"/>
            <interceptor name="spaceAware" class="com.atlassian.confluence.spaces.actions.SpaceAwareInterceptor"/>
            <interceptor name="commentAware" class="com.atlassian.confluence.pages.actions.CommentAwareInterceptor"/>
            <interceptor name="lastModified" class="com.atlassian.confluence.core.actions.LastModifiedInterceptor"/>
            <interceptor name="transaction" class="com.atlassian.confluence.setup.webwork.ConfluenceXWorkTransactionInterceptor"/>
            <interceptor name="loggingContext" class="com.atlassian.confluence.util.LoggingContextInterceptor"/>
            <interceptor name="captcha" class="com.atlassian.confluence.security.interceptors.CaptchaInterceptor"/>
            <interceptor name="cancel" class="com.atlassian.confluence.core.CancellingInterceptor"/>

            <!-- Note: the order of the interceptors below is vitally important.
                 Do not change the order without serious thought and consultation with others. -->
            <interceptor-stack name="defaultStack">
                <interceptor-ref name="profiling">
                    <param name="location">Before defaultStack</param>
                </interceptor-ref>
                <interceptor-ref name="safeparams"/>
                <interceptor-ref name="transaction"/>
                <interceptor-ref name="requestParameterHack"/>
                <interceptor-ref name="params"/>
                <interceptor-ref name="autowire"/>
                <interceptor-ref name="lastModified"/>
                <interceptor-ref name="servlet"/>
                <interceptor-ref name="spaceAware"/>
                <interceptor-ref name="pageAware"/>
                <interceptor-ref name="commentAware"/>
				<interceptor-ref name="permissions"/>

				<!--Must come after pageAware and spaceAware since at the moment, some implementations of ConfluenceActionSupport.getCancelResult(), do work against the database with pages and spaces.-->
				<!--Also must come before captcha, else a form with captcha won't be cancellable. Also must come before the validator (as validation should be skipped on cancel)-->
				<interceptor-ref name="cancel"/>

				<interceptor-ref name="loggingContext"/>
                <interceptor-ref name="profiling">
                    <param name="location">After defaultStack</param>
                </interceptor-ref>
            </interceptor-stack>

            <interceptor-stack name="validatingStack">
                <interceptor-ref name="defaultStack"/>

				<!--Must come after pageAware and spaceAware, as the view rendered in a response to a failed validation may access properties of page and/or space objects.-->
				<interceptor-ref name="captcha"/>

				<interceptor-ref name="validator"/>
                <interceptor-ref name="workflow"/>
                <interceptor-ref name="profiling">
                    <param name="location">After validatingStack</param>
                </interceptor-ref>
            </interceptor-stack>

            <interceptor-stack name="defaultSetupStack">
                <interceptor-ref name="defaultStack"/>
                <interceptor-ref name="setup"/>
            </interceptor-stack>

            <interceptor-stack name="validatingSetupStack">
                <interceptor-ref name="validatingStack"/>
                <interceptor-ref name="setup"/>
            </interceptor-stack>
        </interceptors>

        <global-results>
            <result name="notpermitted" type="chain">
                <param name="actionName">notpermitted</param>
            </result>
            <result name="notpermittedpersonal" type="chain">
                <param name="actionName">notpermittedpersonal</param>
            </result>
            <result name="notfound" type="chain">
                <param name="actionName">fourohfour</param>
            </result>
            <result name="alreadysetup" type="velocity">/setup/alreadysetup.vm</result>
            <result name="licenseexpired" type="velocity">/licenseexpired.vm</result>
            <result name="licenseusersexceeded" type="velocity">/licenseusersexceeded.vm</result>
            <result name="loginrequired" type="redirect">login.action</result>
            <result type="rss" name="rss">
                <param name="location">rss_2.0</param>
            </result>
            <result type="rss" name="rss2">
                <param name="location">rss_2.0</param>
            </result>
            <result type="rss" name="rss1">
                <param name="location">rss_1.0</param>
            </result>
            <result type="rss" name="atom">
                <param name="location">atom_1.0</param>
            </result>
            <!-- Atom 0.3 is deprecated. Please do not use unless absolutely necessary -->
            <result type="rss" name="atom03">
                <param name="location">atom_0.3</param>
            </result>
            <result type="rss" name="atom10">
                <param name="location">atom_1.0</param>
            </result>
            <result name="pagenotfound" type="dispatcher">/pages/pagenotfound.action</result>
        </global-results>

        <action name="notpermitted" class="com.atlassian.confluence.security.actions.NotPermittedAction">
            <interceptor-ref name="defaultStack"/>
            <result name="success" type="velocity">/notpermitted.vm</result>
            <result name="login" type="redirect">${loginUrl}</result>
        </action>
        <action name="notpermittedpersonal" class="com.atlassian.confluence.security.actions.NotPermittedAction">
            <interceptor-ref name="defaultStack"/>
            <result name="success" type="velocity">/notpermitted-personalspace.vm</result>
            <result name="login" type="redirect">${loginUrl}</result>
        </action>

        <action name="attachmentnotfound" class="com.atlassian.confluence.core.actions.AttachmentNotFoundAction">
            <interceptor-ref name="defaultStack"/>
            <result name="success" type="velocity">/attachmentnotfound.vm</result>
        </action>

        <action name="login" class="com.atlassian.confluence.user.actions.LoginAction">
            <interceptor-ref name="defaultStack"/>
            <result name="error" type="velocity">/login.vm</result>
            <result name="success" type="velocity">/login.vm</result>
        </action>

        <action name="logout" class="com.atlassian.confluence.user.actions.LogoutAction">
            <interceptor-ref name="defaultStack"/>
            <result name="error" type="velocity">/logout.vm</result>
            <result name="success" type="velocity">/logout.vm</result>
        </action>

        <action name="signup" class="com.atlassian.confluence.user.actions.SignupAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/signup.vm</result>
        </action>

        <action name="dosignup" class="com.atlassian.confluence.user.actions.SignupAction">
            <interceptor-ref name="validatingStack"/>
            <result name="input" type="velocity">/signup.vm</result>
            <result name="success" type="redirect">/homepage.action</result>
        </action>

        <action name="administrators" class="com.atlassian.confluence.user.actions.AdministratorsAction">
            <interceptor-ref name="defaultStack"/>
            <result name="success" type="velocity">/administrators.vm</result>
        </action>

        <action name="forgotuserpassword" class="com.atlassian.confluence.user.actions.ForgotUserPasswordAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/forgotuserpassword.vm</result>
        </action>

        <action name="doforgotuserpassword" class="com.atlassian.confluence.user.actions.ForgotUserPasswordAction">
            <interceptor-ref name="validatingStack"/>
            <result name="input" type="velocity">/forgotuserpassword.vm</result>
            <result name="error" type="velocity">/forgotuserpassword.vm</result>
            <result name="cancel" type="redirect">${loginUrl}</result>
            <result name="success" type="velocity">/forgotuserpassword-success.vm</result>
        </action>

        <action name="forgotusername" class="com.atlassian.confluence.user.actions.ForgotUserNameAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/forgotusername.vm</result>
        </action>

        <action name="doforgotusername" class="com.atlassian.confluence.user.actions.ForgotUserNameAction">
            <interceptor-ref name="validatingStack"/>
            <result name="input" type="velocity">/forgotusername.vm</result>
            <result name="error" type="velocity">/forgotusername.vm</result>
            <result name="cancel" type="redirect">${loginUrl}</result>
            <result name="success" type="velocity">/forgotusername-success.vm</result>
        </action>

        <action name="dashboard" class="com.atlassian.confluence.dashboard.actions.DashboardAction">
            <interceptor-ref name="defaultStack"/>
            <result name="error" type="velocity">/dashboard/dashboard.vm</result>
            <result name="success" type="velocity">/dashboard/dashboard.vm</result>
        </action>

        <action name="peopledirectory" class="com.atlassian.confluence.user.actions.PeopleDirectoryAction">
            <interceptor-ref name="validatingStack"/>
            <result name="oldsearch" type="redirect">/dopeopledirectorysearch.action?searchQueryBean.queryString=${oldSearchString}&amp;showOnlyPersonal=${showOnlyPersonal}&amp;startIndex=${oldStartIndex}</result>
            <result name="browsepeople" type="redirect">/browsepeople.action?startIndex=${oldStartIndex}</result>
            <!-- doesn't ever produce 'success' --><!--<result name="success" type="velocity">/users/peopledirectory.vm</result>-->
        </action>

        <action name="dopeopledirectorysearch" class="com.atlassian.confluence.user.actions.PeopleDirectoryAction" method="doSearch">
            <interceptor-ref name="validatingStack"/>
            <result name="success" type="velocity">/users/peopledirectory-results.vm</result>
            <result name="input" type="velocity">/users/peopledirectory-results.vm</result>
            <result name="error" type="velocity">/dashboard/dashboard.vm</result>
        </action>

        <action name="removepersonalspacefromfavourites" class="com.atlassian.confluence.labels.actions.RemoveSpaceFromFavouritesAction">
            <interceptor-ref name="defaultStack"/>
            <result name="success" type="redirect">/peopledirectory.action</result>
        </action>

        <action name="addpersonalspacetofavourites" class="com.atlassian.confluence.labels.actions.AddSpaceToFavouritesAction">
            <interceptor-ref name="defaultStack"/>
            <result name="success" type="redirect">/peopledirectory.action</result>
        </action>

        <action name="removeprofilefromfavourites" class="com.atlassian.confluence.labels.actions.RemoveProfileFromFavouritesAction">
            <interceptor-ref name="defaultStack"/>
            <result name="success" type="redirect">/peopledirectory.action</result>
        </action>

        <action name="addprofiletofavourites" class="com.atlassian.confluence.labels.actions.AddProfileToFavouritesAction">
            <interceptor-ref name="defaultStack"/>
            <result name="success" type="redirect">/peopledirectory.action</result>
        </action>

        <action name="browsepeople" class="com.atlassian.confluence.user.actions.PeopleDirectoryAction" method="doBrowse">
            <interceptor-ref name="validatingStack"/>
            <result name="success" type="velocity">/users/peopledirectory-results.vm</result>
            <result name="error" type="velocity">/dashboard/dashboard.vm</result>
        </action>

        <action name="notfound" class="com.atlassian.confluence.core.actions.FourOhFourAction">
            <interceptor-ref name="defaultStack"/>
            <result name="success" type="redirect">/fourohfour.action</result>
        </action>

        <action name="fourohfour" class="com.atlassian.confluence.core.actions.FourOhFourAction">
            <interceptor-ref name="defaultStack"/>
            <result name="error" type="velocity">/404.vm</result>
            <result name="success" type="velocity">/404.vm</result>
        </action>

        <action name="homepage" class="com.atlassian.confluence.dashboard.actions.HomepageAction">
            <interceptor-ref name="defaultStack"/>
            <result name="error" type="redirect">/dashboard.action</result>
            <result name="success" type="redirect">/dashboard.action</result>
            <result name="homepage" type="redirect">/display/${siteHomePageSpaceKey}</result>
        </action>

        <action name="searchsite" class="com.atlassian.confluence.search.actions.SearchSiteAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/search/searchsite.vm</result>
        </action>

        <action name="dosearchsite" class="com.atlassian.confluence.search.actions.SearchSiteAction">
            <interceptor-ref name="validatingStack"/>
            <result name="error" type="velocity">/search/searchsite.vm</result>
            <result name="input" type="velocity">/search/searchsite.vm</result>
            <result name="success" type="velocity">/search/searchsite.vm</result>
        </action>

        <action name="advancedsearchtips" class="com.atlassian.confluence.pages.actions.AdvancedSearchTipsAction">
            <interceptor-ref name="defaultStack"/>
            <result name="success" type="velocity">/pages/advancedsearchtips.vm</result>
        </action>

        <action name="notationhelp" class="com.atlassian.confluence.renderer.actions.NotationHelpAction">
            <interceptor-ref name="defaultStack"/>
            <result name="success" type="velocity">/renderer/notationhelp.vm</result>
        </action>

        <action name="globalrss" class="com.atlassian.confluence.dashboard.actions.GlobalRssFeedAction">
            <interceptor-ref name="defaultStack"/>
            <result name="success" type="redirect">
                <param name="location">createrssfeed.action?${rssParameters}</param>
                <param name="parse">true</param>
                <param name="prependServletContext">true</param>
            </result>
        </action>

        <action name="configurerssfeed" class="com.atlassian.confluence.dashboard.actions.ConfigureRssFeedAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/dashboard/configurerssfeed.vm</result>
            <result name="error" type="velocity">/dashboard/configurerssfeed.vm</result>
            <result name="success" type="velocity">/dashboard/configurerssfeed.vm</result>
        </action>

        <action name="doconfigurerssfeed" class="com.atlassian.confluence.dashboard.actions.ConfigureRssFeedAction">
            <interceptor-ref name="validatingStack"/>
            <result name="error" type="velocity">/dashboard/configurerssfeed.vm</result>
            <result name="input" type="velocity">/dashboard/configurerssfeed.vm</result>
            <result name="success" type="velocity">/dashboard/showfeeddetails.vm</result>
        </action>
<!--
        <action name="createrssfeed" class="com.atlassian.confluence.spaces.actions.CreateRssFeedAction">
            <interceptor-ref name="defaultStack"/>
        </action>
-->
        <action name="colourpicker" class="com.atlassian.confluence.admin.actions.lookandfeel.ColourPickerAction">
            <interceptor-ref name="validatingStack"/>
            <result name="success" type="velocity">/colourpicker.vm</result>
        </action>

        <action name="longrunningtask" class="com.atlassian.confluence.admin.actions.LongRunningTaskMonitorAction">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/admin/longrunningtask.vm</result>
            <result name="notaskfound" type="velocity">/admin/longrunningtask-notfound.vm</result>
            <result name="success" type="velocity">/admin/longrunningtask-finished.vm</result>
        </action>
        <action name="longrunningtaskxml" class="com.atlassian.confluence.admin.actions.LongRunningTaskMonitorAction" method="doTaskStatus">
            <result name="success" type="velocity-xml">/admin/longrunningtask-xml.vm</result>
        </action>

    </package>

    <package name="ajax" extends="default" namespace="/ajax">
        <action name="spaceavailable" class="com.atlassian.confluence.spaces.actions.CreateSpaceAction" method="spaceKeyAvailable">
            <interceptor-ref name="defaultStack"/>
            <result name="success" type="velocity">/ajax/simpleresponse.vm</result>
        </action>
    </package>

    <package name="spaces" extends="default" namespace="/spaces">
        <default-interceptor-ref name="validatingStack"/>

        <action name="configurespacelogo" class="com.atlassian.confluence.spaces.actions.ConfigureSpaceLogoAction">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/spaces/configurespacelogo.vm</result>
            <result name="error" type="velocity">/spaces/configurespacelogo.vm</result>
            <result name="success" type="velocity">/spaces/configurespacelogo.vm</result>
        </action>

        <action name="uploadspacelogo" class="com.atlassian.confluence.spaces.actions.ConfigureSpaceLogoAction" method="doUpload">
            <result name="error" type="velocity">/spaces/configurespacelogo.vm</result>
            <result name="input" type="velocity">/spaces/configurespacelogo.vm</result>
            <result name="success" type="redirect">/spaces/configurespacelogo.action?key=${space.key}</result>
        </action>

        <action name="deletespacelogo" class="com.atlassian.confluence.spaces.actions.ConfigureSpaceLogoAction" method="doDelete">
            <result name="error" type="velocity">/spaces/configurespacelogo.vm</result>
            <result name="input" type="velocity">/spaces/configurespacelogo.vm</result>
            <result name="success" type="redirect">/spaces/configurespacelogo.action?key=${space.key}</result>
        </action>

        <action name="disablespacelogo" class="com.atlassian.confluence.spaces.actions.ConfigureSpaceLogoAction" method="doDisableLogo">
            <result name="success" type="redirect">/spaces/configurespacelogo.action?key=${space.key}</result>
        </action>

        <action name="enablespacelogo" class="com.atlassian.confluence.spaces.actions.ConfigureSpaceLogoAction" method="doEnableLogo">
            <result name="success" type="redirect">/spaces/configurespacelogo.action?key=${space.key}</result>
        </action>

        <action name="createspace-start" class="com.atlassian.confluence.spaces.actions.CreateSpaceAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/spaces/createspace.vm</result>
        </action>

        <action name="createspace" class="com.atlassian.confluence.spaces.actions.CreateSpaceAction">
            <result name="error" type="velocity">/spaces/createspace.vm</result>
            <result name="input" type="velocity">/spaces/createspace.vm</result>
            <result name="cancel" type="redirect">/dashboard.action</result>
            <result name="success" type="redirect">/display/${space.key}/Home</result>
        </action>

        <action name="createpersonalspace" class="com.atlassian.confluence.spaces.actions.CreatePersonalSpaceAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/spaces/createpersonalspace.vm</result>
            <result name="error" type="velocity">/spaces/createpersonalspace.vm</result>
        </action>

        <action name="docreatepersonalspace" class="com.atlassian.confluence.spaces.actions.CreatePersonalSpaceAction">
            <result name="error" type="velocity">/spaces/createpersonalspace.vm</result>
            <result name="input" type="velocity">/spaces/createpersonalspace.vm</result>
            <result name="cancel" type="redirect">/dashboard.action</result>
            <result name="success" type="redirect">/display/~${@com.atlassian.confluence.util.GeneralUtil@doubleUrlEncode(username)}/Home</result>
        </action>

        <action name="removespace" class="com.atlassian.confluence.spaces.actions.RemoveSpaceAction">
            <result name="error" type="velocity">/spaces/removespace.vm</result>
            <result name="input" type="velocity">/spaces/removespace.vm</result>
            <result name="success" type="velocity">/spaces/removespace.vm</result>
        </action>

        <action name="doremovespace" class="com.atlassian.confluence.spaces.actions.RemoveSpaceAction" method="doRemove">
            <result name="error" type="velocity">/spaces/removespace.vm</result>
            <result name="input" type="velocity">/spaces/removespace.vm</result>
            <result name="cancel" type="redirect">../display/${key}</result>
            <result name="success" type="redirect">/dashboard.action</result>
        </action>

        <action name="convertspace" class="com.atlassian.confluence.spaces.actions.ConvertSpaceAction">
            <result name="error" type="velocity">/spaces/editspace.vm</result>
            <result name="input" type="velocity">/spaces/editspace.vm</result>
            <result name="success" type="velocity">/spaces/convertspace.vm</result>
        </action>

        <action name="doconvertspace" class="com.atlassian.confluence.spaces.actions.ConvertSpaceAction" method="doConvert">
            <result name="error" type="velocity">/spaces/editspace.vm</result>
            <result name="input" type="velocity">/spaces/editspace.vm</result>
            <result name="cancel" type="redirect">/spaces/editspace.action?key=${key}</result>
            <result name="success" type="redirect">/spaces/editspace.action?key=${newSpaceKey}</result>
        </action>

        <action name="editspace" class="com.atlassian.confluence.spaces.actions.EditSpaceAction">
            <result name="error" type="velocity">/spaces/editspace.vm</result>
            <result name="input" type="velocity">/spaces/editspace.vm</result>
            <result name="success" type="velocity">/spaces/editspace.vm</result>
        </action>

        <action name="doeditspace" class="com.atlassian.confluence.spaces.actions.EditSpaceAction" method="doEdit">
            <result name="error" type="velocity">/spaces/editspace.vm</result>
            <result name="input" type="velocity">/spaces/editspace.vm</result>
            <result name="cancel" type="redirect">viewspacesummary.action?key=${key}</result>
            <result name="success" type="redirect">viewspacesummary.action?key=${key}</result>
        </action>

        <action name="choosetheme" class="com.atlassian.confluence.spaces.actions.ChooseThemeAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/spaces/choosetheme.vm</result>
        </action>

        <action name="dochoosetheme" class="com.atlassian.confluence.spaces.actions.ChooseThemeAction">
            <result name="input" type="velocity">/spaces/choosetheme.vm</result>
            <result name="success" type="velocity">/spaces/choosetheme.vm</result>
        </action>

        <action name="lookandfeel" class="com.atlassian.confluence.spaces.actions.SpaceLookAndFeelAction">
            <result name="success" type="velocity">/spaces/lookandfeel.vm</result>
        </action>

        <action name="dochangecolourscheme" class="com.atlassian.confluence.spaces.actions.SpaceColourSchemeAction" method="changeColorScheme">
            <result name="success" type="velocity">/spaces/lookandfeel.vm</result>
        </action>

        <action name="doeditcolourscheme" class="com.atlassian.confluence.spaces.actions.SpaceColourSchemeAction">
            <result name="input" type="velocity">/spaces/lookandfeel.vm</result>
            <result name="error" type="velocity">/spaces/lookandfeel.vm</result>
            <result name="cancel" type="redirect">/spaces/lookandfeel.action?key=${key}</result>
            <result name="reset" type="redirect">/spaces/lookandfeel.action?key=${key}</result>
            <result name="success" type="redirect">/spaces/lookandfeel.action?key=${key}</result>
        </action>

        <action name="listdecorators" class="com.atlassian.confluence.spaces.actions.SpaceEditDecoratorAction" method="doList">
            <result name="input" type="velocity">/spaces/listdecorators.vm</result>
        </action>

        <action name="resetdecorator" class="com.atlassian.confluence.spaces.actions.SpaceEditDecoratorAction" method="doReset">
            <result name="success" type="redirect">/spaces/listdecorators.action?key=${key}</result>
            <result name="error" type="velocity">/spaces/listdecorators.vm</result>
        </action>

        <action name="editdecorator" class="com.atlassian.confluence.spaces.actions.SpaceEditDecoratorAction" method="doRead">
            <result name="input" type="velocity">/spaces/editdecorator.vm</result>
            <result name="error" type="velocity">/spaces/listdecorators.vm</result>
        </action>

        <action name="storedecorator" class="com.atlassian.confluence.spaces.actions.SpaceEditDecoratorAction" method="doWrite">
            <result name="input" type="velocity">/spaces/editdecorator.vm</result>
            <result name="error" type="velocity">/spaces/editdecorator.vm</result>
            <result name="success" type="redirect">/spaces/listdecorators.action?key=${key}</result>
            <result name="cancel" type="redirect">/spaces/listdecorators.action?key=${key}</result>
        </action>

        <action name="viewdefaultdecorator" class="com.atlassian.confluence.spaces.actions.SpaceViewDefaultDecoratorAction">
            <result name="success" type="velocity">/spaces/viewdefaultdecorator.vm</result>
        </action>

        <action name="viewspace" class="com.atlassian.confluence.spaces.actions.ViewSpaceAction">
            <result name="error" type="velocity">/spaces/viewspacesummary.vm</result>
            <result name="success" type="velocity">/spaces/viewspacesummary.vm</result>
            <result name="homepage" type="redirect">${space.homePage.urlPath}</result>
            <result name="browse" type="dispatcher">browsespace.action</result>
        </action>

        <action name="viewspacesummary" class="com.atlassian.confluence.spaces.actions.ViewSpaceSummaryAction">
            <result name="success" type="velocity">/spaces/viewspacesummary.vm</result>
        </action>

        <action name="spaceadmin" class="com.atlassian.confluence.spaces.actions.SpaceAdminAction">
            <result name="success" type="velocity">/spaces/spaceadmin.vm</result>
        </action>

        <action name="viewspacecontent" class="com.atlassian.confluence.spaces.actions.ViewSpaceContentAction">
            <result name="success" type="velocity">/spaces/viewspacecontent.vm</result>
        </action>

        <action name="listrssfeeds" class="com.atlassian.confluence.spaces.actions.ViewSpaceSummaryAction">
            <result name="success" type="velocity">/spaces/listrssfeeds.vm</result>
        </action>

        <action name="exportspace" class="com.atlassian.confluence.importexport.actions.ExportSpaceAction" method="doDefault">
            <result name="input" type="velocity">/importexport/exportspace.vm</result>
            <result name="error" type="velocity">/importexport/exportspace.vm</result>
        </action>

        <action name="doexportspace" class="com.atlassian.confluence.importexport.actions.ExportSpaceAction">
            <result name="error" type="velocity">/importexport/exportspace.vm</result>
            <result name="input" type="velocity">/importexport/exportspace.vm</result>
            <result name="cancel" type="redirect">../display/${key}</result>
            <result name="download" type="redirect">${downloadPath}</result>
            <result name="success" type="dispatcher">/longrunningtask.action</result>
        </action>

        <action name="rss" class="com.atlassian.confluence.spaces.actions.SpaceRssFeedAction">
            <result name="success" type="redirect">
                <param name="location">createrssfeed.action?${rssParameters}</param>
                <param name="parse">true</param>
                <param name="prependServletContext">true</param>
            </result>
        </action>

        <action name="blogrss" class="com.atlassian.confluence.spaces.actions.BlogPostRssFeedAction">
            <result name="success" type="redirect">
                <param name="location">createrssfeed.action?${rssParameters}</param>
                <param name="parse">true</param>
                <param name="prependServletContext">true</param>
            </result>
        </action>

        <action name="commentrss" class="com.atlassian.confluence.spaces.actions.SpaceCommentRssFeedAction">
            <result name="success" type="redirect">
                <param name="location">createrssfeed.action?${rssParameters}</param>
                <param name="parse">true</param>
                <param name="prependServletContext">true</param>
            </result>
        </action>

        <action name="importmbox" class="com.atlassian.confluence.spaces.actions.ImportMboxAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/spaces/importmbox.vm</result>
        </action>

        <action name="doimportmbox" class="com.atlassian.confluence.spaces.actions.ImportMboxAction">
            <result name="error" type="velocity">/spaces/importmbox.vm</result>
            <result name="input" type="velocity">/spaces/importmbox.vm</result>
            <result name="success" type="redirect">/longrunningtask.action</result>
        </action>

        <action name="spacepermissions" class="com.atlassian.confluence.security.actions.ViewSpacePermissionsAction">
            <result name="error" type="velocity">/spaces/permissions/viewspaceperms.vm</result>
            <result name="input" type="velocity">/spaces/permissions/viewspaceperms.vm</result>
            <result name="cancel" type="redirect">../display/${key}</result>
            <result name="success" type="velocity">/spaces/permissions/viewspaceperms.vm</result>
        </action>

        <action name="editspacepermissions" class="com.atlassian.confluence.security.actions.EditSpacePermissionsAction" method="doDefault">
            <result name="input" type="velocity">/spaces/permissions/editspaceperms.vm</result>
        </action>

        <action name="doeditspacepermissions" class="com.atlassian.confluence.security.actions.EditSpacePermissionsAction">
            <result name="input" type="velocity">/spaces/permissions/editspaceperms.vm</result>
            <result name="error" type="velocity">/spaces/permissions/editspaceperms.vm</result>
            <result name="cancel" type="redirect">/spaces/spacepermissions.action?key=${key}</result>
            <result name="adjust" type="redirect">/spaces/editspacepermissions.action?key=${key}</result>
            <result name="success" type="redirect">/spaces/spacepermissions.action?key=${key}</result>
        </action>

        <action name="viewpermissionsguide" class="com.atlassian.confluence.core.ConfluenceActionSupport">
             <result name="success" type="velocity">/spaces/permissions/help/viewspaceperms.vm</result>
         </action>

        <action name="openuserpicker" class="com.atlassian.confluence.user.actions.UserPickerAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/spaces/permissions/userpicker.vm</result>
            <result name="success" type="velocity">/spaces/permissions/userpicker.vm</result>
        </action>

       <action name="opengrouppicker" class="com.atlassian.confluence.user.actions.GroupPickerAction" method="doDefault">
            <result name="input" type="velocity">/spaces/permissions/grouppicker.vm</result>
            <result name="success" type="velocity">/spaces/permissions/grouppicker.vm</result>
        </action>

        <action name="importpages" class="com.atlassian.confluence.spaces.actions.ImportPagesAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/spaces/importpages.vm</result>
        </action>

        <action name="doimportpages" class="com.atlassian.confluence.spaces.actions.ImportPagesAction">
            <result name="error" type="velocity">/spaces/importpages.vm</result>
            <result name="input" type="velocity">/spaces/importpages.vm</result>
            <result name="cancel" type="redirect">../display/${key}</result>
            <result name="success" type="redirect">/pages/listpages-alphaview.action?key=${key}</result>
        </action>

        <action name="restorepage-start" class="com.atlassian.confluence.importexport.actions.RestorePageAction" method="doDefault">
            <result name="input" type="velocity">/importexport/restorepage.vm</result>
        </action>

        <action name="restore" class="com.atlassian.confluence.importexport.actions.RestorePageAction">
            <result name="input" type="velocity">/importexport/restorepage.vm</result>
            <result name="error" type="velocity">/importexport/restorepage.vm</result>
            <result name="success" type="velocity">/importexport/restorepage-successful.vm</result>
        </action>

        <action name="addspacenotification" class="com.atlassian.confluence.mail.notification.actions.AddSpaceNotificationAction">
            <result name="input" type="dispatcher">/spaces/viewspacesummary.action?key=${space.key}</result>
            <result name="success" type="redirect">/spaces/viewspacecontent.action?key=${space.key}</result>
        </action>

        <action name="removespacenotification" class="com.atlassian.confluence.mail.notification.actions.RemoveSpaceNotificationAction">
            <result name="input" type="dispatcher">/spaces/viewspacesummary.action?key=${space.key}</result>
            <result name="success" type="redirect">/spaces/viewspacecontent.action?key=${space.key}</result>
        </action>

        <action name="addmailaccount" class="com.atlassian.confluence.mail.actions.AddMailAccountAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/spaces/mail/addmailaccount.vm</result>
        </action>

        <action name="doaddmailaccount" class="com.atlassian.confluence.mail.actions.AddMailAccountAction">
            <result name="input" type="velocity">/spaces/mail/addmailaccount.vm</result>
            <result name="error" type="velocity">/spaces/mail/addmailaccount.vm</result>
            <result name="testconnection" type="velocity">/spaces/mail/addmailaccount.vm</result>
            <result name="success" type="redirect">/spaces/viewmailaccounts.action?key=${key}</result>
            <result name="cancel" type="redirect">/spaces/viewmailaccounts.action?key=${key}</result>
        </action>

        <action name="viewmailaccounts" class="com.atlassian.confluence.mail.actions.ViewMailAccountsAction">
            <result name="success" type="velocity">/spaces/mail/viewmailaccounts.vm</result>
        </action>

        <action name="viewmailarchive" class="com.atlassian.confluence.mail.actions.ViewMailArchiveAction">
            <result name="success" type="velocity">/spaces/mail/viewmailarchive.vm</result>
        </action>

        <action name="editmailaccount" class="com.atlassian.confluence.mail.actions.EditMailAccountAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/spaces/mail/editmailaccount.vm</result>
        </action>

        <action name="doeditmailaccount" class="com.atlassian.confluence.mail.actions.EditMailAccountAction">
            <result name="input" type="velocity">/spaces/mail/editmailaccount.vm</result>
            <result name="error" type="velocity">/spaces/mail/editmailaccount.vm</result>
            <result name="testconnection" type="velocity">/spaces/mail/editmailaccount.vm</result>
            <result name="success" type="redirect">/spaces/viewmailaccounts.action?key=${key}</result>
            <result name="cancel" type="redirect">/spaces/viewmailaccounts.action?key=${key}</result>
        </action>

        <action name="removemailaccount" class="com.atlassian.confluence.mail.actions.RemoveMailAccountAction">
            <result name="success" type="redirect">/spaces/viewmailaccounts.action?key=${key}</result>
        </action>

        <action name="fetchnewmail" class="com.atlassian.confluence.mail.actions.ViewMailArchiveAction" method="poll">
            <result name="success" type="velocity">/spaces/mail/viewmailarchive.vm</result>
        </action>

        <action name="viewmail" class="com.atlassian.confluence.mail.actions.ViewMailAction">
            <result name="input" type="velocity">/spaces/mail/viewmail.vm</result>
            <result name="success" type="velocity">/spaces/mail/viewmail.vm</result>
        </action>

        <action name="removespacemail" class="com.atlassian.confluence.mail.actions.RemoveSpaceMailAction">
            <result name="input" type="velocity">/spaces/mail/removemail.vm</result>
            <result name="success" type="velocity">/spaces/mail/removemail.vm</result>
        </action>

        <action name="enabledisablemail" class="com.atlassian.confluence.mail.actions.EnableDisableMailAction">
            <result name="success" type="redirect">/spaces/viewmailaccounts.action?key=${key}</result>
            <result name="error" type="redirect">/spaces/viewmailaccounts.action?key=${key}</result>
        </action>

        <action name="doremovespacemail" class="com.atlassian.confluence.mail.actions.RemoveSpaceMailAction" method="doRemove">
             <result name="error" type="velocity">/spaces/mail/removemail.vm</result>
             <result name="input" type="velocity">/spaces/mail/removemail.vm</result>
             <result name="cancel" type="redirect">/spaces/viewmailarchive.action?key=${key}</result>
             <result name="success" type="redirect">/spaces/viewmailarchive.action?key=${key}</result>
         </action>

        <action name="removemail" class="com.atlassian.confluence.mail.actions.RemoveMailAction">
            <result name="success" type="velocity">/spaces/mail/removemail.vm</result>
        </action>

        <action name="doremovemail" class="com.atlassian.confluence.mail.actions.RemoveMailAction" method="doRemove">
            <result name="error" type="velocity">/spaces/mail/removemail.vm</result>
            <result name="input" type="velocity">/spaces/mail/removemail.vm</result>
            <result name="cancel" type="redirect">/spaces/viewmailarchive.action?key=${key}</result>
            <result name="success" type="redirect">/spaces/viewmailarchive.action?key=${key}</result>
        </action>

        <action name="viewthread" class="com.atlassian.confluence.mail.actions.ViewMailAction">
            <result name="input" type="velocity">/spaces/mail/viewthread.vm</result>
            <result name="success" type="velocity">/spaces/mail/viewthread.vm</result>
        </action>

        <action name="browsespace" class="com.atlassian.confluence.pages.actions.BrowseSpaceAction">
			<result name="success" type="redirect">${redirectUrl}</result>
        </action>

        <action name="listattachmentsforspace" class="com.atlassian.confluence.spaces.actions.ListAttachmentsAction">
            <result name="success" type="velocity">/pages/listattachmentsforspace.vm</result>
        </action>

        <action name="editspacelabels" class="com.atlassian.confluence.spaces.actions.AddLabelToSpaceAction" method="doDefault">
            <result name="input" type="velocity">/spaces/editspacelabels.vm</result>
        </action>

        <action name="addlabeltospace" class="com.atlassian.confluence.spaces.actions.AddLabelToSpaceAction">
            <result name="input" type="velocity">/spaces/editspacelabels.vm</result>
            <result name="error" type="velocity">/spaces/editspacelabels.vm</result>
            <result name="success" type="redirect">/spaces/editspacelabels.action?key=${key}</result>
        </action>

        <action name="addteamlabeltospace" class="com.atlassian.confluence.spaces.actions.AddTeamLabelToSpaceAction">
            <result name="input" type="velocity">/spaces/editspacelabels.vm</result>
            <result name="error" type="velocity">/spaces/editspacelabels.vm</result>
            <result name="success" type="redirect">/spaces/editspacelabels.action?key=${key}</result>
        </action>

        <action name="removelabelfromspace" class="com.atlassian.confluence.spaces.actions.RemoveLabelFromSpaceAction">
            <result name="input" type="velocity">/spaces/editspacelabels.vm</result>
            <result name="success" type="redirect">/spaces/editspacelabels.action?key=${key}</result>
        </action>

        <action name="dosearchgroups" class="com.atlassian.confluence.user.actions.GroupPickerAction" method="doGroupSearch">
            <interceptor-ref name="defaultStack"/>
            <result name="success" type="velocity">/spaces/permissions/grouppicker.vm</result>
            <result name="error" type="velocity">/spaces/permissions/grouppicker.vm</result>
        </action>

        <action name="dosearchgroupsfilterexisting" class="com.atlassian.confluence.user.actions.GroupPickerAction" method="doGroupSearchFilterExistingGroups">
           <interceptor-ref name="defaultStack"/>
            <result name="success" type="velocity">/spaces/permissions/grouppicker.vm</result>
            <result name="error" type="velocity">/spaces/permissions/grouppicker.vm</result>
        </action>

        <action name="dosearchgroupsnopermissions" class="com.atlassian.confluence.user.actions.GroupPickerAction" method="doFilterAlreadyPermittedGroupSearch">
            <interceptor-ref name="defaultStack"/>
            <result name="success" type="velocity">/spaces/permissions/grouppicker.vm</result>
            <result name="error" type="velocity">/spaces/permissions/grouppicker.vm</result>
        </action>
    </package>

    <package name="styles" extends="default" namespace="/styles">
        <default-interceptor-ref name="defaultStack"/>
        <action name="main-action" class="com.atlassian.confluence.core.actions.StylesheetAction">
            <interceptor-ref name="defaultStack"/>
            <result name="pluginresource" type="velocity-css">${stylesheetLocation}</result>
            <result name="success" type="velocity-css">/styles/combined-css.vm</result>
            <result name="setup" type="dispatcher">/includes/css/setup.css</result>
        </action>
        <action name="combined" class="com.atlassian.confluence.core.actions.CombinedStylesheetAction">
            <result name="success" type="velocity-css">/styles/combined-css.vm</result>
            <result name="error" type="dispatcher">/pages/pagenotfound.action</result>
        </action>
        <action name="admin" class="com.atlassian.confluence.core.actions.AdminStylesheetAction">
            <result name="success" type="velocity-css">/styles/combined-css.vm</result>
        </action>
        <action name="colors" class="com.atlassian.confluence.core.actions.ColorsStylesheetAction">
            <result name="success" type="velocity-css">/styles/colors-css.vm</result>
        </action>
        <action name="theme-colors" class="com.atlassian.confluence.core.actions.ThemeColorsStylesheetAction">
            <result name="success" type="velocity-css">${stylesheetLocation}</result>
        </action>
    </package>

    <package name="pages" extends="default" namespace="/pages">
        <default-interceptor-ref name="validatingStack"/>

        <global-results>
            <result name="pagenotfound" type="dispatcher">/pages/pagenotfound.action</result>
            <result name="pagenotpermitted" type="chain">
                <param name="actionName">pagenotpermitted</param>
            </result>
        </global-results>

        <action name="inheritedpermissionshelp" class="com.atlassian.confluence.core.ConfluenceActionSupport">
             <result name="success" type="velocity">/pages/help/inheritedperms.vm</result>
         </action>

        <action name="pagenotfound" class="com.atlassian.confluence.pages.actions.PageNotFoundAction">
            <result name="error" type="dispatcher">/fourohfour.action</result>
            <result name="success" type="velocity">/pages/alternativepages.vm</result>
        </action>

        <action name="pagenotpermitted" class="com.atlassian.confluence.pages.actions.PageNotPermittedAction">
            <result name="success" type="velocity">/pages/pagenotpermitted.vm</result>
            <result name="login" type="redirect">${loginUrl}</result>
        </action>

        <action name="movepage" class="com.atlassian.confluence.pages.actions.MovePageAction">
            <result name="success" type="velocity">/pages/movepage-result.vm</result>
            <result name="error" type="velocity">/pages/movepage-result.vm</result>
            <result name="input" type="velocity">/pages/movepage-result.vm</result>
        </action>

        <action name="revertpageorder" class="com.atlassian.confluence.pages.actions.RevertPageOrderAction">
            <result name="success" type="velocity">/pages/movepage-result.vm</result>
            <result name="error" type="velocity">/pages/movepage-result.vm</result>
            <result name="input" type="velocity">/pages/movepage-result.vm</result>
        </action>

        <action name="setpageorder" class="com.atlassian.confluence.pages.actions.SetPageOrderAction">
            <result name="success" type="velocity">/pages/movepage-result.vm</result>
            <result name="error" type="velocity">/pages/movepage-result.vm</result>
            <result name="input" type="velocity">/pages/movepage-result.vm</result>
        </action>

        <action name="createpage" class="com.atlassian.confluence.pages.actions.CreatePageEntryAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="error" type="velocity">/pages/createpage.vm</result>
            <result name="input" type="velocity">/pages/createpage.vm</result>
            <result name="already-exists" type="redirect">${@com.atlassian.confluence.util.GeneralUtil@getPageUrl(page)}</result>
        </action>

        <action name="createpage-choosetemplate" class="com.atlassian.confluence.pages.actions.CreatePageAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="error" type="velocity">/pages/createpage-choosetemplate.vm</result>
            <result name="input" type="velocity">/pages/createpage-choosetemplate.vm</result>
        </action>

        <action name="createpage-entervariables" class="com.atlassian.confluence.pages.actions.PageVariablesAction">
            <interceptor-ref name="defaultStack"/>
            <result name="error" type="velocity">/pages/createpage-entervariables.vm</result>
            <result name="input" type="velocity">/pages/createpage-entervariables.vm</result>
            <result name="success" type="velocity">/pages/createpage-entervariables.vm</result>
            <result name="novariables" type="velocity">/pages/createpage.vm</result>
        </action>

        <action name="doenterpagevariables" class="com.atlassian.confluence.pages.actions.PageVariablesAction" method="doEnter">
            <interceptor-ref name="defaultStack"/>
            <result name="error" type="velocity">/pages/createpage-entervariables.vm</result>
            <result name="input" type="velocity">/pages/createpage-entervariables.vm</result>
            <result name="success" type="velocity">/pages/createpage.vm</result>
        </action>

        <action name="docreatepage" class="com.atlassian.confluence.pages.actions.CreatePageAction" method="doAdd">
            <result name="error" type="velocity">/pages/createpage.vm</result>
            <result name="input" type="velocity">/pages/createpage.vm</result>
            <result name="cancel" type="redirect">${fromPageId == 0 ? "listpages-alphaview.action?key=" + spaceKey : @com.atlassian.confluence.util.GeneralUtil@getPageUrl(pageToReturnToOnCancel)}</result>
            <!--<result name="cancel" type="redirect">listpages-alphaview.action?key=${spaceKey}</result>-->
            <result name="success" type="redirect">${@com.atlassian.confluence.util.GeneralUtil@getPageUrl(page)}</result>
            <result name="preview" type="velocity">/pages/createpage-preview.vm</result>
        </action>

        <action name="createblogpost" class="com.atlassian.confluence.pages.actions.CreateBlogPostAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="error" type="velocity">/pages/createblogpost.vm</result>
            <result name="input" type="velocity">/pages/createblogpost.vm</result>
        </action>

        <action name="docreateblogpost" class="com.atlassian.confluence.pages.actions.CreateBlogPostAction" method="doAdd">
            <result name="error" type="velocity">/pages/createblogpost.vm</result>
            <result name="input" type="velocity">/pages/createblogpost.vm</result>
            <result name="cancel" type="redirect">${fromPageId == 0 ? "listpages-alphaview.action?key=" + spaceKey : @com.atlassian.confluence.util.GeneralUtil@getPageUrl(pageToReturnToOnCancel)}</result>
            <result name="success" type="redirect">${@com.atlassian.confluence.util.GeneralUtil@getPageUrl(page)}</result>
            <result name="preview" type="velocity">/pages/createblogpost-preview.vm</result>
        </action>

        <action name="removepage" class="com.atlassian.confluence.pages.actions.RemovePageAction">
            <result name="error" type="velocity">/pages/removepage.vm</result>
            <result name="input" type="velocity">/pages/removepage.vm</result>
            <result name="success" type="velocity">/pages/removepage.vm</result>
        </action>

        <action name="doremovepage" class="com.atlassian.confluence.pages.actions.RemovePageAction" method="doRemove">
            <result name="error" type="velocity">/pages/removepage.vm</result>
            <result name="input" type="velocity">/pages/removepage.vm</result>
            <result name="cancel" type="redirect">${@com.atlassian.confluence.util.GeneralUtil@getPageUrl(page)}</result>
            <result name="success" type="redirect">${redirectUrl}</result>
        </action>
        <action name="removeblogpost" class="com.atlassian.confluence.pages.actions.RemovePageAction">
            <result name="error" type="velocity">/pages/removeblogpost.vm</result>
            <result name="input" type="velocity">/pages/removeblogpost.vm</result>
            <result name="success" type="velocity">/pages/removeblogpost.vm</result>
        </action>

        <action name="doremoveblogpost" class="com.atlassian.confluence.pages.actions.RemovePageAction" method="doRemove">
            <result name="error" type="velocity">/pages/removeblogpost.vm</result>
            <result name="input" type="velocity">/pages/removeblogpost.vm</result>
            <result name="cancel" type="redirect">${@com.atlassian.confluence.util.GeneralUtil@getPageUrl(page)}</result>
            <result name="success" type="redirect">../display/${spaceKey}</result>
        </action>

        <action name="revertpagebacktoversion" class="com.atlassian.confluence.pages.actions.RevertPageBackToVersionAction">
            <result name="error" type="velocity">/pages/revertpagebacktoversion.vm</result>
            <result name="input" type="velocity">/pages/revertpagebacktoversion.vm</result>
            <result name="success" type="velocity">/pages/revertpagebacktoversion.vm</result>
        </action>

        <action name="dorevertpagebacktoversion" class="com.atlassian.confluence.pages.actions.RevertPageBackToVersionAction" method="doRevert">
            <result name="error" type="velocity">/pages/revertpagebacktoversion.vm</result>
            <result name="input" type="velocity">/pages/revertpagebacktoversion.vm</result>
            <result name="cancel" type="redirect">/pages/viewpreviousversions.action?pageId=${page.id}</result>
            <result name="success" type="redirect">${page.urlPath}</result>
        </action>

        <action name="editblogpost" class="com.atlassian.confluence.pages.actions.EditBlogPostAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="error" type="velocity">/pages/editblogpost.vm</result>
            <result name="input" type="velocity">/pages/editblogpost.vm</result>
            <result name="success" type="velocity">/pages/editblogpost.vm</result>
        </action>

        <action name="doeditblogpost" class="com.atlassian.confluence.pages.actions.EditBlogPostAction" method="doEdit">
            <result name="error" type="velocity">/pages/editblogpost.vm</result>
            <result name="input" type="velocity">/pages/editblogpost.vm</result>
            <result name="cancel" type="redirect">${@com.atlassian.confluence.util.GeneralUtil@getPageUrl(page)}</result>
            <result name="success" type="redirect">${@com.atlassian.confluence.util.GeneralUtil@getPageUrl(page)}</result>
            <result name="preview" type="velocity">/pages/editblogpost-preview.vm</result>
        </action>

        <action name="editpage" class="com.atlassian.confluence.pages.actions.EditPageAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="error" type="velocity">/pages/editpage.vm</result>
            <result name="input" type="velocity">/pages/editpage.vm</result>
            <result name="success" type="velocity">/pages/editpage.vm</result>
        </action>

        <action name="doeditpage" class="com.atlassian.confluence.pages.actions.EditPageAction" method="doEdit">
            <result name="error" type="velocity">/pages/editpage.vm</result>
            <result name="input" type="velocity">/pages/editpage.vm</result>
            <result name="cancel" type="redirect">${@com.atlassian.confluence.util.GeneralUtil@getPageUrl(page)}</result>
            <result name="success" type="redirect">${@com.atlassian.confluence.util.GeneralUtil@getPageUrl(page)}</result>
            <result name="preview" type="velocity">/pages/editpage-preview.vm</result>
            <result name="movehierarchy" type="redirect">/pages/handlenameconflicts.action?pageId=${pageId}</result>
        </action>

        <action name="saveeditpagebean" class="com.atlassian.confluence.pages.actions.EditPageAction" method="doSaveEditPageBean">
            <interceptor-ref name="defaultStack"/> <!-- by this stage, we would have already validated all data. switching validation off -->
            <result name="input" type="velocity">/pages/editpage.vm</result>
            <result name="success" type="redirect">${@com.atlassian.confluence.util.GeneralUtil@getPageUrl(page)}</result>
        </action>

        <action name="rendercontent" class="com.atlassian.confluence.renderer.actions.RenderContentAction">
            <result name="success" type="velocity">/pages/rendered-content.vm</result>
            <result name="input" type="velocity">/pages/rendered-content.vm</result>
            <result name="error" type="velocity">/pages/rendered-content.vm</result>
        </action>

        <action name="viewpage" class="com.atlassian.confluence.pages.actions.ViewPageAction">
            <result name="error" type="velocity">/pages/viewpage.vm</result>
            <result name="input" type="velocity">/pages/viewpage.vm</result>
            <result name="page" type="velocity">/pages/viewpage.vm</result>
            <result name="possiblealternatives" type="velocity">/pages/alternativepages.vm</result>
            <result name="blogpost" type="velocity">/pages/viewblogpost.vm</result>
        </action>

        <action name="viewpagesrc" class="com.atlassian.confluence.pages.actions.ViewSourceAction">
            <result name="error" type="velocity">/pages/viewpage.vm</result>
            <result name="input" type="velocity">/pages/viewpagesrc.vm</result>
            <result name="page" type="velocity">/pages/viewpagesrc.vm</result>
            <result name="blogpost" type="velocity">/pages/viewpagesrc.vm</result>
        </action>

        <action name="children" class="com.atlassian.confluence.pages.actions.ChildrenAction">
            <result name="success" type="json"/>
        </action>

        <action name="summary" class="com.atlassian.confluence.pages.actions.PageSummaryAction">
            <result name="success" type="json"/>
        </action>

        <action name="viewblogposts" class="com.atlassian.confluence.pages.actions.ViewBlogPostsByDateAction">
            <result name="error" type="velocity">/pages/viewblogpostsbydate.vm</result>
            <result name="input" type="velocity">/pages/viewblogpostsbydate.vm</result>
            <result name="success" type="velocity">/pages/viewblogpostsbydate.vm</result>
        </action>

        <action name="viewrecentblogposts" class="com.atlassian.confluence.pages.actions.RecentBlogPostsAction">
            <result name="error" type="velocity">/pages/viewblogposts.vm</result>
            <result name="success" type="velocity">/pages/viewblogposts.vm</result>
        </action>

        <action name="listpages" class="com.atlassian.confluence.pages.actions.ListPagesAction">
			<result name="success" type="redirect">${redirectUrl}</result>
        </action>

        <action name="listpages-alphaview" class="com.atlassian.confluence.pages.actions.AlphabeticalListPagesAction">
            <result name="error" type="velocity">/pages/listpages-alphaview.vm</result>
            <result name="input" type="velocity">/pages/listpages-alphaview.vm</result>
            <result name="success" type="velocity">/pages/listpages-alphaview.vm</result>
        </action>

        <action name="listpages-dirview" class="com.atlassian.confluence.pages.actions.DirectoryViewListPagesAction">
            <result name="error" type="velocity">/pages/listpages-dirview.vm</result>
            <result name="input" type="velocity">/pages/listpages-dirview.vm</result>
            <result name="success" type="velocity">/pages/listpages-dirview.vm</result>
        </action>

        <action name="recentlyupdated" class="com.atlassian.confluence.spaces.actions.ViewRecentlyUpdatedSpaceContentAction">
            <result name="error" type="velocity">/pages/recentlyupdatedcontent.vm</result>
            <result name="input" type="velocity">/pages/recentlyupdatedcontent.vm</result>
            <result name="success" type="velocity">/pages/recentlyupdatedcontent.vm</result>
        </action>

        <action name="listneworupdatedpages" class="com.atlassian.confluence.pages.actions.ListNewOrUpdatedPagesAction">
            <result name="error" type="velocity">/pages/listneworupdatedpages.vm</result>
            <result name="input" type="velocity">/pages/listneworupdatedpages.vm</result>
            <result name="success" type="velocity">/pages/listneworupdatedpages.vm</result>
        </action>

        <action name="listorphanedpages" class="com.atlassian.confluence.pages.actions.ListOrphanedPagesAction">
            <result name="error" type="velocity">/pages/listorphanedpages.vm</result>
            <result name="input" type="velocity">/pages/listorphanedpages.vm</result>
            <result name="success" type="velocity">/pages/listorphanedpages.vm</result>
        </action>

        <action name="listundefinedpages" class="com.atlassian.confluence.pages.actions.ListUndefinedPagesAction">
            <result name="error" type="velocity">/pages/listundefinedpages.vm</result>
            <result name="input" type="velocity">/pages/listundefinedpages.vm</result>
            <result name="success" type="velocity">/pages/listundefinedpages.vm</result>
        </action>

        <action name="listpermissionpages" class="com.atlassian.confluence.pages.actions.ListPermissionPagesAction">
            <result name="error" type="velocity">/pages/listpermissionpages.vm</result>
            <result name="input" type="velocity">/pages/listpermissionpages.vm</result>
            <result name="success" type="velocity">/pages/listpermissionpages.vm</result>
        </action>

        <action name="doattachfile" class="com.atlassian.confluence.pages.actions.ViewPageAttachmentsAction">
            <result name="error" type="velocity">/pages/viewattachments.vm</result>
            <result name="input" type="velocity">/pages/viewattachments.vm</result>
            <result name="success" type="redirect">/pages/viewpageattachments.action?pageId=${pageId}&amp;sortBy=date&amp;${highlightParameter}</result>
        </action>

        <action name="downloadallattachments" class="com.atlassian.confluence.pages.actions.DownloadAllAttachmentsOnPageAction">
            <result name="success" type="redirect">${downloadPath}</result>
        </action>

        <action name="domacroattachfile" class="com.atlassian.confluence.pages.actions.ViewPageAttachmentsAction">
            <result name="error" type="dispatcher">/pages/viewpage.action</result>
            <result name="input" type="dispatcher">/pages/viewpage.action</result>
            <result name="success" type="redirect">/pages/viewpage.action?pageId=${pageId}</result>
        </action>

        <action name="viewpageattachments" class="com.atlassian.confluence.pages.actions.ViewPageAttachmentsAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="error" type="velocity">/pages/viewattachments.vm</result>
            <result name="input" type="velocity">/pages/viewattachments.vm</result>
            <result name="success" type="velocity">/pages/viewattachments.vm</result>
        </action>

        <action name="removeattachment" class="com.atlassian.confluence.pages.actions.RemoveAttachedFileAction">
            <result name="error" type="velocity">/pages/viewattachments.vm</result>
            <result name="input" type="velocity">/pages/viewattachments.vm</result>
            <result name="success" type="redirect">/pages/viewpageattachments.action?pageId=${pageId}</result>
        </action>

        <action name="editattachment" class="com.atlassian.confluence.pages.actions.MoveAttachmentAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="error" type="velocity">/pages/editattachment.vm</result>
            <result name="input" type="velocity">/pages/editattachment.vm</result>
        </action>

        <action name="doeditattachment" class="com.atlassian.confluence.pages.actions.MoveAttachmentAction">
            <result name="input" type="velocity">/pages/editattachment.vm</result>
            <result name="error" type="velocity">/pages/editattachment.vm</result>
            <result name="cancel" type="redirect">/pages/viewpageattachments.action?pageId=${pageId}</result>
            <result name="success" type="redirect">/pages/viewpageattachments.action?pageId=${pageId}</result>
        </action>

        <action name="replycomment" class="com.atlassian.confluence.pages.actions.ViewPageAction" method="doDefault">
            <result name="input" type="redirect">${@com.atlassian.confluence.util.GeneralUtil@customGetPageUrl(page)}replyToComment=${comment.id}#comment-${comment.id}</result>
        </action>

        <action name="doaddcomment" class="com.atlassian.confluence.pages.actions.AddCommentAction">
            <result name="error" type="velocity">/pages/addcomment-preview.vm</result>
            <result name="input" type="velocity">/pages/addcomment-preview.vm</result>
            <result name="viewpage" type="redirect">${@com.atlassian.confluence.util.GeneralUtil@customGetPageUrl(page)}showMarkup=${showMarkup}#comments</result>
            <result name="cancel" type="redirect">${@com.atlassian.confluence.util.GeneralUtil@customGetPageUrl(page)}#comments</result>
            <result name="cancel-to-parent" type="redirect">${@com.atlassian.confluence.util.GeneralUtil@customGetPageUrl(page)}focusedCommentId=${parentId}#comment-${parentId}</result>
            <result name="success" type="redirect">${@com.atlassian.confluence.util.GeneralUtil@customGetPageUrl(page)}focusedCommentId=${comment.id}#comment-${comment.id}</result>
            <result name="preview" type="velocity">/pages/addcomment-preview.vm</result>
        </action>

        <action name="editcomment" class="com.atlassian.confluence.pages.actions.EditCommentAction" method="doDefault">
            <result name="input" type="redirect">${@com.atlassian.confluence.util.GeneralUtil@customGetPageUrl(page)}showComments=true&amp;editComment=true&amp;commentId=${comment.id}#comment-${comment.id}</result>
        </action>

        <action name="doeditcomment" class="com.atlassian.confluence.pages.actions.EditCommentAction" method="doEdit">
            <result name="error" type="velocity">/pages/editcomment-preview.vm</result>
            <result name="input" type="velocity">/pages/editcomment-preview.vm</result>
            <result name="viewpage" type="redirect">${@com.atlassian.confluence.util.GeneralUtil@customGetPageUrl(page)}showMarkup=${showMarkup}#comments</result>
            <result name="cancel" type="redirect">${@com.atlassian.confluence.util.GeneralUtil@customGetPageUrl(page)}#comments</result>
            <result name="success" type="redirect">${@com.atlassian.confluence.util.GeneralUtil@customGetPageUrl(page)}focusedCommentId=${comment.id}#comment-${comment.id}</result>
            <result name="preview" type="velocity">/pages/editcomment-preview.vm</result>
        </action>

        <action name="removecomment" class="com.atlassian.confluence.pages.actions.RemoveCommentAction">
            <result name="error" type="velocity">/pages/viewpage.vm</result>
            <!--
                NOTE: If there are errors (See RemoveCommentAction-validation.xml) and INPUT is returned by the XWork validator,
                we should just redirect to the page.

                e.g. If the comment has already been removed (CONF-4641), the end result is that the comment has been deleted anyway,
                so this won't affect the user. If the space or page has been removed "behind their back", then an error page for that
                will be displayed.
            -->
            <result name="input" type="redirect">${@com.atlassian.confluence.util.GeneralUtil@customGetPageUrl(page)}showComments=true</result>
            <result name="cancel" type="redirect">${@com.atlassian.confluence.util.GeneralUtil@customGetPageUrl(page)}showComments=true</result>
            <result name="success" type="redirect">${@com.atlassian.confluence.util.GeneralUtil@customGetPageUrl(page)}showComments=true</result>
            <result name="notconfirmed" type="velocity">/pages/removecomment.vm</result>
        </action>

        <action name="removepagepermission" class="com.atlassian.confluence.pages.actions.RemovePagePermissionAction">
            <interceptor-ref name="defaultStack"/>
            <result name="success" type="redirect">/pages/listpermissionpages.action?key=${spaceKey}</result>
            <result name="returnPath" type="redirect">${returnPath}</result>
        </action>

        <action name="handlenameconflicts" class="com.atlassian.confluence.pages.actions.HandleNameConflictsAction" method="doDefault">
            <result name="input" type="velocity">/pages/handlenameconflicts.vm</result>
            <result name="success" type="redirect">/pages/saveeditpagebean.action?pageId=${pageId}</result>
            <result name="cancel" type="redirect">${page.urlPath}</result>
        </action>

        <action name="dohandlenameconflicts" class="com.atlassian.confluence.pages.actions.HandleNameConflictsAction">
            <result name="input" type="dispatcher">/pages/handlenameconflicts.action</result><!-- input result here means there are still name conflicts, restart the handle name conflicts process -->
            <!--Appears to be dead 
            <result name="confirm" type="velocity">/pages/confirm-move-hierarchy.vm</result> -->
            <result name="success" type="redirect">/pages/saveeditpagebean.action?pageId=${pageId}</result>
            <result name="cancel" type="redirect">${page.urlPath}</result>
        </action>

        <action name="viewpreviousversions" class="com.atlassian.confluence.pages.actions.ViewPreviousVersionsAction">
            <result name="error" type="velocity">/pages/viewpreviousversions.vm</result>
            <result name="success" type="velocity">/pages/viewpreviousversions.vm</result>
        </action>

        <action name="diffpages" class="com.atlassian.confluence.pages.actions.DiffPagesAction">
            <result name="error" type="velocity">/pages/diffpages.vm</result>
            <result name="input" type="velocity">/pages/diffpages.vm</result>
            <result name="success" type="velocity">/pages/diffpages.vm</result>
        </action>

        <action name="diffpagesbyversion" class="com.atlassian.confluence.pages.actions.DiffPagesByVersionAction">
            <result name="error" type="velocity">/pages/diffpages.vm</result>
            <result name="input" type="velocity">/pages/diffpages.vm</result>
            <result name="success" type="velocity">/pages/diffpages.vm</result>
        </action>

        <action name="viewchangessincelastlogin" class="com.atlassian.confluence.pages.actions.ViewChangesSinceLastLoginAction">
            <result name="error" type="velocity">/pages/diffpages.vm</result>
            <result name="input" type="velocity">/pages/diffpages.vm</result>
            <result name="success" type="velocity">/pages/diffpages.vm</result>
        </action>

        <action name="viewchangessincelastedit" class="com.atlassian.confluence.pages.actions.ViewChangesSinceLastEditAction">
            <result name="error" type="velocity">/pages/diffpages.vm</result>
            <result name="input" type="velocity">/pages/diffpages.vm</result>
            <result name="success" type="velocity">/pages/diffpages.vm</result>
        </action>

        <action name="viewinfo" class="com.atlassian.confluence.pages.actions.PageInfoAction">
            <result name="input" type="velocity">/pages/viewinfo.vm</result>
            <result name="error" type="velocity">/pages/viewinfo.vm</result>
            <result name="page" type="velocity">/pages/viewinfo.vm</result>
            <result name="blogpost" type="velocity">/pages/viewinfo.vm</result>
        </action>

        <action name="exportpage" class="com.atlassian.confluence.importexport.actions.ExportPageAction" method="doDefault">
            <result name="input" type="velocity">/importexport/exportpage.vm</result>
            <result name="error" type="velocity">/importexport/exportpage.vm</result>
        </action>

        <action name="tinyurl" class="com.atlassian.confluence.pages.actions.TinyUrlAction" method="execute">
            <result name="success" type="redirect">${urlPath}</result>
            <result name="error" type="redirect">${urlPath}</result>
        </action>

        <action name="doexportpage" class="com.atlassian.confluence.importexport.actions.ExportPageAction">
            <result name="error" type="velocity">/importexport/exportpage.vm</result>
            <result name="input" type="velocity">/importexport/exportpage.vm</result>
            <result name="cancel" type="redirect">${page.urlPath}</result>
            <result name="success" type="redirect">${downloadPath}</result>
        </action>

        <action name="addpagenotification" class="com.atlassian.confluence.mail.notification.actions.AlterPageNotificationAction" method="doAdd">
            <result name="success" type="redirect">${page.urlPath}</result>
            <result name="input" type="dispatcher">/pages/viewpage.action</result>
        </action>

        <action name="removepagenotification" class="com.atlassian.confluence.mail.notification.actions.AlterPageNotificationAction" method="doRemove">
            <result name="success" type="redirect">${page.urlPath}</result>
            <result name="input" type="dispatcher">/pages/viewpage.action</result>
        </action>

        <action name="viewtrash" class="com.atlassian.confluence.pages.actions.ViewTrashAction">
            <result name="input" type="velocity">/pages/viewtrash.vm</result>
            <result name="success" type="velocity">/pages/viewtrash.vm</result>
        </action>

        <action name="emptytrash" class="com.atlassian.confluence.pages.actions.EmptyTrashAction" method="doDefault">
            <result name="input" type="velocity">/pages/emptytrashconfirm.vm</result>
            <result name="success" type="velocity">/pages/emptytrashconfirm.vm</result>
        </action>

        <action name="doemptytrash" class="com.atlassian.confluence.pages.actions.EmptyTrashAction">
            <result name="success" type="redirect">/pages/viewtrash.action?key=${key}</result>
            <result name="cancel" type="redirect">/pages/viewtrash.action?key=${key}</result>
        </action>

        <action name="restoretrashitem" class="com.atlassian.confluence.pages.actions.RestoreTrashItemAction">
            <result name="input" type="velocity">/pages/restoretrashitem-confirm.vm</result>
            <result name="restoreexisting" type="dispatcher">restoreexistingtrashitem.action?existingContentId=${existingContentId}</result>
        </action>

        <action name="dorestoretrashitem" class="com.atlassian.confluence.pages.actions.RestoreTrashItemAction" method="doRestore">
            <result name="success" type="redirect">/pages/viewtrash.action?key=${spaceKey}</result>
            <result name="cancel" type="redirect">/pages/viewtrash.action?key=${spaceKey}</result>
        </action>

        <action name="restoreexistingtrashitem" class="com.atlassian.confluence.pages.actions.RestoreExistingTrashItemAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/pages/restoreexistingtrashitem.vm</result>
        </action>

        <action name="dorestoreexistingtrashitem" class="com.atlassian.confluence.pages.actions.RestoreExistingTrashItemAction">
            <result name="input" type="velocity">/pages/restoreexistingtrashitem.vm</result>
            <result name="overwrite" type="dispatcher">overwriteandrestore.action</result>
            <result name="rename" type="dispatcher">renameandrestore.action</result>
            <result name="cancel" type="redirect">/pages/viewtrash.action?key=${spaceKey}</result>
        </action>

        <action name="overwriteandrestore" class="com.atlassian.confluence.pages.actions.RestoreExistingTrashItemAction" method="doOverwrite">
            <result name="success" type="redirect">/pages/viewtrash.action?key=${key}</result>
        </action>

        <action name="renameandrestore" class="com.atlassian.confluence.pages.actions.RestoreExistingTrashItemAction" method="doRenameAndRestore">
            <result name="success" type="redirect">/pages/viewtrash.action?key=${key}</result>
        </action>

        <action name="purgetrashitem" class="com.atlassian.confluence.pages.actions.PurgeTrashItemAction" method="doDefault">
            <result name="input" type="velocity">/pages/purgetrashitem-confirm.vm</result>
        </action>

        <action name="dopurgetrashitem" class="com.atlassian.confluence.pages.actions.PurgeTrashItemAction">
            <result name="input" type="velocity">/pages/purgetrashitem-confirm.vm</result>
            <result name="success" type="redirect">/pages/viewtrash.action?key=${key}</result>
            <result name="cancel" type="redirect">/pages/viewtrash.action?key=${spaceKey}</result>
        </action>

        <action name="copypage" class="com.atlassian.confluence.pages.actions.CopyPageAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/pages/copypage.vm</result>
        </action>

        <action name="docopypage" class="com.atlassian.confluence.pages.actions.CopyPageAction" method="doAdd">
            <result name="input" type="velocity">/pages/copypage.vm</result>
            <result name="error" type="velocity">/pages/copypage.vm</result>
            <result name="cancel" type="redirect">/pages/viewinfo.action?pageId=${idOfPageToCopy}</result>
            <result name="success" type="redirect">${@com.atlassian.confluence.util.GeneralUtil@getPageUrl(page)}</result>
            <result name="preview" type="velocity">/pages/copypage-preview.vm</result>
        </action>
    </package>

    <package name="pageTemplates" extends="default" namespace="/pages/templates">
        <default-interceptor-ref name="validatingStack"/>

        <action name="createpagetemplate" class="com.atlassian.confluence.pages.templates.actions.CreatePageTemplateAction" method="doDefault">
        	<interceptor-ref name="defaultStack"/>
            <result name="error" type="velocity">/pages/templates/createpagetemplate.vm</result>
            <result name="input" type="velocity">/pages/templates/createpagetemplate.vm</result>
            <result name="success" type="velocity">/pages/templates/createpagetemplate.vm</result>
        </action>

        <action name="docreatepagetemplate" class="com.atlassian.confluence.pages.templates.actions.CreatePageTemplateAction">
            <result name="error" type="velocity">/pages/templates/createpagetemplate.vm</result>
            <result name="input" type="velocity">/pages/templates/createpagetemplate.vm</result>
            <result name="cancel" type="redirect">listpagetemplates.action?key=${key}</result>
            <result name="success" type="redirect">viewpagetemplate.action?pageTemplateId=${pageTemplate.id}&amp;key=${key}</result>
            <result name="preview" type="velocity">/pages/templates/createpagetemplate-preview.vm</result>
        </action>

        <action name="listpagetemplates" class="com.atlassian.confluence.pages.templates.actions.ListPageTemplatesAction">
            <result name="error" type="velocity">/pages/templates/listpagetemplates.vm</result>
            <result name="input" type="velocity">/pages/templates/listpagetemplates.vm</result>
            <result name="success" type="velocity">/pages/templates/listpagetemplates.vm</result>
        </action>

        <action name="removepagetemplate" class="com.atlassian.confluence.pages.templates.actions.RemovePageTemplateAction">
            <result name="error" type="velocity">/pages/templates/removepagetemplate.vm</result>
            <result name="input" type="velocity">/pages/templates/removepagetemplate.vm</result>
            <result name="success" type="velocity">/pages/templates/removepagetemplate.vm</result>
        </action>

        <action name="doremovepagetemplate" class="com.atlassian.confluence.pages.templates.actions.RemovePageTemplateAction" method="doRemove">
            <result name="error" type="velocity">/pages/templates/removepagetemplate.vm</result>
            <result name="input" type="velocity">/pages/templates/removepagetemplate.vm</result>
            <result name="cancel" type="redirect">listpagetemplates.action?key=${key}</result>
            <result name="success" type="redirect">listpagetemplates.action?key=${key}</result>
        </action>

        <action name="editpagetemplate" class="com.atlassian.confluence.pages.templates.actions.EditPageTemplateAction">
        	<interceptor-ref name="defaultStack"/>
            <result name="error" type="velocity">/pages/templates/editpagetemplate.vm</result>
            <result name="input" type="velocity">/pages/templates/editpagetemplate.vm</result>
            <result name="success" type="velocity">/pages/templates/editpagetemplate.vm</result>
        </action>

        <action name="doeditpagetemplate" class="com.atlassian.confluence.pages.templates.actions.EditPageTemplateAction" method="doEdit">
            <result name="error" type="velocity">/pages/templates/editpagetemplate.vm</result>
            <result name="input" type="velocity">/pages/templates/editpagetemplate.vm</result>
            <result name="cancel" type="redirect">viewpagetemplate.action?pageTemplateId=${pageTemplateId}&amp;key=${key}</result>
            <result name="success" type="redirect">viewpagetemplate.action?pageTemplateId=${pageTemplateId}&amp;key=${key}</result>
            <result name="preview" type="velocity">/pages/templates/editpagetemplate-preview.vm</result>
        </action>

        <action name="viewpagetemplate" class="com.atlassian.confluence.pages.templates.actions.ViewPageTemplateAction">
            <result name="error" type="velocity">/pages/templates/viewpagetemplate.vm</result>
            <result name="input" type="velocity">/pages/templates/viewpagetemplate.vm</result>
            <result name="success" type="velocity">/pages/templates/viewpagetemplate.vm</result>
        </action>
    </package>

    <package name="mailservers" extends="default" namespace="/admin/mail">
        <default-interceptor-ref name="validatingStack"/>

        <action name="viewmailservers" class="com.atlassian.confluence.admin.actions.mail.ViewMailServersAction">
            <interceptor-ref name="defaultStack"/>
            <result name="success" type="velocity">/admin/mail/viewmailservers.vm</result>
        </action>

        <action name="createsmtpmailserver" class="com.atlassian.confluence.admin.actions.mail.CreateSmtpMailServerAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/admin/mail/createsmtpmailserver.vm</result>
        </action>

        <action name="docreatesmtpmailserver" class="com.atlassian.confluence.admin.actions.mail.CreateSmtpMailServerAction">
            <interceptor-ref name="validatingStack"/>
            <result name="input" type="velocity">/admin/mail/createsmtpmailserver.vm</result>
            <result name="success" type="redirect">/admin/mail/viewmailservers.action</result>
            <result name="cancel" type="redirect">/admin/mail/viewmailservers.action</result>
        </action>

        <action name="editsmtpmailserver" class="com.atlassian.confluence.admin.actions.mail.EditSmtpMailServerAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/admin/mail/editsmtpmailserver.vm</result>
        </action>

        <action name="doeditsmtpmailserver" class="com.atlassian.confluence.admin.actions.mail.EditSmtpMailServerAction">
            <interceptor-ref name="validatingStack"/>
            <result name="input" type="velocity">/admin/mail/editsmtpmailserver.vm</result>
            <result name="success" type="redirect">/admin/mail/viewmailservers.action</result>
            <result name="cancel" type="redirect">/admin/mail/viewmailservers.action</result>
        </action>

        <action name="removesmtpmailserver" class="com.atlassian.confluence.admin.actions.mail.RemoveSmtpMailServerAction">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/admin/mail/viewmailservers.vm</result>
            <result name="success" type="redirect">/admin/mail/viewmailservers.action</result>
        </action>

        <action name="sendtestemail" class="com.atlassian.confluence.admin.actions.mail.SendTestEmailAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/admin/mail/sendtestemail.vm</result>
        </action>

        <action name="dosendtestemail" class="com.atlassian.confluence.admin.actions.mail.SendTestEmailAction">
            <interceptor-ref name="validatingStack"/>
            <result name="input" type="velocity">/admin/mail/sendtestemail.vm</result>
            <result name="cancel" type="redirect">/admin/mail/viewmailservers.action</result>
        </action>

        <action name="viewmailqueue" class="com.atlassian.confluence.admin.actions.mail.ViewMailQueueAction">
            <result name="success" type="velocity">/admin/mail/viewmailqueue.vm</result>
        </action>

        <action name="flushqueue" class="com.atlassian.confluence.admin.actions.mail.ViewMailQueueAction" method="doFlush">
            <result name="success" type="velocity">/admin/mail/viewmailqueue.vm</result>
        </action>

        <action name="resenderrorqueue" class="com.atlassian.confluence.admin.actions.mail.ViewMailQueueAction" method="doResend">
            <result name="success" type="velocity">/admin/mail/viewmailqueue.vm</result>
        </action>

        <action name="deleteerrorqueue" class="com.atlassian.confluence.admin.actions.mail.ViewMailQueueAction" method="doDeleteErrorQueue">
            <result name="success" type="velocity">/admin/mail/viewmailqueue.vm</result>
        </action>

        <!-- this action not currently exposed in the web interface. only called directly from functional tests as part of tearDown() -->
        <action name="deletequeue" class="com.atlassian.confluence.admin.actions.mail.ViewMailQueueAction" method="doDeleteQueue">
            <result name="success" type="velocity">/admin/mail/viewmailqueue.vm</result>
        </action>
    </package>

    <package name="usermanagement" extends="default" namespace="/admin/users">
        <default-interceptor-ref name="validatingStack"/>

        <action name="domembersofgroupsearch" class="com.atlassian.confluence.user.actions.ViewMembersOfGroupAction">
            <interceptor-ref name="defaultStack"/>
            <result name="success" type="velocity">/admin/users/browsegroupmembers.vm</result>
            <result name="error" type="velocity">/admin/users/browsegroupmembers.vm</result>
        </action>

        <action name="dosearchgroups" class="com.atlassian.confluence.user.actions.GroupPickerAction" method="doGroupSearch">
            <interceptor-ref name="defaultStack"/>
            <result name="success" type="velocity">/admin/users/searchgroups-result.vm</result>
            <result name="error" type="velocity">/admin/users/searchentities-error.vm</result>
        </action>

        <!-- this action should not use the validating stack because it is used to reset the filter -->
        <action name="browseusers" class="com.atlassian.confluence.user.actions.SearchUsersAction">
            <interceptor-ref name="defaultStack"/>
            <result name="success" type="velocity">/admin/users/browseusers.vm</result>
            <result name="error" type="velocity">/admin/users/browseusers.vm</result>
        </action>

        <action name="dosearchusers" class="com.atlassian.confluence.user.actions.SearchUsersAction" method="doUserSearch">
            <interceptor-ref name="validatingStack"/>
            <result name="success" type="velocity">/admin/users/browseusers.vm</result>
            <result name="error" type="velocity">/admin/users/browseusers.vm</result>
            <result name="input" type="velocity">/admin/users/browseusers.vm</result>
        </action>

        <action name="showallusers" class="com.atlassian.confluence.user.actions.BrowseUsersAction">
            <interceptor-ref name="defaultStack"/>
            <result name="success" type="velocity">/admin/users/browseusers.vm</result>
            <result name="error" type="velocity">/admin/users/browseusers.vm</result>
        </action>

        <action name="createuser" class="com.atlassian.confluence.user.actions.CreateUserAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/admin/users/createuser.vm</result>
        </action>

        <action name="docreateuser" class="com.atlassian.confluence.user.actions.CreateUserAction">
            <result name="input" type="velocity">/admin/users/createuser.vm</result>
            <result name="error" type="velocity">/admin/users/createuser.vm</result>
            <result name="success" type="redirect">viewuser.action?username=${@com.atlassian.confluence.util.GeneralUtil@doubleUrlEncode(username)}</result>
        </action>

        <action name="removeuser" class="com.atlassian.confluence.user.actions.RemoveUserAction" method="doDefault">
            <result name="input" type="velocity">/admin/users/removeuser.vm</result>
        </action>

        <action name="removeuser-confirm" class="com.atlassian.confluence.user.actions.RemoveUserAction">
            <result name="input" type="velocity">/admin/users/removeuser.vm</result>
            <result name="cancel" type="redirect">viewuser.action?username=${username}</result>
            <result name="success" type="redirect">browseusers.action</result>
        </action>

        <action name="deactivateuser" class="com.atlassian.confluence.user.actions.DeactivateUserAction" method="doDefault">
            <result name="input" type="velocity">/admin/users/deactivateuser.vm</result>
        </action>

        <action name="deactivateuser-confirm" class="com.atlassian.confluence.user.actions.DeactivateUserAction" method="doDeactivate">
            <result name="input" type="velocity">/admin/users/deactivateuser.vm</result>
            <result name="cancel" type="redirect">viewuser.action?username=${@com.atlassian.confluence.util.GeneralUtil@doubleUrlEncode(username)}</result>
            <result name="success" type="redirect">viewuser.action?username=${@com.atlassian.confluence.util.GeneralUtil@doubleUrlEncode(username)}</result>
        </action>

        <action name="reactivateuser" class="com.atlassian.confluence.user.actions.DeactivateUserAction" method="doDefault">
            <result name="input" type="velocity">/admin/users/reactivateuser.vm</result>
        </action>

        <action name="reactivateuser-confirm" class="com.atlassian.confluence.user.actions.DeactivateUserAction" method="doReactivate">
            <result name="input" type="velocity">/admin/users/reactivateuser.vm</result>
            <result name="cancel" type="redirect">viewuser.action?username=${@com.atlassian.confluence.util.GeneralUtil@doubleUrlEncode(username)}</result>
            <result name="success" type="redirect">viewuser.action?username=${@com.atlassian.confluence.util.GeneralUtil@doubleUrlEncode(username)}</result>
        </action>

        <action name="edituser" class="com.atlassian.confluence.user.actions.EditUserAction">
            <result name="error" type="velocity">/admin/users/edituser.vm</result>
            <result name="input" type="velocity">/admin/users/edituser.vm</result>
            <result name="success" type="velocity">/admin/users/edituser.vm</result>
        </action>

        <action name="doedituser" class="com.atlassian.confluence.user.actions.EditUserAction" method="doEdit">
            <result name="error" type="velocity">/admin/users/edituser.vm</result>
            <result name="input" type="velocity">/admin/users/edituser.vm</result>
            <result name="cancel" type="redirect">viewuser.action?username=${@com.atlassian.confluence.util.GeneralUtil@doubleUrlEncode(username)}</result>
            <result name="success" type="redirect">viewuser.action?username=${@com.atlassian.confluence.util.GeneralUtil@doubleUrlEncode(username)}</result>
        </action>

        <action name="setuserpassword" class="com.atlassian.confluence.user.actions.SetUserPasswordAction">
            <result name="error" type="velocity">/admin/users/setuserpassword.vm</result>
            <result name="input" type="velocity">/admin/users/setuserpassword.vm</result>
            <result name="success" type="velocity">/admin/users/setuserpassword.vm</result>
        </action>

        <action name="dosetuserpassword" class="com.atlassian.confluence.user.actions.SetUserPasswordAction" method="doSet">
            <result name="error" type="velocity">/admin/users/setuserpassword.vm</result>
            <result name="input" type="velocity">/admin/users/setuserpassword.vm</result>
            <result name="cancel" type="redirect">viewuser.action?username=${@com.atlassian.confluence.util.GeneralUtil@doubleUrlEncode(username)}</result>
            <result name="success" type="velocity">/admin/users/setuserpasswordsuccessful.vm</result>
        </action>

        <action name="viewuser" class="com.atlassian.confluence.user.actions.ViewUserAction">
            <result name="input" type="velocity">/admin/users/viewuser.vm</result>
            <result name="success" type="velocity">/admin/users/viewuser.vm</result>
        </action>

        <action name="editusergroups-start" class="com.atlassian.confluence.user.actions.EditUserGroupsAction" method="doDefault">
            <result name="input" type="velocity">/admin/users/editusergroups.vm</result>
        </action>

        <action name="editusergroups" class="com.atlassian.confluence.user.actions.EditUserGroupsAction">
            <result name="input" type="velocity">/admin/users/editusergroups.vm</result>
            <result name="error" type="velocity">/admin/users/editusergroups.vm</result>
            <result name="success" type="velocity">/admin/users/editusergroups.vm</result>
            <result name="redirect_to_admin" type="redirect">/admin/console.action</result>
        </action>

        <action name="browsegroups" class="com.atlassian.confluence.user.actions.BrowseGroupsAction">
            <interceptor-ref name="defaultStack"/>
            <result name="success" type="velocity">/admin/users/browsegroups.vm</result>
        </action>

        <action name="creategroup" class="com.atlassian.confluence.user.actions.BrowseGroupsAction" method="doAdd">
            <result name="input" type="velocity">/admin/users/browsegroups.vm</result>
            <result name="error" type="velocity">/admin/users/browsegroups.vm</result>
            <result name="success" type="redirect">browsegroups.action</result>
        </action>

        <action name="removegroup-confirm" class="com.atlassian.confluence.user.actions.RemoveGroupAction" method="doDefault">
            <result name="input" type="velocity">/admin/users/removegroup.vm</result>
        </action>

        <action name="doremovegroup" class="com.atlassian.confluence.user.actions.RemoveGroupAction">
            <result name="input" type="velocity">/admin/users/removegroup.vm</result>
            <result name="success" type="redirect">browsegroups.action</result>
            <result name="cancel" type="redirect">/admin/users/browsegroups.action</result>
        </action>
    </package>

    <package name="permissions" extends="default" namespace="/admin/permissions">
        <default-interceptor-ref name="validatingStack"/>

        <action name="globalpermissions" class="com.atlassian.confluence.security.actions.ViewGlobalPermissionsAction">
            <result name="error" type="velocity">/admin/permissions/viewglobalperms.vm</result>
            <result name="input" type="velocity">/admin/permissions/viewglobalperms.vm</result>
            <result name="cancel" type="redirect">/admin/console.action</result>
            <result name="success" type="velocity">/admin/permissions/viewglobalperms.vm</result>
        </action>

        <action name="editglobalpermissions" class="com.atlassian.confluence.security.actions.EditGlobalPermissionsAction" method="doDefault">
            <result name="input" type="velocity">/admin/permissions/editglobalperms.vm</result>
        </action>

        <action name="doeditglobalpermissions" class="com.atlassian.confluence.security.actions.EditGlobalPermissionsAction">
            <result name="input" type="velocity">/admin/permissions/editglobalperms.vm</result>
            <result name="error" type="velocity">/admin/permissions/editglobalperms.vm</result>
            <result name="cancel" type="redirect">/admin/permissions/globalpermissions.action</result>
            <result name="adjust" type="redirect">/admin/permissions/editglobalpermissions.action</result>
            <result name="success" type="redirect">/admin/permissions/globalpermissions.action</result>
        </action>

        <action name="pagepermsadmin" class="com.atlassian.confluence.admin.actions.debug.RebuildAncestorTableAction">
            <result name="success" type="velocity">/admin/permissions/pagepermsadmin.vm</result>
        </action>

        <action name="rebuild_ancestor_table" class="com.atlassian.confluence.admin.actions.debug.RebuildAncestorTableAction" method="doRebuildAncestorTable">
            <result name="success" type="velocity">/admin/permissions/rebuild-ancestor-table-success.vm</result>
            <result name="error" type="velocity">/admin/permissions/pagepermsadmin.vm</result>
        </action>

    </package>

    <package name="bootstrap" extends="default" namespace="/bootstrap">
        <default-interceptor-ref name="validatingSetupStack"/>

        <action name="selectsetupstep" class="com.atlassian.confluence.setup.actions.SelectSetupStepAction">
            <interceptor-ref name="defaultSetupStack"/>
            <result name="success" type="redirect">${currentStep}</result>
            <result name="checklist" type="velocity">/checklist.vm</result>
        </action>

        <action name="longrunningtaskxml" class="com.atlassian.confluence.admin.actions.LongRunningTaskMonitorAction" method="doTaskStatus">
            <interceptor-ref name="defaultSetupStack"/>
            <result name="success" type="velocity-xml">/admin/longrunningtask-xml.vm</result>
        </action>
    </package>

    <!-- Label actions -->
    <package name="labels" extends="default" namespace="/labels">
        <default-interceptor-ref name="validatingStack"/>

        <action name="viewlabel" class="com.atlassian.confluence.labels.actions.ViewLabelAction">
            <result name="success" type="velocity">/labels/viewlabel.vm</result>
            <result name="input" type="velocity">/labels/viewlabel.vm</result>
            <result name="error" type="velocity">/labels/viewlabel.vm</result>
        </action>

        <action name="listlabels-allview" class="com.atlassian.confluence.labels.actions.ListLabelsBySpaceAction">
            <result name="error" type="velocity">/labels/listlabels-allview.vm</result>
            <result name="input" type="velocity">/labels/listlabels-allview.vm</result>
            <result name="success" type="velocity">/labels/listlabels-allview.vm</result>
        </action>

        <action name="listlabels-alphaview" class="com.atlassian.confluence.labels.actions.AlphabeticalListLabelsAction">
            <result name="error" type="velocity">/labels/lists/listlabels-alphaview.vm</result>
            <result name="input" type="velocity">/labels/lists/listlabels-alphaview.vm</result>
            <result name="success" type="velocity">/labels/lists/listlabels-alphaview.vm</result>
        </action>

        <action name="listlabels-heatmap" class="com.atlassian.confluence.labels.actions.RankListLabelsAction">
            <result name="error" type="velocity">/labels/lists/listlabels-heatmap.vm</result>
            <result name="input" type="velocity">/labels/lists/listlabels-heatmap.vm</result>
            <result name="success" type="velocity">/labels/lists/listlabels-heatmap.vm</result>
        </action>

        <action name="addfavourite" class="com.atlassian.confluence.labels.actions.SetFavouriteAction" method="addFavourite">
            <result name="success" type="redirect">${rawEntity.urlPath}</result>
        </action>

        <action name="removefavourite" class="com.atlassian.confluence.labels.actions.SetFavouriteAction" method="removeFavourite">
            <result name="success" type="redirect">${rawEntity.urlPath}</result>
        </action>

        <action name="addspacetofavourites" class="com.atlassian.confluence.labels.actions.AddSpaceToFavouritesAction">
            <result name="success" type="redirect">/spaces/viewspacecontent.action?key=${space.key}</result>
            <result name="blank" type="velocity">/includes/blank.vm</result> <!-- no view neded for this action; use blank view -->
        </action>

        <action name="removespacefromfavourites" class="com.atlassian.confluence.labels.actions.RemoveSpaceFromFavouritesAction">
            <result name="success" type="redirect">/spaces/viewspacecontent.action?key=${space.key}</result>
            <result name="blank" type="velocity">/includes/blank.vm</result> <!-- no view neded for this action; use blank view -->
        </action>
    </package>

    <package name="setup" extends="default" namespace="/setup">
        <default-interceptor-ref name="validatingSetupStack"/>

        <global-results>
            <result name="adminsuccess" type="redirect">/admin/console.action</result>
        </global-results>

        <action name="selectglobaldefaultlocale" class="com.atlassian.confluence.setup.actions.SelectGlobalLocaleAction" method="execute">
            <interceptor-ref name="defaultSetupStack"/>
            <result name="success" type="redirect">/bootstrap/selectsetupstep.action</result>
        </action>

        <action name="setuplicense" class="com.atlassian.confluence.setup.actions.SetupLicenseAction" method="doDefault">
            <interceptor-ref name="defaultSetupStack"/>
            <result name="input" type="velocity">/setup/setuplicense.vm</result>
        </action>

        <action name="dosetuplicense" class="com.atlassian.confluence.setup.actions.SetupLicenseAction">
            <result name="error" type="velocity">/setup/setuplicense.vm</result>
            <result name="input" type="velocity">/setup/setuplicense.vm</result>
            <result name="success" type="redirect">setupdb-start.action</result>
            <result name="quick-setup" type="redirect">setupembeddeddb-default.action</result>
            <result name="custom-setup" type="redirect">setupdbchoice-start.action</result>
            <result name="cluster-setup" type="redirect">setupcluster-start.action</result>
        </action>

        <action name="setupdbchoice-start" class="com.atlassian.confluence.setup.actions.SetupDBChoiceAction" method="doDefault">
            <interceptor-ref name="defaultSetupStack"/>
            <result name="input" type="velocity">/setup/setupdbchoice.vm</result>
        </action>

        <action name="setupdbchoice" class="com.atlassian.confluence.setup.actions.SetupDBChoiceAction">
            <interceptor-ref name="defaultSetupStack"/>
            <result name="input" type="velocity">/setup/setupdbchoice.vm</result>
            <result name="error" type="velocity">/setup/setupdbchoice.vm</result>
            <result name="input-embedded-db" type="redirect">setupembeddeddb-default.action</result>
            <result name="setupdb" type="redirect">setupdb-start.action?database=${database}</result>
            <result name="cluster" type="redirect">finishsetup.action</result>
        </action>

        <action name="setupcluster-start" class="com.atlassian.confluence.setup.actions.SetupClusterAction" method="doDefault">
            <interceptor-ref name="defaultSetupStack"/>
            <result name="input" type="velocity">/setup/setupcluster.vm</result>
        </action>

        <action name="setupcluster" class="com.atlassian.confluence.setup.actions.SetupClusterAction">
            <interceptor-ref name="defaultSetupStack"/>
            <result name="input" type="velocity">/setup/setupcluster.vm</result>
            <result name="error" type="velocity">/setup/setupcluster.vm</result>
            <result name="setupdb" type="redirect">setupdbchoice-start.action?thisNodeClustered=true</result>
            <result name="cluster" type="redirect">finishsetup.action</result>
        </action>

        <action name="setupdb-start" class="com.atlassian.confluence.setup.actions.SetupDatabaseAction" method="doDefault">
            <interceptor-ref name="defaultSetupStack"/>
            <result name="input" type="velocity">/setup/setupdb.vm</result>
        </action>

        <action name="setupdb" class="com.atlassian.confluence.setup.actions.SetupDatabaseAction">
            <interceptor-ref name="defaultSetupStack"/>
            <result name="error" type="velocity">/setup/setupdb.vm</result>
            <result name="input-standard-db" type="redirect">setupstandarddb-start.action?database=${database}</result>
            <result name="input-datasource-db" type="redirect">setupdatasourcedb-start.action?database=${database}</result>
        </action>

        <action name="setupembeddeddb-default" class="com.atlassian.confluence.setup.actions.SetupEmbeddedDatabaseAction">
            <interceptor-ref name="defaultSetupStack"/>
            <result name="error" type="velocity">/setup/setupembeddeddb-failed.vm</result>
            <result name="quick-setup" type="redirect">setuppaths.action</result>
            <result name="custom-setup" type="redirect">setuppaths.action</result>
        </action>

        <action name="setupstandarddb-start" class="com.atlassian.confluence.setup.actions.SetupStandardDatabaseAction" method="doDefault">
            <interceptor-ref name="defaultSetupStack"/>
            <result name="input" type="velocity">/setup/setupstandarddb.vm</result>
            <result name="error" type="velocity">/setup/setupstandarddb.vm</result>
        </action>

        <action name="setupstandarddb" class="com.atlassian.confluence.setup.actions.SetupStandardDatabaseAction">
            <result name="success" type="redirect">setuppaths.action</result>
            <result name="input" type="velocity">/setup/setupstandarddb.vm</result>
            <result name="data-exists" type="velocity">/setup/setupstandarddb-data-exists.vm</result>
            <result name="error" type="velocity">/setup/setupstandarddb-failed.vm</result>
        </action>

        <action name="setupdatasourcedb-start" class="com.atlassian.confluence.setup.actions.SetupDatasourceAction" method="doDefault">
            <interceptor-ref name="defaultSetupStack"/>
            <result name="input" type="velocity">/setup/setupdatasourcedb.vm</result>
            <result name="error" type="velocity">/setup/setupdatasourcedb.vm</result>
        </action>

        <action name="setupdatasourcedb" class="com.atlassian.confluence.setup.actions.SetupDatasourceAction">
            <result name="success" type="redirect">setuppaths.action</result>
            <result name="input" type="velocity">/setup/setupdatasourcedb.vm</result>
            <result name="data-exists" type="velocity">/setup/setupdatasourcedb-data-exists.vm</result>
            <result name="error" type="velocity">/setup/setupdatasourcedb-failed.vm</result>
        </action>

        <action name="setuppaths" class="com.atlassian.confluence.setup.actions.SetupPathsAction">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/setup/setuppaths.vm</result>
            <result name="error" type="velocity">/setup/setuppaths.vm</result>
            <result name="quick-setup" type="redirect">setupdemocontent.action</result>
            <result name="success" type="redirect">setupdata-start.action</result>
            <result name="custom-setup" type="redirect">setupdata-start.action</result>
        </action>

        <action name="setupdata-start" class="com.atlassian.confluence.setup.actions.SetupDataAction" method="doDefault">
            <interceptor-ref name="defaultSetupStack"/>
            <result name="input" type="velocity">/setup/setupdata.vm</result>
        </action>

        <action name="setupdata" class="com.atlassian.confluence.setup.actions.SetupDataAction" >
            <interceptor-ref name="defaultSetupStack"/>
            <result name="input" type="velocity">/setup/setupdata.vm</result>
            <result name="error" type="velocity">/setup/setupdata.vm</result>
            <result name="blank" type="redirect">setupadministrator-start.action</result>
            <result name="demo" type="redirect">setupadministrator-start.action</result>
            <result name="import" type="redirect">setup-restore-start.action</result>
            <result name="demoerror" type="velocity">/setup/setupsteperror.vm</result>
        </action>

        <action name="setupdemocontent" class="com.atlassian.confluence.setup.actions.SetupDemoContentAction">
            <interceptor-ref name="defaultSetupStack"/>
            <result name="success" type="redirect">setupadministrator-start.action</result>
            <result name="error" type="velocity">/setup/setupsteperror.vm</result>
        </action>

        <action name="setupadministrator-start" class="com.atlassian.confluence.setup.actions.SetupAdministrator" method="doDefault">
            <interceptor-ref name="defaultSetupStack"/>
            <result name="input" type="velocity">/setup/setupadministrator.vm</result>
            <result name="error" type="velocity">/setup/setupadministrator.vm</result>
        </action>

        <action name="setupadministrator" class="com.atlassian.confluence.setup.actions.SetupAdministrator">
            <result name="input" type="velocity">/setup/setupadministrator.vm</result>
            <result name="error" type="velocity">/setup/setupadministrator.vm</result>
            <result name="success" type="redirect">finishsetup.action</result>
            <result name="custom-setup" type="redirect">finishsetup.action</result>
            <result name="quick-setup" type="redirect">finishsetup.action</result>
        </action>

        <action name="setup-restore-start" class="com.atlassian.confluence.importexport.actions.SetupRestoreAction" method="doDefault">
            <interceptor-ref name="defaultSetupStack"/>
            <result name="input" type="velocity">/setup/restore.vm</result>
        </action>

        <action name="setup-restore" class="com.atlassian.confluence.importexport.actions.SetupRestoreAction">
            <result name="input" type="velocity">/setup/restore.vm</result>
            <result name="error" type="velocity">/setup/restore.vm</result>
            <result name="success" type="velocity">/setup/setup-restore-progress.vm</result>
        </action>

        <action name="setup-restore-local" class="com.atlassian.confluence.importexport.actions.SetupRestoreFileAction">
            <result name="input" type="velocity">/setup/restore.vm</result>
            <result name="error" type="velocity">/setup/restore.vm</result>
            <result name="success" type="velocity">/setup/setup-restore-progress.vm</result>
        </action>

        <action name="finishsetup" class="com.atlassian.confluence.setup.actions.FinishSetupAction">
            <result name="success" type="velocity">/setup/setupsuccess.vm</result>
            <result name="error" type="velocity">/setup/setupsuccess.vm</result>
        </action>
    </package>

    <package name="admin" extends="setup" namespace="/admin">
        <default-interceptor-ref name="validatingStack"/>

        <action name="configuregloballogo" class="com.atlassian.confluence.admin.actions.ConfigureGlobalLogoAction">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/admin/configurelogo.vm</result>
            <result name="error" type="velocity">/admin/configurelogo.vm</result>
            <result name="success" type="velocity">/admin/configurelogo.vm</result>
        </action>

        <action name="ldaptest" class="com.atlassian.confluence.admin.actions.ExternalUserConnectivityAction">
            <result name="success" type="velocity">/admin/external-user-test-results.vm</result>
        </action>

        <action name="viewlog4j" class="com.atlassian.confluence.admin.actions.ConfigureLog4jAction">
            <result name="success" type="velocity">/admin/configurelog4j.vm</result>
        </action>

        <action name="deleteLogEntry" class="com.atlassian.confluence.admin.actions.ConfigureLog4jAction" method="delete">
            <result name="success" type="redirect">/admin/viewlog4j.action</result>
            <result name="error" type="velocity">/admin/configurelog4j.vm</result>
        </action>

        <action name="savelog4j" class="com.atlassian.confluence.admin.actions.ConfigureLog4jAction" method="save">
            <result name="success" type="redirect">/admin/viewlog4j.action</result>
        </action>

        <action name="addlog4jentry" class="com.atlassian.confluence.admin.actions.ConfigureLog4jAction" method="add">
            <result name="success" type="redirect">/admin/viewlog4j.action</result>
            <result name="error" type="velocity">/admin/configurelog4j.vm</result>
        </action>

        <action name="turnonhibernatelogging" class="com.atlassian.confluence.admin.actions.ConfigureLog4jAction" method="turnOnHibernateLogging">
            <result name="success" type="redirect">/admin/viewlog4j.action</result>
        </action>

        <action name="turnoffhibernatelogging" class="com.atlassian.confluence.admin.actions.ConfigureLog4jAction" method="turnOffHibernateLogging">
            <result name="success" type="redirect">/admin/viewlog4j.action</result>
        </action>

        <action name="turnonhibernatetypes" class="com.atlassian.confluence.admin.actions.ConfigureLog4jAction" method="turnOnHibernateTypeParameters">
            <result name="success" type="redirect">/admin/viewlog4j.action</result>
        </action>
        <action name="turnoffhibernatetypes" class="com.atlassian.confluence.admin.actions.ConfigureLog4jAction" method="turnOffHibernateTypeParameters">
            <result name="success" type="redirect">/admin/viewlog4j.action</result>
        </action>
        <action name="changeloggingprofile" class="com.atlassian.confluence.admin.actions.ConfigureLog4jAction" method="changeProfile">
            <result name="success" type="redirect">/admin/viewlog4j.action</result>
            <result name="error" type="velocity">/admin/configurelog4j.vm</result>
        </action>

        <action name="changeprofiling" class="com.atlassian.confluence.admin.actions.ConfigureProfilingAction">
            <result name="success" type="redirect">/admin/viewlog4j.action</result>
        </action>


        <action name="uploadgloballogo" class="com.atlassian.confluence.admin.actions.ConfigureGlobalLogoAction" method="doUpload">
            <result name="error" type="velocity">/admin/configurelogo.vm</result>
            <result name="input" type="velocity">/admin/configurelogo.vm</result>
            <result name="success" type="redirect">/admin/configuregloballogo.action</result>
        </action>

        <action name="deletegloballogo" class="com.atlassian.confluence.admin.actions.ConfigureGlobalLogoAction" method="doDelete">
            <result name="error" type="velocity">/admin/configurelogo.vm</result>
            <result name="input" type="velocity">/admin/configurelogo.vm</result>
            <result name="success" type="redirect">/admin/configuregloballogo.action</result>
        </action>

        <action name="disablegloballogo" class="com.atlassian.confluence.admin.actions.ConfigureGlobalLogoAction" method="doDisableLogo">
            <result name="success" type="redirect">/admin/configuregloballogo.action</result>
        </action>

        <action name="enablegloballogo" class="com.atlassian.confluence.admin.actions.ConfigureGlobalLogoAction" method="doEnableLogo">
            <result name="success" type="redirect">/admin/configuregloballogo.action</result>
        </action>

        <action name="configurelogo" class="com.atlassian.confluence.admin.actions.ConfigureGlobalLogoAction">
            <result name="input" type="velocity">/admin/configurelogo.vm</result>
            <result name="error" type="velocity">/admin/configurelogo.vm</result>
            <result name="success" type="velocity">/admin/configurelogo.vm</result>
        </action>

        <action name="uploadlogo" class="com.atlassian.confluence.admin.actions.ConfigureGlobalLogoAction" method="doUpload">
            <result name="error" type="velocity">/admin/configurelogo.vm</result>
            <result name="success" type="redirect">/admin/configurelogo.action</result>
        </action>

        <action name="deletelogo" class="com.atlassian.confluence.admin.actions.ConfigureGlobalLogoAction" method="doDelete">
            <result name="error" type="velocity">/admin/configurelogo.vm</result>
            <result name="success" type="redirect">/admin/configurelogo.action</result>
        </action>

        <action name="console" class="com.atlassian.confluence.admin.actions.AdministrationConsoleAction" method="doDefault">
            <result name="input" type="velocity">/admin/console.vm</result>
            <result name="success" type="velocity">/admin/console.vm</result>
        </action>

        <action name="editconsolemessages" class="com.atlassian.confluence.admin.actions.AdministrationConsoleAction">
            <result name="input" type="velocity">/admin/console.vm</result>
            <result name="success" type="velocity">/admin/console.vm</result>
        </action>

        <action name="configurecaptcha" class="com.atlassian.confluence.admin.actions.ConfigureCaptchaAction" method="doDefault">
            <result name="input" type="velocity">/admin/configurecaptcha.vm</result>
        </action>

        <action name="doconfigurecaptcha" class="com.atlassian.confluence.admin.actions.ConfigureCaptchaAction">
            <result name="success" type="redirect">/admin/configurecaptcha.action</result>
            <result name="input" type="velocity">/admin/configurecaptcha.vm</result>
        </action>

        <action name="configurelanguage" class="com.atlassian.confluence.admin.actions.languages.ConfigureLanguageAction">
            <result name="success" type="velocity">/admin/configurelanguage.vm</result>
            <result name="input" type="velocity">/admin/configurelanguage.vm</result>
        </action>

        <action name="removecaptchagroup" class="com.atlassian.confluence.admin.actions.ConfigureCaptchaAction"  method="removeCaptchaGroup">
            <result name="error" type="velocity">/admin/configurecaptcha.vm</result>
            <result name="success" type="redirect">/admin/configurecaptcha.action</result>
        </action>

        <action name="backup" class="com.atlassian.confluence.importexport.actions.BackupAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/importexport/backup.vm</result>
        </action>

        <action name="dobackup" class="com.atlassian.confluence.importexport.actions.BackupAction">
            <result name="error" type="velocity">/importexport/backup.vm</result>
            <result name="success" type="velocity">/importexport/backupsuccessful.vm</result>
        </action>

        <action name="viewpaths" class="com.atlassian.confluence.admin.actions.AdminSetupPathsAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/admin/viewpaths.vm</result>
        </action>

        <action name="editpaths" class="com.atlassian.confluence.admin.actions.AdminSetupPathsAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/admin/editpaths.vm</result>
        </action>

        <action name="doeditpaths" class="com.atlassian.confluence.admin.actions.AdminSetupPathsAction">
            <interceptor-ref name="validatingStack"/>
            <result name="input" type="velocity">/admin/editpaths.vm</result>
            <result name="error" type="velocity">/admin/editpaths.vm</result>
            <result name="adminsuccess" type="redirect">/admin/viewpaths.action</result>
        </action>

        <action name="restore" class="com.atlassian.confluence.importexport.actions.RestoreAction">
            <result name="input" type="velocity">/importexport/backup.vm</result>
            <result name="error" type="velocity">/importexport/backup.vm</result>
            <result name="success" type="redirect">/longrunningtask.action</result>
        </action>

        <action name="restore-local-file" class="com.atlassian.confluence.importexport.actions.RestoreLocalFileAction">
            <result name="input" type="velocity">/importexport/backup.vm</result>
            <result name="error" type="velocity">/importexport/backup.vm</result>
            <result name="success" type="redirect">/longrunningtask.action</result>
        </action>

        <action name="snipsnapimport-start" class="com.atlassian.confluence.importexport.actions.ImportSnipSnapAction" method="doDefault">
            <result name="input" type="velocity">/importexport/import-snipsnap.vm</result>
        </action>

        <action name="snipsnapimport" class="com.atlassian.confluence.importexport.actions.ImportSnipSnapAction">
            <result name="input" type="velocity">/importexport/import-snipsnap.vm</result>
            <result name="error" type="velocity">/importexport/import-snipsnap.vm</result>
            <result name="success" type="redirect">/longrunningtask.action</result>
        </action>

        <action name="reindex" class="com.atlassian.confluence.admin.actions.ViewIndexQueueAction" method="reIndex">
            <result name="success" type="redirect">/admin/indexsummary.action</result>
        </action>

        <action name="viewindexqueue" class="com.atlassian.confluence.admin.actions.ViewIndexQueueAction">
            <result name="success" type="velocity">/admin/indexing/viewindexqueue.vm</result>
        </action>

        <action name="indexsummary" class="com.atlassian.confluence.admin.actions.ViewIndexQueueAction">
            <result name="success" type="velocity">/admin/indexing/index-summary.vm</result>
        </action>

        <action name="reindexstatus" class="com.atlassian.confluence.admin.actions.ViewIndexQueueAction" method="doReindexStatus">
            <result name="success" type="velocity-xml">/admin/indexing/reindexstatus.vm</result>
        </action>

        <action name="flushindexqueue" class="com.atlassian.confluence.search.actions.FlushIndexQueueAction">
            <result name="success" type="redirect">/admin/viewindexqueue.action</result>
        </action>

        <action name="plugins" class="com.atlassian.confluence.admin.actions.plugins.ManagePluginsAction">
            <interceptor-ref name="defaultStack"/>
            <result name="success" type="velocity">/admin/plugins.vm</result>
        </action>

        <action name="uploadplugin" class="com.atlassian.confluence.admin.actions.plugins.UploadPluginAction">
            <result name="input" type="velocity">/admin/plugins.vm</result>
            <result name="error" type="velocity">/admin/plugins.vm</result>
            <result name="success" type="redirect">/admin/plugins.action?pluginKey=${pluginKey}</result>
        </action>

        <action name="usermacros" class="com.atlassian.confluence.admin.actions.macros.UserMacroAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/admin/macros/viewusermacros.vm</result>
        </action>

        <action name="addusermacro-start" class="com.atlassian.confluence.admin.actions.macros.AddUserMacroAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/admin/macros/addusermacro.vm</result>
        </action>

        <action name="addusermacro" class="com.atlassian.confluence.admin.actions.macros.AddUserMacroAction" method="doAdd">
            <interceptor-ref name="validatingStack"/>
            <result name="input" type="velocity">/admin/macros/addusermacro.vm</result>
            <result name="success" type="redirect">/admin/usermacros.action</result>
            <result name="cancel" type="redirect">/admin/usermacros.action</result>
        </action>

        <action name="updateusermacro-start" class="com.atlassian.confluence.admin.actions.macros.UpdateUserMacroAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/admin/macros/updateusermacro.vm</result>
        </action>

        <action name="updateusermacro" class="com.atlassian.confluence.admin.actions.macros.UpdateUserMacroAction" method="doUpdate">
            <interceptor-ref name="validatingStack"/>
            <result name="input" type="velocity">/admin/macros/updateusermacro.vm</result>
            <result name="success" type="redirect">/admin/usermacros.action</result>
            <result name="cancel" type="redirect">/admin/usermacros.action</result>
        </action>

        <action name="removeusermacro" class="com.atlassian.confluence.admin.actions.macros.RemoveUserMacroAction" method="doRemove">
            <interceptor-ref name="validatingStack"/>
            <result name="input" type="velocity">/admin/macros/viewusermacros.vm</result>
            <result name="success" type="redirect">/admin/usermacros.action</result>
            <result name="cancel" type="redirect">/admin/usermacros.action</result>
        </action>

        <action name="viewgeneralconfig" class="com.atlassian.confluence.admin.actions.GeneralConfigurationAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/admin/viewgeneralconfig.vm</result>
        </action>

        <action name="editgeneralconfig" class="com.atlassian.confluence.admin.actions.GeneralConfigurationAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/admin/editgeneralconfig.vm</result>
        </action>

        <action name="doeditgeneralconfig" class="com.atlassian.confluence.admin.actions.GeneralConfigurationAction">
            <result name="input" type="velocity">/admin/editgeneralconfig.vm</result>
            <result name="error" type="velocity">/admin/editgeneralconfig.vm</result>
            <result name="cancel" type="redirect">/admin/viewgeneralconfig.action</result>
            <result name="success" type="redirect">/admin/viewgeneralconfig.action</result>
        </action>

        <action name="attachmentstoragesetup" class="com.atlassian.confluence.admin.actions.AttachmentStorageSetupAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/admin/attachmentstoragesetup.vm</result>
        </action>

        <action name="editattachmentstorage" class="com.atlassian.confluence.admin.actions.AttachmentStorageSetupAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/admin/editattachmentstorage.vm</result>
        </action>

        <action name="doeditattachmentstorage" class="com.atlassian.confluence.admin.actions.AttachmentStorageSetupAction">
            <result name="input" type="velocity">/admin/editattachmentstorage.vm</result>
            <result name="error" type="velocity">/admin/editattachmentstorage.vm</result>
            <result name="success" type="redirect">/admin/attachmentstoragesetup.action</result>
            <result name="cancel" type="redirect">/admin/attachmentstoragesetup.action</result>
			<result name="migrate" type="dispatcher">/admin/confirmattachmentmigration.action</result>
		</action>

		<action name="confirmattachmentmigration" class="com.atlassian.confluence.admin.actions.AttachmentMigrationAction" method="doConfirm">
			<result name="input" type="velocity">/admin/attachmentmigration.vm</result>
		</action>

		<action name="doattachmentmigration" class="com.atlassian.confluence.admin.actions.AttachmentMigrationAction" method="doMigration">
            <result name="cancel" type="redirect">/admin/attachmentstoragesetup.action</result>
			<result name="success" type="dispatcher">/longrunningtask.action</result>
		</action>

		<action name="browseiconmappings" class="com.atlassian.confluence.admin.actions.macros.BrowseJiraIssuesMacroIconMappingsAction">
            <interceptor-ref name="defaultStack"/>
            <result name="success" type="velocity">/admin/macros/browse_jira_issues_macro_icon_mappings.vm</result>
        </action>

        <action name="addiconmapping" class="com.atlassian.confluence.admin.actions.macros.BrowseJiraIssuesMacroIconMappingsAction" method="doAddIconMapping">
            <result name="input" type="velocity">/admin/macros/browse_jira_issues_macro_icon_mappings.vm</result>
            <result name="success" type="redirect">/admin/browseiconmappings.action</result>
        </action>

        <action name="removeiconmapping" class="com.atlassian.confluence.admin.actions.macros.RemoveJiraIssuesMacroIconMappingsAction">
            <result name="input" type="velocity">/admin/macros/browse_jira_issues_macro_icon_mappings.vm</result>
            <result name="success" type="redirect">/admin/browseiconmappings.action</result>
        </action>

        <action name="dailybackupadmin" class="com.atlassian.confluence.admin.actions.DailyBackupAdminAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="success" type="velocity">/admin/dailybackup.vm</result>
        </action>

        <action name="editdailybackupsettings" class="com.atlassian.confluence.admin.actions.DailyBackupAdminAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="success" type="velocity">/admin/editdailybackupsettings.vm</result>
        </action>

        <action name="doeditdailybackupsettings" class="com.atlassian.confluence.admin.actions.DailyBackupAdminAction" method="doEdit">
            <result name="input" type="velocity">/admin/editdailybackupsettings.vm</result>
            <result name="success" type="redirect">dailybackupadmin.action</result>
        </action>

        <action name="managereferrers" class="com.atlassian.confluence.admin.actions.ManageReferrersAction">
            <result name="success" type="velocity">/admin/managereferrers.vm</result>
        </action>

        <action name="disablereferrers" class="com.atlassian.confluence.admin.actions.ManageReferrersAction" method="doDisableReferrers">
            <result name="success" type="redirect">/admin/managereferrers.action</result>
        </action>

        <action name="enablereferrers" class="com.atlassian.confluence.admin.actions.ManageReferrersAction" method="doEnableReferrers">
            <result name="success" type="redirect">/admin/managereferrers.action</result>
        </action>

        <action name="hidereferrers" class="com.atlassian.confluence.admin.actions.ManageReferrersAction" method="doHideReferrers">
            <result name="success" type="redirect">/admin/managereferrers.action</result>
        </action>

        <action name="showreferrers" class="com.atlassian.confluence.admin.actions.ManageReferrersAction" method="doShowReferrers">
            <result name="success" type="redirect">/admin/managereferrers.action</result>
        </action>

        <action name="ban_referrer_admin" class="com.atlassian.confluence.admin.actions.ManageReferrersAction" method="doAddExcludedReferrer">
            <result name="success" type="redirect">/admin/managereferrers.action</result>
        </action>

        <action name="ban_referrer_pageinfo" class="com.atlassian.confluence.admin.actions.ManageReferrersAction" method="doBanReferrerAndRefreshCache">
            <result name="success" type="redirect">/pages/viewinfo.action?pageId=${redirPageId}</result>
        </action>

        <action name="remove_referrer_from_excludelist" class="com.atlassian.confluence.admin.actions.ManageReferrersAction" method="doRemoveExcludedReferrer">
            <result name="success" type="redirect">/admin/managereferrers.action</result>
        </action>

        <action name="purgesinglereferrer" class="com.atlassian.confluence.admin.actions.PurgeReferrersAction" method="doPurgeSingleReferrer">
            <result name="success" type="redirect">/admin/managereferrers.action?showActionMsg=true&amp;deletions=${deletions}</result>
        </action>

        <action name="purgereferrers" class="com.atlassian.confluence.admin.actions.PurgeReferrersAction">
            <result name="success" type="redirect">/admin/managereferrers.action?showActionMsg=true&amp;deletions=${deletions}</result>
        </action>

        <action name="browseshortcuts" class="com.atlassian.confluence.admin.actions.BrowseShortcutsAction">
            <result name="success" type="velocity">/admin/browseshortcuts.vm</result>
        </action>

        <action name="createshortcut" class="com.atlassian.confluence.admin.actions.BrowseShortcutsAction" method="doAdd">
            <result name="input" type="velocity">/admin/browseshortcuts.vm</result>
            <result name="error" type="velocity">/admin/browseshortcuts.vm</result>
            <result name="success" type="redirect">browseshortcuts.action</result>
        </action>

        <action name="removeshortcut" class="com.atlassian.confluence.admin.actions.BrowseShortcutsAction" method="doRemove">
            <result name="input" type="velocity">/admin/browseshortcuts.vm</result>
            <result name="error" type="velocity">/admin/browseshortcuts.vm</result>
            <result name="success" type="redirect">browseshortcuts.action</result>
        </action>


        <action name="license" class="com.atlassian.confluence.admin.actions.ViewOrUpdateLicenseAction">
			<interceptor-ref name="defaultStack"/>        
            <result name="success" type="velocity">/admin/viewlicense.vm</result>
            <result name="error" type="velocity">/admin/viewlicense.vm</result>
        </action>

        <action name="doupdatelicense" class="com.atlassian.confluence.admin.actions.ViewOrUpdateLicenseAction" method="doUpdate">
            <result name="success" type="redirect">license.action?restartReminder=${restartReminder}&amp;licenseSubmitted=true</result>
        	<result name="input" type="velocity">/admin/viewlicense.vm</result>
            <result name="error" type="velocity">/admin/viewlicense.vm</result>
        </action>

        <action name="lookandfeel" class="com.atlassian.confluence.admin.actions.lookandfeel.LookAndFeelAction">
            <result name="success" type="velocity">/admin/lookandfeel/lookandfeel.vm</result>
        </action>

        <action name="dochangecolourscheme" class="com.atlassian.confluence.admin.actions.lookandfeel.ColourSchemeAction" method="changeColorScheme">
            <result name="success" type="velocity">/admin/lookandfeel/lookandfeel.vm</result>
        </action>

        <action name="doeditcolourscheme" class="com.atlassian.confluence.admin.actions.lookandfeel.ColourSchemeAction">
            <result name="input" type="velocity">/admin/lookandfeel/lookandfeel.vm</result>
            <result name="error" type="velocity">/admin/lookandfeel/lookandfeel.vm</result>
            <result name="reset" type="redirect">/admin/lookandfeel.action</result>
            <result name="cancel" type="redirect">/admin/lookandfeel.action</result>
            <result name="success" type="redirect">/admin/lookandfeel.action</result>
        </action>

        <action name="choosetheme" class="com.atlassian.confluence.admin.actions.lookandfeel.ChooseThemeAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/admin/lookandfeel/choosetheme.vm</result>
        </action>

        <action name="dochoosetheme" class="com.atlassian.confluence.admin.actions.lookandfeel.ChooseThemeAction">
            <result name="input" type="velocity">/admin/lookandfeel/choosetheme.vm</result>
            <result name="success" type="velocity">/admin/lookandfeel/choosetheme.vm</result>
        </action>

        <action name="listdecorators" class="com.atlassian.confluence.admin.actions.lookandfeel.EditDecoratorAction" method="doList">
            <result name="input" type="velocity">/admin/lookandfeel/listdecorators.vm</result>
        </action>

        <action name="resetdecorator" class="com.atlassian.confluence.admin.actions.lookandfeel.EditDecoratorAction" method="doReset">
            <result name="success" type="redirect">/admin/listdecorators.action</result>
            <result name="error" type="velocity">/admin/lookandfeel/listdecorators.vm</result>
        </action>

        <action name="editdecorator" class="com.atlassian.confluence.admin.actions.lookandfeel.EditDecoratorAction" method="doRead">
            <result name="input" type="velocity">/admin/lookandfeel/editdecorator.vm</result>
            <result name="error" type="velocity">/admin/lookandfeel/listdecorators.vm</result>
        </action>

        <action name="viewdefaultdecorator" class="com.atlassian.confluence.admin.actions.lookandfeel.ViewDefaultDecoratorAction">
            <result name="success" type="velocity">/admin/lookandfeel/viewdefaultdecorator.vm</result>
            <result name="error" type="velocity">/admin/lookandfeel/listdecorators.vm</result>
        </action>

        <action name="storedecorator" class="com.atlassian.confluence.admin.actions.lookandfeel.EditDecoratorAction" method="doWrite">
            <result name="input" type="velocity">/admin/lookandfeel/editdecorator.vm</result>
            <result name="error" type="velocity">/admin/lookandfeel/editdecorator.vm</result>
            <result name="success" type="redirect">/admin/listdecorators.action</result>
            <result name="cancel" type="redirect">/admin/listdecorators.action</result>
        </action>

        <action name="classpath" class="com.atlassian.confluence.admin.actions.ViewSystemClasspathAction">
            <result name="success" type="velocity">viewclasspath.vm</result>
        </action>

        <action name="systeminfo" class="com.atlassian.confluence.admin.actions.ViewSystemInfoAction">
            <result name="success" type="velocity">viewsysteminfo.vm</result>
        </action>

        <action name="cachestatistics" class="com.atlassian.confluence.admin.actions.CoherenceCacheStatisticsAction">
            <result name="success" type="velocity">/admin/cachestatistics.vm</result>
        </action>

        <action name="flushcache" class="com.atlassian.confluence.admin.actions.FlushCacheAction">
            <result name="success" type="redirect">/admin/cachestatistics.action</result>
        </action>

        <action name="encodingtest" class="com.atlassian.confluence.admin.actions.debug.EncodingTestAction" method="doDefault">
            <result name="input" type="velocity">/admin/debug/encodingtest.vm</result>
        </action>

        <action name="encodingtestrun" class="com.atlassian.confluence.admin.actions.debug.EncodingTestAction">
            <result name="success" type="velocity">/admin/debug/encodingtestdone.vm</result>
        </action>

        <action name="refreshlicensing" class="com.atlassian.confluence.admin.actions.RefreshLicensingAction">
            <result name="success" type="redirect">/admin/license.action</result>
        </action>

        <action name="browsecomments" class="com.atlassian.confluence.admin.actions.debug.BrowseCommentsAction">
            <result name="success" type="velocity">/admin/debug/browsecomments.vm</result>
        </action>

        <action name="viewcustomhtml" class="com.atlassian.confluence.admin.actions.lookandfeel.CustomHtmlAction" method="doDefault">
            <result name="input" type="velocity">/admin/lookandfeel/viewcustomhtml.vm</result>
        </action>

        <action name="editcustomhtml" class="com.atlassian.confluence.admin.actions.lookandfeel.CustomHtmlAction" method="doDefault">
            <result name="input" type="velocity">/admin/lookandfeel/editcustomhtml.vm</result>
        </action>

        <action name="doeditcustomhtml" class="com.atlassian.confluence.admin.actions.lookandfeel.CustomHtmlAction">
            <result name="input" type="velocity">/admin/lookandfeel/editcustomhtml.vm</result>
            <result name="error" type="velocity">/admin/lookandfeel/editcustomhtml.vm</result>
            <result name="cancel" type="redirect">/admin/viewcustomhtml.action</result>
            <result name="success" type="redirect">/admin/viewcustomhtml.action</result>
        </action>

        <action name="configurepdflanguagesupport" class="com.atlassian.confluence.admin.actions.ConfigurePDFLanguageSupportAction" method="doDefault">
            <result name="input" type="velocity">/admin/configurepdflanguagesupport.vm</result>
        </action>

        <action name="doconfigurepdflanguagesupport" class="com.atlassian.confluence.admin.actions.ConfigurePDFLanguageSupportAction">
            <result name="error" type="velocity">/admin/configurepdflanguagesupport.vm</result>
            <result name="success" type="redirect">/admin/configurepdflanguagesupport.action?installFontSuccess=true</result>
        </action>

        <action name="restoredefaultpdflanguage" class="com.atlassian.confluence.admin.actions.ConfigurePDFLanguageSupportAction" method="doRestoreDefault">
            <result name="success" type="redirect">/admin/configurepdflanguagesupport.action</result>
        </action>

        <action name="editdefaultspacecontent" class="com.atlassian.confluence.admin.actions.EditDefaultSpaceContentAction" method="doDefault">
            <result name="input" type="velocity">/admin/editdefaultspacecontent.vm</result>
        </action>

        <action name="doeditdefaultspacecontent" class="com.atlassian.confluence.admin.actions.EditDefaultSpaceContentAction">
            <result name="success" type="redirect">/admin/editdefaultspacecontent.action?posted=true&amp;personal=${personal}&amp;actionPerformed=${actionPerformed}</result>
            <result name="error" type="velocity">/admin/editdefaultspacecontent.vm</result>
        </action>

        <action name="raisesupportrequest" class="com.atlassian.confluence.admin.actions.RaiseSupportRequestAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
        	<result name="input" type="velocity">/admin/raisesupportrequest.vm</result>
            <result name="success" type="velocity">/admin/raisesupportrequest.vm</result>
        </action>

        <action name="doraisesupportrequest" class="com.atlassian.confluence.admin.actions.RaiseSupportRequestAction" method="execute">
            <result name="input" type="velocity">/admin/raisesupportrequest.vm</result>
            <result name="cancel" type="redirect">/admin/console.action</result>
            <result name="success" type="velocity">/admin/supportrequestraised.vm</result>
        </action>

        <action name="trustedapp-view" class="com.atlassian.confluence.admin.actions.trust.ViewTrustedApplicationsAction" method="execute">
            <interceptor-ref name="defaultStack"/>
            <interceptor-ref name="chain"/>
            <result name="success" type="velocity">/admin/trust/trustedapp-view.vm</result>
        </action>

        <action name="trustedapp-edit" class="com.atlassian.confluence.admin.actions.trust.EditTrustedApplicationAction" method="execute">
            <result name="success" type="velocity">/admin/trust/trustedapp-edit.vm</result>
        </action>

        <action name="trustedapp-add" class="com.atlassian.confluence.admin.actions.trust.EditTrustedApplicationAction" method="add">
            <result name="success" type="velocity">/admin/trust/trustedapp-edit.vm</result>
            <result name="error" type="chain">
                <param name="actionName">trustedapp-view</param>
            </result>
        </action>

        <action name="trustedapp-save" class="com.atlassian.confluence.admin.actions.trust.EditTrustedApplicationAction" method="save">
            <result name="success" type="redirect">/admin/trustedapp-view.action</result>
            <result name="cancel" type="redirect">/admin/trustedapp-view.action</result>
        </action>

        <action name="trustedapp-remove" class="com.atlassian.confluence.admin.actions.trust.RemoveTrustedApplicationAction" method="execute">
            <result name="success" type="redirect">/admin/trustedapp-view.action</result>
        </action>


    </package>

    <package name="users" extends="default" namespace="/users">
        <default-interceptor-ref name="validatingStack"/>

        <action name="userpicker" class="com.atlassian.confluence.user.actions.UserPickerAction">
            <result name="input" type="velocity">/spaces/permissions/userpicker-results.vm</result>
            <result name="error" type="velocity">/spaces/permissions/userpicker-results.vm</result>
            <result name="success" type="velocity">/spaces/permissions/userpicker-results.vm</result>
        </action>

        <action name="viewuserhistory" class="com.atlassian.confluence.user.actions.ViewUserHistoryAction">
            <result name="success" type="velocity">/users/viewuserhistory.vm</result>
        </action>

        <action name="viewuserprofile" class="com.atlassian.confluence.user.actions.ViewUserProfileAction">
            <result name="input" type="velocity">/users/viewuserprofile.vm</result>
            <result name="error" type="velocity">/users/viewuserprofile.vm</result>
            <result name="success" type="velocity">/users/viewuserprofile.vm</result>
        </action>

        <action name="insertlink" class="com.atlassian.confluence.user.actions.PagePickerAction">
            <result name="success" type="velocity">/users/insertlink-popup.vm</result>
        </action>

        <action name="insertlink-page-attachmentstab" class="com.atlassian.confluence.pages.actions.ViewPageAttachmentsAction" method="doDefault">
            <result name="input" type="velocity">/users/insertlink-popup.vm</result>
        </action>

        <action name="insertlink-page-uploadfile" class="com.atlassian.confluence.pages.actions.ViewPageAttachmentsAction">
            <result name="success" type="velocity">/users/insertlink-popup.vm</result>
        </action>

        <action name="insertlink-draft-attachmentstab" class="com.atlassian.confluence.pages.actions.ViewDraftAttachmentsAction" method="doDefault">
            <result name="input" type="velocity">/users/insertlink-popup.vm</result>
        </action>

        <action name="insertlink-draft-uploadfile" class="com.atlassian.confluence.pages.actions.ViewDraftAttachmentsAction">
            <result name="success" type="velocity">/users/insertlink-popup.vm</result>
        </action>

        <action name="doinsertimageinpage" class="com.atlassian.confluence.pages.actions.InsertImageInPageAction">
            <result name="input" type="velocity">/users/insertimage-popup.vm</result>
            <result name="success" type="velocity">/users/insertimage-popup.vm</result>
        </action>

        <action name="doinsertimageindraft" class="com.atlassian.confluence.pages.actions.InsertImageInDraftAction">
            <result name="input" type="velocity">/users/insertimage-popup.vm</result>
            <result name="success" type="velocity">/users/insertimage-popup.vm</result>
        </action>

        <action name="insertimageinpage" class="com.atlassian.confluence.pages.actions.InsertImageInPageAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/users/insertimage-popup.vm</result>
            <result name="success" type="velocity">/users/insertimage-popup.vm</result>
        </action>

        <action name="insertimageindraft" class="com.atlassian.confluence.pages.actions.InsertImageInDraftAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/users/insertimage-popup.vm</result>
            <result name="success" type="velocity">/users/insertimage-popup.vm</result>
        </action>

        <action name="pagepicker" class="com.atlassian.confluence.user.actions.PagePickerAction">
            <result name="success" type="velocity">/users/pagepicker.vm</result>
        </action>

        <action name="spacepagepicker" class="com.atlassian.confluence.user.actions.SpacePagePickerAction">
            <result name="success" type="velocity">/users/pagepicker.vm</result>
        </action>

        <action name="editmyprofile" class="com.atlassian.confluence.user.actions.EditMyProfileAction">
			<interceptor-ref name="defaultStack"/>
			<result name="input" type="velocity">/users/editmyprofile.vm</result>
            <result name="error" type="velocity">/users/editmyprofile.vm</result>
            <result name="success" type="velocity">/users/editmyprofile.vm</result>
        </action>

        <action name="doeditmyprofile" class="com.atlassian.confluence.user.actions.EditMyProfileAction" method="doEdit">
            <result name="input" type="velocity">/users/editmyprofile.vm</result>
            <result name="error" type="velocity">/users/editmyprofile.vm</result>
            <result name="cancel" type="redirect">/users/viewuserprofile.action?username=${username}</result>
            <result name="success" type="redirect">/users/viewuserprofile.action?username=${username}</result>
        </action>

        <action name="editmyprofilepicture" class="com.atlassian.confluence.user.actions.EditMyProfilePictureAction">
            <result name="input" type="velocity">/users/editmyprofilepicture.vm</result>
            <result name="error" type="velocity">/users/editmyprofilepicture.vm</result>
            <result name="success" type="velocity">/users/editmyprofilepicture.vm</result>
        </action>

        <action name="doeditmyprofilepicture" class="com.atlassian.confluence.user.actions.EditMyProfilePictureAction" method="doEdit">
            <result name="input" type="velocity">/users/editmyprofilepicture.vm</result>
            <result name="error" type="velocity">/users/editmyprofilepicture.vm</result>
            <result name="cancel" type="redirect">/users/viewuserprofile.action?username=${username}</result>
            <result name="success" type="redirect">/users/editmyprofilepicture.action?username=${username}</result>
        </action>

        <action name="editmypreferences" class="com.atlassian.confluence.user.actions.EditMyPreferencesAction">
            <result name="input" type="velocity">/users/editmypreferences.vm</result>
            <result name="error" type="velocity">/users/editmypreferences.vm</result>
            <result name="success" type="velocity">/users/editmypreferences.vm</result>
        </action>

        <action name="doeditmypreferences" class="com.atlassian.confluence.user.actions.EditMyPreferencesAction" method="doEdit">
            <result name="input" type="velocity">/users/editmypreferences.vm</result>
            <result name="error" type="velocity">/users/editmypreferences.vm</result>
            <result name="cancel" type="redirect">/users/viewuserprofile.action?username=${username}</result>
            <result name="success" type="redirect">/users/viewuserprofile.action?username=${username}</result>
        </action>

        <action name="changemypassword" class="com.atlassian.confluence.user.actions.ChangeMyPasswordAction" method="doDefault">
            <interceptor-ref name="defaultStack"/>
            <result name="input" type="velocity">/users/changemypassword.vm</result>
            <result name="error" type="velocity">/users/changemypassword.vm</result>
            <result name="success" type="velocity">/users/changemypassword.vm</result>
        </action>

        <action name="dochangemypassword" class="com.atlassian.confluence.user.actions.ChangeMyPasswordAction">
            <result name="input" type="velocity">/users/changemypassword.vm</result>
            <result name="error" type="velocity">/users/changemypassword.vm</result>
            <result name="cancel" type="redirect">viewuserprofile.action</result>
            <result name="success" type="velocity">/users/changemypasswordsuccessful.vm</result>
        </action>

        <action name="viewnotifications" class="com.atlassian.confluence.user.actions.EditNotificationsAction" method="doDefault">
            <result name="input" type="velocity">/users/editnotifications.vm</result>
            <result name="error" type="velocity">/users/editnotifications.vm</result>
            <result name="success" type="velocity">/users/editnotifications.vm</result>
        </action>

        <action name="editemailpreferences" class="com.atlassian.confluence.user.actions.EditEmailPreferencesAction" method="doDefault">
            <result name="input" type="velocity">/users/editemailpreferences.vm</result>
            <result name="error" type="velocity">/users/editemailpreferences.vm</result>
            <result name="success" type="redirect">/users/viewuserprofile.action?username=${username}</result>
        </action>

        <action name="doeditemailpreferences" class="com.atlassian.confluence.user.actions.EditEmailPreferencesAction">
            <result name="input" type="velocity">/users/editemailpreferences.vm</result>
            <result name="error" type="velocity">/users/editemailpreferences.vm</result>
            <result name="cancel" type="redirect">viewuserprofile.action</result>
            <result name="success" type="redirect">/users/viewuserprofile.action?username=${username}</result>
        </action>

        <action name="removepagenotification" class="com.atlassian.confluence.user.actions.EditNotificationsAction" method="doRemovePageNotification">
            <result name="input" type="velocity">/users/editnotifications.vm</result>
            <result name="error" type="velocity">/users/editnotifications.vm</result>
            <result name="success" type="redirect">/users/viewnotifications.action</result>
        </action>

        <action name="removespacenotification" class="com.atlassian.confluence.user.actions.EditNotificationsAction" method="doRemoveSpaceNotification">
            <result name="input" type="velocity">/users/editnotifications.vm</result>
            <result name="error" type="velocity">/users/editnotifications.vm</result>
            <result name="success" type="redirect">/users/viewnotifications.action</result>
        </action>

        <action name="viewmylabels" class="com.atlassian.confluence.user.actions.ViewMyLabelsAction">
            <result name="input" type="velocity">/users/mylabels.vm</result>
            <result name="error" type="velocity">/users/mylabels.vm</result>
            <result name="success" type="velocity">/users/mylabels.vm</result>
        </action>

        <action name="viewmydrafts" class="com.atlassian.confluence.user.actions.ViewMyDraftsAction">
            <result name="success" type="velocity">/users/viewmydrafts.vm</result>
        </action>
    </package>

	<package name="json" extends="admin" namespace="/json">
		<action name="usersearch" class="com.atlassian.confluence.search.actions.UserSearchAction">
			<result name="success" type="json"/>
		</action>
	</package>

	<package name="cluster" extends="admin" namespace="/admin/cluster">
        <default-interceptor-ref name="validatingStack"/>

        <action name="clusterconfig" class="com.atlassian.confluence.admin.actions.cluster.ClusterConfigurationAction">
            <result name="success" type="velocity">/admin/cluster/clusterconfig.vm</result>
        </action>

        <action name="startcluster" class="com.atlassian.confluence.admin.actions.cluster.StartClusterAction">
            <result name="error" type="redirect">/admin/cluster/clusterconfig.action</result>
            <result name="success" type="redirect">/longrunningtask.action</result>
        </action>
    </package>
    
    <package name="fixonly" extends="default" namespace="/fixonly">
    	<default-interceptor-ref name="validatingStack" />
    	
        <action name="fixlicense" class="com.atlassian.confluence.fixonly.actions.AuthenticateAndUpdateLicenseAction">
			<interceptor-ref name="defaultStack"/>
            <result name="success" type="velocity">/fixonly/updatelicense.vm</result>
            <result name="error" type="velocity">/fixonly/updatelicense.vm</result>
        </action>
        
        <action name="dofixupdatelicense" class="com.atlassian.confluence.fixonly.actions.AuthenticateAndUpdateLicenseAction" method="doUpdate">
            <result name="success" type="redirect">fixlicense.action?licenseSubmitted=true</result>
            <result name="error" type="velocity">/fixonly/updatelicense.vm</result>
			<result name="input" type="velocity">/fixonly/updatelicense.vm</result>            
        </action>
    </package>
</xwork>
