[ann] Bootique 3.0.M1

60 views
Skip to first unread message

Andrus Adamchik

unread,
Dec 10, 2022, 6:00:48 AM12/10/22
to Bootique User Group
Very excited to announce the first milestone release of Bootique 3.0. It's been in the making for some time, and there are changes in almost all modules. At the high level:

1. Java 11 is the minimal requirement now. 

2. "jakarta.*" support across the board. Modules that rely on JavaEE components are now available in both "javax" and "jakarta" flavors to facilitate gradual migration to future versions. E.g. there is the "bootique-jetty" and the equivalent "bootique-jetty-jakarta". It is up to you to decide which flavor you'd use in your apps (but you have to pick one, you can't mix and match). I'd advise going with "jakarta" where possible, as this is the future. Having said that, two modules still do not provide a "jakarta" flavor - "bootique-shiro" and "bootique-tapestry". Both upstream projects are working on it, so I am hopeful we'll get it soon.

3. Most integrations are upgraded to the latest versions of their upstream framework, and separate integrations with the new major versions are provided. Notable examples of the latter are AWS SDK v2, Agrest 5.x, Jetty 10 and 11, LinkMove 3.

4. JUnit 4 support is deprecated. If you do testing, use modules with "-junit5" suffix. You won't regret it :) We also added a few new "testers" (S3Tester, MongoTester), and improved the existing ones (AgTester, CayenneTester, DbTester)

5. "bootique-docker" - a new module to integrate Docker client (e.g. for remote job control on Docker).

6. "bootique-mongodb" - a new module integrating MongoDB client

7. Some existing modules were significantly reworked. "bootique-job" is the prime case. It was refactored (with parts rewritten) for a cleaner job model, to optimize execution and improve monitoring. Clunky job listener API was replaced with simple job decorators. Parallel execution of tasks in a group was rewritten to avoid deadlocks. Job metadata got expanded. Proper transaction ID propagation to child jobs was implemented. A number of smaller bugs were fixed.

8. "bootique-aws" SDK v2 version has a number of features not available in the prior SDK v1 integration. More ways to configure credentials (session tokens, environment profiles), S3Client factory to use more than one set of credentials to access S3.

9. "bootique-rabbitmq" matured significantly. It supports mapping complex topologies (RabbitMQ server is all about complex messaging topologies after all) and channel pooling. Endpoints concept introduced in 2.0 was expanded with more configuration capabilities. 


Enjoy!

Andrus

-----
Full release notes:

bootique

* #312 An Inefficient Usage of Java Collections
* #313 Upgrade JUnit 5 to 5.8.1
* #315 Standard Modules should not have multiple constructors
* #316 JUnit 4 support deprecation
* #317 Java 11 as a minimal requirement for Bootique
* #322 "BQRuntimeListener" to receive notifications on runtime startup
* #323 Upgrade to jackson 2.13.3
* #324 Upgrade to Jackson 2.13.4 / 2.13.4.2

bootique-agrest

* #60 AgTester.delete()
* #62 Stop supporting Cayenne 4.0
* #63 AgTester - add a POST for "application/x-www-form-urlencoded" form
* #64 Agrest 5.0 modules
* #66 Upgrade to Agrest 4.10
* #68 Module structure cleanup
* #69 AgTester to allow chaining request customizers
* #70 Upgrade to Agrest 5.0.M7
* #71 Upgrade to Agrest 5.0.M8
* #72 Upgrade to Agrest 5.0.M9

bootique-aws

* #10 Integration with AWS Java SDK 2.x
* #11 Injectable S3Client factory
* #13 Support AWS client "profiles" in YAML config
* #14 Temporary credentials with "sessionToken"
* #15 AwsTester / S3Tester
* #18 Upgrade SDK versions to 1.12.267 and 2.17.238

bootique-cayenne

* #93 JUnit 4 support deprecation
* #96 Stop supporting Cayenne 4.0 
* #98 CayenneTester: allow to operate unattached 
* #99 Add a hook to run custom actions after Cayenne startup
* #100 CayenneTester: eager initialization breaks other test tools
* #101 Upgrade Cayenne to 4.2.RC1
* #104 Integrate "cayenne-commitlog" in 4.2 Bootique Cayenne module
* #105 API to control whether DataChannelSyncFilter is included or excluded from transactions
* #106 Upgrade 4.2 to 4.2.RC2

