{"id":17219172,"url":"https://github.com/mpromonet/spring-onvif","last_synced_at":"2025-10-13T15:05:54.752Z","repository":{"id":5306484,"uuid":"6488003","full_name":"mpromonet/spring-onvif","owner":"mpromonet","description":"ONVIF services with spring","archived":false,"fork":false,"pushed_at":"2017-11-11T14:30:46.000Z","size":518,"stargazers_count":13,"open_issues_count":1,"forks_count":8,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-10-13T15:05:52.216Z","etag":null,"topics":["camel","cxf","onvif"],"latest_commit_sha":null,"homepage":null,"language":"Groovy","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"Yalantis/Koloda","license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mpromonet.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}},"created_at":"2012-11-01T10:37:13.000Z","updated_at":"2023-08-16T16:14:53.000Z","dependencies_parsed_at":"2022-09-01T15:57:38.373Z","dependency_job_id":null,"html_url":"https://github.com/mpromonet/spring-onvif","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mpromonet/spring-onvif","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpromonet%2Fspring-onvif","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpromonet%2Fspring-onvif/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpromonet%2Fspring-onvif/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpromonet%2Fspring-onvif/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mpromonet","download_url":"https://codeload.github.com/mpromonet/spring-onvif/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpromonet%2Fspring-onvif/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279015893,"owners_count":26085777,"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-13T02:00:06.723Z","response_time":61,"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":["camel","cxf","onvif"],"created_at":"2024-10-15T03:49:20.128Z","updated_at":"2025-10-13T15:05:54.735Z","avatar_url":"https://github.com/mpromonet.png","language":"Groovy","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build status](https://travis-ci.org/mpromonet/spring-onvif.svg)](https://travis-ci.org/mpromonet/spring-onvif)\r\n[![Heroku](https://heroku-badge.herokuapp.com/?app=spring-onvif)](https://spring-onvif.herokuapp.com/)\r\n\r\nSpring-ONVIF\r\n========\r\nThe aim is to try to implement ONVIF services in a flexible way and to learn a bit more about what could do Apache Camel.  \r\nThis should probably never run inside a camera, but it could be use to test ONVIF client.  \r\n\r\nThe application is based on Spring Framework and use :\r\n- Apache CXF to manage WS endpoints\r\n- Apache Camel to route the SOAP request\r\n- Groovy to process SOAP request and produce SOAP response\r\n\r\nThe application instantiate an ONVIF Device Service and publish it using the WS-Discovery of Apache CXF.  \r\nApache Camel is used to dispatch each ONVIF method to a groovy script located in groovy/\u003cserviceName\u003e/\u003cmethodName\u003e.groovy.  \r\nThen adding support for a new method just need to add a new script. Modifying behaviour of a method could be done modifying the script without restart the application.   \r\n\r\nContainer is a war, but it should be possible to use a jar assembly or an osgi bundle.\r\n\r\nBuild\r\n--------\r\n- `mvn package` build the web application.\r\n- `mvn` build and run the web application in embedded tomcat.\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmpromonet%2Fspring-onvif","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmpromonet%2Fspring-onvif","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmpromonet%2Fspring-onvif/lists"}