[ANN] Bootique 2.0 goes beta

9 views
Skip to first unread message

Andrus Adamchik

unread,
May 13, 2021, 4:52:06 AM5/13/21
to bootiq...@googlegroups.com
Happy to announce that Bootique 2.0 goes beta. This means API freeze, so all the new and cool stuff in there can be used without fear of the underlying API changes. In addition to what was already in M1 (new DI engine, new JUnit5-based test suite, MyBatis, Simplejavamail) there are a number of new things:

1. A new extendable pipeline for app configuration loading. Why is this important? The apps can take advantage of environment-specific config facilities (secret managers, etc.). Examples include making the apps "cloud-native" (see the next point), allowing scripting languages to be used for config (e.g. Kotlin script), and so on.

2. AWS-native apps. Close to "zero config" deployment in AWS. EC2, ECS, Lambda environments no longer require explicit AWS API keys. The rest of configuration (secrets, DB URLs, etc.) are transparently loaded from AWS Secrets Manager - https://github.com/bootique/bootique-aws#readme BTW, BQ apps have one of the fastest startup times in the Java industry, so def worth trying them as Lambdas.

3. RabbitMQ:

3.1 New API for managing channels, broker topologies - https://github.com/bootique/bootique-rabbitmq/issues/8
3.2 (experimental) New "endpoints" API for configuring and using logical pub/sub "endpoints". Makes interaction with RMQ very straightforward - https://github.com/bootique/bootique-rabbitmq/issues/4

4. DB Testing. Schema and data management APIs in both JDBC and Cayenne JUnit5 libraries were significantly expanded and improved.

5. Most modules are upgraded to the latest versions of third-party libraries they are integrating with.



So what's next?

2.0 will be developed on a stable branch, and will move towards an RC and then - GA release. We may still do upstream library upgrades (within their own minor versions), but otherwise everything is frozen. And we are looking for freedback and bug reports from the community.

Master branch becomes 3.0, and we will start breaking stuff there (just a little bit :)) Plans for 3.0 will be shaping up shortly. They will likely include further footprint reduction, replacing third-party dependencies with built-in libs, more 3rd party integrations, better existing integration APIs, etc.

Enjoy!
Andrus

-----
Full Release Notes by module

bootique

* #297 Upgrade to Jackson 2.11.3
* #298 Upgrade to Junit 4.13.1 and Junit 5.7.0
* #300 Pluggable configuration loaders
* #303 "-h" : application description doesn't fold to terminal width
* #304 Update to bootique-modules-parent 2.0.5
* #306 Injectable configuration format parsers
* #308 Update to bootique-modules-parent 2.0.6

bootique-agrest

* #47 bootique-agrest-junit5
* #48 Upgrade to Agrest 3.7
* #49 bootique-agrest-cayenne42
* #50 Upgrade "bootique-agrest-cayenne42" to Ag 4.1
* #51 Integrate "agrest-openapi" as a new BQ module -
"bootique-agrest-cayenne42-swagger"
* #52 Update Cayenne 4.2 modules to Agrest 4.2
* #53 Update Cayenne 4.2 modules to Agrest 4.3
* #54 Upgrade Agrest 3.x to 3.8
* #55 Upgrade Agrest 3.x to 3.9
* #56 Upgrade to "agrest-cayenne42" to Agrest 4.4
* #57 bootique-agrest-cayenne42: Upgrade to Agrest 4.5 / Cayenne 4.2.M3

bootique-aws

* #5 Support AWS Secrets Manager, standalone and a part of configuration loading
* #6 Upgrade AWS libs to 1.11.913
* #7 Integrate EndpointConfiguration in each service config
* #8 bootique-aws-secrets: support for secret JSON transformers
* #9 Configurable credentials providers chain

bootique-cayenne

* #84 CayenneTester.assertQueryCount(int)
* #85 Upgrade to Cayenne 4.2.M2
* #86 NPE: ObjectContext access causes premature faulting of JUnit 5 DataSource
* #88 Upgrade Cayenne 4.2 to M3
* #89 CayenneTester.allTables(..)
* #90 CayenneTester must init schema before scope start
* #91 Add "onInit" callback to CayenneTester

bootique-cxf

* #4 Switch from javax.xml.ws to jakarta.xml.ws

bootique-di

* #35 SetBuilder/MapBuilder do not allow binding values of type Class

bootique-jdbc

* #105 Upgrade Testcontainers to 1.15.0-rc2
* #106 Test API: Table.delete().where(..)
* #107 Test API - better SELECT builder
* #108 MySQL 8 requires special treatment of local timestamp and time
* #109 Junit5 : lazy init of the test DataSource
* #110 DbTester.runScript(..)
* #111 Upgrade Testcontainers to 1.15.1
* #112 Log connection URL
* #113 DbTester - make "initDB" calls additive

bootique-jersey

* #57 bootique-jersey-jackson - add extender method to register custom
type serializers
* #58 Overlapping redundant JAXB and activation dependencies

bootique-jetty

* #103 Upgrade Jetty to 9.4.33.v20201020
* #104 Centralized MDC management service
* #105 WebSocket: API to use initiating request MDC
* #106 Upgrade Jetty to 9.4.36.v20210114
* #107 Upgrade Jetty to 9.4.40.v20210413

bootique-kotlin

* #12 Update to Kotlin 1.4
* #13 Config for prefix 'xyz' not found.
* #16 NPE in KotlinScriptConfigurationFactory
* #18 "KotlinScriptConfigurationFactory" no longer compiles and needs
an upgrade to a new config API

bootique-linkmove

* #44 Upgrade to LinkMove 2.13
* #45 Support Cayenne 4.2
* #46 Upgrade to LM 2.14

bootique-metrics

* #41 HeartbeatFactory: replace all "*Ms" properties with Duration objects

bootique-rabbitmq

* #4 Configurable Publishers / Consumers
* #7 Upgrade Testcontainers to 1.15.0-rc2
* #8 ChannelFactory: clear unambiguous API
* #10 Upgrade RMQ client to 5.12.0

bootique-shiro

* #25 SessionStorageEvaluator.sessionStorageEnabled should be a YAML property
* #28 Upgrade to Shiro 1.7.0

bootique-swagger

* #26 Upgrade to Swagger 2.1.5
* #27 Support for custom Swagger ModelConverters
* #28 Overlapping redundant activation and Jackson dependencies

Reply all
Reply to author
Forward
0 new messages