Skip to main content
Version: v0.14.1

Releases

Release notes follow the keep a changelog format.

[Unreleased]

[0.14.1] - 2025-04-02

Added

  • @quatico/magellan-shared: Now supports context management across service calls by providing event-based context updates using ClientContextChangedEvent.
  • @quatico/magellan-client: New ClientContextHandler for managing client-side context. It enables storing and retrieving per-namespace context information (e.g., a request identifier or custom header which should be provided to each remoteInvoke call). Also, if registered the ClientContextHandler listens for context updates propagated using the ClientContextChangedEvent.

[0.14.0] - 2025-03-29

Changed

  • Java code generation uses Context type import from @quatico/magellan-shared

[0.13.1] - 2025-03-07

Changed

  • Breaking Change: Improved support for automated context validation by changing the ServiceFunction interface from ServiceFunction<I, R> to ServiceFunction<I, R, C extends Context>.
    • Due to the ServiceFunction interface change, we can automatically get the expected type and ensure that the context passed to the function during the invocation is an instance of this type. Therefore, the annotation @ValidateServiceFunctionContext is no longer necessary and has been removed.
    • Note, the feature is no longer optional and is activated by default.

[0.13.0] - 2025-02-20

[0.12.0] - 2025-02-14

Added

  • Support for automated context validation using @ValidateServiceFunctionContext. The annotation validates that the context passed to the Magellan function is an instance of the expected type configured in the annotation (e.g., @ValidateServiceFunctionContext(type = RequestContext.class ensures that the context passed to the function during the invocation is an instance of RequestContext). For this to work, an additional dependency is required org.springframework.boot:spring-boot-starter-aop. The feature is activated by default. If you don't want to use this feature it can be disabled via the application properties file by setting magellan.validate-context=false.

Removed

  • Breaking Change: The class MagellanRestcontroller.java has been removed from the spring package. We've realised that this is not the best way to go as every project will have different requirements. Therefore, we ask you to implement it yourself but provide an example as part of the documentation.

[0.11.2] - 2024-11-15

[0.11.0] - 2024-11-15

Fixed

  • Deserialization of sets / maps: null values for Sets and Maps are deserialized as an empty collection of the same type.

Changed

  • Breaking Change: The functions addTransport and addTransportIfAbsent have been removed from the public API. Please use setTransport instead. setTransport will replace the transport handler if it already exists, or add it if it does not.
  • Breaking Change: The functions addNamespace and addNamespaceIfAbsent have been removed from the public API. Please use setNamespace instead. setNamespace will replace the namespace mapping if it already exists, or add it if it does not.
  • Breaking Change: The functions getDevelopmentMode and setDevelopmentMode have been removed from the public API.
  • Breaking Change: The functions updateServiceFunctions have been removed from the public API.

[0.10.1] - 2024-09-27

Fixed

  • Fixed endless loop in TypeScript code generation which occurred when a class implementing ServiceFunction<Input, Output> did not override getName() and was missing the annotation @ServiceFunctionName.

[0.10.0] - 2024-09-20

Changed

  • TypeScript code generation no longer instantiates the class implementing ServiceFunction<Input, Output> to get the desired TypeScript function name. Instead, the annotation @ServiceFunctionName has been introduced which replaces getName(). getName() is now deprecated and will be removed in the 1.0.0 release. This fixes the bug that classes implementing ServiceFunction<Input, Output> could not null check or require that all of their dependencies must be @NonNull.

[0.9.0] - 2024-06-28

Added

  • Support for java.util.UUID code generation, serialization and deserialization to/from JavaScript string.

[0.8.0] - 2024-06-18

Added

  • Support for java.math.BigInteger serialization and deserialization to/from JavaScript bigint.
  • Support for java.math.BigDecimal serialization and deserialization to/from JavaScript number. BigDecimal is serialized with Java's double value' s precision.

[0.7.1] - 2024-04-05

Fixed

  • Fixes TypeScript code generation for simple enums. Enums without methods were not generated as they were considered simple types.

[0.7.0] - 2024-04-05

Fixed

  • Fixes optional parameters (i.e. context and serialization) of remoteInvoke are not generated during TypeScript code generation

Changed

  • TypeScript code generation ignores static final fields on Java classes. This is required to be able to support generating code and serializing classes which expose public constants (e.g., public static final String FOO = "foo";) or implement interfaces such as Serializable which require static final fields to be present (e.g., private static final long serialVersionUID = 1L;).
  • Fixes Vavr Set & HashSet being serialized as JSON Array instead of complex type which resulted in the Set & HashSet being interpreted as Array during deserialization in the browser.

[0.6.0] - 2023-12-19

Added

  • Provides TypeScript type mappings and serialization support for java.util.Optional and io.vavr.control.Option
  • Added support for own @Nullable annotation (use instead of javax.annotation.Nullable) to support Java 17+ releases where javax.annotation.Nullable is no longer present

[0.5.5] - 2023-12-14

Fixed

  • Fixed missing TypeScript code generation for Vavr collection types (List, Seq, HashSet, Set)
  • Fixes missing supported TypeScript type mappings for Java temporal types (OffsetDateTime, ZonedDateTime)

[0.5.4] - 2023-12-14

Added

  • Provides serialization support for Vavr collection types (List, Seq, HashSet, Set)
  • Provides serialization support for Java temporal types (OffsetDateTime, ZonedDateTime)

[0.5.3] - 2023-12-05

Fixed

  • Fixes: index.ts file has conflicting type exports if multiple functions in namespace have same (nested) types / type exports

[0.5.2] - 2023-11-17

Fixed

  • Fixes: Types of nested/inner classes are not exported via index.ts file

[0.5.1] - 2023-09-06

Fixed

  • Fixes: AEM Code contains Java 9+ language features - ensures Java 8 compatibility

[0.5.0] - 2023-09-06

Changed

[0.4.5] - 2023-09-06

Changed

  • AEM uber-jar: Dependency updated to 6.5.15 matching ewz-webportal
  • spring-boot-starter-web: Dependency updated to 2.7.3 matching ewz spring stack
  • Introduce reactor pom file for orchestrating build of magellan-maven-module

Added

  • Provides TypeScript code generation for Java classes containing arrays
  • Provides support for functions without inputs/outputs (using Void as input/output type)

Fixed

  • Fixed issue with release pipeline not being able to push to GitHub and NPM
  • Fixed git tag update in Jenkins release pipeline
  • Fixes variable escaping in shell command for Jenkins continuous-deploy pipeline
  • Fixes encoding problem in shell task for release pipeline

[0.2.2] - 2023-03-2

Added

  • Added Magellan gradle plugin to generate NPM modules from Magellan ServiceFunction implementations.

Fixed

  • Update Magellan Serialization dependency to remove flatten-maven-plugin depedency inclusion.

[0.2.1] - 2023-02-09

Added

  • Added support for production vs development execution of the Magellan Sdk impacting server -> client error reporting.

Changed

  • Error responses contain exception with callstack in development mode.

[0.2.0] - 2022-11-11

Added

  • Added support for @Nullable annotations on fields to mark fields as nullable for TS code generation
  • Added support for generic collections and arrays of primitive types in TS code generation.
  • Added support for generic classes in TS code generation.
  • Added support for recursive class dependencies and Enums.

[0.1.3] - 2022-10-03

Added

  • Expose capability to disable Magellan's Spring Default TransportReceiver through MagellanConfig.

[0.1.2] - 2022-08-15

Changed

  • Enhanced core SDK API

Fixed

  • Improves maven dependency setup

[0.1.0] - 2022-08-04

Added

  • Added automatic data serialization and transport between frontend and service
  • Added automatic typescript module generation for typed ServiceFunctions
  • Added namespace based control for local or remote function execution
  • Added AEM module with MagellanService and default MagellanAemServlet
  • Added SpringBoot module with MagellanService and default MagellanRestController
  • Added form-data based function forwarding in AEM and Spring
  • Added extensive Magellan for Java documentation