You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by jb...@apache.org on 2017/08/11 23:52:42 UTC

[26/52] [partial] geode-native git commit: GEODE-3165: Reogranized sources relative to the root for better CMake IDE integration.

http://git-wip-us.apache.org/repos/asf/geode-native/blob/6cbd424f/clicache/integration-test/regionquery_diffconfig_SG.xml
----------------------------------------------------------------------
diff --git a/clicache/integration-test/regionquery_diffconfig_SG.xml b/clicache/integration-test/regionquery_diffconfig_SG.xml
new file mode 100644
index 0000000..0f1595d
--- /dev/null
+++ b/clicache/integration-test/regionquery_diffconfig_SG.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0"?>
+
+<!--
+  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.
+-->
+
+
+
+<cache xmlns="http://geode.apache.org/schema/cache"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://geode.apache.org/schema/cache http://geode.apache.org/schema/cache/cache-1.0.xsd"
+       version="1.0">
+	<!--cache-server host="cod" port="24680" /-->
+  <cache-server port="HOST_PORT1">
+	<group>ServerGroup1</group>
+	</cache-server>
+
+	<region name="DistRegionAck">
+		<region-attributes scope="distributed-ack" data-policy="replicate"/>
+	</region>
+	<region name="Portfolios">
+		<region-attributes scope="distributed-ack" data-policy="replicate"/>
+
+                <!-- making entries -->
+                <entry>
+                <key><string>port1-1</string></key>
+                <value>
+                  <declarable>
+                    <class-name>javaobject.Portfolio</class-name>
+                    <parameter name="ID">
+                      <string>1</string>
+                    </parameter>
+                    <parameter name="pkid">
+                      <string>A0</string>
+                    </parameter>
+                    <parameter name="type">
+                      <string>type1</string>
+                    </parameter>
+                    <parameter name="status">
+                      <string>active</string>
+                    </parameter>
+                    <parameter name="position1">
+                      <declarable>
+                          <class-name>javaobject.Position</class-name>
+                          <parameter name="secId">
+                              <string>SUN</string>
+                          </parameter>
+                          <parameter name="sharesOutstanding">
+                              <string>3400</string>
+                          </parameter>
+                          <parameter name="secType">
+                              <string>r</string>
+                          </parameter>
+                          <parameter name="pid">
+                              <string>345</string>
+                          </parameter>
+                      </declarable>
+                    </parameter>
+                    <parameter name="position2">
+                      <declarable>
+                          <class-name>javaobject.Position</class-name>
+                          <parameter name="secId">
+                              <string>IBM</string>
+                          </parameter>
+                          <parameter name="sharesOutstanding">
+                              <string>8765</string>
+                          </parameter>
+                          <parameter name="secType">
+                             <string>p</string>
+                          </parameter>
+                          <parameter name="pid">
+                             <string>123</string>
+                          </parameter>
+                      </declarable>
+                    </parameter>
+                  </declarable>
+                </value>
+               </entry>
+	</region>
+	<region name="DistRegionNoAck">
+		<region-attributes   scope="distributed-no-ack" data-policy="replicate"/>
+	</region>
+</cache> 

http://git-wip-us.apache.org/repos/asf/geode-native/blob/6cbd424f/clicache/integration-test/remotequery.xml
----------------------------------------------------------------------
diff --git a/clicache/integration-test/remotequery.xml b/clicache/integration-test/remotequery.xml
new file mode 100644
index 0000000..c1bb4ca
--- /dev/null
+++ b/clicache/integration-test/remotequery.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0"?>
+
+<!--
+  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.
+-->
+
+
+
+<cache xmlns="http://geode.apache.org/schema/cache"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://geode.apache.org/schema/cache http://geode.apache.org/schema/cache/cache-1.0.xsd"
+       version="1.0">
+	<!--cache-server host="cod" port="24680" /-->
+  <cache-server port="HOST_PORT1" />
+
+	<region name="DistRegionAck">
+		<region-attributes scope="distributed-ack" data-policy="replicate"/>
+	</region>
+	<region name="DistRegionAck1">
+		<region-attributes scope="distributed-ack" data-policy="replicate"/>
+	</region>
+	<region name="Portfolios">
+		<region-attributes scope="distributed-ack" data-policy="replicate"/>
+
+                <!-- making entries -->
+                <entry>
+                <key><string>port1-1</string></key>
+                <value>
+                  <declarable>
+                    <class-name>javaobject.Portfolio</class-name>
+                    <parameter name="ID">
+                      <string>1</string>
+                    </parameter>
+                    <parameter name="pkid">
+                      <string>A0</string>
+                    </parameter>
+                    <parameter name="type">
+                      <string>type1</string>
+                    </parameter>
+                    <parameter name="status">
+                      <string>active</string>
+                    </parameter>
+                    <parameter name="position1">
+                      <declarable>
+                          <class-name>javaobject.Position</class-name>
+                          <parameter name="secId">
+                              <string>SUN</string>
+                          </parameter>
+                          <parameter name="sharesOutstanding">
+                              <string>3400</string>
+                          </parameter>
+                          <parameter name="secType">
+                              <string>r</string>
+                          </parameter>
+                          <parameter name="pid">
+                              <string>345</string>
+                          </parameter>
+                      </declarable>
+                    </parameter>
+                    <parameter name="position2">
+                      <declarable>
+                          <class-name>javaobject.Position</class-name>
+                          <parameter name="secId">
+                              <string>IBM</string>
+                          </parameter>
+                          <parameter name="sharesOutstanding">
+                              <string>8765</string>
+                          </parameter>
+                          <parameter name="secType">
+                             <string>p</string>
+                          </parameter>
+                          <parameter name="pid">
+                             <string>123</string>
+                          </parameter>
+                      </declarable>
+                    </parameter>
+                  </declarable>
+                </value>
+               </entry>
+
+               <!-- making sub-regions -->
+               <region name="Positions">
+		<region-attributes scope="distributed-ack" data-policy="replicate"/>
+                 
+               </region> 
+	</region>
+	<region name="Portfolios2">
+		<region-attributes scope="distributed-ack" data-policy="replicate"/>
+	</region>
+	<region name="Portfolios3">
+		<region-attributes scope="distributed-ack" data-policy="replicate"/>
+	</region>
+	<region name="Positions">
+		<region-attributes scope="distributed-ack" data-policy="replicate"/>
+	</region>
+	<region name="DistRegionNoAck">
+		<region-attributes   scope="distributed-no-ack" data-policy="replicate"/>
+	</region>
+</cache> 

http://git-wip-us.apache.org/repos/asf/geode-native/blob/6cbd424f/clicache/integration-test/remotequery2.xml
----------------------------------------------------------------------
diff --git a/clicache/integration-test/remotequery2.xml b/clicache/integration-test/remotequery2.xml
new file mode 100644
index 0000000..cd9090c
--- /dev/null
+++ b/clicache/integration-test/remotequery2.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0"?>
+
+<!--
+  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.
+-->
+
+
+
+<cache xmlns="http://geode.apache.org/schema/cache"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://geode.apache.org/schema/cache http://geode.apache.org/schema/cache/cache-1.0.xsd"
+       version="1.0">
+	<!--cache-server host="cod" port="24681" /-->
+	<cache-server port="HOST_PORT2" />
+
+	<region name="DistRegionAck">
+		<region-attributes scope="distributed-ack" data-policy="replicate"/>
+	</region>
+	<region name="DistRegionAck1">
+		<region-attributes scope="distributed-ack" data-policy="replicate"/>
+	</region>
+	<region name="Portfolios">
+		<region-attributes scope="distributed-ack" data-policy="replicate"/>
+
+                <!-- making entries -->
+                <entry>
+                <key><string>port1-1</string></key>
+                <value>
+                  <declarable>
+                    <class-name>javaobject.Portfolio</class-name>
+                    <parameter name="ID">
+                      <string>1</string>
+                    </parameter>
+                    <parameter name="pkid">
+                      <string>A0</string>
+                    </parameter>
+                    <parameter name="type">
+                      <string>type1</string>
+                    </parameter>
+                    <parameter name="status">
+                      <string>active</string>
+                    </parameter>
+                    <parameter name="position1">
+                      <declarable>
+                          <class-name>javaobject.Position</class-name>
+                          <parameter name="secId">
+                              <string>SUN</string>
+                          </parameter>
+                          <parameter name="sharesOutstanding">
+                              <string>3400</string>
+                          </parameter>
+                          <parameter name="secType">
+                              <string>r</string>
+                          </parameter>
+                          <parameter name="pid">
+                              <string>345</string>
+                          </parameter>
+                      </declarable>
+                    </parameter>
+                    <parameter name="position2">
+                      <declarable>
+                          <class-name>javaobject.Position</class-name>
+                          <parameter name="secId">
+                              <string>IBM</string>
+                          </parameter>
+                          <parameter name="sharesOutstanding">
+                              <string>8765</string>
+                          </parameter>
+                          <parameter name="secType">
+                             <string>p</string>
+                          </parameter>
+                          <parameter name="pid">
+                             <string>123</string>
+                          </parameter>
+                      </declarable>
+                    </parameter>
+                  </declarable>
+                </value>
+               </entry>
+
+               <!-- making sub-regions -->
+               <region name="Positions">
+		<region-attributes scope="distributed-ack" data-policy="replicate"/>
+                 
+               </region> 
+	</region>
+	<region name="Portfolios2">
+		<region-attributes scope="distributed-ack" data-policy="replicate"/>
+	</region>
+	<region name="Portfolios3">
+		<region-attributes scope="distributed-ack" data-policy="replicate"/>
+	</region>
+	<region name="Positions">
+		<region-attributes scope="distributed-ack" data-policy="replicate"/>
+	</region>
+	<region name="DistRegionNoAck">
+		<region-attributes   scope="distributed-no-ack" data-policy="replicate"/>
+	</region>
+</cache> 

