<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="true" />		
    <include file="struts-search.xml" />
    <include file="struts-myDriver.xml"/>
    <include file="struts-community.xml" />
    <include file="struts-ep.xml" />	
	
    <package name="default" namespace="/" extends="struts-default">
		
        <default-action-ref name="Welcome" />
        
        <global-results>
        	<result name="error_page">/pages/error.jsp</result>
        </global-results>
        
<!--
	   <global-exception-mappings>
        	<exception-mapping result="error_page" exception="java.lang.Exception"/>
	   </global-exception-mappings>
-->
        <action name="FooterPage" class="gr.uoa.di.driver.web.FooterPage"/>
        
        <action name="changeLocale" class="gr.uoa.di.driver.web.ChangeLocale">
        	<result type="redirect">${path}?${parameter}</result>
        </action>
    
    	<action name="welcomeMessagePage" class="springManagedWelcomeMessagePageAction">
    		<result>/pages/search/welcomeMessage.jsp</result>
    	</action>
    	    
        <action name="Search" class="gr.uoa.di.driver.web.Search">
            <result name="input" type="redirect">Welcome.action</result>
            <result type="redirectAction">
                <param name="actionName">showResults</param>
                <param name="parse">true</param>
                <param name="query">${query}</param>
                <param name="collectionId">${collectionId}</param>
                <param name="page">${page}</param>
                <param name="size">${size}</param>
                <param name="referer">showResults</param>
            </result>
        </action>
        
        <action name="SimpleSearchFormPage" class="gr.uoa.di.driver.web.SimpleSearchFormPage">
            <result name="input" type="redirect">Welcome.action</result>
            <result type="redirectAction">
                <param name="actionName">showResults</param>
                <param name="parse">true</param>
                <param name="referer">showResults</param>
                <param name="query">${query}</param>
                <param name="page">${page}</param>
                <param name="size">${size}</param>
            </result>
        </action>
        
        <action name="advancedSearch" class="gr.uoa.di.driver.web.AdvancedFormPageAction">
            <result>/pages/search/advancedSearchForm.jsp</result>
        </action>

        <action name="refine" class="gr.uoa.di.driver.web.Refine">
            <result type="redirectAction">
                <param name="actionName">showResults</param>
                <param name="parse">true</param>
                <param name="query">${query}</param>
                <param name="page">${page}</param>
                <param name="size">${size}</param>
                <param name="refine">${refine}</param>
                <param name="collectionId">${collectionId}</param>
                <param name="referer">showResults</param>                
            </result>
        </action>
		
        <action name="removeFilter" method="removeFilter" class="gr.uoa.di.driver.web.Refine">
            <result type="redirectAction">
                <param name="actionName">showResults</param>
                <param name="parse">true</param>
                <param name="query">${query}</param>
                <param name="page">${page}</param>
                <param name="size">${size}</param>
                <param name="refine">${refine}</param>
                <param name="referer">showResults</param>
            </result>
        </action>

        <action name="Announcements" class="gr.uoa.di.driver.web.announcements.Announcements">
            <result>/pages/announcements/announcements.jsp</result>
        </action>

        <action name="Rss" class="gr.uoa.di.driver.web.rss.Rss">
            <result>/pages/rss/rss.jsp</result>
        </action>

        <action name="showRepositories" class="springManagedRepositoriesAction">
            <result>/pages/repositories.jsp</result>
        </action>
		
        <action name="redirect" class="gr.uoa.di.driver.web.RedirectPage">
            <result>/pages/redirect.jsp</result>
        </action>

        <action name="Unsubscribe" class="gr.uoa.di.driver.web.myDriver.UnsubscribeUser">
            <result>/pages/myDriver/unsubscribed.jsp</result>
            <result name="ERROR">/pages/myDriver/error.jsp</result>
            <result name="INPUT">/pages/myDriver/needExtraInput.jsp</result>            
        </action>

        <action name="AnnouncementsWelcome" class="gr.uoa.di.driver.web.AnnouncementsWelcome">
            <result>/pages/announcements/announcementsWelcome.jsp</result>
        </action>

        <action name="Test" class="gr.uoa.di.driver.web.personalization.QueryTest">
            <result>/pages/personalization/test.jsp</result>
        </action>

    </package>

    <package name="AnnouncementsRPC" namespace="/" extends="json-default">
        <action name="AnnouncementsManager"
			class="gr.uoa.di.driver.web.announcements.AnnouncementManager"
			method="execute">
            <interceptor-ref name="json">
                <param name="enableSMD">true</param>
            </interceptor-ref>
            <result type="json">
                <param name="enableSMD">true</param>
            </result>
        </action>
    </package>

    <package name="RssManagerRPC" namespace="/" extends="json-default">
        <action name="RssManager"
			class="gr.uoa.di.driver.web.rss.RssManager"
			method="execute">
            <interceptor-ref name="json">
                <param name="enableSMD">true</param>
            </interceptor-ref>
            <result type="json">
                <param name="enableSMD">true</param>
            </result>
        </action>
    </package>

    <package name="PersonalizationRPC" namespace="/" extends="json-default">
        <action name="Recommender"
			class="gr.uoa.di.driver.web.personalization.QueryRecommendation"
			method="execute">
            <interceptor-ref name="json">
                <param name="enableSMD">true</param>
            </interceptor-ref>
            <result type="json">
                <param name="enableSMD">true</param>
            </result>
        </action>
    </package>
    
    <package name="example" namespace="/" extends="json-default">
        <action name="Recommender" class="gr.uoa.di.driver.web.personalization.QueryRecommender" method="getRecommendedQueries">
            <result type="json"><param name="root">json</param></result>
        </action>
    </package>
    

</struts>
