Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 10 additions & 43 deletions RELEASE-NOTES.md
Original file line number Diff line number Diff line change
@@ -1,62 +1,29 @@
Lettuce 7.0.0.BETA2 RELEASE NOTES
Lettuce 7.1.1.RELEASE NOTES
==============================

The Lettuce team is pleased to announce the second beta release of Lettuce 7.0!
The Lettuce team is pleased to announce the second beta release of Lettuce 7.1.1!

The release focuses on introducing **Maintenance events support** functionality, API improvements, and cleanup of deprecated features.
Lettuce 7.1.1.RELEASE supports Redis 2.6+ up to Redis 8.x and requires Java 8 or newer. The driver is tested against Redis 8.4, 8.2, 8.0, 7.4, and 7.2.

### Key changes
- **Maintenance events support** for graceful maintenance handling
- **Enhanced JSON API** with `String`-based access to avoid unnecessary conversions
- **Removal of deprecated APIs** and options as part of the major version upgrade
As part of the 7.0 line, this beta also removes several deprecated APIs and options.

Lettuce 7.0.0.BETA2 supports Redis 2.6+ up to Redis 8.x and requires Java 8 or newer. The driver is tested against Redis 8.2, 8.0, 7.4, and 7.2.

Thanks to all contributors who made Lettuce 7.0.0.BETA2 possible!
Thanks to all contributors who made Lettuce 7.1.1.RELEASE possible!

If you need any support, meet Lettuce at

* GitHub Discussions: https://github.com/lettuce-io/lettuce-core/discussions
* Stack Overflow (Questions): https://stackoverflow.com/questions/tagged/lettuce
* Join the chat at https://discord.gg/redis and look for the "Help:Tools Lettuce" channel
* GitHub Issues (Bug reports, feature requests): https://github.com/lettuce-io/lettuce-core/issues
* Documentation: https://lettuce.io/core/7.0.0.BETA2/reference/
* Javadoc: https://lettuce.io/core/7.0.0.BETA2/api/
* Documentation: https://lettuce.io/core/7.1.1.RELEASE/reference/
* Javadoc: https://lettuce.io/core/7.1.1.RELEASE/api/

# Changes

## 🔥 Breaking Changes

- chore: remove usage of deprecated connection methods in command APIs in integration tests (#3328) (#3343)
- Remove deprecated dnsResolver option (#3328) (#3333)
- Remove deprecated `reset()` method from Lettuce API and internals (#3395)
- Make Utility Class constructor private to enforce noninstantiability (#3266)
- Enable adaptive refresh by default #3249 (#3316)
- ISSUE#3328 - Remove deprecated code from ISSUE#1314 (#3351)
- chore: deprecated withPassword(String) method (#3328) (#3350)
- Remove deprecated Utf8StringCodec class (#3328) (#3389)
- chore: remove deprecated default timeout from AbstractRedisClient (#3328) (#3344)
- chore: remove deprecated ClientOptions#cancelCommandsOnReconnectFailure (#3328) (#3346)

## 🚀 New Features

- Add support for EPSILON and WITHATTRIBS arguments in VSIM command (#3449)
- Add String-based JSON API to avoid unnecessary conversions (#3369) (#3394)
- React to maintenance events #3345 (#3354)

## 🐛 Bug Fixes
- Rename maintenance notification configuration properties (#3450)
- Timeouts seen during endpoint re-bind and migrate (#3426)
- Fix a NullPointerException in DelegateJsonObject #3417 (#3418)

## 💡 Other
* SearchArgs.returnField with alias produces malformed redis command #3528 (7.1.x) by @tishun in https://github.com/redis/lettuce/pull/3534

- Timeouts seen during endpoint re-bind and migrate (#3426)
- Return name method to ProtocolKeyword public interface. (#3424)
- Refactor JsonValue to Object mapping #3412 (#3413)
- Using non-native transports with SocketOptions should cause an error (#3279)
## 🧰 Maintenance
* Bumping Netty to 4.2.5.Final (7.1.x) by @tishun in https://github.com/redis/lettuce/pull/3537

---

**Full Changelog**: [6.8.0.RELEASE...7.0.0.BETA2](https://github.com/redis/lettuce/compare/6.8.0.RELEASE...7.0.0.BETA2)
**Full Changelog**: https://github.com/redis/lettuce/compare/7.1.0.RELEASE...7.1.1.RELEASE
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
<version>7.1.0-SNAPSHOT</version>
<version>7.1.2-SNAPSHOT</version>
<packaging>jar</packaging>

<name>Lettuce</name>
Expand Down
17 changes: 3 additions & 14 deletions src/main/java/io/lettuce/core/internal/LettuceClassUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -101,24 +101,13 @@ private static Class<?> forName(String className, ClassLoader classLoader) throw
}

/**
* Return the default ClassLoader to use: typically the thread context ClassLoader, if available; the ClassLoader that
* loaded the ClassUtils class will be used as fallback.
* This method ensures that the same ClassLoader strategy is consistently applied during
* both class existence detection and actual class loading.
*
* @return the default ClassLoader (never <code>null</code>)
* @see java.lang.Thread#getContextClassLoader()
*/
private static ClassLoader getDefaultClassLoader() {
ClassLoader cl = null;
try {
cl = Thread.currentThread().getContextClassLoader();
} catch (Throwable ex) {
// Cannot access thread context ClassLoader - falling back to system class loader...
}
if (cl == null) {
// No thread context class loader -> use class loader of this class.
cl = LettuceClassUtils.class.getClassLoader();
}
return cl;
return LettuceClassUtils.class.getClassLoader();
}

/**
Expand Down