http://git-wip-us.apache.org/repos/asf/geode-native/blob/6cbd424f/clicache/integration-test/remotequeryN.xml
----------------------------------------------------------------------
diff --git a/clicache/integration-test/remotequeryN.xml b/clicache/integration-test/remotequeryN.xml
new file mode 100644
index 0000000..c44bd2c
--- /dev/null
+++ b/clicache/integration-test/remotequeryN.xml
@@ -0,0 +1,109 @@
+<?xml version="1.0"?>
+
+<!--
+  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.
+-->
+
+
+
+<cache xmlns="http://geode.apache.org/schema/cache"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://geode.apache.org/schema/cache http://geode.apache.org/schema/cache/cache-1.0.xsd"
+       version="1.0">
+	<!--cache-server host="cod" port="24680" /-->
+  <cache-server port="HOST_PORT1" />
+
+	<region name="DistRegionAck">
+		<region-attributes scope="distributed-ack" data-policy="replicate"/>
+	</region>
+	<region name="Portfolios">
+		<region-attributes scope="distributed-ack" data-policy="replicate"/>
+
+                <!-- making entries -->
+                <entry>
+                <key><string>port1-1</string></key>
+                <value>
+                  <declarable>
+                    <class-name>javaobject.newapi.Portfolio</class-name>
+                    <parameter name="ID">
+                      <string>1</string>
+                    </parameter>
+                    <parameter name="pkid">
+                      <string>A0</string>
+                    </parameter>
+                    <parameter name="type">
+                      <string>type1</string>
+                    </parameter>
+                    <parameter name="status">
+                      <string>active</string>
+                    </parameter>
+                    <parameter name="position1">
+                      <declarable>
+                          <class-name>javaobject.newapi.Position</class-name>
+                          <parameter name="secId">
+                              <string>SUN</string>
+                          </parameter>
+                          <parameter name="sharesOutstanding">
+                              <string>3400</string>
+                          </parameter>
+                          <parameter name="secType">
+                              <string>r</string>
+                          </parameter>
+                          <parameter name="pid">
+                              <string>345</string>
+                          </parameter>
+                      </declarable>
+                    </parameter>
+                    <parameter name="position2">
+                      <declarable>
+                          <class-name>javaobject.newapi.Position</class-name>
+                          <parameter name="secId">
+                              <string>IBM</string>
+                          </parameter>
+                          <parameter name="sharesOutstanding">
+                              <string>8765</string>
+                          </parameter>
+                          <parameter name="secType">
+                             <string>p</string>
+                          </parameter>
+                          <parameter name="pid">
+                             <string>123</string>
+                          </parameter>
+                      </declarable>
+                    </parameter>
+                  </declarable>
+                </value>
+               </entry>
+
+               <!-- making sub-regions -->
+               <region name="Positions">
+		<region-attributes scope="distributed-ack" data-policy="replicate"/>
+                 
+               </region> 
+	</region>
+	<region name="Portfolios2">
+		<region-attributes scope="distributed-ack" data-policy="replicate"/>
+	</region>
+	<region name="Portfolios3">
+		<region-attributes scope="distributed-ack" data-policy="replicate"/>
+	</region>
+	<region name="Positions">
+		<region-attributes scope="distributed-ack" data-policy="replicate"/>
+	</region>
+	<region name="DistRegionNoAck">
+		<region-attributes   scope="distributed-no-ack" data-policy="replicate"/>
+	</region>
+</cache> 

http://git-wip-us.apache.org/repos/asf/geode-native/blob/6cbd424f/clicache/integration-test/serverDurableClient.xml
----------------------------------------------------------------------
diff --git a/clicache/integration-test/serverDurableClient.xml b/clicache/integration-test/serverDurableClient.xml
new file mode 100644
index 0000000..709209f
--- /dev/null
+++ b/clicache/integration-test/serverDurableClient.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+
+<!--
+  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.
+-->
+
+
+<!-- serverDurableClient.xml
+     Configures a server to for clients at port 40404.
+-->
+
+<cache xmlns="http://geode.apache.org/schema/cache"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://geode.apache.org/schema/cache http://geode.apache.org/schema/cache/cache-1.0.xsd"
+       version="1.0">
+  <cache-server port="40404"/>
+    <region name="DistRegionAck">
+      <region-attributes scope="distributed-ack" data-policy="replicate"/>
+    </region>
+</cache>

http://git-wip-us.apache.org/repos/asf/geode-native/blob/6cbd424f/clicache/integration-test/system.properties
----------------------------------------------------------------------
diff --git a/clicache/integration-test/system.properties b/clicache/integration-test/system.properties
new file mode 100644
index 0000000..0ffddef
--- /dev/null
+++ b/clicache/integration-test/system.properties
@@ -0,0 +1,33 @@
+# 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.
+# All the configurable parameters.
+statistic-sample-rate=700
+statistic-sampling-enabled=false
+statistic-archive-file=stats.gfs
+log-file=gfcpp.log
+log-level=debug
+name=system
+cache-xml-file=cache.xml
+log-file-size-limit=1024000000
+archive-file-size-limit=1024000000
+ping-interval=123
+connect-timeout=345
+redundancy-monitor-interval=456
+heap-lru-limit=123
+heap-lru-delta=45
+notify-ack-interval=1234
+notify-dupcheck-life=5678
+on-client-disconnect-clear-pdxType-Ids=true
+read-timeout-unit-in-millis=true

http://git-wip-us.apache.org/repos/asf/geode-native/blob/6cbd424f/clicache/integration-test/test.bat.in
----------------------------------------------------------------------
diff --git a/clicache/integration-test/test.bat.in b/clicache/integration-test/test.bat.in
new file mode 100644
index 0000000..e306603
--- /dev/null
+++ b/clicache/integration-test/test.bat.in
@@ -0,0 +1,65 @@
+@echo off
+
+rem Licensed to the Apache Software Foundation (ASF) under one or more
+rem contributor license agreements.  See the NOTICE file distributed with
+rem this work for additional information regarding copyright ownership.
+rem The ASF licenses this file to You under the Apache License, Version 2.0
+rem (the "License"); you may not use this file except in compliance with
+rem the License.  You may obtain a copy of the License at
+rem 
+rem      http://www.apache.org/licenses/LICENSE-2.0
+rem 
+rem Unless required by applicable law or agreed to in writing, software
+rem distributed under the License is distributed on an "AS IS" BASIS,
+rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+rem See the License for the specific language governing permissions and
+rem limitations under the License.
+
+setlocal
+
+set PATH=$<SHELL_PATH:$<TARGET_LINKER_FILE_DIR:Apache.Geode>>;%PATH%
+set PATH=$<SHELL_PATH:$<TARGET_LINKER_FILE_DIR:framework>>;%PATH%
+set PATH=$<SHELL_PATH:$<TARGET_LINKER_FILE_DIR:testobject>>;%PATH%
+set PATH=$<SHELL_PATH:$<TARGET_LINKER_FILE_DIR:SqLiteImpl>>;%PATH%
+set PATH=$<SHELL_PATH:$<TARGET_LINKER_FILE_DIR:cryptoImpl>>;%PATH%
+set PATH=$<SHELL_PATH:$<TARGET_LINKER_FILE_DIR:DHImpl>>;%PATH%
+set PATH=$<SHELL_PATH:$<TARGET_LINKER_FILE_DIR:securityImpl>>;%PATH%
+set PATH=$<SHELL_PATH:$<TARGET_LINKER_FILE_DIR:PkcsWrapper>>;%PATH%
+set PATH=$<JOIN:$<SHELL_PATH:${PATH}>,;>;%PATH%
+
+set PATH=c:\Program Files (x86)\Nunit 2.6.4\bin;%PATH%
+
+set TEST_DIR="$<SHELL_PATH:${TEST_DIR}>"
+set GFCPP="%TEST_DIR%"
+
+set TESTSRC=$<SHELL_PATH:${CMAKE_CURRENT_SOURCE_DIR}>
+set GF_JAVA=$<SHELL_PATH:${Java_JAVA_EXECUTABLE}>
+set GFJAVA=$<SHELL_PATH:${Geode_PATH}>
+set GFE_LOGLEVEL=config
+set GFE_SECLOGLEVEL=config
+set GFE_DIR=$<SHELL_PATH:${Geode_PATH}>
+set MCAST_ADDR=224.10.13.63
+set MCAST_PORT=${PORT}
+set TIMEBOMB=3600
+set GF_CLASSPATH=%GF_CLASSPATH%;$<SHELL_PATH:${CMAKE_BINARY_DIR}>\tests\javaobject\javaobject.jar
+set PROFILERCMD=
+set BUG481=
+set TESTNAME=${TEST}
+set LOG=${TEST}.log
+
+rmdir /q /s "%TEST_DIR%" 2>nul
+mkdir "%TEST_DIR%"
+if %errorlevel% neq 0 exit /b %errorlevel%
+pushd "%TEST_DIR%"
+if %errorlevel% neq 0 exit /b %errorlevel%
+
+rem In Windows, pipes to tee return tee's exit code instead of executable's
+rem exit code. As a workaround we write exit codes to files.
+
+(${NUNIT_CONSOLE} /run:${NAMESPACE}.${TESTCLASS} ..\..\$<CONFIG>\UnitTests.dll 2>&1 && echo 0 >${TEST}.errorlevel || echo 1 >${TEST}.errorlevel) | tee %LOG%
+
+set /p errorlevel= <${TEST}.errorlevel
+if %errorlevel% neq 0 exit /b %errorlevel%
+
+popd
+exit /b

