{"id":26036015,"url":"https://github.com/azure/discover-java-apps","last_synced_at":"2025-10-07T13:58:14.830Z","repository":{"id":144704010,"uuid":"614700696","full_name":"Azure/discover-java-apps","owner":"Azure","description":"Standalone script to discover Java apps in your remote Linux systems","archived":false,"fork":false,"pushed_at":"2023-12-19T00:13:56.000Z","size":60554,"stargazers_count":6,"open_issues_count":7,"forks_count":8,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-10-06T00:36:05.872Z","etag":null,"topics":["azure","azure-spring-apps","java","spring","springboot"],"latest_commit_sha":null,"homepage":"https://azure.microsoft.com/products/spring-apps/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Azure.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":"SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-16T06:12:21.000Z","updated_at":"2024-07-10T21:42:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"eb6e3999-f4c7-497e-af2e-753636eee607","html_url":"https://github.com/Azure/discover-java-apps","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/Azure/discover-java-apps","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Azure%2Fdiscover-java-apps","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Azure%2Fdiscover-java-apps/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Azure%2Fdiscover-java-apps/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Azure%2Fdiscover-java-apps/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Azure","download_url":"https://codeload.github.com/Azure/discover-java-apps/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Azure%2Fdiscover-java-apps/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278544518,"owners_count":26004308,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-05T02:00:06.059Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["azure","azure-spring-apps","java","spring","springboot"],"created_at":"2025-03-07T06:14:09.090Z","updated_at":"2025-10-07T13:58:14.824Z","avatar_url":"https://github.com/Azure.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"![](https://img.shields.io/badge/go%20report-A+-brightgreen.svg?style=flat)\n![Coverage](https://github.com/Azure/discover-java-apps/blob/badge/badge.svg?branch=badge)\n\n## What's this project for?\n\nA script to discover java apps from your linux system by following steps:\n\n1. SSH login to your linux system\n2. Find the java process for java application\n3. Collect information of runtime env, configuration, jar/war/ear files\n4. Print the info to console (or specified file) in json or csv format\n\n## Download and run\n\nDownload the binary files from [releases](https://github.com/Azure/azure-discovery-java-apps/releases)\n\n- For Linux:\n\n```bash\ndiscovery-l -server 'servername' -port 'port' -username 'userwithsudo' -password 'password'\n```\n\n- For Windows:\n\n```bash\ndiscovery.exe -server 'servername' -port 'port' -username 'userwithsudo' -password 'password'\n```\n\n- For Mac (Intel chip):\n\n```bash\ndiscovery-darwin-amd64 -server 'servername' -port 'port' -username 'userwithsudo' -password 'password'\n```\n\n- For Mac (Apple silicon):\n\n```bash\ndiscovery-darwin-arm64 -server 'servername' -port 'port' -username 'userwithsudo' -password 'password'\n```\n\n\u003e You can find the running log from __discovery.log__ in the same folder\n\n## Sample output\n\nThe default output will be a json like\n\n```javascript\n[\n  {\n    \"server\": \"127.0.0.1\",\n    // Application Name\n    \"appName\": \"hellospring\",\n    // Runnable artifact name\n    \"artifactName\": \"hellospring\",\n    //Spring Boot Version\n    \"springBootVersion\": \"1.5.14.RELEASE\",\n    //Application Type, for now only SpringBootExecutableFatJar supported, refer the definition from https://docs.spring.io/spring-boot/docs/current/reference/html/executable-jar.html\n    \"appType\": \"SpringBootFatJar\",\n    // Runtime JDK Version\n    \"runtimeJdkVersion\": \"17.0.6\",\n    // OS Name\n    \"OsName\": \"ubuntu\",\n    // OS Version\n    \"OsVersion\": \"2204\",\n    // Build JDK version\n    \"buildJdkVersion\": \"1.7\",\n    // Jar file location\n    \"jarFileLocation\": \"/home/user/hellospring1x-0.0.1-SNAPSHOT.jar\",\n    // Runtime Memory\n    \"jvmMemoryInMB\": 128,\n    // Application Port\n    \"appPort\": 8080,\n    \"lastModifiedTime\": \"2023-02-05T09:24:40Z\",\n  },\n  {\n    ...\n  }\n]\n```\n\nCSV format is also supported when `-format csv` is received in command arguments\n```csv\nServer,AppName,AppType,AppPort,MavenArtifactGroup,MavenArtifact,MavenArtifactVersion,SpringBootVersion,BuildJdkVersion,RuntimeJdkVersion,HeapMemory(MB),OsName,OsVersion,JarFileLocation,JarFileSize(MB),JarFileModifiedTime\n127.0.0.1,hellospring,SpringBoot,8080,com.example,hellospring,0.0.1-SNAPSHOT,2.4.13,8,10,128,ubuntu,18.04,/home/migrateadmin/hellospring2x-0.0.1-SNAPSHOT.jar,52,2022-11-21T08:08:46Z\n\n```\n\n## Contributing\n\nWe appreciate your help on the java app discovery. Before your contributing, please be noted:\n\n1. Ensure you have Golang `1.20+` installed before starting try from source code\n2. Run Makefile in `wsl` if you're Windows user\n3. `70%` test coverage is mandatory in the PR build, so when you do PR, remember to include test cases as well.\n4. Recommend to use [Ginkgo](https://onsi.github.io/ginkgo/) for a BDD style test case\n\n## Build\n\n```bash\nmake build\n```\n\n## Test\n\n```bash\nmake test\n```\n\n## Check code coverage\n\n```bash\ngo tool cover -func=coverage.out | grep total: | grep -Eo '[0-9]+\\.[0-9]+'\n```\n\n## Limitation\n\nOnly support to discover the spring apps from Linux VM\n\n## Road map\n\n- More java app runtime are coming.\n\n| Type           | Readiness | Ready Date |\n|----------------| -- | -- |\n| SpringBoot App | Ready | 2023-04 |\n| Tomcat App     | Planned | - |\n| WebLogic App   | Planned | - |\n| WebSphere App  | Planned | - |\n| JBoss EAP App  | Planned | - |\n\n- More source operating systems are coming.\n\n## Support\n\nReport the issue to \u003chttps://github.com/Azure/azure-discovery-java-apps/issues\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazure%2Fdiscover-java-apps","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fazure%2Fdiscover-java-apps","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazure%2Fdiscover-java-apps/lists"}