66[ ![ License] ( https://img.shields.io/badge/license-BSD-blue.svg )] ( LICENSE.txt )
77[ ![ FOSSA Status] ( https://app.fossa.com/api/projects/git%2Bgithub.com%2Fgooddata%2Fgooddata-java.svg?type=shield )] ( https://app.fossa.com/projects/git%2Bgithub.com%2Fgooddata%2Fgooddata-java?ref=badge_shield )
88
9- [ ![ Javadocs] ( http ://javadoc.io/badge/com.gooddata/gooddata-java.svg)] ( http ://javadoc.io/doc/com.gooddata/gooddata-java)
9+ [ ![ Javadocs] ( https ://javadoc.io/badge/com.gooddata/gooddata-java.svg)] ( https ://javadoc.io/doc/com.gooddata/gooddata-java)
1010[ ![ Javadocs Model] ( https://javadoc.io/badge2/com.gooddata/gooddata-java-model/javadoc--model.svg )] ( https://javadoc.io/doc/com.gooddata/gooddata-java-model )
1111[ ![ Maven Central] ( https://img.shields.io/maven-central/v/com.gooddata/gooddata-java )] ( https://central.sonatype.com/artifact/com.gooddata/gooddata-java )
1212[ ![ Release] ( https://img.shields.io/github/v/release/gooddata/gooddata-java?sort=semver )] ( https://github.com/gooddata/gooddata-java/releases )
@@ -39,6 +39,18 @@ The most recent major will be supported in the following mode:
3939Please follow the [ upgrade instructions] ( https://github.com/gooddata/gooddata-java/wiki/Upgrading ) to update to the
4040newest version.
4141
42+ ### Version 5.0 Release Notes
43+
44+ ** Version 5.0.0** represents a major modernization release with the following key updates:
45+
46+ - ** Java 17** : Minimum runtime requirement upgraded from Java 11
47+ - ** Spring 6** : Framework upgraded from Spring 5.x to Spring 6.0.15
48+ - ** Apache HTTP Client 5** : Primary HTTP client upgraded from version 4.5.x to 5.5.1
49+ - ** Enhanced Compatibility** : Improved support for modern Java environments and cloud platforms
50+
51+ This release maintains API compatibility while modernizing the underlying infrastructure for better performance,
52+ security, and future extensibility.
53+
4254## Modules
4355
4456The * GoodData Java SDK* contains following modules:
@@ -87,9 +99,110 @@ The *GoodData Java SDK* uses:
8799* the * Slf4j API* version 2.0.17
88100* the * Java Development Kit (JDK)* version 17 or later to build
89101
102+ ### Migration from version 4.x to 5.0
103+
104+ ** Version 5.0 introduces several significant upgrades that may require code changes in your application:**
105+
106+ #### Breaking Changes
107+
108+ 1 . ** Java Runtime Requirement** : Minimum Java version is now ** Java 17** (previously Java 11)
109+ 2 . ** Spring Framework** : Upgraded from Spring 5.x to ** Spring 6.0.15**
110+ 3 . ** Apache HTTP Client** : Primary HTTP client upgraded from version 4.5.x to ** version 5.5.1**
111+ 4 . ** SLF4J** : Upgraded from version 1.7.x to ** version 2.0.17**
112+
113+ #### Migration Steps
114+
115+ ** 1. Update Java Runtime**
116+ - Ensure your application runs on Java 17 or later
117+ - Update your build tools (Maven/Gradle) to use Java 17
118+
119+ ** 2. Spring Framework Compatibility**
120+ - If your application uses Spring Framework, upgrade to Spring 6.x or later
121+ - Review Spring 6 migration guide for additional breaking changes: https://github.com/spring-projects/spring-framework/wiki/Upgrading-to-Spring-Framework-6.x
122+ - Update Spring Boot to version 3.0+ if applicable
123+
124+ ** 3. Dependency Updates**
125+ Update your ` pom.xml ` or ` build.gradle ` :
126+
127+ ``` xml
128+ <!-- Update GoodData Java SDK -->
129+ <dependency >
130+ <groupId >com.gooddata</groupId >
131+ <artifactId >gooddata-java</artifactId >
132+ <version >5.0.0+api3</version >
133+ </dependency >
134+
135+ <!-- If you use Spring, upgrade to 6.x -->
136+ <dependency >
137+ <groupId >org.springframework</groupId >
138+ <artifactId >spring-core</artifactId >
139+ <version >6.0.15</version >
140+ </dependency >
141+
142+ <!-- Update SLF4J if you use it directly -->
143+ <dependency >
144+ <groupId >org.slf4j</groupId >
145+ <artifactId >slf4j-api</artifactId >
146+ <version >2.0.17</version >
147+ </dependency >
148+ ```
149+
150+ ** 4. HTTP Client Configuration**
151+ - The SDK now internally uses Apache HTTP Client 5.x
152+ - If you customize HTTP client settings via ` GoodDataSettings ` , the API remains compatible
153+ - Custom HTTP interceptors or low-level HTTP client configurations may need updates
154+
155+ ** 5. Testing**
156+ - Thoroughly test your application after upgrade
157+ - Pay special attention to HTTP client behavior, especially with authentication and connection pooling
158+ - Verify logging functionality works as expected with SLF4J 2.x
159+
160+ #### Compatibility Notes
161+
162+ - ** API Compatibility** : The public SDK API remains largely backward compatible
163+ - ** Internal Changes** : HTTP client implementation has been modernized but SDK interfaces are unchanged
164+ - ** Jakarta EE** : Spring 6 uses Jakarta EE namespaces instead of Java EE (affects annotations if you use them directly)
165+
166+ #### Known Migration Issues and Solutions
167+
168+ ** 1. ClassNotFoundException for Apache HTTP Client classes**
169+ If you see errors like ` ClassNotFoundException: org.apache.http.impl.client.HttpClientBuilder ` :
170+ - Remove any direct dependencies on Apache HTTP Client 4.x from your project
171+ - The SDK now uses HTTP Client 5.x internally, which has different package names
172+
173+ ** 2. Spring Boot Applications**
174+ - Ensure you're using Spring Boot 3.0+ which includes Spring 6
175+ - Update your ` @SpringBootApplication ` and other Spring annotations if needed
176+ - Check Spring Boot 3.0 migration guide for additional changes
177+
178+ ** 3. Logging Configuration**
179+ - SLF4J 2.x has some configuration changes compared to 1.7.x
180+ - Update your ` logback.xml ` or ` log4j2.xml ` if you use advanced logging features
181+ - Basic logging configuration should work without changes
182+
183+ ** 4. Build Tools**
184+ ``` xml
185+ <!-- Maven: Ensure Java 17 in your pom.xml -->
186+ <properties >
187+ <maven .compiler.source>17</maven .compiler.source>
188+ <maven .compiler.target>17</maven .compiler.target>
189+ </properties >
190+ ```
191+
192+ ``` gradle
193+ // Gradle: Ensure Java 17 in your build.gradle
194+ java {
195+ sourceCompatibility = JavaVersion.VERSION_17
196+ targetCompatibility = JavaVersion.VERSION_17
197+ }
198+ ```
199+
200+ For additional help, please refer to the [ upgrading wiki page] ( https://github.com/gooddata/gooddata-java/wiki/Upgrading )
201+ or [ create an issue] ( https://github.com/gooddata/gooddata-java/issues ) if you encounter problems during migration.
202+
90203##### Retry of failed API calls
91204
92- You can retry your failed requests since version * 2.34.0* . Turn it on by configuring
205+ You can retry your failed requests since * GoodData Java SDK * version * 2.34.0* . Turn it on by configuring
93206[ RetrySettings] ( https://github.com/gooddata/gooddata-java/blob/master/src/main/java/com/gooddata/retry/RetrySettings.java )
94207and add [ Spring retry] ( https://github.com/spring-projects/spring-retry ) to your classpath:
95208
@@ -101,6 +214,9 @@ and add [Spring retry](https://github.com/spring-projects/spring-retry) to your
101214 </dependency >
102215```
103216
217+ ** Note** : Spring Retry 2.0.12 is compatible with Spring 6. If you're upgrading from prior versions of the SDK,
218+ ensure you also upgrade your Spring Retry dependency to version 2.x for compatibility.
219+
104220### Logging
105221
106222The * GoodData Java SDK* logs using ` slf4j-api ` . Please adjust your logging configuration for
0 commit comments