<?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:util="http://www.springframework.org/schema/util"
	xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
	xsi:schemaLocation="
	http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
	http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd
	http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">

	<bean id="properties"
		class="org.springframework.beans.factory.config.PropertiesFactoryBean">
		<property name="singleton" value="true" />
		<property name="ignoreResourceNotFound" value="true" />
		<property name="locations">
			<list>
				<value>classpath:/usergrid-default.properties</value>
				<value>classpath:/usergrid-test.properties</value>
				<value>${usergrid-custom-spring-test-properties}</value>
			</list>
		</property>
	</bean>
	

	<import resource="usergrid-rest-context.xml"/>

    <bean id="traceTagManager" class="org.apache.usergrid.persistence.cassandra.util.TraceTagManager">
        <property name="reportUnattached" value="false"/>
        <property name="traceEnabled" value="false"/>
    </bean>


    <bean id="binaryStore" class="org.apache.usergrid.services.assets.data.LocalFileBinaryStore"/>

    <!--<bean id="binaryStore" class="org.apache.usergrid.services.assets.data.S3BinaryStore">-->
        <!--<constructor-arg name="accessId" value="xx" />-->
        <!--<constructor-arg name="secretKey" value="xx" />-->
        <!--<constructor-arg name="bucketName" value="xx" />-->
    <!--</bean>-->

    <bean id="setup" class="org.apache.usergrid.persistence.cassandra.Setup">
        <constructor-arg ref="entityManagerFactory"/>
        <constructor-arg ref="cassandraService"/>
    </bean>
    <!-- The default schema manager -->
    <!--
    <bean class="org.apache.usergrid.persistence.CoreSchemaManager">
        <constructor-arg ref="svcSetup"/>
        <constructor-arg ref="cassandraCluster"/>
    </bean>
    -->
    <!-- refer to a named schemaManager from the DataControl annotation thusly -->
    <bean id="coreManager" class="org.apache.usergrid.persistence.CoreSchemaManager">
        <constructor-arg ref="setup"/>
        <constructor-arg ref="cassandraCluster"/>
    </bean>

</beans>
