Update gemfire javadoc links to geode links [#130062377]
Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/e2d0ced9 Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/e2d0ced9 Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/e2d0ced9 Branch: refs/staging/docs-grant1 Commit: e2d0ced9e50bc5bbe9a1665e7d047d86cfc9488a Parents: ebfed38 Author: Dave Barnes <[email protected]> Authored: Tue Sep 20 13:30:07 2016 -0700 Committer: Dave Barnes <[email protected]> Committed: Tue Sep 20 13:30:07 2016 -0700 ---------------------------------------------------------------------- .../extending_the_autoserializer.html.md.erb | 2 +- .../data_serialization/gemfire_data_serialization.html.md.erb | 2 +- .../events/configuring_gateway_concurrency_levels.html.md.erb | 2 +- .../events/implementing_write_behind_event_handler.html.md.erb | 4 ++-- developing/function_exec/function_execution.html.md.erb | 2 +- .../query_additional/using_query_bind_parameters.html.md.erb | 2 +- developing/query_index/maintaining_indexes.html.md.erb | 2 +- developing/query_select/the_select_statement.html.md.erb | 2 +- .../querying_basics/querying_partitioned_regions.html.md.erb | 6 +++--- developing/querying_basics/running_a_query.html.md.erb | 4 ++-- developing/transactions/working_with_transactions.html.md.erb | 2 +- getting_started/querying_quick_reference.html.md.erb | 4 ++-- managing/security/authentication_examples.html.md.erb | 4 ++-- 13 files changed, 19 insertions(+), 19 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2d0ced9/developing/data_serialization/extending_the_autoserializer.html.md.erb ---------------------------------------------------------------------- diff --git a/developing/data_serialization/extending_the_autoserializer.html.md.erb b/developing/data_serialization/extending_the_autoserializer.html.md.erb index 8191787..35cbe66 100644 --- a/developing/data_serialization/extending_the_autoserializer.html.md.erb +++ b/developing/data_serialization/extending_the_autoserializer.html.md.erb @@ -27,7 +27,7 @@ You can customize the specific behaviors in `ReflectionBasedAutoSerializer` by o These methods are only called the first time the `ReflectionBasedAutoSerializer` sees a new class. The results will be remembered and used the next time the same class is seen. -For details on these methods and their default behaviors, see the JavaDocs on [ReflectionBasedAutoSerializer](/releases/latest/javadoc/com/gemstone/gemfire/pdx/ReflectionBasedAutoSerializer.html) for details. +For details on these methods and their default behaviors, see the JavaDocs on [ReflectionBasedAutoSerializer](/releases/latest/javadoc/org/apache/geode/pdx/ReflectionBasedAutoSerializer.html) for details. ## <a id="concept_9E020566EE794A81A48A90BA798EC279__section_7C4CC39FD82A48A9B5F8376522078192" class="no-quick-link"></a>Example of Optimizing Autoserialization of BigInteger and BigDecimal Types http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2d0ced9/developing/data_serialization/gemfire_data_serialization.html.md.erb ---------------------------------------------------------------------- diff --git a/developing/data_serialization/gemfire_data_serialization.html.md.erb b/developing/data_serialization/gemfire_data_serialization.html.md.erb index d3e201b..58aeb7e 100644 --- a/developing/data_serialization/gemfire_data_serialization.html.md.erb +++ b/developing/data_serialization/gemfire_data_serialization.html.md.erb @@ -32,4 +32,4 @@ In addition to speeding standard object serialization, you can use the `DataSeri You can also use `DataSerializer` to serialize domain objects. It serializes data in the same way as `DataSerializable` but allows you to serialize classes without modifying the domain class code. -See the JavaDocs on [DataSerializable](/releases/latest/javadoc/com/gemstone/gemfire/DataSerializable.html) and [DataSerializer](/releases/latest/javadoc/com/gemstone/gemfire/DataSerializer.html) for more information. +See the JavaDocs on [DataSerializable](/releases/latest/javadoc/org/apache/geode/DataSerializable.html) and [DataSerializer](/releases/latest/javadoc/org/apache/geode/DataSerializer.html) for more information. http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2d0ced9/developing/events/configuring_gateway_concurrency_levels.html.md.erb ---------------------------------------------------------------------- diff --git a/developing/events/configuring_gateway_concurrency_levels.html.md.erb b/developing/events/configuring_gateway_concurrency_levels.html.md.erb index 8d03cc1..5d001c3 100644 --- a/developing/events/configuring_gateway_concurrency_levels.html.md.erb +++ b/developing/events/configuring_gateway_concurrency_levels.html.md.erb @@ -33,7 +33,7 @@ When using multiple `dispatcher-threads` (greater than 1) with a serial event qu - **key (default)**. All updates to the same key are distributed in order. Geode preserves key ordering by placing all updates to the same key in the same dispatcher thread queue. You typically use key ordering when updates to entries have no relationship to each other, such as for an application that uses a single feeder to distribute stock updates to several other systems. - **thread**. All region updates from a given thread are distributed in order. Geode preserves thread ordering by placing all region updates from the same thread into the same dispatcher thread queue. In general, use thread ordering when updates to one region entry affect updates to another region entry. -- **partition**. All region events that share the same partitioning key are distributed in order. Specify partition ordering when applications use a [PartitionResolver](/releases/latest/javadoc/com/gemstone/gemfire/cache/PartitionResolver.html) to implement [custom partitioning](../partitioned_regions/using_custom_partition_resolvers.html). With partition ordering, all entries that share the same "partitioning key" (RoutingObject) are placed into the same dispatcher thread queue. +- **partition**. All region events that share the same partitioning key are distributed in order. Specify partition ordering when applications use a [PartitionResolver](/releases/latest/javadoc/org/apache/geode/cache/PartitionResolver.html) to implement [custom partitioning](../partitioned_regions/using_custom_partition_resolvers.html). With partition ordering, all entries that share the same "partitioning key" (RoutingObject) are placed into the same dispatcher thread queue. You cannot configure the `order-policy` for a parallel event queue, because parallel queues cannot preserve event ordering for regions. Only the ordering of events for a given partition (or in a given queue of a distributed region) can be preserved. http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2d0ced9/developing/events/implementing_write_behind_event_handler.html.md.erb ---------------------------------------------------------------------- diff --git a/developing/events/implementing_write_behind_event_handler.html.md.erb b/developing/events/implementing_write_behind_event_handler.html.md.erb index 2fcbb13..908b0f5 100644 --- a/developing/events/implementing_write_behind_event_handler.html.md.erb +++ b/developing/events/implementing_write_behind_event_handler.html.md.erb @@ -77,7 +77,7 @@ class MyAsyncEventListener implements AsyncEventListener { ## <a id="implementing_write_behind_cache_event_handling__section_AB80262CFB6D4867B52A5D6D880A5294" class="no-quick-link"></a>Processing AsyncEvents -Use the [AsyncEventListener.processEvents](/releases/latest/javadoc/com/gemstone/gemfire/cache/asyncqueue/AsyncEventListener.html) method to process AsyncEvents. This method is called asynchronously when events are queued to be processed. The size of the list reflects the number of batch events where batch size is defined in the AsyncEventQueueFactory. The `processEvents` method returns a boolean; true if the AsyncEvents are processed correctly, and false if any events fail processing. As long as `processEvents` returns false, Geode continues to re-try processing the events. +Use the [AsyncEventListener.processEvents](/releases/latest/javadoc/org/apache/geode/cache/asyncqueue/AsyncEventListener.html) method to process AsyncEvents. This method is called asynchronously when events are queued to be processed. The size of the list reflects the number of batch events where batch size is defined in the AsyncEventQueueFactory. The `processEvents` method returns a boolean; true if the AsyncEvents are processed correctly, and false if any events fail processing. As long as `processEvents` returns false, Geode continues to re-try processing the events. You can use the `getDeserializedValue` method to obtain cache values for entries that have been updated or created. Since the `getDeserializedValue` method will return a null value for destroyed entries, you should use the `getKey` method to obtain references to cache objects that have been destroyed. Here's an example of processing AsyncEvents: @@ -217,7 +217,7 @@ To configure a write-behind cache listener, you first configure an asynchronous mutator.addAsyncEventQueueId("sampleQueue"); ``` - See the [Geode API documentation](/releases/latest/javadoc/com/gemstone/gemfire/cache/AttributesMutator.html) for more information. + See the [Geode API documentation](/releases/latest/javadoc/org/apache/geode/cache/AttributesMutator.html) for more information. 4. Optionally configure persistence and conflation for the queue. **Note:** http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2d0ced9/developing/function_exec/function_execution.html.md.erb ---------------------------------------------------------------------- diff --git a/developing/function_exec/function_execution.html.md.erb b/developing/function_exec/function_execution.html.md.erb index a881afd..70fb1a3 100644 --- a/developing/function_exec/function_execution.html.md.erb +++ b/developing/function_exec/function_execution.html.md.erb @@ -40,7 +40,7 @@ Code the methods you need for the function. These steps do not have to be done i **Note:** When you use `PartitionRegionHelper.getLocalDataForContext`, `putIfAbsent` may not return expected results if you are working on local data set instead of the region. - 4. To propagate an error condition or exception back to the caller of the function, throw a FunctionException from the `execute` method. Geode transmits the exception back to the caller as if it had been thrown on the calling side. See the Java API documentation for [FunctionException](/releases/latest/javadoc/com/gemstone/gemfire/cache/execute/FunctionException.html) for more information. + 4. To propagate an error condition or exception back to the caller of the function, throw a FunctionException from the `execute` method. Geode transmits the exception back to the caller as if it had been thrown on the calling side. See the Java API documentation for [FunctionException](/releases/latest/javadoc/org/apache/geode/cache/execute/FunctionException.html) for more information. Example function code: http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2d0ced9/developing/query_additional/using_query_bind_parameters.html.md.erb ---------------------------------------------------------------------- diff --git a/developing/query_additional/using_query_bind_parameters.html.md.erb b/developing/query_additional/using_query_bind_parameters.html.md.erb index bd68471..cf9dcea 100644 --- a/developing/query_additional/using_query_bind_parameters.html.md.erb +++ b/developing/query_additional/using_query_bind_parameters.html.md.erb @@ -10,7 +10,7 @@ The use of query bind parameters is now supported in Client-to-Server queries. The query parameters are identified by a dollar sign, $, followed by a digit that represents the parameter's position in the parameter array passed to the execute method. Counting begins at 1, so $1 references the first bound attribute, $2 the second attribute, and so on. -The Query interface provides an overloaded execute method that accepts parameters inside an Object array. See the [Query.execute](/releases/latest/javadoc/com/gemstone/gemfire/cache/query/Query.html) JavaDocs for more details. +The Query interface provides an overloaded execute method that accepts parameters inside an Object array. See the [Query.execute](/releases/latest/javadoc/org/apache/geode/cache/query/Query.html) JavaDocs for more details. The 0th element of the Object array is used for the first query parameter, and so on. If the parameter count or parameter types do not match the query specification, the execute method throws an exception. Specifically, if you pass in the wrong number of parameters, the method call throws a `QueryParameterCountInvalidException`. If a parameter object type is not compatible with what is expected, the method call throws a `TypeMismatchException`. http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2d0ced9/developing/query_index/maintaining_indexes.html.md.erb ---------------------------------------------------------------------- diff --git a/developing/query_index/maintaining_indexes.html.md.erb b/developing/query_index/maintaining_indexes.html.md.erb index 18ff97e..ae8c29b 100644 --- a/developing/query_index/maintaining_indexes.html.md.erb +++ b/developing/query_index/maintaining_indexes.html.md.erb @@ -8,7 +8,7 @@ Indexes are automatically kept current with the region data they reference. The Asynchronous index maintenance batches up multiple updates to the same region key. The default mode is synchronous, since this provides the greatest consistency with region data. -See [RegionFactory.setIndexMaintenanceSynchronous](/releases/latest/javadoc/com/gemstone/gemfire/cache/RegionFactory.html). +See [RegionFactory.setIndexMaintenanceSynchronous](/releases/latest/javadoc/org/apache/geode/cache/RegionFactory.html). This declarative index creation sets the maintenance mode to asynchronous: http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2d0ced9/developing/query_select/the_select_statement.html.md.erb ---------------------------------------------------------------------- diff --git a/developing/query_select/the_select_statement.html.md.erb b/developing/query_select/the_select_statement.html.md.erb index 36726bc..04d14df 100644 --- a/developing/query_select/the_select_statement.html.md.erb +++ b/developing/query_select/the_select_statement.html.md.erb @@ -44,7 +44,7 @@ TYPE Position WHERE portfolio.status = 'active' ## <a id="concept_85AE7D6B1E2941ED8BD2A8310A81753E__section_1B7762EC686A4808B1D12E8851954E82" class="no-quick-link"></a>SELECT Statement Results -The result of a SELECT statement is either UNDEFINED or is a Collection that implements the [SelectResults](/releases/latest/javadoc/com/gemstone/gemfire/cache/query/SelectResults.html) interface. +The result of a SELECT statement is either UNDEFINED or is a Collection that implements the [SelectResults](/releases/latest/javadoc/org/apache/geode/cache/query/SelectResults.html) interface. The SelectResults returned from the SELECT statement is either: http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2d0ced9/developing/querying_basics/querying_partitioned_regions.html.md.erb ---------------------------------------------------------------------- diff --git a/developing/querying_basics/querying_partitioned_regions.html.md.erb b/developing/querying_basics/querying_partitioned_regions.html.md.erb index aa811ce..14e7f09 100644 --- a/developing/querying_basics/querying_partitioned_regions.html.md.erb +++ b/developing/querying_basics/querying_partitioned_regions.html.md.erb @@ -7,9 +7,9 @@ Geode allows you to manage and store large amounts of data across distributed no <a id="querying_partitioned_regions__section_4C603563DEDC4303818FB8F894470457"></a> The following list summarizes the querying functionality supported by Geode for partitioned regions: -- **Ability to target specific nodes in a query**. If you know that a specific bucket contains the data that you want to query, you can use a function to ensure that your query only runs the specific node that holds the data. This can greatly improve query efficiency. The ability to query data on a specific node is only available if you are using functions and if the function is executed on one single region. In order to do this, you need to use `Query.execute(RegionFunctionContext context)`. See the [Java API](/releases/latest/javadoc/com/gemstone/gemfire/cache/query/Query.html) and [Querying a Partitioned Region on a Single Node](../query_additional/query_on_a_single_node.html#concept_30B18A6507534993BD55C2C9E0544A97) for more details. -- **Ability to optimize partitioned region query performance using key indexes**. You can improve query performance on data that is partitioned by key or a field value by creating a key index and then executing the query using use `Query.execute(RegionFunctionContext context)` with the key or field value used as filter. See the [Java API](/releases/latest/javadoc/com/gemstone/gemfire/cache/query/Query.html) and [Optimizing Queries on Data Partitioned by a Key or Field Value](../query_additional/partitioned_region_key_or_field_value.html#concept_3010014DFBC9479783B2B45982014454) for more details. -- **Ability to perform equi-join queries between partitioned regions and between partitioned regions and replicated regions**. Join queries between partitioned region and between partitioned regions and replicated regions are supported through the function service. In order to perform equi-join operations on partitioned regions or partitioned regions and replicated regions, the partitioned regions must be colocated, and you need to use the need to use `Query.execute(RegionFunctionContext context)`. See the [Java API](/releases/latest/javadoc/com/gemstone/gemfire/cache/query/Query.html) and [Performing an Equi-Join Query on Partitioned Regions](../partitioned_regions/join_query_partitioned_regions.html#concept_B930D276F49541F282A2CFE639F107DD) for more details. +- **Ability to target specific nodes in a query**. If you know that a specific bucket contains the data that you want to query, you can use a function to ensure that your query only runs the specific node that holds the data. This can greatly improve query efficiency. The ability to query data on a specific node is only available if you are using functions and if the function is executed on one single region. In order to do this, you need to use `Query.execute(RegionFunctionContext context)`. See the [Java API](/releases/latest/javadoc/org/apache/geode/cache/query/Query.html) and [Querying a Partitioned Region on a Single Node](../query_additional/query_on_a_single_node.html#concept_30B18A6507534993BD55C2C9E0544A97) for more details. +- **Ability to optimize partitioned region query performance using key indexes**. You can improve query performance on data that is partitioned by key or a field value by creating a key index and then executing the query using use `Query.execute(RegionFunctionContext context)` with the key or field value used as filter. See the [Java API](/releases/latest/javadoc/org/apache/geode/cache/query/Query.html) and [Optimizing Queries on Data Partitioned by a Key or Field Value](../query_additional/partitioned_region_key_or_field_value.html#concept_3010014DFBC9479783B2B45982014454) for more details. +- **Ability to perform equi-join queries between partitioned regions and between partitioned regions and replicated regions**. Join queries between partitioned region and between partitioned regions and replicated regions are supported through the function service. In order to perform equi-join operations on partitioned regions or partitioned regions and replicated regions, the partitioned regions must be colocated, and you need to use the need to use `Query.execute(RegionFunctionContext context)`. See the [Java API](/releases/latest/javadoc/org/apache/geode/cache/query/Query.html) and [Performing an Equi-Join Query on Partitioned Regions](../partitioned_regions/join_query_partitioned_regions.html#concept_B930D276F49541F282A2CFE639F107DD) for more details. - **[Using ORDER BY on Partitioned Regions](../../developing/query_additional/order_by_on_partitioned_regions.html)** http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2d0ced9/developing/querying_basics/running_a_query.html.md.erb ---------------------------------------------------------------------- diff --git a/developing/querying_basics/running_a_query.html.md.erb b/developing/querying_basics/running_a_query.html.md.erb index c17dbed..83b9d1d 100644 --- a/developing/querying_basics/running_a_query.html.md.erb +++ b/developing/querying_basics/running_a_query.html.md.erb @@ -61,8 +61,8 @@ To perform a client to server query, use `org.apache.geode.cache.client.Pool.get Refer to the following JavaDocs for specific APIs: -- [Query package](/releases/latest/javadoc/com/gemstone/gemfire/cache/query/package-summary.html) -- [QueryService](/releases/latest/javadoc/com/gemstone/gemfire/cache/query/QueryService.html) +- [Query package](/releases/latest/javadoc/org/apache/geode/cache/query/package-summary.html) +- [QueryService](/releases/latest/javadoc/org/apache/geode/cache/query/QueryService.html) **Note:** You can also perform queries using the gfsh `query` command. See [query](../../tools_modules/gfsh/command-pages/query.html). http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2d0ced9/developing/transactions/working_with_transactions.html.md.erb ---------------------------------------------------------------------- diff --git a/developing/transactions/working_with_transactions.html.md.erb b/developing/transactions/working_with_transactions.html.md.erb index ef29bdb..6b30c66 100644 --- a/developing/transactions/working_with_transactions.html.md.erb +++ b/developing/transactions/working_with_transactions.html.md.erb @@ -164,7 +164,7 @@ You can also use transaction plug-in event handlers when running JTA global tran When you commit a transaction, if a transaction writer is installed in the cache where the data updates were performed, it is called. The writer can do whatever work you need, including aborting the transaction. -The transaction writer is the last place that an application can rollback a transaction. If the transaction writer throws any exception, the transaction is rolled back. For example, you might use a transaction writer to update a backend data source before the Geode cache transaction completes the commit. If the backend data source update fails, the transaction writer implementation can throw a [TransactionWriterException](/releases/latest/javadoc/com/gemstone/gemfire/cache/TransactionWriterException.html) to veto the transaction. +The transaction writer is the last place that an application can rollback a transaction. If the transaction writer throws any exception, the transaction is rolled back. For example, you might use a transaction writer to update a backend data source before the Geode cache transaction completes the commit. If the backend data source update fails, the transaction writer implementation can throw a [TransactionWriterException](/releases/latest/javadoc/org/apache/geode/cache/TransactionWriterException.html) to veto the transaction. A typical usage scenario would be to use the transaction writer to prepare the commit on the external database. Then in a transaction listener, you can apply the commit on the database. http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2d0ced9/getting_started/querying_quick_reference.html.md.erb ---------------------------------------------------------------------- diff --git a/getting_started/querying_quick_reference.html.md.erb b/getting_started/querying_quick_reference.html.md.erb index a4d051d..727c086 100644 --- a/getting_started/querying_quick_reference.html.md.erb +++ b/getting_started/querying_quick_reference.html.md.erb @@ -490,9 +490,9 @@ ELEMENT(SELECT DISTINCT * FROM /exampleRegion WHERE id = 'XYZ-1').status = 'acti ## <a id="reference_D5CE64F5FD6F4A808AEFB748C867189E__section_5383407F9D004D4EB4E695252EBA1EF0" class="no-quick-link"></a>Which APIs should I use to write my queries? -If you are querying a Java applicationâs local cache or querying other members, use [org.apache.geode.cache.Cache.getQueryService](/releases/latest/javadoc/com/gemstone/gemfire/cache/query/QueryService.html). +If you are querying a Java applicationâs local cache or querying other members, use [org.apache.geode.cache.Cache.getQueryService](/releases/latest/javadoc/org/apache/geode/cache/query/QueryService.html). -If you are writing a Java client to server query, use [org.apache.geode.cache.client.Pool.getQueryService](/releases/latest/javadoc/com/gemstone/gemfire/cache/client/Pool.html). +If you are writing a Java client to server query, use [org.apache.geode.cache.client.Pool.getQueryService](/releases/latest/javadoc/org/apache/geode/cache/client/Pool.html). If you are writing a native client to server query, use the [.NET API](/releases/latest/net_api/DotNetDocs/Index.html) or the [C++ API](/releases/latest/cpp_api/cppdocs/index.html). http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/e2d0ced9/managing/security/authentication_examples.html.md.erb ---------------------------------------------------------------------- diff --git a/managing/security/authentication_examples.html.md.erb b/managing/security/authentication_examples.html.md.erb index a923679..2d88a40 100644 --- a/managing/security/authentication_examples.html.md.erb +++ b/managing/security/authentication_examples.html.md.erb @@ -8,7 +8,7 @@ The security implementation of every installation is unique, so these examples c ## <a id="authentication_examples__section_33A13D8566284AB999B5263844F61133" class="no-quick-link"></a>Using an LDAP Server for Client and Peer Authentication -The LDAP sample code is within the Geode source tree in the `geode-core/src/test/java/com/gemstone/gemfire/security/templates/` directory. The implementation is in files `UserPasswordAuthInit.java`, `LdapUserAuthenticator.java`, and `UsernamePrincipal.java`. +The LDAP sample code is within the Geode source tree in the `geode-core/src/test/java/org/apache/geode/security/templates/` directory. The implementation is in files `UserPasswordAuthInit.java`, `LdapUserAuthenticator.java`, and `UsernamePrincipal.java`. In the example, a client or joining peer submits its credentials to a server or locator, which in turn submits the credentials to the LDAP server. To be authenticated, the credentials must match one of the valid entries in the LDAP server. If the submitted credentials result in a connection to the LDAP server, then the connection is authenticated. If the connection to the LDAP server fails, an AuthenticationFailedException is sent back and the client or peer connection fails. @@ -39,7 +39,7 @@ The sample `LdapUserAuthenticator` class implements the `Authenticator` interfac ## <a id="authentication_examples__section_6CF27B7574224218A4BA372EB6664732" class="no-quick-link"></a>Using PKCS for Encrypted Client Authentication -The PKCS sample code is within the Geode source tree in the `geode-core/src/test/java/com/gemstone/gemfire/security/templates/` directory. The implementation is in files `PKCSAuthInit.java`, `PKCSAuthenticator.java`, and `PKCSPrincipal.java`. +The PKCS sample code is within the Geode source tree in the `geode-core/src/test/java/org/apache/geode/security/templates/` directory. The implementation is in files `PKCSAuthInit.java`, `PKCSAuthenticator.java`, and `PKCSPrincipal.java`. With this sample, clients send encrypted authentication credentials to a GemFire cache server when they attempt to connect to the server. The credentials are the alias name and digital signature created using the private key retrieved from the provided keystore. The server uses a corresponding public key to decrypt the credentials. If decryption is successful, the client is authenticated and it connects to the server. An unsuccessful decryption generates an `AuthenticationFailedException` that is sent to the client, and the client connection to the server is closed.