http://git-wip-us.apache.org/repos/asf/geode-native/blob/6cbd424f/clicache/integration-test/valid_cache.xml
----------------------------------------------------------------------
diff --git a/clicache/integration-test/valid_cache.xml b/clicache/integration-test/valid_cache.xml
new file mode 100644
index 0000000..7680c10
--- /dev/null
+++ b/clicache/integration-test/valid_cache.xml
@@ -0,0 +1,88 @@
+<?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.
+-->
+
+
+<!-- Well-formed and valid xml file -->
+<client-cache
+    xmlns="http://schema.pivotal.io/gemfire/gfcpp-cache"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://schema.pivotal.io/gemfire/gfcpp-cache
+                        http://schema.pivotal.io/gemfire/gfcpp-cache/gfcpp-cache-9.0.xsd"
+    version="9.0">
+
+ <root-region name = "Root1" >
+    <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "35">
+       <region-idle-time>
+         <expiration-attributes timeout="20" action="destroy"/> 
+       </region-idle-time>
+       <entry-idle-time>
+         <expiration-attributes timeout="10" action="invalidate"/>
+       </entry-idle-time>
+       <region-time-to-live>
+         <expiration-attributes timeout="0" action="local-destroy"/>
+       </region-time-to-live>
+       <entry-time-to-live>
+         <expiration-attributes timeout="0" action="local-invalidate"/>
+       </entry-time-to-live>
+    </region-attributes>
+
+
+    <region name="SubRegion1">
+         <region-attributes scope="local" caching-enabled="true" initial-capacity="23" load-factor="0.89" concurrency-level="52">
+         </region-attributes>
+    </region>
+
+ </root-region>
+
+
+ <root-region name= "Root2">
+    <region-attributes scope="local" caching-enabled="true" initial-capacity="16" load-factor="0.75" concurrency-level="16" >                                                         
+      <region-time-to-live>
+        <expiration-attributes timeout="0" action="destroy"/>
+      </region-time-to-live>
+       <region-idle-time>
+        <expiration-attributes timeout="0" action="invalidate"/>
+      </region-idle-time>
+      <entry-time-to-live>
+        <expiration-attributes timeout="0" action="destroy"/>
+      </entry-time-to-live>
+      <entry-idle-time>
+        <expiration-attributes timeout="0" action="invalidate"/>
+      </entry-idle-time>
+    </region-attributes>
+
+    <region name="SubRegion21">
+         <region-attributes scope="local" caching-enabled="true" initial-capacity="16" load-factor="0.75" concurrency-level="16">
+            <region-idle-time>
+               <expiration-attributes timeout="20" action="destroy"/>
+            </region-idle-time>
+            <entry-idle-time>
+               <expiration-attributes timeout="10" action="invalidate"/>
+            </entry-idle-time>
+         </region-attributes>
+    </region>
+
+    <region name="SubRegion22">
+        <region name="SubSubRegion221">
+        </region>
+    </region>
+
+ </root-region>
+
+</client-cache>

http://git-wip-us.apache.org/repos/asf/geode-native/blob/6cbd424f/clicache/integration-test/valid_cache_pool.xml
----------------------------------------------------------------------
diff --git a/clicache/integration-test/valid_cache_pool.xml b/clicache/integration-test/valid_cache_pool.xml
new file mode 100644
index 0000000..ae84754
--- /dev/null
+++ b/clicache/integration-test/valid_cache_pool.xml
@@ -0,0 +1,91 @@
+<?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.
+-->
+
+
+<!-- Well-formed and valid xml file -->
+<client-cache
+    xmlns="http://schema.pivotal.io/gemfire/gfcpp-cache"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://schema.pivotal.io/gemfire/gfcpp-cache
+                        http://schema.pivotal.io/gemfire/gfcpp-cache/gfcpp-cache-9.0.xsd"
+    version="9.0">
+  <pdx ignore-unread-fields="true" />
+  <root-region name = "Root1" >
+    <region-attributes caching-enabled="true" pool-name="test_pool_1" />
+
+    <region name="SubRegion1">
+         <region-attributes caching-enabled="false" pool-name="test_pool_2" />
+    </region>
+
+  </root-region>
+
+  <root-region name= "Root2">
+    <region-attributes caching-enabled="false" pool-name="test_pool_2" /> 
+  </root-region>
+
+  <pool
+    free-connection-timeout = "12345"    
+    idle-timeout = "5555"
+    load-conditioning-interval = "23456"
+    max-connections = "7"
+    min-connections = "3"
+    name = "test_pool_1"
+    ping-interval = "12345"
+	  update-locator-list-interval="250001"
+    read-timeout = "23456"
+    retry-attempts = "3"
+    server-group = "ServerGroup1"
+    socket-buffer-size = "32768"
+    statistic-interval = "10123"
+    subscription-ack-interval = "567"
+    subscription-enabled = "true"
+    subscription-message-tracking-timeout = "900123"    
+    subscription-redundancy = "0"    
+    thread-local-connections = "5"
+    pr-single-hop-enabled="true"
+  >
+    <locator host="localhost" port="LOC_PORT1" />
+    <!--locator host="localhost" port="34757" /-->
+  </pool>
+  
+  <pool
+    free-connection-timeout = "23456"    
+    idle-timeout = "6666"
+    load-conditioning-interval = "34567"
+    max-connections = "8"
+    min-connections = "2"
+    name = "test_pool_2"
+    ping-interval = "23456"
+    read-timeout = "34567"
+    retry-attempts = "5"
+    server-group = "ServerGroup2"
+    socket-buffer-size = "65536"
+    statistic-interval = "20345"
+    subscription-ack-interval = "678"
+    subscription-enabled = "false"
+    subscription-message-tracking-timeout = "800222"    
+    subscription-redundancy = "1"
+    thread-local-connections = "3"
+    pr-single-hop-enabled="false"
+  >
+    <server host="localhost" port="HOST_PORT1" />
+    <server host="localhost" port="HOST_PORT2" />
+  </pool>
+  
+</client-cache>

