├── modules
├── jooby-cli
│ ├── .gitignore
│ └── src
│ │ └── main
│ │ └── resources
│ │ ├── cli
│ │ ├── gradle
│ │ │ ├── settings.gradle.hbs
│ │ │ └── gradle
│ │ │ │ └── wrapper
│ │ │ │ ├── gradle-wrapper.jar
│ │ │ │ └── gradle-wrapper.properties
│ │ ├── conf
│ │ │ ├── application.conf
│ │ │ └── logback.xml
│ │ ├── gradle.properties.hbs
│ │ ├── Controller.kt.hbs
│ │ ├── Controller.java.hbs
│ │ ├── docker.gradle.hbs
│ │ ├── README.md.hbs
│ │ ├── App.kt.hbs
│ │ └── docker.maven.hbs
│ │ └── logback.xml
├── jooby-freemarker
│ └── src
│ │ ├── test
│ │ └── resources
│ │ │ ├── foo
│ │ │ └── index.ftl
│ │ │ └── views
│ │ │ ├── locales.ftl
│ │ │ └── index.ftl
│ │ └── main
│ │ └── java
│ │ ├── io
│ │ └── jooby
│ │ │ └── freemarker
│ │ │ └── package-info.java
│ │ └── module-info.java
├── jooby-pebble
│ └── src
│ │ ├── test
│ │ └── resources
│ │ │ ├── messages.properties
│ │ │ ├── messages_en_GB.properties
│ │ │ ├── messages_de_AT.properties
│ │ │ ├── messages_de.properties
│ │ │ └── views
│ │ │ ├── locales.peb
│ │ │ └── index.peb
│ │ └── main
│ │ └── java
│ │ ├── io
│ │ └── jooby
│ │ │ └── pebble
│ │ │ └── package-info.java
│ │ └── module-info.java
├── jooby-gradle-plugin
│ ├── gradle.properties
│ ├── settings.gradle
│ ├── src
│ │ └── main
│ │ │ └── resources
│ │ │ └── META-INF
│ │ │ └── gradle-plugins
│ │ │ └── jooby.properties
│ └── gradle
│ │ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── jooby-jetty
│ └── src
│ │ └── main
│ │ ├── resources
│ │ └── META-INF
│ │ │ └── services
│ │ │ └── io.jooby.Server
│ │ └── java
│ │ └── io
│ │ └── jooby
│ │ ├── jetty
│ │ └── package-info.java
│ │ └── internal
│ │ └── jetty
│ │ └── JettyStopPipeline.java
├── jooby-netty
│ └── src
│ │ └── main
│ │ ├── resources
│ │ └── META-INF
│ │ │ └── services
│ │ │ └── io.jooby.Server
│ │ └── java
│ │ └── io
│ │ └── jooby
│ │ └── netty
│ │ └── package-info.java
├── jooby-vertx
│ └── src
│ │ └── main
│ │ ├── resources
│ │ └── META-INF
│ │ │ └── services
│ │ │ └── io.jooby.Server
│ │ └── java
│ │ ├── io
│ │ └── jooby
│ │ │ └── vertx
│ │ │ └── package-info.java
│ │ └── module-info.java
├── jooby-whoops
│ ├── src
│ │ ├── etc
│ │ │ └── module-info.activator
│ │ ├── main
│ │ │ ├── resources
│ │ │ │ └── io
│ │ │ │ │ └── jooby
│ │ │ │ │ └── whoops
│ │ │ │ │ └── views
│ │ │ │ │ ├── header_outer.html
│ │ │ │ │ ├── panel_details.html
│ │ │ │ │ ├── panel_details_outer.html
│ │ │ │ │ ├── frames_container.html
│ │ │ │ │ ├── panel_left.html
│ │ │ │ │ └── panel_left_outer.html
│ │ │ └── java
│ │ │ │ ├── io
│ │ │ │ └── jooby
│ │ │ │ │ └── whoops
│ │ │ │ │ └── package-info.java
│ │ │ │ └── module-info.java
│ │ └── test
│ │ │ ├── resources
│ │ │ └── whoops
│ │ │ │ └── views
│ │ │ │ ├── header_outer.html.php
│ │ │ │ ├── panel_details.html.php
│ │ │ │ ├── panel_details_outer.html.php
│ │ │ │ ├── panel_left.html.php
│ │ │ │ ├── panel_left_outer.html.php
│ │ │ │ └── frames_container.html.php
│ │ │ └── java
│ │ │ └── examples
│ │ │ └── utils
│ │ │ └── Utils.java
│ └── NOTE.md
├── jooby-log4j
│ └── src
│ │ └── main
│ │ ├── resources
│ │ └── META-INF
│ │ │ └── services
│ │ │ └── io.jooby.LoggingService
│ │ └── java
│ │ ├── io
│ │ └── jooby
│ │ │ └── log4j
│ │ │ └── package-info.java
│ │ └── module-info.java
├── jooby-undertow
│ └── src
│ │ └── main
│ │ ├── resources
│ │ └── META-INF
│ │ │ └── services
│ │ │ ├── io.jooby.Server
│ │ │ └── io.undertow.protocols.alpn.ALPNProvider
│ │ └── java
│ │ ├── io
│ │ └── jooby
│ │ │ └── undertow
│ │ │ └── package-info.java
│ │ └── module-info.java
├── jooby-logback
│ └── src
│ │ └── main
│ │ ├── resources
│ │ └── META-INF
│ │ │ └── services
│ │ │ └── io.jooby.LoggingService
│ │ └── java
│ │ ├── io
│ │ └── jooby
│ │ │ └── logback
│ │ │ └── package-info.java
│ │ └── module-info.java
├── jooby-apt
│ └── src
│ │ ├── main
│ │ └── resources
│ │ │ └── META-INF
│ │ │ ├── gradle
│ │ │ └── incremental.annotation.processors
│ │ │ └── services
│ │ │ └── javax.annotation.processing.Processor
│ │ └── test
│ │ └── java
│ │ ├── source
│ │ ├── SomeInterface.java
│ │ ├── CustomGenericType.java
│ │ ├── EnumParam.java
│ │ ├── TopEnum.java
│ │ ├── EmptySubClassController.java
│ │ ├── PrimitiveReturnType.java
│ │ ├── MinRoute.java
│ │ ├── VoidRoute.java
│ │ ├── ArrayAnnotation.java
│ │ ├── ClassAnnotation.java
│ │ ├── SourceAnnotation.java
│ │ ├── SubController.java
│ │ ├── RoleAnnotation.java
│ │ ├── RouteInjection.java
│ │ ├── LinkAnnotation.java
│ │ ├── JavaBeanParam.java
│ │ ├── NoPathRoute.java
│ │ ├── SuspendRoute.java
│ │ ├── Controller1552Empty.java
│ │ ├── RouteClassAttributes.java
│ │ ├── Controller1786.java
│ │ ├── TopAnnotation.java
│ │ ├── Controller1786b.java
│ │ ├── RouteDispatch.java
│ │ └── StringArrayAnnotation.java
│ │ ├── tests
│ │ ├── i1807
│ │ │ ├── Word1807.java
│ │ │ └── C1807.java
│ │ ├── i3804
│ │ │ ├── Service3804.java
│ │ │ ├── Base3804.java
│ │ │ ├── C3804.java
│ │ │ └── C3804b.java
│ │ ├── i3472
│ │ │ ├── BindController.java
│ │ │ ├── CustomBind.java
│ │ │ ├── C3472e.java
│ │ │ ├── BindBean.java
│ │ │ ├── BeanMapping.java
│ │ │ └── BindBeanConstructor.java
│ │ ├── i3756
│ │ │ ├── S3756.java
│ │ │ └── C3756.java
│ │ ├── i3656
│ │ │ ├── B3656.java
│ │ │ ├── C3656.java
│ │ │ └── Issue3656.java
│ │ ├── i3469
│ │ │ ├── Bar3469.java
│ │ │ ├── Foo3469.java
│ │ │ └── C3469FieldInject.java
│ │ ├── i3539
│ │ │ ├── C3539.java
│ │ │ └── Secured3525.java
│ │ ├── i3476
│ │ │ └── Box.java
│ │ ├── verifyarg
│ │ │ ├── ControllerFlash.java
│ │ │ ├── ControllerCookie.java
│ │ │ ├── ControllerHeader.java
│ │ │ ├── ControllerSession.java
│ │ │ └── ControllerFlashOpt.java
│ │ ├── CustomRouterName.java
│ │ ├── i3468
│ │ │ └── C3468.java
│ │ ├── i2026
│ │ │ └── C2026.java
│ │ ├── i1814
│ │ │ └── U1814.java
│ │ ├── i2325
│ │ │ ├── C2325.java
│ │ │ └── MyID2325.java
│ │ ├── i2405
│ │ │ ├── Bean2405.java
│ │ │ └── C2405.java
│ │ ├── i1806
│ │ │ └── C1806.java
│ │ ├── i2417
│ │ │ └── C2417.java
│ │ ├── i3737
│ │ │ └── C3737.java
│ │ ├── i3507
│ │ │ └── C3507.java
│ │ ├── completablefuture
│ │ │ └── CCompletableFuture.java
│ │ ├── i1859
│ │ │ └── C1859.java
│ │ ├── i2525
│ │ │ └── MyID2525.java
│ │ ├── i3455
│ │ │ └── Schema.java
│ │ ├── validation
│ │ │ └── Bean.java
│ │ ├── i2629
│ │ │ └── C2629.java
│ │ └── i3582
│ │ │ └── C3582.java
│ │ └── io
│ │ └── jooby
│ │ └── apt
│ │ └── validator
│ │ └── FakeValidatorModule.java
├── jooby-conscrypt
│ └── src
│ │ └── main
│ │ ├── resources
│ │ └── META-INF
│ │ │ └── services
│ │ │ └── io.jooby.SslProvider
│ │ └── java
│ │ ├── io
│ │ └── jooby
│ │ │ └── conscrypt
│ │ │ └── package-info.java
│ │ └── module-info.java
├── jooby-handlebars
│ └── src
│ │ ├── test
│ │ └── resources
│ │ │ └── views
│ │ │ └── index.hbs
│ │ └── main
│ │ └── java
│ │ ├── module-info.java
│ │ └── io
│ │ └── jooby
│ │ └── handlebars
│ │ └── package-info.java
├── jooby-openapi
│ └── src
│ │ ├── test
│ │ ├── resources
│ │ │ ├── issues
│ │ │ │ ├── i3820
│ │ │ │ │ └── schema.adoc
│ │ │ │ ├── i2403
│ │ │ │ │ └── App2403
│ │ │ │ ├── i2594
│ │ │ │ │ └── App2594
│ │ │ │ └── i3578
│ │ │ │ │ ├── fail-unknown.yaml
│ │ │ │ │ └── keep.yaml
│ │ │ └── examples
│ │ │ │ └── minapp.yaml
│ │ ├── java
│ │ │ ├── issues
│ │ │ │ ├── i3729
│ │ │ │ │ ├── museum
│ │ │ │ │ │ └── Tickets.java
│ │ │ │ │ ├── App3729.java
│ │ │ │ │ └── api
│ │ │ │ │ │ ├── AppDemoLibrary.java
│ │ │ │ │ │ ├── BookQuery.java
│ │ │ │ │ │ ├── MountedRouter.java
│ │ │ │ │ │ └── InstalledRouter.java
│ │ │ │ ├── i1580
│ │ │ │ │ ├── Data1580.java
│ │ │ │ │ ├── App1580.java
│ │ │ │ │ └── Controller1580.java
│ │ │ │ ├── i1581
│ │ │ │ │ ├── DaggerBuilder.java
│ │ │ │ │ ├── DaggerAppComponent.java
│ │ │ │ │ ├── AppComponent.java
│ │ │ │ │ └── App1581.java
│ │ │ │ ├── i2968
│ │ │ │ │ ├── App2968.java
│ │ │ │ │ └── C2968.java
│ │ │ │ ├── i1905
│ │ │ │ │ └── SubApp1905.java
│ │ │ │ ├── i2046
│ │ │ │ │ ├── App2046b.java
│ │ │ │ │ └── App2046.java
│ │ │ │ ├── i1592
│ │ │ │ │ ├── App1592.java
│ │ │ │ │ └── FairEmissionData.java
│ │ │ │ ├── i2594
│ │ │ │ │ ├── WelcomeService2594.java
│ │ │ │ │ ├── ControllersAppV12594.java
│ │ │ │ │ ├── ControllersAppV22594.java
│ │ │ │ │ └── ControllerV22594.java
│ │ │ │ ├── i3578
│ │ │ │ │ └── MergePaths.java
│ │ │ │ ├── i3059
│ │ │ │ │ ├── ControllerC3059.java
│ │ │ │ │ ├── ControllerB3059.java
│ │ │ │ │ ├── ControllerA3059.java
│ │ │ │ │ ├── App3059A.java
│ │ │ │ │ └── App3059B.java
│ │ │ │ ├── i1794
│ │ │ │ │ ├── TestSuite.java
│ │ │ │ │ └── App1794.java
│ │ │ │ ├── i1805
│ │ │ │ │ └── App1805.java
│ │ │ │ ├── i3760
│ │ │ │ │ ├── App3760.java
│ │ │ │ │ └── Q3760.java
│ │ │ │ ├── i3835
│ │ │ │ │ └── App3835.java
│ │ │ │ ├── i1601
│ │ │ │ │ └── Controller1601.java
│ │ │ │ ├── i1768
│ │ │ │ │ └── App1768.java
│ │ │ │ ├── i1855
│ │ │ │ │ └── App1855.java
│ │ │ │ ├── i1934
│ │ │ │ │ ├── App1934.java
│ │ │ │ │ └── Controller1934.java
│ │ │ │ ├── i2505
│ │ │ │ │ └── App2505.java
│ │ │ │ ├── i2542
│ │ │ │ │ └── App2542.java
│ │ │ │ ├── i3652
│ │ │ │ │ └── App3652.java
│ │ │ │ ├── i3654
│ │ │ │ │ └── App3654.java
│ │ │ │ ├── i1795
│ │ │ │ │ └── App1795.java
│ │ │ │ ├── i3397
│ │ │ │ │ └── Controller3397.java
│ │ │ │ ├── App1586.java
│ │ │ │ ├── i1596
│ │ │ │ │ └── ClassLevelTagApp.java
│ │ │ │ ├── i3820
│ │ │ │ │ └── App3820a.java
│ │ │ │ ├── App1586b.java
│ │ │ │ ├── App1586c.java
│ │ │ │ ├── i3575
│ │ │ │ │ └── Controller3575.java
│ │ │ │ ├── App1585.java
│ │ │ │ └── i1573
│ │ │ │ │ ├── App1573.java
│ │ │ │ │ └── Controller1573.java
│ │ │ ├── examples
│ │ │ │ ├── Bean.java
│ │ │ │ ├── Letter.java
│ │ │ │ ├── EmptySubClassController.java
│ │ │ │ ├── RouteA.java
│ │ │ │ ├── SubController.java
│ │ │ │ ├── Person.java
│ │ │ │ ├── BBean.java
│ │ │ │ ├── MvcApp.java
│ │ │ │ ├── OpenApiApp.java
│ │ │ │ ├── FormMvcApp.java
│ │ │ │ ├── MvcInstanceApp.java
│ │ │ │ ├── RouteInline.java
│ │ │ │ ├── MvcAppWithRoutes.java
│ │ │ │ ├── ABean.java
│ │ │ │ ├── ExternalReference.java
│ │ │ │ ├── HandlerA.java
│ │ │ │ ├── RouteImportReferences.java
│ │ │ │ ├── PetRepo.java
│ │ │ │ └── Pet.java
│ │ │ └── javadoc
│ │ │ │ └── input
│ │ │ │ ├── EnumDoc.java
│ │ │ │ ├── InterfaceDoc.java
│ │ │ │ ├── RequestHandler.java
│ │ │ │ ├── RecordBeanDoc.java
│ │ │ │ ├── sub
│ │ │ │ └── SubPackageHandler.java
│ │ │ │ └── NoDoc.java
│ │ └── kotlin
│ │ │ └── kt
│ │ │ ├── i3217
│ │ │ └── SomeBean3217.kt
│ │ │ ├── i3746
│ │ │ ├── App3746.kt
│ │ │ ├── RunAppWithServer.kt
│ │ │ ├── RunAppInlineWithServer.kt
│ │ │ ├── RunAppWithServerMode.kt
│ │ │ └── RunAppInlineWithServerMode.kt
│ │ │ ├── i1905
│ │ │ └── SubApp1905.kt
│ │ │ ├── KtMvcApp.kt
│ │ │ ├── KtMvcInstanceApp.kt
│ │ │ ├── KtMvcObjectApp.kt
│ │ │ ├── i2121
│ │ │ └── App2121.kt
│ │ │ ├── KtMvcAppWithRoutes.kt
│ │ │ ├── issues
│ │ │ └── i2004
│ │ │ │ └── App2004.kt
│ │ │ ├── KtAppWithMain.kt
│ │ │ ├── i2598
│ │ │ └── App2598.kt
│ │ │ ├── KtRouteIdioms.kt
│ │ │ ├── i3230
│ │ │ └── App3230.kt
│ │ │ ├── KtPathOperatorWithTags.kt
│ │ │ ├── KtNoAppClass.kt
│ │ │ └── KtRouteImport.kt
│ │ └── main
│ │ └── java
│ │ └── io
│ │ └── jooby
│ │ └── internal
│ │ └── openapi
│ │ ├── asciidoc
│ │ ├── ToSnippet.java
│ │ └── ToAsciiDoc.java
│ │ ├── javadoc
│ │ └── PathDoc.java
│ │ └── ResolvedSchemaExt.java
├── jooby-jte
│ └── src
│ │ └── main
│ │ └── java
│ │ ├── io
│ │ └── jooby
│ │ │ └── jte
│ │ │ └── package-info.java
│ │ └── module-info.java
├── jooby-jwt
│ └── src
│ │ └── main
│ │ └── java
│ │ └── io
│ │ └── jooby
│ │ └── jwt
│ │ └── package-info.java
├── jooby-camel
│ └── src
│ │ └── main
│ │ └── java
│ │ ├── io
│ │ └── jooby
│ │ │ ├── camel
│ │ │ └── package-info.java
│ │ │ └── internal
│ │ │ └── camel
│ │ │ └── CamelBeans.java
│ │ └── module-info.java
├── jooby-gson
│ └── src
│ │ ├── main
│ │ └── java
│ │ │ ├── io
│ │ │ └── jooby
│ │ │ │ └── gson
│ │ │ │ └── package-info.java
│ │ │ └── module-info.java
│ │ └── test
│ │ └── java
│ │ └── io
│ │ └── jooby
│ │ └── gson
│ │ └── Bean3434.java
├── jooby-guice
│ └── src
│ │ └── main
│ │ └── java
│ │ ├── io
│ │ └── jooby
│ │ │ └── guice
│ │ │ └── package-info.java
│ │ └── module-info.java
├── jooby-kafka
│ └── src
│ │ └── main
│ │ └── java
│ │ └── io
│ │ └── jooby
│ │ └── kafka
│ │ └── package-info.java
├── jooby-redis
│ └── src
│ │ └── main
│ │ └── java
│ │ ├── io
│ │ └── jooby
│ │ │ └── redis
│ │ │ └── package-info.java
│ │ └── module-info.java
├── jooby-jasypt
│ └── src
│ │ └── main
│ │ └── java
│ │ └── io
│ │ └── jooby
│ │ └── jasypt
│ │ └── package-info.java
├── jooby-mutiny
│ └── src
│ │ └── main
│ │ └── java
│ │ ├── io
│ │ └── jooby
│ │ │ └── mutiny
│ │ │ └── package-info.java
│ │ └── module-info.java
├── jooby-quartz
│ └── src
│ │ └── main
│ │ └── java
│ │ └── io
│ │ └── jooby
│ │ ├── quartz
│ │ ├── package-info.java
│ │ └── ExtendedJobExecutionContext.java
│ │ └── internal
│ │ └── quartz
│ │ ├── DisallowConcurrentJobDelegate.java
│ │ ├── PersistJobDataAfterJobDelegate.java
│ │ └── StatefulJobDelegate.java
├── jooby-rocker
│ └── src
│ │ └── main
│ │ └── java
│ │ └── io
│ │ └── jooby
│ │ └── rocker
│ │ └── package-info.java
├── jooby-yasson
│ └── src
│ │ └── main
│ │ └── java
│ │ ├── io
│ │ └── jooby
│ │ │ └── yasson
│ │ │ └── package-info.java
│ │ └── module-info.java
├── jooby-awssdk-v1
│ └── src
│ │ └── main
│ │ └── java
│ │ └── io
│ │ └── jooby
│ │ └── awssdkv1
│ │ └── package-info.java
├── jooby-caffeine
│ └── src
│ │ └── main
│ │ └── java
│ │ ├── io
│ │ └── jooby
│ │ │ └── caffeine
│ │ │ └── package-info.java
│ │ └── module-info.java
├── jooby-graphiql
│ └── src
│ │ └── main
│ │ └── java
│ │ ├── io
│ │ └── jooby
│ │ │ └── graphiql
│ │ │ └── package-info.java
│ │ └── module-info.java
├── jooby-graphql
│ └── src
│ │ └── main
│ │ └── java
│ │ ├── io
│ │ └── jooby
│ │ │ └── graphql
│ │ │ └── package-info.java
│ │ └── module-info.java
├── jooby-jackson
│ └── src
│ │ └── main
│ │ └── java
│ │ └── io
│ │ └── jooby
│ │ └── jackson
│ │ └── package-info.java
├── jooby-jstachio
│ └── src
│ │ └── main
│ │ └── java
│ │ └── io
│ │ └── jooby
│ │ └── jstachio
│ │ └── package-info.java
├── jooby-metrics
│ └── src
│ │ └── main
│ │ └── java
│ │ ├── io
│ │ └── jooby
│ │ │ └── metrics
│ │ │ └── package-info.java
│ │ └── module-info.java
├── jooby-reactor
│ └── src
│ │ └── main
│ │ └── java
│ │ ├── io
│ │ └── jooby
│ │ │ └── reactor
│ │ │ └── package-info.java
│ │ └── module-info.java
├── jooby-rxjava3
│ └── src
│ │ └── main
│ │ └── java
│ │ ├── io
│ │ └── jooby
│ │ │ └── rxjava3
│ │ │ └── package-info.java
│ │ └── module-info.java
├── jooby-thymeleaf
│ └── src
│ │ └── main
│ │ └── java
│ │ ├── io
│ │ └── jooby
│ │ │ └── thymeleaf
│ │ │ └── package-info.java
│ │ └── module-info.java
├── jooby-avaje-jsonb
│ └── src
│ │ └── main
│ │ └── java
│ │ ├── io
│ │ └── jooby
│ │ │ └── avaje
│ │ │ └── jsonb
│ │ │ └── package-info.java
│ │ └── module-info.java
├── jooby-avaje-inject
│ └── src
│ │ └── main
│ │ └── java
│ │ ├── io
│ │ └── jooby
│ │ │ └── avaje
│ │ │ └── inject
│ │ │ └── package-info.java
│ │ └── module-info.java
├── jooby-commons-email
│ └── src
│ │ └── main
│ │ └── java
│ │ └── io
│ │ └── jooby
│ │ └── commons
│ │ └── mail
│ │ └── package-info.java
├── jooby-ebean
│ └── src
│ │ └── main
│ │ └── java
│ │ ├── io
│ │ └── jooby
│ │ │ └── ebean
│ │ │ └── package-info.java
│ │ └── module-info.java
├── jooby-jdbi
│ └── src
│ │ └── main
│ │ └── java
│ │ ├── io
│ │ └── jooby
│ │ │ └── jdbi
│ │ │ └── package-info.java
│ │ └── module-info.java
├── jooby-pac4j
│ └── src
│ │ └── main
│ │ └── java
│ │ ├── io
│ │ └── jooby
│ │ │ └── pac4j
│ │ │ └── package-info.java
│ │ └── module-info.java
├── jooby-flyway
│ └── src
│ │ └── main
│ │ └── java
│ │ ├── io
│ │ └── jooby
│ │ │ └── flyway
│ │ │ └── package-info.java
│ │ └── module-info.java
├── jooby-hikari
│ └── src
│ │ └── main
│ │ └── java
│ │ ├── io
│ │ └── jooby
│ │ │ └── hikari
│ │ │ └── package-info.java
│ │ └── module-info.java
├── jooby-test
│ └── src
│ │ ├── main
│ │ └── java
│ │ │ ├── io
│ │ │ └── jooby
│ │ │ │ └── test
│ │ │ │ └── package-info.java
│ │ │ └── module-info.java
│ │ └── test
│ │ ├── java
│ │ └── io
│ │ │ └── jooby
│ │ │ └── test
│ │ │ ├── PojoBody.java
│ │ │ └── TestArgApp.java
│ │ └── resources
│ │ └── logback.xml
├── jooby-hibernate
│ └── src
│ │ └── main
│ │ └── java
│ │ ├── io
│ │ └── jooby
│ │ │ └── hibernate
│ │ │ └── package-info.java
│ │ └── module-info.java
├── jooby-kotlin
│ └── src
│ │ └── test
│ │ └── kotlin
│ │ └── io
│ │ └── jooby
│ │ └── kt
│ │ └── SubApp.kt
├── jooby-swagger-ui
│ └── package.json
├── jooby-db-scheduler
│ └── src
│ │ └── main
│ │ └── java
│ │ └── module-info.java
├── jooby-awssdk-v2
│ └── src
│ │ └── main
│ │ └── java
│ │ └── module-info.java
├── jooby-redoc
│ └── build.xml
├── jooby-avaje-validator
│ └── src
│ │ └── main
│ │ └── java
│ │ └── module-info.java
└── jooby-hibernate-validator
│ └── src
│ └── main
│ └── java
│ └── module-info.java
├── .github
└── FUNDING.yml
├── tests
└── src
│ ├── test
│ ├── resources
│ │ ├── singleroot
│ │ ├── io
│ │ │ └── jooby
│ │ │ │ └── i3070
│ │ │ │ ├── test.txt
│ │ │ │ └── tést.txt
│ │ ├── www
│ │ │ ├── about.html
│ │ │ ├── index.html
│ │ │ ├── note
│ │ │ │ └── index.html
│ │ │ ├── fallback.html
│ │ │ └── foo.js
│ │ ├── views
│ │ │ ├── error.hbs
│ │ │ ├── index.ftl
│ │ │ ├── index.hbs
│ │ │ ├── index.pebble
│ │ │ ├── flash.hbs
│ │ │ └── index.html
│ │ ├── static
│ │ │ └── js
│ │ │ │ └── index.js
│ │ ├── files
│ │ │ └── fileupload.js
│ │ └── logback.xml
│ ├── www
│ │ ├── note
│ │ │ └── index.html
│ │ ├── js
│ │ │ └── index.js
│ │ ├── css
│ │ │ └── styles.css
│ │ └── index.html
│ ├── java
│ │ ├── io
│ │ │ └── jooby
│ │ │ │ ├── i1905
│ │ │ │ ├── AService1905.java
│ │ │ │ └── BService1905.java
│ │ │ │ ├── i2923
│ │ │ │ └── Person2923.java
│ │ │ │ ├── i3756
│ │ │ │ ├── S3756.java
│ │ │ │ └── C3756.java
│ │ │ │ ├── i2240
│ │ │ │ ├── Service2240.java
│ │ │ │ └── ChildApp2240.java
│ │ │ │ ├── i3418
│ │ │ │ ├── Bar3418.java
│ │ │ │ └── Foo3418.java
│ │ │ │ ├── i1292
│ │ │ │ └── Controller1292.java
│ │ │ │ ├── i3508
│ │ │ │ └── data
│ │ │ │ │ ├── HbvNewAccountRequest.java
│ │ │ │ │ └── AvajeNewAccountRequest.java
│ │ │ │ ├── problem
│ │ │ │ └── data
│ │ │ │ │ ├── MyCustomException.java
│ │ │ │ │ ├── MyCustomExceptionToPropagate.java
│ │ │ │ │ └── CustomError.java
│ │ │ │ ├── i2457
│ │ │ │ ├── WelcomeService2457.java
│ │ │ │ ├── ControllersAppV12457.java
│ │ │ │ ├── ControllersAppV22457.java
│ │ │ │ └── ControllerV22457.java
│ │ │ │ ├── i3500
│ │ │ │ └── Widget.java
│ │ │ │ ├── i1792
│ │ │ │ └── Controller1792.java
│ │ │ │ ├── i2325
│ │ │ │ ├── C2325.java
│ │ │ │ └── MyID2325.java
│ │ │ │ ├── i3530
│ │ │ │ ├── Controller3530.java
│ │ │ │ └── Bean3530.java
│ │ │ │ ├── i1806
│ │ │ │ └── C1806.java
│ │ │ │ ├── i2069
│ │ │ │ └── Bean2069.java
│ │ │ │ ├── i3551
│ │ │ │ ├── Service3551.java
│ │ │ │ ├── GuiceService3551.java
│ │ │ │ └── JacksonModule3551.java
│ │ │ │ ├── i3474
│ │ │ │ └── App3474.java
│ │ │ │ ├── test
│ │ │ │ ├── ByteCodePrinter.java
│ │ │ │ ├── MyValue.java
│ │ │ │ └── TestSupport.java
│ │ │ │ ├── i2525
│ │ │ │ ├── Controller2525.java
│ │ │ │ └── Foo2525.java
│ │ │ │ ├── i2529
│ │ │ │ └── Controller2529.java
│ │ │ │ ├── i1573
│ │ │ │ └── Controller1573.java
│ │ │ │ ├── i1859
│ │ │ │ └── C1859.java
│ │ │ │ ├── i2068
│ │ │ │ └── Bean2068.java
│ │ │ │ ├── i3751
│ │ │ │ └── User3721.java
│ │ │ │ ├── i1786
│ │ │ │ └── Controller1786.java
│ │ │ │ ├── i3764
│ │ │ │ └── C3764.java
│ │ │ │ └── i2477
│ │ │ │ └── Controller2477.java
│ │ └── examples
│ │ │ ├── multiapp
│ │ │ ├── BarService.java
│ │ │ └── FooService.java
│ │ │ ├── JAXRS.java
│ │ │ ├── Message.java
│ │ │ ├── AppNoInstallServer.java
│ │ │ ├── MyValueRouter.java
│ │ │ ├── NoTopLevelPath.java
│ │ │ ├── Role.java
│ │ │ └── LoopDispatch.java
│ └── kotlin
│ │ ├── NoPckg.kt
│ │ ├── i3476
│ │ └── C3476.kt
│ │ ├── i3477
│ │ └── C3477.kt
│ │ ├── io
│ │ └── jooby
│ │ │ └── App.kt
│ │ ├── i2465
│ │ └── C2465.kt
│ │ ├── i2598
│ │ └── App2598.kt
│ │ └── i3490
│ │ └── Issue3490.kt
│ └── main
│ └── java
│ └── io
│ └── jooby
│ └── Dummy.java
├── docs
├── .gitignore
├── asciidoc
│ ├── modules.adoc
│ ├── dependency-injection.adoc
│ ├── modules
│ │ ├── vertx-pg-client.adoc
│ │ └── vertx-mysql-client.adoc
│ └── handlers.adoc
├── images
│ ├── logo.jpg
│ ├── whoops.png
│ ├── favicon96.png
│ ├── self-signed-not-secure.png
│ └── clippy.svg
├── README.md
└── src
│ └── main
│ └── resources
│ ├── META-INF
│ └── services
│ │ └── org.asciidoctor.jruby.extension.spi.ExtensionRegistry
│ └── logback.xml
├── jooby
└── src
│ ├── test
│ └── resources
│ │ ├── env
│ │ └── foo
│ │ │ ├── application.prod.conf
│ │ │ ├── application.test.conf
│ │ │ ├── application.bar.conf
│ │ │ └── application.conf
│ │ ├── ssl
│ │ ├── test.p12
│ │ └── trust.p12
│ │ ├── logback.xml
│ │ └── log
│ │ └── logback.xml
│ └── main
│ ├── resources
│ └── io
│ │ └── jooby
│ │ └── ssl
│ │ └── localhost.p12
│ └── java
│ └── io
│ └── jooby
│ ├── handler
│ └── package-info.java
│ ├── annotation
│ └── package-info.java
│ ├── exception
│ └── package-info.java
│ ├── internal
│ ├── output
│ │ └── package-info.java
│ ├── RouteTree.java
│ ├── ContextInitializer.java
│ └── RegistryRef.java
│ ├── output
│ └── package-info.java
│ └── package-info.java
├── .dockerignore
├── .gitattributes
├── etc
├── source
│ └── LICENSE
├── javadoc.sh
└── build.sh
├── TODO
├── .editorconfig
├── .envrc
└── .gitignore
/modules/jooby-cli/.gitignore:
--------------------------------------------------------------------------------
1 | tmp
2 |
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | github: [jknack]
2 |
--------------------------------------------------------------------------------
/tests/src/test/resources/singleroot:
--------------------------------------------------------------------------------
1 | abcd
2 |
--------------------------------------------------------------------------------
/tests/src/test/www/note/index.html:
--------------------------------------------------------------------------------
1 | note.html
2 |
--------------------------------------------------------------------------------
/docs/.gitignore:
--------------------------------------------------------------------------------
1 | out
2 | target
3 | site
4 | v1
5 |
--------------------------------------------------------------------------------
/tests/src/test/resources/io/jooby/i3070/test.txt:
--------------------------------------------------------------------------------
1 | ASCII
2 |
--------------------------------------------------------------------------------
/tests/src/test/resources/www/about.html:
--------------------------------------------------------------------------------
1 | about.html
2 |
--------------------------------------------------------------------------------
/tests/src/test/resources/www/index.html:
--------------------------------------------------------------------------------
1 | index.html
2 |
--------------------------------------------------------------------------------
/tests/src/test/resources/www/note/index.html:
--------------------------------------------------------------------------------
1 | note.html
2 |
--------------------------------------------------------------------------------
/tests/src/test/www/js/index.js:
--------------------------------------------------------------------------------
1 | document.write(5 + 6);
2 |
--------------------------------------------------------------------------------
/docs/asciidoc/modules.adoc:
--------------------------------------------------------------------------------
1 | include::modules/modules.adoc[]
2 |
--------------------------------------------------------------------------------
/tests/src/test/resources/io/jooby/i3070/tést.txt:
--------------------------------------------------------------------------------
1 | NónASCII
2 |
--------------------------------------------------------------------------------
/tests/src/test/resources/views/error.hbs:
--------------------------------------------------------------------------------
1 | {{statusCode}}
2 |
--------------------------------------------------------------------------------
/tests/src/test/resources/views/index.ftl:
--------------------------------------------------------------------------------
1 | Hello ${name}!
2 |
--------------------------------------------------------------------------------
/tests/src/test/resources/views/index.hbs:
--------------------------------------------------------------------------------
1 | Hello {{name}}!
2 |
--------------------------------------------------------------------------------
/tests/src/test/resources/views/index.pebble:
--------------------------------------------------------------------------------
1 | Hello {{name}}!
2 |
--------------------------------------------------------------------------------
/tests/src/test/resources/www/fallback.html:
--------------------------------------------------------------------------------
1 | fallback.html
2 |
--------------------------------------------------------------------------------
/jooby/src/test/resources/env/foo/application.prod.conf:
--------------------------------------------------------------------------------
1 | foo=bazz
2 |
--------------------------------------------------------------------------------
/jooby/src/test/resources/env/foo/application.test.conf:
--------------------------------------------------------------------------------
1 | foo=test
2 |
--------------------------------------------------------------------------------
/tests/src/test/resources/views/flash.hbs:
--------------------------------------------------------------------------------
1 | Hello {{flash.name}}!
2 |
--------------------------------------------------------------------------------
/jooby/src/test/resources/env/foo/application.bar.conf:
--------------------------------------------------------------------------------
1 | letters=[d]
2 |
--------------------------------------------------------------------------------
/modules/jooby-freemarker/src/test/resources/foo/index.ftl:
--------------------------------------------------------------------------------
1 | ${local}
2 |
--------------------------------------------------------------------------------
/jooby/src/test/resources/env/foo/application.conf:
--------------------------------------------------------------------------------
1 | foo=bar
2 | letters=[a, b, c]
3 |
--------------------------------------------------------------------------------
/modules/jooby-pebble/src/test/resources/messages.properties:
--------------------------------------------------------------------------------
1 | greeting=Greetings!
2 |
--------------------------------------------------------------------------------
/modules/jooby-pebble/src/test/resources/messages_en_GB.properties:
--------------------------------------------------------------------------------
1 | greeting=Hi!
2 |
--------------------------------------------------------------------------------
/.dockerignore:
--------------------------------------------------------------------------------
1 | **/node
2 | **/node_modules
3 | **/target
4 | **/package-lock.json
5 |
--------------------------------------------------------------------------------
/modules/jooby-gradle-plugin/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.configuration-cache=true
2 |
--------------------------------------------------------------------------------
/modules/jooby-gradle-plugin/settings.gradle:
--------------------------------------------------------------------------------
1 | rootProject.name = 'jooby-gradle-plugin'
2 |
--------------------------------------------------------------------------------
/modules/jooby-pebble/src/test/resources/messages_de_AT.properties:
--------------------------------------------------------------------------------
1 | greeting=Servus!
2 |
--------------------------------------------------------------------------------
/tests/src/test/resources/www/foo.js:
--------------------------------------------------------------------------------
1 | (function () {
2 | console.log('...');
3 | });
4 |
--------------------------------------------------------------------------------
/modules/jooby-freemarker/src/test/resources/views/locales.ftl:
--------------------------------------------------------------------------------
1 | ${someDate?string["EEEE"]}
2 |
--------------------------------------------------------------------------------
/tests/src/test/resources/static/js/index.js:
--------------------------------------------------------------------------------
1 | (function () { console.log('index.js');});
2 |
--------------------------------------------------------------------------------
/docs/images/logo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jooby-project/jooby/HEAD/docs/images/logo.jpg
--------------------------------------------------------------------------------
/modules/jooby-pebble/src/test/resources/messages_de.properties:
--------------------------------------------------------------------------------
1 | greeting=Gr\u00fc\u00df Gott!
2 |
--------------------------------------------------------------------------------
/modules/jooby-pebble/src/test/resources/views/locales.peb:
--------------------------------------------------------------------------------
1 | {{ i18n("messages","greeting") }}
2 |
--------------------------------------------------------------------------------
/docs/images/whoops.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jooby-project/jooby/HEAD/docs/images/whoops.png
--------------------------------------------------------------------------------
/modules/jooby-jetty/src/main/resources/META-INF/services/io.jooby.Server:
--------------------------------------------------------------------------------
1 | io.jooby.jetty.JettyServer
2 |
--------------------------------------------------------------------------------
/modules/jooby-netty/src/main/resources/META-INF/services/io.jooby.Server:
--------------------------------------------------------------------------------
1 | io.jooby.netty.NettyServer
2 |
--------------------------------------------------------------------------------
/modules/jooby-vertx/src/main/resources/META-INF/services/io.jooby.Server:
--------------------------------------------------------------------------------
1 | io.jooby.vertx.VertxServer
2 |
--------------------------------------------------------------------------------
/tests/src/test/resources/files/fileupload.js:
--------------------------------------------------------------------------------
1 | (function () {
2 | console.log('ready');
3 | })();
4 |
--------------------------------------------------------------------------------
/docs/images/favicon96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jooby-project/jooby/HEAD/docs/images/favicon96.png
--------------------------------------------------------------------------------
/modules/jooby-cli/src/main/resources/cli/gradle/settings.gradle.hbs:
--------------------------------------------------------------------------------
1 | rootProject.name = '{{artifactId}}'
2 |
--------------------------------------------------------------------------------
/modules/jooby-whoops/src/etc/module-info.activator:
--------------------------------------------------------------------------------
1 | Remove from module-info all content after: // SHADED:
2 |
--------------------------------------------------------------------------------
/docs/README.md:
--------------------------------------------------------------------------------
1 | doc generator
2 | ====
3 |
4 | Jooby documentation generator
5 |
6 | mvn clean package
7 |
--------------------------------------------------------------------------------
/modules/jooby-log4j/src/main/resources/META-INF/services/io.jooby.LoggingService:
--------------------------------------------------------------------------------
1 | io.jooby.log4j.Log4jService
2 |
--------------------------------------------------------------------------------
/modules/jooby-undertow/src/main/resources/META-INF/services/io.jooby.Server:
--------------------------------------------------------------------------------
1 | io.jooby.undertow.UndertowServer
2 |
--------------------------------------------------------------------------------
/modules/jooby-logback/src/main/resources/META-INF/services/io.jooby.LoggingService:
--------------------------------------------------------------------------------
1 | io.jooby.logback.LogbackService
2 |
--------------------------------------------------------------------------------
/modules/jooby-freemarker/src/test/resources/views/index.ftl:
--------------------------------------------------------------------------------
1 | Hello ${user.firstname} ${user.lastname} ${local}${sign}
2 |
--------------------------------------------------------------------------------
/modules/jooby-pebble/src/test/resources/views/index.peb:
--------------------------------------------------------------------------------
1 | Hello {{user.firstname}} {{user.lastname}} {{local}}{{sign}}
2 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.rb linguist-vendored
2 | *.gemspec linguist-vendored
3 | *.js linguist-vendored
4 | *.css linguist-vendored
5 |
--------------------------------------------------------------------------------
/modules/jooby-apt/src/main/resources/META-INF/gradle/incremental.annotation.processors:
--------------------------------------------------------------------------------
1 | io.jooby.apt.JoobyProcessor,dynamic
2 |
--------------------------------------------------------------------------------
/modules/jooby-apt/src/main/resources/META-INF/services/javax.annotation.processing.Processor:
--------------------------------------------------------------------------------
1 | io.jooby.apt.JoobyProcessor
2 |
--------------------------------------------------------------------------------
/modules/jooby-conscrypt/src/main/resources/META-INF/services/io.jooby.SslProvider:
--------------------------------------------------------------------------------
1 | io.jooby.conscrypt.ConscryptSslProvider
2 |
--------------------------------------------------------------------------------
/modules/jooby-handlebars/src/test/resources/views/index.hbs:
--------------------------------------------------------------------------------
1 | Hello {{user.firstname}} {{user.lastname}} {{local}}{{sign}}
2 |
--------------------------------------------------------------------------------
/docs/images/self-signed-not-secure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jooby-project/jooby/HEAD/docs/images/self-signed-not-secure.png
--------------------------------------------------------------------------------
/jooby/src/test/resources/ssl/test.p12:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jooby-project/jooby/HEAD/jooby/src/test/resources/ssl/test.p12
--------------------------------------------------------------------------------
/jooby/src/test/resources/ssl/trust.p12:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jooby-project/jooby/HEAD/jooby/src/test/resources/ssl/trust.p12
--------------------------------------------------------------------------------
/docs/src/main/resources/META-INF/services/org.asciidoctor.jruby.extension.spi.ExtensionRegistry:
--------------------------------------------------------------------------------
1 | io.jooby.adoc.JoobyExtensionRegistry
2 |
--------------------------------------------------------------------------------
/modules/jooby-openapi/src/test/resources/issues/i3820/schema.adoc:
--------------------------------------------------------------------------------
1 | {{operation("POST", "/library/books") | request | body | json }}
2 |
--------------------------------------------------------------------------------
/modules/jooby-whoops/src/main/resources/io/jooby/whoops/views/header_outer.html:
--------------------------------------------------------------------------------
1 |
5 | Hello World 6 |
7 | 8 | 9 | -------------------------------------------------------------------------------- /etc/javadoc.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | DIR=$(cd "$(dirname "$0")"; pwd) 4 | 5 | mvn javadoc:javadoc -P source -Dmaven.plugin.validation=VERBOSE -Dmaven.javadoc.failOnError=true -Dmaven.javadoc.failOnWarnings=true 6 | -------------------------------------------------------------------------------- /jooby/src/main/java/io/jooby/annotation/package-info.java: -------------------------------------------------------------------------------- 1 | /** Supported annotations for creating MVC routes. */ 2 | @edu.umd.cs.findbugs.annotations.ReturnValuesAreNonnullByDefault 3 | package io.jooby.annotation; 4 | -------------------------------------------------------------------------------- /jooby/src/main/java/io/jooby/exception/package-info.java: -------------------------------------------------------------------------------- 1 | /** Built-in exceptions for common HTTP error codes. */ 2 | @edu.umd.cs.findbugs.annotations.ReturnValuesAreNonnullByDefault 3 | package io.jooby.exception; 4 | -------------------------------------------------------------------------------- /jooby/src/main/java/io/jooby/internal/output/package-info.java: -------------------------------------------------------------------------------- 1 | @ReturnValuesAreNonnullByDefault 2 | package io.jooby.internal.output; 3 | 4 | import edu.umd.cs.findbugs.annotations.ReturnValuesAreNonnullByDefault; 5 | -------------------------------------------------------------------------------- /modules/jooby-cli/src/main/resources/cli/gradle/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jooby-project/jooby/HEAD/modules/jooby-cli/src/main/resources/cli/gradle/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /modules/jooby-conscrypt/src/main/java/io/jooby/conscrypt/package-info.java: -------------------------------------------------------------------------------- 1 | /** SSL support with conscrypt. */ 2 | @edu.umd.cs.findbugs.annotations.ReturnValuesAreNonnullByDefault 3 | package io.jooby.conscrypt; 4 | -------------------------------------------------------------------------------- /modules/jooby-openapi/src/test/resources/examples/minapp.yaml: -------------------------------------------------------------------------------- 1 | openapi: 3.0.1 2 | info: 3 | title: Base Yaml API 4 | description: Min API description 5 | version: "1.0" 6 | servers: 7 | - url: /myapp/path 8 | -------------------------------------------------------------------------------- /etc/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | DIR=$(cd "$(dirname "$0")"; pwd) 4 | 5 | if [ -x "$(command -v mvnd)" ]; then 6 | mvnd clean -P gradlePlugin package 7 | else 8 | mvn clean -P gradlePlugin package 9 | fi 10 | -------------------------------------------------------------------------------- /tests/src/main/java/io/jooby/Dummy.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Jooby https://jooby.io 3 | * Apache License Version 2.0 https://jooby.io/LICENSE.txt 4 | * Copyright 2014 Edgar Espina 5 | */ 6 | package io.jooby; 7 | 8 | public class Dummy {} 9 | -------------------------------------------------------------------------------- /tests/src/test/www/css/styles.css: -------------------------------------------------------------------------------- 1 | body { 2 | background-color: lightblue; 3 | } 4 | 5 | h1 { 6 | color: white; 7 | text-align: center; 8 | } 9 | 10 | p { 11 | font-family: verdana; 12 | font-size: 20px; 13 | } 14 | -------------------------------------------------------------------------------- /tests/src/test/www/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |