{"id":15211272,"url":"https://github.com/spring-petclinic/spring-framework-petclinic","last_synced_at":"2026-01-30T11:28:19.360Z","repository":{"id":40994960,"uuid":"73789676","full_name":"spring-petclinic/spring-framework-petclinic","owner":"spring-petclinic","description":"A Spring Framework application based on JSP, Spring MVC, Spring Data JPA, Hibernate and JDBC","archived":false,"fork":false,"pushed_at":"2025-12-01T09:03:18.000Z","size":1792,"stargazers_count":472,"open_issues_count":7,"forks_count":2528,"subscribers_count":37,"default_branch":"main","last_synced_at":"2025-12-03T20:40:34.849Z","etag":null,"topics":["hibernate","jetty","jpa","jsp","maven","mysql","sample","spring","spring-data-jpa","spring-mvc","springframework","tomcat"],"latest_commit_sha":null,"homepage":"","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/spring-petclinic.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2016-11-15T07:50:57.000Z","updated_at":"2025-12-01T09:03:16.000Z","dependencies_parsed_at":"2023-10-13T14:04:52.034Z","dependency_job_id":"c6507416-a004-42d9-b699-67796fcc39fa","html_url":"https://github.com/spring-petclinic/spring-framework-petclinic","commit_stats":{"total_commits":668,"total_committers":45,"mean_commits":"14.844444444444445","dds":0.6392215568862276,"last_synced_commit":"c6f217cf858b5abbbf3c7a8a601a9814ccddc4c5"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/spring-petclinic/spring-framework-petclinic","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spring-petclinic%2Fspring-framework-petclinic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spring-petclinic%2Fspring-framework-petclinic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spring-petclinic%2Fspring-framework-petclinic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spring-petclinic%2Fspring-framework-petclinic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/spring-petclinic","download_url":"https://codeload.github.com/spring-petclinic/spring-framework-petclinic/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spring-petclinic%2Fspring-framework-petclinic/sbom","scorecard":{"id":574367,"data":{"date":"2025-08-11","repo":{"name":"github.com/spring-petclinic/spring-framework-petclinic","commit":"14e5c6cd5a252c8128922a8ba9d124d4b21996f8"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.8,"checks":[{"name":"Maintained","score":10,"reason":"14 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":9,"reason":"binaries present in source code","details":["Warn: binary detected: .mvn/wrapper/maven-wrapper.jar:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/maven-build-main.yml:1","Warn: no topLevel permission defined: .github/workflows/maven-build-pull-request.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/maven-build-main.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/spring-petclinic/spring-framework-petclinic/maven-build-main.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/maven-build-main.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/spring-petclinic/spring-framework-petclinic/maven-build-main.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/maven-build-pull-request.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/spring-petclinic/spring-framework-petclinic/maven-build-pull-request.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/maven-build-pull-request.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/spring-petclinic/spring-framework-petclinic/maven-build-pull-request.yml/main?enable=pin","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"SAST","score":10,"reason":"SAST tool detected","details":["Info: SAST configuration detected: Sonar","Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-20T17:15:13.861Z","repository_id":40994960,"created_at":"2025-08-20T17:15:13.861Z","updated_at":"2025-08-20T17:15:13.861Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28911821,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T08:15:08.179Z","status":"ssl_error","status_checked_at":"2026-01-30T08:14:31.507Z","response_time":66,"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":["hibernate","jetty","jpa","jsp","maven","mysql","sample","spring","spring-data-jpa","spring-mvc","springframework","tomcat"],"created_at":"2024-09-28T08:21:49.871Z","updated_at":"2026-01-30T11:28:19.354Z","avatar_url":"https://github.com/spring-petclinic.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Spring PetClinic Sample Application\n\n[![Java CI with Maven](https://github.com/spring-petclinic/spring-framework-petclinic/actions/workflows/maven-build.yml/badge.svg)](https://github.com/spring-petclinic/spring-framework-petclinic/actions/workflows/maven-build.yml)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=spring-petclinic_spring-framework-petclinic\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=spring-petclinic_spring-framework-petclinic)\n[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=spring-petclinic_spring-framework-petclinic\u0026metric=coverage)](https://sonarcloud.io/dashboard?id=spring-petclinic_spring-framework-petclinic)\n\nApproved by the Spring team, this repo is a fork of the [spring-projects/spring-petclinic](https://github.com/spring-projects/spring-petclinic).\nIt allows the Spring community to maintain a Petclinic version with a plain old **Spring Framework configuration**\nand with a **3-layer architecture** (i.e. presentation --\u003e service --\u003e repository).\nThe \"canonical\" implementation is now based on Spring Boot, Thymeleaf and [aggregate-oriented domain]([https://github.com/spring-projects/spring-petclinic/pull/200). \n\n\n## Understanding the Spring Petclinic application with a few diagrams\n\n[See the presentation here](http://fr.slideshare.net/AntoineRey/spring-framework-petclinic-sample-application) (2017 update)\n\n## Running petclinic locally\n\n### With Maven command line\n```\ngit clone https://github.com/spring-petclinic/spring-framework-petclinic.git\ncd spring-framework-petclinic\n./mvnw jetty:run-war\n# For Windows : ./mvnw.cmd jetty:run-war\n```\n\n### With Docker\n```\ndocker run -p 8080:8080 springcommunity/spring-framework-petclinic\n```\n\nYou can then access petclinic here: [http://localhost:8080/](http://localhost:8080/)\n\n\u003cimg width=\"1042\" alt=\"petclinic-screenshot\" src=\"https://cloud.githubusercontent.com/assets/838318/19727082/2aee6d6c-9b8e-11e6-81fe-e889a5ddfded.png\"\u003e\n\n## In case you find a bug/suggested improvement for Spring Petclinic\n\nOur issue tracker is available here: https://github.com/spring-petclinic/spring-framework-petclinic/issues\n\n\n## Database configuration\n\nIn its default configuration, Petclinic uses an in-memory database (H2) which gets populated at startup with data.\n\nA similar setups is provided for MySQL and PostgreSQL in case a persistent database configuration is needed.\nTo run petclinic locally using persistent database, it is needed to run with profile defined in main pom.xml file.\n\nFor MySQL database, it is needed to run with 'MySQL' profile defined in main pom.xml file.\n\n```\n./mvnw jetty:run-war -P MySQL\n```\n\nBefore do this, would be good to check properties defined in MySQL profile inside pom.xml file.\n\n```\n\u003cproperties\u003e\n    \u003cjpa.database\u003eMYSQL\u003c/jpa.database\u003e\n    \u003cjdbc.driverClassName\u003ecom.mysql.cj.jdbc.Driver\u003c/jdbc.driverClassName\u003e\n    \u003cjdbc.url\u003ejdbc:mysql://localhost:3306/petclinic?useUnicode=true\u003c/jdbc.url\u003e\n    \u003cjdbc.username\u003epetclinic\u003c/jdbc.username\u003e\n    \u003cjdbc.password\u003epetclinic\u003c/jdbc.password\u003e\n\u003c/properties\u003e\n```      \n\nYou could start MySQL locally with whatever installer works for your OS, or with docker:\n\n```\ndocker run -e MYSQL_USER=petclinic -e MYSQL_PASSWORD=petclinic -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=petclinic -p 3306:3306 mysql:5.7.8\n```\n\nFor PostgreSQL database, it is needed to run with 'PostgreSQL' profile defined in main pom.xml file.\n\n```\n./mvnw jetty:run-war -P PostgreSQL\n```\n\nBefore do this, would be good to check properties defined in PostgreSQL profile inside pom.xml file.\n\n```\n\u003cproperties\u003e\n    \u003cjpa.database\u003ePOSTGRESQL\u003c/jpa.database\u003e\n    \u003cjdbc.driverClassName\u003eorg.postgresql.Driver\u003c/jdbc.driverClassName\u003e\n    \u003cjdbc.url\u003ejdbc:postgresql://localhost:5432/petclinic\u003c/jdbc.url\u003e\n    \u003cjdbc.username\u003epostgres\u003c/jdbc.username\u003e\n    \u003cjdbc.password\u003epetclinic\u003c/jdbc.password\u003e\n\u003c/properties\u003e\n```\nYou could also start PostgreSQL locally with whatever installer works for your OS, or with docker:\n\n```\ndocker run --name postgres-petclinic -e POSTGRES_PASSWORD=petclinic -e POSTGRES_DB=petclinic -p 5432:5432 -d postgres:9.6.0\n```\n\n## Persistence layer choice\n\nThe persistence layer have 3 available implementations: JPA (default), JDBC and Spring Data JPA.\nThe default JPA implementation could be changed by using a Spring profile: `jdbc`, `spring-data-jpa` and `jpa`.  \nAs an example, you may use the `-Dspring.profiles.active=jdbc` VM options to start the application with the JDBC implementation.\n\n```\n./mvnw jetty:run-war -Dspring.profiles.active=jdbc\n```\n\n## Compiling the CSS\n\nThere is a `petclinic.css` in `src/main/webapp/resources/resources/css`. \nIt was generated from the `petclinic.scss` source, combined with the [Bootstrap](https://getbootstrap.com/) library.\nIf you make changes to the `scss`, or upgrade Bootstrap, you will need to re-compile the CSS resources\nusing the Maven profile \"css\", i.e. `./mvnw generate-resources -P css`.\n\n## Working with Petclinic in your IDE\n\n### Prerequisites\nThe following items should be installed in your system:\n* Java 17 or newer (full JDK not a JRE)\n* Maven 3.8+ (https://maven.apache.org/install.html)\n* git command line tool (https://help.github.com/articles/set-up-git)\n* Jetty 11.0+ or Tomcat 11+\n* Your prefered IDE \n  * Eclipse with the m2e plugin. Note: when m2e is available, there is an m2 icon in Help -\u003e About dialog. If m2e is not there, just follow the install process here: http://www.eclipse.org/m2e/\n  * [Spring Tools Suite](https://spring.io/tools) (STS)\n  * IntelliJ IDEA\n\n\n### Steps:\n\n1) On the command line\n```\ngit clone https://github.com/spring-petclinic/spring-framework-petclinic.git\n```\n\n2) Inside Eclipse or STS\n```\nFile -\u003e Import -\u003e Maven -\u003e Existing Maven project\n```\nThen either build on the command line `./mvnw generate-resources` or using the Eclipse launcher (right click on project and `Run As -\u003e Maven install`) to generate the CSS.\nConfigure a Jetty or a Tomcat web container then deploy the `spring-petclinic.war` file.\n\n3) Inside IntelliJ IDEA\n\nIn the main menu, select `File \u003e Open` and select the Petclinic [pom.xml](pom.xml). Click on the `Open` button.\n\nCSS files are generated from the Maven build. You can either build them on the command line `./mvnw generate-resources` \nor right click on the `spring-petclinic` project then `Maven -\u003e Generates sources and Update Folders`.\n\nGo to the `Run -\u003e Edit Configuration` then configure a Tomcat or a Jetty web container. Deploy the `spring-petclinic.war` file.\nRun the application by clicking on the `Run` icon.\n\n\n4) Navigate to Petclinic\n\nVisit [http://localhost:8080](http://localhost:8080) in your browser.\n\n\n## Working with Petclinic in IntelliJ IDEA\n\n### prerequisites\nThe following items should be installed in your system:\n\n\n## Looking for something in particular?\n\n| Java Config |   |\n|-------------|---|\n| Java config branch | Petclinic uses XML configuration by default. In case you'd like to use Java Config instead, there is a Java Config branch available [here](https://github.com/spring-petclinic/spring-framework-petclinic/tree/javaconfig) |\n\n| Inside the 'Web' layer | Files |\n|------------------------|-------|\n| Spring MVC - XML integration | [mvc-view-config.xml](src/main/resources/spring/mvc-view-config.xml)  |\n| Spring MVC - ContentNegotiatingViewResolver| [mvc-view-config.xml](src/main/resources/spring/mvc-view-config.xml) |\n| JSP custom tags | [WEB-INF/tags](src/main/webapp/WEB-INF/tags), [createOrUpdateOwnerForm.jsp](src/main/webapp/WEB-INF/jsp/owners/createOrUpdateOwnerForm.jsp)|\n| JavaScript dependencies | [JavaScript libraries are declared as webjars in the pom.xml](pom.xml) |\n| Static resources config | [Resource mapping in Spring configuration](/src/main/resources/spring/mvc-core-config.xml#L30) |\n| Static resources usage | [htmlHeader.tag](src/main/webapp/WEB-INF/tags/htmlHeader.tag), [footer.tag](src/main/webapp/WEB-INF/tags/footer.tag) |\n| Thymeleaf | In the late 2016, the original [Spring Petclinic](https://github.com/spring-projects/spring-petclinic) has moved from JSP to Thymeleaf. |\n\n| 'Service' and 'Repository' layers | Files |\n|-----------------------------------|-------|\n| Transactions | [business-config.xml](src/main/resources/spring/business-config.xml), [ClinicServiceImpl.java](src/main/java/org/springframework/samples/petclinic/service/ClinicServiceImpl.java) |\n| Cache | [tools-config.xml](src/main/resources/spring/tools-config.xml), [ClinicServiceImpl.java](src/main/java/org/springframework/samples/petclinic/service/ClinicServiceImpl.java) |\n| Bean Profiles | [business-config.xml](src/main/resources/spring/business-config.xml), [ClinicServiceJdbcTests.java](src/test/java/org/springframework/samples/petclinic/service/ClinicServiceJdbcTests.java), [PetclinicInitializer.java](src/main/java/org/springframework/samples/petclinic/PetclinicInitializer.java) |\n| JDBC | [business-config.xml](src/main/resources/spring/business-config.xml), [jdbc folder](src/main/java/org/springframework/samples/petclinic/repository/jdbc) |\n| JPA | [business-config.xml](src/main/resources/spring/business-config.xml), [jpa folder](src/main/java/org/springframework/samples/petclinic/repository/jpa) |\n| Spring Data JPA | [business-config.xml](src/main/resources/spring/business-config.xml), [springdatajpa folder](src/main/java/org/springframework/samples/petclinic/repository/springdatajpa) |\n\n\n## Publishing a Docker image\n\nThis application uses [Google Jib]([https://github.com/GoogleContainerTools/jib) to build an optimized Docker image\ninto the [Docker Hub](https://cloud.docker.com/u/springcommunity/repository/docker/springcommunity/spring-framework-petclinic/)\nrepository.\nThe [pom.xml](pom.xml) has been configured to publish the image with a the `springcommunity/spring-framework-petclinic` image name.\n\nJib containerizes this WAR project by using the [distroless Jetty](https://github.com/GoogleContainerTools/distroless/tree/master/java/jetty) as a base image.\n\nBuild and push the container image of Petclinic to the Docker Hub registry:\n```\nmvn jib:build\n```\n\n\n## Interesting Spring Petclinic forks\n\nThe Spring Petclinic master branch in the main [spring-projects](https://github.com/spring-projects/spring-petclinic)\nGitHub org is the \"canonical\" implementation, currently based on Spring Boot and Thymeleaf.\n\nThis [spring-framework-petclinic](https://github.com/spring-petclinic/spring-framework-petclinic) project is one of the [several forks](https://spring-petclinic.github.io/docs/forks.html) \nhosted in a special GitHub org: [spring-petclinic](https://github.com/spring-petclinic).\nIf you have a special interest in a different technology stack\nthat could be used to implement the Pet Clinic then please join the community there.\n\n\n## Interaction with other open source projects\n\nOne of the best parts about working on the Spring Petclinic application is that we have the opportunity to work in direct contact with many Open Source projects. We found some bugs/suggested improvements on various topics such as Spring, Spring Data, Bean Validation and even Eclipse! In many cases, they've been fixed/implemented in just a few days.\nHere is a list of them:\n\n| Name | Issue |\n|------|-------|\n| Spring JDBC: simplify usage of NamedParameterJdbcTemplate | [SPR-10256](https://github.com/spring-projects/spring-framework/issues/14889) and [SPR-10257](https://github.com/spring-projects/spring-framework/issues/14890) |\n| Bean Validation / Hibernate Validator: simplify Maven dependencies and backward compatibility |[HV-790](https://hibernate.atlassian.net/browse/HV-790) and [HV-792](https://hibernate.atlassian.net/browse/HV-792) |\n| Spring Data: provide more flexibility when working with JPQL queries | [DATAJPA-292](https://github.com/spring-projects/spring-data-jpa/issues/704) |\n| Dandelion: improves the DandelionFilter for Jetty support | [113](https://github.com/dandelion/dandelion/issues/113) |\n\n\n# Contributing\n\nThe [issue tracker](/issues) is the preferred channel for bug reports, features requests and submitting pull requests.\n\nFor pull requests, editor preferences are available in the [editor config](.editorconfig) for easy use in common text editors. Read more and download plugins at \u003chttp://editorconfig.org\u003e.\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspring-petclinic%2Fspring-framework-petclinic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspring-petclinic%2Fspring-framework-petclinic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspring-petclinic%2Fspring-framework-petclinic/lists"}