Skip to content

Releases: springwolf/springwolf-core

v1.8.0

25 Oct 13:25
Compare
Choose a tag to compare

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

27 Sep 14:13
Compare
Choose a tag to compare

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 of userId and bcc 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

30 Aug 16:59
Compare
Choose a tag to compare

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

26 Jul 16:29
a8d4a13
Compare
Choose a tag to compare

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

29 Jun 11:17
Compare
Choose a tag to compare

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

Full Changelog: v1.3.0...v1.4.0

v1.3.0

31 May 13:40
Compare
Choose a tag to compare

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

27 Apr 18:43
Compare
Choose a tag to compare

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

23 Mar 20:04
db03b0a
Compare
Choose a tag to compare

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 in springwolf-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

Full Changelog: v1.0.0...v1.1.0

v1.0.0

01 Mar 18:05
445af74
Compare
Choose a tag to compare

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

  1. The package structure was updated, including a change of the package prefix from io.github.stavshamir.springwolf to io.github.springwolf. Most Springwolf annotations can be found in io.github.springwolf.core.asyncapi.annotations
    1. This includes the logging configuration, which is updated to logging.level.io.github.springwolf=DEBUG - in case you use this in your application.
  2. The AsyncApiDocket was removed. See our documentation or example projects on how to use Spring properties.
  3. The default of the configuration setting springwolf.use-fqn was changed to true. To go back to the old behaviour, specify springwolf.use-fqn=false.
  4. The SqsQueueBindings and SqsBindings contain new require values, which must be provided.

Migration guide

  1. Update the Springwolf imports
  2. If you have used the AsyncApiDocket, switch to spring application property configuration
    1. Document your listeners and publishers using the @AsyncListener & @AsyncPublisher annotation.
  3. Review the springwolf.docket.servers application.properties, as the fields are called host and protocol now.
  4. 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...
Read more

v0.18.0

20 Jan 18:18
6bf0f5b
Compare
Choose a tag to compare

v0.18.0 has been released, including new features and fixes. Our focus has been on refactorings and we are working hard to upgrade to AsyncAPI 3.0 in the next release - which will include breaking changes.

Avro and Protobuf support

We improved support for Avro and Protobuf by removing extraneous fields related to the wire format.
At the same time, our kafka demo application show cases this, including the ability to consume and produce messages - all in one application. See CustomSpringwolfKafkaProducer for configuration.

Document also final classes (like String)

One issue from the beginning was the inability to enhance documentation on final classes as the @Schema annotation could not be attached. Now, by defining an envelope class and marking the property with @AsyncApiPayload, also final classes can be document. See the StringConsumer for more details.

Detect channels defined via bean configuration

Not everyone is using @Component or related annotations to mark classes for Spring. Now, Springwolf does also detect marked listener and publisher methods in classes, which are instantiated as Spring beans via configuration classes.

