Subversion Repositories bacoAlunos

Rev

Rev 1926 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<serviceDefinitions>
    <!--Users-->
    <service>
        <name>Authenticate</name>
        <implementationClass>pt.estgp.estgweb.services.authenticate.AuthenticateService</implementationClass>
        <description>Authenticates a User</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>AuthenticatePae</name>
        <implementationClass>pt.estgp.estgweb.services.authenticate.AuthenticateService</implementationClass>
        <description>Authenticates a User</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loginPae</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>

    <service>
        <name>GenerateChaveApps</name>
        <implementationClass>pt.estgp.estgweb.services.authenticate.AuthenticateService</implementationClass>
        <description>Create a key for mobile Apps in PAE for a Authenticated User</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>generateChaveApps</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>



    <!--WS SERVICES ONLY FOR MOBILE APPS NEED API KEY AUTHNETICATION AND CERTIFICATE-->
    <service>
        <name>WSAPILoginChallenge</name>
        <implementationClass>pt.estgp.estgweb.services.authenticate.AuthenticateService</implementationClass>
        <description>Authenticates a User</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loginChallengeWs</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="MobileApps"/>
        </filterChains>
    </service>
    <service>
        <name>WSAPIListStudents</name>
        <implementationClass>pt.estgp.estgweb.services.profile.ListUsersService</implementationClass>
        <description>Authenticates a User</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>listStudentsService</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="MobileApps"/>
        </filterChains>
    </service>
    <service>
        <name>WSAPIListTeachers</name>
        <implementationClass>pt.estgp.estgweb.services.profile.ListUsersService</implementationClass>
        <description>Authenticates a User</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>listTeachersService</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="MobileApps"/>
        </filterChains>
    </service>
    <service>
        <name>WSAPIListCoordinators</name>
        <implementationClass>pt.estgp.estgweb.services.profile.ListUsersService</implementationClass>
        <description>Authenticates a User</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>listCoordinatorTeachersService</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="MobileApps"/>
        </filterChains>
    </service>

    <service>
        <name>AuthenticateApp</name>
        <implementationClass>pt.estgp.estgweb.services.authenticate.AuthenticateService</implementationClass>
        <description>Authenticates a User</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>authenticateApp</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>

    <service>
        <name>AuthenticateCertificate</name>
        <implementationClass>pt.estgp.estgweb.services.authenticate.AuthenticateService</implementationClass>
        <description>Authenticates a User</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loginCertificate</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>CreateCertificate</name>
        <implementationClass>pt.estgp.estgweb.services.authenticate.AuthenticateService</implementationClass>
        <description>Create a certificate for a User id</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>createCertificateForId</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="Admins"/>-->
        </filterChains>
    </service>
    <service>
        <name>ChangePassword</name>
        <implementationClass>pt.estgp.estgweb.services.authenticate.AuthenticateService</implementationClass>
        <description>Authenticates a User</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>changePassword</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>

    <service>
        <name>RequestChangePassword</name>
        <implementationClass>pt.estgp.estgweb.services.authenticate.AuthenticateService</implementationClass>
        <description>Authenticates a User</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>requestChangePassword</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>
    <service>
        <name>Logout</name>
        <implementationClass>pt.estgp.estgweb.services.authenticate.LogoutService</implementationClass>
        <description>Logout a User</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>CreateUser</name>
        <implementationClass>pt.estgp.estgweb.services.users.CreateUserService</implementationClass>
        <description>Create an User</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>LoadUserSession</name>
        <implementationClass>pt.estgp.estgweb.services.users.LoadUserSessionService</implementationClass>
        <description>Load an User Session</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <!--<chain name="Logger"/>-->
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>UpdateUserSession</name>
        <implementationClass>pt.estgp.estgweb.services.users.UpdateUserSessionService</implementationClass>
        <description>Load an User Session</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>

    <service>
        <name>AddRole2User</name>
        <implementationClass>pt.estgp.estgweb.services.users.CreateUserService</implementationClass>
        <description>Load user of some class</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>addRole2User</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="RoleAddRemoveManager"/><!--Suporta Admins ou Eventos-->
        </filterChains>
    </service>
    <service>
        <name>RemoveRole2User</name>
        <implementationClass>pt.estgp.estgweb.services.users.CreateUserService</implementationClass>
        <description>Load user of some class</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>removeRole2User</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
            <chain name="RoleAddRemoveManager"/><!--Suporta Admins ou Eventos-->
        </filterChains>
    </service>

    <service>
        <name>LoadUsers</name>
        <implementationClass>pt.estgp.estgweb.services.users.LoadUsersService</implementationClass>
        <description>Load user of some class</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>
    <service>
        <name>LoadRoleUsers</name>
        <implementationClass>pt.estgp.estgweb.services.users.LoadUsersService</implementationClass>
        <description>Load user of some class</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadRole</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>
    <service>
        <name>LoadRoleAreaUsers</name>
        <implementationClass>pt.estgp.estgweb.services.users.LoadUsersService</implementationClass>
        <description>Load user of some class</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadRoleArea</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>
    <service>
        <name>LoadTeachersWithUnits</name>
        <implementationClass>pt.estgp.estgweb.services.users.LoadUsersService</implementationClass>
        <description>Load user of some class</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadTeachersWithUnits</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>
    <service>
        <name>LoadTeachersWithUnitsInLast3Years</name>
        <implementationClass>pt.estgp.estgweb.services.users.LoadUsersService</implementationClass>
        <description>Load user of some class</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>LoadTeachersWithUnitsInLast3Years</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>


    <service>
        <name>LoadTeachers</name>
        <implementationClass>pt.estgp.estgweb.services.users.LoadUsersService</implementationClass>
        <description>Load user of some class</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadTeachers</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>


    <!--URL Statistics-->
    <service>
        <name>UpdateUrlStatistics</name>
        <implementationClass>pt.estgp.estgweb.services.urlstat.UrlStatService</implementationClass>
        <description>Update URL clicks count</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>
    <service>
        <name>BuildChartGetPath</name>
        <implementationClass>pt.estgp.estgweb.services.urlstat.ChartBuilderService</implementationClass>
        <description>Creates a chart for a given list of relativepaths and return relativeTmpPath</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>
    <service>
        <name>LoadUrlStatService</name>
        <implementationClass>pt.estgp.estgweb.services.urlstat.LoadUrlStatService</implementationClass>
        <description>loads a relative URL Stat</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>


    <!--Announcements-->
    <service>
        <name>SendMessage</name>
        <implementationClass>pt.estgp.estgweb.services.announcements.CreateAnnouncementService</implementationClass>
        <description>Send a message to email</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>sendMessage</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <service>
        <name>CreateAnnouncement</name>
        <implementationClass>pt.estgp.estgweb.services.announcements.CreateAnnouncementService</implementationClass>
        <description>Create an Announcement</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="IsInCourseUnit"/>
            <chain name="CanAddAnnouncementInCourseUnit"/>
        </filterChains>
    </service>
    <service>
        <name>EditAnnouncement</name>
        <implementationClass>pt.estgp.estgweb.services.announcements.CreateAnnouncementService</implementationClass>
        <description>Edit an Announcement</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="Admins"/>-->
            <chain name="OwnersEdit"/>
            <chain name="IsInCourseUnit"/>
            <!--<chain name="OwnersEditOnlyIfNotValid"/>-->
            <!--<chain name="ContextObjectTimer"/>-->
            <!--<chain name="ContextStaticTimerExample"/>-->
        </filterChains>
    </service>
    <service>
        <name>DeleteAnnouncement</name>
        <implementationClass>pt.estgp.estgweb.services.announcements.DeleteAnnouncementService</implementationClass>
        <description>Delete an Announcement</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="Admins"/>-->
            <chain name="OwnersLoadAnnouncement"/>
            <!--<chain name="ContextObjectTimer"/>-->
            <!--<chain name="ContextStaticTimerExample"/>-->
        </filterChains>
    </service>
    <service>
        <name>LoadAnnouncementView</name>
        <implementationClass>pt.estgp.estgweb.services.announcements.LoadAnnouncementService</implementationClass>
        <description>Load an Announcement view</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="Admins"/>-->
            <chain name="ExistAnnouncement"/>
            <chain name="InternalAnnouncement"/>
            <chain name="TargetRolesAnnouncement"/>
            <chain name="CanLoadAnnouncement"/>
        </filterChains>
    </service>
    <service>
        <name>LoadEditAnnouncement</name>
        <implementationClass>pt.estgp.estgweb.services.announcements.LoadAnnouncementService</implementationClass>
        <description>Load an Announcement view</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="Admins"/>-->
            <chain name="OwnersLoadAnnouncement"/>
        </filterChains>
    </service>
    <service>
        <name>LoadTargetMaxAnnouncements</name>
        <implementationClass>pt.estgp.estgweb.services.announcements.LoadTargetMaxAnnouncementsService</implementationClass>
        <description>Load an Announcement views to show in list</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>LoadRoleTypeMaxAnnouncements</name>
        <implementationClass>pt.estgp.estgweb.services.announcements.LoadRoleTypeMaxAnnouncementsService</implementationClass>
        <description>Load an Announcement views to show in list</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>LoadTypeMaxAnnouncements</name>
        <implementationClass>pt.estgp.estgweb.services.announcements.LoadTypeMaxAnnouncementsService</implementationClass>
        <description>Load an Announcement views to show in list</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>LoadTypeAnnouncements</name>
        <implementationClass>pt.estgp.estgweb.services.announcements.LoadTypeMaxAnnouncementsService</implementationClass>
        <description>Load an Announcement views to show in list</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>load</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>LoadTopFlashNewsIterate</name>
        <implementationClass>pt.estgp.estgweb.services.announcements.LoadTopFlashNewsIterateService</implementationClass>
        <description>Load an Announcement one flash News</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>LoadOwnerAnnouncements</name>
        <implementationClass>pt.estgp.estgweb.services.announcements.LoadOwnerAnnouncements</implementationClass>
        <description>Load owner Blogs</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>

    <service>
        <name>LoadOwnerAnnouncementsMax</name>
        <implementationClass>pt.estgp.estgweb.services.announcements.LoadOwnerAnnouncements</implementationClass>
        <description>Load owner Blogs</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadMax</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>


    <!--Teste-->
    <service>
        <name>TesteSaver</name>
        <implementationClass>pt.estgp.estgweb.services.teste.TesteService</implementationClass>
        <description>Saves a teste</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>


    <!--BLOGS-->
    <service>
        <name>CreateBlog</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.CreateBlogService</implementationClass>
        <description>Create a Blog</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <service>
        <name>CheckBlogName</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.CheckBlogNameService</implementationClass>
        <description>Check if a name is good and if already exists for a Blog</description>
        <isTransactional>true</isTransactional>
        <filterChains>
        </filterChains>
    </service>
    <service>
        <name>EditBlog</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.CreateBlogService</implementationClass>
        <description>Edit a Blog</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="Admins"/>-->
            <chain name="OwnersEdit"/>
            <!--<chain name="OwnersEditOnlyIfNotValid"/>-->
            <!--<chain name="ContextObjectTimer"/>-->
            <!--<chain name="ContextStaticTimerExample"/>-->
        </filterChains>
    </service>
    <service>
        <name>DeleteBlog</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.DeleteBlogService</implementationClass>
        <description>Delete an Blog</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnersLoadBlog"/>
        </filterChains>
    </service>
    <service>
        <name>DeleteBlogPost</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.DeleteBlogPostService</implementationClass>
        <description>Delete a Post</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnerBlogPost"/>
        </filterChains>
    </service>
    <service>
        <name>ValidateBlogPost</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.ValidateBlogPostService</implementationClass>
        <description>Validate a Post</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnerBlogFromPost"/>
        </filterChains>
    </service>
    <service>
        <name>CreateBlogPost</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.CreateBlogPostService</implementationClass>
        <description>Create a Blog Post</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="CanAddContentBlog"/>
        </filterChains>
    </service>
    <service>
        <name>LoadBlog</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.LoadBlogService</implementationClass>
        <description>Load a Blog</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadIndex</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="ExistBlog"/>
            <chain name="InternalBlog"/>
            <chain name="TargetRolesBlog"/>
            <chain name="CanLoadBlog"/>
        </filterChains>
    </service>
    <service>
        <name>LoadBlogIdByName</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.LoadBlogService</implementationClass>
        <description>Load a Blog</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadIdByName</defaultMethod>
        <filterChains>
        </filterChains>
    </service>
    <service>
        <name>LoadEditBlog</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.LoadBlogService</implementationClass>
        <description>Load an Announcement view</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadIndex</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="Admins"/>-->
            <chain name="OwnersLoadBlog"/>
        </filterChains>
    </service>
    <service>
        <name>LoadBlogByDate</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.LoadBlogService</implementationClass>
        <description>Load a Blog in a specfied month and year</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadMonth</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="InternalBlog"/>
            <chain name="TargetRolesBlog"/>
            <chain name="CanLoadBlog"/>
        </filterChains>
    </service>
    <service>
        <name>LoadEditableBlogs</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.LoadEditableBlogs</implementationClass>
        <description>Load editable Blogs</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>

    <service>
        <name>LoadEditableBlogsMax</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.LoadEditableBlogs</implementationClass>
        <description>Load editable Blogs</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadMax</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <service>
        <name>LoadOwnerBlogs</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.LoadOwnerBlogs</implementationClass>
        <description>Load owner Blogs</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <service>
        <name>LoadOwnerBlogsMax</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.LoadOwnerBlogs</implementationClass>
        <description>Load owner Blogs</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadMax</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <service>
        <name>LoadOwnerBlogPosts</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.LoadOwnerBlogPosts</implementationClass>
        <description>Load owner Blog Posts</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <service>
        <name>LoadOwnerBlogPostsMax</name>
        <implementationClass>pt.estgp.estgweb.services.blogs.LoadOwnerBlogPosts</implementationClass>
        <description>Load owner Blog Posts</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadMax</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>



    <!--CommonServices-->
    <service>
        <name>CommonServicesSearch</name>
        <implementationClass>pt.estgp.estgweb.services.common.CommonServicesService</implementationClass>
        <description>Common Services For Search</description>
        <defaultMethod>search</defaultMethod>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>CommonServicesSearchModule</name>
        <implementationClass>pt.estgp.estgweb.services.common.CommonServicesService</implementationClass>
        <description>Common Services For Search</description>
        <defaultMethod>searchModule</defaultMethod>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>CommonServicesGetAllTodosCat</name>
        <implementationClass>pt.estgp.estgweb.services.common.CommonServicesService</implementationClass>
        <description>Common Services For Todos</description>
        <defaultMethod>getAllToDosCats</defaultMethod>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>


    <!--Import Services-->
    <service>
        <name>ImportCourseServices</name>
        <implementationClass>pt.estgp.estgweb.services.sigesimports.ImportCourseService</implementationClass>
        <description>Service to call SiGesWEB Service and import Courses and Course Units</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Supers"/>
        </filterChains>
    </service>
    <service>
        <name>ImportStudentServices</name>
        <implementationClass>pt.estgp.estgweb.services.sigesimports.ImportStudentsService</implementationClass>
        <description>Service to call SiGesWEB Service and import Students and Course Units</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Supers"/>
        </filterChains>
    </service>
    <service>
        <name>ImportTeacherServices</name>
        <implementationClass>pt.estgp.estgweb.services.sigesimports.ImportTeachersService</implementationClass>
        <description>Service to call SiGesWEB Service and import Teachers and Course Units</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Supers"/>
        </filterChains>
    </service>

    <!--ProfileServices-->
    <service>
        <name>LoadUserWithRecordsById</name>
        <implementationClass>pt.estgp.estgweb.services.profile.CurriculumService</implementationClass>
        <description>Load User By ID</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadUserViewWithRecords</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>LoadUserWithGradesById</name>
        <implementationClass>pt.estgp.estgweb.services.profile.CurriculumService</implementationClass>
        <description>Load User By ID</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadUserViewWithGrades</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <service>
        <name>LoadUserWithRecordsByCode</name>
        <implementationClass>pt.estgp.estgweb.services.profile.CurriculumService</implementationClass>
        <description>Load User By ID</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadUserViewWithRecordsCode</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>CreateUserProfileRecord</name>
        <implementationClass>pt.estgp.estgweb.services.profile.CurriculumService</implementationClass>
        <description>Create a record for autheticated user</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>createRecord</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <service>
        <name>DeleteUserProfileRecord</name>
        <implementationClass>pt.estgp.estgweb.services.profile.CurriculumService</implementationClass>
        <description>Create a record for autheticated user</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>deleteRecord</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="OwnerProfileRecord"/>
        </filterChains>
    </service>
    <service>
        <name>LoadEditUserProfileRecord</name>
        <implementationClass>pt.estgp.estgweb.services.profile.CurriculumService</implementationClass>
        <description>Create a record for autheticated user</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadEditRecord</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnerProfileRecord"/>
        </filterChains>
    </service>
    <service>
        <name>EditUserProfileRecord</name>
        <implementationClass>pt.estgp.estgweb.services.profile.CurriculumService</implementationClass>
        <description>Create a record for autheticated user</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>createRecord</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="OwnersEdit"/>
        </filterChains>
    </service>
   
    <service>
        <name>LoadUserById</name>
        <implementationClass>pt.estgp.estgweb.services.profile.LoadUserByIdService</implementationClass>
        <description>Load User By ID</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--   <chain name="OwnerLoadProfile"/>-->
        </filterChains>
    </service>
    <service>
        <name>SubmitUser</name>
        <implementationClass>pt.estgp.estgweb.services.profile.EditUserService</implementationClass>
        <description>Edit User</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!-- <chain name="OwnerUpdateProfile"/> -->
        </filterChains>
    </service>
    <service>
        <name>SearchUser</name>
        <implementationClass>pt.estgp.estgweb.services.profile.SearchUserService</implementationClass>
        <description>Search Users</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <!--  <chain name="Session"/>-->
        </filterChains>
    </service>

    <!--FTP Service-->
    <service>
        <name>FtpService</name>
        <implementationClass>pt.estgp.estgweb.services.ftpservices.FtpService</implementationClass>
        <description>Manage FTP Files and Folders</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>

    <!--Pop Email Services-->
    <service>
        <name>ReadEmailService</name>
        <implementationClass>pt.estgp.estgweb.services.email.ReadEmailService</implementationClass>
        <description>Read Users Email</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <service>
        <name>DeleteUser</name>
        <implementationClass>pt.estgp.estgweb.services.profile.DeleteUserService</implementationClass>
        <description>Delete one User</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>



    <!--Reminders Services-->
    <service>
        <name>CreateReminder</name>
        <implementationClass>pt.estgp.estgweb.services.reminders.CreateReminderService</implementationClass>
        <description>Create an Reminder</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <service>
        <name>DeleteReminder</name>
        <implementationClass>pt.estgp.estgweb.services.reminders.DeleteReminderService</implementationClass>
        <description>Delete a Reminder</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnerReminder"/>
        </filterChains>
    </service>
    <service>
        <name>LoadOwnerReminders</name>
        <implementationClass>pt.estgp.estgweb.services.reminders.LoadOwnerRemindersService</implementationClass>
        <description>Load all reminders view pt.estgp.estgweb.services.reminders.IOwnedReminders</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>DeleteExpiredReminders</name>
        <implementationClass>pt.estgp.estgweb.services.reminders.DeleteExpiredRemindersService</implementationClass>
        <description>delete all expired reminders and return them</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>


    <!-- SIGES IMPORT SERVICES -->

    <service>
        <name>ImportCourseUnits</name>
        <implementationClass>pt.estgp.estgweb.services.sigesimports.ImportCourseService</implementationClass>
        <description>import courses from siges</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Supers"/>
        </filterChains>
    </service>
    <service>
        <name>ImportStudents</name>
        <implementationClass>pt.estgp.estgweb.services.sigesimports.ImportStudentsService</implementationClass>
        <description>import courses from siges</description>
        <isTransactional>false</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Supers"/>
        </filterChains>
    </service>
    <service>
        <name>ImportTeachers</name>
        <implementationClass>pt.estgp.estgweb.services.sigesimports.ImportTeachersService</implementationClass>
        <description>import courses from siges</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Supers"/>
        </filterChains>
    </service>

    <!--Course Units-->

    <service>
        <name>UpdateCourseUnit</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.UpdateCourseUnitService</implementationClass>
        <description>Update course unit objectives and program file</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnersEdit"/>
        </filterChains>
    </service>

     <!--<service>
       <name>DeleteCourseUnit</name>
       <implementationClass>pt.estgp.estgweb.services.courseunits.UpdateCourseUnitService</implementationClass>
       <description>Update course unit objectives and program file</description>
       <isTransactional>true</isTransactional>
       <defaultMethod>delete</defaultMethod>
       <filterChains>
           <chain name="Logger"/>
           <chain name="Session"/>
           <chain name="Supers"/>
       </filterChains>
   </service>-->
    <service>
        <name>LoadCourseUnit</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitService</implementationClass>
        <description>Load course unit</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>LoadCourseUnitCleared</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitService</implementationClass>
        <description>Load course unit</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>runCleared</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="CourseUnitProgramClearancesPreSerializable"/>
        </filterChains>
    </service>
    <service>
        <name>LoadCourseUnitStudents</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitService</implementationClass>
        <description>Load course unit students</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadStudents</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>LoadCourseUnitTeachers</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitService</implementationClass>
        <description>Load course unit teachers</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadTeachers</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>LoadCourseUnitResponsibleTeacher</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitService</implementationClass>
        <description>Load course unit responsible teacher</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadResponsibleTeacher</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>

    <service>
        <name>LoadCourseUnitViewAndCourse</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitService</implementationClass>
        <description>Load course unit</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadCourseUnitViewAndCourse</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="CourseUnitProgramClearancesPreSerializable"/>
        </filterChains>
    </service>
    <service>
        <name>SaveCourseUnitProgram</name>
        <!--Args
           ourseUnitProgramView programView,
           long unitId used in filters
       -->
        <implementationClass>pt.estgp.estgweb.services.courseunits.SaveCourseUnitProgram</implementationClass>
        <description>Save course unit program</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="LoadCourseUnitViewAndCourse"/>-->
            <chain name="CourseUnitProgramClearancesPre"/>
        </filterChains>
    </service>

    <service>
        <name>ValidateCourseUnitProgram</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.SaveCourseUnitProgram</implementationClass>
        <description>Save course unit program</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>validate</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="LoadCourseUnitViewAndCourse"/>-->
            <chain name="CourseUnitProgramClearancesPre"/>
        </filterChains>
    </service>
    <service>
        <name>InvalidateCourseUnitProgram</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.SaveCourseUnitProgram</implementationClass>
        <description>Save course unit program</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>invalidate</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="LoadCourseUnitViewAndCourse"/>-->
            <chain name="CourseUnitProgramClearancesPre"/>
        </filterChains>
    </service>

    <service>
        <name>SaveCourseUnitEvaluation</name>
        <!--Args
           CourseUnitEvaluationView evaluationView,
           long unitId used in filters
       -->
        <implementationClass>pt.estgp.estgweb.services.courseunits.SaveCourseUnitEvaluation</implementationClass>
        <description>Save course unit evaluation</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>save</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="CourseUnitEvaluationClearancesPre"/>
            <chain name="EditCourseUnitEvaluation"/>
        </filterChains>
    </service>

    <service>
        <name>OpenCourseUnitEvaluation</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.SaveCourseUnitEvaluation</implementationClass>
        <description>Open course unit evaluation for edition</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>open</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="CourseUnitEvaluationClearancesPre"/>
            <chain name="EditCourseUnitEvaluation"/>
        </filterChains>
    </service>

    <service>
        <name>InitCourseUnitEvaluationClearances</name>
        <!--Parameters
       CourseUnitView cuv, Long courseUnitId
       -->
        <implementationClass>pt.estgp.estgweb.services.courseunits.SaveCourseUnitEvaluation</implementationClass>
        <description>Open course unit evaluation for edition</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>initClearances</defaultMethod>
        <filterChains>
            <chain name="Session"/>
            <chain name="CourseUnitEvaluationClearancesPre"/>
        </filterChains>
    </service>



    <service>
        <name>LoadCourseUnitsBySigesCodes</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitsBySigesCodesService</implementationClass>
        <description>Load course old units</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>

    <service>
        <name>LoadCourseUnitInEvaluationBySigesCodes</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitsBySigesCodesService</implementationClass>
        <description>Load course old units</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadUnitInEvaluation</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>

    <service>
        <name>LoadCourseUnitsBySigesCodesSemestreLastYear</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitsBySigesCodesService</implementationClass>
        <description>Load a unique unit by sigescode, semestre and course code</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadLastYear</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>

    <service>
        <name>LoadCourseUnitsBySigesCodesSemestreLastYearProgram</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadCourseUnitsBySigesCodesService</implementationClass>
        <description>Load a unique unit by sigescode, semestre and course code</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadLastYearProgram</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>

    <service>
        <name>LoadCourseUnitWorks</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CourseUnitWorkService</implementationClass>
        <description>Load course unit works</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadCourseUnitWorks</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>LoadCourseUnitWorkAssignement</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CourseUnitWorkService</implementationClass>
        <description>Load course unit works</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadAssignement</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnerCourseUnitFromWorkAssignement"/>
        </filterChains>
    </service>
    <service>
        <name>CreateCourseUnitWork</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CourseUnitWorkService</implementationClass>
        <description>Load course unit works</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>create</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnerCourseUnit"/>
        </filterChains>
    </service>
    <service>
        <name>EditCourseUnitWork</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CourseUnitWorkService</implementationClass>
        <description>Load course unit works</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>create</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnerCourseUnitFromWorkAssignementObject"/>
        </filterChains>
    </service>
    <service>
        <name>StartCourseUnitBlog</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CourseUnitBlogService</implementationClass>
        <description>start course unit blog creating if don't exist</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>startUnitBlog</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>DeliverCourseUnitWork</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CourseUnitWorkService</implementationClass>
        <description>Load course unit works</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>deliverWork</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="IsStudentInCourseUnitFromWorkAssignement"/>
        </filterChains>
    </service>
    <service>
        <name>UpdateCourseUnitDeliverables</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CourseUnitWorkService</implementationClass>
        <description>update deliverables with grade and observations</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>updateDeliverables</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnerCourseUnit"/>
        </filterChains>
    </service>
    <service>
        <name>ValidateInvalidateCourseUnitWork</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CourseUnitWorkService</implementationClass>
        <description>Load course unit works</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>validateInvalidate</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnerCourseUnitFromWorkAssignement"/>
        </filterChains>
    </service>
    <service>
        <name>DeleteCourseUnitWork</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CourseUnitWorkService</implementationClass>
        <description>Load course unit works</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>delete</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnerCourseUnitFromWorkAssignement"/>
        </filterChains>
    </service>
    <service>
        <name>SearchCourseUnit</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.SearchCourseUnitService</implementationClass>
        <description>Load course unit works</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>search</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>LoadDirectedCoordinatedCoursesForUserInSession</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.DirectedCoordinatedUnitsService</implementationClass>
        <description>Load coordinated directed courses</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadForUserSession</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="DirectorsCoordinators"/>
        </filterChains>
    </service>
    <service>
        <name>LoadCoursesProgramsForServices</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.DirectedCoordinatedUnitsService</implementationClass>
        <description>Load coordinated directed courses</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadForServices</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <service>
        <name>LoadCoursesImportYears</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Load import years</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadImportYears</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>UpdateDirectedCoordinatedCoursesForUserInSession</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.DirectedCoordinatedUnitsService</implementationClass>
        <description>Load coordinated directed courses</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>update</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="DirectorsCoordinators"/>
        </filterChains>
    </service>
    <service>
        <name>LoadTeachedUnits</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadTeachedUnitsService</implementationClass>
        <description>Load teacher units</description>
        <isTransactional>true</isTransactional>
        <filterChains>
        </filterChains>
    </service>
    <service>
        <name>LoadTeachedUnitsCurrentYear</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadTeachedUnitsCurrentYearService</implementationClass>
        <description>Load teacher units in currentYear</description>
        <isTransactional>true</isTransactional>
        <filterChains>
        </filterChains>
    </service>

    <service>
        <name>LoadTeachedUnitsYear</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadTeachedUnitsYearService</implementationClass>
        <description>Load teacher units in given Year</description>
        <isTransactional>true</isTransactional>
        <filterChains>
        </filterChains>
    </service>
    <service>
        <name>LoadSubscribedUnits</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadSubscribedUnitsService</implementationClass>
        <description>Load student units</description>
        <isTransactional>true</isTransactional>
        <filterChains>
        </filterChains>
    </service>
    <service>
        <name>LoadSubscribedUnitsCurrentYear</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadSubscribedUnitsCurrentYearService</implementationClass>
        <description>Load student units in current Year</description>
        <isTransactional>true</isTransactional>
        <filterChains>
        </filterChains>
    </service>
    <service>
        <name>LoadSubscribedUnitsGivenYear</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadSubscribedUnitsCurrentYearService</implementationClass>
        <description>Load student units in current Year</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>givenYear</defaultMethod>
        <filterChains>
        </filterChains>
    </service>
    <service>
        <name>LoadSubscribedUnitsOldYears</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadSubscribedUnitsOldYearsService</implementationClass>
        <description>Load student units in current Year</description>
        <isTransactional>true</isTransactional>
        <filterChains>
        </filterChains>
    </service>
    <service>
        <name>LoadSubscribedUnitsAnnouncements</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadSubscribedUnitsAnnouncementsService</implementationClass>
        <description>Load student units</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>LoadTeachedUnitsAnnouncements</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.LoadTeachedUnitsAnnouncementsService</implementationClass>
        <description>Load student units</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Session"/>
        </filterChains>
    </service>

    <service>
        <name>AddTeacherCourseUnit</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.UsersUnitsService</implementationClass>
        <description>Load student units</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>addTeacher</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>
    <service>
        <name>RemoveTeacherCourseUnit</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.UsersUnitsService</implementationClass>
        <description>Load student units</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>removeTeacher</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>

    <service>
        <name>AddStudentCourseUnit</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.UsersUnitsService</implementationClass>
        <description>Load student units</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>addStudent</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>
    <service>
        <name>RemoveStudentCourseUnit</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.UsersUnitsService</implementationClass>
        <description>Load student units</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>removeStudent</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>

   


    <!--CourseUnitAssignements Backups-->
    <service>
        <name>CreateCourseUnitDirPackage</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitDirPackageServiceBat</implementationClass>
        <description>Create a zip file with Intranet folders</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>
    <service>
        <name>CreateCourseUnitWorksBackup</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitWorksBackupService</implementationClass>
        <description>Create a zip file with Intranet folders</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>createSystemBackup</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>
    <service>
        <name>CreateImportYearCourseUnitWorksBackup</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitWorksBackupService</implementationClass>
        <description>Create a zip file with Intranet folders</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>createSystemImportYearBackup</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>
    <service>
        <name>CreateUserActualYearCourseUnitWorksBackup</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitWorksBackupService</implementationClass>
        <description>Create a zip file with deliverables</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>createActualYearBackup</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>CreateUserImportYearCourseUnitWorksBackup</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitWorksBackupService</implementationClass>
        <description>Create a zip file with deliverables</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>createImportYearBackup</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>CreateUserAllCourseUnitWorksBackup</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitWorksBackupService</implementationClass>
        <description>Create a zip file with Intranet folders</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>createBackup</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>CreateUserAllCourseUnitProgramsBackup</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitWorksBackupService</implementationClass>
        <description>Create a zip file with Intranet folders with Programs only</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>createProgramsBackup</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
   




    <!--COURSES-->
    <service>
        <name>LoadCourseByCode</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Load course by String code</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadCourseByCode</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>
    <service>
        <name>LoadCourse</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Load course by String code</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadCourse</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>

    <service>
        <name>LoadCourseByCodeAndStudiesPlans</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Load course by String code</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadCourseByCodeAndStudiesPlans</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>
    <service>
        <name>LoadCourseAndStudiesPlans</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Load course by String code</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadCourseAndStudiesPlans</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>
    <service>
        <name>AddNewStudiesPlan</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Load course by String code</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>addNewStudiesPlan</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="ServicesStudiesPlans"/>
        </filterChains>
    </service>
    <service>
        <name>SavePlanoEstudos</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Load course by String code</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>savePlanoEstudosEditado</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="ServicesStudiesPlans"/>
        </filterChains>
    </service>
    <service>
        <name>CloneStudiesPlanVersionFrom</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Load course by String code</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>cloneVersionFrom</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="ServicesStudiesPlans"/>
        </filterChains>
    </service>

    <service>
        <name>ImportStudiesPlanVersionFromFile</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Load course by String code</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>importStudiesPlanVersionFromFile</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="ServicesStudiesPlans"/>
        </filterChains>
    </service>
    <service>
        <name>MergeStudiesPlanVersionFromFile</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Load course by String code</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>mergeStudiesPlanVersionFromFile</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="ServicesStudiesPlans"/>
        </filterChains>
    </service>
    <service>
        <name>AddTeacherCourseCommission</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Load course by String code</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>addTeacherCommission</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="ServicesCoursesManagement"/>
        </filterChains>
    </service>
    <service>
        <name>RemoveTeacherCourseCommission</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Load course by String code</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>removeTeacherCommission</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="ServicesCoursesManagement"/>
        </filterChains>
    </service>

    <service>
        <name>UpdateCourseDepartment</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Load course by String code</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>updateDepartmentFromJson</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="ServicesCoursesManagement"/>
        </filterChains>
    </service>
    <service>
        <name>RemoveCourseDepartment</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Load course by String code</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>removeDepartmentFromJson</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="ServicesCoursesManagement"/>
        </filterChains>
    </service>
    <service>
        <name>NewCourseDepartment</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Load course by String code</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>newDepartmentFromJson</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="ServicesCoursesManagement"/>
        </filterChains>
    </service>



    <service>
        <name>UpdateCourseSchool</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Load course by String code</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>updateSchoolFromJson</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="ServicesCoursesManagement"/>
        </filterChains>
    </service>
    <service>
        <name>RemoveCourseSchool</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Load course by String code</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>removeSchoolFromJson</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="ServicesCoursesManagement"/>
        </filterChains>
    </service>
    <service>
        <name>NewCourseSchool</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Load course by String code</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>newSchoolFromJson</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="ServicesCoursesManagement"/>
        </filterChains>
    </service>



    <service>
        <name>SubmitCourse</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Create or Update a new course</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>submitCourse</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="ServicesCoursesManagement"/>
        </filterChains>
    </service>
    <service>
        <name>LoadCourses</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Load All Courses</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadCourses</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>
    <service>
        <name>LoadCoursesImportYearArea</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Load All Courses</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadCoursesImportYearArea</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>
    <service>
        <name>LoadCoursesImportYearAreaInstitution</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Load All Courses</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadCoursesImportYearAreaInstitution</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>
    <service>
        <name>LoadCoursesImportYear</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Load All Courses</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadCoursesImportYear</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>
     <service>
        <name>LoadCoursesImportYearByType</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Load All Courses</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadCoursesImportYearByType</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>
    <service>
        <name>LoadActiveCoursesByType</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description>Load All Courses</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadActiveCoursesByType</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>


    <service>
        <name>SincronizeCoursesStudiesPlans</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>sincronizeCoursesStudiesPlans</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>
    <service>
        <name>GetCourseStudiesPlanXml</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>getCourseStudiesPlanXml</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>
    <service>
        <name>GetCourseDetailForJsonApi</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>getCourseDetailForJsonApi</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>
    <service>
        <name>GetActiveCoursesForJsonApi</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>getActiveCoursesForJsonApi</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>



    <!--Administratives-->
    <service>
        <name>CreateCourseUnitAdmin</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.CreateCourseUnitAdminService</implementationClass>
        <description>Load student units</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>

    <!--Repository-->

    <service>
        <name>StoreRepositoryFile</name>
        <implementationClass>pt.estgp.estgweb.services.data.RepositoryService</implementationClass>
        <description>Load student units</description>
        <isTransactional>false</isTransactional>
        <defaultMethod>storeRepositoryFile</defaultMethod>
        <filterChains>
        </filterChains>
    </service>
    <service>
        <name>UpdateRepositoryFile</name>
        <implementationClass>pt.estgp.estgweb.services.data.RepositoryService</implementationClass>
        <description>Load student units</description>
        <isTransactional>false</isTransactional>
        <defaultMethod>updateRepositoryFile</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="OwnersEdit"/>
        </filterChains>
    </service>
    <service>
        <name>LoadRepositoryFileView</name>
        <implementationClass>pt.estgp.estgweb.services.data.RepositoryService</implementationClass>
        <description>Load student units</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadView</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>LoadRepositoryFile</name>
        <implementationClass>pt.estgp.estgweb.services.data.RepositoryService</implementationClass>
        <description>Load student units</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>load</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="ResourceAccessControl"/>
        </filterChains>
    </service>

    <service>
        <name>LoadRepositoryFileVersion</name>
        <implementationClass>pt.estgp.estgweb.services.data.RepositoryService</implementationClass>
        <description>Load student units</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadVersion</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="ResourceAccessControlVersion"/>
        </filterChains>
    </service>

    <!-- Repository Utils - Transactional Services -->
    <service>
        <name>StoreRepositoryFileFromFileUpload</name>
        <implementationClass>pt.estgp.estgweb.services.data.RepositoryService</implementationClass>
        <description>Load student units</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>storeRepositoryFileFromFileUpload</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <service>
        <!--O identificador do file deve vir identificado com identifier-->
        <name>ReplaceRepositoryFileFromFileUpload</name>
        <implementationClass>pt.estgp.estgweb.services.data.RepositoryService</implementationClass>
        <description>Load student units</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>replaceRepositoryFileFromFileUpload</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="ResourceAccessControlEdit"/>
        </filterChains>
    </service>






    <!--Managed Identifiers-->
    <service>
        <name>managedIdentiferLoadCollections</name>
        <implementationClass>pt.estgp.estgweb.services.managedidentifers.ManagedIdentifiersService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadCollections</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="IdentifiersManager"/>
        </filterChains>
    </service>
    <service>
        <name>managedIdentiferCreateCollection</name>
        <implementationClass>pt.estgp.estgweb.services.managedidentifers.ManagedIdentifiersService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>createCollection</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="IdentifiersManager"/>
            <chain name="IdentifiersCollectionCreator"/>
        </filterChains>
    </service>
    <service>
        <name>managedIdentiferStartEditCollection</name>
        <implementationClass>pt.estgp.estgweb.services.managedidentifers.ManagedIdentifiersService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadCollection</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="IdentifiersManager"/>
            <chain name="OwnersLoadManagedCollection"/>
            <chain name="IdentifiersCollectionCreator"/>
        </filterChains>
    </service>
    <service>
        <name>managedIdentiferEditCollection</name>
        <implementationClass>pt.estgp.estgweb.services.managedidentifers.ManagedIdentifiersService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>createCollection</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="IdentifiersManager"/>
            <chain name="IdentifiersCollectionCreator"/>
            <chain name="OwnersEdit"/>
        </filterChains>
    </service>
    <service>
        <name>managedIdentiferDeleteCollection</name>
        <implementationClass>pt.estgp.estgweb.services.managedidentifers.ManagedIdentifiersService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>deleteCollection</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="IdentifiersManager"/>
            <chain name="IdentifiersCollectionCreator"/>
            <chain name="OwnersLoadManagedCollection"/>
        </filterChains>
    </service>
    <service>
        <name>managedIdentiferAssignCollectionUser</name>
        <implementationClass>pt.estgp.estgweb.services.managedidentifers.ManagedIdentifiersService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>assignCollectionUser</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="IdentifiersManager"/>
            <chain name="IdentifiersCollectionCreator"/>
            <chain name="OwnerManagedIdentifierCollection"/>
        </filterChains>
    </service>
    <service>
        <name>managedIdentiferDeleteCollectionUser</name>
        <implementationClass>pt.estgp.estgweb.services.managedidentifers.ManagedIdentifiersService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>deleteCollectionUser</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="IdentifiersManager"/>
            <chain name="IdentifiersCollectionCreator"/>
            <chain name="OwnerManagedIdentifierCollection"/>
        </filterChains>
    </service>
    <service>
        <name>managedIdentiferCreateIdentifier</name>
        <implementationClass>pt.estgp.estgweb.services.managedidentifers.ManagedIdentifiersService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>createIdentifier</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="IdentifiersManager"/>
            <chain name="CanAddContentManagedIdentifierCollection"/>
        </filterChains>
    </service>
    <service>
        <name>managedIdentiferStartEditIdentifier</name>
        <implementationClass>pt.estgp.estgweb.services.managedidentifers.ManagedIdentifiersService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>findIdentifier</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="IdentifiersManager"/>
            <chain name="OwnersLoadManagedIdentifier"/>
        </filterChains>
    </service>
    <service>
        <name>managedIdentiferEditIdentifier</name>
        <implementationClass>pt.estgp.estgweb.services.managedidentifers.ManagedIdentifiersService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>createIdentifier</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="IdentifiersManager"/>
            <chain name="OwnersEdit"/>
            <chain name="CanAddContentManagedIdentifierCollection"/>
        </filterChains>
    </service>
    <service>
        <name>managedIdentiferFindIdentifier</name>
        <implementationClass>pt.estgp.estgweb.services.managedidentifers.ManagedIdentifiersService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>findIdentifier</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="IdentifiersManager"/>
        </filterChains>
    </service>
    <service>
        <name>managedIdentiferLoadCollection</name>
        <implementationClass>pt.estgp.estgweb.services.managedidentifers.ManagedIdentifiersService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadCollection</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="IdentifiersManager"/>
        </filterChains>
    </service>
    <!---->




    <!--SRU Services-->
    <service>
        <name>LoadSruSourceById</name>
        <implementationClass>pt.estgp.estgweb.services.srusources.LoadSruSourceByIdService</implementationClass>
        <description>Load SruSource By ID</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>
    <service>
        <name>LoadSruSources</name>
        <implementationClass>pt.estgp.estgweb.services.srusources.LoadSruSourcesService</implementationClass>
        <description>Load all SruSources</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>
    <service>
        <name>SubmitSruSource</name>
        <implementationClass>pt.estgp.estgweb.services.srusources.SruSourceService</implementationClass>
        <description>Submit SruSource By ID</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>submit</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>
    <service>
        <name>DeleteSruSource</name>
        <implementationClass>pt.estgp.estgweb.services.srusources.DeleteSruSourceService</implementationClass>
        <description>Delete SruSource By ID</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>

    <!-- Duarte Santos -->
    <service>
        <name>LoadSurvey</name>
        <implementationClass>pt.estgp.estgweb.services.surveys.LoadSurveyService</implementationClass>
        <description>Load survey view</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <service>
        <name>LoadEditSurvey</name>
        <implementationClass>pt.estgp.estgweb.services.surveys.LoadSurveyService</implementationClass>
        <description>Load survey view to edit</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="CanEditSurvey"/>
        </filterChains>
    </service>
    <service>
        <name>LoadCloneSurvey</name>
        <implementationClass>pt.estgp.estgweb.services.surveys.LoadSurveyService</implementationClass>
        <description>Load survey view to clone</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnersLoadSurvey"/>
        </filterChains>
    </service>
    <service>
        <name>LoadListStatsSurvey</name>
        <implementationClass>pt.estgp.estgweb.services.surveys.LoadSurveyService</implementationClass>
        <description>Load survey view to list stats</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="CanConsultSurveyStats"/>
        </filterChains>
    </service>
    <service>
        <name>LoadSurveys</name>
        <implementationClass>pt.estgp.estgweb.services.surveys.LoadSurveysService</implementationClass>
        <description>Load all survey views</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>
    <service>
        <name>LoadOwnedSurveys</name>
        <implementationClass>pt.estgp.estgweb.services.surveys.LoadSurveysService</implementationClass>
        <description>Load owned survey views</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadOwnedSurveys</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <service>
        <name>LoadSurveyResponse</name>
        <implementationClass>pt.estgp.estgweb.services.surveys.LoadSurveyResponseService</implementationClass>
        <description>Load survey response view</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnersLoadResponse"/>
        </filterChains>
    </service>
    <service>
        <name>CreateEditSurvey</name>
        <implementationClass>pt.estgp.estgweb.services.surveys.CreateEditSurveyService</implementationClass>
        <description>Create or edit survey</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>createEditSurveyService</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>
    <service>
        <name>ConsistSurvey</name>
        <implementationClass>pt.estgp.estgweb.services.surveys.ConsistSurveyService</implementationClass>
        <description>Apply survey responses to new users</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>consistSurveyService</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnersLoadSurvey"/>
        </filterChains>
    </service>
    <service>
        <name>InsertSurveyAnswers</name>
        <implementationClass>pt.estgp.estgweb.services.surveys.InsertSurveyAnswersService</implementationClass>
        <description>Insert survey answers</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnersLoadResponse"/>
        </filterChains>
    </service>
    <service>
        <name>GenerateSurveyStats</name>
        <implementationClass>pt.estgp.estgweb.services.surveys.GenerateSurveyStatsService</implementationClass>
        <description>Generate all survey stats</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>generateStatsService</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnersLoadSurvey"/>
        </filterChains>
    </service>
    <service>
    <name>GenerateSurveyStatsCsv</name>
        <implementationClass>pt.estgp.estgweb.services.surveys.GenerateSurveyStatsCsvService</implementationClass>
        <description>Generate all survey stats on a csv file</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnersLoadSurvey"/>
        </filterChains>
    </service>
    <service>
        <name>LoadSurveyNodeGraphs</name>
        <implementationClass>pt.estgp.estgweb.services.surveys.LoadSurveyNodeGraphsService</implementationClass>
        <description>Load survey graphics of a node</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="CanConsultSurveyStats"/>
        </filterChains>
    </service>
    <service>
        <name>LoadConsultStatsSurveys</name>
        <implementationClass>pt.estgp.estgweb.services.surveys.LoadConsultStatsSurveysService</implementationClass>
        <description>Load surveys views which user can consult stats</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <!-- Duarte Santos -->



     <!--Filipe Matos-->
    <!--Assessments-->
    <service>
        <name>CreateEditAssessment</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.CreateEditAssessmentService</implementationClass>
        <description>Create or edit assessment</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>createEditAssessmentService</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Teachers"/>
        </filterChains>
    </service>
    <service>
        <name>LoadAssessment</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.LoadAssessmentService</implementationClass>
        <description>Load assessment view</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <service>
        <name>LoadOwnedAssessments</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.LoadAssessmentsService</implementationClass>
        <description>Load owned assessments</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadOwnedAssessments</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <service>
        <name>LoadOwnedResponses</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.LoadAssessmentResponsesService</implementationClass>
        <description>Load owned assessments</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadOwnedResponses</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>
    <service>
        <name>LoadEditAssessment</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.LoadAssessmentService</implementationClass>
        <description>Load assessment to edit</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="CanEditAssessment"/>
        </filterChains>
    </service>
    <service>
        <name>LoadCloneAssessment</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.LoadAssessmentService</implementationClass>
        <description>Load assessment view to clone</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnersLoadAssessment"/>
        </filterChains>
    </service>
    <service>
        <name>LoadScheduleAssessment</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.LoadAssessmentService</implementationClass>
        <description>Load assessment view to clone</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnersLoadAssessment"/>
        </filterChains>
    </service>
    <service>
        <name>ScheduleAssessment</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.ScheduleAssessmentService</implementationClass>
        <description>Schedule assessment</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>scheduleAssessmentService</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="OwnersLoadAssessment"/>-->
        </filterChains>
    </service>
    <service>
        <name>LoadAssessmentResponse</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.LoadAssessmentResponseService</implementationClass>
        <description>Load assessment response view</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnersLoadAssessmentResponse"/>
        </filterChains>
    </service>
    <service>
        <name>LoadAssessmentResponses</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.LoadAssessmentResponsesService</implementationClass>
        <description>Load assessment response view</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadAssessmentResponses</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="OwnersLoadAssessmentResponse"/>-->
        </filterChains>
    </service>
    <service>
        <name>LoadQuestionsResponses</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.LoadAssessmentResponsesService</implementationClass>
        <description>Load assessment response view</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadQuestionsResponses</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="OwnersLoadAssessmentResponse"/>-->
        </filterChains>
    </service>
    <service>
        <name>LoadQuestionResponses</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.LoadAssessmentResponsesService</implementationClass>
        <description>Load assessment response view</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadQuestionResponses</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="OwnersLoadAssessmentResponse"/>-->
        </filterChains>
    </service>
    <service>
        <name>InsertAssessmentAnswers</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.InsertAssessmentAnswersService</implementationClass>
        <description>Insert assessments answers</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="OwnersLoadAssessmentResponse"/>
        </filterChains>
    </service>
    <service>
        <name>EvaluateAssessmentResponse</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.EvaluateAssessmentsService</implementationClass>
        <description>Insert assessments answers</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>evaluateAssessmentResponse</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="OwnersLoadAssessmentResponse"/>-->
        </filterChains>
    </service>
    <service>
        <name>EvaluateQuestionResponses</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.EvaluateAssessmentsService</implementationClass>
        <description>Insert assessments answers</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>evaluateQuestionResponses</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="OwnersLoadAssessmentResponse"/>-->
        </filterChains>
    </service>
    <service>
        <name>GenerateEvaluationsPdf</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.GeneratePdfService</implementationClass>
        <description>Insert assessments answers</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>generateEvaluationsPdf</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="OwnersLoadAssessmentResponse"/>-->
        </filterChains>
    </service>
    <service>
        <name>GenerateAssessmentPdf</name>
        <implementationClass>pt.estgp.estgweb.services.assessments.GeneratePdfService</implementationClass>
        <description>Insert assessments answers</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>generateAssessmentPdf</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!--<chain name="OwnersLoadAssessment"/>-->
        </filterChains>
    </service>



    <service>
        <name>LoadUnitOtherYearsWithProgram</name>
        <implementationClass>pt.estgp.estgweb.services.sigesimports.SincronizeLastYearCourseUnitProgramsService</implementationClass>
        <description>Loads units with program from diferent year parameters (Long unitId)</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>findOtherUnitsWithProgram</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>

    <service>
        <name>CloneCourseUnitProgram</name>
        <implementationClass>pt.estgp.estgweb.services.sigesimports.SincronizeLastYearCourseUnitProgramsService</implementationClass>
        <description>Clone unit program from a unit into another unit parameters (long fromUnitId, long intoUnitId) </description>
        <isTransactional>true</isTransactional>
        <defaultMethod>cloneProgram</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>



    <!--PROCESSOS-->
    <service>
        <name>CreateNewProcess</name>
        <implementationClass>pt.estgp.estgweb.services.processes.ProcessesService</implementationClass>
        <description>Create a new instance of Process and transitates it </description>
        <isTransactional>true</isTransactional>
        <defaultMethod>submitNew</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>


    <!--Atention this method should be used with carefully because loads an object inconditionally without checking permissions-->
    <service>
        <name>LoadObjectService</name>
        <implementationClass>pt.estgp.estgweb.services.common.LoadObjectService</implementationClass>
        <description>Loads an object from Object Repository</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>load</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>


    <!--DIRECTORIES-->

    <service>
        <name>LoadDirectoryService</name>
        <implementationClass>pt.estgp.estgweb.services.directories.DirectoryService</implementationClass>
        <description>Loads a Directory</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadDirectory</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="ServicesOrAdmin"/>
        </filterChains>
    </service>
    <service>
        <name>LoadDirectoryConfiguration</name>
        <implementationClass>pt.estgp.estgweb.services.directories.DirectoryService</implementationClass>
        <description>Loads a Directory</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadDirectoryConfiguration</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="ServicesOrAdmin"/>
        </filterChains>
    </service>
    <service>
        <name>LoadDirectoryConfigurationCached</name>
        <implementationClass>pt.estgp.estgweb.services.directories.DirectoryService</implementationClass>
        <description>Loads a Directory</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadDirectoryConfigurationCached</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>

    <service>
        <name>LoadDirectoryServiceXml</name>
        <implementationClass>pt.estgp.estgweb.services.directories.DirectoryService</implementationClass>
        <description>Loads a Directory</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadDirectoryXml</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>

    <service>
        <name>LoadDirectoryServiceHtml</name>
        <implementationClass>pt.estgp.estgweb.services.directories.DirectoryService</implementationClass>
        <description>Loads a Directory and style it with XSL</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadDirectoryHtml</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>

    <service>
        <name>SaveDirectoryService</name>
        <implementationClass>pt.estgp.estgweb.services.directories.DirectoryService</implementationClass>
        <description>Save a Directory Object</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>saveDirectory</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>

    <service>
        <name>LoadJobServiceTaskSchedullers</name>
        <implementationClass>pt.estgp.estgweb.services.jobs.JobServiceInterfaces</implementationClass>
        <description>Save a Directory Object</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadJobServiceTaskSchedullers</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>

    <service>
        <name>LoadJobServiceTask</name>
        <implementationClass>pt.estgp.estgweb.services.jobs.JobServiceInterfaces</implementationClass>
        <description>Save a Directory Object</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadJobServiceTask</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="ServicesOrAdmin"/>
        </filterChains>
    </service>

    <service>
        <name>LoadJobServiceTaskScheduler</name>
        <implementationClass>pt.estgp.estgweb.services.jobs.JobServiceInterfaces</implementationClass>
        <description>Save a Directory Object</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadJobServiceTaskScheduler</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>

    <service>
        <name>RunNowJobServiceTaskScheduller</name>
        <implementationClass>pt.estgp.estgweb.services.jobs.JobScheduleService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>runNow</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>
    <service>
        <name>ToggleActiveJobServiceTaskScheduller</name>
        <implementationClass>pt.estgp.estgweb.services.jobs.JobScheduleService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>toggleActive</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>
    <service>
        <name>DeleteJobServiceTaskScheduller</name>
        <implementationClass>pt.estgp.estgweb.services.jobs.JobScheduleService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>delete</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>

    <service>
        <name>SaveJobServiceTaskScheduler</name>
        <implementationClass>pt.estgp.estgweb.services.jobs.JobScheduleService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>save</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>



    <service>
        <name>TryDeleteCourseUnitService</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.DeleteCourseUnitService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>tryDelete</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>

    <service>
        <name>LoadCandidatesDeleteCourseUnitService</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.DeleteCourseUnitService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadDeleteCandidates</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>

    <service>
        <name>DeleteAllNoWarnCourseUnitService</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.DeleteCourseUnitService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>deleteCandidatesNoWarn</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>
    <service>
        <name>DeleteAllCourseUnitService</name>
        <implementationClass>pt.estgp.estgweb.services.courseunits.DeleteCourseUnitService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>deleteCandidatesAll</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>


    <!--UserRole Services-->
    <service>
        <name>LoadRoleTranslationsIfDirty</name>
        <implementationClass>pt.estgp.estgweb.services.users.UserRoleConfigService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadRolesIfDirty</defaultMethod>
        <filterChains>
            <!--<chain name="Logger"/>-->
            <chain name="Session"/>
        </filterChains>
    </service>

    <service>
        <name>LoadRoleTranslationsIfDirtyInTransactionBatch</name>
        <implementationClass>pt.estgp.estgweb.services.users.UserRoleConfigService</implementationClass>
        <description></description>
        <isTransactional>false</isTransactional>
        <defaultMethod>loadRolesIfDirty</defaultMethod>
        <filterChains>
            <!--<chain name="Logger"/>-->
            <chain name="Session"/>
        </filterChains>
    </service>

    <service>
        <name>RefreshNewStandardRoles</name>
        <implementationClass>pt.estgp.estgweb.services.users.UserRoleConfigService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>checkIfAreNewStandardRoles</defaultMethod>
        <filterChains>
            <!--<chain name="Logger"/>-->
            <chain name="Session"/>
            <chain name="RoleAddRemoveManager"/>
        </filterChains>
    </service>

    <!--
   <service>
       <name>AddUpdateDirtyRolesTranslation</name>
       <implementationClass>pt.estgp.estgweb.services.users.UserRoleConfigService</implementationClass>
       <description></description>
       <isTransactional>true</isTransactional>
       <defaultMethod>addUpdateDirtRolesTranslation</defaultMethod>
       <filterChains>
           <chain name="Logger"/>
           <chain name="Session"/>
           <chain name="RoleAddRemoveManager"/>
       </filterChains>
   </service>-->

    <service>
        <name>AddUpdateRoleTranslation</name>
        <implementationClass>pt.estgp.estgweb.services.users.UserRoleConfigService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>addUpdateRole</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="RoleAddRemoveManager"/>
        </filterChains>
    </service>



    <service>
        <name>CreateRoleCourseComission</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>createRoleCourseComission</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="RoleAddRemoveManager"/>
        </filterChains>
    </service>
    <service>
        <name>ChangeCourseCoordinator</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CoursesService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>changeCoordinator</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="RoleAddRemoveManager"/>
        </filterChains>
    </service>
    <!--PageContents security is done in service by checking clearances-->
    <service>
        <name>loadPage</name>
        <implementationClass>pt.estgp.estgweb.services.virtualfilesystem.VfsService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadPage</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>loadPageSection</name>
        <implementationClass>pt.estgp.estgweb.services.virtualfilesystem.VfsService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadPageSection</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>


    <!--Events new-->


    <service>
        <name>EventsSaveClass</name>
        <implementationClass>pt.estgp.estgweb.services.events.EventsService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>save</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="EventClassManager"/>
        </filterChains>
    </service>


    <service>
        <name>EventsSaveEvent</name>
        <implementationClass>pt.estgp.estgweb.services.events.EventsService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>saveEvent</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="EventManager"/>
        </filterChains>
    </service>
    <service>
        <name>RemoveEventClass</name>
        <implementationClass>pt.estgp.estgweb.services.events.EventsService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>delete</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="EventClassManager"/>
        </filterChains>
    </service>
    <!--Questionarios New-->
    <service>
        <name>loadQuestionarioAdmin</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadQuestionario</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="QuestionarioClearancesPre"/>
        </filterChains>
    </service>

    <service>
        <name>NewQuestionarioForm</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>newQuestionarioForm</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="AdminsOrQuestionarioAdmins"/>
        </filterChains>
    </service>
    <service>
        <name>saveQuestionarioForm</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>saveQuestionarioForm</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="QuestionarioClearancesPreSave"/>
        </filterChains>
    </service>

    <service>
        <name>setAnoSemestre</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>setAnoSemestre</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="QuestionarioClearancesPre"/>
        </filterChains>
    </service>

    <service>
        <name>SetQuestionarioAssignDetailsState</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosService</implementationClass>
        <description>Altera o estado para afetacoes</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>setAssignDetailsState</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="QuestionarioClearancesPre"/>
        </filterChains>
    </service>

    <service>
        <name>DeleteQuestionario</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>deleteQuestionario</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="QuestionarioClearancesPre"/>
        </filterChains>
    </service>


    <service>
        <name>QuestionarioPutAssignedAnswers</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>putAssignedAnswers</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="QuestionarioClearancesPre"/>
        </filterChains>
    </service>
    <service>
        <name>QuestionarioRevertAssignationDetails</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>revertAssignationDetails</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="QuestionarioClearancesPre"/>
        </filterChains>
    </service>
    <service>
        <name>QuestionarioStartProcessement</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>startProcessement</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="QuestionarioClearancesPre"/>
        </filterChains>
    </service>
    <service>
        <name>QuestionarioStopProcessement</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>stopProcessement</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="QuestionarioClearancesPre"/>
        </filterChains>
    </service>

    <service>
        <name>QuestionarioCloseProcessement</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>closeProcessement</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="QuestionarioClearancesPre"/>
        </filterChains>
    </service>

    <service>
        <name>QuestionarioReopenProcessement</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>reopenProcessement</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="QuestionarioClearancesPre"/>
        </filterChains>
    </service>

    <service>
        <name>QuestionarioGenerateOlap</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>generateOlap</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="QuestionarioClearancesPre"/>
        </filterChains>
    </service>



    <service>
        <name>RunJobSelectCourses</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>runJobSelectCourses</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="QuestionarioClearancesPre"/>
        </filterChains>
    </service>


    <service>
        <name>RunJobAssignAnswers</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.pedagogico.AssignAnswersJobService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>runJobAssignAnswers</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="QuestionarioClearancesPre"/>
        </filterChains>
    </service>

    <service>
        <name>QuestionarioRevertAllAssignmentsPedagogico</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>revertAllAssignments</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="AdminsOrQuestionarioAdmins"/>
            <chain name="QuestionarioClearancesPre"/>
        </filterChains>
    </service>

    <service>
        <name>QuestionarioUpdateTipologiasPedagogico</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>updateTipologiasPedagogico</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="AdminsOrQuestionarioUsers"/>
            <chain name="QuestionarioClearancesPre"/>
        </filterChains>
    </service>


    <service>
        <name>QuestionarioUpdateCheckVarPedagogico</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>updateCheckVarPedagogico</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <!--<chain name="AdminsOrQuestionarioUsers"/> E verificado no servico-->
            <chain name="QuestionarioClearancesPre"/>
        </filterChains>
    </service>

    <service>
        <name>QuestionarioUpdateCheckVarExcludedPedagogico</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>updateCheckVarExcludedPedagogico</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <!--<chain name="AdminsOrQuestionarioUsers"/> E verificado no servico-->
            <chain name="QuestionarioClearancesPre"/>
        </filterChains>
    </service>
    <service>
        <name>QuestionarioSalvarResposta</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>salvarResposta</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
        </filterChains>
    </service>


    <service>
        <name>QuestionarioSendMessage</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>sendMessage</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="AdminsOrQuestionarioAdminsOrPedagogico"/>
        </filterChains>
    </service>

    <service>
        <name>QuestionarioSendMessageCursoAfeto</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>sendMessageCursoAfeto</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="AdminsOrQuestionarioAdminsOrPedagogico"/>
        </filterChains>
    </service>

    <service>
        <name>QuestionarioSendMessageUnidadeAfeta</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>sendMessageUnidadeAfeta</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="AdminsOrQuestionarioAdminsOrPedagogico"/>
        </filterChains>
    </service>

    <service>
        <name>QuestionarioSendMessageAllProcessing</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>sendMessageAllProcessing</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AuthenticatedUsers"/>
            <chain name="AdminsOrQuestionarioAdminsOrPedagogico"/>
        </filterChains>
    </service>

    <service>
        <name>SalvarFicheiro</name>
        <implementationClass>pt.estgp.estgweb.services.paginasseccoes.SalvarFicheiro</implementationClass>
        <description>Salvar Ficheiro</description>
        <isTransactional>true</isTransactional>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>



    <!-- REPORTS DE QUESTIONARIOS-->



    <service>
        <name>SaveReportGroup</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosReportsService</implementationClass>
        <description>Salvar Grupo de Reports Tipo</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>saveReportGroup</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AdminsOrQuestionarioAdmins"/>
        </filterChains>
    </service>

    <service>
        <name>UpdateReportGroup</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosReportsService</implementationClass>
        <description>Salvar Grupo de Reports Tipo</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>updateReportGroup</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AdminsOrQuestionarioAdmins"/>
        </filterChains>
    </service>

    <service>
        <name>SaveQuestionarioReportParameters</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosReportsService</implementationClass>
        <description>Salvar Grupo de Reports Tipo</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>saveReportGroupAlunosParameters</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AdminsOrQuestionarioAdmins"/>
        </filterChains>
    </service>

    <service>
        <name>UpdateReportFile</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosReportsService</implementationClass>
        <description>Salvar Grupo de Reports Tipo</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>updateReportFile</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AdminsOrQuestionarioAdmins"/>
        </filterChains>
    </service>


    <service>
        <name>GenerateReportGroup</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosReportsService</implementationClass>
        <description>Gerar Relatorios de um Grupo dado o ID</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>runJobGenerate</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AdminsOrQuestionarioAdmins"/>
        </filterChains>
    </service>




    <!--REPOSITORY DOCUMENTS-->


    <service>
        <name>SaveRepositoryDocument</name>
        <implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService</implementationClass>
        <description>Salva um repository document no repositorio digital de documentos</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>saveRepositoryDocument</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AdminsOrRepoDocumentsAdmins"/>
        </filterChains>
    </service>
    <service>
        <name>OpenRepositoryCollection</name>
        <implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService</implementationClass>
        <description>Serviço publico de abertura de Sub Colecções</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>openRepositoryCollection</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>OpenRepositoryCollectionDocuments</name>
        <implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService</implementationClass>
        <description>Serviço publico de abertura de documentos de uma Colecção</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>openRepositoryCollectionDocuments</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>AddRepositoryCollection</name>
        <implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService</implementationClass>
        <description>Salva um repository document no repositorio digital de documentos</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>addRepositoryCollection</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AdminsOrRepoDocumentsAdmins"/>
        </filterChains>
    </service>
    <service>
        <name>ChangeParentRepositoryDocumentCollection</name>
        <implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService</implementationClass>
        <description>Move uma colecção na arvore para um novo Pai</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>changeParentRepositoryDocumentCollection</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AdminsOrRepoDocumentsAdmins"/>
        </filterChains>
    </service>
    <service>
        <name>DeleteRepositoryDocumentCollection</name>
        <implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService</implementationClass>
        <description>Apaga uma colecção do repositório digital, caso esta esteja vazia</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>deleteCollection</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AdminsOrRepoDocumentsAdmins"/>
        </filterChains>
    </service>
    <service>
        <name>ChangeDocumentCollection</name>
        <implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService</implementationClass>
        <description>Move uma colecção na arvore para um novo Pai</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>changeDocumentCollection</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AdminsOrRepoDocumentsAdmins"/>
        </filterChains>
    </service>
    <service>
        <name>UpdateRepositoryCollection</name>
        <implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService</implementationClass>
        <description>Salva um repository colection no repositorio digital de documentos</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>updateRepositoryCollection</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AdminsOrRepoDocumentsAdmins"/>
        </filterChains>
    </service>


    <service>
        <name>RepositoryDocumentsAddManagerToCollection</name>
        <implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService</implementationClass>
        <description>Adiciona um utilizador como Gestor da Colecção do Repositorio digital</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>addManagerToCollection</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AdminsOrRepoDocumentsAdmins"/>
        </filterChains>
    </service>
    <service>
        <name>RepositoryDocumentsRemoveManagerInCollection</name>
        <implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService</implementationClass>
        <description>Remove um utilizador de Gestor da Colecção do Repositorio digital</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>removeManagerInCollection</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AdminsOrRepoDocumentsAdmins"/>
        </filterChains>
    </service>



    <service>
        <name>AddRepositoryInterface</name>
        <implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService</implementationClass>
        <description>Salva um repository interface no repositorio digital de documentos</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>addRepositoryInterface</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AdminsOrRepoDocumentsAdmins"/>
        </filterChains>
    </service>
    <service>
        <name>RemoveRepositoryInterface</name>
        <implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService</implementationClass>
        <description>Salva um repository interface no repositorio digital de documentos</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>removeRepositoryInterface</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AdminsOrRepoDocumentsAdmins"/>
        </filterChains>
    </service>
    <service>
        <name>CheckRepositoryDocumentExistence</name>
        <implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService</implementationClass>
        <description>Salva um repository interface no repositorio digital de documentos</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>checkRepositoryDocumentExistence</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>
    <service>
        <name>UpdateRepositoryInterface</name>
        <implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService</implementationClass>
        <description>Salva um repository interface no repositorio digital de documentos</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>updateRepositoryInterface</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AdminsOrRepoDocumentsAdmins"/>
        </filterChains>
    </service>

    <service>
        <name>SaveRepositoryInterfaceData</name>
        <implementationClass>pt.estgp.estgweb.services.data.repositorydocuments.RepositoryDocumentService</implementationClass>
        <description>Salva um repository interface no repositorio digital de documentos</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>saveRepositoryInterfaceData</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="AdminsOrRepoDocumentsAdmins"/>
        </filterChains>
    </service>



    <!-- Separators-->

    <service>
        <name>NewConfigurationSeparator</name>
        <implementationClass>pt.estgp.estgweb.services.configuration.ConfigurationSeparatorsService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>newConfigurationSeparator</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>
    <service>
        <name>UpdateConfigurationSeparator</name>
        <implementationClass>pt.estgp.estgweb.services.configuration.ConfigurationSeparatorsService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>updateConfigurationSeparator</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>
    <service>
        <name>RemoveConfigurationSeparator</name>
        <implementationClass>pt.estgp.estgweb.services.configuration.ConfigurationSeparatorsService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>removeConfigurationSeparator</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <chain name="Admins"/>
        </filterChains>
    </service>



    <!-- FUSCO VIRTUAL FILE SYSTEM -->

    <service>
        <name>OpenVirtualFileSystem</name>
        <implementationClass>pt.estgp.estgweb.services.virtualfilesystem.VfsService</implementationClass>
        <description>Serviço publico de abertura do Vfs</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>openVfs</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>

    <service>
        <name>InitVirtualFileSystem</name>
        <implementationClass>pt.estgp.estgweb.services.virtualfilesystem.VfsService</implementationClass>
        <description>Serviço publico de abertura do Vfs</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>initVfs</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>

    <service>
        <name>OpenVfsFiles</name>
        <implementationClass>pt.estgp.estgweb.services.virtualfilesystem.VfsService</implementationClass>
        <description>Serviço publico de abertura de documentos de uma Colecção</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>openVfsFiles</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>

    <service>
        <name>AddRoot</name>
        <implementationClass>pt.estgp.estgweb.services.virtualfilesystem.VfsService</implementationClass>
        <description>Apaga um conjunto de items do Virtual File System, caso este esteja vazio</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>addRoot</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>

    <service>
        <name>AddSubDirectory</name>
        <implementationClass>pt.estgp.estgweb.services.virtualfilesystem.VfsService</implementationClass>
        <description>guarda subitem</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>addSubDirectory</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>

        </filterChains>
    </service>

    <service>
        <name>AddUrl</name>
        <implementationClass>pt.estgp.estgweb.services.virtualfilesystem.VfsService</implementationClass>
        <description>guarda subitem</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>addUrl</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>

        </filterChains>
    </service>

    <service>
        <name>AddFile</name>
        <implementationClass>pt.estgp.estgweb.services.virtualfilesystem.VfsService</implementationClass>
        <description>guarda subitem</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>addFile</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>

        </filterChains>
    </service>

    <service>
        <name>AddText</name>
        <implementationClass>pt.estgp.estgweb.services.virtualfilesystem.VfsService</implementationClass>
        <description>guarda subitem</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>addText</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>

    <service>
        <name>UpdateItem</name>
        <implementationClass>pt.estgp.estgweb.services.virtualfilesystem.VfsService</implementationClass>
        <description>Guarda um nó</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>updateItem</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>

    <service>
        <name>UpdateUrl</name>
        <implementationClass>pt.estgp.estgweb.services.virtualfilesystem.VfsService</implementationClass>
        <description>Guarda um nó</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>updateUrl</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>

    <service>
        <name>SaveRepositoryFile</name>
        <implementationClass>pt.estgp.estgweb.services.virtualfilesystem.VfsService</implementationClass>
        <description>Salva um repository document no repositorio digital de documentos</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>saveRepositoryFile</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
            <!-- <chain name="AdminsOrRepoDocumentsAdmins"/>-->
        </filterChains>
    </service>

    <service>
        <name>UpdateText</name>
        <implementationClass>pt.estgp.estgweb.services.virtualfilesystem.VfsService</implementationClass>
        <description>Guarda um nó</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>updateText</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>

    <service>
        <name>DeleteItem</name>
        <implementationClass>pt.estgp.estgweb.services.virtualfilesystem.VfsService</implementationClass>
        <description>Apaga um conjunto de items do Virtual File System, caso este esteja vazio</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>deleteItem</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>

    <service>
        <name>ChangeItemSection</name>
        <implementationClass>pt.estgp.estgweb.services.virtualfilesystem.VfsService</implementationClass>
        <description>Move um item na arvore para um novo Pai</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>changeItemSection</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>

    <service>
        <name>ChangeParentItemGroup</name>
        <implementationClass>pt.estgp.estgweb.services.virtualfilesystem.VfsService</implementationClass>
        <description>move item para novo pai</description>
        <isTransactional>true</isTransactional>
        <defaultMethod>changeParentItemGroup</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>

        </filterChains>
    </service>

    <service>
        <name>UpdateAcl</name>
        <implementationClass>pt.estgp.estgweb.services.virtualfilesystem.VfsService</implementationClass>
        <description></description>
        <isTransactional>true</isTransactional>
        <defaultMethod>updateAcl</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>

        </filterChains>
    </service>




    <!--/****************************************************************************/
   /* COURSE REPORTS
   /****************************************************************************/-->



    <service>
        <name>CreateDtpStatsTable4Course</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CourseReportServices</implementationClass>
        <description>
            @code codigo do curso
            @year codigo do ano
            Cria uma tabela em JSON da classe UnitsDtpTable
            devolve a string

            Usa o servico LoadCourseUnitDtpStats para recorrer a tabelas já existentes no BACO
        </description>
        <isTransactional>true</isTransactional>
        <defaultMethod>createDtpStatsTable4Course</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>

    <service>
        <name>CourseReportLoadUnitsCreateLearningResultsTable4Course</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CourseReportServices</implementationClass>
        <description>
            @code codigo do curso
            @year codigo do ano
            Cria uma tabela em JSON da classe UnitsLearningResultsTable
            e preenche as seccoes das unidades no documento
            devolve a string

            Usa o servico LoadCourseEvaluationSections para recorrer a tabelas já existentes no BACO
        </description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadUnitsAndCreateLearningResultsTables4Course</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>

    <!--
       PRECISO DE UM IMPORTAR NOVAMENTE TABELA DE RESULTADOS DE APRENDIZAGEM
       Ha de ser um subservico do de cima que tem usar
       o servico LoadCourseEvaluationSections novamente

       PRECISO DE UM SERVICO PARA GERAR OS GRAFICOS DE APRENDIZAGEM
   -->

    <!--/****************************************************************************/
   /* SERVICOS WS-API TODO Seguranca em falta
   /****************************************************************************/-->

    <service>
        <name>LoadCourseEvaluationSections</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CourseReportServices</implementationClass>
        <description>
            @code codigo do curso
            @year codigo do ano
            Carrega todas as unidades em classes CourseUnitSection onde consta informação do professor, codigo, ano, semestre
            e consta ainda o CourseUnitEvaluation
            devolve um json object com um elemento evaluation contendo um JSONArray como string
            O conteudo do array são
            classes CourseUnitSection está pronta a serializar em JSON implementa a JSONView
        </description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadCourseEvaluationSections</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>

    <service>
        <name>QuestionariosReportLoadReportUnidadesSalasJson</name>
        <implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosReportsService</implementationClass>
        <description>
            Devolve uma tabela de Resumo das Respostas aos questionários pedagógicos
            dado um periodo: S1, S2 em formato JSON que pode ser lido com o
            deserializa da classe
            pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors.utils.DataTable
        </description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadReportUnidadesSalasJson</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>

    <service>
        <name>LoadCourseUnitDtpStats</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CourseReportServices</implementationClass>
        <description>
            @code codigo do curso
            @year codigo do ano
            Carrega todas as estatisticas unidades em classes CourseUnitDtpStat onde consta informação do  codigo, nome, semestre e um booleano por cada propriedade da unidade
            devolve um json object com um elemento evaluation contendo um JSONArray como string
            O conteudo do array são
            classes CourseUnitDtpStat está pronta a serializar em JSON implementa a JSONView
        </description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadCourseUnitDtpStats</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>

    <!-- SERVICOS DE GERACAO DE RELATORIO DE CURSO -->

    <service>
        <name>LoadPlanYearForCourseUnitCode</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CourseReportServices</implementationClass>
        <description>
            @courseCode codigo do curso
            @unitCode codigo da unidade
            Carrega o ano da unidade curricular a partir do plano de estudos
            Serviço de integração
        </description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadPlanYearForCourseUnitCode</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
        </filterChains>
    </service>


    <service>
        <name>CourseReportGenerateGlobalLearningResultsChartImg</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CourseReportServices</implementationClass>
        <description>
            @reportCourseDocument documento course report em json
            Serviço de suporte para gerar um grafico
            Coloca o grafico no report documento
            e salva o documento no curso
            Devolve uma classe RepositoryFile4JsonView serializada em JSON
        </description>
        <isTransactional>true</isTransactional>
        <defaultMethod>generateGlobalLearningResultsChartImg</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>

    <!-- Grafico 2  -->

    <service>
        <name>CourseReportGenerateGlobalLearningResultsChartYearImg</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CourseReportServices</implementationClass>
        <description>
            @reportCourseDocument documento course report em json
            Serviço de suporte para gerar um grafico
            Coloca o grafico no report documento
            e salva o documento no curso
            Devolve uma classe RepositoryFile4JsonView serializada em JSON
        </description>
        <isTransactional>true</isTransactional>
        <defaultMethod>generateGlobalLearningResultsChartYearImg</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>




    <!-- 7/12/2017 -->
    <service>
        <name>SaveCourseReportDoc</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CourseReportServices</implementationClass>
        <description>
            @reportCourseDocument documento course report em json
        </description>
        <isTransactional>true</isTransactional>
        <defaultMethod>saveCourseReportDoc</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>

    <!-- 7/12/2017 -->
    <service>
        <name>LoadCourseReportDoc</name>
        <implementationClass>pt.estgp.estgweb.services.courses.CourseReportServices</implementationClass>
        <description>
            @year Ano do relatorio
            @courseCode codigo do curso
        </description>
        <isTransactional>true</isTransactional>
        <defaultMethod>loadCourseReportDoc</defaultMethod>
        <filterChains>
            <chain name="Logger"/>
            <chain name="Session"/>
        </filterChains>
    </service>


</serviceDefinitions>