<?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:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">

    <!-- Tell Spring where it can find all of the Command components. -->
    <context:component-scan base-package="org.apache.rya.shell"/>

    <!-- Define the shell state bean that will be shared across all of the commands. -->
    <bean id="sharedShellState" class="org.apache.rya.shell.SharedShellState" />
    <bean id="passwordPrompt" class="org.apache.rya.shell.util.PasswordPrompt.JLinePasswordPrompt" />
    <bean id="installPrompt" class="org.apache.rya.shell.util.InstallPrompt.JLineInstallPropmpt" />
    <bean id="uninstallPrompt" class="org.apache.rya.shell.util.UninstallPrompt.JLineUninstallPrompt" />
    <bean id="sparqlPrompt" class="org.apache.rya.shell.util.SparqlPrompt.JLineSparqlPrompt" />
    <bean id="consolePrinter" class="org.apache.rya.shell.util.ConsolePrinter.JLineConsolePrinter" />
    
    <!-- Define each of the beans that hold onto commands used by the shell. -->
    <bean id="ryaConnectionCommands" class="org.apache.rya.shell.RyaConnectionCommands" />
    <bean id="ryaAdminCommands" class="org.apache.rya.shell.RyaAdminCommands" />
    <bean id="ryaCommands" class="org.apache.rya.shell.RyaCommands" />
    <bean id="ryaStreamsCommands" class="org.apache.rya.shell.RyaStreamsCommands" />
    
    <!--  
    <bean id="springHelpCommands" class="org.springframework.shell.commands.HelpCommands" />
    <bean id="springScriptCommands" class="org.springframework.shell.commands.ScriptCommands" />
    <bean id="springExitCommands" class="org.springframework.shell.commands.ExitCommands" />
    -->
</beans>