Skip to content

Latest commit

 

History

History
112 lines (95 loc) · 12.3 KB

File metadata and controls

112 lines (95 loc) · 12.3 KB

Bridge Service - RELEASE NOTES

3.11.4

3.11.3

  • HTTP Framework #38 Migrate from Spark Java to Javalin 6 Replaced Spark Java 2.9.4 (Jetty 9, javax.*) with Javalin 6.3.0 (Jetty 11, jakarta.*). IBS stays on Java 11; injection into Java 17 and Java 21 host JVMs now works without --add-opens flags.

3.11.2

  • MCP #35 Hybrid method discovery Each auto-discovered public static method is now exposed as its own named MCP tool in tools/list, enabling direct invocation without a java_call wrapper. java_call is retained for multi-step chains where steps share state or pass complex Java objects between them.
  • Dependency Updates Routine dependency bumps: log4j2, mockito-core, testng.
  • CI Updated actions/checkout to v6; fixed SonarCloud and Codecov badge staleness.

3.11.1

  • MCP #12 Expose BridgeService as an MCP Server Extended MCP documentation. See docs/MCP.md for the full reference.
  • Dependency Updates Routine dependency and plugin version bumps.
  • CI Fixed GPG signing configuration to address a deprecation warning introduced by maven-gpg-plugin 3.2.8.

2.11.19

  • New Feature #12 Expose BridgeService as an MCP Server. BridgeService can now act as a Model Context Protocol (MCP) server. When IBS.MCP.ENABLED=true, a POST /mcp endpoint is registered on the existing port. It scans IBS.CLASSLOADER.STATIC.INTEGRITY.PACKAGES at startup and exposes each public static method as a named MCP tool discoverable via tools/list. A generic java_call fallback tool is always included for call chaining and instance methods. Please refer to "Using BridgeService as an MCP Server" in the README for full details.
  • New Environment Variable IBS.MCP.ENABLED: Set to true to enable the MCP endpoint (default: false).

2.11.18

2.11.17

  • New Feature #160 Introduce Extraction Plugins. We have now introduced a new plugin mechanism so you can define how an object you are expecting should be deserialized. Please refer to the chapter on "Deserialization Plugins" in the README doc.
  • New Feature #162 Deserializing Date Objects. We now allow the deserialization of Date objects. You can decide the formatting of the value. For more information please refer to Formatting Dates in the README doc.
  • #159 Errors when deserializing Milti-Part Mime Object: We have included a couple of resilience features to better handle the deserialization of complex Objects. This includes:
    • Nested scraping. We allow a nested scraping of objects.
    • Ignoring calls that throw errors. We now log the error and continue with the next call.
    • Ignoring methods returning objects that we do not have the rights to execute/access.
  • New Environment Variables
    • IBS.DESERIALIZATION.DEPTH.LIMIT : This value sets the maximum depth of the deserialization. By default, we go to a depth of 1.
    • IBS.DESERIALIZATION.DATE.FORMAT : The format in which the date should be deserialized. By default, it is "NONE" meaning no date transformation is performed.
    • IBS.PLUGINS.PACKAGE : The package path in which the IBS should search for the plugins you write. By default, we look in this package : "IBS.PLUGINS.PACKAGE"
  • #176 ClassCastException when the second call argument is an array. We discovered a bug regarding arrays. Whenever the second argument was an array, we would get a ClassCastException.

2.11.16

2.11.15

2.11.14

2.11.13

DEPRECATED due to false merge

2.11.12

  • Disabled automatic mode as discovered some issues with the loading (Issue #55).

2.11.11

2.11.10

This is the first version that is on the public github. Hence we have the issue numbers being reset. Old issue titles are marked in bold:

  • Call Timeout Management: Introducing the timeout, mechanism. We have a global timeout, and a call session timeout. We also log the individual call durations in the return payload.
  • Object Instance Management : We can now instantiate objects and call their instance methods.
  • Integro Independance: We are now completely independant of integro as a library. For testing purposes we now use dedicated classes that are available in the module "bridgeService-data". This can be included in a deployment by setting demo.project.mode=compile.
  • multi-module solution: Moved to a multi-module approach. This we can better manage and maintain the dependant test classes.
  • Public GitHub: Migrated from the Adobe Enterprise artefactory to the public GitHub, adapted deployment scripts and devOps methods.
  • Available JavaDoc: Made the javaDoc available.

2.11.5

  • Java 11 Compatibility: Integro Bridge Service is now Java 11 compatible. From now on the standard builds are in Java 11. (Java 8 is also available, but is made on demand).
  • Dynamically load all called classes: Previously, we were loading a preset set of packages for managing the static variable contexts in calls. We now automatically include the classes that are being called. This solves the following issues:
    • Ensuring that the system value handler is included in the static paths: We were discovering that static variables are not automatically included in the static cpath context.
    • Issue with Server=null when calling PushNotifications with IBS: We discovered that when the environment variables are in one context, and that the following java call isn't, we would not have access to those variables.
  • Renamed Configuration class com.adobe.campaign.tests.service.ConfigValueHandler to com.adobe.campaign.tests.bridge.service.ConfigValueHandlerIBS. This is to avoid confligt with projects using the same design pattern.
  • Added Continuous Integration Scripts.

2.0.4

  • Environment variables are always strings: Facing issues with integegers in environment variables not being picked up, we decided to force all environment variables as Strings.
    • We now include two new Exceptions:
      • IBSConfigurationException : thrown whenever the configuration we set (currently only for the setting of the environment variables) does not match an existing class/method.
      • IBSRunTimeException : When for some reason the payload has issues non-related to JSON.

2.0.0

  • Implementation of the Injection model. IntegroBridgeService is added as a dependency in projects and can now be spawned in any environment.
    • Move from an aggregator model to an insertion model. From now on IBS is put in the libraries that we want to interface.
    • externalizing environment variables
    • Updated the README to include clearer information about call chaining
    • The classpath is no longer hard-coded
    • introduced continuous integration
    • Allow projects injecting the IBS to append their version number to the IBS test end point
    • Make SSL params in main configurble

1.0.0

  • First working version. Using Aggregator model, containing Integro-ACC