Releases: springwolf/springwolf-core
v1.9.0
Springwolf 1.9.0 is out! Thanks to all our contributors!
Besides some bug fixes and minor improvements, we want to highlight the following changes:
AsyncAPI Grouping
Besides creating the complete AsyncAPI document included all events and interactions, additional documents can be defined. These only contain a subset of actions
, channels
or messages
.
One example is demonstrated as part of the kafka-example
and on the demo website on demo.springwolf.dev (click the settings icon in the header and select the Vehicle group.
springwolf.docket.group-configs[0].group=Only Vehicles
springwolf.docket.group-configs[0].info.description=This group only contains endpoints that are related to vehicles.
springwolf.docket.group-configs[0].message-name-to-match=.*Vehicle.*
UI Default Settings
Now, it is possible to configure springwolf-ui
to show/hide the headers and bindings. See the website for details.
Support for BiConsumer
and BiFunction
in cloud-stream
Springwolf cloud-stream will detect BiConsumer
as well as BiFunction
now. Thank you @LeovR for contributing this.
What's Changed
- chore(deps): Bump mermaid from 10.9.1 to 11.3.0 in /springwolf-ui in the npm_and_yarn group by @dependabot in #1032
- chore(deps-dev): Bump @asyncapi/parser from 3.3.0 to 3.4.0 in /springwolf-ui by @dependabot in #1034
- chore(deps-dev): Bump @types/jest from 29.5.13 to 29.5.14 in /springwolf-ui by @dependabot in #1035
- chore(deps): Bump org-mockito from 5.14.1 to 5.14.2 by @dependabot in #1037
- chore(deps): Bump io-awspring-cloud from 3.2.0 to 3.2.1 by @dependabot in #1038
- chore(deps): Bump com.google.googlejavaformat:google-java-format from 1.19.2 to 1.24.0 by @dependabot in #1039
- chore(deps): Bump org-testcontainers from 1.20.2 to 1.20.3 by @dependabot in #1040
- fix(ui): use less permissive regex by @timonback in #1046
- chore(deps): Bump com.fasterxml.jackson.dataformat:jackson-dataformat-yaml from 2.17.2 to 2.18.1 by @dependabot in #1045
- chore(deps): Bump com.networknt:json-schema-validator from 1.5.2 to 1.5.3 by @dependabot in #1044
- chore(deps): Bump com.facebook:ktfmt from 0.46 to 0.53 by @dependabot in #1043
- chore(deps): Bump com.rabbitmq:amqp-client from 5.21.0 to 5.22.0 by @dependabot in #1042
- chore(deps): Bump protobuf from 4.28.2 to 4.28.3 by @dependabot in #1041
- chore(deps): Bump com.hubspot.jackson:jackson-datatype-protobuf from 0.9.15 to 0.9.16 by @dependabot in #1047
- chore(deps): Bump jackson-core from 2.18.0 to 2.18.1 by @dependabot in #1048
- chore(deps): Bump com.palantir.javaformat:palantir-java-format from 2.28.0 to 2.50.0 by @dependabot in #1050
- chore(deps): Bump com.pinterest.ktlint:ktlint-cli from 1.1.1 to 1.4.0 by @dependabot in #1051
- chore(deps): Bump org.springframework.boot from 3.3.4 to 3.3.5 by @dependabot in #1060
- chore(deps): Bump net.javacrumbs.json-unit:json-unit-assertj from 3.4.1 to 3.5.0 by @dependabot in #1059
- chore(gh): cancel out-dated workflow runs by @timonback in #1063
- fix(amqp): avoid StackOverflowError when used with protobuf by @timonback in #1062
- chore(ui): register build task into gradle assemble lifecycle by @timonback in #1061
- chore(deps): Bump org.apache.logging.log4j:log4j-core from 2.17.1 to 2.24.1 by @dependabot in #1058
- chore(deps): Bump org.apache.kafka:kafka-streams from 3.8.0 to 3.8.1 by @dependabot in #1057
- chore(deps): Bump tslib from 2.8.0 to 2.8.1 in /springwolf-ui by @dependabot in #1055
- chore(deps): Bump mikepenz/action-junit-report from 4 to 5 by @dependabot in #1054
- chore(deps): Bump org.owasp.dependencycheck from 10.0.4 to 11.1.0 by @dependabot in #1049
- feat(core): group AsyncApi by @timonback in #967
- test: Use enums with fields in test by @timonback in #1064
- Added @ConditionalOnProperty to generic binding autoconfiguratio… by @nwwerum in #1075
- Configure UI default settings by @FabianBesner2020 in #1076
- docs(kafka): update folder in readme by @FabianBesner2020 in #1074
- chore(deps-dev): Bump @testing-library/angular from 17.3.1 to 17.3.2 in /springwolf-ui by @dependabot in #1069
- chore(deps): Bump com.pinterest.ktlint:ktlint-cli from 1.4.0 to 1.4.1 by @dependabot in #1068
- chore(deps): Bump org.apache.kafka:kafka-clients from 3.7.1 to 3.9.0 by @dependabot in #1067
- chore(deps): Bump the npm_and_yarn group in /springwolf-ui with 2 updates by @dependabot in #1072
- chore(deps): Bump org.apache.kafka:kafka-streams from 3.8.1 to 3.9.0 by @dependabot in #1066
- Add BiConsumer to spring cloud stream plugin by @LeovR in #1077
- Fix gradle version catalog for maven by @timonback in #1088
- Add BiFunction support to spring-cloud-stream-plugin by @LeovR in #1087
- chore(deps): Bump net.javacrumbs.json-unit:json-unit-assertj from 3.5.0 to 4.0.0 by @dependabot in #1083
- chore(deps): Bump io-swagger-core-v3 from 2.2.25 to 2.2.26 by @dependabot in #1082
- chore(deps-dev): Bump jest-preset-angular from 14.2.4 to 14.3.1 in /springwolf-ui by @dependabot in #1081
- chore(deps): Bump org.projectlombok:lombok from 1.18.34 to 1.18.36 by @dependabot in #1084
- bump: update to gradle 8.11 by @timonback in #1079
- test(core): test useFqn configuration in core integration test by @timonback in #1078
- feat(core): add field Operation#operationId by @timonback in #1080
- chore(deps): Bump com.hubspot.jackson:jackson-datatype-protobuf from 0.9.16 to 0.9.17 by @dependabot in #1102
- chore(deps-dev): Bump jest-preset-angular from 14.3.1 to 14.3.3 in /springwolf-ui by @dependabot in #1096
- chore(deps): Bump org.apache.activemq:activemq-broker from 6.1.3 to 6.1.4 by @dependabot in #1100
- chore(deps): Bump com.rabbitmq:amqp-client from 5.22.0 to 5.23.0 by @dependabot in #1099
- chore(deps): Bump org-testcontainers from 1.20.3 to 1.20.4 by @dependabot in #1098
- chore(deps-dev): Bump jest-preset-angular from 14.3.3 to 14.4.1 in /springwolf-ui by @dependabot in #1103
- chore(deps): Bump com.networknt:json-schema-validator from 1.5.3 to 1.5.4 by @dependabot in #1104
- chore(deps): Bump kotlin from 2.0.21 to 2.1.0 by @dependabot in #1105
- chore(deps): Bump io-confluent from 7.7.1 to 7.7.2 by @dependabot in #1106
- refactor(core): rename property initially to defaults by @timonback in #1092
- feat(core): add override for info object on grouped api by @sam0r040 in #1093
- chore(deps): Bump jackson-core from 2.18.1 to 2.18.2 by @dependabot in #1109
- chore(deps): Bump protobuf from 4.28.3 to 4.29.0 by @dependabot in #1110
- chore(deps): Bump com.fasterxml.jackson.dataformat:jackson-dataformat-yaml from 2.18.1 to 2.18.2 by @dependabot in #1111
- chore(deps): Bump org.jetbrains.kotlin:kotlin-reflect from 2.0.21 to 2.1.0 by @dependabot in #1112
New Contributors
- @nwwerum made their first contribution in https://github.com/springwolf/spring...
v1.8.0
Springwolf 1.7.0 is out! Thanks to all our contributors!
This release marks the end for the old design of springwolf-ui
. Feel free to open issues and/or PRs if you are missing features or have ideas for improvements.
We also completed the support for polymorphic payloads (#891), many thanks to @dabeck81 for his contribution.
Additionally it contains some smaller smaller bug fixes and improvements, with one noteworthy change:
- The
springwolf-amqp-plugin
differentiates between exchanges and queues
What's Changed
- chore(deps): Bump org.mockito:mockito-junit-jupiter from 5.13.0 to 5.14.1 by @dependabot in #994
- chore(deps): Bump com.github.node-gradle.node from 7.0.2 to 7.1.0 by @dependabot in #997
- chore(deps): Bump testcontainersVersion from 1.20.1 to 1.20.2 by @dependabot in #995
- chore(deps): Bump org.mockito:mockito-core from 5.13.0 to 5.14.1 by @dependabot in #996
- chore(deps-dev): Bump esbuild from 0.23.1 to 0.24.0 in /springwolf-ui by @dependabot in #985
- chore: bump gradle plugin ca.cutterslade.analyze from 1.9.1 to 1.10.0 by @sam0r040 in #984
- Refactor header schemas by @dabeck81 in #1008
- refactor(core): minor readability improvements of SwaggerSchemaService by @timonback in #1009
- test: improve testcontainer test stability by @timonback in #1011
- refactor cloudStream functionality by @dabeck81 in #1010
- refactor(core): remove name
Class
from Type- and PayloadExtractor by @timonback in #1012 - test(ui): minimize warning in ui test by @timonback in #1015
- test: improve system test stability by @timonback in #1013
- chore(ui): remove old ui by @timonback in #1003
- feat(amqp): differentiate between exchange and queue by @timonback in #1014
- update ui deps by @timonback in #1016
- chore(deps): Bump ngx-markdown from 18.0.0 to 18.1.0 in /springwolf-ui by @dependabot in #1006
- fix(ui): show code highlighting by @timonback in #1020
- chore(deps): Bump the npm_and_yarn group in /springwolf-ui with 2 updates by @dependabot in #1019
- chore(deps-dev): Bump @asyncapi/parser from 3.2.2 to 3.3.0 in /springwolf-ui by @dependabot in #982
- Migrate to gradle version catalog by @timonback in #1002
- chore(deps): Bump org.jetbrains.kotlinx:kotlinx-serialization-core-jvm from 1.7.2 to 1.7.3 by @dependabot in #1005
- chore(deps): Bump jackson-core from 2.17.2 to 2.18.0 by @dependabot in #1023
- chore(deps): Bump io-swagger-core-v3 from 2.2.24 to 2.2.25 by @dependabot in #1022
- chore(deps): Bump kotlinVersion from 2.0.20 to 2.0.21 by @dependabot in #1018
- chore(deps): Bump org-jetbrains-kotlin from 2.0.20 to 2.0.21 by @dependabot in #1028
- chore(deps): Bump org.jetbrains.kotlin:kotlin-reflect from 1.9.25 to 2.0.21 by @dependabot in #1026
- chore(deps): Bump org-junit-jupiter from 5.11.0 to 5.11.3 by @dependabot in #1025
- chore(deps): Bump org.jetbrains:annotations from 13.0 to 26.0.1 by @dependabot in #1027
- chore(deps): Bump tslib from 2.7.0 to 2.8.0 in /springwolf-ui by @dependabot in #1030
- chore(deps): Bump org.springframework.cloud:spring-cloud-dependencies from 2022.0.1 to 2023.0.3 by @dependabot in #1029
Full Changelog: v1.7.0...v1.8.0
v1.7.0
Springwolf 1.7.0 is out! Thanks to all our contributors!
This release we focused on maintenance and internal refactoring, with only a few noteworthy changes:
- Support for Polymorphism has been added in a first version, contributed by @dabeck81
AmqpAsyncOperationBinding
has been extended to support documentation ofuserId
andbcc
fields- Support for Annotations on class level
What's Changed
- Chore/debug jms producer test by @timonback in #860
- chore(deps): Bump org.owasp.dependencycheck from 10.0.3 to 10.0.4 by @dependabot in #961
- chore(deps-dev): Bump @types/node from 18.19.46 to 18.19.48 in /springwolf-ui by @dependabot in #963
- Chore/improve amqp test coverage by @timonback in #948
- chore(kafka): hardcode cp-kafka by @timonback in #969
- feat(core): handle example root schema lazily by @timonback in #968
- POC for Polymorphism by @dabeck81 in #890
- test(amqp): update rabbitmq by @sam0r040 in #971
- chore(gh): publish test reports by @timonback in #972
- chore(gh): add dependabot for docker by @timonback in #970
- chore(deps-dev): Bump @types/node from 18.19.48 to 18.19.50 in /springwolf-ui by @dependabot in #965
- chore(deps): Bump io.confluent:kafka-protobuf-serializer from 7.7.0 to 7.7.1 by @dependabot in #978
- chore(deps): Bump io.confluent:kafka-avro-serializer from 7.7.0 to 7.7.1 by @dependabot in #977
- Refactor/prepare async class level scanner by @timonback in #964
- chore(deps): Bump protobufJavaVersion from 4.28.0 to 4.28.1 by @dependabot in #974
- chore(deps-dev): Bump jest-preset-angular from 14.2.2 to 14.2.4 in /springwolf-ui by @dependabot in #975
- Feat/add options to amqp annotation by @timonback in #980
- Chore/gradle 8.10.1 by @timonback in #981
- chore(deps-dev): Bump @types/jest from 29.5.12 to 29.5.13 in /springwolf-ui by @dependabot in #976
- chore(deps): Bump the npm_and_yarn group in /springwolf-ui with 4 updates by @dependabot in #973
- chore(deps): Bump junitJupiterVersion from 5.10.3 to 5.11.0 by @dependabot in #933
- chore(deps): Bump the dependencies-angular group across 1 directory with 12 updates by @dependabot in #983
- chore(deps): Bump com.networknt:json-schema-validator from 1.5.1 to 1.5.2 by @dependabot in #990
- chore(deps): Bump swaggerVersion from 2.2.23 to 2.2.24 by @dependabot in #988
- chore(deps): Bump protobufJavaVersion from 4.28.1 to 4.28.2 by @dependabot in #989
- chore(deps): Bump io.awspring.cloud:spring-cloud-aws-dependencies from 3.1.1 to 3.2.0 by @dependabot in #987
- test(jms): increase timeout of ProducerSystemTest from 10s to 20s to fix flaky test by @sam0r040 in #992
- chore(deps): Bump org.springframework.boot from 3.3.3 to 3.3.4 by @dependabot in #986
Full Changelog: v1.6.0...v1.7.0
v1.6.0
Springwolf 1.6.0 is out! Thanks to all our contributors!
This release we focused on improving the new design of springwolf-ui
, which is now the default ui of Springwolf.
Check it out at https://demo.springwolf.dev/springwolf-ui/asyncapi-ui.html
Additionally it contains some smaller smaller bug fixes and improvements including support for @Hidden
annotation contributed by @dabeck81 .
What's Changed
- chore(deps-dev): Bump @asyncapi/parser from 3.2.0 to 3.2.1 in /springwolf-ui by @dependabot in #881
- Fix issue #874 by @dabeck81 in #885
- Test/mapped schema fields by @timonback in #875
- feat(core): handle Schema annotation defaultValue field by @timonback in #876
- feat(ui): make new-ui the default by @timonback in #877
- Feat/improve UI by @timonback in #878
- Feat/schema attributes by @timonback in #880
- test(e2e): improve testing for error logs by @timonback in #889
- feat(core): add validation for schema name in AsyncOperation.Headers by @timonback in #896
- chore(deps): Bump org.apache.kafka:kafka-streams from 3.7.1 to 3.8.0 by @dependabot in #884
- Chore/improve local developer experience by @timonback in #894
- test(core): write actual definitions in componentServiceIntegrationTest by @timonback in #897
- Chore/minor improvements by @timonback in #899
- chore(deps): Bump gradle/actions from 3 to 4 by @dependabot in #900
- chore(deps): Bump protobufJavaVersion from 4.27.2 to 4.27.3 by @dependabot in #908
- chore(deps): Bump org.apache.avro:avro from 1.11.3 to 1.12.0 by @dependabot in #907
- chore(deps): Bump testcontainersVersion from 1.20.0 to 1.20.1 by @dependabot in #906
- chore(deps): Bump zone.js from 0.14.8 to 0.14.10 in /springwolf-ui by @dependabot in #905
- chore(deps-dev): Bump @asyncapi/parser from 3.2.1 to 3.2.2 in /springwolf-ui by @dependabot in #903
- chore(deps-dev): Bump jest-preset-angular from 14.2.0 to 14.2.2 in /springwolf-ui by @dependabot in #902
- chore(deps): Bump org.slf4j:slf4j-simple from 2.0.13 to 2.0.16 by @dependabot in #919
- chore(deps): Bump kotlinVersion from 2.0.0 to 2.0.10 by @dependabot in #917
- chore(deps-dev): Bump @types/node from 18.19.42 to 18.19.44 in /springwolf-ui by @dependabot in #915
- Feat/split navigation names by @timonback in #910
- feat(ui): Allow to hide bindings by @timonback in #911
- feat(ui): show used by in schema by @timonback in #912
- chore(example): use maxLength and maximum value by @timonback in #879
- feat(core): remove studio work-around for yaml by @timonback in #898
- fix(core): handle ref in xml example by @timonback in #921
- chore(deps): Bump org.awaitility:awaitility from 4.2.1 to 4.2.2 by @dependabot in #916
- chore(deps): Bump org.slf4j:slf4j-api from 2.0.13 to 2.0.16 by @dependabot in #918
- Refactor/rename to payload schema object by @timonback in #922
- Feat/add header schema title by @timonback in #924
- refactor(ui): improve differentiation between name and title by @timonback in #925
- chore(ui): reduce warnings in test by @timonback in #926
- fix(ui): render array refs correctly by @timonback in #929
- feat(ui): allow to hide headers by @timonback in #928
- feat(ui): add syntax highlighting for other payloads than json by @timonback in #927
- chore(deps-dev): Bump @testing-library/angular from 17.1.0 to 17.3.0 in /springwolf-ui by @dependabot in #930
- chore(deps): Bump prism-code-editor from 3.3.3 to 3.4.0 in /springwolf-ui by @dependabot in #932
- chore(deps): Bump org.apache.commons:commons-lang3 from 3.15.0 to 3.16.0 by @dependabot in #934
- chore(deps-dev): Bump esbuild from 0.23.0 to 0.23.1 in /springwolf-ui by @dependabot in #935
- feat(ui): show header schema by @timonback in #939
- feat(core): autogenerate name for header schema if not set already GH… by @sam0r040 in #940
- Feat/create new header schema when modified by @timonback in #941
- chore(deps): Bump org.springframework.boot from 3.3.2 to 3.3.3 by @dependabot in #943
- chore(deps-dev): Bump @testing-library/angular from 17.3.0 to 17.3.1 in /springwolf-ui by @dependabot in #946
- chore(deps-dev): Bump @types/node from 18.19.44 to 18.19.46 in /springwolf-ui by @dependabot in #944
- chore(deps): Bump kotlinVersion from 2.0.10 to 2.0.20 by @dependabot in #942
- chore(deps): Bump tslib from 2.6.3 to 2.7.0 in /springwolf-ui by @dependabot in #945
- feat(ui): allow to hide headers by @timonback in #949
- feat(ui): show used by for headers by @timonback in #950
- feat(ui): add schema properties marker by @timonback in #951
- feat(common-model-converters): add model converter to handle enumAsRe… by @sam0r040 in #953
- chore(deps): Bump protobufJavaVersion from 4.27.3 to 4.28.0 by @dependabot in #955
- chore(deps): Bump org.apache.commons:commons-lang3 from 3.16.0 to 3.17.0 by @dependabot in #956
- chore(deps): Bump org.mockito:mockito-junit-jupiter from 5.12.0 to 5.13.0 by @dependabot in #959
- chore(deps): Bump org.jetbrains.kotlinx:kotlinx-serialization-core-jvm from 1.7.1 to 1.7.2 by @dependabot in #958
- chore(deps): Bump swaggerVersion from 2.2.22 to 2.2.23 by @dependabot in #954
- chore(deps): Bump org.mockito:mockito-core from 5.12.0 to 5.13.0 by @dependabot in #957
New Contributors
Full Changelog: v1.5.0...v1.6.0
v1.5.0
Springwolf 1.5.0 is out! Thanks to all our contributors!
This release we focused on updating the design of springwolf-ui
to Material Design 3, besides smaller bug fixes.
The redesign aims to improve navigation and overall UX.
Currently, it is hidden behind a feature toggle in the toolbar.
We are looking forward to your feedback as well as your code and UX contributions. This is a great opportunity to get involved and have an impact on the future look-and-feel using the latest Angular and MD3.
Participate in #872
What's Changed
- chore(deps): Bump com.networknt:json-schema-validator from 1.4.2 to 1.5.0 by @dependabot in #834
- chore(deps): Bump net.javacrumbs.json-unit:json-unit-assertj from 3.2.7 to 3.4.0 by @dependabot in #833
- chore(deps): Bump org.apache.kafka:kafka-streams from 3.7.0 to 3.7.1 by @dependabot in #828
- chore(deps): Bump protobufJavaVersion from 4.27.1 to 4.27.2 by @dependabot in #825
- chore(deps): Bump junitJupiterVersion from 5.10.2 to 5.10.3 by @dependabot in #824
- docs: add section for gradle signing key by @timonback in #823
- feat(core): handle map schemas by @timonback in #839
- feat(core): Use operationCustomizer in all operation scanners by @timonback in #840
- chore(deps): Bump org.jetbrains.kotlinx:kotlinx-serialization-core-jvm from 1.7.0 to 1.7.1 by @dependabot in #846
- chore(deps): Bump jacksonVersion from 2.17.1 to 2.17.2 by @dependabot in #843
- chore(deps): Bump org.projectlombok:lombok from 1.18.32 to 1.18.34 by @dependabot in #844
- chore(deps): Bump org.assertj:assertj-core from 3.26.0 to 3.26.3 by @dependabot in #845
- chore(deps): Bump org.apache.kafka:kafka-clients from 3.7.0 to 3.7.1 by @dependabot in #842
- fix(core): create example for Map<String, Set> schemas by @timonback in #841
- chore(deps): Bump org.owasp.dependencycheck from 9.2.0 to 10.0.3 by @sam0r040 in #848
- chore(deps): Bump io.confluent:kafka-protobuf-serializer from 7.6.0 to 7.6.2 by @dependabot in #849
- chore(deps): Bump testcontainersVersion from 1.19.8 to 1.20.0 by @dependabot in #850
- chore(deps): Bump io.confluent:kafka-avro-serializer from 7.6.0 to 7.6.2 by @dependabot in #851
- chore(deps): Bump io.spring.dependency-management from 1.1.5 to 1.1.6 by @dependabot in #852
- chore(deps): Bump org.springframework.boot from 3.3.1 to 3.3.2 by @dependabot in #853
- chore(deps): Bump org.apache.commons:commons-lang3 from 3.14.0 to 3.15.0 by @dependabot in #854
- refactor(core): push xml-specific handling of array names to ExampleXmlValueGenerator by @sam0r040 in #857
- chore(deps): Bump net.javacrumbs.json-unit:json-unit-assertj from 3.4.0 to 3.4.1 by @dependabot in #856
- refactor(kafka): add VehicleGasolinePayloadDto to schema subtypes in … by @sam0r040 in #859
- Fix/json type annotation by @timonback in #867
- fix(core): Fix startup when Spring WebMVC is not used by @sam0r040 in #868
- Feat: improve ui by @timonback in #832
- chore(deps): Bump io.confluent:kafka-avro-serializer from 7.6.2 to 7.7.0 by @dependabot in #871
- chore(deps): Bump io.confluent:kafka-protobuf-serializer from 7.6.2 to 7.7.0 by @dependabot in #870
- chore(deps): Bump com.networknt:json-schema-validator from 1.5.0 to 1.5.1 by @dependabot in #869
Full Changelog: v1.4.0...v1.5.0
v1.4.0
Springwolf 1.4.0 is out! Thanks to all our contributors!
Migration notes
If you are using the Springwolf binding annotations, the import path has changed.
In case of Kafka, that is changing io.github.springwolf.plugins.kafka.asyncapi.annotations.KafkaAsyncOperationBinding
to io.github.springwolf.bindings.kafka.annotations.KafkaAsyncOperationBinding
If you are using the actuator, the endpoint was updated and is only available in json
to match how actuators in Spring Boot should behave.
Highlights
Again, a lot of changes and improvements are shipped.
STOMP (WebSocket) plugin
After the upgrade to AsyncAPI 3.0 and many refactorings, we finally added support for the much wished STOMP protocol used in Spring WebSocket.
This is an initial version, which currently generates the documentation but lacks publishing support and showing reply
in springwolf-ui.
AsyncAPI Studio compatibility mode
Springwolf generates AsyncAPI compliant documentation, but there may be cases where AsyncAPI Studio displays them as invalid.
By tweaking the documentation, we try to provide a good out-of-the-box experience without validation errors when using AsyncAPI Studio.
Therefore, this is enabled by default.
Spring @Header
support
Springwolf now auto-detects headers as part of the method signature.
Again, these can be overwritten by using the Springwolf @AsyncOperation.Headers
annotation.
Other noteworthy changes
- Springwolf now supports primitive types (e.g.,
byte
) as payload - The document now contains the channel#address & schema#title attribute
What's Changed
- chore(deps): configure dependabot to group angular updates by @sam0r040 in #783
- chore(deps): Bump jakarta.validation:jakarta.validation-api from 3.0.2 to 3.1.0 by @dependabot in #784
- chore(deps): Bump org.owasp.dependencycheck from 9.1.0 to 9.2.0 by @dependabot in #785
- chore(deps): Bump org.assertj:assertj-core from 3.25.3 to 3.26.0 by @dependabot in #789
- Feat/replace plugin bindings with artifact bindings by @timonback in #728
- feat(core): make springwolf ui path configurable by @sam0r040 in #786
- docs: Add alten italia as springwolf user by @timonback in #793
- feat(core): Make
@AsyncOperation.Headers.Header#value
optional by @ccudennec-otto in #798 - chore(deps): Bump protobufJavaVersion from 4.27.0 to 4.27.1 by @dependabot in #802
- chore(deps): Bump org.jetbrains.kotlinx:kotlinx-serialization-core-jvm from 1.6.3 to 1.7.0 by @dependabot in #803
- chore(deps): Bump zone.js from 0.14.6 to 0.14.7 in /springwolf-ui by @dependabot in #801
- chore(deps-dev): Bump @asyncapi/parser from 3.0.14 to 3.0.16 in /springwolf-ui by @dependabot in #800
- chore(deps-dev): Bump ws from 8.17.0 to 8.17.1 in /springwolf-ui in the npm_and_yarn group by @dependabot in #809
- chore(deps-dev): Bump @asyncapi/parser from 3.0.16 to 3.1.0 in /springwolf-ui by @dependabot in #808
- chore(deps): Bump org.springframework.boot from 3.2.5 to 3.3.0 by @dependabot in #804
- Read spring header annotation by @timonback in #787
- fix(core): handle nullable schema in NamedSchemaObject by @timonback in #794
- fix: Handle class types with extends and primitive types like byte[] by @timonback in #795
- refactor(core): split payload service by @timonback in #796
- feat(core): add ChannelObject#channelId and populate ChannelObject#address by @timonback in #797
- feat(stomp): add stomp plugin by @timonback in #369
- fix(core): handle recursion in allOf schema by @timonback in #810
- Chore/trigger pipeline by @timonback in #811
- chore(deps): Bump com.networknt:json-schema-validator from 1.4.0 to 1.4.2 by @dependabot in #817
- chore(deps): Bump org.springdoc.openapi-gradle-plugin from 1.8.0 to 1.9.0 by @dependabot in #819
- chore(deps): Bump org.springframework.boot from 3.3.0 to 3.3.1 by @dependabot in #818
- chore(deps-dev): Bump jest-preset-angular from 14.1.0 to 14.1.1 in /springwolf-ui by @dependabot in #815
- chore(deps): Bump the dependencies-angular group across 1 directory with 10 updates by @dependabot in #806
- chore: publish stomp artifacts by @timonback in #821
- chore(deps): replace findbugs jsr305 by @timonback in #812
- chore: align bean with actual class names by @timonback in #813
- chore(deps): Bump jacksonVersion from 2.16.2 to 2.17.1 by @dependabot in #748
- feat(core): add configuration property to toggle workarounds for Asyn… by @sam0r040 in #822
New Contributors
- @ccudennec-otto made their first contribution in #798
Full Changelog: v1.3.0...v1.4.0
v1.3.0
Springwolf 1.3.0 is out! Thanks to all our contributors!
Besides a couple of bug fixes and small improvements, these are the noteworthy new features:
Improved publishing from the springwolf-ui
Support for publishing from the ui has been improved in this release:
- The publish button is only enabled if publishing has been enabled
- Publishing of empty messages is supported now
- Publishing of primitive types (i.e.
Integer
) other than string is supported now
New binding artifacts for amqp, jms and kafka
By extracting protocol binding artifacts, we allow users to document their APIs even without using Spring listener libraries like spring-kafka (@KafkaListener
). As of this release, all bindings are duplicated within the binding and plugin artifacts.
In the next release we plan to transition plugins to use the binding artifacts as well. As a consequence, only the imports will change.
What's Changed
- chore(deps): Bump com.networknt:json-schema-validator from 1.3.3 to 1.4.0 by @dependabot in #734
- chore(deps): Bump org.springframework.boot from 3.2.4 to 3.2.5 by @dependabot in #735
- (feat) Add support to parse Annotations from super classes by @ctasada in #731
- (fix) Fixed a bug loading the Kotlinx Module without
use-fqn
variable by @ctasada in #733 - chore: add server to server name as postfix in examples by @timonback in #738
- Feat/create bindings by @timonback in #727
- Refactor/resolve header service todos by @timonback in #725
- feat: allow publishing of empty message by @timonback in #724
- fix: guard nullpointer exception with if statement by @timonback in #740
- feat(kafka): support KafkaListener topicPattern parameter by @timonback in #741
- fix(core): extract payload in generics from correct index by @timonback in #743
- test: use angular testing library for component tests by @timonback in #732
- chore(deps): Bump io.spring.dependency-management from 1.1.4 to 1.1.5 by @dependabot in #751
- chore(deps): Bump zone.js from 0.14.4 to 0.14.5 in /springwolf-ui by @dependabot in #749
- chore(deps-dev): Bump jest-preset-angular from 14.0.3 to 14.0.4 in /springwolf-ui by @dependabot in #755
- chore(deps): Bump org.mockito:mockito-junit-jupiter from 5.11.0 to 5.12.0 by @dependabot in #754
- chore(deps): Bump testcontainersVersion from 1.19.7 to 1.19.8 by @dependabot in #753
- chore: comment on issues w.r.t staged_for_release, waiting_for_feedback label by @timonback in #747
- feat: handle non-string primitive payloads by @timonback in #726
- Test/add basic e2e test to test publishing by @timonback in #758
- feat(core): allow publishing of all data types by @sam0r040 in #759
- chore(deps): Bump zone.js from 0.14.5 to 0.14.6 in /springwolf-ui by @dependabot in #769
- chore(deps): Bump org.mockito:mockito-core from 5.11.0 to 5.12.0 by @dependabot in #767
- chore(e2e): restart examples docker containers by @timonback in #765
- chore(deps): Bump swaggerVersion from 2.2.21 to 2.2.22 by @dependabot in #768
- test(e2e): build docker image locally by @timonback in #760
- feat(ui): handle allOf schemas by @timonback in #761
- feat(ui): Show operation and message description, fix publishing when using AsyncMessage#name by @timonback in #762
- chore(core): use messageId internally by @timonback in #763
- feat(core): show publish button in ui only when publishing is enabled by @timonback in #766
- test(kafka): update asyncapi.json after merge (messageId) by @timonback in #770
- Enable automatic nexus publishing by @timonback in #744
- Fix/xml payload generation by @timonback in #746
- chore: create discriminator example by @timonback in #771
- chore(deps): Bump protobufJavaVersion from 4.26.1 to 4.27.0 by @dependabot in #775
- chore(deps): Bump kotlinVersion from 1.9.23 to 2.0.0 by @dependabot in #774
- chore(deps-dev): Bump jest-preset-angular from 14.0.4 to 14.1.0 in /springwolf-ui by @dependabot in #779
- docs: add details for testing with SNAPSHOT versions by @timonback in #772
- feat(core): only detect listeners written by a developer by @timonback in #773
- Bump to angular 18 by @timonback in #781
Full Changelog: v1.2.0...v1.3.0
v1.2.0
Springwolf 1.2.0 is out! Thanks to all our contributors!
Besides a couple of bug fixes and small improvements, these are the noteworthy new features:
Kafka & Google PubSub Binding
The Kafka bindings have been updated to spec version 0.5.0 and support for Google PubSub has been updated to also support channel bindings. Take a look at the binding artifacts for details.
Kotlinx Serialization Add-on
The add-on has been extended to support polymorphism and received some smaller bugfixes.
Support for XML attributes
The support for XML examples has been extended to also support XML attributes.
What's Changed
- (fix) Fixed bug with new SNS Binding by @ctasada in #670
- (fix) Kotlin serializer for Collection by @ctasada in #671
- chore(deps): Bump kotlinVersion from 1.9.22 to 1.9.23 by @dependabot in #675
- (chore) Updated AsyncAPI Kafka binding to version 0.5.0 by @ctasada in #672
- fix: Fixes to the Kotlinx Module by @ctasada in #680
- fix: Sort Messages references by @ctasada in #681
- chore(deps): Bump swaggerVersion from 2.2.20 to 2.2.21 by @dependabot in #676
- chore(deps): Bump org.springframework.boot from 3.2.3 to 3.2.4 by @dependabot in #674
- chore(deps): Bump ngx-markdown from 17.1.1 to 17.2.0 in /springwolf-ui by @dependabot in #683
- fix(core): fix message of validation error for server configuration by @sam0r040 in #685
- chore(deps): Bump com.google.protobuf:protoc from 3.25.3 to 4.26.1 by @dependabot in #682
- chore(deps): Bump the npm_and_yarn group in /springwolf-ui with 2 updates by @dependabot in #678
- chore: Upgrade to Gradle 8.7 by @ctasada in #686
- Add support for Component classes for spring cloud stream plugin (#684) by @stavshamir in #688
- (fix): added annotation for google pubsub message binding by @SheheryarAamir in #677
- feat: Added support for arrays to the Generic Binding by @ctasada in #679
- chore: Minor Gradle tweaks by @ctasada in #689
- chore(deps): Bump org.owasp.dependencycheck from 9.0.9 to 9.1.0 by @dependabot in #696
- chore(deps-dev): Bump @asyncapi/parser from 3.0.11 to 3.0.12 in /springwolf-ui by @dependabot in #694
- chore(deps): Bump marked from 9.1.6 to 12.0.1 in /springwolf-ui by @dependabot in #693
- refactor/use asyncapi headers schema by @timonback in #658
- chore(deps): Bump jakarta.annotation:jakarta.annotation-api from 2.1.1 to 3.0.0 by @dependabot in #697
- chore(deps): Bump io.awspring.cloud:spring-cloud-aws-dependencies from 3.1.0 to 3.1.1 by @dependabot in #695
- Test coverage for UI components by @aerfus in #692
- chore(deps-dev): Bump @asyncapi/parser from 3.0.12 to 3.0.13 in /springwolf-ui by @dependabot in #704
- chore(deps): Bump org.slf4j:slf4j-api from 2.0.12 to 2.0.13 by @dependabot in #702
- chore(deps): Bump org.projectlombok:lombok from 1.18.30 to 1.18.32 by @dependabot in #701
- chore(build): fix output directory for OWASP dependency check plugin by @sam0r040 in #708
- chore: use parameterized messages instead of string formatting for logging by @sam0r040 in #699
- fix: Fixes description indenting by @ctasada in #691
- chore(bindings)!: remove type field from protocol specific binding annotations by @sam0r040 in #709
- Chore/development improvements by @timonback in #711
- Support attributes for xml examples by @sam0r040 in #698
- chore(deps): Bump org.slf4j:slf4j-simple from 2.0.12 to 2.0.13 by @dependabot in #720
- chore(deps): Bump marked from 12.0.1 to 12.0.2 in /springwolf-ui by @dependabot in #718
- chore(deps-dev): Bump @asyncapi/parser from 3.0.13 to 3.0.14 in /springwolf-ui by @dependabot in #717
- chore(deps): Bump ngx-markdown from 17.2.0 to 17.2.1 in /springwolf-ui by @dependabot in #715
- (chore): Added Spotless support for Kotlin files by @ctasada in #714
- (feat) Polymorphism support for kotlinx serialization by @ctasada in #713
- chore(deps-dev): Bump @testing-library/angular from 15.2.0 to 16.0.0 in /springwolf-ui by @dependabot in #716
- fix(core): format all Date, LocalDate and OffsetDateTimes in iso format by @sam0r040 in #722
- Feat/handle no payload by @sam0r040 in #687
Full Changelog: v1.1.0...v1.2.0
v1.1.0
Springwolf 1.1.0 is out! Thank you to all contributors.
It contains a couple bug fixes after the big 1.0.0 release last month, next to the following noteworthy new features:
- @victorlev01 contributed the option to always edit the headers in springwolf-ui, even when no headers have been documented.
- @SheheryarAamir added support for Google PubSub bindings using annotations, which are included in the new
springwolf-googlepubsub-binding
artifact - @ctasada duplicated the sns and sqs bindings to artifact (
springwolf-(sns|sqs)-binding
). We consider extract all bindings to own artifacts, which would be included by default in the plugin artifacts. The intention is to offer a more light-weight springwolf experience for users that only want to use annotations without auto-detection of listeners - and thereby avoid the additional dependencies as well - @ctasada added another artifact - in beta state - to support the Kotlin
@SerialName
annotation. This is packaged inspringwolf-kotlinx-serialization-model-converter
What's Changed
- chore(deps): Bump org.springframework.boot from 3.2.2 to 3.2.3 by @dependabot in #638
- chore(deps): Bump org.mockito:mockito-core from 5.9.0 to 5.11.0 by @dependabot in #637
- feat(core): improve configuration validation by @timonback in #641
- fix(core): create correct servers reference by @timonback in #640
- fix(core): generate correct xml examples for array schemas GH-642 by @sam0r040 in #643
- docs(core): add info about nexus staging repository to releasing guide by @sam0r040 in #644
- fix(core): resolve xml nodes from cache by schema name instead of xmlelement name by @sam0r040 in #645
- chore(deps): Bump jacksonVersion from 2.16.1 to 2.16.2 by @dependabot in #646
- chore(deps): Bump testcontainersVersion from 1.19.6 to 1.19.7 by @dependabot in #648
- fix(ui): Make edit header view available by default in ui by @victorlev01 in #649
- chore(deps-dev): Bump follow-redirects from 1.15.4 to 1.15.6 in /springwolf-ui by @dependabot in #657
- (feat): Decoupled Binding annotations by @ctasada in #655
- chore(deps-dev): Bump @asyncapi/parser from 3.0.7 to 3.0.10 in /springwolf-ui by @dependabot in #659
- chore(deps-dev): Bump webpack-dev-middleware from 5.3.3 to 5.3.4 in /springwolf-ui by @dependabot in #666
- chore(deps): Bump com.hubspot.jackson:jackson-datatype-protobuf from 0.9.14 to 0.9.15 by @dependabot in #661
- chore(deps): Bump org.apache.kafka:kafka-streams from 3.6.1 to 3.7.0 by @dependabot in #662
- chore(deps): Bump org.awaitility:awaitility from 4.2.0 to 4.2.1 by @dependabot in #663
- docs: add info that examples have to be run with gradle by @timonback in #653
- (fix): Google pubsub protocol schema setting - cloudsteam by @SheheryarAamir in #652
- Feat/document headers method level protocol listeners by @timonback in #654
- Feat/prepare publishing by @timonback in #667
- [feat] Added Kotlinx Serialization support by @ctasada in #656
- Add kotlinx-serialization-model-converter artifact by @timonback in #668
New Contributors
- @victorlev01 made their first contribution in #649
Full Changelog: v1.0.0...v1.1.0
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 https://gi...