<?xml version="1.0" encoding="UTF-8"?>

<connector version="1.5">

   <vendor-name>Red Hat Middleware LLC</vendor-name>
   <eis-type>Teiid Infinispan DSL Resource Adapter</eis-type>
   <resourceadapter-version>1.0</resourceadapter-version>
   <license>
      <description>
 JBoss, Home of Professional Open Source.
 Copyright 2014, Red Hat Middleware LLC, and individual contributors
 as indicated by the @author tags. See the copyright.txt file in the
 distribution for a full listing of individual contributors.

 This is free software; you can redistribute it and/or modify it
 under the terms of the GNU Lesser General Public License as
 published by the Free Software Foundation; either version 2.1 of
 the License, or (at your option) any later version.

 This software is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 Lesser General Public License for more details.

 You should have received a copy of the GNU Lesser General Public
 License along with this software; if not, write to the Free
 Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 02110-1301 USA, or see the FSF site: http://www.fsf.org.
      </description>
      <license-required>true</license-required>
   </license>
   <resourceadapter>
      <resourceadapter-class>org.teiid.resource.adapter.infinispan.dsl.InfinispanResourceAdapter</resourceadapter-class>

      <outbound-resourceadapter>
         <connection-definition>
            <managedconnectionfactory-class>org.teiid.resource.adapter.infinispan.dsl.InfinispanManagedConnectionFactory</managedconnectionfactory-class>
  
            <config-property>
               <description>{$display:"Cache Type Mapping",$description:"Cache Type Map(cacheName:className[;pkFieldName][,cacheName:className[;pkFieldName]...])",$required="true"}</description>
               <config-property-name>CacheTypeMap</config-property-name>
               <config-property-type>java.lang.String</config-property-type>
            </config-property>  
            
            <config-property>
               <description>{$display:"Module",$description:"Module defining the cache classes (module,[module,..])"}</description>
               <config-property-name>Module</config-property-name>
               <config-property-type>java.lang.String</config-property-type>
            </config-property>
                
            <config-property>
               <description>{$display:"Server List",$description:"Server List (host:port[;host:port...]) to connect to"}</description>
               <config-property-name>RemoteServerList</config-property-name>
               <config-property-type>java.lang.String</config-property-type>
            </config-property>  
              
            <config-property>
               <description>{$display:"HotRod Client Properties File",$description:"HotRod Client properties file for configuring connection to remote cache"}</description>
               <config-property-name>HotRodClientPropertiesFile</config-property-name>
               <config-property-type>java.lang.String</config-property-type>
            </config-property>
                       
            <config-property>
               <description>{$display:"Cache JndiName",$description:"JNDI Name to find CacheContainer"}</description>
               <config-property-name>CacheJndiName</config-property-name>
               <config-property-type>java.lang.String</config-property-type>
            </config-property>  
            
           <config-property>
               <description>{$display:"Protobuf Definition File",$description:"Class Path to the Google Protobuf Definition file that's packaged in a jar",$required="true"}</description>
               <config-property-name>ProtobufDefinitionFile</config-property-name>
               <config-property-type>java.lang.String</config-property-type>
            </config-property>                       
 
           <config-property>
               <description>{$display:"Message Marshallers",$description:"Class names for the message marshallers, (marshaller,[marshaller,..]), that are to be registered for serialization",$required="true"}</description>
               <config-property-name>MessageMarshallers</config-property-name>
               <config-property-type>java.lang.String</config-property-type>
            </config-property>                       

           <config-property>
               <description>{$display:"Message Descriptor",$description:"Message descriptor class name for the root object in cache",$required="true"}</description>
               <config-property-name>MessageDescriptor</config-property-name>
               <config-property-type>java.lang.String</config-property-type>
            </config-property>                       
                       
            <connectionfactory-interface>javax.resource.cci.ConnectionFactory</connectionfactory-interface>
            <connectionfactory-impl-class>org.teiid.resource.spi.WrappedConnectionFactory</connectionfactory-impl-class>
            <connection-interface>javax.resource.cci.Connection</connection-interface>
            <connection-impl-class>org.teiid.resource.spi.WrappedConnection</connection-impl-class>          

         </connection-definition>
         
         <transaction-support>NoTransaction</transaction-support>
        
        <authentication-mechanism>
            <authentication-mechanism-type>BasicPassword</authentication-mechanism-type>
            <credential-interface>javax.resource.spi.security.PasswordCredential</credential-interface>
        </authentication-mechanism>
        <reauthentication-support>false</reauthentication-support>
      </outbound-resourceadapter>
   </resourceadapter>
</connector>
