TAP5-2780: Fixing JSONObject to honour equals/hashCode contract (#48)

Added tests for both JSONObject and JSONArray. The latter required no change to get the test to pass.

Co-authored-by: Manuel Koller <m.koller@albourne.com>
3 files changed
tree: 50af29a92594615d32e03b7683b61fc464a9a1e0
  1. .github/
  2. beanmodel/
  3. buildSrc/
  4. commons/
  5. genericsresolver-guava/
  6. gradle/
  7. plastic/
  8. quickstart/
  9. src/
  10. support/
  11. tapestry-beanvalidator/
  12. tapestry-cdi/
  13. tapestry-clojure/
  14. tapestry-core/
  15. tapestry-func/
  16. tapestry-hibernate/
  17. tapestry-hibernate-core/
  18. tapestry-http/
  19. tapestry-internal-test/
  20. tapestry-ioc/
  21. tapestry-ioc-jcache/
  22. tapestry-ioc-junit/
  23. tapestry-javadoc/
  24. tapestry-jmx/
  25. tapestry-jpa/
  26. tapestry-json/
  27. tapestry-kaptcha/
  28. tapestry-latest-java-tests/
  29. tapestry-mongodb/
  30. tapestry-openapi-viewer/
  31. tapestry-rest-jackson/
  32. tapestry-runner/
  33. tapestry-spock/
  34. tapestry-spring/
  35. tapestry-test/
  36. tapestry-test-constants/
  37. tapestry-test-data/
  38. tapestry-upload/
  39. tapestry-version-migrator/
  40. tapestry-webresources/
  41. tapestry5-annotations/
  42. .asf.yaml
  43. .gitignore
  44. 5.7_RELEASE_NOTES.md
  45. 54_RELEASE_NOTES.md
  46. 55_RELEASE_NOTES.md
  47. 583_RELEASE_NOTES.md
  48. build.gradle
  49. gradle.properties
  50. gradlew
  51. gradlew.bat
  52. LICENSE.txt
  53. md5.gradle
  54. NOTICE.txt
  55. prebuild.sh
  56. README.md
  57. settings.gradle
  58. sha256.gradle
  59. ssh.gradle
README.md

Tapestry is a component-oriented Java web app framework focusing on performance and developer productivity.

A component is just a reusable part of a page. It's trivially easy to create your own components, and Tapestry comes with a large number of components you can use (Form, Loop, Select, Checkbox, Grid, BeanEditor, etc.).

In Tapestry, each page and component is a simple Java POJO with a corresponding HTML template. The HTML template and corresponding Java class have the same name (e.g. “Breadcrumbs.html” and “Breadcrumbs.java”), so you don‘t have to tell Tapestry which template uses which Java class. It’s automatic.

Tapestry features live class reloading: change your Java code, refresh the browser and see the changes instantly.

AJAX support allows you to create responsive web interfaces while writing little to no JavaScript. (But if you like writing JavaScript, great, no problem, Tapestry gets out of your way.)

Quick Start

Main article: Getting Started

You can let Apache Maven create your initial project for you:

mvn archetype:generate -DarchetypeCatalog=http://tapestry.apache.org

Maven will prompt you for the archetype to create (“Tapestry 5 Quickstart Project”) and the Tapestry version number (e.g., “5.4.3”). It also asks you to create a group id, artifact id (e.g., “newapp”) and version number for your app. Once Maven dowloads everything, then you can start the app:

$ cd newapp
$ mvn jetty:run

Then just send your browser to http://localhost:8080/newapp

See the Getting Started introduction as well as the Tapestry Tutorial for a deeper dive.

Main Docs

See https://tapestry.apache.org/documentation.html for the details on every Tapestry topic.