SIP Framework version upgrade¶
Upgrade from 3.6.2 to 4.0.0¶
4.0.0 is a new major release that focuses mainly on SIP Cloud and SIP Cockpit related features.
Due to the merger of IKOR with x1F, all artifacts and packages have been moved to the one.x1f.sip
namespace.
This requires changes in the class imports as well as the Maven dependency structure (see below). Apart from those changes,
no substantial changes in the sources of existing adapters are required to make them work with the new framework release.
Update Maven dependencies to x1f namespace¶
All listed dependencies in existing pom.xml
files, as well as the parent declaration, must have their SIP related <groupId>
switched
from de.ikor.sip.foundation
to one.x1f.sip.foundation
.
Update imported framework classes to x1f namespace¶
All Java files importing SIP framework packages must switch those import statements from de.ikor.sip.foundation
to one.x1f.sip.foundation
.
We recommend using search / replace in your IDE if you have a lot of .java
files importing SIP framework classes.
Update annotation class imports due to typo¶
In older SIP framework releases, some annotations resided in the mistyped de.ikor.sip.foundation.core.declarative.annonation
package.
We used the opportunity of the global namespace migration to move these annotations to one.x1f.sip.foundation.core.declarative.annotation
, so
imports need to be changed where necessary.
Update connector processors annotation imports to extensions¶
Due to renaming connector processor annotation classes that were in de.ikor.sip.foundation.core.declarative.annotation.connector.processor
package
are now moved to one.x1f.sip.foundation.core.declarative.annotation.connector.extension
package.
Attribute name change in ConnectorProcessor ordering annotations¶
The attribute in @ExecuteBefore
and @ExecuteAfter
annotations used for relative connector-processor ordering has been changed
from processorName
to extensionName
. This has been done as those annotations are also available for use with the broader connector-extensions API introduced in this release.
Upgrade from 3.6.1 to 3.6.2¶
Building REST inbound connectors was changed. Usage of multiple HTTP methods in REST DSL of a single connector is no longer allowed. REST Connectors which contain this should be split into their own connector implementations. This change will not affect how the adapter behaves.
Note: Unique connector ID should be assigned to each new connector, since the automatically generated one may be duplicated.
Upgrade from 3.5.0 to 3.6.0¶
This version contains upgrades to major libraries used by the framework. There is a possibility that they may lead to some changes.
Please use the following Apache Camel guide if necessary: https://camel.apache.org/manual/camel-4x-upgrade-guide.html
Upgrade from 3.4.0 to 3.5.0¶
This is a quality of life and bugfix update, it shouldn't introduce any breaking issues.
Upgrade from 3.3.0 to 3.4.0¶
Version 3.4.0 allows fine-grained configuration and exception handling for connectors. If an adapter contains global configuration which was added directly with RouteConfigurationBuilder, it will no longer apply to connectors. It should be refactored and provided via ConfigurationDefinition.
Note: When it comes to process orchestration global configuration will still be applicable.
Deprecation Notice
The defineTransformationOrchestrator
method from ConnectorBase class is marked as deprecated as of version 3.4.0.
This method may be removed in future versions.
It is recommended to migrate to new Connector Processors in all connectors.
Upgrade from 3.2.0 to 3.3.0¶
This is mostly a dependencies update and bugfix version, so it's shouldn't introduce any braking changes. However, in the previous version, Integration Scenario model validation was triggered conditionally depending on the presence of Connector's response model (instead of Integration Scenario's). This has been changed, and the response transformation in the connector is now triggered unconditionally as well.
A runtime validation error will occur if an Adapter relied on that condition and didn't conform to Scenario's domain model.
Upgrade from 3.1.0 to 3.2.0¶
Version 3.2.0 introduces changes in dependencies - most notably Spring 6, Apache Camel 4 and CXF 4. There should be no breaking changes in this release. If the adapter developers relied on deprecated features from underlying frameworks then some changes are necessary but those should be fixed on case-by-case basis.
Upgrade guide for specific use-cases: * Adapters using SOAP Connectors
From adapter pom.xml file remove this plugin:
<plugin>
<groupId>de.codecentric</groupId>
<artifactId>cxf-spring-boot-starter-maven-plugin</artifactId>
...
</plugin>
and change it to:
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
</plugin>
Plugin is now managed in the parent pom so no further configuration is necessary. It is a standard CXF plugin and adapter developers can customize its behaviour if needed.
- Adapters redefining Spring Security:
If the adapter has redefined Spring Security configuration, exclusion of SIP Security was necessary:
For example:
That should no longer be necessary, SIP has upgraded to Spring Security 6 and should work with specific behaviour redefined in the adapter.@SIPIntegrationAdapter(exclude = SIPSecurityAutoConfiguration.class)
Upgrade from 1.0.0 to 2.0.0¶
The following text represents the complete guide how to update SIP framework version in your adapter from version
1.0.0
to 2.0.0
.
In case adapter is generated with archetype of 2.0.0
framework version, following steps are not necessary. To insure
your adapter uses all functionalities, the following changes have to be done manually. Please follow the guide
step by step.
Single lines necessary for updating are marked with update
comment.
First step is to update the parent field version
in project root pom.xml
file:
<parent>
<groupId>de.ikor.sip.foundation</groupId>
<artifactId>sip-framework</artifactId>
<version>2.0.0</version> <!-- update -->
<relativePath/>
</parent>
In the same file, profile fields id
and maxJdkVersion
should be updated to java version 11.
<profiles>
<profile>
<id>enforce-java-11</id> <!-- update -->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.0.0-M3</version>
<dependencies>
<dependency>
<groupId>org.codehaus.mojo</groupId>
<artifactId>extra-enforcer-rules</artifactId>
<version>1.3</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>enforce-bytecode-version</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<enforceBytecodeVersion>
<maxJdkVersion>11</maxJdkVersion> <!-- update -->
</enforceBytecodeVersion>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
Next step is to update pom.xml
file in adapter's application module. Change the parent field version
:
<parent>
<groupId>de.ikor.sip.foundation</groupId>
<artifactId>sip-starter-parent</artifactId>
<version>2.0.0</version> <!-- update -->
<relativePath/>
</parent>
In the same file, spring-boot-maven-plugin
must be modified. Add goal build-info
and it's additional
configuration. Simply copy the lines marked with comment update
and add them to your code in a proper place:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>false</fork>
<skip>false</skip>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
<goal>build-info</goal> <!-- update -->
</goals>
<configuration> <!-- update -->
<additionalProperties> <!-- update -->
<sipFrameworkVersion>2.0.0</sipFrameworkVersion> <!-- update -->
</additionalProperties> <!-- update -->
</configuration> <!-- update -->
</execution>
</executions>
</plugin>
Newer version requires moving your markdown files in adapter's application module under main/resources/documents
directory.
Furthermore, it is strictly required to create documents
folder and to keep markdown files inside, so the
markdown files API can work properly.
If you intend to use SIP Test Kit, you should add application.yml
in your application module src/test/resources
directory with test profile configured:
spring:
profiles:
active: test
Additionally logback-test.xml
should be added in the same test directory. You can find the content of this file
here.