http://git-wip-us.apache.org/repos/asf/geode-native/blob/6cbd424f/clicache/integration-test/valid_cache_refid.xml
----------------------------------------------------------------------
diff --git a/clicache/integration-test/valid_cache_refid.xml b/clicache/integration-test/valid_cache_refid.xml
new file mode 100644
index 0000000..e9bc134
--- /dev/null
+++ b/clicache/integration-test/valid_cache_refid.xml
@@ -0,0 +1,85 @@
+<?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.
+-->
+
+
+<!-- Well-formed and valid xml file -->
+<client-cache
+    xmlns="http://schema.pivotal.io/gemfire/gfcpp-cache"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://schema.pivotal.io/gemfire/gfcpp-cache
+                        http://schema.pivotal.io/gemfire/gfcpp-cache/gfcpp-cache-9.0.xsd"
+    version="9.0">
+
+ <root-region name = "Root1" >
+    <region-attributes id="root1" scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "35">
+       <region-idle-time>
+         <expiration-attributes timeout="20" action="destroy"/> 
+       </region-idle-time>
+       <entry-idle-time>
+         <expiration-attributes timeout="10" action="invalidate"/>
+       </entry-idle-time>
+       <region-time-to-live>
+         <expiration-attributes timeout="0" action="local-destroy"/>
+       </region-time-to-live>
+       <entry-time-to-live>
+         <expiration-attributes timeout="0" action="local-invalidate"/>
+       </entry-time-to-live>
+    </region-attributes>
+
+
+    <region name="SubRegion1">
+         <region-attributes id="sub1" scope="local" caching-enabled="true" initial-capacity="23" load-factor=".89" concurrency-level="52">
+         </region-attributes>
+         
+         <region name="SubRegion11">
+         	<region-attributes id="sub11" refid="sub1" initial-capacity="10" />
+    	 </region>
+    </region>
+    
+    <region name="SubRegion2">
+    	<region-attributes refid="sub11" />
+    </region>
+
+ </root-region>
+
+
+ <root-region name= "Root2">
+    <region-attributes refid="root1" concurrency-level="16" >                                                         
+      <region-time-to-live>
+        <expiration-attributes timeout="0" action="destroy"/>
+      </region-time-to-live>
+       <region-idle-time>
+        <expiration-attributes timeout="0" action="invalidate"/>
+      </region-idle-time>
+    </region-attributes>
+
+    <region name="SubRegion21">
+         <region-attributes refid="sub11">
+            <region-idle-time>
+               <expiration-attributes timeout="20" action="destroy"/>
+            </region-idle-time>
+            <entry-idle-time>
+               <expiration-attributes timeout="10" action="invalidate"/>
+            </entry-idle-time>
+         </region-attributes>
+    </region>
+
+ </root-region>
+
+</client-cache>

http://git-wip-us.apache.org/repos/asf/geode-native/blob/6cbd424f/clicache/integration-test/valid_cache_region_refid.xml
----------------------------------------------------------------------
diff --git a/clicache/integration-test/valid_cache_region_refid.xml b/clicache/integration-test/valid_cache_region_refid.xml
new file mode 100644
index 0000000..74a0cfe
--- /dev/null
+++ b/clicache/integration-test/valid_cache_region_refid.xml
@@ -0,0 +1,83 @@
+<?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.
+-->
+
+
+<!-- Well-formed and valid xml file -->
+<client-cache
+    xmlns="http://schema.pivotal.io/gemfire/gfcpp-cache"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://schema.pivotal.io/gemfire/gfcpp-cache
+                        http://schema.pivotal.io/gemfire/gfcpp-cache/gfcpp-cache-9.0.xsd"
+    version="9.0">
+
+ <root-region name = "Root1" >
+    <region-attributes id="root1" scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "35">
+       <region-idle-time>
+         <expiration-attributes timeout="20" action="destroy"/> 
+       </region-idle-time>
+       <entry-idle-time>
+         <expiration-attributes timeout="10" action="invalidate"/>
+       </entry-idle-time>
+       <region-time-to-live>
+         <expiration-attributes timeout="0" action="local-destroy"/>
+       </region-time-to-live>
+       <entry-time-to-live>
+         <expiration-attributes timeout="0" action="local-invalidate"/>
+       </entry-time-to-live>
+    </region-attributes>
+
+
+    <region name="SubRegion1">
+         <region-attributes id="sub1" scope="local" caching-enabled="true" initial-capacity="23" load-factor=".89" concurrency-level="52">
+         </region-attributes>
+         
+         <region name="SubRegion11" refid="sub1">
+         	<region-attributes id="sub11" initial-capacity="10" />
+    	 </region>
+    </region>
+    
+    <region name="SubRegion2" refid="sub11">
+    </region>
+
+ </root-region>
+
+
+ <root-region name= "Root2" refid="root1">
+    <region-attributes concurrency-level="16" >                                                         
+      <region-time-to-live>
+        <expiration-attributes timeout="0" action="destroy"/>
+      </region-time-to-live>
+       <region-idle-time>
+        <expiration-attributes timeout="0" action="invalidate"/>
+      </region-idle-time>
+    </region-attributes>
+
+    <region name="SubRegion21" refid="sub1">
+         <region-attributes refid="sub11">
+            <region-idle-time>
+               <expiration-attributes timeout="20" action="destroy"/>
+            </region-idle-time>
+            <entry-idle-time>
+               <expiration-attributes timeout="10" action="invalidate"/>
+            </entry-idle-time>
+         </region-attributes>
+     </region>
+ </root-region>
+
+</client-cache>

http://git-wip-us.apache.org/repos/asf/geode-native/blob/6cbd424f/clicache/integration-test/valid_declarative_cache_creation.xml
----------------------------------------------------------------------
diff --git a/clicache/integration-test/valid_declarative_cache_creation.xml b/clicache/integration-test/valid_declarative_cache_creation.xml
new file mode 100644
index 0000000..0f239f1
--- /dev/null
+++ b/clicache/integration-test/valid_declarative_cache_creation.xml
@@ -0,0 +1,36 @@
+<?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.
+-->
+
+
+<!-- Well-formed and valid xml file -->
+<client-cache
+    xmlns="http://schema.pivotal.io/gemfire/gfcpp-cache"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://schema.pivotal.io/gemfire/gfcpp-cache
+                        http://schema.pivotal.io/gemfire/gfcpp-cache/gfcpp-cache-9.0.xsd"
+    version="9.0">
+<!-- xml with region-attribute having only child elements no attributes. refer to Ticket #775  -->
+  <root-region name= "Root1">
+    <region-attributes > 
+	  <cache-loader library-name="unit_test_callbacks" library-function-name="createCacheLoader" />
+      <cache-listener library-name="unit_test_callbacks" library-function-name="createCacheListener" />
+      <cache-writer library-name="unit_test_callbacks" library-function-name="createCacheWriter" />
+	</region-attributes > 
+  </root-region>
+</client-cache>

http://git-wip-us.apache.org/repos/asf/geode-native/blob/6cbd424f/clicache/integration-test/valid_lruExpiration.xml
----------------------------------------------------------------------
diff --git a/clicache/integration-test/valid_lruExpiration.xml b/clicache/integration-test/valid_lruExpiration.xml
new file mode 100644
index 0000000..dae8aad
--- /dev/null
+++ b/clicache/integration-test/valid_lruExpiration.xml
@@ -0,0 +1,266 @@
+<?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.
+-->
+
+
+<!-- Well-formed and valid xml file -->
+<client-cache
+    xmlns="http://schema.pivotal.io/gemfire/gfcpp-cache"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://schema.pivotal.io/gemfire/gfcpp-cache
+                        http://schema.pivotal.io/gemfire/gfcpp-cache/gfcpp-cache-9.0.xsd"
+    version="9.0">
+
+<root-region name = "R1" >
+  <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "0">
+    <region-idle-time>
+      <expiration-attributes timeout="0" action="destroy"/> 
+    </region-idle-time>
+    <entry-idle-time>
+      <expiration-attributes timeout="0" action="invalidate"/>
+    </entry-idle-time>
+    <region-time-to-live>
+      <expiration-attributes timeout="0" action="local-destroy"/>
+    </region-time-to-live>
+    <entry-time-to-live>
+      <expiration-attributes timeout="0" action="local-invalidate"/>
+    </entry-time-to-live>
+    </region-attributes>
+ </root-region>
+<root-region name = "R2" >
+  <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "5">
+    <region-idle-time>
+      <expiration-attributes timeout="0" action="destroy"/> 
+    </region-idle-time>
+    <entry-idle-time>
+      <expiration-attributes timeout="2" action="destroy"/>
+    </entry-idle-time>
+    <region-time-to-live>
+      <expiration-attributes timeout="0" action="destroy"/>
+    </region-time-to-live>
+    <entry-time-to-live>
+      <expiration-attributes timeout="4" action="destroy"/>
+    </entry-time-to-live>
+    </region-attributes>
+ </root-region>
+<root-region name = "R20" >
+  <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "0">
+    <region-idle-time>
+      <expiration-attributes timeout="0" action="destroy"/> 
+    </region-idle-time>
+    <entry-idle-time>
+      <expiration-attributes timeout="2" action="local-invalidate"/>
+    </entry-idle-time>
+    <region-time-to-live>
+      <expiration-attributes timeout="0" action="destroy"/>
+    </region-time-to-live>
+    <entry-time-to-live>
+      <expiration-attributes timeout="4" action="local-invalidate"/>
+    </entry-time-to-live>
+    </region-attributes>
+ </root-region>
+<root-region name = "R21" >
+  <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "5">
+    <region-idle-time>
+      <expiration-attributes timeout="0" action="destroy"/> 
+    </region-idle-time>
+    <entry-idle-time>
+      <expiration-attributes timeout="0" action="destroy"/>
+    </entry-idle-time>
+    <region-time-to-live>
+      <expiration-attributes timeout="0" action="destroy"/>
+    </region-time-to-live>
+    <entry-time-to-live>
+      <expiration-attributes timeout="0" action="destroy"/>
+    </entry-time-to-live>
+    </region-attributes>
+ </root-region>
+<root-region name = "R4" >
+  <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "5">
+    <region-idle-time>
+      <expiration-attributes timeout="0" action="destroy"/> 
+    </region-idle-time>
+    <entry-idle-time>
+      <expiration-attributes timeout="0" action="destroy"/>
+    </entry-idle-time>
+    <region-time-to-live>
+      <expiration-attributes timeout="0" action="destroy"/>
+    </region-time-to-live>
+    <entry-time-to-live>
+      <expiration-attributes timeout="5" action="destroy"/>
+    </entry-time-to-live>
+    </region-attributes>
+ </root-region>
+<root-region name = "R40" >
+  <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "5">
+    <region-idle-time>
+      <expiration-attributes timeout="0" action="destroy"/> 
+    </region-idle-time>
+    <entry-idle-time>
+      <expiration-attributes timeout="0" action="destroy"/>
+    </entry-idle-time>
+    <region-time-to-live>
+      <expiration-attributes timeout="0" action="destroy"/>
+    </region-time-to-live>
+    <entry-time-to-live>
+      <expiration-attributes timeout="5" action="local-invalidate"/>
+    </entry-time-to-live>
+    </region-attributes>
+ </root-region>
+<root-region name = "R5" >
+  <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "5">
+    <region-idle-time>
+      <expiration-attributes timeout="0" action="destroy"/> 
+    </region-idle-time>
+    <entry-idle-time>
+      <expiration-attributes timeout="5" action="destroy"/>
+    </entry-idle-time>
+    <region-time-to-live>
+      <expiration-attributes timeout="0" action="destroy"/>
+    </region-time-to-live>
+    <entry-time-to-live>
+      <expiration-attributes timeout="0" action="destroy"/>
+    </entry-time-to-live>
+    </region-attributes>
+ </root-region>
+<root-region name = "R8" >
+  <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "5">
+    <region-idle-time>
+      <expiration-attributes timeout="0" action="destroy"/> 
+    </region-idle-time>
+    <entry-idle-time>
+      <expiration-attributes timeout="0" action="destroy"/>
+    </entry-idle-time>
+    <region-time-to-live>
+      <expiration-attributes timeout="0" action="destroy"/>
+    </region-time-to-live>
+    <entry-time-to-live>
+      <expiration-attributes timeout="10" action="destroy"/>
+    </entry-time-to-live>
+    </region-attributes>
+ </root-region>
+<root-region name = "R12" >
+  <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "5">
+    <region-idle-time>
+      <expiration-attributes timeout="0" action="destroy"/> 
+    </region-idle-time>
+    <entry-idle-time>
+      <expiration-attributes timeout="0" action="destroy"/>
+    </entry-idle-time>
+    <region-time-to-live>
+      <expiration-attributes timeout="0" action="destroy"/>
+    </region-time-to-live>
+    <entry-time-to-live>
+      <expiration-attributes timeout="5" action="destroy"/>
+    </entry-time-to-live>
+    </region-attributes>
+ </root-region>
+<root-region name = "R13" >
+  <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "5">
+    <region-idle-time>
+      <expiration-attributes timeout="0" action="destroy"/> 
+    </region-idle-time>
+    <entry-idle-time>
+      <expiration-attributes timeout="0" action="destroy"/>
+    </entry-idle-time>
+    <region-time-to-live>
+      <expiration-attributes timeout="0" action="destroy"/>
+    </region-time-to-live>
+    <entry-time-to-live>
+      <expiration-attributes timeout="5" action="destroy"/>
+    </entry-time-to-live>
+    </region-attributes>
+ </root-region>
+<root-region name = "R15" >
+  <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "5">
+    <region-idle-time>
+      <expiration-attributes timeout="0" action="destroy"/> 
+    </region-idle-time>
+    <entry-idle-time>
+      <expiration-attributes timeout="5" action="destroy"/>
+    </entry-idle-time>
+    <region-time-to-live>
+      <expiration-attributes timeout="0" action="destroy"/>
+    </region-time-to-live>
+    <entry-time-to-live>
+      <expiration-attributes timeout="0" action="destroy"/>
+    </entry-time-to-live>
+    </region-attributes>
+ </root-region>
+<root-region name = "R16" >
+  <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "5">
+    <region-idle-time>
+      <expiration-attributes timeout="0" action="destroy"/> 
+    </region-idle-time>
+    <entry-idle-time>
+      <expiration-attributes timeout="5" action="destroy"/>
+    </entry-idle-time>
+    <region-time-to-live>
+      <expiration-attributes timeout="0" action="destroy"/>
+    </region-time-to-live>
+    <entry-time-to-live>
+      <expiration-attributes timeout="0" action="destroy"/>
+    </entry-time-to-live>
+    </region-attributes>
+ </root-region>
+<root-region name = "R18" >
+  <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "4" disk-policy="overflows">
+    <region-idle-time>
+      <expiration-attributes timeout="0" action="destroy"/> 
+    </region-idle-time>
+    <entry-idle-time>
+      <expiration-attributes timeout="0" action="destroy"/>
+    </entry-idle-time>
+    <region-time-to-live>
+      <expiration-attributes timeout="0" action="destroy"/>
+    </region-time-to-live>
+    <entry-time-to-live>
+      <expiration-attributes timeout="4" action="local-invalidate"/>
+    </entry-time-to-live>
+    <persistence-manager library-name="SqLiteImpl" library-function-name="createSqLiteInstance">
+         <properties>
+           <property name="PersistenceDirectory" value="SqLite"/>
+           <property name="MaxFileSize" value="32500"/>
+         </properties>
+       </persistence-manager>
+    </region-attributes>
+ </root-region>
+<root-region name = "R19" >
+  <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "4" disk-policy="overflows">
+    <region-idle-time>
+      <expiration-attributes timeout="0" action="destroy"/> 
+    </region-idle-time>
+    <entry-idle-time>
+      <expiration-attributes timeout="0" action="destroy"/>
+    </entry-idle-time>
+    <region-time-to-live>
+      <expiration-attributes timeout="0" action="destroy"/>
+    </region-time-to-live>
+    <entry-time-to-live>
+      <expiration-attributes timeout="4" action="destroy"/>
+    </entry-time-to-live>
+    <persistence-manager library-name="SqLiteImpl" library-function-name="createSqLiteInstance">
+         <properties>
+           <property name="PersistenceDirectory" value="SqLite"/>
+           <property name="MaxFileSize" value="32500"/>
+         </properties>
+       </persistence-manager>
+    </region-attributes>
+ </root-region>
+																
+</client-cache>

http://git-wip-us.apache.org/repos/asf/geode-native/blob/6cbd424f/clicache/integration-test/valid_overflowAttr.xml
----------------------------------------------------------------------
diff --git a/clicache/integration-test/valid_overflowAttr.xml b/clicache/integration-test/valid_overflowAttr.xml
new file mode 100644
index 0000000..0f40e2e
--- /dev/null
+++ b/clicache/integration-test/valid_overflowAttr.xml
@@ -0,0 +1,177 @@
+<?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.
+-->
+
+
+<!-- Well-formed and valid xml file -->
+<client-cache
+    xmlns="http://schema.pivotal.io/gemfire/gfcpp-cache"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://schema.pivotal.io/gemfire/gfcpp-cache
+                        http://schema.pivotal.io/gemfire/gfcpp-cache/gfcpp-cache-9.0.xsd"
+    version="9.0">
+
+ <root-region name = "Root1" >
+    <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "35" disk-policy="overflows">
+       <region-idle-time>
+         <expiration-attributes timeout="20" action="destroy"/> 
+       </region-idle-time>
+       <entry-idle-time>
+         <expiration-attributes timeout="10" action="invalidate"/>
+       </entry-idle-time>
+       <region-time-to-live>
+         <expiration-attributes timeout="0" action="local-destroy"/>
+       </region-time-to-live>
+       <entry-time-to-live>
+         <expiration-attributes timeout="0" action="local-invalidate"/>
+       </entry-time-to-live>
+       <persistence-manager library-name="SqLiteImpl" library-function-name="createSqLiteInstance">
+         <properties>
+           <property name="PersistenceDirectory" value="SqLite"/>
+           <property name="MaxPageCount" value="1073741823"/>
+           <property name="PageSize" value="65536"/>
+         </properties>
+       </persistence-manager>
+       </region-attributes>
+
+    <region name="SubRegion11">
+         <region-attributes scope="local" caching-enabled="true" initial-capacity="23" load-factor="0.89" concurrency-level="52" lru-entries-limit = "35" disk-policy="overflows">
+         <persistence-manager library-name="SqLiteImpl" library-function-name="createSqLiteInstance">
+         <properties>
+           <property name="PersistenceDirectory" value="SqLiteSubRegion"/>
+           <property name="MaxPageCount" value="1073741823"/>
+           <property name="PageSize" value="65536"/>
+         </properties>
+        </persistence-manager>
+         </region-attributes>
+       
+    </region>
+
+    <region name="SubRegion12">
+         <region-attributes scope="local" caching-enabled="true" initial-capacity="23" load-factor="0.89" concurrency-level="52" lru-entries-limit = "35" disk-policy="overflows">
+         <persistence-manager library-name="SqLiteImpl" library-function-name="createSqLiteInstance">
+         <properties>
+           <property name="PersistenceDirectory" value="SqLiteSubRegion"/>
+           <property name="MaxPageCount" value="1073741823"/>
+           <property name="PageSize" value="65536"/>
+         </properties>
+        </persistence-manager>
+         </region-attributes>
+       
+    </region>
+
+ </root-region>
+
+
+ <root-region name= "Root2">
+    <region-attributes scope="local" caching-enabled="true" initial-capacity="16" load-factor="0.75" concurrency-level="16" lru-entries-limit = "35" disk-policy="overflows" >         
+      <region-time-to-live>
+        <expiration-attributes timeout="0" action="destroy"/>
+      </region-time-to-live>
+       <region-idle-time>
+        <expiration-attributes timeout="0" action="invalidate"/>
+      </region-idle-time>
+      <entry-time-to-live>
+        <expiration-attributes timeout="0" action="destroy"/>
+      </entry-time-to-live>
+      <entry-idle-time>
+        <expiration-attributes timeout="0" action="invalidate"/>
+      </entry-idle-time>
+       <persistence-manager library-name="SqLiteImpl" library-function-name="createSqLiteInstance">
+         <properties>
+           <property name="PersistenceDirectory" value="SqLiteRoot"/>
+           <property name="MaxPageCount" value="1073741823"/>
+           <property name="PageSize" value="65536"/>
+         </properties>
+       </persistence-manager>
+    </region-attributes>
+
+    <region name="SubRegion21">
+         <region-attributes scope="local" caching-enabled="true" initial-capacity="16" load-factor="0.75" concurrency-level="16">
+            <region-idle-time>
+               <expiration-attributes timeout="20" action="destroy"/>
+            </region-idle-time>
+            <entry-idle-time>
+               <expiration-attributes timeout="10" action="invalidate"/>
+            </entry-idle-time>
+         </region-attributes>
+    </region>
+
+    <region name="SubRegion22">
+        <region-attributes scope="local" caching-enabled="true">
+         </region-attributes>
+        <region name="SubSubRegion221">
+           <region-attributes scope="local" caching-enabled="true">
+            </region-attributes>
+        </region>
+    </region>
+
+ </root-region>
+
+  <root-region name = "Root3" >
+    <region-attributes scope="local" caching-enabled="true" initial-capacity="25" load-factor="0.32" concurrency-level="10" lru-entries-limit = "35" disk-policy="overflows">
+       <region-idle-time>
+         <expiration-attributes timeout="20" action="destroy"/> 
+       </region-idle-time>
+       <entry-idle-time>
+         <expiration-attributes timeout="10" action="invalidate"/>
+       </entry-idle-time>
+       <region-time-to-live>
+         <expiration-attributes timeout="0" action="local-destroy"/>
+       </region-time-to-live>
+       <entry-time-to-live>
+         <expiration-attributes timeout="0" action="local-invalidate"/>
+       </entry-time-to-live>
+       <persistence-manager library-name="Apache.Geode.Plugins.SqLite" library-function-name="Apache.Geode.Plugins.SqLite.SqLiteImpl&lt;System.Object, System.Object&gt;.Create" >
+       
+         <properties>
+           <property name="PersistenceDirectory" value="SqLite"/>
+           <property name="MaxPageCount" value="1073741823"/>
+           <property name="PageSize" value="65536"/>
+         </properties>
+       </persistence-manager>
+       </region-attributes>
+
+    <region name="SubRegion31">
+         <region-attributes scope="local" caching-enabled="true" initial-capacity="23" load-factor="0.89" concurrency-level="52" lru-entries-limit = "35" disk-policy="overflows">
+         <persistence-manager library-name="Apache.Geode.Plugins.SqLite" library-function-name="Apache.Geode.Plugins.SqLite.SqLiteImpl&lt;System.Object, System.Object&gt;.Create" >
+          <properties>
+           <property name="PersistenceDirectory" value="SqLiteSubRegion"/>
+           <property name="MaxPageCount" value="1073741823"/>
+           <property name="PageSize" value="65536"/>
+         </properties>
+        </persistence-manager>
+         </region-attributes>
+       
+    </region>
+
+    <region name="SubRegion32">
+         <region-attributes scope="local" caching-enabled="true" initial-capacity="23" load-factor="0.89" concurrency-level="52" lru-entries-limit = "35" disk-policy="overflows">
+         <persistence-manager library-name="Apache.Geode.Plugins.SqLite" library-function-name="Apache.Geode.Plugins.SqLite.SqLiteImpl&lt;System.Object, System.Object&gt;.Create" >
+         <properties>
+           <property name="PersistenceDirectory" value="SqLiteSubRegion"/>
+           <property name="MaxPageCount" value="1073741823"/>
+           <property name="PageSize" value="65536"/>
+         </properties>
+        </persistence-manager>
+         </region-attributes>
+       
+    </region>
+
+ </root-region>
+</client-cache>

http://git-wip-us.apache.org/repos/asf/geode-native/blob/6cbd424f/clicache/src/Apache.Geode.rc
----------------------------------------------------------------------
diff --git a/clicache/src/Apache.Geode.rc b/clicache/src/Apache.Geode.rc
new file mode 100644
index 0000000..a23e7a9
--- /dev/null
+++ b/clicache/src/Apache.Geode.rc
@@ -0,0 +1,48 @@
+/*
+ * 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.
+ */
+
+#include <verrsrc.h>
+
+#include "config.h"
+#include "version.h"
+
+VS_VERSION_INFO VERSIONINFO
+FILEVERSION    	PRODUCT_VERSION_RC
+PRODUCTVERSION 	PRODUCT_VERSION_RC
+FILEOS         	VOS_NT_WINDOWS32
+FILETYPE       	VFT_DLL
+FILESUBTYPE    	VFT2_UNKNOWN
+BEGIN
+    BLOCK "StringFileInfo"
+    BEGIN
+        BLOCK "040904b0"
+        BEGIN
+            VALUE "CompanyName",      PRODUCT_VENDOR_NAME
+            VALUE "FileDescription",  PRODUCT_NAME " .NET Library"
+            VALUE "FileVersion",      PRODUCT_VERSION
+            VALUE "InternalName",     PRODUCT_DLL_NAME
+            VALUE "LegalCopyright",   "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."
+            VALUE "OriginalFilename", PRODUCT_DLL_NAME".dll"
+            VALUE "ProductName",      PRODUCT_NAME
+            VALUE "ProductVersion",   PRODUCT_VERSION
+        END
+    END
+    BLOCK "VarFileInfo"
+    BEGIN
+        VALUE "Translation", 0x409, 1200
+    END
+END

http://git-wip-us.apache.org/repos/asf/geode-native/blob/6cbd424f/clicache/src/AttributesFactory.cpp
----------------------------------------------------------------------
diff --git a/clicache/src/AttributesFactory.cpp b/clicache/src/AttributesFactory.cpp
new file mode 100644
index 0000000..33f84ea
--- /dev/null
+++ b/clicache/src/AttributesFactory.cpp
@@ -0,0 +1,484 @@
+/*
+ * 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.
+ */
+
+#include "AttributesFactory.hpp"
+#include "Region.hpp"
+#include "impl/ManagedCacheLoader.hpp"
+#include "impl/ManagedPersistenceManager.hpp"
+#include "impl/ManagedCacheWriter.hpp"
+#include "impl/ManagedCacheListener.hpp"
+#include "impl/ManagedPartitionResolver.hpp"
+#include "impl/ManagedFixedPartitionResolver.hpp"
+#include "impl/CacheLoader.hpp"
+#include "impl/CacheWriter.hpp"
+#include "impl/CacheListener.hpp"
+#include "impl/PartitionResolver.hpp"
+#include "impl/PersistenceManagerProxy.hpp"
+#include "RegionAttributes.hpp"
+#include "ICacheLoader.hpp"
+#include "IPersistenceManager.hpp"
+#include "ICacheWriter.hpp"
+#include "IPartitionResolver.hpp"
+#include "IFixedPartitionResolver.hpp"
+#include "impl/SafeConvert.hpp"
+#include "ExceptionTypes.hpp"
+
+#include "begin_native.hpp"
+#include <memory>
+#include "end_native.hpp"
+
+namespace Apache
+{
+  namespace Geode
+  {
+    namespace Client
+    {
+      using namespace System;
+      using namespace System::Collections::Generic;
+
+      namespace native = apache::geode::client;
+
+      generic<class TKey, class TValue>
+      AttributesFactory<TKey, TValue>::AttributesFactory( Apache::Geode::Client::RegionAttributes<TKey, TValue>^ regionAttributes )
+      {
+        auto attribptr = regionAttributes->GetNative();
+        m_nativeptr = gcnew native_unique_ptr<native::AttributesFactory>(std::make_unique<native::AttributesFactory>(attribptr));
+      }
+
+      // CALLBACKS
+
+      generic<class TKey, class TValue>
+      void AttributesFactory<TKey, TValue>::SetCacheLoader( ICacheLoader<TKey, TValue>^ cacheLoader )
+      {
+        native::CacheLoaderPtr loaderptr;
+        if ( cacheLoader != nullptr ) {
+          CacheLoaderGeneric<TKey, TValue>^ clg = gcnew CacheLoaderGeneric<TKey, TValue>();
+          clg->SetCacheLoader(cacheLoader);
+          loaderptr = std::shared_ptr<native::ManagedCacheLoaderGeneric>(new native::ManagedCacheLoaderGeneric(cacheLoader));
+          ((native::ManagedCacheLoaderGeneric*)loaderptr.get())->setptr(clg);
+        }
+        try
+        {
+          m_nativeptr->get()->setCacheLoader( loaderptr );
+        }
+        finally
+        {
+          GC::KeepAlive(m_nativeptr);
+        }
+      }
+
+      generic<class TKey, class TValue>
+      void AttributesFactory<TKey, TValue>::SetCacheWriter( ICacheWriter<TKey, TValue>^ cacheWriter )
+      {
+        native::CacheWriterPtr writerptr;
+        if ( cacheWriter != nullptr ) {
+          CacheWriterGeneric<TKey, TValue>^ cwg = gcnew CacheWriterGeneric<TKey, TValue>();
+          cwg->SetCacheWriter(cacheWriter);
+          writerptr = std::shared_ptr<native::ManagedCacheWriterGeneric>(new native::ManagedCacheWriterGeneric(cacheWriter));
+          ((native::ManagedCacheWriterGeneric*)writerptr.get())->setptr(cwg);
+        }
+        try
+        {
+          m_nativeptr->get()->setCacheWriter( writerptr );
+        }
+        finally
+        {
+          GC::KeepAlive(m_nativeptr);
+        }
+      }
+
+      generic<class TKey, class TValue>
+      void AttributesFactory<TKey, TValue>::SetCacheListener( ICacheListener<TKey, TValue>^ cacheListener )
+      {
+        native::CacheListenerPtr listenerptr;
+        if ( cacheListener != nullptr ) {
+          CacheListenerGeneric<TKey, TValue>^ clg = gcnew CacheListenerGeneric<TKey, TValue>();
+          clg->SetCacheListener(cacheListener);
+          listenerptr = std::shared_ptr<native::ManagedCacheListenerGeneric>(new native::ManagedCacheListenerGeneric(cacheListener));
+          ((native::ManagedCacheListenerGeneric*)listenerptr.get())->setptr(clg);
+        }
+        try
+        {
+          m_nativeptr->get()->setCacheListener( listenerptr );
+        }
+        finally
+        {
+          GC::KeepAlive(m_nativeptr);
+        }
+      }
+
+      generic<class TKey, class TValue>
+      void AttributesFactory<TKey, TValue>::SetPartitionResolver( IPartitionResolver<TKey, TValue>^ partitionresolver )
+      {
+        native::PartitionResolverPtr resolverptr;
+        if ( partitionresolver != nullptr ) {
+          Client::IFixedPartitionResolver<TKey, TValue>^ resolver = 
+            dynamic_cast<Client::IFixedPartitionResolver<TKey, TValue>^>(partitionresolver);
+          if (resolver != nullptr) {            
+            FixedPartitionResolverGeneric<TKey, TValue>^ prg = gcnew FixedPartitionResolverGeneric<TKey, TValue>();
+            prg->SetPartitionResolver(partitionresolver);
+            resolverptr = std::shared_ptr<native::ManagedFixedPartitionResolverGeneric>(new native::ManagedFixedPartitionResolverGeneric(partitionresolver)); 
+            ((native::ManagedFixedPartitionResolverGeneric*)resolverptr.get())->setptr(prg);
+          }
+          else {            
+            PartitionResolverGeneric<TKey, TValue>^ prg = gcnew PartitionResolverGeneric<TKey, TValue>();
+            prg->SetPartitionResolver(partitionresolver);
+            resolverptr = std::shared_ptr<native::ManagedPartitionResolverGeneric>(new native::ManagedPartitionResolverGeneric(partitionresolver));
+            ((native::ManagedPartitionResolverGeneric*)resolverptr.get())->setptr(prg);            
+          }         
+        }
+        try
+        {
+          m_nativeptr->get()->setPartitionResolver( resolverptr );
+        }
+        finally
+        {
+          GC::KeepAlive(m_nativeptr);
+        }
+      }
+
+      generic<class TKey, class TValue>
+      void AttributesFactory<TKey, TValue>::SetCacheLoader( String^ libPath, String^ factoryFunctionName )
+      {
+        throw gcnew System::NotSupportedException;
+        ManagedString mg_libpath( libPath );
+        ManagedString mg_factoryFunctionName( factoryFunctionName );
+
+        try
+        {
+          m_nativeptr->get()->setCacheLoader( mg_libpath.CharPtr, mg_factoryFunctionName.CharPtr );
+        }
+        finally
+        {
+          GC::KeepAlive(m_nativeptr);
+        }
+      }
+
+      generic<class TKey, class TValue>
+      void AttributesFactory<TKey, TValue>::SetCacheWriter( String^ libPath, String^ factoryFunctionName )
+      {
+        throw gcnew System::NotSupportedException;
+        ManagedString mg_libpath( libPath );
+        ManagedString mg_factoryFunctionName( factoryFunctionName );
+
+        try
+        {
+          m_nativeptr->get()->setCacheWriter( mg_libpath.CharPtr, mg_factoryFunctionName.CharPtr );
+        }
+        finally
+        {
+          GC::KeepAlive(m_nativeptr);
+        }
+      }
+
+      generic<class TKey, class TValue>
+      void AttributesFactory<TKey, TValue>::SetCacheListener( String^ libPath, String^ factoryFunctionName )
+      {
+        throw gcnew System::NotSupportedException;
+        ManagedString mg_libpath( libPath );
+        ManagedString mg_factoryFunctionName( factoryFunctionName );
+
+        try
+        {
+          m_nativeptr->get()->setCacheListener( mg_libpath.CharPtr, mg_factoryFunctionName.CharPtr );
+        }
+        finally
+        {
+          GC::KeepAlive(m_nativeptr);
+        }
+      }
+
+      generic<class TKey, class TValue>
+      void AttributesFactory<TKey, TValue>::SetPartitionResolver( String^ libPath, String^ factoryFunctionName )
+      {
+        throw gcnew System::NotSupportedException;
+        ManagedString mg_libpath( libPath );
+        ManagedString mg_factoryFunctionName( factoryFunctionName );
+
+        try
+        {
+          m_nativeptr->get()->setPartitionResolver( mg_libpath.CharPtr, mg_factoryFunctionName.CharPtr );
+        }
+        finally
+        {
+          GC::KeepAlive(m_nativeptr);
+        }
+      }
+
+      // EXPIRATION ATTRIBUTES
+
+      generic<class TKey, class TValue>
+      void AttributesFactory<TKey, TValue>::SetEntryIdleTimeout( ExpirationAction action, System::UInt32 idleTimeout )
+      {
+        try
+        {
+          m_nativeptr->get()->setEntryIdleTimeout(static_cast<native::ExpirationAction::Action>( action ), idleTimeout );
+        }
+        finally
+        {
+          GC::KeepAlive(m_nativeptr);
+        }
+      }
+
+      generic<class TKey, class TValue>
+      void AttributesFactory<TKey, TValue>::SetEntryTimeToLive( ExpirationAction action, System::UInt32 timeToLive )
+      {
+        try
+        {
+          m_nativeptr->get()->setEntryTimeToLive( static_cast<native::ExpirationAction::Action>( action ), timeToLive );
+        }
+        finally
+        {
+          GC::KeepAlive(m_nativeptr);
+        }
+      }
+
+      generic<class TKey, class TValue>
+      void AttributesFactory<TKey, TValue>::SetRegionIdleTimeout( ExpirationAction action, System::UInt32 idleTimeout )
+      {
+        try
+        {
+          m_nativeptr->get()->setRegionIdleTimeout( static_cast<native::ExpirationAction::Action>( action ), idleTimeout );
+        }
+        finally
+        {
+          GC::KeepAlive(m_nativeptr);
+        }
+      }
+
+      generic<class TKey, class TValue>
+      void AttributesFactory<TKey, TValue>::SetRegionTimeToLive( ExpirationAction action, System::UInt32 timeToLive )
+      {
+        try
+        {
+          m_nativeptr->get()->setRegionTimeToLive( static_cast<native::ExpirationAction::Action>( action ), timeToLive );
+        }
+        finally
+        {
+          GC::KeepAlive(m_nativeptr);
+        }
+      }
+
+      // PERSISTENCE
+      generic<class TKey, class TValue>
+      void AttributesFactory<TKey, TValue>::SetPersistenceManager(IPersistenceManager<TKey, TValue>^ persistenceManager, Properties<String^, String^>^ config )
+      {
+        native::PersistenceManagerPtr persistenceManagerptr;
+        if ( persistenceManager != nullptr ) {
+          PersistenceManagerGeneric<TKey, TValue>^ clg = gcnew PersistenceManagerGeneric<TKey, TValue>();
+          clg->SetPersistenceManager(persistenceManager);
+          persistenceManagerptr = std::shared_ptr<native::ManagedPersistenceManagerGeneric>(new native::ManagedPersistenceManagerGeneric(persistenceManager));
+          ((native::ManagedPersistenceManagerGeneric*)persistenceManagerptr.get())->setptr(clg);
+        }
+         try
+         {
+           m_nativeptr->get()->setPersistenceManager( persistenceManagerptr, config->GetNative() );
+         }
+         finally
+         {
+           GC::KeepAlive(m_nativeptr);
+         }
+      }
+      
+      generic<class TKey, class TValue>
+      void AttributesFactory<TKey, TValue>::SetPersistenceManager(IPersistenceManager<TKey, TValue>^ persistenceManager )
+      {
+        SetPersistenceManager(persistenceManager, nullptr);
+      }
+        
+      generic<class TKey, class TValue>
+      void AttributesFactory<TKey, TValue>::SetPersistenceManager( String^ libPath,
+        String^ factoryFunctionName )
+      {        
+        SetPersistenceManager( libPath, factoryFunctionName, nullptr );
+      }
+
+      generic<class TKey, class TValue>
+      void AttributesFactory<TKey, TValue>::SetPersistenceManager( String^ libPath,
+        String^ factoryFunctionName, Properties<String^, String^>^ config )
+      {        
+        ManagedString mg_libpath( libPath );
+        ManagedString mg_factoryFunctionName( factoryFunctionName );
+
+        try
+        {
+          m_nativeptr->get()->setPersistenceManager(mg_libpath.CharPtr, mg_factoryFunctionName.CharPtr, config->GetNative());
+        }
+        finally
+        {
+          GC::KeepAlive(m_nativeptr);
+        }
+          
+      }
+
+      // STORAGE ATTRIBUTES
+
+      generic<class TKey, class TValue>
+      void AttributesFactory<TKey, TValue>::SetPoolName( String^ poolName )
+      {
+        ManagedString mg_poolName( poolName );
+
+        try
+        {
+          m_nativeptr->get()->setPoolName( mg_poolName.CharPtr );
+        }
+        finally
+        {
+          GC::KeepAlive(m_nativeptr);
+        }
+      }
+
+      // MAP ATTRIBUTES
+
+      generic<class TKey, class TValue>
+      void AttributesFactory<TKey, TValue>::SetInitialCapacity( System::Int32 initialCapacity )
+      {
+        _GF_MG_EXCEPTION_TRY2/* due to auto replace */
+
+          try
+          {
+            m_nativeptr->get()->setInitialCapacity( initialCapacity );
+          }
+          finally
+          {
+            GC::KeepAlive(m_nativeptr);
+          }
+
+        _GF_MG_EXCEPTION_CATCH_ALL2/* due to auto replace */
+      }
+
+      generic<class TKey, class TValue>
+      void AttributesFactory<TKey, TValue>::SetLoadFactor( Single loadFactor )
+      {
+        _GF_MG_EXCEPTION_TRY2/* due to auto replace */
+
+          try
+          {
+            m_nativeptr->get()->setLoadFactor( loadFactor );
+          }
+          finally
+          {
+            GC::KeepAlive(m_nativeptr);
+          }
+
+        _GF_MG_EXCEPTION_CATCH_ALL2/* due to auto replace */
+      }
+
+      generic<class TKey, class TValue>
+      void AttributesFactory<TKey, TValue>::SetConcurrencyLevel( System::Int32 concurrencyLevel )
+      {
+        _GF_MG_EXCEPTION_TRY2/* due to auto replace */
+
+          try
+          {
+            m_nativeptr->get()->setConcurrencyLevel( concurrencyLevel );
+          }
+          finally
+          {
+            GC::KeepAlive(m_nativeptr);
+          }
+
+        _GF_MG_EXCEPTION_CATCH_ALL2/* due to auto replace */
+      }
+
+      generic<class TKey, class TValue>
+      void AttributesFactory<TKey, TValue>::SetLruEntriesLimit( System::UInt32 entriesLimit )
+      {
+        try
+        {
+          m_nativeptr->get()->setLruEntriesLimit( entriesLimit );
+        }
+        finally
+        {
+          GC::KeepAlive(m_nativeptr);
+        }
+      }
+
+      generic<class TKey, class TValue>
+      void AttributesFactory<TKey, TValue>::SetDiskPolicy( DiskPolicyType diskPolicy )
+      {
+        try
+        {
+          m_nativeptr->get()->setDiskPolicy(static_cast<native::DiskPolicyType::PolicyType>( diskPolicy ) );
+        }
+        finally
+        {
+          GC::KeepAlive(m_nativeptr);
+        }
+      }
+
+      generic<class TKey, class TValue>
+      void AttributesFactory<TKey, TValue>::SetCachingEnabled( bool cachingEnabled )
+      {
+        try
+        {
+          m_nativeptr->get()->setCachingEnabled( cachingEnabled );
+        }
+        finally
+        {
+          GC::KeepAlive(m_nativeptr);
+        }
+      }
+
+      generic<class TKey, class TValue>
+      void AttributesFactory<TKey, TValue>::SetCloningEnabled( bool cloningEnabled )
+      {
+        try
+        {
+          m_nativeptr->get()->setCloningEnabled( cloningEnabled );
+        }
+        finally
+        {
+          GC::KeepAlive(m_nativeptr);
+        }
+      }
+
+      generic<class TKey, class TValue>
+      void  AttributesFactory<TKey, TValue>::SetConcurrencyChecksEnabled( bool concurrencyChecksEnabled )
+      {
+        try
+        {
+          m_nativeptr->get()->setConcurrencyChecksEnabled( concurrencyChecksEnabled );
+        }
+        finally
+        {
+          GC::KeepAlive(m_nativeptr);
+        }
+      }
+      // FACTORY METHOD
+
+      generic<class TKey, class TValue>
+      Apache::Geode::Client::RegionAttributes<TKey, TValue>^ AttributesFactory<TKey, TValue>::CreateRegionAttributes()
+      {
+        _GF_MG_EXCEPTION_TRY2/* due to auto replace */
+
+          try
+          {
+            native::RegionAttributesPtr nativeptr = m_nativeptr->get()->createRegionAttributes();
+            return Apache::Geode::Client::RegionAttributes<TKey, TValue>::Create(nativeptr);
+          }
+          finally
+          {
+            GC::KeepAlive(m_nativeptr);
+          }
+
+        _GF_MG_EXCEPTION_CATCH_ALL2/* due to auto replace */
+      }
+    }  // namespace Client
+  }  // namespace Geode
+}  // namespace Apache
+