What's Changed

  • chore(deps): Bump com.bmuschko.docker-spring-boot-application from 9.3.7 to 9.4.0 by @dependabot in #488
  • chore(deps): Bump actions/setup-java from 3 to 4 by @dependabot in #487
  • chore(deps): Bump org.mockito:mockito-junit-jupiter from 5.7.0 to 5.8.0 by @dependabot in #491
  • chore(deps): Bump com.diffplug.spotless from 6.22.0 to 6.23.3 by @dependabot in #489
  • chore(deps): Bump org.mockito:mockito-core from 5.7.0 to 5.8.0 by @dependabot in #490
  • Refactor/annotation scanner to composition by @timonback in #483
  • Feat/detect channels defined via bean configuration by @timonback in #486
  • chore(deps): Bump org.owasp.dependencycheck from 8.4.3 to 9.0.2 by @dependabot in #492
  • chore(deps): Bump io.awspring.cloud:spring-cloud-aws-dependencies from 3.0.3 to 3.1.0 by @dependabot in #495
  • chore(deps): Bump org.owasp.dependencycheck from 9.0.2 to 9.0.4 by @dependabot in #496
  • chore(deps): Bump org.apache.kafka:kafka-clients from 3.6.0 to 3.6.1 by @dependabot in #499
  • chore(deps): Bump org.apache.kafka:kafka-streams from 3.6.0 to 3.6.1 by @dependabot in #497
  • chore(deps): Bump com.networknt:json-schema-validator from 1.0.87 to 1.0.88 by @dependabot in #498
  • chore: simplify schemas service by @timonback in #500
  • Refactor/change async annotations scanner to composition by @timonback in #502
  • feat: Added AsyncAPI v3 internal implementation by @ctasada in #501
  • chore(deps): Bump github/codeql-action from 2 to 3 by @dependabot in #504
  • chore(deps): Bump org.owasp.dependencycheck from 9.0.4 to 9.0.7 by @dependabot in #505
  • chore(deps): Bump com.networknt:json-schema-validator from 1.0.88 to 1.1.0 by @dependabot in #506
  • doc: Minor improvements to the AsyncAPI module README by @ctasada in #508
  • chore: Upgrade to Gradle 8.5 by @ctasada in #509
  • chore: update README.md by @timonback in #482
  • chore: Improved AsyncAPI interface by @ctasada in #511
  • chore(deps): Bump org.springframework.boot from 3.2.0 to 3.2.1 by @dependabot in #514
  • chore(deps): Bump jacksonVersion from 2.16.0 to 2.16.1 by @dependabot in #513
  • chore(deps): Bump swaggerVersion from 2.2.19 to 2.2.20 by @dependabot in #512
  • chore: Improved AsyncAPI interface by @ctasada in #515
  • chore(deps): Bump org.slf4j:slf4j-api from 2.0.9 to 2.0.10 by @dependabot in #522
  • chore(deps): Bump org.assertj:assertj-core from 3.24.2 to 3.25.0 by @dependabot in #521
  • fix(core): handle meta annotations using spring @AliasFor by @timonback in #519
  • feat(kafka): prepare to use different kafka templates per topic durin… by @timonback in #518
  • chore: remove deprecated asyncapidocket bean by @timonback in #524
  • feat: Remove avro fields from schema by @timonback in #503
  • feat(core): add Optional to extractable classes by @timonback in #525
  • Demonstrate protobuf in kafka example by @timonback in #526
  • Feat/allow to document primitive data types (GH-377) by @timonback in #520
  • chore: remove spectral linting in gh action by @timonback in #528
  • feat(ui): better handling when binding is missing by @timonback in #529
  • chore(deps): Bump org.assertj:assertj-core from 3.25.0 to 3.25.1 by @dependabot in #530
  • chore(deps): Bump org.slf4j:slf4j-api from 2.0.10 to 2.0.11 by @dependabot in #531
  • chore(deps-dev): Bump follow-redirects from 1.15.3 to 1.15.4 in /springwolf-ui by @dependabot in #535
  • chore: disable owasp nodejs checking by @timonback in #537
  • chore(deps): Bump zone.js from 0.14.2 to 0.14.3 in /springwolf-ui by @dependabot in #548
  • chore(deps): Bump io.confluent:kafka-protobuf-serializer from 7.5.1 to 7.5.3 by @dependabot in #547
  • chore(deps): Bump com.google.protobuf:protobuf-java from 3.25.1 to 3.25.2 by @dependabot in #545
  • chore(deps): Bump com.google.protobuf:protoc from 3.21.1 to 3.25.2 by @dependabot in #544
  • chore(deps): Bump com.diffplug.spotless from 6.23.3 to 6.24.0 by @dependabot in #546
  • Revert "chore: remove deprecated asyncapidocket bean (#524)" by @timonback in #536
  • chore(deps): Bump org.owasp.dependencycheck from 9.0.7 to 9.0.9 by @dependabot in #551
  • Refactor/improve example schema generator by @timonback in #552

Full Changelog: v0.17.0...v0.18.0