Demo application of my ideal web application stack
Go to file
R. Tyler Croy 441cabee42
Add a simple Jenkinsfile for building
2017-09-10 13:51:27 -07:00
config/codenarc Basic groovy compile/lint setup 2016-12-18 09:57:14 -08:00
gradle/wrapper Initial commit with gradle tooling 2016-12-18 09:51:25 -08:00
src Add integration tests to ensure that text/html requests get web pages 2016-12-19 07:47:19 -08:00
.gitignore Basic groovy compile/lint setup 2016-12-18 09:57:14 -08:00
Jenkinsfile Add a simple Jenkinsfile for building 2017-09-10 13:51:27 -07:00
LICENSE.txt Add the GPLv2 license to the project 2016-12-18 10:12:41 -08:00
README.adoc Add some tools yet to be incorporated 2016-12-19 08:01:02 -08:00
build.gradle Add support for generating limited local javadocs based on our dependency graph 2016-12-19 09:32:31 -08:00
gradle.properties Bootstrap a simple Dropwizard(.io) application 2016-12-18 10:16:53 -08:00
gradlew Initial commit with gradle tooling 2016-12-18 09:51:25 -08:00
gradlew.bat Initial commit with gradle tooling 2016-12-18 09:51:25 -08:00
settings.gradle Initial commit with gradle tooling 2016-12-18 09:51:25 -08:00

README.adoc

<html lang="en"> <head> </head>

httpwizard

HttpWizard is a Dropwizard application built with Groovy which represents my current thinking for what an "ideal web application stack" looks like at this point in time (late-2016).

Tools

  • Dropwizard - Itself using "the best" libraries for implementing RESTful APIs on the JVM, e.g. Jersey and Jackson

  • Groovy - Concise and easy to write, support for many dynamic language behaviors (closures, collection enumerations, dynamic dispatch, etc).

  • Gradle - Fast and easy to use build and dependency declaration tool. Easily extended in Groovy, with a myriad of plugins to support various additional use cases (e.g. building containers, invoking Bower, etc)

  • OpenJDK see below

In-progress

  • Hibernate - Mature, sometimes arcane, Java persistence (DB) layer

  • React - Solid JavaScript library for building user interfaces

  • Docker - A deployment packaging mechanism which can deliver the app easily to a container service such as Kubernetes.

Java Virtual Machine

Based on my current thinking, I believe the JVM serves as an ideal base for a modern web application. This is assuming Java Runtime Environment (JRE) 8 or higher. I believe the reasons for the JVM are fairly self-evident but in short:

  • High-performance threading and parallelism implementation

  • Supports numerous languages, with "Java" being the primitive language to implement extensions which require additional speed

  • Library support for practically any protocol, format, etc

  • Easily tuned and monitored using off-the-shelf tools

</html>