<?xml version="1.0" encoding="UTF-8"?>
<!-- 
Copyright 2004 The Apache Software Foundation
Licensed  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.
-->
<portlet-app
    xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"
    version="1.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd
                        http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd">
                        
    <portlet>
        <description>AboutPortletDescription</description>
        <portlet-name>AboutPortlet</portlet-name>
        <display-name>About Portlet</display-name>
        <portlet-class>org.apache.pluto.driver.portlets.AboutPortlet</portlet-class>
        <supports>
            <mime-type>text/html</mime-type>
            <portlet-mode>VIEW</portlet-mode>
            <portlet-mode>EDIT</portlet-mode>
            <portlet-mode>HELP</portlet-mode>
        </supports>
        <portlet-info>
            <title>About Apache Pluto</title>
        </portlet-info>
    </portlet>

    <portlet>
        <description>AdminPortletDescription</description>
        <portlet-name>AdminPortlet</portlet-name>
        <display-name>Admin Portlet</display-name>
        <portlet-class>org.apache.pluto.driver.portlets.AdminPortlet</portlet-class>
        <supports>
            <mime-type>text/html</mime-type>
            <portlet-mode>VIEW</portlet-mode>
            <portlet-mode>EDIT</portlet-mode>
            <portlet-mode>HELP</portlet-mode>
        </supports>
        <portlet-info>
            <title>Apache Pluto Portal Admin</title>
        </portlet-info>
    </portlet>

	<portlet>
    	<description>Admin portlet to deploy admin war files</description>
		<portlet-name>AdminDeploymentPortlet</portlet-name>
	    <display-name>Admin Deploy Portlet</display-name>
		<portlet-class>org.apache.pluto.driver.portlets.AdminDeploymentPortlet</portlet-class>
		<supports>
			<mime-type>text/html</mime-type>
            <portlet-mode>VIEW</portlet-mode>
            <portlet-mode>EDIT</portlet-mode>
        	<portlet-mode>HELP</portlet-mode>
		</supports>
	    <supported-locale>en</supported-locale>
    	<resource-bundle>AdminDeploymentPortlet</resource-bundle>
	    <portlet-info>
			<title>Admin Deploy Portlet</title>
	    </portlet-info>
	</portlet>  

    <portlet>
        <description>Used to administer pluto pages</description>
        <portlet-name>PlutoPageAdmin</portlet-name>
        <display-name>Pluto Page Administration Portlet</display-name>
        <portlet-class>org.apache.pluto.driver.portlets.PageAdminPortlet</portlet-class>
        <supports>
            <mime-type>text/html</mime-type>
            <portlet-mode>VIEW</portlet-mode>
            <portlet-mode>EDIT</portlet-mode>
            <portlet-mode>HELP</portlet-mode>
        </supports>
        <portlet-info>
            <title>Pluto Page Administrator</title>
        </portlet-info>
    </portlet>
>>>>>>> .r481784
</portlet-app>


