<?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 id="WorkflowManagerCatalog" factory-bean="WorkflowManagerCatalogFactory" factory-method="createCatalog"/>
    <bean id="WorkflowManagerCatalogFactory" class="org.apache.oodt.cas.catalog.system.CatalogFactory">
        <property name="catalogId" value="urn:PEATE:WorkflowInstancesCatalog"/>
        <property name="indexFactory" ref="WorkflowManagerDataSourceIndexFactory"/>
        <property name="dictionaryFactories">
            <list>
                <ref bean="WorkflowManagerDictionaryFactory"/>
            </list>
        </property>
        <property name="restrictQueryPermissions" value="false"/>
        <property name="restrictIngestPermissions" value="false"/>
    </bean>
    
    <!-- WorkflowManager Indexes -->
    <bean id="WorkflowManagerDataSourceIndexFactory" class="org.apache.oodt.cas.catalog.struct.impl.index.WorkflowManagerDataSourceIndexFactory">
        <property name="jdbcUrl" value="jdbc:oracle:thin:@dew.jpl.nasa.gov:1521:npptest"/>        
        <property name="user" value="nppint"/>
        <property name="pass" value="Peate"/>
        <property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
    </bean>
    <bean id="InMemoryIndexFactory" class="org.apache.oodt.cas.catalog.struct.impl.index.InMemoryIndexFactory">
        <property name="jdbcUrl" value="jdbc:hsqldb:file:${pcs.support.home}/hsqldb;shutdown=true"/>        
        <property name="user" value="sa"/>
        <property name="pass" value=""/>
        <property name="driver" value="org.hsqldb.jdbcDriver"/>
        <property name="tablesFile" value="${workflowmgr.home}/policy/in-memory-index-cat.sql"/>
    </bean>
    
    <!-- WorkflowManager Dictionary -->
    <bean id="WorkflowManagerDictionaryFactory" class="org.apache.oodt.cas.catalog.struct.impl.dictionary.WorkflowManagerDictionaryFactory"/>
    
</beans>


