{"id":44469660,"url":"https://github.com/ggrandes/webapp-notifier","last_synced_at":"2026-02-12T21:07:53.931Z","repository":{"id":57739411,"uuid":"65925167","full_name":"ggrandes/webapp-notifier","owner":"ggrandes","description":"Notify about start and stop of WebApp in a Servlet Container (like Tomcat) to a remote URL","archived":false,"fork":false,"pushed_at":"2025-08-19T19:28:45.000Z","size":34,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-19T21:25:20.544Z","etag":null,"topics":["java","tomcat","webapp"],"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/ggrandes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-08-17T16:46:25.000Z","updated_at":"2025-08-19T19:26:33.000Z","dependencies_parsed_at":"2025-08-19T21:12:27.499Z","dependency_job_id":"8fde8e9f-b766-4289-87b2-a483ccb99693","html_url":"https://github.com/ggrandes/webapp-notifier","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/ggrandes/webapp-notifier","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ggrandes%2Fwebapp-notifier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ggrandes%2Fwebapp-notifier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ggrandes%2Fwebapp-notifier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ggrandes%2Fwebapp-notifier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ggrandes","download_url":"https://codeload.github.com/ggrandes/webapp-notifier/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ggrandes%2Fwebapp-notifier/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29381079,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T20:34:40.886Z","status":"ssl_error","status_checked_at":"2026-02-12T20:23:00.490Z","response_time":55,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["java","tomcat","webapp"],"created_at":"2026-02-12T21:07:53.066Z","updated_at":"2026-02-12T21:07:53.925Z","avatar_url":"https://github.com/ggrandes.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# webapp-notifier\n\nNotify about start and stop of WebApp in a Servlet Container (like Tomcat) to a remote URL. Open Source Java project under Apache License v2.0\n\n### Current Stable Version is [2.0.0](https://search.maven.org/#search|ga|1|g%3Aorg.javastack%20a%3Awebapp-notifier-jakarta)\n\n---\n\n## DOC\n\n#### Installation:\n\n* Place `webapp-notifier-jakarta-x.x.x.jar` in `tomcat/lib/`\n\n#### Usage Example\n\n```xml\n\u003c!-- Context Listener for Servlet Container --\u003e\n\u003c!-- tomcat/conf/web.xml or WEB-INF/web.xml --\u003e\n\u003clistener\u003e\n  \u003cdescription\u003eNotify about start and stop of WebApp to a remote URL\u003c/description\u003e\n  \u003clistener-class\u003eorg.javastack.webappnotifier.WebAppNotifierContextListener\u003c/listener-class\u003e\n\u003c/listener\u003e\n```\n\n```xml\n\u003c!-- tomcat/conf/server.xml (recomended, but optional) --\u003e\n\u003cServer ...\u003e\n  \u003c!-- Background Runner Thread for notifier --\u003e\n  \u003cListener className=\"org.javastack.webappnotifier.RunnerLifecycleListener\" /\u003e\n  \u003c!-- Notify about endpoints in Tomcat --\u003e\n  \u003cListener className=\"org.javastack.webappnotifier.TomcatLifecycleListener\" \n            resolveHostname=\"false\" /\u003e\n...\n```\n\n###### Notifies are blocking, unless you enable the RunnerLifecycleListener \n###### By default only context are notified, unless you enable the TomcatLifecycleListener\n\n#### Configuration (system properties)\n\n* **org.javastack.webappnotifier.url** (String): like http://api.acme.com/notifier, no default\n* **org.javastack.webappnotifier.defaultConnectTimeout** (milliseconds): default 5000 (5secs)\n* **org.javastack.webappnotifier.defaultReadTimeout** (milliseconds): default 5000 (5secs)\n* **org.javastack.webappnotifier.retryCount** (int): default 2 retries\n* **org.javastack.webappnotifier.customValue** (String): no default\n\n#### HTTP request API\n\n* **Method**: POST\n* **Content-Type**: application/x-www-form-urlencoded\n* Request Parameters:\n  * **ts** (long): Timestamp Unix Epoch in milliseconds (UTC). see [System.currentTimeMillis()](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/System.html#currentTimeMillis()).\n  * **jvmid** (String): The name representing the running Java virtual machine (like **pid**@**hostname**). Can be any arbitrary string and a Java virtual machine implementation can choose to embed platform-specific useful information in the returned name string. see [RuntimeMXBean.getName](https://docs.oracle.com/en/java/javase/11/docs/api/java.management/java/lang/management/RuntimeMXBean.html#getName()) \n  * **service** (String): like \"Catalina\". see [Tomcat Service](https://tomcat.apache.org/tomcat-10.1-doc/config/service.html#Common_Attributes)\n  * **custom** (String): Value from Configuration (`org.javastack.webappnotifier.customValue`)\n  * **type** (String): \"I\" for Initialized, \"D\" for Destroyed\n  * **event** (String): \"C\" for Context, \"E\" for EndPoint\n    * _Context params_:\n      * **path** (String): like \"/test\" or \"\" (empty string, for root context)\n      * **basename** (String): normalized path. see [Tomcat Basenames](https://tomcat.apache.org/tomcat-10.1-doc/config/context.html#Naming)\n    * _EndPoint params_:\n      * **http** (String Array): like \"http://api3.acme.com:8080\"\n      * **https** (String Array): like \"https://api4.acme.com:8443\"\n      * **ajp** (String Array): like \"ajp://api5.acme.com:8009\"\n      * **jvmroute** (String): like \"jvm1\" or \"\" (empty string if not defined). see [Tomcat Engine](https://tomcat.apache.org/tomcat-10.1-doc/config/engine.html#Common_Attributes)\n\n###### * String Array in x-www-form-urlencoded are like: k=v1\u0026k=v2\u0026k=v3 (in a servlet you can get the `String[]` with: `request.getParameterValues(\"k\")`)\n\n---\n\n## MAVEN\n\n###### jakarta.servlet (tomcat 10+, java11+)\n\n    \u003cdependency\u003e\n        \u003cgroupId\u003eorg.javastack\u003c/groupId\u003e\n        \u003cartifactId\u003ewebapp-notifier-jakarta\u003c/artifactId\u003e\n        \u003cversion\u003e2.0.0\u003c/version\u003e\n    \u003c/dependency\u003e\n\n###### javax.servlet (tomcat 7, 8.5, 9)\n\n    \u003cdependency\u003e\n        \u003cgroupId\u003eorg.javastack\u003c/groupId\u003e\n        \u003cartifactId\u003ewebapp-notifier\u003c/artifactId\u003e\n        \u003cversion\u003e1.1.0\u003c/version\u003e\n    \u003c/dependency\u003e\n\n---\nInspired in [ServletContextListener](https://tomcat.apache.org/tomcat-10.1-doc/servletapi/jakarta/servlet/ServletContextListener.html), this code is Java-minimalistic version.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fggrandes%2Fwebapp-notifier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fggrandes%2Fwebapp-notifier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fggrandes%2Fwebapp-notifier/lists"}