{"id":20464801,"url":"https://github.com/envoyproxy/java-control-plane","last_synced_at":"2025-05-14T04:00:27.128Z","repository":{"id":29269278,"uuid":"120961330","full_name":"envoyproxy/java-control-plane","owner":"envoyproxy","description":"Java implementation of an Envoy gRPC control plane","archived":false,"fork":false,"pushed_at":"2025-04-22T10:58:11.000Z","size":3726,"stargazers_count":307,"open_issues_count":58,"forks_count":141,"subscribers_count":29,"default_branch":"main","last_synced_at":"2025-04-22T11:41:42.047Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/envoyproxy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-02-09T22:13:33.000Z","updated_at":"2025-04-22T10:58:18.000Z","dependencies_parsed_at":"2023-01-14T14:33:11.525Z","dependency_job_id":"277d86dc-a562-4733-85bb-56de936d5993","html_url":"https://github.com/envoyproxy/java-control-plane","commit_stats":{"total_commits":315,"total_committers":41,"mean_commits":7.682926829268292,"dds":0.8,"last_synced_commit":"2afd5432f22bf076fb87128d2b14e315efe9d7df"},"previous_names":[],"tags_count":56,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/envoyproxy%2Fjava-control-plane","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/envoyproxy%2Fjava-control-plane/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/envoyproxy%2Fjava-control-plane/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/envoyproxy%2Fjava-control-plane/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/envoyproxy","download_url":"https://codeload.github.com/envoyproxy/java-control-plane/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254067070,"owners_count":22009072,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-15T13:16:30.117Z","updated_at":"2025-05-14T04:00:27.050Z","avatar_url":"https://github.com/envoyproxy.png","language":"Java","funding_links":[],"categories":["云原生"],"sub_categories":[],"readme":"# java-control-plane\n\n[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/envoyproxy/java-control-plane/badge)](https://securityscorecards.dev/viewer/?uri=github.com/envoyproxy/java-control-plane)\n[![CircleCI](https://circleci.com/gh/envoyproxy/java-control-plane.svg?style=svg)](https://circleci.com/gh/envoyproxy/java-control-plane) [![codecov](https://codecov.io/gh/envoyproxy/java-control-plane/branch/main/graph/badge.svg)](https://codecov.io/gh/envoyproxy/java-control-plane) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.envoyproxy.controlplane/java-control-plane/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.envoyproxy.controlplane/java-control-plane)\n\nThis repository contains a Java-based implementation of an API server that implements the discovery service APIs defined\nin [data-plane-api](https://github.com/envoyproxy/data-plane-api). It started life as a port of\n[go-control-plane](https://github.com/envoyproxy/go-control-plane), but building an idiomatic Java implementation is\nprioritized over exact interface parity with the Go implementation.\n\nOnly v3 resources as well as transport versions are now supported. Migrating\nto v3 is necessary as Envoy dropped v2 support at EOY 2020 (see\n[API_VERSIONING.md](https://github.com/envoyproxy/envoy/blob/4c6206865061591155d18b55972b4d626e1703dd/api/API_VERSIONING.md))\n\nSee the [v2-to-v3 migration guide](https://github.com/envoyproxy/java-control-plane/blob/main/V2_TO_V3_GUIDE.md) for an explanation of migration paths.\n\n### Requirements\n\n1. Java 8+\n2. Maven\n\n### Build \u0026 Test\n\n```bash\nmvn clean package\n```\n\nMore thorough usage examples are still TODO, but there is a basic test implementation in\n[TestMain](server/src/test/java/io/envoyproxy/controlplane/server/TestMain.java).\n\n### Envoy API\nThere is automation built into this repo to keep the Envoy API (i.e. protobuf files)\nup to date with the latest available Envoy release.\n\nThis automation uses Github Workflows and works as follows: a scheduled workflow runs with\nweekly cadence, and calls a reusable workflow that fetches the latest available Envoy release\nand compares it with the version currently used in the repo.\n\nIf the latest available Envoy release doesn't match the version currently used, another\nreusable workflow is called which creates a PR that upgrades the Envoy API to the latest\navailable release.\n\n### Releasing a new version\nTo release and publish a new version, do the following:\n1. create a personal API token in CircleCI by following the instructions listed [here](https://circleci.com/docs/2.0/managing-api-tokens/#creating-a-personal-api-token)\n2. from terminal, curl the CircleCI API as follows\n\n```\n curl -X POST \\\n    -H \"Content-Type: application/json\" \\\n    -d '{ \"build_parameters\": { \"RELEASE\": \"\u003ce.g. 0.1.29\u003e\", \"NEXT\": \"\u003ce.g. 0.1.30-SNAPSHOT\u003e\" } }' \\\n    \"https://circleci.com/api/v1.1/project/github/envoyproxy/java-control-plane/tree/main?circle-token=\u003cAPI token\u003e\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fenvoyproxy%2Fjava-control-plane","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fenvoyproxy%2Fjava-control-plane","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fenvoyproxy%2Fjava-control-plane/lists"}