bootique-docker

* #1 Env-based client
* #2 Named clients
* #3 Allow named clients to be configured from environment

bootique-flyway

* #13 Upgrade flyway to 8.4.0

bootique-jdbc

* #114 JUnit 4 support deprecation
* #115 Table: loss of precision when inserting BigDecimal to Derby
* #116 CsvDataSetBuilder can't handle BigDecimal
* #121 Upgrade Derby to 10.15.2.0
* #122 JUnit 5 connector - unify and expand test SQL conditions builders

bootique-jersey

* #32 Expose application REST resources
* #59 Upgrade Jersey 2 to 2.35
* #60 Provide Jersey 3 (Jakarta) modules
* #61 Prevent resource registration warning 
* #63 Upgrade Jersey 2.x to 2.36

bootique-jetty

* #108 jetty 10 support
* #111 Jetty 11 (Jakarta) support

bootique-job

* #83 More flexible job lock handlers
* #84 Parameter-aware lock handler 
* #89 Bump Spring dependency from 4.3.x to 5.3.x
* #90 Jobs in job group assume transaction IDs of unrelated jobs
* #91 Transaction ids for jobs within job groups
* #92 Replace job log listener with a Job wrapper
* #93 LockHandlers to be contributed via extenders to a DI collection
* #95 Failure in JobListener must fail the job
* #96 Enhanced API for job parameters
* #100 Job listeners are not notified when a job throws an exception
* #102 Jobs with dependencies and job groups cause deadlocks on pool starvation
* #103 Job group to reuse the group dispatch thread when possible
* #105 @SerialJob should be part of the Job metadata 
* #106 Reorg JobFuture hierarchy
* #107 Refactoring to classic module layout
* #108 Upgrade Consul client to 1.5.3
* #109 Unify job decoration approach
* #110 Package reorg 
* #111 Add job dependencies to the JobMetadata
* #114 ExecCommand status reporting: "message: null"

bootique-jooq

* #12 Upgrade to Jooq 3.16.x

bootique-kafka

* #30 Replace consumer iterator with callback
* #31 Upgrade client to 2.7.2

bootique-linkmove

* #49 Stop supporting Cayenne 4.0
* #50 New module structure and support for LM 3.x
* #51 Upgrade to LinkMove 3.0.M2
* #52 Upgrade to LinkMove 3.0.M3

bootique-logback

* #57 Config for JSON layout
* #60 Upgrade logback-sentry to 5.5.2
* #62 Upgrade Logback to 1.2.11

bootique-mongodb

* #1 Deterministic MongoTester

bootique-mvc

* #21 JakartaEE-compatible version
* #22 Upgrade to Freemarker 2.3.31
* #23 Upgrade to Mustache 0.9.10

bootique-rabbitmq

* #9 Channel pool support in ChannelFactory
* #14 Allow multiple routing keys for a combination of exchnage and queue
* #15 Make RmqConnectionManager injectable
* #16 Injectable RmqTopologyManager
* #17 Split RmqChannelFactory functions between RmqChannelManager and RmqTopologyManager
* #20 "queues" to act as configs, not the actual named queues
* #21 "exchanges" to act as configs, not the actual named exchanges
* #22 Upgrade RMQ client to 5.15.0

bootique-shiro

* #33 Upgrade to Shiro 1.10.0
* #35 Upgrade to Shiro 1.10.1

bootique-simplejavamail

* #1 Support "recipientOverrides" setting
* #3 Support "simple-java-mail" 7.4.0 (Jakarta namespace)
* #4 Upgrade to "simple-java-mail" 6.7.6

bootique-swagger

* #30 Upgrade to Swagger 2.1.12
* #31 Jakarta flavor of bootique-swagger
* #32 Upgrade to Swagger 2.2.2
* #33 Switch to  org.webjars:swagger-ui dependency, upgrade to v 4.11.1

bootique-tapestry

* #23 Provide integration with T 5.8.x
* #24 Remove "bootique-tapestry" module (Tapestry 5.4)
* #25 Upgrade Tapestry 5.5.x modules to v5.6.4

bootique-undertow

* #18 Upgrade to Undertow 2.2.12.Final
* #21 Bump undertow-core from 2.2.12.Final to 2.2.18.Final
Reply all
Reply to author
Forward
0 new messages