<?xml version="1.0" encoding="ASCII"?>
<!--
 * 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.    
-->
<definitions xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
            xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912"
            targetNamespace="http://tuscany.apache.org/xmlns/sca/1.1"
            xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1">

    <policySet name="JDKLoggingPolicy" 
               provides="tuscany:logging" 
               appliesTo="//binding | //implementation">
        <tuscany:jdkLogger name="test.logger">
            <tuscany:logLevel>FINE</tuscany:logLevel>
            <tuscany:resourceBundle>LoggingMessages.properties</tuscany:resourceBundle>
        </tuscany:jdkLogger>

    </policySet>
    
    <policySet name="JDKLoggingImplPolicy" 
               provides="tuscany:logging" 
               appliesTo="//implementation.java"
               attachTo="//sca:component[@name='CreditCardPayment']">
        <tuscany:jdkLogger name="test.logger">
            <tuscany:logLevel>INFO</tuscany:logLevel>
            <tuscany:resourceBundle>LoggingMessages.properties</tuscany:resourceBundle>
        </tuscany:jdkLogger>

    </policySet>
    
    <!-- A set of policy sets introduced just to ensure that intents are resolved -->
    
    <policySet name="SuspendsTransactionPolicy" 
               provides="sca:suspendsTransaction" 
               appliesTo="//binding.sca | //implementation.java"
               attachTo="IntentRefs('sca:suspendsTransaction')"/>    
               
    <policySet name="AuthorizationFineGrainPolicy" 
               provides="sca:authorization.fineGrain" 
               appliesTo="//binding.sca | //implementation.java" 
               attachTo="IntentRefs('sca:authorization') | IntentRefs('sca:authorization.fineGrain')"/>   
               
    <policySet name="ConfidentialityTransportPolicy" 
               provides="sca:confidentiality.transport" 
               appliesTo="//binding.sca | //implementation.java"
               attachTo="IntentRefs('sca:confidentiality.transport')"/>               

    <policySet name="ConfidentialityMessagePolicy" 
               provides="sca:confidentiality.message" 
               appliesTo="//binding.sca | //implementation.java"
               attachTo="IntentRefs('sca:confidentiality.message')"/>   
               
    <policySet name="ClientAuthenticationTransportPolicy" 
               provides="sca:clientAuthentication.transport" 
               appliesTo="//binding.sca | //implementation.java"
               attachTo="IntentRefs('sca:clientAuthentication.transport') | //sca:service[@name='CreditCardPayment']"/>  
               
    <policySet name="IntegrityTransportPolicy" 
               provides="sca:integrity.transport" 
               appliesTo="//binding.sca | //implementation.java"
               attachTo="IntentRefs('sca:integrity.transport')"/>   
               
	<policySet name="ManagedTransactionGlobalPolicy"
			   provides="sca:managedTransaction.global"
			   appliesTo="//implementation.composite | //implementation.java"
			   attachTo="IntentRefs('sca:managedTransaction.global')"/>	              	              
</definitions>