<?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.
-->
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

    <bean class="org.apache.oodt.commons.spring.postprocessor.SetIdBeanPostProcessor"/>

    <!-- CAS-Catalog Cmd-Line-Options -->
    <bean id="serverFactoryBeanId" class="org.apache.oodt.commons.option.CmdLineOption">
        <property name="shortOption" value="sfb"/>
        <property name="longOption" value="serverFactoryBeanId"/>
        <property name="description" value="CommunicationChannelServerFactory Bean Id"/>
        <property name="hasArgs" value="true"/>
        <property name="optionArgName" value="bean id"/>
        <property name="required" value="true"/>
    </bean>

    <bean id="printSupportedServers" class="org.apache.oodt.commons.option.CmdLineOption">
        <property name="shortOption" value="pss"/>
        <property name="longOption" value="printSupportedServers"/>
        <property name="description" value="Prints a list and description of all supported CommunicationChannelServerFactories"/>
        <property name="hasArgs" value="false"/>
        <property name="required" value="false"/>
        <property name="performAndQuit" value="true"/>
        <property name="handler">
            <bean class="org.apache.oodt.cas.catalog.server.option.PrintSupportedServersHandler">
                <property name="beanRepo" value="/${catalog.home}/policy/catserv-server-config.xml"/>
            </bean>
        </property>
    </bean>

</beans>


