v1.0.0
We are extremely happy to release Springwolf v1.0.0, a major milestone for us 🥳
It contains a lot of refactorings, some simplifications and the update to AsyncAPI spec 3.0 - contributed by @ctasada
AsyncAPI 3.0
The new AsyncAPI 3.0 specification was released at the end of 2023. It includes a new structure, more bindings and resolved the confusion around publish & subscribe.
@ctasada wrote the new springwolf-asyncapi
artifact, which is a Java implementation of the spec targeted for Springwolf. With 14.320 additions, it is the largest contribution in the Springwolf history by far!
AsyncApiDocket deprecation
As announced in earlier releases, the AsyncApiDocket
is not available for configuration anymore. We implemented your feedback and suggestions to ensure the new method using Spring application properties is as powerful (See discussion in issue: #445 )
Springwolf-ui
Springwolf-ui got a facelifting as well.
- @aerfus contributed visualizations for number ranges of schemas.
- @robert-henke contributed a better example highlighting library & the ability to render markdown in the description.
- Dependencies were updated and testing was improved (including asyncapi/parser to validate the asyncapi.json files of the examples, replacing spectral)
Check out the demo at https://demo.springwolf.dev/springwolf-ui/asyncapi-ui.html
Better examples
The examples can be rendered as yaml
and xml
(besides json
, which stays the default). This can be configured via the contentType
attribute of the @AsyncMessage
annotation.
Also, polymorphic types (@JsonTypeInfo
) which are present as the field discriminator
are rendered correctly now, resolving the long outstanding bug #160.
Breaking changes
- The package structure was updated, including a change of the package prefix from
io.github.stavshamir.springwolf
toio.github.springwolf
. Most Springwolf annotations can be found inio.github.springwolf.core.asyncapi.annotations
- This includes the logging configuration, which is updated to
logging.level.io.github.springwolf=DEBUG
- in case you use this in your application.
- This includes the logging configuration, which is updated to
- The AsyncApiDocket was removed. See our documentation or example projects on how to use Spring properties.
- The default of the configuration setting
springwolf.use-fqn
was changed totrue
. To go back to the old behaviour, specifyspringwolf.use-fqn=false
. - The
SqsQueueBindings
andSqsBindings
contain new require values, which must be provided.
Migration guide
- Update the Springwolf imports
- If you have used the AsyncApiDocket, switch to spring application property configuration
- Document your listeners and publishers using the
@AsyncListener
&@AsyncPublisher
annotation.
- Document your listeners and publishers using the
- Review the
springwolf.docket.servers
application.properties, as the fields are calledhost
andprotocol
now. - If you use the
AsyncApiCustomizer
, some fields might be moved due to the new AsyncAPI 3.0 spec and must be adjusted.
What's Changed
- chore: build website preview when asyncapi.json changes by @timonback in #559
- chore(deps): Bump org.mockito:mockito-core from 5.8.0 to 5.9.0 by @dependabot in #555
- Update to AsyncApi 3.0 by @timonback in #507
- chore(deps): Bump org.mockito:mockito-junit-jupiter from 5.8.0 to 5.10.0 by @dependabot in #564
- chore(deps): Bump actions/cache from 3 to 4 by @dependabot in #561
- Feat/adds markdown support by @robert-henke in #549
- test: add jest based testing to springwolf-ui by @timonback in #565
- docs: add ctasada as core contributor by @timonback in #568
- chore(deps): Bump org.assertj:assertj-core from 3.25.1 to 3.25.2 by @dependabot in #576
- chore(deps): Bump testcontainersVersion from 1.19.3 to 1.19.4 by @dependabot in #574
- chore(deps): Bump org.springframework.boot from 3.2.1 to 3.2.2 by @dependabot in #573
- chore(deps-dev): Bump @testing-library/angular from 15.1.0 to 15.2.0 in /springwolf-ui by @dependabot in #572
- chore(deps): Bump io.confluent:kafka-avro-serializer from 7.5.1 to 7.5.3 by @dependabot in #575
- chore(gh): replace gradle/gradle-build-action with superceding gradle/actions/setup-gradle action by @sam0r040 in #580
- fix: handle AsyncApi v3 maximumValue field by @timonback in #569
- Test coverage for schema range component by @aerfus in #578
- Chore/skip UI tests for build by @timonback in #571
- test: Validate asyncapi.json using asyncapi/parser by @timonback in #570
- Chore/async api 3 clean up by @timonback in #567
- chore(deps): Bump org.assertj:assertj-core from 3.25.2 to 3.25.3 by @dependabot in #583
- chore(deps): Bump com.github.node-gradle.node from 7.0.1 to 7.0.2 by @dependabot in #584
- chore(deps): Bump junitJupiterVersion from 5.10.1 to 5.10.2 by @dependabot in #585
- chore(deps): Bump org.javamoney:moneta from 1.4.2 to 1.4.4 by @dependabot in #586
- chore(deps-dev): Bump @types/jest from 29.5.11 to 29.5.12 in /springwolf-ui by @dependabot in #587
- chore(deps-dev): Bump @asyncapi/parser from 3.0.2 to 3.0.5 in /springwolf-ui by @dependabot in #588
- (chore): Upgrade to Gradle 8.6 by @ctasada in #591
- Fixing bugs related to avro model processing: by @raphaeldelio in #582
- chore(deps): Bump net.javacrumbs.json-unit:json-unit-assertj from 3.2.2 to 3.2.4 by @dependabot in #598
- chore(deps): Bump testcontainersVersion from 1.19.4 to 1.19.5 by @dependabot in #595
- chore(deps-dev): Bump jest-preset-angular from 14.0.0 to 14.0.2 in /springwolf-ui by @dependabot in #594
- chore(deps): Bump com.networknt:json-schema-validator from 1.1.0 to 1.3.2 by @dependabot in #597
- chore(deps): Bump io.confluent:kafka-avro-serializer from 7.5.3 to 7.6.0 by @dependabot in #596
- feat(core): build allOf example with all available fields by @timonback in #599
- Add discriminator field support + better integration tests in core by @timonback in #600
- chore(deps): Bump com.google.protobuf from 0.8.17 to 0.9.4 by @dependabot in #556
- chore(deps-dev): Bump @asyncapi/parser from 3.0.5 to 3.0.6 in /springwolf-ui by @dependabot in #608
- chore(deps-dev): Bump jest-preset-angular from 14.0.2 to 14.0.3 in /springwolf-ui by @dependabot in #607
- chore(deps): Bump com.google.protobuf:protoc from 3.25.2 to 3.25.3 by @dependabot in #604
- chore(deps): Bump com.google.protobuf:protobuf-java from 3.25.2 to 3.25.3 by @dependabot in #601
- chore(deps): Bump zone.js from 0.14.3 to 0.14.4 in /springwolf-ui by @dependabot in #602
- chore(deps): Bump org.slf4j:slf4j-api from 2.0.11 to 2.0.12 by @dependabot in #603
- chore(deps-dev): Bump ip from 2.0.0 to 2.0.1 in /springwolf-ui by @dependabot in #610
- chore(deps): bump angular to 17.2.1 by @timonback in #612
- chore: prepare 1.0.0 release by @timonback in #611
- Refactor ExampleJsonGenerator and Support XML Examples by @sam0r040 in #581
- feat(core)!: change setting use-fqn default to true by @timonback in #592
- refactor(core): move everything in springwolf core to io.github.sprin… by @sam0r040 in #614
- chore(deps): Bump io.confluent:kafka-protobuf-serializer from 7.5.3 to 7.6.0 by @dependabot in #620
- chore(deps-dev): Bump @asyncapi/parser from 3.0.6 to 3.0.7 in /springwolf-ui by @dependabot in #621
- chore(deps): Bump testcontainersVersion from 1.19.5 to 1.19.6 by @dependabot in #622
- chore(deps): Bump net.javacrumbs.json-unit:json-unit-assertj from 3.2.4 to 3.2.7 by @dependabot in #623
- chore(deps-dev): Bump typescript from 5.2.2 to 5.3.3 in /springwolf-ui by @dependabot in #624
- chore(deps): Bump org.mockito:mockito-junit-jupiter from 5.10.0 to 5.11.0 by @dependabot in #626
- chore(deps): Bump com.networknt:json-schema-validator from 1.3.2 to 1.3.3 by @dependabot in #628
- chore(deps): Bump com.diffplug.spotless from 6.24.0 to 6.25.0 by @dependabot in #629
- fix: override schema payload type to string for non json contentType by @timonback in #615
- Chore/preparations for next release by @timonback in #616
- fix(ui): display channel headers as json example by @timonback in #617
- feat(ui): show schema example also in schema component by @timonback in #618
- Move and rename packages before 1.0.0 release by @sam0r040 in #630
- Chore/add new contributors by @timonback in #631
- chore(plugins): move packages in plugins by @timonback in #633
- fix(springwolf-ui): render original AsyncAPI in ui by @timonback in #632
New Contributors
- @robert-henke made their first contribution in #549
- @raphaeldelio made their first contribution in #582
Full Changelog: v0.18.0...v1.0.0