Hi!

We are excited to announce the 1.0.0 release of trapperkeeper and
trapperkeeper-webserver-jetty9.  Now that Puppet Labs is shipping several
production apps built on the framework and we consider the API to be
stable, we decided to bump the version number to 1.0.0 and ensure that we
adhere to semantic versioning principles in future releases.

Trapperkeeper[1] is a Clojure framework for hosting long-running
applications and services. You can think of it as a sort of "binder" for
Ring applications and other modular bits of Clojure code.

It's based on the excellent Prismatic graph[2] library, and manages life
cycles and dependencies of service components that make up your
application.  It provides some built-in functionality for loading
configuration from config files on disk (and supports several different
config formats), and uses clojure protocols to define the contracts between
different services in your system.  It was designed to be compatible with
Stuart Sierra's 'reloaded' workflow, and also includes several test utility
functions / macros to make it easy to write comprehensive integration
tests.  For more info, check out our wiki[3], where you'll find lots of
documentation and a sample web application.

We've also released version 1.0.0 of trapperkeeper-webserver-jetty9[4],
which is a trapperkeeper service that provides a Jetty9 web server
(surprise!) and functions for adding your web apps to the server.  It
supports adding multiple web apps (you can mount them at different URL
paths in the same server), which helps allow you to keep your code more
modular.  It's primarily intended for running Ring applications, but it
also supports running Java servlets, applications from WAR files, and
configuring certain URL paths to be reverse-proxied via Jetty's
ProxyServlet.  You can configure tons of things about the server via the
config files: plaintext vs HTTPS ports, configure SSL via pem file paths,
open multiple HTTPS ports with different certificate configurations, and
even change the URL paths at which your web apps will be mounted without
modifying your code (via the "web routing service"[5]).

Getting started with trapperkeeper and trapperkeeper-webserver-jetty9 is as
simple as:

    $ lein new trapperkeeper my.namespace/project-name
    $ cd project-name
    $ lein test
    $ lein tk

We hope you find it useful!  Please feel free to jump on to #trapperkeeper
on Freenode if you have any questions or suggestions.

The projects are on clojars at puppetlabs/trapperkeeper and
puppetlabs/trapperkeeper-webserver-jetty9.  (Special thanks to technomancy
for helping me fix an initial corrupt deploy of 1.0.0 that I flubbed!)

[1] Trapperkeeper github repo: https://github.com/puppetlabs/trapperkeeper
[2] Prismatic plumbing/graph library: https://github.com/Prismatic/plumbing
[3] Trapperkeeper github wiki:
https://github.com/puppetlabs/trapperkeeper/wiki
[4] tk-jetty9 github repo and docs:
https://github.com/puppetlabs/trapperkeeper-webserver-jetty9
[5] tk-jetty9 webrouting service docs:
https://github.com/puppetlabs/trapperkeeper-webserver-jetty9/blob/master/doc/webrouting-service.md

Grand plans for future releases:

* Provide a mechanism for services to validate their configuration data at
startup, and fail fast with a user-friendly error message if the config is
invalid
* Support other configuration data sources (besides just file-based config)
* Provide notification hooks for config changes
* ???
* Profit

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to