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<System.Object, System.Object>.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<System.Object, System.Object>.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<System.Object, System.Object>.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 +