# Google Cloud Libraries BOM

The Google Cloud Libraries BOM is a Bill-of-Materials (BOM) that provides
consistent versions of Google Cloud Java libraries and their core Google
libraries (gRPC, Protobuf, etc.).
Here is a code snippet showing how to use BOM in the `<dependencyManagement>`
section. For details, please refer to
[Google Cloud: Using Cloud Client Libraries](https://cloud.google.com/java/docs/bom).

To use it in Maven, add the following to your POM:

<!--- {x-version-update-start:libraries-bom:released} -->

```xml
 <dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.google.cloud</groupId>
      <artifactId>libraries-bom</artifactId>
      <version>26.42.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>
```
<!--- {x-version-update-end} -->

[![Maven][maven-version-image]][maven-version-link]

When you use the Libraries BOM, you don't specify individual library versions
and your application runs on a consistent set of the dependencies.

## Libraries in Scope

The content of the Libraries BOM consists of 2 categories:
- Google Cloud Java client libraries (Maven coordinates `com.google.cloud:google-cloud-XXX`, where XXX is a GCP service name) and
- Core Google dependency libraries, such as gRPC, Protobuf, and Guava.

This is the table of modules included in the latest libraries-bom release:

<!--- {x-version-update-start:libraries-bom:released} -->
### libraries-bom: v<version>26.42.0</version>
<!--- {x-version-update-end} -->

<!-- TABLE_START -->
| Artifact ID | Library Type | Google Cloud Library Reference | Google Cloud Product Reference |
| --------- | ------------ | ------------ | ------------ |
| api-common | Runtime | [2.32.0](https://cloud.google.com/java/docs/reference/api-common/latest/overview) | N/A |
| gax | Runtime | [2.49.0](https://cloud.google.com/java/docs/reference/gax/latest/overview) | N/A |
| google-analytics-admin | Product | [0.55.0](https://cloud.google.com/java/docs/reference/google-analytics-admin/latest/overview) | [Analytics Admin](https://developers.google.com/analytics) |
| google-analytics-data | Product | [0.56.0](https://cloud.google.com/java/docs/reference/google-analytics-data/latest/overview) | [Analytics Data](https://developers.google.com/analytics/trusted-testing/analytics-data) |
| google-area120-tables | Product | [0.49.0](https://cloud.google.com/java/docs/reference/google-area120-tables/latest/overview) | [Area 120 Tables](https://area120.google.com/) |
| google-auth-library | Product | [1.23.0](https://cloud.google.com/java/docs/reference/google-auth-library/latest/overview) | [Google Auth Library](n/a) |
| google-cloud-accessapproval | Product | [2.46.0](https://cloud.google.com/java/docs/reference/google-cloud-accessapproval/latest/overview) | [Access Approval](https://cloud.google.com/access-approval/docs/) |
| google-cloud-advisorynotifications | Product | [0.34.0](https://cloud.google.com/java/docs/reference/google-cloud-advisorynotifications/latest/overview) | [Advisory Notifications API](https://cloud.google.com/advisory-notifications/) |
| google-cloud-aiplatform | Product | [3.46.0](https://cloud.google.com/java/docs/reference/google-cloud-aiplatform/latest/overview) | [Vertex AI](https://cloud.google.com/vertex-ai/docs) |
| google-cloud-alloydb | Product | [0.34.0](https://cloud.google.com/java/docs/reference/google-cloud-alloydb/latest/overview) | [AlloyDB](https://cloud.google.com/alloydb/) |
| google-cloud-alloydb-connectors | Product | [0.23.0](https://cloud.google.com/java/docs/reference/google-cloud-alloydb-connectors/latest/overview) | N/A |
| google-cloud-analyticshub | Product | [0.42.0](https://cloud.google.com/java/docs/reference/google-cloud-analyticshub/latest/overview) | [Analytics Hub API](https://cloud.google.com/bigquery/TBD) |
| google-cloud-api-gateway | Product | [2.45.0](https://cloud.google.com/java/docs/reference/google-cloud-api-gateway/latest/overview) | [API Gateway](https://cloud.google.com/api-gateway/docs) |
| google-cloud-apigee-connect | Product | [2.45.0](https://cloud.google.com/java/docs/reference/google-cloud-apigee-connect/latest/overview) | [Apigee Connect](https://cloud.google.com/apigee/docs/hybrid/v1.3/apigee-connect/) |
| google-cloud-apigee-registry | Product | [0.45.0](https://cloud.google.com/java/docs/reference/google-cloud-apigee-registry/latest/overview) | [Registry API](https://cloud.google.com/apigee/docs/api-hub/get-started-registry-api) |
| google-cloud-apikeys | Product | [0.43.0](https://cloud.google.com/java/docs/reference/google-cloud-apikeys/latest/overview) | [API Keys API](https://cloud.google.com/api-keys/) |
| google-cloud-appengine-admin | Product | [2.45.0](https://cloud.google.com/java/docs/reference/google-cloud-appengine-admin/latest/overview) | [App Engine Admin API](https://cloud.google.com/appengine/docs/admin-api/) |
| google-cloud-apphub | Product | [0.9.0](https://cloud.google.com/java/docs/reference/google-cloud-apphub/latest/overview) | N/A |
| google-cloud-artifact-registry | Product | [1.44.0](https://cloud.google.com/java/docs/reference/google-cloud-artifact-registry/latest/overview) | [Artifact Registry](https://cloud.google.com/artifact-registry) |
| google-cloud-asset | Product | [3.49.0](https://cloud.google.com/java/docs/reference/google-cloud-asset/latest/overview) | [Cloud Asset Inventory](https://cloud.google.com/resource-manager/docs/cloud-asset-inventory/overview) |
| google-cloud-assured-workloads | Product | [2.45.0](https://cloud.google.com/java/docs/reference/google-cloud-assured-workloads/latest/overview) | [Assured Workloads for Government](https://cloud.google.com/assured-workloads/) |
| google-cloud-automl | Product | [2.45.0](https://cloud.google.com/java/docs/reference/google-cloud-automl/latest/overview) | [Cloud Auto ML](https://cloud.google.com/automl/docs/) |
| google-cloud-backupdr | Product | [0.4.0](https://cloud.google.com/java/docs/reference/google-cloud-backupdr/latest/overview) | N/A |
| google-cloud-bare-metal-solution | Product | [0.45.0](https://cloud.google.com/java/docs/reference/google-cloud-bare-metal-solution/latest/overview) | [Bare Metal Solution](https://cloud.google.com/bare-metal/docs) |
| google-cloud-batch | Product | [0.45.0](https://cloud.google.com/java/docs/reference/google-cloud-batch/latest/overview) | [Cloud Batch](https://cloud.google.com/) |
| google-cloud-beyondcorp-appconnections | Product | [0.43.0](https://cloud.google.com/java/docs/reference/google-cloud-beyondcorp-appconnections/latest/overview) | [BeyondCorp AppConnections](https://cloud.google.com/beyondcorp-enterprise/) |
| google-cloud-beyondcorp-appconnectors | Product | [0.43.0](https://cloud.google.com/java/docs/reference/google-cloud-beyondcorp-appconnectors/latest/overview) | [BeyondCorp AppConnectors](cloud.google.com/beyondcorp-enterprise/) |
| google-cloud-beyondcorp-appgateways | Product | [0.43.0](https://cloud.google.com/java/docs/reference/google-cloud-beyondcorp-appgateways/latest/overview) | [BeyondCorp AppGateways](https://cloud.google.com/beyondcorp-enterprise/) |
| google-cloud-beyondcorp-clientconnectorservices | Product | [0.43.0](https://cloud.google.com/java/docs/reference/google-cloud-beyondcorp-clientconnectorservices/latest/overview) | [BeyondCorp ClientConnectorServices](https://cloud.google.com/beyondcorp-enterprise/) |
| google-cloud-beyondcorp-clientgateways | Product | [0.43.0](https://cloud.google.com/java/docs/reference/google-cloud-beyondcorp-clientgateways/latest/overview) | [BeyondCorp ClientGateways](https://cloud.google.com/beyondcorp-enterprise/) |
| google-cloud-biglake | Product | [0.33.0](https://cloud.google.com/java/docs/reference/google-cloud-biglake/latest/overview) | [BigLake](https://cloud.google.com/biglake) |
| google-cloud-bigquery | Product | [2.40.3](https://cloud.google.com/java/docs/reference/google-cloud-bigquery/latest/overview) | [Cloud BigQuery](https://cloud.google.com/bigquery) |
| google-cloud-bigquery-data-exchange | Product | [2.40.0](https://cloud.google.com/java/docs/reference/google-cloud-bigquery-data-exchange/latest/overview) | [Analytics Hub](https://cloud.google.com/analytics-hub) |
| google-cloud-bigqueryconnection | Product | [2.47.0](https://cloud.google.com/java/docs/reference/google-cloud-bigqueryconnection/latest/overview) | [Cloud BigQuery Connection](https://cloud.google.com/bigquery/docs/reference/bigqueryconnection/rest) |
| google-cloud-bigquerydatapolicy | Product | [0.42.0](https://cloud.google.com/java/docs/reference/google-cloud-bigquerydatapolicy/latest/overview) | [BigQuery DataPolicy API](https://cloud.google.com/bigquery/docs/reference/datapolicy/) |
| google-cloud-bigquerydatatransfer | Product | [2.45.0](https://cloud.google.com/java/docs/reference/google-cloud-bigquerydatatransfer/latest/overview) | [BigQuery Data Transfer Service](https://cloud.google.com/bigquery/transfer/) |
| google-cloud-bigquerymigration | Product | [0.48.0](https://cloud.google.com/java/docs/reference/google-cloud-bigquerymigration/latest/overview) | [BigQuery Migration](https://cloud.google.com/bigquery/docs) |
| google-cloud-bigqueryreservation | Product | [2.46.0](https://cloud.google.com/java/docs/reference/google-cloud-bigqueryreservation/latest/overview) | [Cloud BigQuery Reservation](https://cloud.google.com/bigquery/docs/reference/reservations/rpc) |
| google-cloud-bigquerystorage | Product | [3.6.0](https://cloud.google.com/java/docs/reference/google-cloud-bigquerystorage/latest/overview) | [BigQuery Storage](https://cloud.google.com/bigquery/docs/reference/storage/) |
| google-cloud-bigtable | Product | [2.39.5](https://cloud.google.com/java/docs/reference/google-cloud-bigtable/latest/overview) | [Cloud Bigtable](https://cloud.google.com/bigtable) |
| google-cloud-billing | Product | [2.45.0](https://cloud.google.com/java/docs/reference/google-cloud-billing/latest/overview) | [Cloud Billing](https://cloud.google.com/billing/docs) |
| google-cloud-billingbudgets | Product | [2.45.0](https://cloud.google.com/java/docs/reference/google-cloud-billingbudgets/latest/overview) | [Cloud Billing Budgets](https://cloud.google.com/billing/docs/how-to/budgets) |
| google-cloud-binary-authorization | Product | [1.44.0](https://cloud.google.com/java/docs/reference/google-cloud-binary-authorization/latest/overview) | [Binary Authorization](https://cloud.google.com/binary-authorization/docs) |
| google-cloud-build | Product | [3.47.0](https://cloud.google.com/java/docs/reference/google-cloud-build/latest/overview) | [Cloud Build](https://cloud.google.com/cloud-build/) |
| google-cloud-certificate-manager | Product | [0.48.0](https://cloud.google.com/java/docs/reference/google-cloud-certificate-manager/latest/overview) | [Certificate Manager](https://cloud.google.com/certificate-manager/docs) |
| google-cloud-channel | Product | [3.49.0](https://cloud.google.com/java/docs/reference/google-cloud-channel/latest/overview) | [Channel Services](https://cloud.google.com/channel/docs) |
| google-cloud-chat | Product | [0.9.0](https://cloud.google.com/java/docs/reference/google-cloud-chat/latest/overview) | N/A |
| google-cloud-cloudcommerceconsumerprocurement | Product | [0.43.0](https://cloud.google.com/java/docs/reference/google-cloud-cloudcommerceconsumerprocurement/latest/overview) | [Cloud Commerce Consumer Procurement](https://cloud.google.com/marketplace/) |
| google-cloud-cloudcontrolspartner | Product | [0.9.0](https://cloud.google.com/java/docs/reference/google-cloud-cloudcontrolspartner/latest/overview) | N/A |
| google-cloud-cloudquotas | Product | [0.13.0](https://cloud.google.com/java/docs/reference/google-cloud-cloudquotas/latest/overview) | N/A |
| google-cloud-cloudsupport | Product | [0.29.0](https://cloud.google.com/java/docs/reference/google-cloud-cloudsupport/latest/overview) | [Google Cloud Support API](https://cloud.google.com/support/docs/reference/support-api/) |
| google-cloud-compute | Product | [1.55.0](https://cloud.google.com/java/docs/reference/google-cloud-compute/latest/overview) | [Compute Engine](https://cloud.google.com/compute/) |
| google-cloud-confidentialcomputing | Product | [0.31.0](https://cloud.google.com/java/docs/reference/google-cloud-confidentialcomputing/latest/overview) | [Confidential Computing API](https://cloud.google.com/confidential-computing/) |
| google-cloud-contact-center-insights | Product | [2.45.0](https://cloud.google.com/java/docs/reference/google-cloud-contact-center-insights/latest/overview) | [CCAI Insights](https://cloud.google.com/dialogflow/priv/docs/insights/) |
| google-cloud-container | Product | [2.48.0](https://cloud.google.com/java/docs/reference/google-cloud-container/latest/overview) | [Kubernetes Engine](https://cloud.google.com/kubernetes-engine/) |
| google-cloud-containeranalysis | Product | [2.46.0](https://cloud.google.com/java/docs/reference/google-cloud-containeranalysis/latest/overview) | [Cloud Container Analysis](https://cloud.google.com/container-registry/docs/container-analysis) |
| google-cloud-contentwarehouse | Product | [0.41.0](https://cloud.google.com/java/docs/reference/google-cloud-contentwarehouse/latest/overview) | [Document AI Warehouse](https://cloud.google.com/document-warehouse/docs/overview) |
| google-cloud-core | Runtime | [2.39.0](https://cloud.google.com/java/docs/reference/google-cloud-core/latest/overview) | [Google Cloud Core](n/a) |
| google-cloud-data-fusion | Product | [1.45.0](https://cloud.google.com/java/docs/reference/google-cloud-data-fusion/latest/overview) | [Cloud Data Fusion](https://cloud.google.com/data-fusion/docs) |
| google-cloud-datacatalog | Product | [1.51.0](https://cloud.google.com/java/docs/reference/google-cloud-datacatalog/latest/overview) | [Data Catalog](https://cloud.google.com/data-catalog) |
| google-cloud-dataflow | Product | [0.49.0](https://cloud.google.com/java/docs/reference/google-cloud-dataflow/latest/overview) | [Dataflow](https://cloud.google.com/dataflow/docs) |
| google-cloud-dataform | Product | [0.44.0](https://cloud.google.com/java/docs/reference/google-cloud-dataform/latest/overview) | [Cloud Dataform](https://cloud.google.com/dataform/docs) |
| google-cloud-datalabeling | Product | [0.165.0](https://cloud.google.com/java/docs/reference/google-cloud-datalabeling/latest/overview) | [Data Labeling](https://cloud.google.com/ai-platform/data-labeling/docs/) |
| google-cloud-datalineage | Product | [0.37.0](https://cloud.google.com/java/docs/reference/google-cloud-datalineage/latest/overview) | [Data Lineage](https://cloud.google.com/data-catalog/docs/data-lineage/) |
| google-cloud-dataplex | Product | [1.43.0](https://cloud.google.com/java/docs/reference/google-cloud-dataplex/latest/overview) | [Cloud Dataplex](https://cloud.google.com/dataplex) |
| google-cloud-dataproc | Product | [4.42.0](https://cloud.google.com/java/docs/reference/google-cloud-dataproc/latest/overview) | [Dataproc](https://cloud.google.com/dataproc) |
| google-cloud-dataproc-metastore | Product | [2.46.0](https://cloud.google.com/java/docs/reference/google-cloud-dataproc-metastore/latest/overview) | [Dataproc Metastore](https://cloud.google.com/dataproc-metastore/docs) |
| google-cloud-datastore | Product | [2.20.1](https://cloud.google.com/java/docs/reference/google-cloud-datastore/latest/overview) | [Cloud Datastore](https://cloud.google.com/datastore) |
| google-cloud-datastream | Product | [1.44.0](https://cloud.google.com/java/docs/reference/google-cloud-datastream/latest/overview) | [Datastream](https://cloud.google.com/datastream/docs) |
| google-cloud-debugger-client | Product | [1.45.0](https://cloud.google.com/java/docs/reference/google-cloud-debugger-client/latest/overview) | [Cloud Debugger](https://cloud.google.com/debugger/docs) |
| google-cloud-deploy | Product | [1.43.0](https://cloud.google.com/java/docs/reference/google-cloud-deploy/latest/overview) | [Google Cloud Deploy](https://cloud.google.com/deploy/docs) |
| google-cloud-developerconnect | Product | [0.2.0](https://cloud.google.com/java/docs/reference/google-cloud-developerconnect/latest/overview) | N/A |
| google-cloud-dialogflow | Product | [4.51.0](https://cloud.google.com/java/docs/reference/google-cloud-dialogflow/latest/overview) | [Dialogflow API](https://cloud.google.com/dialogflow-enterprise/) |
| google-cloud-dialogflow-cx | Product | [0.56.0](https://cloud.google.com/java/docs/reference/google-cloud-dialogflow-cx/latest/overview) | [Dialogflow CX](https://cloud.google.com/dialogflow/cx/docs) |
| google-cloud-discoveryengine | Product | [0.41.0](https://cloud.google.com/java/docs/reference/google-cloud-discoveryengine/latest/overview) | [Discovery Engine API](https://cloud.google.com/discovery-engine/media/docs) |
| google-cloud-distributedcloudedge | Product | [0.42.0](https://cloud.google.com/java/docs/reference/google-cloud-distributedcloudedge/latest/overview) | [Google Distributed Cloud Edge](https://cloud.google.com/distributed-cloud/edge/latest/) |
| google-cloud-dlp | Product | [3.49.0](https://cloud.google.com/java/docs/reference/google-cloud-dlp/latest/overview) | [Cloud Data Loss Prevention](https://cloud.google.com/dlp/docs/) |
| google-cloud-dms | Product | [2.44.0](https://cloud.google.com/java/docs/reference/google-cloud-dms/latest/overview) | [Database Migration Service](https://cloud.google.com/database-migration/docs) |
| google-cloud-dns | Product | [2.43.0](https://cloud.google.com/java/docs/reference/google-cloud-dns/latest/overview) | [Cloud DNS](https://cloud.google.com/dns) |
| google-cloud-document-ai | Product | [2.49.0](https://cloud.google.com/java/docs/reference/google-cloud-document-ai/latest/overview) | [Document AI](https://cloud.google.com/compute/docs/documentai/) |
| google-cloud-domains | Product | [1.42.0](https://cloud.google.com/java/docs/reference/google-cloud-domains/latest/overview) | [Cloud Domains](https://cloud.google.com/domains) |
| google-cloud-edgenetwork | Product | [0.13.0](https://cloud.google.com/java/docs/reference/google-cloud-edgenetwork/latest/overview) | N/A |
| google-cloud-enterpriseknowledgegraph | Product | [0.41.0](https://cloud.google.com/java/docs/reference/google-cloud-enterpriseknowledgegraph/latest/overview) | [Enterprise Knowledge Graph](https://cloud.google.com/enterprise-knowledge-graph/docs/overview) |
| google-cloud-errorreporting | Product | [0.166.0-beta](https://cloud.google.com/java/docs/reference/google-cloud-errorreporting/latest/overview) | [Error Reporting](https://cloud.google.com/error-reporting) |
| google-cloud-essential-contacts | Product | [2.45.0](https://cloud.google.com/java/docs/reference/google-cloud-essential-contacts/latest/overview) | [Essential Contacts API](https://cloud.google.com/resource-manager/docs/managing-notification-contacts/) |
| google-cloud-eventarc | Product | [1.45.0](https://cloud.google.com/java/docs/reference/google-cloud-eventarc/latest/overview) | [Eventarc](https://cloud.google.com/eventarc/docs) |
| google-cloud-eventarc-publishing | Product | [0.45.0](https://cloud.google.com/java/docs/reference/google-cloud-eventarc-publishing/latest/overview) | [Eventarc Publishing](https://cloud.google.com/eventarc/docs) |
| google-cloud-filestore | Product | [1.46.0](https://cloud.google.com/java/docs/reference/google-cloud-filestore/latest/overview) | [Cloud Filestore API](https://cloud.google.com/filestore/docs) |
| google-cloud-firestore | Product | [3.21.4](https://cloud.google.com/java/docs/reference/google-cloud-firestore/latest/overview) | [Cloud Firestore](https://cloud.google.com/firestore) |
| google-cloud-functions | Product | [2.47.0](https://cloud.google.com/java/docs/reference/google-cloud-functions/latest/overview) | [Cloud Functions](https://cloud.google.com/functions) |
| google-cloud-gke-backup | Product | [0.44.0](https://cloud.google.com/java/docs/reference/google-cloud-gke-backup/latest/overview) | [Backup for GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/backup-for-gke/concepts/backup-for-gke) |
| google-cloud-gke-connect-gateway | Product | [0.46.0](https://cloud.google.com/java/docs/reference/google-cloud-gke-connect-gateway/latest/overview) | [Connect Gateway API](https://cloud.google.com/anthos/multicluster-management/gateway/) |
| google-cloud-gke-multi-cloud | Product | [0.44.0](https://cloud.google.com/java/docs/reference/google-cloud-gke-multi-cloud/latest/overview) | [Anthos Multicloud](https://cloud.google.com/anthos/clusters/docs/multi-cloud) |
| google-cloud-gkehub | Product | [1.45.0](https://cloud.google.com/java/docs/reference/google-cloud-gkehub/latest/overview) | [GKE Hub API](https://cloud.google.com/anthos/gke/docs/) |
| google-cloud-gsuite-addons | Product | [2.45.0](https://cloud.google.com/java/docs/reference/google-cloud-gsuite-addons/latest/overview) | [Google Workspace Add-ons API](https://developers.google.com/workspace/add-ons/overview) |
| google-cloud-iamcredentials | Product | [2.45.0](https://cloud.google.com/java/docs/reference/google-cloud-iamcredentials/latest/overview) | [IAM Service Account Credentials API](https://cloud.google.com/iam/credentials/reference/rest/) |
| google-cloud-iap | Product | [0.1.0](https://cloud.google.com/java/docs/reference/google-cloud-iap/latest/overview) | N/A |
| google-cloud-ids | Product | [1.44.0](https://cloud.google.com/java/docs/reference/google-cloud-ids/latest/overview) | [Intrusion Detection System](https://cloud.google.com/intrusion-detection-system/docs) |
| google-cloud-infra-manager | Product | [0.22.0](https://cloud.google.com/java/docs/reference/google-cloud-infra-manager/latest/overview) | N/A |
| google-cloud-iot | Product | [2.45.0](https://cloud.google.com/java/docs/reference/google-cloud-iot/latest/overview) | [Cloud Internet of Things (IoT) Core](https://cloud.google.com/iot) |
| google-cloud-kms | Product | [2.48.0](https://cloud.google.com/java/docs/reference/google-cloud-kms/latest/overview) | [Cloud Key Management Service](https://cloud.google.com/kms) |
| google-cloud-kmsinventory | Product | [0.34.0](https://cloud.google.com/java/docs/reference/google-cloud-kmsinventory/latest/overview) | [KMS Inventory API](https://cloud.google.com/kms/docs/) |
| google-cloud-language | Product | [2.46.0](https://cloud.google.com/java/docs/reference/google-cloud-language/latest/overview) | [Natural Language](https://cloud.google.com/natural-language/docs/) |
| google-cloud-life-sciences | Product | [0.47.0](https://cloud.google.com/java/docs/reference/google-cloud-life-sciences/latest/overview) | [Cloud Life Sciences](https://cloud.google.com/life-sciences/docs) |
| google-cloud-live-stream | Product | [0.47.0](https://cloud.google.com/java/docs/reference/google-cloud-live-stream/latest/overview) | [Live Stream API](https://cloud.google.com/livestream/) |
| google-cloud-logging | Product | [3.18.0](https://cloud.google.com/java/docs/reference/google-cloud-logging/latest/overview) | [Cloud Logging](https://cloud.google.com/logging/docs) |
| google-cloud-logging-logback | Product | [0.131.8-alpha](https://cloud.google.com/java/docs/reference/google-cloud-logging-logback/latest/overview) | [Cloud Logging Logback Appender](https://cloud.google.com/logging/docs/setup/java#logback_appender_for) |
| google-cloud-managed-identities | Product | [1.43.0](https://cloud.google.com/java/docs/reference/google-cloud-managed-identities/latest/overview) | [Managed Service for Microsoft Active Directory](https://cloud.google.com/managed-microsoft-ad/) |
| google-cloud-managedkafka | Product | [0.1.0](https://cloud.google.com/java/docs/reference/google-cloud-managedkafka/latest/overview) | N/A |
| google-cloud-mediatranslation | Product | [0.51.0](https://cloud.google.com/java/docs/reference/google-cloud-mediatranslation/latest/overview) | [Media Translation API](https://cloud.google.com/) |
| google-cloud-meet | Product | [0.12.0](https://cloud.google.com/java/docs/reference/google-cloud-meet/latest/overview) | N/A |
| google-cloud-memcache | Product | [2.45.0](https://cloud.google.com/java/docs/reference/google-cloud-memcache/latest/overview) | [Cloud Memcache](https://cloud.google.com/memorystore/) |
| google-cloud-migrationcenter | Product | [0.27.0](https://cloud.google.com/java/docs/reference/google-cloud-migrationcenter/latest/overview) | [Migration Center API](https://cloud.google.com/migration-center/docs/migration-center-overview) |
| google-cloud-monitoring | Product | [3.46.0](https://cloud.google.com/java/docs/reference/google-cloud-monitoring/latest/overview) | [Stackdriver Monitoring](https://cloud.google.com/monitoring/docs) |
| google-cloud-monitoring-dashboard | Product | [2.47.0](https://cloud.google.com/java/docs/reference/google-cloud-monitoring-dashboard/latest/overview) | [Monitoring Dashboards](https://cloud.google.com/monitoring/charts/dashboards) |
| google-cloud-monitoring-metricsscope | Product | [0.39.0](https://cloud.google.com/java/docs/reference/google-cloud-monitoring-metricsscope/latest/overview) | [Monitoring Metrics Scopes](https://cloud.google.com/monitoring/api/ref_v3/rest/v1/locations.global.metricsScopes) |
| google-cloud-netapp | Product | [0.24.0](https://cloud.google.com/java/docs/reference/google-cloud-netapp/latest/overview) | N/A |
| google-cloud-network-management | Product | [1.46.0](https://cloud.google.com/java/docs/reference/google-cloud-network-management/latest/overview) | [Network Management API](https://cloud.google.com/network-intelligence-center/docs/connectivity-tests/reference/networkmanagement/rest/) |
| google-cloud-network-security | Product | [0.48.0](https://cloud.google.com/java/docs/reference/google-cloud-network-security/latest/overview) | [Network Security API](https://cloud.google.com/traffic-director/docs/reference/network-security/rest) |
| google-cloud-networkconnectivity | Product | [1.44.0](https://cloud.google.com/java/docs/reference/google-cloud-networkconnectivity/latest/overview) | [Network Connectivity Center](https://cloud.google.com/network-connectivity/docs) |
| google-cloud-networkservices | Product | [0.1.0](https://cloud.google.com/java/docs/reference/google-cloud-networkservices/latest/overview) | N/A |
| google-cloud-nio | Product | [0.127.19](https://cloud.google.com/java/docs/reference/google-cloud-nio/latest/overview) | [NIO Filesystem Provider for Google Cloud Storage](https://cloud.google.com/storage/docs) |
| google-cloud-notebooks | Product | [1.43.0](https://cloud.google.com/java/docs/reference/google-cloud-notebooks/latest/overview) | [AI Platform Notebooks](https://cloud.google.com/ai-platform-notebooks) |
| google-cloud-notification | Product | [0.163.0-beta](https://cloud.google.com/java/docs/reference/google-cloud-notification/latest/overview) | [Google Cloud Pub/Sub Notifications for GCS](n/a) |
| google-cloud-optimization | Product | [1.43.0](https://cloud.google.com/java/docs/reference/google-cloud-optimization/latest/overview) | [Cloud Fleet Routing](https://cloud.google.com/optimization/docs) |
| google-cloud-orchestration-airflow | Product | [1.45.0](https://cloud.google.com/java/docs/reference/google-cloud-orchestration-airflow/latest/overview) | [Cloud Composer](https://cloud.google.com/composer/docs) |
| google-cloud-orgpolicy | Product | [2.45.0](https://cloud.google.com/java/docs/reference/google-cloud-orgpolicy/latest/overview) | [Cloud Organization Policy](n/a) |
| google-cloud-os-config | Product | [2.47.0](https://cloud.google.com/java/docs/reference/google-cloud-os-config/latest/overview) | [OS Config API](https://cloud.google.com/compute/docs/os-patch-management) |
| google-cloud-os-login | Product | [2.44.0](https://cloud.google.com/java/docs/reference/google-cloud-os-login/latest/overview) | [Cloud OS Login](https://cloud.google.com/compute/docs/oslogin/) |
| google-cloud-parallelstore | Product | [0.8.0](https://cloud.google.com/java/docs/reference/google-cloud-parallelstore/latest/overview) | N/A |
| google-cloud-phishingprotection | Product | [0.76.0](https://cloud.google.com/java/docs/reference/google-cloud-phishingprotection/latest/overview) | [Phishing Protection](https://cloud.google.com/phishing-protection/docs/) |
| google-cloud-policy-troubleshooter | Product | [1.44.0](https://cloud.google.com/java/docs/reference/google-cloud-policy-troubleshooter/latest/overview) | [IAM Policy Troubleshooter API](https://cloud.google.com/iam/docs/troubleshooting-access) |
| google-cloud-policysimulator | Product | [0.24.0](https://cloud.google.com/java/docs/reference/google-cloud-policysimulator/latest/overview) | N/A |
| google-cloud-private-catalog | Product | [0.47.0](https://cloud.google.com/java/docs/reference/google-cloud-private-catalog/latest/overview) | [Private Catalog](https://cloud.google.com/private-catalog/docs) |
| google-cloud-profiler | Product | [2.45.0](https://cloud.google.com/java/docs/reference/google-cloud-profiler/latest/overview) | [Cloud Profiler](https://cloud.google.com/profiler/docs) |
| google-cloud-publicca | Product | [0.42.0](https://cloud.google.com/java/docs/reference/google-cloud-publicca/latest/overview) | [Public Certificate Authority](https://cloud.google.com/certificate-manager/docs/public-ca/) |
| google-cloud-pubsub | Product | [1.130.0](https://cloud.google.com/java/docs/reference/google-cloud-pubsub/latest/overview) | [Cloud Pub/Sub](https://cloud.google.com/pubsub/docs/) |
| google-cloud-pubsublite | Product | [1.13.7](https://cloud.google.com/java/docs/reference/google-cloud-pubsublite/latest/overview) | [Cloud Pub/Sub Lite](https://cloud.google.com/pubsub/lite/docs) |
| google-cloud-rapidmigrationassessment | Product | [0.28.0](https://cloud.google.com/java/docs/reference/google-cloud-rapidmigrationassessment/latest/overview) | [Rapid Migration Assessment API](https://cloud.google.com/migration-center/docs) |
| google-cloud-recaptchaenterprise | Product | [3.42.0](https://cloud.google.com/java/docs/reference/google-cloud-recaptchaenterprise/latest/overview) | [reCAPTCHA Enterprise](https://cloud.google.com/recaptcha-enterprise/docs/) |
| google-cloud-recommendations-ai | Product | [0.52.0](https://cloud.google.com/java/docs/reference/google-cloud-recommendations-ai/latest/overview) | [Recommendations AI](https://cloud.google.com/recommendations-ai/) |
| google-cloud-recommender | Product | [2.47.0](https://cloud.google.com/java/docs/reference/google-cloud-recommender/latest/overview) | [Recommender](https://cloud.google.com/recommendations/) |
| google-cloud-redis | Product | [2.48.0](https://cloud.google.com/java/docs/reference/google-cloud-redis/latest/overview) | [Cloud Redis](https://cloud.google.com/memorystore/docs/redis/) |
| google-cloud-redis-cluster | Product | [0.17.0](https://cloud.google.com/java/docs/reference/google-cloud-redis-cluster/latest/overview) | N/A |
| google-cloud-resource-settings | Product | [1.45.0](https://cloud.google.com/java/docs/reference/google-cloud-resource-settings/latest/overview) | [Resource Settings API](https://cloud.google.com/resource-manager/docs/reference/resource-settings/rest) |
| google-cloud-resourcemanager | Product | [1.47.0](https://cloud.google.com/java/docs/reference/google-cloud-resourcemanager/latest/overview) | [Resource Manager API](https://cloud.google.com/resource-manager) |
| google-cloud-retail | Product | [2.47.0](https://cloud.google.com/java/docs/reference/google-cloud-retail/latest/overview) | [Cloud Retail](https://cloud.google.com/solutions/retail) |
| google-cloud-run | Product | [0.45.0](https://cloud.google.com/java/docs/reference/google-cloud-run/latest/overview) | [Cloud Run](https://cloud.google.com/run/docs) |
| google-cloud-scheduler | Product | [2.45.0](https://cloud.google.com/java/docs/reference/google-cloud-scheduler/latest/overview) | [Google Cloud Scheduler](https://cloud.google.com/scheduler/docs) |
| google-cloud-secretmanager | Product | [2.45.0](https://cloud.google.com/java/docs/reference/google-cloud-secretmanager/latest/overview) | [Secret Management](https://cloud.google.com/solutions/secrets-management/) |
| google-cloud-securesourcemanager | Product | [0.15.0](https://cloud.google.com/java/docs/reference/google-cloud-securesourcemanager/latest/overview) | N/A |
| google-cloud-security-private-ca | Product | [2.47.0](https://cloud.google.com/java/docs/reference/google-cloud-security-private-ca/latest/overview) | [Certificate Authority Service](https://cloud.google.com/certificate-authority-service/docs) |
| google-cloud-securitycenter | Product | [2.53.0](https://cloud.google.com/java/docs/reference/google-cloud-securitycenter/latest/overview) | [Security Command Center](https://cloud.google.com/security-command-center) |
| google-cloud-securitycenter-settings | Product | [0.48.0](https://cloud.google.com/java/docs/reference/google-cloud-securitycenter-settings/latest/overview) | [Security Command Center Settings API](https://cloud.google.com/security-command-center/) |
| google-cloud-securitycentermanagement | Product | [0.13.0](https://cloud.google.com/java/docs/reference/google-cloud-securitycentermanagement/latest/overview) | N/A |
| google-cloud-securityposture | Product | [0.10.0](https://cloud.google.com/java/docs/reference/google-cloud-securityposture/latest/overview) | N/A |
| google-cloud-service-control | Product | [1.45.0](https://cloud.google.com/java/docs/reference/google-cloud-service-control/latest/overview) | [Service Control API](https://cloud.google.com/service-infrastructure/docs/overview/) |
| google-cloud-service-management | Product | [3.43.0](https://cloud.google.com/java/docs/reference/google-cloud-service-management/latest/overview) | [Service Management API](https://cloud.google.com/service-infrastructure/docs/overview/) |
| google-cloud-service-usage | Product | [2.45.0](https://cloud.google.com/java/docs/reference/google-cloud-service-usage/latest/overview) | [Service Usage](https://cloud.google.com/service-usage/docs/overview) |
| google-cloud-servicedirectory | Product | [2.46.0](https://cloud.google.com/java/docs/reference/google-cloud-servicedirectory/latest/overview) | [Service Directory](https://cloud.google.com/service-directory/) |
| google-cloud-servicehealth | Product | [0.12.0](https://cloud.google.com/java/docs/reference/google-cloud-servicehealth/latest/overview) | N/A |
| google-cloud-shell | Product | [2.44.0](https://cloud.google.com/java/docs/reference/google-cloud-shell/latest/overview) | [Cloud Shell](https://cloud.google.com/shell/docs) |
| google-cloud-spanner | Product | [6.69.0](https://cloud.google.com/java/docs/reference/google-cloud-spanner/latest/overview) | [Cloud Spanner](https://cloud.google.com/spanner/docs/) |
| google-cloud-spanner-jdbc | Product | [2.19.3](https://cloud.google.com/java/docs/reference/google-cloud-spanner-jdbc/latest/overview) | [Google Cloud Spanner JDBC](https://cloud.google.com/spanner/docs/use-oss-jdbc) |
| google-cloud-speech | Product | [4.40.0](https://cloud.google.com/java/docs/reference/google-cloud-speech/latest/overview) | [Cloud Speech](https://cloud.google.com/speech-to-text/docs/) |
| google-cloud-storage | Product | [2.40.0](https://cloud.google.com/java/docs/reference/google-cloud-storage/latest/overview) | [Cloud Storage](https://cloud.google.com/storage) |
| google-cloud-storage-control | Product | [2.40.0](https://cloud.google.com/java/docs/reference/google-cloud-storage-control/latest/overview) | N/A |
| google-cloud-storage-transfer | Product | [1.45.0](https://cloud.google.com/java/docs/reference/google-cloud-storage-transfer/latest/overview) | [Storage Transfer Service](https://cloud.google.com/storage-transfer-service) |
| google-cloud-storageinsights | Product | [0.30.0](https://cloud.google.com/java/docs/reference/google-cloud-storageinsights/latest/overview) | [Storage Insights API](https://cloud.google.com/storage/docs/insights/storage-insights/) |
| google-cloud-talent | Product | [2.46.0](https://cloud.google.com/java/docs/reference/google-cloud-talent/latest/overview) | [Talent Solution](https://cloud.google.com/solutions/talent-solution/) |
| google-cloud-tasks | Product | [2.45.0](https://cloud.google.com/java/docs/reference/google-cloud-tasks/latest/overview) | [Cloud Tasks](https://cloud.google.com/tasks/docs/) |
| google-cloud-telcoautomation | Product | [0.15.0](https://cloud.google.com/java/docs/reference/google-cloud-telcoautomation/latest/overview) | N/A |
| google-cloud-texttospeech | Product | [2.46.0](https://cloud.google.com/java/docs/reference/google-cloud-texttospeech/latest/overview) | [Cloud Text-to-Speech](https://cloud.google.com/text-to-speech) |
| google-cloud-tpu | Product | [2.46.0](https://cloud.google.com/java/docs/reference/google-cloud-tpu/latest/overview) | [Cloud TPU](https://cloud.google.com/tpu/docs) |
| google-cloud-trace | Product | [2.45.0](https://cloud.google.com/java/docs/reference/google-cloud-trace/latest/overview) | [Stackdriver Trace](https://cloud.google.com/trace/docs/) |
| google-cloud-translate | Product | [2.45.0](https://cloud.google.com/java/docs/reference/google-cloud-translate/latest/overview) | [Cloud Translation](https://cloud.google.com/translate/docs/) |
| google-cloud-vertexai | Product | [1.5.0](https://cloud.google.com/java/docs/reference/google-cloud-vertexai/latest/overview) | N/A |
| google-cloud-video-intelligence | Product | [2.44.0](https://cloud.google.com/java/docs/reference/google-cloud-video-intelligence/latest/overview) | [Cloud Video Intelligence](https://cloud.google.com/video-intelligence/docs/) |
| google-cloud-video-stitcher | Product | [0.45.0](https://cloud.google.com/java/docs/reference/google-cloud-video-stitcher/latest/overview) | [Video Stitcher API](https://cloud.google.com/video-stitcher/) |
| google-cloud-video-transcoder | Product | [1.44.0](https://cloud.google.com/java/docs/reference/google-cloud-video-transcoder/latest/overview) | [Video Transcoder](https://cloud.google.com/transcoder/docs) |
| google-cloud-vision | Product | [3.43.0](https://cloud.google.com/java/docs/reference/google-cloud-vision/latest/overview) | [Cloud Vision](https://cloud.google.com/vision/docs/) |
| google-cloud-visionai | Product | [0.2.0](https://cloud.google.com/java/docs/reference/google-cloud-visionai/latest/overview) | N/A |
| google-cloud-vmmigration | Product | [1.45.0](https://cloud.google.com/java/docs/reference/google-cloud-vmmigration/latest/overview) | [VM Migration](n/a) |
| google-cloud-vmwareengine | Product | [0.39.0](https://cloud.google.com/java/docs/reference/google-cloud-vmwareengine/latest/overview) | [Google Cloud VMware Engine](https://cloud.google.com/vmware-engine/) |
| google-cloud-vpcaccess | Product | [2.46.0](https://cloud.google.com/java/docs/reference/google-cloud-vpcaccess/latest/overview) | [Serverless VPC Access](https://cloud.google.com/vpc/docs/serverless-vpc-access) |
| google-cloud-webrisk | Product | [2.44.0](https://cloud.google.com/java/docs/reference/google-cloud-webrisk/latest/overview) | [Web Risk](https://cloud.google.com/web-risk/docs/) |
| google-cloud-websecurityscanner | Product | [2.45.0](https://cloud.google.com/java/docs/reference/google-cloud-websecurityscanner/latest/overview) | [Cloud Security Scanner](https://cloud.google.com/security-scanner/docs/) |
| google-cloud-workflow-executions | Product | [2.45.0](https://cloud.google.com/java/docs/reference/google-cloud-workflow-executions/latest/overview) | [Cloud Workflow Executions](https://cloud.google.com/workflows) |
| google-cloud-workflows | Product | [2.45.0](https://cloud.google.com/java/docs/reference/google-cloud-workflows/latest/overview) | [Cloud Workflows](https://cloud.google.com/workflows) |
| google-cloud-workspaceevents | Product | [0.9.0](https://cloud.google.com/java/docs/reference/google-cloud-workspaceevents/latest/overview) | N/A |
| google-cloud-workstations | Product | [0.33.0](https://cloud.google.com/java/docs/reference/google-cloud-workstations/latest/overview) | [Cloud Workstations](https://cloud.google.com/workstations) |
| google-http-client | Runtime | [1.44.2](https://cloud.google.com/java/docs/reference/google-http-client/latest/overview) | N/A |
| google-iam-admin | Product | [3.40.0](https://cloud.google.com/java/docs/reference/google-iam-admin/latest/overview) | [IAM Admin API](https://cloud.google.com/iam/docs/apis) |
| google-iam-policy | Product | [1.43.0](https://cloud.google.com/java/docs/reference/google-iam-policy/latest/overview) | [IAM](n/a) |
| google-identity-accesscontextmanager | Product | [1.46.0](https://cloud.google.com/java/docs/reference/google-identity-accesscontextmanager/latest/overview) | [Identity Access Context Manager](n/a) |
| graal-sdk | Product | [22.3.5](https://cloud.google.com/java/docs/reference/graal-sdk/latest/overview) | N/A |
| grafeas | Product | [2.46.0](https://cloud.google.com/java/docs/reference/grafeas/latest/overview) | [Grafeas](https://grafeas.io) |
<!-- TABLE_END -->

## Dependency Dashboard

The [google-cloud-bom dashboard](https://storage.googleapis.com/java-cloud-bom-dashboard/com.google.cloud/google-cloud-bom/all-versions/index.html) provides client library consumers with easy access to dependency information pertaining to each client library that goes into the google-cloud-bom.

The dashboard shows the content of **each version** of the BOM which includes all the versions of the artifacts in it and their underlying [google-cloud-shared-dependencies BOM](https://github.com/googleapis/java-shared-dependencies#google-cloud-shared-dependencies) version.

The dashboard also has an [all versions](https://storage.googleapis.com/java-cloud-bom-dashboard/com.google.cloud/google-cloud-bom/all-versions/index.html) page where user can easily search on any artifact or version to see which version of the google-cloud-bom it exists in -- this could be helpful in providing client library consumer advice on which version(s) of google-cloud-bom to import to address their needs.

## Contributing

Contributions to this library are always welcome and highly encouraged.

See `google-cloud`'s [CONTRIBUTING] documentation and the [shared documentation](https://github.com/googleapis/google-cloud-common/blob/main/contributing/readme.md#how-to-contribute-to-gcloud) for more information on how to get started.

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms. See [Code of Conduct][code-of-conduct] for more information.

## License

Apache 2.0 - See [LICENSE] for more information.

[CONTRIBUTING]:https://github.com/googleapis/google-cloud-java/blob/main/CONTRIBUTING.md
[code-of-conduct]:https://github.com/googleapis/google-cloud-java/blob/main/CODE_OF_CONDUCT.md#contributor-code-of-conduct
[LICENSE]: https://github.com/googleapis/google-cloud-java/blob/main/LICENSE
[TESTING]: https://github.com/googleapis/google-cloud-java/blob/main/TESTING.md
[cloud-platform]: https://cloud.google.com/
[maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/libraries-bom.svg
[maven-version-link]: https://search.maven.org/artifact/com.google.cloud/libraries-bom


---------------------------------------
[![Build Status](https://github.com/apache/pinot/actions/workflows/pinot_tests.yml/badge.svg?event=push)](https://github.com/apache/pinot/actions/workflows/pinot_tests.yml)
[![Release](https://img.shields.io/github/release/apache/pinot/all.svg)](https://pinot.apache.org/download/)
[![codecov.io](https://codecov.io/github/apache/pinot/branch/master/graph/badge.svg)](https://codecov.io/github/apache/pinot)
[![Join the chat at https://communityinviter.com/apps/apache-pinot/apache-pinot](https://img.shields.io/badge/slack-apache--pinot-brightgreen?logo=slack)](https://communityinviter.com/apps/apache-pinot/apache-pinot)
[![Twitter Follow](https://img.shields.io/twitter/follow/apachepinot.svg?label=Follow&style=social)](https://twitter.com/intent/follow?screen_name=apachepinot)
[![License](https://img.shields.io/github/license/apache/pinot.svg)](LICENSE)

- [What is Apache Pinot?](#what-is-apache-pinot)
- [Features](#features)
- [When should I use Pinot?](#when-should-i-use-pinot)
- [Building Pinot](#building-pinot)
- [Deploying Pinot to Kubernetes](#deploying-pinot-to-kubernetes)
- [Join the Community](#join-the-community)
- [Documentation](#documentation)
- [License](#license)

# What is Apache Pinot?

[Apache Pinot](https://pinot.apache.org) is a real-time distributed OLAP datastore, built to deliver scalable real-time analytics with low latency. It can ingest from batch data sources (such as Hadoop HDFS, Amazon S3, Azure ADLS, Google Cloud Storage) as well as stream data sources (such as Apache Kafka).

Pinot was built by engineers at LinkedIn and Uber and is designed to scale up and out with no upper bound. Performance always remains constant based on the size of your cluster and an expected query per second (QPS) threshold.

For getting started guides, deployment recipes, tutorials, and more, please visit our project documentation at [https://docs.pinot.apache.org](https://docs.pinot.apache.org).

## Features

Pinot was originally built at LinkedIn to power rich interactive real-time analytic applications such as [Who Viewed Profile](https://www.linkedin.com/me/profile-views/urn:li:wvmp:summary/),  [Company Analytics](https://www.linkedin.com/company/linkedin/insights/),  [Talent Insights](https://business.linkedin.com/talent-solutions/talent-insights), and many more. [UberEats Restaurant Manager](https://eng.uber.com/restaurant-manager/) is another example of a customer facing Analytics App. At LinkedIn, Pinot powers 50+ user-facing products, ingesting millions of events per second and serving 100k+ queries per second at millisecond latency.

* **Column-oriented**: a column-oriented database with various compression schemes such as Run Length, Fixed Bit Length.

* [**Pluggable indexing**](https://docs.pinot.apache.org/basics/indexing): pluggable indexing technologies Sorted Index, Bitmap Index, Inverted Index.

* **Query optimization**: ability to optimize query/execution plan based on query and segment metadata.

* **Stream and batch ingest**: near real time ingestion from streams and batch ingestion from Hadoop.

* **Query:** SQL based query execution engine.

* **Upsert during real-time ingestion**: update the data at-scale with consistency

* **Multi-valued fields:** support for multi-valued fields, allowing you to query fields as comma separated values.

* **Cloud-native on Kubernetes**: Helm chart provides a horizontally scalable and fault-tolerant clustered deployment that is easy to manage using Kubernetes.

## When should I use Pinot?

Pinot is designed to execute real-time OLAP queries with low latency on massive amounts of data and events. In addition to real-time stream ingestion, Pinot also supports batch use cases with the same low latency guarantees. It is suited in contexts where fast analytics, such as aggregations, are needed on immutable data, possibly, with real-time data ingestion. Pinot works very well for querying time series data with lots of dimensions and metrics.

Example query:
```SQL
SELECT sum(clicks), sum(impressions) FROM AdAnalyticsTable
  WHERE
       ((daysSinceEpoch >= 17849 AND daysSinceEpoch <= 17856)) AND
       accountId IN (123456789)
  GROUP BY
       daysSinceEpoch TOP 100
```

## Building Pinot
More detailed instructions can be found at [Quick Demo](https://docs.pinot.apache.org/basics/getting-started/quick-start) section in the documentation.
```
# Clone a repo
$ git clone https://github.com/apache/pinot.git
$ cd pinot

# Build Pinot
$ mvn clean install -DskipTests -Pbin-dist

# Run the Quick Demo
$ cd build/
$ bin/quick-start-batch.sh
```

For UI development setup refer this [doc](https://github.com/apache/pinot/blob/master/pinot-controller/src/main/resources/Readme.md).

## Deploying Pinot to Kubernetes
Please refer to [Running Pinot on Kubernetes](https://docs.pinot.apache.org/basics/getting-started/kubernetes-quickstart) in our project documentation. Pinot also provides Kubernetes integrations with the interactive query engine, [Trino](https://docs.pinot.apache.org/integrations/trino) [Presto](https://docs.pinot.apache.org/integrations/presto), and the data visualization tool, [Apache Superset](kubernetes/helm/superset.yaml).

## Join the Community
 - Ask questions on [Apache Pinot Slack](https://join.slack.com/t/apache-pinot/shared_invite/zt-5z7pav2f-yYtjZdVA~EDmrGkho87Vzw)
 - Please join Apache Pinot mailing lists
   dev-subscribe@pinot.apache.org (subscribe to pinot-dev mailing list)
   dev@pinot.apache.org (posting to pinot-dev mailing list)
   users-subscribe@pinot.apache.org (subscribe to pinot-user mailing list)
   users@pinot.apache.org (posting to pinot-user mailing list)
 - Apache Pinot Meetup Group: https://www.meetup.com/apache-pinot/

## Documentation
Check out [Pinot documentation](https://docs.pinot.apache.org/) for a complete description of Pinot's features.
- [Quick Demo](https://docs.pinot.apache.org/getting-started/running-pinot-locally)
- [Pinot Architecture](https://docs.pinot.apache.org/basics/architecture)
- [Pinot Query Language](https://docs.pinot.apache.org/users/user-guide-query/pinot-query-language)

## License
Apache Pinot is under [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0)


# Gradle for Java

[![Visual Studio Marketplace Installs](https://img.shields.io/visual-studio-marketplace/i/vscjava.vscode-gradle)](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-gradle)
[![Build & Publish](https://github.com/microsoft/vscode-gradle/workflows/Build%20&%20Publish/badge.svg)](https://github.com/microsoft/vscode-gradle/actions/workflows/main.yml?query=workflow%3A%22%5C%22Build%22)
[![GitHub bug issues](https://img.shields.io/github/issues/microsoft/vscode-gradle/bug?label=bug%20reports)](https://github.com/microsoft/vscode-gradle/issues?q=is%3Aissue+is%3Aopen+label%3Abug)

This VS Code extension provides a visual interface for your Gradle build. You can use this interface to view Gradle Tasks and Project dependencies, or run Gradle Tasks as VS Code Task. The extension also offers better Gradle file (e.g. `build.gradle`) authoring experience including syntax highlighting, error reporting and auto completion. The extension works nicely alongside other Java extensions in the [Extension Pack for Java](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack).

## Requirements

- [VS Code >= 1.76.0](https://code.visualstudio.com/download)
- [Java from 8 to 21](https://adoptium.net/)

## Project Discovery

This extension supports both root and nested Gradle projects. A Gradle project is identified by having Gradle Wrapper scripts (`gradlew` or `gradlew.bat`) or Gradle build files (`build.gradle` or `settings.gradle` and their Kotlin versions) at the root of a directory. (Nested Gradle project discovery is not enabled by default, set `"gradle.nestedProjects": true` to enable it.)

## Feature Overview

Once the extension is activated you will see a new Gradle icon in the [activity bar](https://code.visualstudio.com/docs/getstarted/userinterface). Clicking on this icon will reveal some tree views in the sidebar.

> Protip: you can move drag & drop any of these tree views into the main explorer view for easier access. This is especially useful for pinned tasks.

You can also run any Gradle task as a [VS Code task](https://code.visualstudio.com/docs/editor/tasks). Access the Gradle VS Code tasks by running `Run Task` from the command palette.

List projects and tasks

A Gradle build can have one or more projects. Projects are listed in a flat list with the root project listed first, and sub-projects listed alphabetically thereafter.

When you expand a project, tasks are listed in a tree, grouped by the task group. You can toggle the display of the tasks by clicking on the `Show Flat List`/`Show Tree` button in the tree view header.

List project dependencies

The project's dependencies are included in the `Dependencies` item under the project. The dependencies are grouped by Gradle configurations and you can expand each configuration to find the corresponding ones. For omitted dependency (marked with a `(*)`), you can use the inline button `Go to Omitted Dependency` to go to the previously listed dependency.

Run tasks

Tasks can be run via:

- `Gradle Projects` or `Recent Tasks` tree views
- `Run Task` command
- `Run a Gradle Build` command

A running task will be shown with an animated "spinner" icon in the tree views, along with `Cancel Task` & `Restart Task` buttons. The `Cancel Task` button will gracefully cancel the task. The `Restart Task` button will first cancel the task, then restart it.

A task will be run a vscode terminal where you can view the task output.

Send a SIGINT signal (ctrl/cmd + c) in the terminal to gracefully cancel it.

Tasks run via the `Run a Gradle Build` command are not reflected in any of the tree views. Use this command to specify your own Gradle build arguments, for example to run multiple tasks or to exclude tasks.

Control task terminal behaviour

----

Use one terminal for each task type (default):

```json
"gradle.reuseTerminals": "task"
```

----

Use one terminal for all tasks:

```json
"gradle.reuseTerminals": "all"
```

----

Don't re-use terminals for any tasks. A new terminal will be created for each task run:

```json
"gradle.reuseTerminals": "off"
```

Debug tasks

This extension provides an experimental feature to debug [JavaExec](https://docs.gradle.org/current/dsl/org.gradle.api.tasks.JavaExec.html) and [Test](https://docs.gradle.org/current/dsl/org.gradle.api.tasks.testing.Test.html) tasks. Before using this feature you need to install the [Debugger for Java](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-debug) and [Language Support for Java](https://marketplace.visualstudio.com/items?itemName=redhat.java) extensions.

You might need to specify whether you want to clean output cache before debugging, to ensure Gradle doesn't skip any tasks due to output caching (this is most useful when debugging tests).

> Output cache is cleaned by adding a `cleanTaskName` task (eg `cleanTest`) to the build.

You should now see a `debug` command next to the `run` command in the Gradle Projects view. The `debug` command will start the Gradle task with [jdwp](https://docs.oracle.com/en/java/javase/11/docs/specs/jpda/conninv.html#oracle-vm-invocation-options) `jvmArgs` and start the vscode Java debugger.

![Debug Screencast](images/debug-screencast.gif?1)

Pin tasks

As there could be many tasks in a Gradle project, it can be useful to pin commonly used tasks. Pinned tasks will be shown under their project item. Pin a task by accessing the task context menu (by right-clicking a task). You can also pin a task with specific arguments.

To unpin a task, access the task context menu and select `Unpin Task`, or unpin all pinned tasks by clicking on the `Unpin all Tasks` button in the overflow button of tree view header.

List recent tasks

Recently run Gradle tasks are listed in a separate tree view. This can be useful to see a history of tasks and to easily access the associated task terminals.

The number shown next to the task is the amount of times the task has been run. Click on the `Show Terminal` button next to a task to view the most recent terminal for that task. Click on the `Close Terminal/s` button to close the terminal/s for that task.

Click on the `Clear Recent Tasks` button in the tree view header to remove all recent tasks from the list, or click on the `Close All Terminals` button to close all task terminals.

List & kill Gradle daemons

Gradle daemon processes are listed by their process ID in a separate tree view and can have the following states: `IDLE`, `BUSY`, `STOPPED`, `STOPPING`, `CANCELED`.

Stop individual daemons by clicking on the `Stop Daemon` button next to the listed daemon.

Stop all daemons by clicking on the `Stop Daemons` button in the tree view header.

After stopping a daemon, it will remain in the `STOPPED` state for a while, but the underlying process won't exist. This is the default Gradle behaviour.

Most of the time there should be no reason to stop a daemon. View more info on the [Gradle Daemon](https://docs.gradle.org/current/userguide/gradle_daemon.html) from the Gradle website.

The extension uses the Gradle wrapper to list daemons, and is quite a slow process. If the daemon view is not useful for you, you can simply collapse the view, or disable it completely.

Syntax highlighting for Gradle files

When opening a Groovy Gradle file, the Gradle language server will start and provide language features for you.

Basically, we offer a basic groovy syntax highlighting in gradle files, as VS Code does by default. After language server started, it will analyze the Gradle file and provide semantic tokens information, providing more precise highlighting results.

Document outline for Gradle files

The Gradle language server will provide the document outline for the current Gradle file. This view will help you to navigate to any part of this Gradle file easily.

Error reporting for Gradle files

The Gradle language server will use Groovy compile engine to analyze the Gradle build file and report syntax errors if exist. It will also get script classpaths from Gradle Build so that it can report compilation errors. The [Gradle default imports](https://docs.gradle.org/current/userguide/writing_build_scripts.html#script-default-imports) are supported.

Auto completion for Gradle files

The Gradle language server supports basic auto completions for a Gradle file, including
- Basic Gradle closures (e.g. dependencies {})
- Gradle closures from plugins (e.g. java {})
- Available methods in Gradle closures (e.g. mavenCentral() in dependencies {})
- Available fields in Gradle closures (e.g. sourceCompatibility in java {})
- Available dependencies in Maven central when declaring a dependency in dependencies closure
- Basic auto completion for `settings.gradle` (e.g. include())

We will continue improving the auto completion feature to support more cases in writing Gradle files.

Full features list

- List Gradle Tasks & Projects
- Run [Gradle tasks](https://gradle.org/) as [VS Code tasks](https://code.visualstudio.com/docs/editor/tasks)
- View [Gradle Dependencies](https://docs.gradle.org/current/userguide/declaring_dependencies.html)
- Supports massive Gradle projects (eg with 10000+ tasks)
- Uses the [Gradle Tooling API](https://docs.gradle.org/current/userguide/third_party_integration.html#embedding) to discover and run Gradle tasks
- Uses a long running gRPC server which provides good performance
- Supports Kotlin & Groovy build files
- Supports [multi-project builds](https://docs.gradle.org/current/userguide/multi_project_builds.html)
- Supports [multi-root workspaces](https://code.visualstudio.com/docs/editor/multi-root-workspaces)
- Supports nested projects (enabled via setting)
- Show flat or nested tasks in the explorer
- Gracefully cancel a running task
- Debug tasks
- Run/debug a task with arguments (supports both build & task args, eg `gradle tasks --all --info`)
- Pin tasks
- List recent tasks
- List & stop daemons
- Reports Gradle dist download progress
- Supports syntax highlighting for Groovy Gradle files
- Supports document outline for Groovy Gradle files
- Supports error reporting for Groovy Gradle files
- Supports auto completion for Groovy Gradle files

## Extension Settings

This extension contributes the following settings:

- `gradle.autoDetect`: Automatically detect Gradle tasks ("on" or "off")
- `gradle.focusTaskInExplorer`: Focus the task in the explorer when running a task (boolean)
- `gradle.nestedProjects`: Process nested projects (boolean or an array of directories)
- `gradle.reuseTerminals`: Reuse task terminals ("task" [default], "all", or "off")
- `gradle.javaDebug.cleanOutput`: Clean the task output cache before debugging (boolean)
- `gradle.debug`: Show extra debug info in the output panel (boolean)
- `gradle.disableConfirmations`: Disable the warning confirm messages when performing batch actions (eg clear tasks, stop daemons etc) (boolean)
- `gradle.allowParallelRun`: Allow to run tasks in parallel, each running will create a new terminal. This configuration will override `gradle.reuseTerminals` and always create new task terminals when running or debugging a task.
- `gradle.projectOpenBehaviour`: Specify the default method of opening newly created project ("Interactive", "Open" or "Add to Workspace")
- `java.gradle.buildServer.enabled`: Whether to use build server to synchronize Gradle project ("on" or "off")
- `java.gradle.buildServer.openBuildOutput`: Controls when the build output should open ("neverOpen", "openOnBuildStart" or "openOnBuildFailure")

## Gradle & Java Settings

Set Gradle & Java options with standard environment variables or standard Gradle settings (eg via `gradle.properties` or task configuration).

### Example Environment Variables

- `JAVA_HOME`
- `GRADLE_USER_HOME`

_Note, the VS Code settings take precedence over the environment variables._

Use an environment manager like [direnv](https://direnv.net/) to set project specific environment variables

## Compatibility with the [Java language support](https://github.com/redhat-developer/vscode-java) extension

### Java-Specific Settings

This extension supports the following settings which are contributed by the [Java language support](https://github.com/redhat-developer/vscode-java) extension:

- `java.home`: (**deprecated** Please use `java.jdt.ls.java.home` as given below) Absolute path to JDK home folder used to launch the Gradle daemons
- `java.jdt.ls.java.home`: Absolute path to JDK home folder as per the latest VS code, used to launch the Gradle daemons
- `java.import.gradle.java.home`: Absolute path to JDK home folder used to launch the Gradle daemons (if set, this value takes precedence over `java.home`)
- `java.import.gradle.user.home`: Setting for `GRADLE_USER_HOME`
- `java.import.gradle.jvmArguments`: JVM arguments to pass to Gradle

  >Note: There should be a `space` between two arguments

- `java.import.gradle.wrapper.enabled`: Enable/disable the Gradle wrapper
- `java.import.gradle.version`: Gradle version, used if the Gradle wrapper is missing or disabled
- `java.import.gradle.home`: Use Gradle from the specified local installation directory or GRADLE_HOME if the Gradle wrapper is missing or disabled and no 'java.import.gradle.version' is specified.

### Class References

There are cases where Gradle tasks will generate Java classes. To ensure these Java classes are indexed correctly by the Java language server, you need to ensure the paths are added to the `.classpath`, and this is typically achieved using Gradle [`sourceSets`](https://docs.gradle.org/current/dsl/org.gradle.api.tasks.SourceSet.html).

Once you've configured your `sourceSets` correctly, follow these steps:

1. Generate your classes by running the relevant Gradle Task
2. Force the Language Server to index the generated classes by right-clicking on `build.gradle` and selecting `Update project configuration`.

At this point the Gradle `sourceSet` paths will be added to the `.classpath` and the Language Server will automatically update references when those classes change.

## Extension API

This extension provides an API which can be used by 3rd-party vscode extensions.

👉 [Extension API](./API.md)

## Troubleshooting

View logs by selecting "Gradle Tasks" in the output panel

Set the "gradle.debug" setting to "true" to view debug logs in the output panel

Task output will be shown in the Terminal panel

Task output is truncated

The integrated terminal has a limited buffer size and will not show the full output for tasks that generate a large output. Increase the terminal buffer size in your settings, for example:

```json
{
  "terminal.integrated.scrollback": 5000
}
```

"No connection to the gradle server. Try restarting the server"

This error means the Gradle Task server has stopped, or there was an error starting it. Click on "Restart Server" to restart it.

If you continue to get this error, view the task error messages by selecting "Gradle Tasks" in the output panel.

The task server is started using a [shell script](https://gist.github.com/badsyntax/d71d38b1700325f31c19912ac3428042) generated by [CreateStartScripts](https://docs.gradle.org/current/dsl/org.gradle.jvm.application.tasks.CreateStartScripts.html). The script uses `#!/usr/bin/env sh` and is as portable as the Gradle wrapper script. If there are any problems executing the start script then it's likely an issue either with your `PATH`, or Java is not installed.

### PATH problems

The following error demonstrates a typical issue with your `PATH`:

```shell
env: sh: No such file or directory
The terminal process terminated with exit code: 127
```

Use the following task to debug your shell environment within vscode:

```json
{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Print task shell info",
      "type": "shell",
      "command": "echo \"Path: $PATH \nShell: $SHELL\"",
      "problemMatcher": []
    }
  ]
}
```

#### Fixing your `$PATH`

Check your dotfiles (eg `~/.bash_profile`, `~/.bashrc`, `~/.zshrc`) and fix any broken `PATH` exports. See `Issues with environment vars` below for more information.

### Java path problems

You might see an error like:

```shell
ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
```

The start script [should find](https://gist.github.com/badsyntax/d71d38b1700325f31c19912ac3428042#file-gradle-tasks-server-sh-L85-L105) the path to Java in the usual locations. If you get this error it suggests an issues with your `$PATH` or you simply haven't installed Java. Run the Gradle wrapper script (eg `./gradlew tasks`) to debug further, or see `Issues with environment vars` below for more information.

### Shell environment

Another potential problem is that the `PATH` or `JAVA_HOME` environment vars have been defined within `.bashrc`. See `Issues with environment vars` below for more information.

Issues with environment vars

_(The following is only relevant for MacOS & Linux.)_

The Gradle Server is launched inside a non-interactive non-login shell, which loads the profile script (not the rc script). This means the shell will not load, for example, `~/.bashrc`. If you've defined `PATH` or other environment variables within `~/.bashrc`, they will not be available for the server startup script and not be available to Gradle.

Generally, environment settings should be defined in in `~/.bash_profile`, but as a workaround, you can load `~/.bashrc` from within `~/.bash_profile`for example:

```sh
if [ -r ~/.bashrc ]; then
  source ~/.bashrc
fi
```

"Orphaned" Java processes after quitting VS Code

You might notice some Java processes are not closed after existing VS Code. These processes are the Gradle Daemons that Gradle spawns. This is the default behaviour of Gradle.

You'll have `N` processes per Gradle version. Eventually Gradle will shut them down. Read more about the [Gradle Daemon](https://docs.gradle.org/current/userguide/gradle_daemon.html).

Incompatibility with other extensions

This extension is incompatible with the following extensions:

- [spmeesseman.vscode-taskexplorer](https://marketplace.visualstudio.com/items?itemName=spmeesseman.vscode-taskexplorer)

The reason for the incompatibility is due to the extensions providing the same tasks types (`gradle`) with different task definitions.

## Support

- 👉 [Submit a bug report](https://github.com/microsoft/vscode-gradle/issues/new?assignees=&labels=bug&template=bug_report.md&title=)
- 👉 [Submit a feature request](https://github.com/microsoft/vscode-gradle/issues/new?assignees=&labels=enhancement&template=feature_request.md&title=)
- 👉 [Submit any feedback](https://github.com/microsoft/vscode-gradle/issues/new/choose)

## Data/Telemetry

VS Code collects usage data and sends it to Microsoft to help improve our products and services. Read our [privacy statement](http://go.microsoft.com/fwlink/?LinkId=521839) to learn more. If you don’t wish to send usage data to Microsoft, you can set the `telemetry.enableTelemetry` setting to `false`. Learn more in our [FAQ](https://code.visualstudio.com/docs/supporting/faq#_how-to-disable-telemetry-reporting).

## Contributing

Refer to [CONTRIBUTING.md](./CONTRIBUTING.md) for instructions on how to run the project.

👉 [Architecture Overview](./ARCHITECTURE.md)

## Credits

This project was originally started by [@badsyntax](https://github.com/badsyntax) and is now currently maintained by Microsoft. Huge thanks to [@badsyntax](https://github.com/badsyntax) who started it all and made this Gradle extension available.

- Originally forked from [Cazzar/vscode-gradle](https://github.com/Cazzar/vscode-gradle)
- Inspired by the built-in [npm extension](https://github.com/microsoft/vscode/tree/main/extensions/npm)
- Thanks to [@hanct](https://github.com/hanct) for providing feature suggestions and BETA testing
- Thanks to [@dcermak](https://github.com/dcermak) for providing inspiration to write some unit tests
- Thanks to all who have submitted bug reports and feedback

## Related Extensions

Check out [vscode-spotless-gradle](https://marketplace.visualstudio.com/items?itemName=richardwillis.vscode-spotless-gradle) which formats your source files using [Spotless](https://github.com/diffplug/spotless) & Gradle.

## Release Notes

See [CHANGELOG.md](./CHANGELOG.md).

## License

See [LICENSE.md](./LICENSE.md).


# Apache Wayang (incubating) <img align="right" width="128px" src="https://wayang.apache.org/img/wayang.png" alt="Wayang logo">

## The first open-source cross-platform data processing system

[![Maven central](https://img.shields.io/maven-central/v/org.apache.wayang/wayang-core.svg?style=for-the-badge)](https://img.shields.io/maven-central/v/org.apache.wayang/wayang-core.svg)
[![License](https://img.shields.io/github/license/apache/incubator-wayang.svg?style=for-the-badge)](http://www.apache.org/licenses/LICENSE-2.0)
[![Last commit](https://img.shields.io/github/last-commit/apache/incubator-wayang.svg?style=for-the-badge)]()
![GitHub commit activity (branch)](https://img.shields.io/github/commit-activity/m/apache/incubator-wayang?style=for-the-badge)
![GitHub forks](https://img.shields.io/github/forks/apache/incubator-wayang?style=for-the-badge)
![GitHub Repo stars](https://img.shields.io/github/stars/apache/incubator-wayang?style=for-the-badge)

[![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Apache%20Wayang%20enables%20cross%20platform%20data%20processing,%20star%20it%20via:%20&url=https://github.com/apache/incubator-wayang&via=apachewayang&hashtags=dataprocessing,bigdata,analytics,hybridcloud,developers) [![Subreddit subscribers](https://img.shields.io/reddit/subreddit-subscribers/ApacheWayang?style=social)](https://www.reddit.com/r/ApacheWayang/)
## Table of contents
  * [Description](#description)
  * [Quick Guide for Running Wayang](#quick-guide-for-running-wayang)
  * [Quick Guide for Developing with Wayang](#quick-guide-for-developing-with-wayang)
  * [Installing Wayang](#installing-wayang)
    + [Requirements at Runtime](#requirements-at-runtime)
    + [Validating the installation](#validating-the-installation)
  * [Getting Started](#getting-started)
    + [Prerequisites](#prerequisites)
    + [Building](#building)
  * [Running the tests](#running-the-tests)
  * [Example Applications](#example-applications)
  * [Built With](#built-with)
  * [Contributing](#contributing)
  * [Authors](#authors)
  * [License](#license)

## Description

In contrast to traditional data processing systems that provide one dedicated execution engine, Apache Wayang (incubating) can transparently and seamlessly integrate multiple execution engines and use them to perform a single task. We call this *cross-platform data processing*. In Wayang, users can specify any data processing application using one of Wayang's APIs and then Wayang will choose the data processing platform(s), e.g., Postgres or Apache Spark, that best fits the application. Finally, Wayang will perform the execution, thereby hiding the different platform-specific APIs and coordinating inter-platform communication.

Apache Wayang (incubating) aims at freeing data engineers and software developers from the burden of learning all different data processing systems, their APIs, strengths and weaknesses; the intricacies of coordinating and integrating different processing platforms; and the inflexibility when trying a fixed set of processing platforms. As of now, Wayang has built-in support for the following processing platforms:
- [Java Streams](https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html)
- [Apache Spark](https://spark.apache.org/)
- [Apache Flink](https://flink.apache.org/)
- [Apache Giraph](https://giraph.apache.org/)
- [GraphChi](https://github.com/GraphChi/graphchi-java)
- [Postgres](http://www.postgresql.org)
- [SQLite](https://www.sqlite.org/)

Apache Wayang (incubating) can be used via the following APIs:
- Java native
- Java scala-like
- Scala
- SQL (limited support of simple select-project queries for now)

## Quick Guide for Running Wayang

For a quick guide on how to run WordCount see [here](guides/tutorial.md).

## Quick Guide for Developing with Wayang

For a quick guide on how to use Wayang in your Java/Scala project see [here](guides/develop-with-Wayang.md).

## Installing Wayang

You first have to build the binaries as shown [here](guides/tutorial.md).
Once you have the binaries built, follow these steps to install Wayang:

```shell
tar -xvf wayang-0.7.1-snapshot.tar.gz
cd wayang-0.7.1-SNAPSHOT
```

In linux
```shell
echo "export WAYANG_HOME=$(pwd)" >> ~/.bashrc
echo "export PATH=${PATH}:${WAYANG_HOME}/bin" >> ~/.bashrc
source ~/.bashrc
```
In MacOS
```shell
echo "export WAYANG_HOME=$(pwd)" >> ~/.zshrc
echo "export PATH=${PATH}:${WAYANG_HOME}/bin" >> ~/.zshrc
source ~/.zshrc
```

### Requirements at Runtime

Since Apache Wayang (incubating) is not an execution engine itself but rather manages the execution engines for you, it is important to have the necessary requirements installed.

- Apache Wayang supports Java versions 8 and above. However, the Wayang team recommends using Java version 11. Don’t forget to set the `JAVA_HOME` environment variable.
- You need to install Apache Spark version 3 or higher. Don’t forget to set the `SPARK_HOME` environment variable.
- You need to install Apache Hadoop version 3 or higher. Don’t forget to set the `HADOOP_HOME` environment variable.

### Validating the installation

To execute your first application with Apache Wayang, you need to execute your program with the 'wayang-submit' command:

```shell
bin/wayang-submit org.apache.wayang.apps.wordcount.Main java file://$(pwd)/README.md
```

## Getting Started

Wayang is available via Maven Central. To use it with Maven, include the following code snippet into your POM file:
```xml
<dependency>
  <groupId>org.apache.wayang</groupId>
  <artifactId>wayang-***</artifactId>
  <version>0.7.1</version>
</dependency>
```
Note the `***`: Wayang ships with multiple modules that can be included in your app, depending on how you want to use it:
* `wayang-core`: provides core data structures and the optimizer (required)
* `wayang-basic`: provides common operators and data types for your apps (recommended)
* `wayang-api-scala-java`: provides an easy-to-use Scala and Java API to assemble Wayang plans (recommended)
* `wayang-java`, `wayang-spark`, `wayang-graphchi`, `wayang-sqlite3`, `wayang-postgres`: adapters for the various supported processing platforms
* `wayang-profiler`: provides functionality to learn operator and UDF cost functions from historical execution data

> **NOTE:** The module `wayang-api-scala-java` is intended to be used with Java 11 and Scala 2.12.

For the sake of version flexibility, you still have to include in the POM file your Hadoop (`hadoop-hdfs` and `hadoop-common`) and Spark (`spark-core` and `spark-graphx`) version of choice.

In addition, you can obtain the most recent snapshot version of Wayang via Sonatype's snapshot repository. Just include:
```xml
<repositories>
  <repository>
    <id>apache-snapshots</id>
    <name>Apache Foundation Snapshot Repository</name>
    <url>https://repository.apache.org/content/repositories/snapshots</url>
  </repository>
</repositories>
```

### Prerequisites
Apache Wayang (incubating) is built with Java 11 and Scala 2.12. However, to run Apache Wayang it is sufficient to have just Java 11 installed. Please also consider that processing platforms employed by Wayang might have further requirements.
```
Java 11
[Scala 2.12]
```

> **NOTE:** In windows, you need to define the variable `HADOOP_HOME` with the winutils.exe, an not official option to obtain [this repository](https://github.com/steveloughran/winutils), or you can generate your winutils.exe following the instructions in the repository. Also, you may need to install [msvcr100.dll](https://www.microsoft.com/en-us/download/details.aspx?id=26999)

> **NOTE:** Make sure that the JAVA_HOME environment variable is set correctly to Java 11 as the prerequisite checker script currently supports up to Java 11 and checks the latest version of Java if you have higher version installed. In Linux, it is preferably to use the export JAVA_HOME method inside the project folder. It is also recommended running './mvnw clean install' before opening the project using IntelliJ.

### Building

If you need to rebuild Wayang, e.g., to use a different Scala version, you can simply do so via Maven:

1. Adapt the version variables (e.g., `spark.version`) in the main `pom.xml` file.
2. Build Wayang with the adapted versions.
    ```shell
   git clone https://github.com/apache/incubator-wayang.git
   cd incubator-wayang
   ./mvnw clean install -DskipTests
    ```
> **NOTE:** If you receive an error about not finding `MathExBaseVisitor`, then the problem might be that you are trying to build from IntelliJ, without Maven. MathExBaseVisitor is generated code, and a Maven build should generate it automatically.

> **NOTE:** In the current Maven setup, the version of scala is tied to the Java version, you can compile the profile `scala-11` with Java 8 and profile `scala-12` with Java 11.

> **NOTE:** For compiling and testing the code it is required to have Hadoop installed on your machine.

> **NOTE:**  the `standalone` profile to fix Hadoop and Spark versions, so that Wayang apps do not explicitly need to declare the corresponding dependencies.
>
> Also, note the `distro` profile, which assembles a binary Wayang distribution.
To activate these profiles, you need to specify them when running maven, i.e.,

```shell
./mvnw clean install -DskipTests -P<profile name>
```

## Running the tests
In the incubator-wayang root folder run:
```shell
./mvnw test
```

## Example Applications
You can see examples on how to start using Wayang [here](guides/wayang-examples.md)

## Built With

* [Java 11](https://www.oracle.com/de/java/technologies/javase/jdk11-archive-downloads.html)
* [Scala 2.12](https://www.scala-lang.org/download/2.12.0.html)
* [Maven](https://maven.apache.org/)

## Contributing
Before submitting a PR, please take a look on how to contribute with Apache Wayang contributing guidelines [here](CONTRIBUTING.md).

There is also a guide on how to compile your code [here](guides/develop-in-Wayang.md).
## Authors
The list of [contributors](https://github.com/apache/incubator-wayang/graphs/contributors).

## License
All files in this repository are licensed under the Apache Software License 2.0

Copyright 2020 - 2023 The Apache Software Foundation.

Licensed 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.

## Acknowledgements
The [Logo](http://wayang.apache.org/assets/img/logo/Apache_Wayang/Apache_Wayang.pdf) was donated by Brian Vera.


= Spring Authorization Server image:https://badges.gitter.im/Join%20Chat.svg[Gitter,link=https://gitter.im/spring-projects/spring-security?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge] image:https://github.com/spring-projects/spring-authorization-server/actions/workflows/continuous-integration-workflow.yml/badge.svg["Build Status", link="https://github.com/spring-projects/spring-authorization-server/actions/workflows/continuous-integration-workflow.yml"] image:https://img.shields.io/badge/Revved%20up%20by-Develocity-06A0CE?logo=Gradle&labelColor=02303A["Revved up by Develocity", link="https://ge.spring.io/scans?&search.rootProjectNames=spring-authorization-server"]

The Spring Authorization Server project, led by the https://spring.io/projects/spring-security/[Spring Security] team, is focused on delivering https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-07#section-1.1[OAuth 2.1 Authorization Server] support to the Spring community.

This project replaces the Authorization Server support provided by https://spring.io/projects/spring-security-oauth/[Spring Security OAuth].

== Feature Planning
This project uses https://docs.github.com/en/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects[GitHub Projects] to prioritize the feature roadmap and help organize the project plan.
The project board can be accessed https://github.com/orgs/spring-projects/projects/8[here].

The feature list can be viewed in the https://docs.spring.io/spring-authorization-server/reference/overview.html#feature-list[reference documentation].

== Support Policy
The Spring Authorization Server project provides software support through the https://tanzu.vmware.com/support/oss[VMware Tanzu OSS support policy].
https://tanzu.vmware.com/spring-runtime[Commercial support], which offers an extended support period, is also available from VMware.

== Getting Started
The first place to start is to read the https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-07[OAuth 2.1 Authorization Framework] to gain an in-depth understanding on how to build an Authorization Server.
It is a critically important first step as the implementation must conform to the specification defined in the OAuth 2.1 Authorization Framework and the https://github.com/spring-projects/spring-authorization-server/wiki/OAuth-2.0-Specifications[related specifications].

The second place to start is to become very familiar with the codebase in the following Spring Security modules:

- https://github.com/spring-projects/spring-security/tree/main/oauth2/oauth2-core[OAuth 2.0 Core]
- https://github.com/spring-projects/spring-security/tree/main/oauth2/oauth2-client[OAuth 2.0 Client]
- https://github.com/spring-projects/spring-security/tree/main/oauth2/oauth2-resource-server[OAuth 2.0 Resource Server]
- https://github.com/spring-projects/spring-security/tree/main/oauth2/oauth2-jose[OAuth 2.0 JOSE] (Javascript Object Signing and Encryption)

A significant amount of effort was put into developing the https://spring.io/blog/2018/01/30/next-generation-oauth-2-0-support-with-spring-security[Next Generation OAuth 2.0 Support in Spring Security].
The goal is to leverage all the knowledge learned thus far and apply the same to the development of Spring Authorization Server.

Submitted work via pull requests should follow the same coding style/conventions and adopt the same or similar design patterns that have been established in Spring Security's OAuth 2.0 support.

== Documentation
Be sure to read the https://docs.spring.io/spring-authorization-server/reference/[Spring Authorization Server Reference] and https://docs.spring.io/spring-security/reference[Spring Security Reference], as well as the https://docs.spring.io/spring-security/reference/servlet/oauth2/index.html[OAuth 2.0 Reference], which describes the Client and Resource Server features available.

JavaDoc is also available for the https://docs.spring.io/spring-authorization-server/docs/current/api/[Spring Authorization Server API] and https://docs.spring.io/spring-security/site/docs/current/api/[Spring Security API].

== Code of Conduct
Please see our https://github.com/spring-projects/.github/blob/main/CODE_OF_CONDUCT.md[code of conduct].

== Downloading Artifacts
See https://github.com/spring-projects/spring-framework/wiki/Spring-Framework-Artifacts[downloading Spring artifacts] for Maven repository information.

== Building from Source
Spring Authorization Server uses a https://gradle.org[Gradle]-based build system.
In the instructions below, https://vimeo.com/34436402[`./gradlew`] is invoked from the root of the source tree and serves as
a cross-platform, self-contained bootstrap mechanism for the build.

=== Prerequisites
https://help.github.com/set-up-git-redirect[Git] and the https://www.oracle.com/technetwork/java/javase/downloads[JDK17 build].

Be sure that your `JAVA_HOME` environment variable points to the `jdk17` folder extracted from the JDK download.

=== Check out sources
[indent=0]
----
git clone git@github.com:spring-projects/spring-authorization-server.git

----

=== Install all spring-\* jars into your local Maven cache
[indent=0]
----
./gradlew publishToMavenLocal
----

=== Compile and test; build all jars, distribution zips, and docs
[indent=0]
----
./gradlew build
----

Discover more commands with `./gradlew tasks`.

== Getting Support
Check out the https://stackoverflow.com/questions/tagged/spring-authorization-server[Spring Authorization Server tags on Stack Overflow].
https://spring.io/support[Commercial support] is available too.

== Contributing
https://help.github.com/articles/creating-a-pull-request[Pull requests] are welcome; see the link:CONTRIBUTING.adoc[contributor guidelines] for details.

== License
Spring Authorization Server is Open Source software released under the
https://www.apache.org/licenses/LICENSE-2.0.html[Apache 2.0 license].


# ADOT Testing Framework

Before adding a new component into ADOT Collector, we require contributors to add related end-to-end test cases, this project is a testing framework which helps contributors to easily add testing into AWS Otel Collector.

* Contributors won't need to run the test locally to provide the testing result, instead, just define it. The test case will be automatically picked by the github workflow in AWS Otel Collector repo to run integration test and soaking test on different platforms. We will notify contributors if a certain test case is failed.

* Contributors won't need to build the validation logic for their own backends, no api keys or credentials are required. We use our own version of [mocked backend](mocked_servers/) in the integration and soaking test. Inside this mock server, we only validate if the data is received but not the data accuracy. [The mechanism of testing framework](docs/testing-framework-design.md)

* Contributors won't need to define different test cases for different platforms. The point is, one test case for multiple types of tests including integration test and soaking test.

## 1. Two PRs to contribute your component to [ADOT Collector](https://github.com/aws-observability/aws-otel-collector)

Below are the steps to add a new component to ADOT Collector. Before doing this, please ensure your component is already merged into [opentelemetry-collector-contrib](https://github.com/open-telemetry/opentelemetry-collector-contrib)

### 1.1 Create a PR to Define test case in testing framework Repo

[Example PR for http exporter](https://github.com/aws-observability/aws-otel-test-framework/pull/90)

#### 1.1.1 create test case folder
You will need to create a sub folder under [the testcase directory](https://github.com/aws-observability/aws-otel-test-framework/tree/terraform/terraform/testcases).

We define all the test cases under [the testcase directory](https://github.com/aws-observability/aws-otel-test-framework/tree/terraform/terraform/testcases), and each sub folder will be treated as a test case.

#### 1.1.2 place `otconfig.tpl` under test case folder
You will need to place a `otconfig.tpl` file under the test case folder, We require only one pipeline defined in the config for easy debuging, if your component supports both metric and trace, you will need two test cases.

there're three placeholders could be used:

* `${mocked_endpoint}`, which refers to the mocked_endpoint provided in the testing framework. [An example to use mock_endpoint to override the real backend](https://github.com/aws-observability/aws-otel-test-framework/blob/terraform/terraform/testcases/otlp_http_exporter_metric_mock/otconfig.tpl#L17)

* `${grpc_port}`, which refers to the receiver grpc port allocated in the testing framework so that the throughput could be sent into the collector. [An example to use grpc_port](https://github.com/aws-observability/aws-otel-test-framework/blob/terraform/terraform/testcases/otlp_http_exporter_metric_mock/otconfig.tpl#L7)

* `${region}`, which refers to the region where the test case will be running and validate. in normal case, region should be auto-detected so this placeholder might not be used in the config. [an example to use region](https://github.com/aws-observability/aws-otel-test-framework/blob/terraform/terraform/testcases/otlp_metric/otconfig.tpl#L17)

> **Note:** Please enable `pprof` extension in your `otconfig.tpl` for the debugging purpose.

Please note OTLP receiver is the only receiver which could be configured in the pipeline to serve the traffic at this moment. if you want to add a new receiver, please [contribute a sample app](sample-apps/README.md)

#### 1.1.3 place `parameters.tfvars` under test case folder

You will need to place a `parameters.tfvars` file under the test case folder to override [the default parameters](terraform/common.tf). Must have parameters are:

* `soaking_data_mode`: which tells the testing framework to send which types of data to collector for soaking test, the optional values are: `metric`, `trace`. Default value is `metric`. [An example to configure the data mode](https://github.com/aws-observability/aws-otel-test-framework/blob/terraform/terraform/testcases/otlp_http_exporter_trace_mock/parameters.tfvars#L2)

### 1.2 Create a PR to Link test case to ADOT Collector Repo

[Example PR for http exporter](https://github.com/aws-observability/aws-otel-collector/pull/124)

Before creating the PR, please follow [get-performance-model](docs/get-performance-model.md) to get your performance model and put it into the PR description.

Once the first PR get merged, you will need to create a PR to  [ADOT Collector](https://github.com/aws-observability/aws-otel-collector) repo, this PR needs to build the component and link test cases in one shot, which includes

* the changes to build the new component into ADOT Collector.
* the changes to link the test cases.

You will need to add a block in the [testcases.json](https://github.com/aws-observability/aws-otel-collector/blob/main/e2etest/testcases.json)
 with two fields.

#### 1.2.1 case_name

`case_name` needs to be the test case folder name defined in the testing framework. [An example for otlp_http_exporter_trace_mock](https://github.com/aws-observability/aws-otel-collector/blob/main/e2etest/testcases.json#L27)

#### 1.2.2 platforms

`platforms` are the platforms the test case will be running on. We require all the platforms to be listed unless you have a special reason to skip some of the platforms. [An example for otlp_http_exporter_trace_mock](https://github.com/aws-observability/aws-otel-collector/blob/main/e2etest/testcases.json#L28) Below are the platforms:

* LOCAL, which will run the test in the pr workflow, the test will be directly running on the github workflow vm.
* EC2, which will run the test in the main branch workflow under an ec2 instance.
* ECS, which will run the test in the main branch workflow under an ecs cluster.
* EKS, which will run the test in the main branch workflow under an eks/k8s cluster.
* SOAKING, which will run every night, and perform high throughput to your test case and monitor the resource usages.
* NEG_SOAKING, which will run every night, and perform high throughput to your test case with false endpoint and monitor the resource usages.
* CANARY, which will run hourly, and test against the latest released version of aoc.

## 2. Run testing framework

If a certain test case is failed in the github workflow of ADOT Collector, you might need to debug the test case locally.

* [run the local test](docs/run-mock-test.md)
* [run the ec2 test](docs/run-testing-framework.md#22-run-in-ec2)
* [run the ecs test](docs/run-testing-framework.md#23-run-in-ecs)
* [run the eks test](docs/run-testing-framework.md#24-run-in-eks)
* [run the soaking test](docs/run-testing-framework.md#251-run-in-soaking-test)
* [run the negative soaking test](docs/run-testing-framework.md#252-run-in-negative-soaking-test)
* [run the canary test](docs/run-testing-framework.md#26-run-in-canary)

## 3. Contributing

We have collected notes on how to contribute to this project in CONTRIBUTING.md.

## 4. Security issue notifications

If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our [vulnerability reporting page](http://aws.amazon.com/security/vulnerability-reporting/). Please do **not** create a public github issue.

## 5. License

This project is licensed under the Apache-2.0 License.

## Support

Please note that as per policy, we're providing support via GitHub on a best effort basis. However, if you have AWS Enterprise Support you can create a ticket and we will provide direct support within the respective SLAs.


<img src="https://raw.githubusercontent.com/opensearch-project/data-prepper/main/docs/images/DataPrepper_auto.svg" height="64px" alt="Data Prepper">

[![codecov](https://codecov.io/gh/opensearch-project/data-prepper/branch/main/graph/badge.svg?token=IS7GOIY622)](https://codecov.io/gh/opensearch-project/data-prepper)
# Data Prepper

We envision Data Prepper as an open source data collector for observability data (trace, logs, metrics) that can filter, enrich, transform, normalize, and aggregate data for downstream analysis and visualization. It will support stateful processing across multiple instances of data pipelines for observability use cases such as distributed tracing and multi-line log events (e.g. stack traces, aggregations, and log-to-metric transformations). Currently Data Prepper supports processing of distributed trace data and log ingestion with plans to support metric data in the future.

Please read the [Overview](docs/overview.md) to understand what Data Prepper is and how it works.

## Getting Started

Our [Getting Started](docs/getting_started.md) guide is the best starting point for anybody who wants to run Data Prepper.

Please read the [Trace Analytics](docs/trace_analytics.md) guide or [Log Analytics](docs/log_analytics.md) to get started with using Data Prepper for trace or log analytics use cases.

## Project Resources

* [Downloads](https://opensearch.org/downloads.html)
* [Documentation](https://opensearch.org/docs/latest/clients/data-prepper/index/)
* [Configuration Reference](https://opensearch.org/docs/latest/clients/data-prepper/data-prepper-reference/)
* Need help? Try the [Data Prepper category](https://discuss.opendistrocommunity.dev/c/data-prepper/61) in the OpenSearch forums
* [Project Principles](https://opensearch.org/#principles)

## Contribute

We invite developers from the larger OpenSearch community to contribute and help improve test coverage and give us feedback on where improvements can be made in design, code and documentation. You can look at [contribution guide](CONTRIBUTING.md) for more information on how to contribute.

If you are looking to contribute code, or just to build from source, please see our [Developer Guide](docs/developer_guide.md).

## Code of Conduct

This project has adopted an [Open Source Code of Conduct](CODE_OF_CONDUCT.md).

## Security Issue Notifications

If you discover a potential security issue in this project, please refer to the [security policy](https://github.com/opensearch-project/data-prepper/security/policy).

## License

This library is licensed under the [Apache 2.0 License](LICENSE)

## Copyright

Copyright OpenSearch Contributors. See [NOTICE](NOTICE) for details.


# Feathers SDK 4.2.0

The [Feathers SDK](https://feathersui.com/learn/as3-starling/sdk/) provides custom ActionScript and MXML compilers specifically designed for apps built with [Starling Framework](https://gamua.com/starling/) and [Feathers UI (Starling)](https://feathersui.com/learn/as3-starling/) components. This SDK makes building Starling and Feathers projects easier by simplifying project setup in supported IDEs and by providing more appropriate defaults (such as using "direct" render mode). The MXML compiler has been overhauled to work with Starling events and Feathers components.

## Quick Links

* [Help](https://feathersui.com/learn/as3-starling/sdk/)
* [Discussion Forum](https://forum.starling-framework.org/t/feathers)
* [Github Project](https://github.com/feathersui/feathersui-starling-sdk)

## Included Libraries

* Feathers UI (Starling) 4.2.0
* Starling Framework 2.7

## Minimum Requirements

* Adobe AIR 32.0 for desktop or mobile apps
* Adobe Flash Player 19.0 for web browsers

## Downloads

To download the latest stable version of Feathers SDK, visit [feathersui.com](https://feathersui.com/learn/as3-starling/sdk/installation-instructions/).