{"id":26898638,"url":"https://github.com/coherence-community/coherence-demo","last_synced_at":"2025-09-04T00:08:25.052Z","repository":{"id":9878230,"uuid":"60644724","full_name":"coherence-community/coherence-demo","owner":"coherence-community","description":"The Coherence Demonstration","archived":false,"fork":false,"pushed_at":"2025-08-13T00:50:05.000Z","size":162242,"stargazers_count":16,"open_issues_count":0,"forks_count":12,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-08-13T02:38:52.370Z","etag":null,"topics":["coherence","coherence-demonstration","java","oracle-coherence"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/coherence-community.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-06-07T20:37:35.000Z","updated_at":"2025-08-13T00:50:01.000Z","dependencies_parsed_at":"2024-03-25T05:34:42.605Z","dependency_job_id":"d09fd463-abbc-459c-adf9-490cc4af557e","html_url":"https://github.com/coherence-community/coherence-demo","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/coherence-community/coherence-demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coherence-community%2Fcoherence-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coherence-community%2Fcoherence-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coherence-community%2Fcoherence-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coherence-community%2Fcoherence-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/coherence-community","download_url":"https://codeload.github.com/coherence-community/coherence-demo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coherence-community%2Fcoherence-demo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273529603,"owners_count":25121837,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-03T02:00:09.631Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["coherence","coherence-demonstration","java","oracle-coherence"],"created_at":"2025-04-01T05:48:18.351Z","updated_at":"2025-09-04T00:08:24.570Z","avatar_url":"https://github.com/coherence-community.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Oracle Coherence Demonstration Application\n\n\u003cimg src=https://oracle.github.io/coherence/assets/images/logo-red.png\u003e\u003cimg\u003e\n\n![Coherence Demo](assets/coherence-demo-movie.gif \"Coherence Demo\")\n\n\n![Java CI with Maven](https://github.com/coherence-community/coherence-demo/workflows/Java%20CI%20with%20Maven/badge.svg)  ![Java CI with Maven](https://github.com/coherence-community/coherence-demo/workflows/Java%20CI%20with%20Maven%20-%20Snapshots/badge.svg)\n\n## Overview\n\nThis document describes how to build and run the Coherence Demonstration application.\nThe application showcases Coherence general features, scalability capabilities including:\n\n* Clustering and Data Sharding\n* Scalability and High Availability\n* Disk-Based Persistence\n* Parallel Queries\n* Efficient Aggregation\n* In-Place Processing\n* Federation (Grid Edition feature only)\n* Lambda Support\n* OpenTracing Support\n* Polyglot client access from JavaScript, Python and Golang\n* Listening for events using Server Sent Events (SSE)\n\nYou can run the application locally using `mvn exec:exec` or run on Kubernetes using the Coherence Operator. See the table\nof contents below for instructions.\n\nThe demonstration uses AngularJS 1.7.5, Bootstrap 3.3.4, and a number of other frameworks. The UI interacts with Coherence using the REST API.\n\n\u003e Note: By default, this demonstration uses the [Coherence Community Edition](https://github.com/oracle/coherence) version 24.09 and\n\u003e as a consequence the commercial-only feature \"Federation\" is not available by default.\n\u003e\n\u003e Please see  [here](#run-the-demonstration-using-coherence-grid-edition) if you wish to enable Federation by running using Coherence Grid Edition.\n\u003e\n\u003e This version has been updated to move from `javax` -\u003e `jakarta` packages and as such\n\u003e if you wish to run this demo against a previous CE or Grid Edition version, you must use `git checkout v5.0.1` to checkout a release of the demo that works with this version.\n\n## Table of Contents\n\n- Oracle Coherence Demonstration Application\n  * [Overview](#overview)\n  * [Table of Contents](#table-of-contents)\n  * [Prerequisites](#prerequisites)\n    + [General Prerequisites](#general-prerequisites)\n    + [OpenTracing Prerequisites](#openTracing-prerequisites)\n  * [Run the Application Locally](#run-the-application-locally)\n      - [Modify the Defaults](#modify-the-defaults)\n  - [Run the Polyglot clients](clients/README.md)\n  * [Run the Application on Kubernetes](#run-the-application-on-kubernetes)\n  * [Enable Federation on Kubernetes (Grid Edition Only)](#enable-federation-on-kubernetes-grid-edition-only)\n  * [Run the Demonstration using Coherence Grid Edition](#run-the-demonstration-using-coherence-grid-edition)\n  * [View Cluster Metrics via Grafana](#view-cluster-metrics-via-grafana)\n  * [References](#references)\n\n## Prerequisites\n\n### General Prerequisites\n\nTo run the demonstration application, you must have the following software installed:\n\n1. Java 21 SE Development Kit or Runtime environment.\n\n   You can download JDK 21 from [Java SE Development Kit Downloads](https://www.oracle.com/java/technologies/downloads/)\n\n2. Maven 3.6.0 or later version installed and configured.\n\n3. Use a web browser that supports AngularJS to run the application. The following browsers are supported:\n   * Safari, Chrome, Firefox, Opera 15, IE9 and mobile browsers (Android, Chrome Mobile, iOS Safari).\n\n   For more information about browser compatibility, see https://code.angularjs.org/1.7.5/docs/misc/faq.\n\n### OpenTracing Prerequisites\n\nIf you wish to demonstrate OpenTracing, then prior to running the demo, start the Jaeger OpenTracing implementation:\n\n```bash\ndocker run --rm -d --name jaeger \\\n        -e COLLECTOR_ZIPKIN_HTTP_PORT=9411 \\\n        -p 5775:5775/udp \\\n        -p 6831:6831/udp \\\n        -p 6832:6832/udp \\\n        -p 5778:5778 \\\n        -p 16686:16686 \\\n        -p 14268:14268 \\\n        -p 9411:9411 \\\n        jaegertracing/all-in-one:1.20\n```\n\nNavigate to [http://localhost:16686](http://localhost:16686) in order to access the Jaeger UI.\n\nNote: If Jaeger is already running in your environment locally, you can skip this step.  If Jaeger is available\nat a different location, specify the `JAEGER_ENDPOINT` JVM property when starting the demo to override the default\nlocation.\n\n\u003e The following screenshot shows the Jaegar UI and a trace from a JAX-RS call to Coherence\n\u003e to JPA cache store, then backing up of cache entries across to another node.\n\n![Coherence Demo](assets/jaeger-ui.png \"Jaegar UI showing tracing\")\n\n## Run the Application Locally\n\nBuild the application using Maven:\n\n```bash\nmvn clean install\n```\n\nThe `target` directory contains a list of files:\n\n```bash\ncoherence-demo-{version}-SNAPSHOT-javadoc.jar - javadoc\ncoherence-demo-{version}-SNAPSHOT-sources.jar - sources\n```\n\nRun demo application\n\n```bash\nmvn exec:exec\n```\n\n\u003e Note: If you wish to run against an older Coherence CE version than 22.09 or older than Coherence GE 14.1.1.2206.1, then *must* first use `git checkout v5.0.1` to use the\n\u003e current 5.0.1 release that supports these older versions.\n\nThe following screenshot shows the application running with 5 cache servers started.\n\n![Coherence Demo](assets/coherence-demo.png \"Coherence Demo\")\n\nA Coherence Cache server and HTTP server are started on port 8080 for serving application data. When the Cache server starts, the application loads on the default web browser at http://127.0.0.1:8080/application/index.html.\n\nThe following features are available to demonstrate in the application:\n\n* Dynamically add or remove cluster members and observe the data repartition and recover automatically.\n* Create and recover snapshots from the **Persistence** menu.\n* Enable real-time price updates.\n* Enable or disable indexes for queries.\n* Add additional data, clear the cache or populate the cache from the **Tools** menu.\n* Show OpenTracing Support\n* Open raw metrics endpoint\n\nFederation Features - Grid Edition Only\n* Start a secondary cluster from the **Federation** menu.\n* Pause and resume replication to secondary cluster.\n* Issue replicate all to secondary cluster.\n* Open secondary cluster dashboard to observe changes are replicated.\n* Stop Federation and shut down secondary cluster.\n\n\u003e Note: If you wish to connect to the cluster via the VisualVM Plugin, see https://github.com/oracle/coherence-visualvm.\n\n\u003e **Note:** If you recover a snapshot on a cluster, you must replicate all to resynchronize.\n\nTo shut down the application, select **Shutdown** option from the **Tools** menu. This shuts down all the processes including the secondary cluster if started.\n\n\u003e **Note:** Secondary cluster will not form if you are running on a virtual private network due to security restrictions.\n\nYou can use the following to run the application with the `Metrics` endpoint enabled:\n\n```bash\nmvn -Dmetrics.enabled=true exec:exec\n```\n\nFrom the `Tools` menu choose `Show Raw Metrics` to view the raw metrics.\n\n### Modify the Defaults\n\n**HTTP Ports and Hostname**\n\nThe default HTTP hostname is 127.0.0.1 and default port is 8080. To modify these you can add the `http.hostname` or `http.port` properties on startup:\n\n```bash\nmvn -Dhttp.hostname=myhostname -Dhttp.port=9000 exec:exec\n```\nBy changing the `http.hostname` you can access the application outside of\nyour local machine.\n\n## Run the Application on Kubernetes\n\nThe steps to run the application on Kubernetes comprises:\n\n* Use `kubectl` to install the Oracle Coherence Operator\n* Use `kubectl` to install the Coherence cluster which comprises 2 roles:\n  * storage-enabled Coherence servers\n  * storage-disabled application with Grizzly HTTP Server\n\n\u003e **Note:** If you want to enable Federation when running on Kubernetes, see [Enable Federation on Kubernetes](#enable-federation-on-kubernetes).\n\n1. **Create Namespace**\n\n   Run the application using the Oracle Coherence Operator in a namespace called `coherence-example`. Create the demonstration namespace:\n   ```bash\n   kubectl create namespace coherence-example\n\n   namespace/coherence-example created\n   ```   \n\n2. **Build and Push Docker Image**\n\n   Ensure that you have Docker running locally and execute the following command which will\n   used the `jib-maven-plugin` to build a Docker image.\n\n   ```bash\n   mvn clean install -P docker\n   ```\n\n   This creates an image named `coherence-demo:8.1.0-SNAPSHOT` which contains everything needed to run the demo.\n\n   \u003e Note: If you are running against a remote Kubernetes cluster, you need to push the Docker\n   \u003e image to your repository accessible to that cluster. You also need to prefix the image name in the `yaml` files used in the `helm` commands below.\n   \u003e Find your Docker image id with `docker images` and tag it with your prefix: `docker tag image youname/coherence-demo:8.1.0-SNAPSHOT` and\n   \u003e them push using `docker push youname/coherence-demo:8.1.0-SNAPSHOT`.\n\n3. **Install the Oracle Coherence Operator**\n\n   You must have a supported version of Kubernetes. Please see https://github.com/oracle/coherence-operator for more details. \n\n   Install the operator using `kubectl`. (It will be installed into a new namespace called `coherence`)\n\n   ```bash\n   kubectl apply -f https://github.com/oracle/coherence-operator/releases/download/v3.5.2/coherence-operator.yaml\n   ```\n\n   Confirm the creation of the operator:\n\n   ```bash\n    kubectl get pods -n coherence\n    NAME                                                     READY   STATUS    RESTARTS      AGE\n    coherence-operator-controller-manager-55fd645db8-9tnvq   1/1     Running   1 (11m ago)   12m\n    coherence-operator-controller-manager-55fd645db8-bk46q   1/1     Running   1 (11m ago)   12m\n    coherence-operator-controller-manager-55fd645db8-rlfv8   1/1     Running   0             12m\n   ```\n\n\n4. **Install the Coherence Cluster**\n\n   The Coherence cluster comprises 2 roles:\n\n   * storage - contains the storage-enabled tier which stores application data\n   * http - contains a storage-disabled http server which serves the application\n\n   The file [demo-cluster.yaml](yaml/demo-cluster.yaml) contains the yaml to install the two\n   Coherence cluster roles.       \n\n   Issue the following command to install the Coherence cluster using the above yaml:\n\n   ```bash\n   kubectl create --namespace coherence-example -f yaml/demo-cluster.yaml\n   ```                                                              \n\n   Use `kubectl get pods --namespace coherence-example` to ensure that the pod is running.\n   The pod primary-cluster-storage-0 must be running and ready as shown:\n\n   ```bash\n    kubectl get pods -n coherence-example\n    NAME                        READY   STATUS    RESTARTS   AGE\n    primary-cluster-http-0      1/1     Running   0          5s\n    primary-cluster-storage-0   1/1     Running   0          5s\n    primary-cluster-storage-1   1/1     Running   0          5s\n   ```\n\n   If the pod does not show as `Running`, you can use the following command to diagnose and troubleshoot the pod:\n\n   ```bash\n   kubectl describe pod primary-cluster-storage-0 --namespace coherence-example\n   ```\n\n5. **Port Forward the HTTP Port**\n\n   ```bash\n   kubectl port-forward --namespace coherence-example primary-cluster-http-0 8080:8080\n   ```  \n\n6. **Access the Application**\u003c/br\u003e\n\n   Use the following URL to access the application home page:\n\n   [http://127.0.0.1:8080/application/index.html](http://127.0.0.1:8080/application/index.html)  \n\n7. **Scale the Application**\n\n   When running the application in Kubernetes, the **Add Server** and **Remove Server** options are not available. You need to use `kubectl` to scale the application.\n\n   Scale the application to three nodes by editing `demo-cluster.yaml` and changing\n   the `replicas` value for the `storage` role to 3. Then apply using\n\n   ```bash\n   kubectl apply --namespace coherence-example -f yaml/demo-cluster.yaml\n   ```      \n\n   You can also use the following to scale the cluster:\n\n   ```bash\n   kubectl scale --namespace coherence-example coherence/primary-cluster-storage --replicas=6\n   ```    \n\n   Use `kubectl  --namespace coherence-example rollout status sts/primary-cluster-storage` to view the progress.\n\n8. **Scale the Application down**\n\n   Scale the application to one node by editing `demo-cluster.yaml` and changing\n   the `replicas` value for the `storage` role to 1. Then apply using\n\n   ```bash\n   kubectl apply --namespace coherence-example -f yaml/demo-cluster.yaml\n   ```                    \n\n   Use `kubectl -n coherence-example rollout status sts/primary-cluster-storage` to view the progress.\n\n   \u003e Note: The Coherence Operator ensures that all scale operations are\n   \u003e carried out in a safe manner (checking service statusHA values) to ensure no data is lost.\n   \u003e You can confirm this by checking the number of positions are the same as before the scale-down was initiated.                                                                                                                                                                                                                                                                                                                                                                                   \n\n9. Uninstall the Coherence Cluster\n\n    Use the following to uninstall the Coherence cluster.\n\n    ```bash\n    kubectl delete --namespace coherence-example -f yaml/demo-cluster.yaml    \n    ```\n\n## Enable Federation on Kubernetes (Grid Edition Only)\n\nYou must use Oracle Coherence 12.2.1.4.0 or later for Federation to work within Kubernetes.\n\nThe setup for this example uses two Coherence clusters in the same Kubernetes cluster. If you want to use Federation across Kubernetes cluster, see the [Oracle Coherence Operator Samples]https://docs.coherence.community/coherence-operator/docs/latest/examples/021_deployment/README).\n\n* Primary Cluster\n  * Cluster name: primary-cluster\n* Secondary Cluster\n  * Cluster name: secondary-cluster\n\n\u003e **Note**: For this Federation example, the installation is simplified by using the storage-enabled pods to also serve the HTTP requests.\n\n1. **Create Namespace**\n\n   Run the application using the Oracle Coherence Operator in a namespace called `coherence-example`. Create the demonstration namespace:\n   ```bash\n   kubectl create namespace coherence-example\n\n   namespace/coherence-example created\n   ```  \n\n1. Build the Docker image:\n\n   ```bash\n   git checkout v5.0.1 # required for pre CE 22.09 versions\n   mvn clean install -P docker,grid-edition -Dcoherence.version={coherence.version}\n   ```\n\n   \u003e **Note:** The `coherence.version` property must be set to your installed Coherence Grid Edition version.\n\n4. Install the **Primary** cluster:\n\n   The file [primary-cluster.yaml](yaml/primary-cluster.yaml) contains the yaml to install the\n   `primary-cluster` Coherence cluster.      \n\n    Issue the following command to install the Coherence cluster using the above yaml:   \n\n   ```bash\n   kubectl create --namespace coherence-example -f yaml/primary-cluster.yaml\n   ```                                                              \n\n   Use `kubectl get pods --namespace coherence-example` to ensure that the pods are running.\n\n   ```bash\n   NAME                                 READY   STATUS    RESTARTS   AGE\n   coherence-operator-cd9b646d5-tzf2j   1/1     Running   0          58m\n   primary-cluster-http-0               1/1     Running   0          74s\n   primary-cluster-storage-0            1/1     Running   0          76s\n   ```\n\n5. Port forward the Primary Cluster - Port **8088**\n\n   ```bash\n   kubectl port-forward --namespace coherence-example primary-cluster-http-0 8080:8080\n   ```\n\n   \u003e Note: You may wish to run the above command in a separate terminal as it will block to process the HTTP requests.\n\n   Use the following URL to access the application home page:\n\n   [http://127.0.0.1:8080/application/index.html](http://127.0.0.1:8080/application/index.html)  \n\n6. Install the **Secondary** cluster\n\n    The file [secondary-cluster.yaml](yaml/secondary-cluster.yaml) contains the yaml to install the\n   `secondary-cluster` Coherence cluster.      \n\n    Issue the following command to install the Coherence cluster using the above yaml:   \n\n   ```bash\n   kubectl create --namespace coherence-example -f yaml/secondary-cluster.yaml\n   ```                                                              \n\n   Use `kubectl get pods --namespace coherence-example` to ensure that the pods are running.\n\n   ```bash\n   NAME                                 READY   STATUS    RESTARTS   AGE\n   coherence-operator-cd9b646d5-tzf2j   1/1     Running   0          78m\n   primary-cluster-http-0               1/1     Running   0          2m\n   primary-cluster-storage-0            1/1     Running   0          2m\n   primary-cluster-storage-1            1/1     Running   0          2ms\n   secondary-cluster-http-0             1/1     Running   0          70s\n   secondary-cluster-storage-0          1/1     Running   0          72s\n   secondary-cluster-storage-1          1/1     Running   0          72s\n   ```\n\n7. Port forward the Secondary Cluster - Port **8090**\n\n   ```bash\n   kubectl port-forward --namespace coherence-example secondary-cluster-http-0 8090:8080\n   ```\n   Use the following URL to access the application home page:\n\n   [http://127.0.0.1:8090/application/index.html](http://127.0.0.1:8090/application/index.html)  \n\n   You can see that there is no data in the Secondary cluster as the Federation is not yet started.\n\n8. Start Federation on the Primary Cluster\n\n   In the Primary Cluster, select **Start Federation** from **Federation** menu.\n   Access the Secondary Cluster dashboard and you can see the data appearing from the Primary Cluster.   \n\n10. Uninstall the Coherence Clusters\n\n    ```bash\n    kubectl delete --namespace coherence-example -f yaml/primary-cluster.yaml    \n\n    kubectl delete --namespace coherence-example -f yaml/secondary-cluster.yaml   \n    ```\n\nBefore starting another sample, ensure that all the pods are removed from the previous sample.\n\n## Uninstalling the Coherence Operator\n\nTo remove the `coherence-operator`, the use the following:\n\n```bash\n helm delete coherence-operator --namespace coherence-example\n```\n\nFor `helm` version 2.X:\n\n```bash\nhelm delete coherence-operator --purge\n```\n\n## Run the Demonstration using Coherence Grid Edition\n\nIf you wish to demonstrate the Federation feature, which is only available in Coherence Grid Edition,\nyou must carry out the following steps.\n\n\n### Download Oracle Coherence 14.1.1.0.0 or later.\n\n   You can download Coherence from http://www.oracle.com/technetwork/middleware/coherence/downloads/index.html.\n\n   If you want to demonstrate the Coherence VisualVM plug-in, follow the instructions to install:\n   https://docs.oracle.com/en/middleware/standalone/coherence/14.1.1.0/manage/using-jmx-manage-oracle-coherence.html\n\n\n### Set the Environment Variables\n\nEnsure that the following environment variables are set in your configuration:\n\n* `JAVA_HOME` -- This variable must point to the location of the JDK version supported by the Oracle Coherence version that you use. Ensure that the path is set accordingly:\u003c/br\u003e\nFor Linux/UNIX OS:\n```bash\nexport PATH=$JAVA_HOME/bin:$PATH\n```\nFor Windows OS:\n```bash\nset PATH=%JAVA_HOME%\\bin;%PATH%\n```\n\n* `COHERENCE_HOME` -- This variable must point to the `\\coherence` directory of your Coherence installation. This is required for the Maven `install-file` commands.\n\n* `MAVEN_HOME` -- If `mvn` command is not set in your PATH variable, then set `MAVEN_HOME` directed to the `bin` folder of Maven installation and then add `MAVEN_HOME\\bin` to your PATH variable list.\n\n### Install Coherence JARs into your Maven repository\n\nInstall Coherence and Coherence HTTP Netty installed into your local maven repository.\n\nFor Linux/UNIX/Mac OS:\n\n```bash\nmvn install:install-file -Dfile=$COHERENCE_HOME/lib/coherence.jar -DpomFile=$COHERENCE_HOME/plugins/maven/com/oracle/coherence/coherence/14.1.1/coherence.14.1.1.pom\nmvn install:install-file -Dfile=$COHERENCE_HOME/lib/coherence-http-netty.jar -DpomFile=$COHERENCE_HOME/plugins/maven/com/oracle/coherence/coherence-http-netty/14.1.1/coherence-http-netty.14.1.1.pom\n```\n\nFor Windows OS:\n\n```bash\nmvn install:install-file -Dfile=%COHERENCE_HOME%\\lib\\coherence.jar -DpomFile=%COHERENCE_HOME%\\plugins\\maven\\com\\oracle\\coherence\\coherence\\14.1.1\\coherence.14.1.1.pom\nmvn install:install-file -Dfile=%COHERENCE_HOME%\\lib\\coherence-http-netty.jar -DpomFile=%COHERENCE_HOME%\\plugins\\maven\\com\\oracle\\coherence\\coherence-http-netty\\14.1.1\\coherence-http-netty.14.1.1.pom\n```\n\n### Build using the `grid-edition` profile\n\nWhen you issue any maven commands, ensure you include the `grid-edition` profile as below:\n\n```bash\ngit checkout v5.0.1 # required for pre CE 22.09 versions\nmvn clean install -P grid-edition -Dcoherence.version=14.1.1-0-0\n```\n\n\u003e **Note:** The `coherence.version` property must be set to your installed Coherence Grid Edition version.\n\nRun the application using:\n```bash\nmvn exec:exec -Pgrid-edition -Dcoherence.version=14.1.1-0-0\n```\n\n## View Cluster Metrics via Grafana\n\nIf you wish to view metrics via Grafana, please carry out the steps\n[here](https://docs.coherence.community/coherence-operator/docs/latest/examples/021_deployment/README)\nbefore you install any of the examples above.\n\n\u003e Note: Before you run the above, you must change the namespace in `src/main/yaml/prometheus-rbac.yaml` in the coherence-operator cloned repository\n\u003e from `coherence-example` to `coherence-example`.\n\nThe following screenshot shows the application running within Oracle's Cloud Infrastructure (OCI) under Kubernetes.\n\n![Coherence Demo - Grafana](assets/coherence-demo-grafana.png \"Coherence Demo - Grafana\")\n\n## References\n\nFor more information about Oracle Coherence, see the following links:\n\n* Download Coherence - [http://www.oracle.com/technetwork/middleware/coherence/downloads/index.html](http://www.oracle.com/technetwork/middleware/coherence/downloads/index.html)\n* Coherence Documentation - [https://docs.oracle.com/en/middleware/fusion-middleware/coherence/14.1.1.0/index.html](https://docs.oracle.com/en/middleware/fusion-middleware/coherence/14.1.1.0/index.html)\n* Coherence Community - [https://coherence.community/](https://coherence.community/)\n* Coherence CE - [https://github.com/oracle/coherence](https://github.com/oracle/coherence)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoherence-community%2Fcoherence-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcoherence-community%2Fcoherence-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoherence-community%2Fcoherence-demo/lists"}