Skip to content

refactor: apply misc Java 11-17 improvements#3193

Merged
He-Pin merged 1 commit into
apache:mainfrom
He-Pin:feature/java17-misc-improvements
Jun 26, 2026
Merged

refactor: apply misc Java 11-17 improvements#3193
He-Pin merged 1 commit into
apache:mainfrom
He-Pin:feature/java17-misc-improvements

Conversation

@He-Pin

@He-Pin He-Pin commented Jun 26, 2026

Copy link
Copy Markdown
Member

Summary

  • String.isBlank() replacing trim().isEmpty()
  • Collection.toArray(IntFunction) replacing toArray(new X[0])
  • Map.forEach replacing entrySet iteration loops
  • Text blocks """...""" replacing multi-line string concatenation
  • Records replacing simple data holder classes

Changes

String.isBlank() (Java 11+)

  • ShardingEventSourcedEntityWithEnforcedRepliesCompileOnlyTest.java

Collection.toArray(IntFunction) (Java 11+)

  • GraphDslTest.javatoArray(new String[] {})toArray(String[]::new)
  • BidiFlowDocTest.javatoArray(new Message[0])toArray(Message[]::new)

Map.forEach (Java 8+)

  • ReplicatedShoppingCartExample.java — entrySet loop → cart.forEach((k, v) -> ...)
  • DeviceGroupQuery.java — entrySet loop → deviceIdToActor.forEach((k, v) -> ...)

Text blocks (Java 15+)

  • SubstreamDocTest.java — 3-line string concat → text block
  • TestConfigExample.java — config string concatenations → text blocks

Records (Java 16+)

  • ImmutableMessage.javarecord ImmutableMessage(int sequenceNumber, List<String> values)
  • Messages.java inner class → record
  • Message.Personrecord Person(String first, String last)
  • Bid.javarecord Bid(UUID bidder, Instant bidTime, int bidPrice, int maximumBid)
  • Updated callers in AuctionEntity.java and AuctionState.java (getter names adjusted)

Notes

  • All changes in test/doc/example code only, no production API modifications
  • javafmtAll verified — no formatting changes needed

Motivation:
Modernize Java code to use Java 11-17 APIs for cleaner, more
idiomatic code.

Modification:
- String.isBlank() replacing trim().isEmpty()
- Collection.toArray(IntFunction) replacing toArray(new X[0])
- Map.forEach replacing entrySet iteration loops
- Text blocks replacing multi-line string concatenation
- Records replacing simple data holder classes

Result:
Cleaner, more modern Java code using Java 11-17 features.

@pjfanning pjfanning left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@He-Pin He-Pin merged commit 9be70a4 into apache:main Jun 26, 2026
9 checks passed
@He-Pin He-Pin deleted the feature/java17-misc-improvements branch June 26, 2026 08:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants