You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by mm...@apache.org on 2019/02/27 18:54:29 UTC
[geode-native] branch develop updated: GEODE-4340: authinit (#441)
This is an automated email from the ASF dual-hosted git repository.
mmartell pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode-native.git
The following commit(s) were added to refs/heads/develop by this push:
new b9d803c GEODE-4340: authinit (#441)
b9d803c is described below
commit b9d803c2b5812bd0862ccd9c30533d4d3076adc8
Author: Michael Martell <mm...@pivotal.io>
AuthorDate: Wed Feb 27 10:54:25 2019 -0800
GEODE-4340: authinit (#441)
* Added authInit cpp example
* Normalized README.md for all examples
* Simplified BUILDING.md instructions to require fewer steps and parameters
* Copying startup and shutdown scripts into example install directories
* Eliminated the need to modify the PATH to get cpp examples to run
* Support new folder names for examples
* Use find module for GeodeNative to copy apach-geode.dll to example build dir
Co-Authored by: Matthew Reddington <mr...@pivotal.io>
---
examples/BUILD-EXAMPLES.md | 14 +--
examples/cpp/CMakeLists.txt | 5 +-
examples/cpp/CMakeLists.txt.cpp_example.in | 11 ++
examples/cpp/CMakeLists.txt.in | 1 +
examples/cpp/authinitialize/README.md | 65 +++++++++++
.../cpp/authinitialize/exampleAuthInitialize.cpp | 42 +++++++
.../cpp/authinitialize/exampleAuthInitialize.hpp | 34 ++++++
examples/cpp/authinitialize/main.cpp | 58 ++++++++++
examples/cpp/authinitialize/startserver.ps1 | 45 ++++++++
examples/cpp/authinitialize/startserver.sh | 37 +++++++
.../stopserver.ps1} | 36 +++---
.../stopserver.sh} | 26 +++--
examples/cpp/continuousquery/README.md | 117 ++++++++++----------
.../{CMakeLists.txt => startserver.ps1} | 36 +++---
.../{CMakeLists.txt => stopserver.ps1} | 36 +++---
examples/cpp/dataserializable/README.md | 122 ++++++++++-----------
.../startserver.ps1} | 36 +++---
.../stopserver.ps1} | 36 +++---
examples/cpp/function-execution/README.md | 79 ++++++-------
examples/cpp/function-execution/startserver.ps1 | 39 +++++++
.../stopserver.ps1} | 38 ++++---
examples/cpp/pdxserializable/README.md | 116 ++++++++++----------
.../startserver.ps1} | 36 +++---
.../stopserver.ps1} | 36 +++---
examples/cpp/pdxserializer/README.md | 108 +++++++++---------
.../startserver.ps1} | 36 +++---
.../stopserver.ps1} | 36 +++---
examples/cpp/put-get-remove/README.md | 110 ++++++++++---------
.../startserver.ps1} | 36 +++---
.../stopserver.ps1} | 36 +++---
examples/cpp/remotequery/README.md | 112 ++++++++++---------
.../CMakeLists.txt => remotequery/startserver.ps1} | 36 +++---
.../CMakeLists.txt => remotequery/stopserver.ps1} | 36 +++---
examples/cpp/transaction/README.md | 110 ++++++++++---------
.../CMakeLists.txt => transaction/startserver.ps1} | 36 +++---
.../CMakeLists.txt => transaction/stopserver.ps1} | 23 ++--
.../authiniialize/stopserver.ps1} | 36 +++---
examples/dotnet/authinitialize/README.md | 52 ++++++---
examples/dotnet/continuousquery/README.md | 69 ++++++++----
examples/dotnet/dataserializable/README.md | 86 +++++++--------
examples/dotnet/functionexecution/README.md | 63 ++++++++---
examples/dotnet/pdxautoserializer/README.md | 57 +++++++---
examples/dotnet/pdxserializable/README.md | 57 +++++++---
examples/dotnet/put-get-remove/README.md | 58 +++++++---
examples/dotnet/remotequery/README.md | 65 +++++++----
45 files changed, 1539 insertions(+), 820 deletions(-)
diff --git a/examples/BUILD-EXAMPLES.md b/examples/BUILD-EXAMPLES.md
index d05079c..dfae507 100644
--- a/examples/BUILD-EXAMPLES.md
+++ b/examples/BUILD-EXAMPLES.md
@@ -4,6 +4,7 @@
* Install [Apache Geode](https://geode.apache.org)
* Install [CMake](https://cmake.org/download/)
* Build and install [Apache Geode Native](https://github.com/apache/geode-native)
+* Set `GEODE_HOME` to the install directory of Apache Geode
* **For Windows:** Visual Studio 2017
* Optional: OpenSSL (to build and run the SSL examples)
@@ -26,14 +27,11 @@
**For Windows:** Include options that specify the generator, the architecture toolset, and the path to the Geode Native installation:
- ```
- $ cd workspace/examples/
- $ mkdir build
- $ cd build
- $ cmake .. -G"Visual Studio 15 2017 Win64" -Thost=x64 -DGeodeNative_ROOT="<NC-install-root-dir>" -DGEODE_ROOT="<geode-install-dir>"
- $ cmake --build . -- <optional parallelism parameter>
- ```
- where the optional parallelism parameter is `/m`.
+ $ cd workspace/examples/
+ $ mkdir build
+ $ cd build
+ $ cmake <geode-native-install-dir>/examples -G"Visual Studio 15 2017 Win64"
+ $ cmake --build .
## Running the Examples
To run an example,
diff --git a/examples/cpp/CMakeLists.txt b/examples/cpp/CMakeLists.txt
index b87067d..d90e806 100644
--- a/examples/cpp/CMakeLists.txt
+++ b/examples/cpp/CMakeLists.txt
@@ -30,6 +30,9 @@ function(add_example)
@ONLY)
endfunction()
+add_example(NAME authinitialize
+ SOURCE main.cpp exampleAuthInitialize.hpp exampleAuthInitialize.cpp)
+
add_example(NAME continuousquery
SOURCE main.cpp Order.cpp Order.hpp)
@@ -54,7 +57,7 @@ add_example(NAME remotequery
add_example(NAME transaction
SOURCE main.cpp)
- install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
DESTINATION examples/
PATTERN "./*.in" EXCLUDE
PATTERN "CMakeFiles" EXCLUDE
diff --git a/examples/cpp/CMakeLists.txt.cpp_example.in b/examples/cpp/CMakeLists.txt.cpp_example.in
index 2f251ab..d45f969 100644
--- a/examples/cpp/CMakeLists.txt.cpp_example.in
+++ b/examples/cpp/CMakeLists.txt.cpp_example.in
@@ -24,9 +24,20 @@ find_package(@PRODUCT_NAME_NOSPACE@ REQUIRED COMPONENTS cpp)
add_executable(${PROJECT_NAME} @ADD_EXAMPLE_SOURCE@)
+configure_file("startserver.ps1" ${CMAKE_CURRENT_BINARY_DIR} COPYONLY)
+configure_file("stopserver.ps1" ${CMAKE_CURRENT_BINARY_DIR} COPYONLY)
configure_file("startserver.sh" ${CMAKE_CURRENT_BINARY_DIR} COPYONLY)
configure_file("stopserver.sh" ${CMAKE_CURRENT_BINARY_DIR} COPYONLY)
+configure_file("README.md" ${CMAKE_CURRENT_BINARY_DIR} COPYONLY)
target_link_libraries(${PROJECT_NAME}
PUBLIC
@PRODUCT_NAME_NOSPACE@::cpp)
+
+if(WIN32)
+ add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy
+ $<SH...@.dll>
+ $<SHELL_PATH:$<TARGET_FILE_DIR:${PROJECT_NAME}>>
+ )
+endif()
\ No newline at end of file
diff --git a/examples/cpp/CMakeLists.txt.in b/examples/cpp/CMakeLists.txt.in
index a9852a1..3cf7367 100644
--- a/examples/cpp/CMakeLists.txt.in
+++ b/examples/cpp/CMakeLists.txt.in
@@ -17,6 +17,7 @@ cmake_minimum_required(VERSION 3.10)
project(@PRODUCT_DLL_NAME@.Cpp.Examples LANGUAGES NONE)
+add_subdirectory(authinitialize)
add_subdirectory(continuousquery)
add_subdirectory(dataserializable)
add_subdirectory(function-execution)
diff --git a/examples/cpp/authinitialize/README.md b/examples/cpp/authinitialize/README.md
new file mode 100644
index 0000000..8c5826a
--- /dev/null
+++ b/examples/cpp/authinitialize/README.md
@@ -0,0 +1,65 @@
+# AuthInitialize Example
+This example shows how to create and register a custom `AuthIntialize` authentication
+handler on the client that authenticates against a server that was started with the corresponding authenticator.
+
+## Prerequisites
+* Install [Apache Geode](https://geode.apache.org)
+* Build and install [Apache Geode Native](https://github.com/apache/geode-native)
+* Apache Geode Native examples, built and installed
+* Set `GEODE_HOME` to the install directory of Apache Geode
+
+## Running
+1. From a command shell, set the current directory to the `authinitialize` directory in your example workspace.
+
+ ```console
+ $ cd workspace/examples/cpp/authinitialize
+ ```
+
+2. Run the `startserver` script to start the Geode cluster with authentication and create a region.
+
+ For Windows cmd:
+
+ ```console
+ $ powershell.exe -File startserver.ps1
+ ```
+
+ For Windows Powershell:
+
+ ```console
+ $ startserver.ps1
+ ```
+
+ For Bash:
+
+ ```console
+ $ ./startserver.sh
+ ```
+
+3. Execute `authinitialize`, expect the following output:
+
+ ```text
+ ExampleAuthInitialize::ExampleAuthInitialize called
+ ExampleAuthInitialize::getCredentials called
+ a = 1
+ b = 2
+ ```
+
+4. Run the `stopserver` script to gracefully shutdown the Geode cluster.
+
+ For Windows cmd:
+
+ ```console
+ $ powershell.exe -File stopserver.ps1
+ ```
+
+ For Windows Powershell:
+
+ ```console
+ $ stopserver.ps1
+ ```
+
+ For Bash:
+
+ ```console
+ $ ./stopserver.sh
+ ```
\ No newline at end of file
diff --git a/examples/cpp/authinitialize/exampleAuthInitialize.cpp b/examples/cpp/authinitialize/exampleAuthInitialize.cpp
new file mode 100644
index 0000000..a3d6522
--- /dev/null
+++ b/examples/cpp/authinitialize/exampleAuthInitialize.cpp
@@ -0,0 +1,42 @@
+/*
+ * 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 "exampleAuthInitialize.hpp"
+
+#include <iostream>
+
+using apache::geode::client::AuthInitialize;
+using apache::geode::client::Properties;
+
+std::shared_ptr<Properties> ExampleAuthInitialize::getCredentials(
+ const std::shared_ptr<Properties>& securityprops,
+ const std::string& /*server*/) {
+ std::cout << "ExampleAuthInitialize::GetCredentials called\n";
+
+ securityprops->insert("security-username", "root");
+ securityprops->insert("security-password", "root");
+
+ return securityprops;
+}
+
+void ExampleAuthInitialize::close() {
+ std::cout << "ExampleAuthInitialize::close called\n";
+}
+
+ExampleAuthInitialize::ExampleAuthInitialize() : AuthInitialize() {
+ std::cout << "ExampleAuthInitialize::ExampleAuthInitialize called\n";
+}
diff --git a/examples/cpp/authinitialize/exampleAuthInitialize.hpp b/examples/cpp/authinitialize/exampleAuthInitialize.hpp
new file mode 100644
index 0000000..11f8dea
--- /dev/null
+++ b/examples/cpp/authinitialize/exampleAuthInitialize.hpp
@@ -0,0 +1,34 @@
+/*
+ * 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 <memory>
+#include <string>
+
+#include <geode/AuthInitialize.hpp>
+#include <geode/Properties.hpp>
+
+class ExampleAuthInitialize : public apache::geode::client::AuthInitialize {
+ std::shared_ptr<apache::geode::client::Properties> getCredentials(
+ const std::shared_ptr<apache::geode::client::Properties>& securityprops,
+ const std::string& server) override;
+
+ void close() override;
+
+ public:
+ ExampleAuthInitialize();
+ ~ExampleAuthInitialize() noexcept = default;
+};
\ No newline at end of file
diff --git a/examples/cpp/authinitialize/main.cpp b/examples/cpp/authinitialize/main.cpp
new file mode 100644
index 0000000..3b27e53
--- /dev/null
+++ b/examples/cpp/authinitialize/main.cpp
@@ -0,0 +1,58 @@
+/*
+ * 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 <iostream>
+
+#include <geode/CacheFactory.hpp>
+#include <geode/PoolManager.hpp>
+#include <geode/RegionFactory.hpp>
+#include <geode/RegionShortcut.hpp>
+
+#include "exampleAuthInitialize.hpp"
+
+using apache::geode::client::CacheFactory;
+using apache::geode::client::RegionShortcut;
+using apache::geode::client::CacheableString;
+
+int main(int argc, char** argv) {
+ auto cache = CacheFactory()
+ .set("log-level", "none")
+ .setAuthInitialize(std::make_unique<ExampleAuthInitialize>())
+ .create();
+ auto pool = cache.getPoolManager()
+ .createFactory()
+ .addLocator("localhost", 10334)
+ .create("pool");
+ auto region = cache.createRegionFactory(RegionShortcut::PROXY)
+ .setPoolName("pool")
+ .create("region");
+
+ region->put("a", "1");
+ region->put("b", "2");
+
+ auto a = region->get("a");
+ auto b = region->get("b");
+
+ std::cout << "a = "
+ << std::dynamic_pointer_cast<CacheableString>(a)->value()
+ << std::endl;
+ std::cout << "b = "
+ << std::dynamic_pointer_cast<CacheableString>(b)->value()
+ << std::endl;
+
+ cache.close();
+}
diff --git a/examples/cpp/authinitialize/startserver.ps1 b/examples/cpp/authinitialize/startserver.ps1
new file mode 100644
index 0000000..354e7c3
--- /dev/null
+++ b/examples/cpp/authinitialize/startserver.ps1
@@ -0,0 +1,45 @@
+# 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.
+
+$GFSH_PATH = ""
+if (Get-Command gfsh -ErrorAction SilentlyContinue)
+{
+ $GFSH_PATH = "gfsh"
+}
+else
+{
+ if (-not (Test-Path env:GEODE_HOME))
+ {
+ Write-Host "Could not find gfsh. Please set the GEODE_HOME path. e.g. "
+ Write-Host "(Powershell) `$env:GEODE_HOME = <path to Geode>"
+ Write-Host " OR"
+ Write-Host "(Command-line) set %GEODE_HOME% = <path to Geode>"
+ }
+ else
+ {
+ $GFSH_PATH = "$env:GEODE_HOME\bin\gfsh.bat"
+ }
+}
+
+if ($GFSH_PATH -ne "")
+{
+ # Set this variable to include your java object that implements the Authenticator class
+ $RESOLVEDPATH = Resolve-Path -Path "$PSScriptRoot/../../utilities/example.jar"
+
+ # Set this variable to the full name of your Authenticator.create function
+ $AUTHENTICATOR = 'javaobject.SimpleAuthenticator.create'
+
+ Invoke-Expression "$GFSH_PATH -e 'start locator --name=locator --dir=$PSScriptRoot\locator' -e 'start server --name=server --classpath=$RESOLVEDPATH --J=-Dgemfire.security-client-authenticator=$AUTHENTICATOR --dir=$PSScriptRoot\server' -e 'create region --name=region --type=PARTITION'"
+}
diff --git a/examples/cpp/authinitialize/startserver.sh b/examples/cpp/authinitialize/startserver.sh
new file mode 100644
index 0000000..9e38174
--- /dev/null
+++ b/examples/cpp/authinitialize/startserver.sh
@@ -0,0 +1,37 @@
+# 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.
+
+#!/usr/bin/env bash
+GFSH_PATH=""
+which gfsh 2> /dev/null
+
+if [ $? -eq 0 ]; then
+ GFSH_PATH="gfsh"
+else
+ if [ "$GEODE_HOME" == "" ]; then
+ echo "Could not find gfsh. Please set the GEODE_HOME path."
+ echo "e.g. export GEODE_HOME=<path to Geode>"
+ else
+ GFSH_PATH=$GEODE_HOME/bin/gfsh
+ fi
+fi
+
+# Set this variable to include your java object that implements the Authenticator class
+RESOLVEDPATH = "../../utilities/example.jar"
+
+# Set this variable to the full name of your Authenticator.create function
+AUTHENTICATOR = 'javaobject.SimpleAuthenticator.create'
+
+$GFSH_PATH -e "start locator --name=locator" -e "start server --name=server --classpath=${RESOLVEDPATH} --J=-Dgemfire.security-client-authenticator=$AUTHENTICATOR" -e "create region --name=region --type=PARTITION"
diff --git a/examples/cpp/dataserializable/CMakeLists.txt b/examples/cpp/authinitialize/stopserver.ps1
similarity index 54%
rename from examples/cpp/dataserializable/CMakeLists.txt
rename to examples/cpp/authinitialize/stopserver.ps1
index 22ac649..ec2c218 100644
--- a/examples/cpp/dataserializable/CMakeLists.txt
+++ b/examples/cpp/authinitialize/stopserver.ps1
@@ -13,17 +13,27 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-cmake_minimum_required(VERSION 3.5)
+$GFSH_PATH = ""
+if (Get-Command gfsh -ErrorAction SilentlyContinue)
+{
+ $GFSH_PATH = "gfsh"
+}
+else
+{
+ if (-not (Test-Path env:GEODE_HOME))
+ {
+ Write-Host "Could not find gfsh. Please set the GEODE_HOME path. e.g. "
+ Write-Host "(Powershell) `$env:GEODE_HOME = <path to Geode>"
+ Write-Host " OR"
+ Write-Host "(Command-line) set %GEODE_HOME% = <path to Geode>"
+ }
+ else
+ {
+ $GFSH_PATH = "$env:GEODE_HOME\bin\gfsh.bat"
+ }
+}
-project(customdataserializable LANGUAGES CXX)
-
-set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../../cmake)
-set(CMAKE_CXX_STANDARD 11)
-
-find_package(GeodeNative REQUIRED COMPONENTS cpp)
-
-add_executable(${PROJECT_NAME} main.cpp;Order.cpp;Order.hpp)
-
-target_link_libraries(${PROJECT_NAME}
- PUBLIC
- GeodeNative::cpp)
+if ($GFSH_PATH -ne "")
+{
+ Invoke-Expression "$GFSH_PATH -e 'connect' -e 'destroy region --name=region' -e 'stop server --name=server' -e 'stop locator --name=locator'"
+}
\ No newline at end of file
diff --git a/examples/cpp/continuousquery/CMakeLists.txt b/examples/cpp/authinitialize/stopserver.sh
similarity index 65%
copy from examples/cpp/continuousquery/CMakeLists.txt
copy to examples/cpp/authinitialize/stopserver.sh
index 11b5ac6..67a0f85 100644
--- a/examples/cpp/continuousquery/CMakeLists.txt
+++ b/examples/cpp/authinitialize/stopserver.sh
@@ -13,17 +13,19 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-cmake_minimum_required(VERSION 3.5)
+#!/usr/bin/env bash
+GFSH_PATH=""
+which gfsh 2> /dev/null
-project(continuousquery LANGUAGES CXX)
+if [ $? -eq 0 ]; then
+ GFSH_PATH="gfsh"
+else
+ if [ "$GEODE_HOME" == "" ]; then
+ echo "Could not find gfsh. Please set the GEODE_HOME path."
+ echo "e.g. export GEODE_HOME=<path to Geode>"
+ else
+ GFSH_PATH=$GEODE_HOME/bin/gfsh
+ fi
+fi
-set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../../cmake)
-set(CMAKE_CXX_STANDARD 11)
-
-find_package(GeodeNative REQUIRED COMPONENTS cpp)
-
-add_executable(${PROJECT_NAME} main.cpp;Order.cpp;Order.hpp)
-
-target_link_libraries(${PROJECT_NAME}
- PUBLIC
- GeodeNative::cpp)
+$GFSH_PATH -e "connect" -e "stop server --name=server" -e "stop locator --name=locator"
diff --git a/examples/cpp/continuousquery/README.md b/examples/cpp/continuousquery/README.md
index 59d557b..fdb2076 100644
--- a/examples/cpp/continuousquery/README.md
+++ b/examples/cpp/continuousquery/README.md
@@ -2,60 +2,67 @@
This is a simple example showing how to create a continuous query.
## Prerequisites
-* An installation of Apache Geode.
-* Apache Geode Native, built and installed.
-* Apache Geode Native examples, built.
-* A `GEODE_HOME` environment variable set to the location of the Apache Geode installation.
+* Install [Apache Geode](https://geode.apache.org)
+* Build and install [Apache Geode Native](https://github.com/apache/geode-native)
+* Apache Geode Native examples, built and installed
+* Set `GEODE_HOME` to the install directory of Apache Geode
## Running
-1. Set the current directory to the `continuousquery` directory in your installed example workspace.
-
- ```
- $ cd workspace/examples/cpp/continuousquery
- ```
-
-1. Run the `startserver.sh` script to start the Geode locator, server, and create a region.
-
- ```
- $ sh ./startserver.sh
- /Users/user/geode/bin/gfsh
-
- (1) Executing - start locator --name=locator
- ...
- (2) Executing - start server --name=server
- ...
- (3) Executing - create region --name=custom_orders --type=PARTITION
-
- Member | Status
- ------ | -------------------------------------------
- server | Region "/custom_orders" created on "server"
- ```
-
-1. Execute `continuousquery`:
-
- ```
- $ ./continuousquery
- Executing continuous query
- Create orders
- Putting and changing Order objects in the region
- MyCqListener::OnEvent called with CREATE, key[Order2], value(2, product y, 37)
- MyCqListener::OnEvent called with CREATE, key[Order4], value(4, product z, 102)
- MyCqListener::OnEvent called with CREATE, key[Order6], value(6, product z, 42)
- MyCqListener::OnEvent called with UPDATE, key[Order2], value(2, product y, 45)
- MyCqListener::OnEvent called with DESTROY, key[Order2], value(2, product y, 29)
- MyCqListener::OnEvent called with DESTROY, key[Order6], value is nullptr
- close called
- ```
-
-1. Stop the server
-
- ```
- $ sh ./stopserver.sh
- /Users/user/geode/bin/gfsh
- (1) Executing - connect
- ...
- (2) Executing - stop server --name=server
- ...
- (3) Executing - stop locator --name=locator
- ....
- ```
+1. From a command shell, set the current directory to the `continuousquery` directory in your example workspace.
+
+ ```console
+ $ cd workspace/examples/cpp/continuousquery
+ ```
+
+2. Run the `startserver` script to start the Geode cluster with authentication and create a region.
+
+ For Windows cmd:
+
+ ```console
+ $ powershell.exe -File startserver.ps1
+ ```
+
+ For Windows Powershell:
+
+ ```console
+ $ startserver.ps1
+ ```
+
+ For Bash:
+
+ ```console
+ $ ./startserver.sh
+ ```
+
+3. Execute `continuousquery`, expect the following output:
+
+ Executing continuous query
+ Create orders
+ Putting and changing Order objects in the region
+ MyCqListener::OnEvent called with CREATE, key[Order2], value(2, product y, 37)
+ MyCqListener::OnEvent called with CREATE, key[Order4], value(4, product z, 102)
+ MyCqListener::OnEvent called with CREATE, key[Order6], value(6, product z, 42)
+ MyCqListener::OnEvent called with UPDATE, key[Order2], value(2, product y, 45)
+ MyCqListener::OnEvent called with DESTROY, key[Order2], value(2, product y, 29)
+ MyCqListener::OnEvent called with DESTROY, key[Order6], value is nullptr
+ close called
+
+4. Run the `stopserver` script to gracefully shutdown the Geode cluster.
+
+ For Windows cmd:
+
+ ```console
+ $ powershell.exe -File stopserver.ps1
+ ```
+
+ For Windows Powershell:
+
+ ```console
+ $ stopserver.ps1
+ ```
+
+ For Bash:
+
+ ```console
+ $ ./stopserver.sh
+ ```
\ No newline at end of file
diff --git a/examples/cpp/continuousquery/CMakeLists.txt b/examples/cpp/continuousquery/startserver.ps1
similarity index 52%
copy from examples/cpp/continuousquery/CMakeLists.txt
copy to examples/cpp/continuousquery/startserver.ps1
index 11b5ac6..347eda1 100644
--- a/examples/cpp/continuousquery/CMakeLists.txt
+++ b/examples/cpp/continuousquery/startserver.ps1
@@ -13,17 +13,27 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-cmake_minimum_required(VERSION 3.5)
+$GFSH_PATH = ""
+if (Get-Command gfsh -ErrorAction SilentlyContinue)
+{
+ $GFSH_PATH = "gfsh"
+}
+else
+{
+ if (-not (Test-Path env:GEODE_HOME))
+ {
+ Write-Host "Could not find gfsh. Please set the GEODE_HOME path. e.g. "
+ Write-Host "(Powershell) `$env:GEODE_HOME = <path to Geode>"
+ Write-Host " OR"
+ Write-Host "(Command-line) set %GEODE_HOME% = <path to Geode>"
+ }
+ else
+ {
+ $GFSH_PATH = "$env:GEODE_HOME\bin\gfsh.bat"
+ }
+}
-project(continuousquery LANGUAGES CXX)
-
-set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../../cmake)
-set(CMAKE_CXX_STANDARD 11)
-
-find_package(GeodeNative REQUIRED COMPONENTS cpp)
-
-add_executable(${PROJECT_NAME} main.cpp;Order.cpp;Order.hpp)
-
-target_link_libraries(${PROJECT_NAME}
- PUBLIC
- GeodeNative::cpp)
+if ($GFSH_PATH -ne "")
+{
+ Invoke-Expression "$GFSH_PATH -e 'start locator --name=locator --dir=$PSScriptRoot\locator' -e 'start server --name=server --dir=$PSScriptRoot\server' -e 'create region --name=example_orderobject --type=PARTITION'"
+}
\ No newline at end of file
diff --git a/examples/cpp/continuousquery/CMakeLists.txt b/examples/cpp/continuousquery/stopserver.ps1
similarity index 54%
copy from examples/cpp/continuousquery/CMakeLists.txt
copy to examples/cpp/continuousquery/stopserver.ps1
index 11b5ac6..10d2352 100644
--- a/examples/cpp/continuousquery/CMakeLists.txt
+++ b/examples/cpp/continuousquery/stopserver.ps1
@@ -13,17 +13,27 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-cmake_minimum_required(VERSION 3.5)
+$GFSH_PATH = ""
+if (Get-Command gfsh -ErrorAction SilentlyContinue)
+{
+ $GFSH_PATH = "gfsh"
+}
+else
+{
+ if (-not (Test-Path env:GEODE_HOME))
+ {
+ Write-Host "Could not find gfsh. Please set the GEODE_HOME path. e.g. "
+ Write-Host "(Powershell) `$env:GEODE_HOME = <path to Geode>"
+ Write-Host " OR"
+ Write-Host "(Command-line) set %GEODE_HOME% = <path to Geode>"
+ }
+ else
+ {
+ $GFSH_PATH = "$env:GEODE_HOME\bin\gfsh.bat"
+ }
+}
-project(continuousquery LANGUAGES CXX)
-
-set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../../cmake)
-set(CMAKE_CXX_STANDARD 11)
-
-find_package(GeodeNative REQUIRED COMPONENTS cpp)
-
-add_executable(${PROJECT_NAME} main.cpp;Order.cpp;Order.hpp)
-
-target_link_libraries(${PROJECT_NAME}
- PUBLIC
- GeodeNative::cpp)
+if ($GFSH_PATH -ne "")
+{
+ Invoke-Expression "$GFSH_PATH -e 'connect' -e 'destroy region --name=example_orderobject' -e 'stop server --name=server' -e 'stop locator --name=locator'"
+}
\ No newline at end of file
diff --git a/examples/cpp/dataserializable/README.md b/examples/cpp/dataserializable/README.md
index 03f5a64..96287b2 100644
--- a/examples/cpp/dataserializable/README.md
+++ b/examples/cpp/dataserializable/README.md
@@ -2,66 +2,66 @@
This is a simple example showing how to register for serialization of custom objects using the DataSerializable class.
## Prerequisites
-* An installation of Apache Geode.
-* Apache Geode Native, built and installed.
-* Apache Geode Native examples, built and installed.
-* A `GEODE_HOME` environment variable set to the location of the Apache Geode installation.
-* `GEODE_HOME/bin` in the execution path.
+* Install [Apache Geode](https://geode.apache.org)
+* Build and install [Apache Geode Native](https://github.com/apache/geode-native)
+* Apache Geode Native examples, built and installed
+* Set `GEODE_HOME` to the install directory of Apache Geode
## Running
-1. Set the current directory to the `dataserializable` directory in your example workspace.
-
- ```
- $ cd workspace/examples/cpp/dataserializable
- ```
-
-1. Run the `startserver.sh` script to start the Geode server, create a region, and populate the region with sample data.
-
- ```
- $ sh ./startserver.sh
- /Users/user/geode/bin/gfsh
-
- (1) Executing - start locator --name=locator
- ...
- (2) Executing - start server --name=server
- ...
- (3) Executing - create region --name=custom_orders --type=PARTITION
-
- Member | Status
- ------ | -------------------------------------------
- server | Region "/custom_orders" created on "server"
- ```
-
-1. Execute `dataserializable`:
-
- ```
- $ ./dataserializable
- Create orders
- Storing orders in the region
- Getting the orders from the region
- OrderID: 1
- Product Name: product x
- Quantity: 23
- OrderID: 2
- Product Name: product y
- Quantity: 37
- ```
-
-1. Stop the server
-
- ```
- $ sh ./stopserver.sh
- /Users/user/geode/bin/gfsh
- (1) Executing - connect
- ...
- (2) Executing - destroy region --name=custom_orders
-
- Member | Status
- ------ | ----------------------------------------------
- server | Region '/custom_orders' destroyed successfully
- ...
- (2) Executing - stop server --name=server
- ...
- (3) Executing - stop locator --name=locator
- ....
- ```
+1. From a command shell, set the current directory to the `dataserializable` directory in your example workspace.
+
+ ```console
+ $ cd workspace/examples/cpp/dataserializable
+ ```
+
+2. Run the `startserver` script to start the Geode cluster with authentication and create a region.
+
+ For Windows cmd:
+
+ ```console
+ $ powershell.exe -File startserver.ps1
+ ```
+
+ For Windows Powershell:
+
+ ```console
+ $ startserver.ps1
+ ```
+
+ For Bash:
+
+ ```console
+ $ ./startserver.sh
+ ```
+
+1. Execute `dataserializable`, expect the following output:
+
+ Create orders
+ Storing orders in the region
+ Getting the orders from the region
+ OrderID: 1
+ Product Name: product x
+ Quantity: 23
+ OrderID: 2
+ Product Name: product y
+ Quantity: 37
+
+4. Run the `stopserver` script to gracefully shutdown the Geode cluster.
+
+ For Windows cmd:
+
+ ```console
+ $ powershell.exe -File stopserver.ps1
+ ```
+
+ For Windows Powershell:
+
+ ```console
+ $ stopserver.ps1
+ ```
+
+ For Bash:
+
+ ```console
+ $ ./stopserver.sh
+ ```
diff --git a/examples/cpp/continuousquery/CMakeLists.txt b/examples/cpp/dataserializable/startserver.ps1
similarity index 52%
copy from examples/cpp/continuousquery/CMakeLists.txt
copy to examples/cpp/dataserializable/startserver.ps1
index 11b5ac6..347eda1 100644
--- a/examples/cpp/continuousquery/CMakeLists.txt
+++ b/examples/cpp/dataserializable/startserver.ps1
@@ -13,17 +13,27 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-cmake_minimum_required(VERSION 3.5)
+$GFSH_PATH = ""
+if (Get-Command gfsh -ErrorAction SilentlyContinue)
+{
+ $GFSH_PATH = "gfsh"
+}
+else
+{
+ if (-not (Test-Path env:GEODE_HOME))
+ {
+ Write-Host "Could not find gfsh. Please set the GEODE_HOME path. e.g. "
+ Write-Host "(Powershell) `$env:GEODE_HOME = <path to Geode>"
+ Write-Host " OR"
+ Write-Host "(Command-line) set %GEODE_HOME% = <path to Geode>"
+ }
+ else
+ {
+ $GFSH_PATH = "$env:GEODE_HOME\bin\gfsh.bat"
+ }
+}
-project(continuousquery LANGUAGES CXX)
-
-set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../../cmake)
-set(CMAKE_CXX_STANDARD 11)
-
-find_package(GeodeNative REQUIRED COMPONENTS cpp)
-
-add_executable(${PROJECT_NAME} main.cpp;Order.cpp;Order.hpp)
-
-target_link_libraries(${PROJECT_NAME}
- PUBLIC
- GeodeNative::cpp)
+if ($GFSH_PATH -ne "")
+{
+ Invoke-Expression "$GFSH_PATH -e 'start locator --name=locator --dir=$PSScriptRoot\locator' -e 'start server --name=server --dir=$PSScriptRoot\server' -e 'create region --name=example_orderobject --type=PARTITION'"
+}
\ No newline at end of file
diff --git a/examples/cpp/continuousquery/CMakeLists.txt b/examples/cpp/dataserializable/stopserver.ps1
similarity index 54%
copy from examples/cpp/continuousquery/CMakeLists.txt
copy to examples/cpp/dataserializable/stopserver.ps1
index 11b5ac6..10d2352 100644
--- a/examples/cpp/continuousquery/CMakeLists.txt
+++ b/examples/cpp/dataserializable/stopserver.ps1
@@ -13,17 +13,27 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-cmake_minimum_required(VERSION 3.5)
+$GFSH_PATH = ""
+if (Get-Command gfsh -ErrorAction SilentlyContinue)
+{
+ $GFSH_PATH = "gfsh"
+}
+else
+{
+ if (-not (Test-Path env:GEODE_HOME))
+ {
+ Write-Host "Could not find gfsh. Please set the GEODE_HOME path. e.g. "
+ Write-Host "(Powershell) `$env:GEODE_HOME = <path to Geode>"
+ Write-Host " OR"
+ Write-Host "(Command-line) set %GEODE_HOME% = <path to Geode>"
+ }
+ else
+ {
+ $GFSH_PATH = "$env:GEODE_HOME\bin\gfsh.bat"
+ }
+}
-project(continuousquery LANGUAGES CXX)
-
-set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../../cmake)
-set(CMAKE_CXX_STANDARD 11)
-
-find_package(GeodeNative REQUIRED COMPONENTS cpp)
-
-add_executable(${PROJECT_NAME} main.cpp;Order.cpp;Order.hpp)
-
-target_link_libraries(${PROJECT_NAME}
- PUBLIC
- GeodeNative::cpp)
+if ($GFSH_PATH -ne "")
+{
+ Invoke-Expression "$GFSH_PATH -e 'connect' -e 'destroy region --name=example_orderobject' -e 'stop server --name=server' -e 'stop locator --name=locator'"
+}
\ No newline at end of file
diff --git a/examples/cpp/function-execution/README.md b/examples/cpp/function-execution/README.md
index a20deed..57897d2 100644
--- a/examples/cpp/function-execution/README.md
+++ b/examples/cpp/function-execution/README.md
@@ -6,57 +6,62 @@ startserver script deploys a jar file with several custom functions in it, and
the example app executes those functions and prints out the result set(s).
## Prerequisites
-* An installation of Apache Geode.
-* Apache Geode Native, built and installed.
-* Apache Geode Native examples, built and installed.
-* A `GEODE_HOME` environment variable set to the location of the Apache Geode installation.
-* `GEODE_HOME/bin` in the execution path.
+* Install [Apache Geode](https://geode.apache.org)
+* Build and install [Apache Geode Native](https://github.com/apache/geode-native)
+* Apache Geode Native examples, built and installed
+* Set `GEODE_HOME` to the install directory of Apache Geode
## Running
-1. Set the current directory to the `function-execution` directory in your example workspace.
+1. From a command shell, set the current directory to the `function-execution` directory in your example workspace.
- ```
- $ cd workspace/examples/cpp/function-execution
- ```
+ ```console
+ $ cd workspace/examples/cpp/function-execution
+ ```
-1. Run the `startserver.sh` script to start the Geode server, create a region, and populate the region with sample data.
+2. Run the `startserver` script to start the Geode cluster with authentication and create a region.
- ```
- $ sh ./startserver.sh
- /Users/user/geode/bin/gfsh
+ For Windows cmd:
- (1) Executing - start locator --name=locator
- ...
- (2) Executing - deploy --jar=../../utilities/example.jar
- ...
- (3) Executing - start server --name=the-server --server-port=50505
- ...
- (4) Executing - create region --name=parition_region --type=PARTITION
+ ```console
+ $ powershell.exe -File startserver.ps1
+ ```
- Member | Status
- ---------- | ----------------------------------------------
- the-server | Region "/partition_region" created on "the-server"
+ For Windows Powershell:
+
+ ```console
+ $ startserver.ps1
+ ```
+
+ For Bash:
+
+ ```console
+ $ ./startserver.sh
+ ```
-1. Run the `function-execution` example:
+3. Execute `function-execution`, expect the following output:
- ```
- $ ./function-execution
- Result count = 3
+ Result count = 3
Result[0]=VALUE--1
Result[1]=VALUE--2
Result[2]=VALUE--3
- ```
-1. Stop the server
+4. Run the `stopserver` script to gracefully shutdown the Geode cluster.
+
+ For Windows cmd:
+
+ ```console
+ $ powershell.exe -File stopserver.ps1
+ ```
+
+ For Windows Powershell:
- ```
- $ sh ./stopserver.sh
- /Users/user/geode/bin/gfsh
- (1) Executing - connect
- ...
- (2) Executing - shutdown --include-locators=true
+ ```console
+ $ stopserver.ps1
+ ```
- Shutdown is triggered
- ```
+ For Bash:
+ ```console
+ $ ./stopserver.sh
+ ```
diff --git a/examples/cpp/function-execution/startserver.ps1 b/examples/cpp/function-execution/startserver.ps1
new file mode 100644
index 0000000..bc38327
--- /dev/null
+++ b/examples/cpp/function-execution/startserver.ps1
@@ -0,0 +1,39 @@
+# 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.
+
+$GFSH_PATH = ""
+if (Get-Command gfsh -ErrorAction SilentlyContinue)
+{
+ $GFSH_PATH = "gfsh"
+}
+else
+{
+ if (-not (Test-Path env:GEODE_HOME))
+ {
+ Write-Host "Could not find gfsh. Please set the GEODE_HOME path. e.g. "
+ Write-Host "(Powershell) `$env:GEODE_HOME = <path to Geode>"
+ Write-Host " OR"
+ Write-Host "(Command-line) set %GEODE_HOME% = <path to Geode>"
+ }
+ else
+ {
+ $GFSH_PATH = "$env:GEODE_HOME\bin\gfsh.bat"
+ }
+}
+
+if ($GFSH_PATH -ne "")
+{
+ Invoke-Expression "$GFSH_PATH -e 'start locator --name=locator --dir=$PSScriptRoot/locator' -e 'deploy --jar=../../utilities/example.jar' -e 'start server --name=the-server --server-port=50505' -e 'create region --name=partition_region --type=PARTITION'"
+}
\ No newline at end of file
diff --git a/examples/cpp/continuousquery/CMakeLists.txt b/examples/cpp/function-execution/stopserver.ps1
similarity index 52%
copy from examples/cpp/continuousquery/CMakeLists.txt
copy to examples/cpp/function-execution/stopserver.ps1
index 11b5ac6..742ce8d 100644
--- a/examples/cpp/continuousquery/CMakeLists.txt
+++ b/examples/cpp/function-execution/stopserver.ps1
@@ -1,4 +1,4 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
+# 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
@@ -13,17 +13,27 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-cmake_minimum_required(VERSION 3.5)
+$GFSH_PATH = ""
+if (Get-Command gfsh -ErrorAction SilentlyContinue)
+{
+ $GFSH_PATH = "gfsh"
+}
+else
+{
+ if (-not (Test-Path env:GEODE_HOME))
+ {
+ Write-Host "Could not find gfsh. Please set the GEODE_HOME path. e.g. "
+ Write-Host "(Powershell) `$env:GEODE_HOME = <path to Geode>"
+ Write-Host " OR"
+ Write-Host "(Command-line) set %GEODE_HOME% = <path to Geode>"
+ }
+ else
+ {
+ $GFSH_PATH = "$env:GEODE_HOME\bin\gfsh.bat"
+ }
+}
-project(continuousquery LANGUAGES CXX)
-
-set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../../cmake)
-set(CMAKE_CXX_STANDARD 11)
-
-find_package(GeodeNative REQUIRED COMPONENTS cpp)
-
-add_executable(${PROJECT_NAME} main.cpp;Order.cpp;Order.hpp)
-
-target_link_libraries(${PROJECT_NAME}
- PUBLIC
- GeodeNative::cpp)
+if ($GFSH_PATH -ne "")
+{
+ Invoke-Expression "$GFSH_PATH -e 'connect' -e 'shutdown --include-locators=true'"
+}
\ No newline at end of file
diff --git a/examples/cpp/pdxserializable/README.md b/examples/cpp/pdxserializable/README.md
index 7f5e8bd..3d00d35 100644
--- a/examples/cpp/pdxserializable/README.md
+++ b/examples/cpp/pdxserializable/README.md
@@ -2,60 +2,66 @@
This is a simple example showing how to register for serialization of custom objects using the PdxSerializable class.
## Prerequisites
-* An installation of Apache Geode.
-* Apache Geode Native, built and installed.
-* Apache Geode Native examples, built and installed.
-* A `GEODE_HOME` environment variable set to the location of the Apache Geode installation.
-* `GEODE_HOME/bin` in the execution path.
+* Install [Apache Geode](https://geode.apache.org)
+* Build and install [Apache Geode Native](https://github.com/apache/geode-native)
+* Apache Geode Native examples, built and installed
+* Set `GEODE_HOME` to the install directory of Apache Geode
## Running
-1. Set the current directory to the `pdxserializable` directory in your example workspace.
-
- ```
- $ cd workspace/examples/cpp/pdxserializable
- ```
-
-1. Run the `startserver.sh` script to start the Geode server, create a region, and populate the region with sample data.
-
- ```
- $ sh ./startserver.sh
- /Users/user/geode/bin/gfsh
-
- (1) Executing - start locator --name=locator
- ...
- (2) Executing - start server --name=server
- ...
- (3) Executing - create region --name=custom_orders --type=PARTITION
-
- Member | Status
- ------ | -------------------------------------------
- server | Region "/custom_orders" created on "server"
- ```
-
-1. Execute `pdxserializable`:
-
- ```
- $ ./pdxserializable
- Create orders
- Storing orders in the region
- Getting the orders from the region
- OrderID: 1
- Product Name: product x
- Quantity: 23
- OrderID: 2
- Product Name: product y
- Quantity: 37
- ```
-
-1. Stop the server
-
- ```
- $ sh ./stopserver.sh
- /Users/user/geode/bin/gfsh
- (1) Executing - connect
- ...
- (2) Executing - stop server --name=server
- ...
- (3) Executing - stop locator --name=locator
- ....
- ```
+1. From a command shell, set the current directory to the `pdxserializable` directory in your example workspace.
+
+ ```console
+ $ cd workspace/examples/cpp/pdxserializable
+ ```
+
+2. Run the `startserver` script to start the Geode cluster with authentication and create a region.
+
+ For Windows cmd:
+
+ ```console
+ $ powershell.exe -File startserver.ps1
+ ```
+
+ For Windows Powershell:
+
+ ```console
+ $ startserver.ps1
+ ```
+
+ For Bash:
+
+ ```console
+ $ ./startserver.sh
+ ```
+
+3. Execute `pdxserializable`, expect the following output:
+
+ Create orders
+ Storing orders in the region
+ Getting the orders from the region
+ OrderID: 1
+ Product Name: product x
+ Quantity: 23
+ OrderID: 2
+ Product Name: product y
+ Quantity: 37
+
+4. Run the `stopserver` script to gracefully shutdown the Geode cluster.
+
+ For Windows cmd:
+
+ ```console
+ $ powershell.exe -File stopserver.ps1
+ ```
+
+ For Windows Powershell:
+
+ ```console
+ $ stopserver.ps1
+ ```
+
+ For Bash:
+
+ ```console
+ $ ./stopserver.sh
+ ```
\ No newline at end of file
diff --git a/examples/cpp/continuousquery/CMakeLists.txt b/examples/cpp/pdxserializable/startserver.ps1
similarity index 52%
copy from examples/cpp/continuousquery/CMakeLists.txt
copy to examples/cpp/pdxserializable/startserver.ps1
index 11b5ac6..347eda1 100644
--- a/examples/cpp/continuousquery/CMakeLists.txt
+++ b/examples/cpp/pdxserializable/startserver.ps1
@@ -13,17 +13,27 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-cmake_minimum_required(VERSION 3.5)
+$GFSH_PATH = ""
+if (Get-Command gfsh -ErrorAction SilentlyContinue)
+{
+ $GFSH_PATH = "gfsh"
+}
+else
+{
+ if (-not (Test-Path env:GEODE_HOME))
+ {
+ Write-Host "Could not find gfsh. Please set the GEODE_HOME path. e.g. "
+ Write-Host "(Powershell) `$env:GEODE_HOME = <path to Geode>"
+ Write-Host " OR"
+ Write-Host "(Command-line) set %GEODE_HOME% = <path to Geode>"
+ }
+ else
+ {
+ $GFSH_PATH = "$env:GEODE_HOME\bin\gfsh.bat"
+ }
+}
-project(continuousquery LANGUAGES CXX)
-
-set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../../cmake)
-set(CMAKE_CXX_STANDARD 11)
-
-find_package(GeodeNative REQUIRED COMPONENTS cpp)
-
-add_executable(${PROJECT_NAME} main.cpp;Order.cpp;Order.hpp)
-
-target_link_libraries(${PROJECT_NAME}
- PUBLIC
- GeodeNative::cpp)
+if ($GFSH_PATH -ne "")
+{
+ Invoke-Expression "$GFSH_PATH -e 'start locator --name=locator --dir=$PSScriptRoot\locator' -e 'start server --name=server --dir=$PSScriptRoot\server' -e 'create region --name=example_orderobject --type=PARTITION'"
+}
\ No newline at end of file
diff --git a/examples/cpp/continuousquery/CMakeLists.txt b/examples/cpp/pdxserializable/stopserver.ps1
similarity index 54%
copy from examples/cpp/continuousquery/CMakeLists.txt
copy to examples/cpp/pdxserializable/stopserver.ps1
index 11b5ac6..10d2352 100644
--- a/examples/cpp/continuousquery/CMakeLists.txt
+++ b/examples/cpp/pdxserializable/stopserver.ps1
@@ -13,17 +13,27 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-cmake_minimum_required(VERSION 3.5)
+$GFSH_PATH = ""
+if (Get-Command gfsh -ErrorAction SilentlyContinue)
+{
+ $GFSH_PATH = "gfsh"
+}
+else
+{
+ if (-not (Test-Path env:GEODE_HOME))
+ {
+ Write-Host "Could not find gfsh. Please set the GEODE_HOME path. e.g. "
+ Write-Host "(Powershell) `$env:GEODE_HOME = <path to Geode>"
+ Write-Host " OR"
+ Write-Host "(Command-line) set %GEODE_HOME% = <path to Geode>"
+ }
+ else
+ {
+ $GFSH_PATH = "$env:GEODE_HOME\bin\gfsh.bat"
+ }
+}
-project(continuousquery LANGUAGES CXX)
-
-set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../../cmake)
-set(CMAKE_CXX_STANDARD 11)
-
-find_package(GeodeNative REQUIRED COMPONENTS cpp)
-
-add_executable(${PROJECT_NAME} main.cpp;Order.cpp;Order.hpp)
-
-target_link_libraries(${PROJECT_NAME}
- PUBLIC
- GeodeNative::cpp)
+if ($GFSH_PATH -ne "")
+{
+ Invoke-Expression "$GFSH_PATH -e 'connect' -e 'destroy region --name=example_orderobject' -e 'stop server --name=server' -e 'stop locator --name=locator'"
+}
\ No newline at end of file
diff --git a/examples/cpp/pdxserializer/README.md b/examples/cpp/pdxserializer/README.md
index eaed594..2ab06f9 100644
--- a/examples/cpp/pdxserializer/README.md
+++ b/examples/cpp/pdxserializer/README.md
@@ -2,56 +2,62 @@
This is a simple example showing how to register for serialization of custom objects using the PdxSerializer class.
## Prerequisites
-* An installation of Apache Geode.
-* Apache Geode Native, built and installed.
-* Apache Geode Native examples, built and installed.
-* A `GEODE_HOME` environment variable set to the location of the Apache Geode installation.
-* `GEODE_HOME/bin` in the execution path.
+* Install [Apache Geode](https://geode.apache.org)
+* Build and install [Apache Geode Native](https://github.com/apache/geode-native)
+* Apache Geode Native examples, built and installed
+* Set `GEODE_HOME` to the install directory of Apache Geode
## Running
-1. Set the current directory to the `pdxserializer` directory in your example workspace.
-
- ```
- $ cd workspace/examples/cpp/pdxserializer
- ```
-
-1. Run the `startserver.sh` script to start the Geode server, create a region, and populate the region with sample data.
-
- ```
- $ sh ./startserver.sh
- /Users/user/geode/bin/gfsh
-
- (1) Executing - start locator --name=locator
- ...
- (2) Executing - start server --name=server
- ...
- (3) Executing - create region --name=custom_orders --type=PARTITION
-
- Member | Status
- ------ | -------------------------------------------
- server | Region "/custom_orders" created on "server"
- ```
-
-1. Execute `pdxserializer`:
-
- ```
- $ ./pdxserializer
- Storing orders in the region
- Getting the orders from the region
- OrderID: 1
- Product Name: product x
- Quantity: 42
- ```
-
-1. Stop the server
-
- ```
- $ sh ./stopserver.sh
- /Users/user/geode/bin/gfsh
- (1) Executing - connect
- ...
- (2) Executing - stop server --name=server
- ...
- (3) Executing - stop locator --name=locator
- ....
- ```
+1. From a command shell, set the current directory to the `pdxserializer` directory in your example workspace.
+
+ ```console
+ $ cd workspace/examples/cpp/pdxserializer
+ ```
+
+2. Run the `startserver` script to start the Geode cluster with authentication and create a region.
+
+ For Windows cmd:
+
+ ```console
+ $ powershell.exe -File startserver.ps1
+ ```
+
+ For Windows Powershell:
+
+ ```console
+ $ startserver.ps1
+ ```
+
+ For Bash:
+
+ ```console
+ $ ./startserver.sh
+ ```
+
+3. Execute `pdxserializer`, expect the following output:
+
+ Storing orders in the region
+ Getting the orders from the region
+ OrderID: 1
+ Product Name: product x
+ Quantity: 42
+
+4. Run the `stopserver` script to gracefully shutdown the Geode cluster.
+
+ For Windows cmd:
+
+ ```console
+ $ powershell.exe -File stopserver.ps1
+ ```
+
+ For Windows Powershell:
+
+ ```console
+ $ stopserver.ps1
+ ```
+
+ For Bash:
+
+ ```console
+ $ ./stopserver.sh
+ ```
\ No newline at end of file
diff --git a/examples/cpp/continuousquery/CMakeLists.txt b/examples/cpp/pdxserializer/startserver.ps1
similarity index 52%
copy from examples/cpp/continuousquery/CMakeLists.txt
copy to examples/cpp/pdxserializer/startserver.ps1
index 11b5ac6..347eda1 100644
--- a/examples/cpp/continuousquery/CMakeLists.txt
+++ b/examples/cpp/pdxserializer/startserver.ps1
@@ -13,17 +13,27 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-cmake_minimum_required(VERSION 3.5)
+$GFSH_PATH = ""
+if (Get-Command gfsh -ErrorAction SilentlyContinue)
+{
+ $GFSH_PATH = "gfsh"
+}
+else
+{
+ if (-not (Test-Path env:GEODE_HOME))
+ {
+ Write-Host "Could not find gfsh. Please set the GEODE_HOME path. e.g. "
+ Write-Host "(Powershell) `$env:GEODE_HOME = <path to Geode>"
+ Write-Host " OR"
+ Write-Host "(Command-line) set %GEODE_HOME% = <path to Geode>"
+ }
+ else
+ {
+ $GFSH_PATH = "$env:GEODE_HOME\bin\gfsh.bat"
+ }
+}
-project(continuousquery LANGUAGES CXX)
-
-set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../../cmake)
-set(CMAKE_CXX_STANDARD 11)
-
-find_package(GeodeNative REQUIRED COMPONENTS cpp)
-
-add_executable(${PROJECT_NAME} main.cpp;Order.cpp;Order.hpp)
-
-target_link_libraries(${PROJECT_NAME}
- PUBLIC
- GeodeNative::cpp)
+if ($GFSH_PATH -ne "")
+{
+ Invoke-Expression "$GFSH_PATH -e 'start locator --name=locator --dir=$PSScriptRoot\locator' -e 'start server --name=server --dir=$PSScriptRoot\server' -e 'create region --name=example_orderobject --type=PARTITION'"
+}
\ No newline at end of file
diff --git a/examples/cpp/continuousquery/CMakeLists.txt b/examples/cpp/pdxserializer/stopserver.ps1
similarity index 54%
copy from examples/cpp/continuousquery/CMakeLists.txt
copy to examples/cpp/pdxserializer/stopserver.ps1
index 11b5ac6..10d2352 100644
--- a/examples/cpp/continuousquery/CMakeLists.txt
+++ b/examples/cpp/pdxserializer/stopserver.ps1
@@ -13,17 +13,27 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-cmake_minimum_required(VERSION 3.5)
+$GFSH_PATH = ""
+if (Get-Command gfsh -ErrorAction SilentlyContinue)
+{
+ $GFSH_PATH = "gfsh"
+}
+else
+{
+ if (-not (Test-Path env:GEODE_HOME))
+ {
+ Write-Host "Could not find gfsh. Please set the GEODE_HOME path. e.g. "
+ Write-Host "(Powershell) `$env:GEODE_HOME = <path to Geode>"
+ Write-Host " OR"
+ Write-Host "(Command-line) set %GEODE_HOME% = <path to Geode>"
+ }
+ else
+ {
+ $GFSH_PATH = "$env:GEODE_HOME\bin\gfsh.bat"
+ }
+}
-project(continuousquery LANGUAGES CXX)
-
-set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../../cmake)
-set(CMAKE_CXX_STANDARD 11)
-
-find_package(GeodeNative REQUIRED COMPONENTS cpp)
-
-add_executable(${PROJECT_NAME} main.cpp;Order.cpp;Order.hpp)
-
-target_link_libraries(${PROJECT_NAME}
- PUBLIC
- GeodeNative::cpp)
+if ($GFSH_PATH -ne "")
+{
+ Invoke-Expression "$GFSH_PATH -e 'connect' -e 'destroy region --name=example_orderobject' -e 'stop server --name=server' -e 'stop locator --name=locator'"
+}
\ No newline at end of file
diff --git a/examples/cpp/put-get-remove/README.md b/examples/cpp/put-get-remove/README.md
index 9f4bd91..65e1fd6 100644
--- a/examples/cpp/put-get-remove/README.md
+++ b/examples/cpp/put-get-remove/README.md
@@ -4,57 +4,63 @@ configure a `Pool` with a `PoolFactory`, and configure a `Region` with a `Region
We then put, get, and remove some primitive data in the region.
## Prerequisites
-* An installation of Apache Geode.
-* Apache Geode Native, built and installed.
-* Apache Geode Native examples, built and installed.
-* A `GEODE_HOME` environment variable set to the location of the Apache Geode installation.
-* `GEODE_HOME/bin` in the execution path.
+* Install [Apache Geode](https://geode.apache.org)
+* Build and install [Apache Geode Native](https://github.com/apache/geode-native)
+* Apache Geode Native examples, built and installed
+* Set `GEODE_HOME` to the install directory of Apache Geode
## Running
-1. Set the current directory to the `put-get-remove` directory in your example workspace.
-
- ```
- $ cd workspace/examples/cpp/put-get-remove
- ```
-
-1. Run the `startserver.sh` script to start the Geode server, create a region, and populate the region with sample data.
-
- ```
- $ sh ./startserver.sh
- /Users/user/geode/bin/gfsh
-
- (1) Executing - start locator --name=locator
- ...
- (2) Executing - start server --name=server
- ...
-(3) Executing - create region --name=example_userinfo --type=PARTITION
-
- Member | Status
- ------ | ----------------------------------------------
- server | Region "/example_userinfo" created on "server"
- ```
-
-1. Execute `put-get-remove`:
-
- ```
- $ ./put-get-remove
- Storing id and username in the region
- Getting the user info from the region
- rtimmons = Robert Timmons
- scharles = Sylvia Charles
- Removing rtimmons info from the region
- rtimmons's info successfully deleted
- ```
-
-1. Stop the server
-
- ```
- $ sh ./stopserver.sh
- /Users/user/geode/bin/gfsh
- (1) Executing - connect
- ...
- (2) Executing - stop server --name=server
- ...
- (3) Executing - stop locator --name=locator
- ....
- ```
+1. From a command shell, set the current directory to the `put-get-remove` directory in your example workspace.
+
+ ```consaole
+ $ cd workspace/examples/cpp/put-get-remove
+ ```
+
+2. Run the `startserver` script to start the Geode cluster with authentication and create a region.
+
+ For Windows cmd:
+
+ ```console
+ $ powershell.exe -File startserver.ps1
+ ```
+
+ For Windows Powershell:
+
+ ```console
+ $ startserver.ps1
+ ```
+
+ For Bash:
+
+ ```console
+ $ ./startserver.sh
+ ```
+
+3. Execute `put-get-remove` expect the following output:
+
+ Storing id and username in the region
+ Getting the user info from the region
+ rtimmons = Robert Timmons
+ scharles = Sylvia Charles
+ Removing rtimmons info from the region
+ rtimmons's info successfully deleted
+
+4. Run the `stopserver` script to gracefully shutdown the Geode cluster.
+
+ For Windows cmd:
+
+ ```console
+ $ powershell.exe -File stopserver.ps1
+ ```
+
+ For Windows Powershell:
+
+ ```console
+ $ stopserver.ps1
+ ```
+
+ For Bash:
+
+ ```console
+ $ ./stopserver.sh
+ ```
\ No newline at end of file
diff --git a/examples/cpp/continuousquery/CMakeLists.txt b/examples/cpp/put-get-remove/startserver.ps1
similarity index 52%
copy from examples/cpp/continuousquery/CMakeLists.txt
copy to examples/cpp/put-get-remove/startserver.ps1
index 11b5ac6..5cec56b 100644
--- a/examples/cpp/continuousquery/CMakeLists.txt
+++ b/examples/cpp/put-get-remove/startserver.ps1
@@ -13,17 +13,27 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-cmake_minimum_required(VERSION 3.5)
+$GFSH_PATH = ""
+if (Get-Command gfsh -ErrorAction SilentlyContinue)
+{
+ $GFSH_PATH = "gfsh"
+}
+else
+{
+ if (-not (Test-Path env:GEODE_HOME))
+ {
+ Write-Host "Could not find gfsh. Please set the GEODE_HOME path. e.g. "
+ Write-Host "(Powershell) `$env:GEODE_HOME = <path to Geode>"
+ Write-Host " OR"
+ Write-Host "(Command-line) set %GEODE_HOME% = <path to Geode>"
+ }
+ else
+ {
+ $GFSH_PATH = "$env:GEODE_HOME\bin\gfsh.bat"
+ }
+}
-project(continuousquery LANGUAGES CXX)
-
-set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../../cmake)
-set(CMAKE_CXX_STANDARD 11)
-
-find_package(GeodeNative REQUIRED COMPONENTS cpp)
-
-add_executable(${PROJECT_NAME} main.cpp;Order.cpp;Order.hpp)
-
-target_link_libraries(${PROJECT_NAME}
- PUBLIC
- GeodeNative::cpp)
+if ($GFSH_PATH -ne "")
+{
+ Invoke-Expression "$GFSH_PATH -e 'start locator --name=locator --dir=$PSScriptRoot\locator' -e 'start server --name=server --dir=$PSScriptRoot\server' -e 'create region --name=example_userinfo --type=PARTITION'"
+}
\ No newline at end of file
diff --git a/examples/cpp/continuousquery/CMakeLists.txt b/examples/cpp/put-get-remove/stopserver.ps1
similarity index 54%
copy from examples/cpp/continuousquery/CMakeLists.txt
copy to examples/cpp/put-get-remove/stopserver.ps1
index 11b5ac6..4857a2d 100644
--- a/examples/cpp/continuousquery/CMakeLists.txt
+++ b/examples/cpp/put-get-remove/stopserver.ps1
@@ -13,17 +13,27 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-cmake_minimum_required(VERSION 3.5)
+$GFSH_PATH = ""
+if (Get-Command gfsh -ErrorAction SilentlyContinue)
+{
+ $GFSH_PATH = "gfsh"
+}
+else
+{
+ if (-not (Test-Path env:GEODE_HOME))
+ {
+ Write-Host "Could not find gfsh. Please set the GEODE_HOME path. e.g. "
+ Write-Host "(Powershell) `$env:GEODE_HOME = <path to Geode>"
+ Write-Host " OR"
+ Write-Host "(Command-line) set %GEODE_HOME% = <path to Geode>"
+ }
+ else
+ {
+ $GFSH_PATH = "$env:GEODE_HOME\bin\gfsh.bat"
+ }
+}
-project(continuousquery LANGUAGES CXX)
-
-set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../../cmake)
-set(CMAKE_CXX_STANDARD 11)
-
-find_package(GeodeNative REQUIRED COMPONENTS cpp)
-
-add_executable(${PROJECT_NAME} main.cpp;Order.cpp;Order.hpp)
-
-target_link_libraries(${PROJECT_NAME}
- PUBLIC
- GeodeNative::cpp)
+if ($GFSH_PATH -ne "")
+{
+ Invoke-Expression "$GFSH_PATH -e 'connect' -e 'destroy region --name=example_userinfo' -e 'stop server --name=server' -e 'stop locator --name=locator'"
+}
\ No newline at end of file
diff --git a/examples/cpp/remotequery/README.md b/examples/cpp/remotequery/README.md
index d47d991..a1216c6 100644
--- a/examples/cpp/remotequery/README.md
+++ b/examples/cpp/remotequery/README.md
@@ -2,58 +2,64 @@
This is a simple example showing how to create and execute a remote query.
## Prerequisites
-* An installation of Apache Geode.
-* Apache Geode Native, built and installed.
-* Apache Geode Native examples, built and installed.
-* A `GEODE_HOME` environment variable set to the location of the Apache Geode installation.
-* `GEODE_HOME/bin` in the execution path.
+* Install [Apache Geode](https://geode.apache.org)
+* Build and install [Apache Geode Native](https://github.com/apache/geode-native)
+* Apache Geode Native examples, built and installed
+* Set `GEODE_HOME` to the install directory of Apache Geode
## Running
-1. Set the current directory to the `remotequery` directory in your example workspace.
-
- ```
- $ cd workspace/examples/cpp/remotequery
- ```
-
-1. Run the `startserver.sh` script to start the Geode server, create a region, and populate the region with sample data.
-
- ```
- $ sh ./startserver.sh
- /Users/user/geode/bin/gfsh
-
- (1) Executing - start locator --name=locator
- ...
- (2) Executing - start server --name=server
- ...
- (3) Executing - create region --name=custom_orders --type=PARTITION
-
- Member | Status
- ------ | -------------------------------------------
- server | Region "/custom_orders" created on "server"
- ```
-
-1. Execute `remotequery`:
-
- ```
- $ ./remotequery
- Create orders
- Storing orders in the region
- Getting the orders from the region
- The following orders have a quantity greater than 30:
- OrderID: 2 Product Name: product y Quantity: 37
- OrderID: 4 Product Name: product z Quantity: 102
- OrderID: 6 Product Name: product z Quantity: 42
- ```
-
-1. Stop the server
-
- ```
- $ sh ./stopserver.sh
- /Users/user/geode/bin/gfsh
- (1) Executing - connect
- ...
- (2) Executing - stop server --name=server
- ...
- (3) Executing - stop locator --name=locator
- ....
- ```
+1. From a command shell, set the current directory to the `remotequery` directory in your example workspace.
+
+ ```console
+ $ cd workspace/examples/cpp/remotequery
+ ```
+
+2. Run the `startserver` script to start the Geode cluster with authentication and create a region.
+
+ For Windows cmd:
+
+ ```console
+ $ powershell.exe -File startserver.ps1
+ ```
+
+ For Windows Powershell:
+
+ ```console
+ $ startserver.ps1
+ ```
+
+ For Bash:
+
+ ```console
+ $ ./startserver.sh
+ ```
+
+3. Execute `remotequery`, expect the following output:
+
+ Create orders
+ Storing orders in the region
+ Getting the orders from the region
+ The following orders have a quantity greater than 30:
+ OrderID: 2 Product Name: product y Quantity: 37
+ OrderID: 4 Product Name: product z Quantity: 102
+ OrderID: 6 Product Name: product z Quantity: 42
+
+4. Run the `stopserver` script to gracefully shutdown the Geode cluster.
+
+ For Windows cmd:
+
+ ```console
+ $ powershell.exe -File stopserver.ps1
+ ```
+
+ For Windows Powershell:
+
+ ```console
+ $ stopserver.ps1
+ ```
+
+ For Bash:
+
+ ```console
+ $ ./stopserver.sh
+ ```
\ No newline at end of file
diff --git a/examples/cpp/continuousquery/CMakeLists.txt b/examples/cpp/remotequery/startserver.ps1
similarity index 52%
copy from examples/cpp/continuousquery/CMakeLists.txt
copy to examples/cpp/remotequery/startserver.ps1
index 11b5ac6..4c5c849 100644
--- a/examples/cpp/continuousquery/CMakeLists.txt
+++ b/examples/cpp/remotequery/startserver.ps1
@@ -13,17 +13,27 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-cmake_minimum_required(VERSION 3.5)
+$GFSH_PATH = ""
+if (Get-Command gfsh -ErrorAction SilentlyContinue)
+{
+ $GFSH_PATH = "gfsh"
+}
+else
+{
+ if (-not (Test-Path env:GEODE_HOME))
+ {
+ Write-Host "Could not find gfsh. Please set the GEODE_HOME path. e.g. "
+ Write-Host "(Powershell) `$env:GEODE_HOME = <path to Geode>"
+ Write-Host " OR"
+ Write-Host "(Command-line) set %GEODE_HOME% = <path to Geode>"
+ }
+ else
+ {
+ $GFSH_PATH = "$env:GEODE_HOME\bin\gfsh.bat"
+ }
+}
-project(continuousquery LANGUAGES CXX)
-
-set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../../cmake)
-set(CMAKE_CXX_STANDARD 11)
-
-find_package(GeodeNative REQUIRED COMPONENTS cpp)
-
-add_executable(${PROJECT_NAME} main.cpp;Order.cpp;Order.hpp)
-
-target_link_libraries(${PROJECT_NAME}
- PUBLIC
- GeodeNative::cpp)
+if ($GFSH_PATH -ne "")
+{
+ Invoke-Expression "$GFSH_PATH -e 'start locator --name=locator --dir=$PSScriptRoot\locator' -e 'start server --name=server --dir=$PSScriptRoot\server' -e 'create region --name=custom_orders --type=PARTITION'"
+}
\ No newline at end of file
diff --git a/examples/cpp/continuousquery/CMakeLists.txt b/examples/cpp/remotequery/stopserver.ps1
similarity index 54%
copy from examples/cpp/continuousquery/CMakeLists.txt
copy to examples/cpp/remotequery/stopserver.ps1
index 11b5ac6..5ac5117 100644
--- a/examples/cpp/continuousquery/CMakeLists.txt
+++ b/examples/cpp/remotequery/stopserver.ps1
@@ -13,17 +13,27 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-cmake_minimum_required(VERSION 3.5)
+$GFSH_PATH = ""
+if (Get-Command gfsh -ErrorAction SilentlyContinue)
+{
+ $GFSH_PATH = "gfsh"
+}
+else
+{
+ if (-not (Test-Path env:GEODE_HOME))
+ {
+ Write-Host "Could not find gfsh. Please set the GEODE_HOME path. e.g. "
+ Write-Host "(Powershell) `$env:GEODE_HOME = <path to Geode>"
+ Write-Host " OR"
+ Write-Host "(Command-line) set %GEODE_HOME% = <path to Geode>"
+ }
+ else
+ {
+ $GFSH_PATH = "$env:GEODE_HOME\bin\gfsh.bat"
+ }
+}
-project(continuousquery LANGUAGES CXX)
-
-set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../../cmake)
-set(CMAKE_CXX_STANDARD 11)
-
-find_package(GeodeNative REQUIRED COMPONENTS cpp)
-
-add_executable(${PROJECT_NAME} main.cpp;Order.cpp;Order.hpp)
-
-target_link_libraries(${PROJECT_NAME}
- PUBLIC
- GeodeNative::cpp)
+if ($GFSH_PATH -ne "")
+{
+ Invoke-Expression "$GFSH_PATH -e 'connect' -e 'destroy region --name=custom_orders' -e 'stop server --name=server' -e 'stop locator --name=locator'"
+}
\ No newline at end of file
diff --git a/examples/cpp/transaction/README.md b/examples/cpp/transaction/README.md
index 51c7d33..d95062e 100644
--- a/examples/cpp/transaction/README.md
+++ b/examples/cpp/transaction/README.md
@@ -5,57 +5,63 @@ exception handling. We commit two keys and rollback adding a third key and dest
existing key while showing how to handle exceptions.
## Prerequisites
-* An installation of Apache Geode.
-* Apache Geode Native, built and installed.
-* Apache Geode Native examples, built and installed.
-* A `GEODE_HOME` environment variable set to the location of the Apache Geode installation.
-* `GEODE_HOME/bin` in the execution path.
+* Install [Apache Geode](https://geode.apache.org)
+* Build and install [Apache Geode Native](https://github.com/apache/geode-native)
+* Apache Geode Native examples, built and installed
+* Set `GEODE_HOME` to the install directory of Apache Geode
## Running
-1. Set the current directory to the `transaction` directory in your example workspace.
-
- ```
- $ cd workspace/examples/cpp/transaction
- ```
-
-1. Run the `startserver.sh` script to start the Geode server, create a region, and populate the region with sample data.
-
- ```
- $ sh ./startserver.sh
- /Users/user/geode/bin/gfsh
-
- (1) Executing - start locator --name=locator
- ...
- (2) Executing - start server --name=server
- ...
- (3) Executing - create region --name=exampleRegion --type=PARTITION
-
- Member | Status
- ------ | ----------------------------------------------
- server | Region "/exampleRegion" created on "server"
- ```
-
-1. Execute `transaction`:
-
- ```
- $ ./transaction
- Created cache
- Created region 'exampleRegion'
- Rolled back transaction - retrying(4)
- Rolled back transaction - retrying(3)
- Rolled back transaction - retrying(2)
- Committed transaction - exiting
- ```
-
-1. Stop the server
-
- ```
- $ sh ./stopserver.sh
- /Users/user/geode/bin/gfsh
- (1) Executing - connect
- ...
- (2) Executing - stop server --name=server
- ...
- (3) Executing - stop locator --name=locator
- ....
- ```
+1. From a command shell, set the current directory to the `transaction` directory in your example workspace.
+
+ ```console
+ $ cd workspace/examples/cpp/transaction
+ ```
+
+2. Run the `startserver` script to start the Geode cluster with authentication and create a region.
+
+ For Windows cmd:
+
+ ```console
+ $ powershell.exe -File startserver.ps1
+ ```
+
+ For Windows Powershell:
+
+ ```console
+ $ startserver.ps1
+ ```
+
+ For Bash:
+
+ ```console
+ $ ./startserver.sh
+ ```
+
+3. Execute `transaction`, expect the following output:
+
+ Created cache
+ Created region 'exampleRegion'
+ Rolled back transaction - retrying(4)
+ Rolled back transaction - retrying(3)
+ Rolled back transaction - retrying(2)
+ Committed transaction - exiting
+
+4. Run the `stopserver` script to gracefully shutdown the Geode cluster.
+
+ For Windows cmd:
+
+ ```console
+ $ powershell.exe -File stopserver.ps1
+ ```
+
+ For Windows Powershell:
+
+ ```console
+ $ stopserver.ps1
+ ```
+
+ For Bash:
+
+ ```console
+ $ ./stopserver.sh
+ ```
\ No newline at end of file
diff --git a/examples/cpp/continuousquery/CMakeLists.txt b/examples/cpp/transaction/startserver.ps1
similarity index 52%
copy from examples/cpp/continuousquery/CMakeLists.txt
copy to examples/cpp/transaction/startserver.ps1
index 11b5ac6..e8fed8b 100644
--- a/examples/cpp/continuousquery/CMakeLists.txt
+++ b/examples/cpp/transaction/startserver.ps1
@@ -13,17 +13,27 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-cmake_minimum_required(VERSION 3.5)
+$GFSH_PATH = ""
+if (Get-Command gfsh -ErrorAction SilentlyContinue)
+{
+ $GFSH_PATH = "gfsh"
+}
+else
+{
+ if (-not (Test-Path env:GEODE_HOME))
+ {
+ Write-Host "Could not find gfsh. Please set the GEODE_HOME path. e.g. "
+ Write-Host "(Powershell) `$env:GEODE_HOME = <path to Geode>"
+ Write-Host " OR"
+ Write-Host "(Command-line) set %GEODE_HOME% = <path to Geode>"
+ }
+ else
+ {
+ $GFSH_PATH = "$env:GEODE_HOME\bin\gfsh.bat"
+ }
+}
-project(continuousquery LANGUAGES CXX)
-
-set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../../cmake)
-set(CMAKE_CXX_STANDARD 11)
-
-find_package(GeodeNative REQUIRED COMPONENTS cpp)
-
-add_executable(${PROJECT_NAME} main.cpp;Order.cpp;Order.hpp)
-
-target_link_libraries(${PROJECT_NAME}
- PUBLIC
- GeodeNative::cpp)
+if ($GFSH_PATH -ne "")
+{
+ Invoke-Expression "$GFSH_PATH -e 'start locator --name=locator --dir=$PSScriptRoot\locator' -e 'start server --name=server --dir=$PSScriptRoot\server' -e 'create region --name=exampleRegion --type=PARTITION'"
+}
\ No newline at end of file
diff --git a/examples/cpp/remotequery/CMakeLists.txt b/examples/cpp/transaction/stopserver.ps1
similarity index 69%
rename from examples/cpp/remotequery/CMakeLists.txt
rename to examples/cpp/transaction/stopserver.ps1
index 7743452..e5e7f7f 100644
--- a/examples/cpp/remotequery/CMakeLists.txt
+++ b/examples/cpp/transaction/stopserver.ps1
@@ -13,17 +13,14 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-cmake_minimum_required(VERSION 3.5)
+$GFSH_PATH = ""
+if (Get-Command gfsh -ErrorAction SilentlyContinue)
+{
+ $GFSH_PATH = "gfsh"
+}
+else
+{
+ $GFSH_PATH = "$env:GEODE_HOME\bin\gfsh.bat"
+}
-project(remotequery LANGUAGES CXX)
-
-set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../../cmake)
-set(CMAKE_CXX_STANDARD 11)
-
-find_package(GeodeNative REQUIRED COMPONENTS cpp)
-
-add_executable(${PROJECT_NAME} main.cpp;Order.cpp;Order.hpp)
-
-target_link_libraries(${PROJECT_NAME}
- PUBLIC
- GeodeNative::cpp)
+Invoke-Expression "$GFSH_PATH -e 'connect' -e 'destroy region --name=example_orderobject' -e 'stop server --name=server' -e 'stop locator --name=locator'"
\ No newline at end of file
diff --git a/examples/cpp/continuousquery/CMakeLists.txt b/examples/dotnet/authiniialize/stopserver.ps1
similarity index 54%
rename from examples/cpp/continuousquery/CMakeLists.txt
rename to examples/dotnet/authiniialize/stopserver.ps1
index 11b5ac6..ec2c218 100644
--- a/examples/cpp/continuousquery/CMakeLists.txt
+++ b/examples/dotnet/authiniialize/stopserver.ps1
@@ -13,17 +13,27 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-cmake_minimum_required(VERSION 3.5)
+$GFSH_PATH = ""
+if (Get-Command gfsh -ErrorAction SilentlyContinue)
+{
+ $GFSH_PATH = "gfsh"
+}
+else
+{
+ if (-not (Test-Path env:GEODE_HOME))
+ {
+ Write-Host "Could not find gfsh. Please set the GEODE_HOME path. e.g. "
+ Write-Host "(Powershell) `$env:GEODE_HOME = <path to Geode>"
+ Write-Host " OR"
+ Write-Host "(Command-line) set %GEODE_HOME% = <path to Geode>"
+ }
+ else
+ {
+ $GFSH_PATH = "$env:GEODE_HOME\bin\gfsh.bat"
+ }
+}
-project(continuousquery LANGUAGES CXX)
-
-set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/../../cmake)
-set(CMAKE_CXX_STANDARD 11)
-
-find_package(GeodeNative REQUIRED COMPONENTS cpp)
-
-add_executable(${PROJECT_NAME} main.cpp;Order.cpp;Order.hpp)
-
-target_link_libraries(${PROJECT_NAME}
- PUBLIC
- GeodeNative::cpp)
+if ($GFSH_PATH -ne "")
+{
+ Invoke-Expression "$GFSH_PATH -e 'connect' -e 'destroy region --name=region' -e 'stop server --name=server' -e 'stop locator --name=locator'"
+}
\ No newline at end of file
diff --git a/examples/dotnet/authinitialize/README.md b/examples/dotnet/authinitialize/README.md
index 45da800..c726c8f 100644
--- a/examples/dotnet/authinitialize/README.md
+++ b/examples/dotnet/authinitialize/README.md
@@ -5,25 +5,47 @@ handler on the client that authenticates against a server that was started with
## Prerequisites
* Install [Apache Geode](https://geode.apache.org)
* Build and install [Apache Geode Native](https://github.com/apache/geode-native)
-* Apache Geode Native examples, built and installed.
-* A `GEODE_HOME` environment variable set to the location of the Apache Geode installation.
-* `GEODE_HOME/bin` in the execution path.
+* Apache Geode Native examples, built and installed
+* Set `GEODE_HOME` to the install directory of Apache Geode
## Running
-1. Set the current directory to the `AuthInitialize` directory in your example workspace.
+1. From a command shell, set the current directory to the `AuthInitialize` directory in your example workspace.
- ```
- $ cd workspace/examples/dotnet/AuthInitialize
- ```
+ ```console
+ $ cd workspace/examples/dotnet/AuthInitialize
+ ```
2. Run the `startserver.ps1` script to start the Geode cluster with authentication and create a region.
-3. Execute `AuthInitialize.exe`:
+ For Windows cmd:
- ```
-.\AuthInitialize.exe
-ExampleAuthInitialize::ExampleAuthInitialize called
-ExampleAuthInitialize::GetCredentials called
-a = 1
-b = 2
- ```
+ ```console
+ $ powershell.exe -File startserver.ps1
+ ```
+
+ For Windows Powershell:
+
+ ```console
+ $ startserver.ps1
+ ```
+
+3. Execute `AuthInitialize.exe`, expect the following output:
+
+ ExampleAuthInitialize::ExampleAuthInitialize called
+ ExampleAuthInitialize::GetCredentials called
+ a = 1
+ b = 2
+
+4. Run the `stopserver.ps1` script to gracefully shutdown the Geode cluster.
+
+ For Windows cmd:
+
+ ```console
+ $ powershell.exe -File stopserver.ps1
+ ```
+
+ For Windows Powershell:
+
+ ```console
+ $ stopserver.ps1
+ ```
\ No newline at end of file
diff --git a/examples/dotnet/continuousquery/README.md b/examples/dotnet/continuousquery/README.md
index a652043..c85a766 100644
--- a/examples/dotnet/continuousquery/README.md
+++ b/examples/dotnet/continuousquery/README.md
@@ -4,27 +4,54 @@ This is a simple example showing how to execute a continuous query on a Goede re
## Prerequisites
* Install [Apache Geode](https://geode.apache.org)
* Build and install [Apache Geode Native](https://github.com/apache/geode-native)
+* Apache Geode Native examples, built and installed
+* Set `GEODE_HOME` to the install directory of Apache Geode
## Running
-* Start Geode Server and create region.
- ```
- gfsh>start locator --name=locator
- gfsh>start server --name=server
- gfsh>create region --name=example_orderobject --type=PARTITION
- ```
-* Execute `ContinuousQueryCS.exe`
+1. From a command shell, set the current directory to the `ContinuousQueryCs` directory in your example workspace.
+
+ ```console
+ $ cd workspace/examples/dotnet/ContinuousQueryCs
+ ```
+
+2. Run the `startserver.ps1` script to start the Geode cluster with authentication and create a region.
+
+ For Windows cmd:
+
+ ```console
+ $ powershell.exe -File startserver.ps1
+ ```
+
+ For Windows Powershell:
+
+ ```console
+ $ startserver.ps1
+ ```
+
+3. Execute `ContinuousQueryCs.exe`, expect the following output:
- output:
- ```
- Registering for data serialization
- Executing continuous query
- Create orders
- Putting and changing Order objects in the region
- MyCqListener::OnEvent(CREATE) called with key Order2, value Order: [2, product y, 37]
- MyCqListener::OnEvent(CREATE) called with key Order4, value Order: [4, product z, 102]
- MyCqListener::OnEvent(CREATE) called with key Order6, value Order: [6, product z, 42]
- MyCqListener::OnEvent(UPDATE) called with key Order2, value Order: [2, product y, 45]
- MyCqListener::OnEvent(DESTROY) called with key Order2, value Order: [2, product y, 29]
- MyCqListener::OnEvent(DESTROY) called with key Order6, value null
- MyCqListener::close called
- ```
+ Registering for data serialization
+ Executing continuous query
+ Create orders
+ Putting and changing Order objects in the region
+ MyCqListener::OnEvent(CREATE) called with key Order2, value Order: [2, product y, 37]
+ MyCqListener::OnEvent(CREATE) called with key Order4, value Order: [4, product z, 102]
+ MyCqListener::OnEvent(CREATE) called with key Order6, value Order: [6, product z, 42]
+ MyCqListener::OnEvent(UPDATE) called with key Order2, value Order: [2, product y, 45]
+ MyCqListener::OnEvent(DESTROY) called with key Order2, value Order: [2, product y, 29]
+ MyCqListener::OnEvent(DESTROY) called with key Order6, value null
+ MyCqListener::close called
+
+4. Run the `stopserver.ps1` script to gracefully shutdown the Geode cluster.
+
+ For Windows cmd:
+
+ ```console
+ $ powershell.exe -File stopserver.ps1
+ ```
+
+ For Windows Powershell:
+
+ ```console
+ $ stopserver.ps1
+ ```
\ No newline at end of file
diff --git a/examples/dotnet/dataserializable/README.md b/examples/dotnet/dataserializable/README.md
index 593ebc9..a0e57f7 100644
--- a/examples/dotnet/dataserializable/README.md
+++ b/examples/dotnet/dataserializable/README.md
@@ -4,50 +4,50 @@ This is a simple example showing how to register for serialization of custom obj
## Prerequisites
* Install [Apache Geode](https://geode.apache.org)
* Build and install [Apache Geode Native](https://github.com/apache/geode-native)
+* Apache Geode Native examples, built and installed
+* Set `GEODE_HOME` to the install directory of Apache Geode
## Running
-* Open a PowerShell window and `cd` to the `DataSerializableCs` example directory
-* Run `startserver.ps1` to start the Geode Server and create a region.
-
- ```
- PS C:\> startserver.ps1
- (1) Executing - start locator --name=locator
- ...
- (2) Executing - start server --name=server
- ...
- (3) Executing - create region --name=custom_orders --type=PARTITION
-
- Member | Status
- ------ | -------------------------------------------
- server | Region "/custom_orders" created on "server"
-
- ```
-* Execute `DataSerializable.exe` to store and retrieve serializable `Order` objects.
-
- ```
- PS C:\> DataSerializableCs.exe
- Create orders
- Storing orders in the region
- Getting the orders from the region
- OrderID: 1
- Product Name: product x
- Quantity: 23
- OrderID: 2 Product Name: product y Quantity: 37
- ```
-* Run `stopserver.ps1` to shut down the server.
-
- ```
- PS C:\> stopserver.ps1
- (1) Executing - connect
- ...
- (2) Executing - destroy region --name=custom_orders
-
- Member | Status
- ------ | ----------------------------------------------
- server | Region '/custom_orders' destroyed successfully
+1. From a command shell, set the current directory to the `DataSerializableCs` directory in your example workspace.
+
+ ```console
+ $ cd workspace/examples/dotnet/DataSerializableCs
+ ```
+
+2. Run the `startserver.ps1` script to start the Geode cluster with authentication and create a region.
+
+ For Windows cmd:
+
+ ```console
+ $ powershell.exe -File startserver.ps1
+ ```
+
+ For Windows Powershell:
+
+ ```console
+ $ startserver.ps1
+ ```
+
+3. Execute `DataSerializableCs.exe`, expect the following output:
- (3) Executing - stop server --name=server
- ...
- (4) Executing - stop locator --name=locator
+ Create orders
+ Storing orders in the region
+ Getting the orders from the region
+ OrderID: 1
+ Product Name: product x
+ Quantity: 23
+ OrderID: 2 Product Name: product y Quantity: 37
+
+4. Run the `stopserver.ps1` script to gracefully shutdown the Geode cluster.
+
+ For Windows cmd:
+
+ ```console
+ $ powershell.exe -File stopserver.ps1
+ ```
+
+ For Windows Powershell:
- ```
\ No newline at end of file
+ ```console
+ $ stopserver.ps1
+ ```
\ No newline at end of file
diff --git a/examples/dotnet/functionexecution/README.md b/examples/dotnet/functionexecution/README.md
index 63045e6..92d8e16 100644
--- a/examples/dotnet/functionexecution/README.md
+++ b/examples/dotnet/functionexecution/README.md
@@ -4,22 +4,51 @@ This example illustrates how to execute server side java functions.
## Prerequisites
* Install [Apache Geode](https://geode.apache.org)
* Build and install [Apache Geode Native](https://github.com/apache/geode-native)
+* Apache Geode Native examples, built and installed
+* Set `GEODE_HOME` to the install directory of Apache Geode
## Running
-* Run the following Powershell script which starts the Geode Locator, deploys the jar file containing your function, starts the Geode Server, and creates the region.
- ```
- PS> startserver.ps1
- ```
-* Execute `Apache.Geode.Examples.FunctionExecutionCs.exe`.
-
- output:
- ```
- Storing id and username in the region
- Getting the user info from the region
- rtimmons = Robert Timmons
- scharles = Sylvia Charles
- Function Execution Results:
- Count = 1
- value = Robert Timmons
- value = Sylvia Charles
- ```
+1. From a command shell, set the current directory to the `DataSerializableCs` directory in your example workspace.
+
+ ```console
+ $ cd workspace/examples/dotnet/DataSerializableCs
+ ```
+
+2. Run the `startserver.ps1` script to start the Geode cluster with authentication and create a region.
+
+ For Windows cmd:
+
+ ```console
+ $ powershell.exe -File startserver.ps1
+ ```
+
+ For Windows Powershell:
+
+ ```console
+ $ startserver.ps1
+ ```
+
+3. Execute `FunctionExecutionCs.exe`, expect the following output:
+
+ Storing id and username in the region
+ Getting the user info from the region
+ rtimmons = Robert Timmons
+ scharles = Sylvia Charles
+ Function Execution Results:
+ Count = 1
+ value = Robert Timmons
+ value = Sylvia Charles
+
+4. Run the `stopserver.ps1` script to gracefully shutdown the Geode cluster.
+
+ For Windows cmd:
+
+ ```console
+ $ powershell.exe -File stopserver.ps1
+ ```
+
+ For Windows Powershell:
+
+ ```console
+ $ stopserver.ps1
+ ```
\ No newline at end of file
diff --git a/examples/dotnet/pdxautoserializer/README.md b/examples/dotnet/pdxautoserializer/README.md
index 26640ba..2e311db 100644
--- a/examples/dotnet/pdxautoserializer/README.md
+++ b/examples/dotnet/pdxautoserializer/README.md
@@ -4,21 +4,48 @@ This is a simple example showing how to register for auto-serialization of custo
## Prerequisites
* Install [Apache Geode](https://geode.apache.org)
* Build and install [Apache Geode Native](https://github.com/apache/geode-native)
+* Apache Geode Native examples, built and installed
+* Set `GEODE_HOME` to the install directory of Apache Geode
## Running
-* Start Geode Server and create region.
- ```
- gfsh>start locator --name=locator
- gfsh>start server --name=server
- gfsh>create region --name=example_orderobject --type=PARTITION
- ```
-* Execute `PdxAutoSerializer.exe`.
+1. From a command shell, set the current directory to the `PdxAutoSerializerCs` directory in your example workspace.
+
+ ```console
+ $ cd workspace/examples/dotnet/PdxAutoSerializerCs
+ ```
+
+2. Run the `startserver.ps1` script to start the Geode cluster with authentication and create a region.
+
+ For Windows cmd:
+
+ ```console
+ $ powershell.exe -File startserver.ps1
+ ```
+
+ For Windows Powershell:
+
+ ```console
+ $ startserver.ps1
+ ```
+
+3. Execute `PdxAutoSerializerCs.exe`, expect the following output:
- output:
- ```
- Registering for reflection-based auto serialization
- Storing order object in the region
- order to put is Order: [65, Vox AC30, 11]
- Successfully put order, getting now...
- Order key: 65 = Order: [65, Vox AC30, 11]
- ```
+ Registering for reflection-based auto serialization
+ Storing order object in the region
+ order to put is Order: [65, Vox AC30, 11]
+ Successfully put order, getting now...
+ Order key: 65 = Order: [65, Vox AC30, 11]
+
+4. Run the `stopserver.ps1` script to gracefully shutdown the Geode cluster.
+
+ For Windows cmd:
+
+ ```console
+ $ powershell.exe -File stopserver.ps1
+ ```
+
+ For Windows Powershell:
+
+ ```console
+ $ stopserver.ps1
+ ```
\ No newline at end of file
diff --git a/examples/dotnet/pdxserializable/README.md b/examples/dotnet/pdxserializable/README.md
index 0ee135e..19d773e 100644
--- a/examples/dotnet/pdxserializable/README.md
+++ b/examples/dotnet/pdxserializable/README.md
@@ -4,21 +4,48 @@ This is a simple example showing how to register for serialization of custom obj
## Prerequisites
* Install [Apache Geode](https://geode.apache.org)
* Build and install [Apache Geode Native](https://github.com/apache/geode-native)
+* Apache Geode Native examples, built and installed
+* Set `GEODE_HOME` to the install directory of Apache Geode
## Running
-* Start Geode Server and create region.
- ```
- gfsh>start locator --name=locator
- gfsh>start server --name=server
- gfsh>create region --name=example_orderobject --type=PARTITION
- ```
-* Execute `PdxSerializableCs.exe`.
+1. From a command shell, set the current directory to the `PdxSerializableCs` directory in your example workspace.
+
+ ```console
+ $ cd workspace/examples/dotnet/PdxSerializableCs
+ ```
+
+2. Run the `startserver.ps1` script to start the Geode cluster with authentication and create a region.
+
+ For Windows cmd:
+
+ ```console
+ $ powershell.exe -File startserver.ps1
+ ```
+
+ For Windows Powershell:
+
+ ```console
+ $ startserver.ps1
+ ```
+
+3. Execute `PdxSerializableCs.exe`, expect the following output:
- output:
- ```
- Registering for data serialization
- Storing order object in the region
- order to put is Order: [65, Donuts, 12]
- Successfully put order, getting now...
- Order key: 65 = Order: [65, Donuts, 12]
- ```
+ Registering for data serialization
+ Storing order object in the region
+ order to put is Order: [65, Donuts, 12]
+ Successfully put order, getting now...
+ Order key: 65 = Order: [65, Donuts, 12]
+
+4. Run the `stopserver.ps1` script to gracefully shutdown the Geode cluster.
+
+ For Windows cmd:
+
+ ```console
+ $ powershell.exe -File stopserver.ps1
+ ```
+
+ For Windows Powershell:
+
+ ```console
+ $ stopserver.ps1
+ ```
\ No newline at end of file
diff --git a/examples/dotnet/put-get-remove/README.md b/examples/dotnet/put-get-remove/README.md
index 66f62cb..9fb3c7d 100644
--- a/examples/dotnet/put-get-remove/README.md
+++ b/examples/dotnet/put-get-remove/README.md
@@ -6,22 +6,48 @@ We then put, get, and remove some primitive data in the region.
## Prerequisites
* Install [Apache Geode](https://geode.apache.org)
* Build and install [Apache Geode Native](https://github.com/apache/geode-native)
+* Apache Geode Native examples, built and installed
+* Set `GEODE_HOME` to the install directory of Apache Geode
## Running
-* Start Geode Server and create region.
- ```
- gfsh>start locator --name=locator
- gfsh>start server --name=server
- gfsh>create region --name=example_userinfo --type=PARTITION
- ```
-* Execute `Apache.Geode.Examples.PutGetRemove.exe`.
+1. From a command shell, set the current directory to the `PutGetRemove` directory in your example workspace.
+
+ ```console
+ $ cd workspace/examples/dotnet/PutGetRemove
+ ```
+
+2. Run the `startserver.ps1` script to start the Geode cluster with authentication and create a region.
+
+ For Windows cmd:
+
+ ```console
+ $ powershell.exe -File startserver.ps1
+ ```
+
+ For Windows Powershell:
+
+ ```console
+ $ startserver.ps1
+ ```
+
+3. Execute `PutGetRemove.exe`, expect the following output:
- output:
- ```
- Storing id and username in the region
- Getting the user info from the region
- rtimmons = Robert Timmons
- scharles = Sylvia Charles
- Removing rtimmons info from the region
- Info for rtimmons has been deleted
- ```
+ Storing id and username in the region
+ Getting the user info from the region
+ rtimmons = Robert Timmons
+ scharles = Sylvia Charles
+ Removing rtimmons info from the region
+ Info for rtimmons has been deleted
+
+4. Run the `stopserver.ps1` script to gracefully shutdown the Geode cluster.
+
+ For Windows cmd:
+
+ ```console
+ $ powershell.exe -File stopserver.ps1
+ ```
+
+ For Windows Powershell:
+ ```console
+ $ stopserver.ps1
+ ```
\ No newline at end of file
diff --git a/examples/dotnet/remotequery/README.md b/examples/dotnet/remotequery/README.md
index 9876dd1..c7d49ef 100644
--- a/examples/dotnet/remotequery/README.md
+++ b/examples/dotnet/remotequery/README.md
@@ -4,24 +4,51 @@ This is a simple example showing how to execute a query on a remote region.
## Prerequisites
* Install [Apache Geode](https://geode.apache.org)
* Build and install [Apache Geode Native](https://github.com/apache/geode-native)
+* Apache Geode Native examples, built and installed
+* Set `GEODE_HOME` to the install directory of Apache Geode
## Running
-* Start Geode Server and create region.
- ```
- gfsh>start locator --name=locator
- gfsh>start server --name=server
- gfsh>create region --name=custom_orders --type=PARTITION
- ```
-* Execute `RemoteQueryCs.exe`.
-
- output:
- ```
- Registering for data serialization
- Create orders
- Storing orders in the region
- Getting the orders from the region
- The following orders have a quantity greater than 30:
- Order: [6, product z, 42]
- Order: [4, product z, 102]
- Order: [2, product y, 37]
- ```
+1. From a command shell, set the current directory to the `RemoteQueryCs` directory in your example workspace.
+
+ ```console
+ $ cd workspace/examples/dotnet/RemoteQueryCs
+ ```
+
+2. Run the `startserver.ps1` script to start the Geode cluster with authentication and create a region.
+
+ For Windows cmd:
+
+ ```console
+ $ powershell.exe -File startserver.ps1
+ ```
+
+ For Windows Powershell:
+
+ ```console
+ $ startserver.ps1
+ ```
+
+3. Execute `RemoteQueryCs.exe`, expect the following output:
+
+ Registering for data serialization
+ Create orders
+ Storing orders in the region
+ Getting the orders from the region
+ The following orders have a quantity greater than 30:
+ Order: [6, product z, 42]
+ Order: [4, product z, 102]
+ Order: [2, product y, 37]
+
+4. Run the `stopserver.ps1` script to gracefully shutdown the Geode cluster.
+
+ For Windows cmd:
+
+ ```console
+ $ powershell.exe -File stopserver.ps1
+ ```
+
+ For Windows Powershell:
+
+ ```console
+ $ stopserver.ps1
+ ```
\ No newline at end of file