<?xml version="1.0" encoding="UTF-8"?>
<!--
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
-->
<entity-engine-xml>

    <PortletCategory portletCategoryId="HUMANRES" description="Human Resource Portlets"/>
    <PortalPortlet portalPortletId="myLeave"
        portletName="My Leave"
        screenName="MyLeaveList"
        screenLocation="component://humanres/widget/EmployeeScreens.xml"
        description="My Leaves form Human Resource" securityServiceName="portalPermissionIsEmployee" securityMainAction="VIEW"/>
    <PortletPortletCategory portalPortletId="myLeave" portletCategoryId="HUMANRES"/>
    <PortalPortlet portalPortletId="MyTrainings" portletName="My Trainings"  description="Trainings of a party"
        screenName="MyTrainings" screenLocation="component://humanres/widget/EmployeeScreens.xml" securityServiceName="portalPermissionIsEmployee"
        securityMainAction="VIEW"/>
    <PortletPortletCategory portalPortletId="MyTrainings" portletCategoryId="HUMANRES"/>

</entity-engine-xml>
