Skip to content

Latest commit

 

History

History
177 lines (167 loc) · 8.92 KB

CHANGELOG.org

File metadata and controls

177 lines (167 loc) · 8.92 KB

Changes

0.5.5

  • Init-fn for Mariadb component.
  • Support for Datomic local. Init-fn takes the Datomic connection as argument.

0.5.4

  • Support for multiple API handlers, which are siloed handlers with their own prefix, middleware and dependencies.

0.5.3

  • Support for info.sunng/ring-jetty9-adapter

0.5.2

  • Facilities to include an api handler behind prefix and separate middleware

0.5.1

  • Endpoints in Raamwerk, route data can have their per-endpoint middleware.

0.5.0

  • Raamwerk refinement with the endpoints. Now accepts route data or closures over Reitit routes with component dependencies in scope.

0.4.9

  • Raamwerk framework overhaul. Adoption of reitit as routing library. No need for middleware component, and handler component is greatly simplified.
  • Undertow web server

0.4.8

  • Mariadb: data-source and connection
  • core.async pipe: high-level component for a core.async pipe
  • Sente client fixes (ChannelSocketClient)
  • Bump dependencies (including tools.namespace and prismatic schema)

0.4.7

  • Etsy: configurable throttle rate
  • Immutant web: bug fix (stopping the server twice in a sequence would throw an error)
  • Meyvn config + dependencies updated to their latest versions

0.4.6

  • Benjamin: ability to wrap component for both persistence-fn and logbook-fn independently.
  • Mariadb: database connection component
  • Next.jdbc: database connection component
  • Defensive measure in durable queue component
  • Scheduled Executor Service: added one-off method for non-repeating tasks
  • Scheduled Executor Service: recursive scheduler for the one-off method (ability to schedule in the scheduled task)
  • Cleanup of Sente component
  • Option to get a throttled Etsy client

0.4.5

  • LDAP component (UnboundID LDAP SDK for Java)
  • New Redis queue component
  • Renamed Redis pub sub component (previously known a Carmine)
  • Bump dependency version for org.danielsz/lang-utils

0.4.4

  • Updated core dependencies (lang-utils, for example)
  • nREPL middleware for system (used by the Meyvn build tool).
  • Poco component is even simpler (no need to conj)

0.4.3

  • Sente security fix: taoensso/sente#137
  • Revamped Scheduled Executor Service component. Declarative. Starting jobs directly from the component. See test for usage.
  • Revamped Durable Queue. Declarative. Starting jobs directly from the component. See test for usage.
  • Poco: “plain old component”. Bare bones component. Conjes a map and that’s it.

0.4.2

  • Handler component has an option to disable shared root middleware
  • Fix: #120
  • New Riemann client component
  • New Kampbell component
  • Repl server component will automatically detect the new nrepl namespaces if present.
  • Repl server component supports with-cider flag for Cider support
  • Cider Repl server component deprecated (merged with Repl server component)

0.4.1

  • REPL server with bind address option
  • Cider REPL server with bind address option
  • For danielsz/system users: Wondering if anyone know why (fn [req] (handler req)) wraps the handler in line: https://github.com/danielsz/system/blob/master/src/system/components/jetty.clj#L13
  • rabbitmq try catch on close #105
  • New core.async pubsub component with tests
  • Swapped routes and handlers in handler component: #106
  • New durable queue component (Factual)
  • Konserve component accepts custom serializer + test
  • Konserve with carmine backend
  • Redis component with test
  • Benjamin component with test
  • Added new constructor signature to web components, supporting keyword arguments
  • Web server handlers can now be called anything (not just `:handler’), which allows to define any number of web servers in the system map
  • Support for alternative routing libraries (bidi)
  • lambdacd component #114

0.4.0

  • Sente: Add options to component before wrapping, https://github.com/danielsz/system/pull/92/files
  • Alex Miller’s bad namespace form. #93 & #94
  • Regression fix. #96
  • Parameter validations (auto and files, regexes and paths).
  • Hara Watcher idempotency #99
  • Hara Watcher monitoring
  • Removed data_readers loading, since it is built-in the boot-repl task
  • Added modes to run system.boot in standard (Lisp) mode, no unloading (no remove-ns), or default tools.namespace mode (with remove-ns)
  • Etsy component: removed extraneous field
  • Removed dependencies from the dev profile in favor of test profile #102
  • New Konserve component
  • Duct abstractions: enhancements
    • Endpoints can specify middleware
    • Routes will be recombined according to their middleware
    • The Handler component can also specify middleware that will be applied to all endpoints/routes

    This allows to address the use case when different routes need different middleware. For example, Sente is incompatible with `wrap-restful-format’.

    taoensso/sente#123

    Decomplecting routes and middleware also enables better composition. Side-effectful middleware, such as wrap-params, consumes the request body upon reading it. This means it should only be applied once. Hence, web-centric libraries should never force such middleware on the user, but rather let him apply any middleware needed on recombined routes in the end application.

    ring-clojure/ring-defaults#10

    With our new implementation, it is possible to write libraries, for example a social sign-in library, keep it totally separate from application code, and then, with the Duct abstractions in `system’, compose endpoints with any middleware the application should need.

    Middleware: #48

    New, simplified middleware component. Receives a vector of functions or vectors. If vector is specified, apply first item in vector to handler and rest of vector items (middleware arguments). This is a breaking change (only for the middeware component).

    Middleware plays well in the dependency injection mechanism of Component. To wrap the component in middleware, use :component keyword (convention).

  • Duct components docstrings: #103

0.3.1

0.3.0

This is a breaking change release

  • Incorporates Duct abstractions (endpoint and handlers)
  • App component is deprecated
  • Revised the reloading mechanism. Leveraging tools.namespace. New option enabling to turn unloading on or off.
  • `reloaded.repl` is now `system.repl`
  • Validation with prismatic/schema
  • New example for system + sente
  • Mongo component supports options, credentials
  • Adi component added
  • Hikari component added
  • JDBC component made idempotent
  • Jetty made idempotent
  • Test selectors
  • Monitoring (protocol and various implementations)

0.2.1

  • Fixes a long-standing issue with data-readers in Boot: boot-clj/boot#47
  • Release Datomic connection upon stop. #46

0.2.0

  • Dependencies: clojure 1.7.0, sente 1.6.0
  • Cider nREPL component
  • Neo4j component
  • Quartzite component
  • ScheduledExecutorService component
  • Immutant web service component
  • Closures are used to expose resources to http requests instead of merging it in the request map (App component)
  • Web components (jetty, immutant, http-kit) can be passed functions, but also components. Yes, even arbitrary user-defined components, as long as the convention is respected, namely that (:app my-custom-component) returns a web handler.
  • Mongo component can be initialized with a function (typical use case: indices) that receives the db as argument

0.1.9

  • Generic app component for typical Ring applications
  • Web service example
  • Postgres component
  • Latest dependencies: component, ns-tracker.
  • http-kit acces to full options
  • EPL License

0.1.8

  • switch to enable hot-reloadable system
  • file-based granularity to only restart the system when user-specified files change.
  • auto-start option.
  • New ElasticSearch component

0.1.7

  • Example of a task to run a dev system on the command line (versus REPL).
  • run boot task is not built-in. So it now ships with system.

0.1.6

  • Latest Sente version. This is a breaking change for Sente.

0.1.5

  • Added example project for the Boot build tool.
  • Added boot task to reload namespaces on file changes.