https://github.com/xvik/dropwizard-app-todo
Sample dropwizard-guicey application
https://github.com/xvik/dropwizard-app-todo
Last synced: 5 months ago
JSON representation
Sample dropwizard-guicey application
- Host: GitHub
- URL: https://github.com/xvik/dropwizard-app-todo
- Owner: xvik
- Created: 2025-09-12T07:04:07.000Z (9 months ago)
- Default Branch: master
- Last Pushed: 2025-11-22T09:35:44.000Z (7 months ago)
- Last Synced: 2025-11-22T11:25:35.664Z (7 months ago)
- Language: JavaScript
- Size: 87.9 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Todo: sample Dropwizard 5 application
A very basic [dropwizard-guicey](https://github.com/xvik/dropwizard-guicey) demo application: a very simple todo app.
Includes the simplest delivery packaging using gradle application plugin.
Dropwizard 5 (guicey 8.x)
Could be used for bootstrapping new projects.
Based on https://todobackend.com/
Client based on: https://todomvc.com/ (ES5 https://todomvc.com/examples/javascript-es5/dist/)
Started application would be available on url: http://localhost:8080/
## Structure
Web application is a simple ES5 application (without additional js processing).
It is served with [dropwizard-assets](https://www.dropwizard.io/en/stable/manual/core.html#serving-assets).
All web resources are in `src/main/resources/assets`
Dev configuration located at project root: config.yml
### Delivery
Delivery created by the gradle application plugin. Run scrips are generated into
`bin/` delivery directory (scripts renamed for simplicity to `startup` instead of project name)
`src/dist` directory contains additional delivery files: production configuration and run script.
## Tasks
* `./gradle run` starts application with dev config
* `./gradlew distZip` build zip delivery archive available in `build/deliveries`
* `./gradlew installDist` creates delivery in `build/install/` so delivery content could be easily examined
For a default run (`./gradlew`) delivery would be created
## Run from IDE
Create run configuration for `ru.vyarus.app.todo.TodoApp` with arguments: `server config.yml`
## Lombok
Also shows [lombok](https://projectlombok.org/) usage for model class (it could be also used for configuration class too)
In IntelliJIdea it should work out of the box. in case of problems read [this guide](https://www.baeldung.com/lombok-ide#intellij)
## Test
There are three versions of the same tests:
* Lightweight rest tests (stub rest, without starting web container)
* Integration test with (full application startup)
* Integration test with static client (when resource methods use for test call configuration)
The same calls will work with lightweight rest too.
NOTE: as rest use PATCH method, default JerseyClient, prepared by guicey [will not work on jdk > 16](https://github.com/eclipse-ee4j/jersey/issues/4825#issuecomment-925836004)
(or see [blog post](http://blog.supol.cz/?p=320))
To workaround it, apache client factory is used.
## Banner
Banner (`banner.txt` file content) was created in https://manytools.org/hacker-tools/ascii-banner/
(font: DOS Rebel)