Generates the latest/greatest Maven-based artifacts for the Openfire project, every night.

Build: #3206 was successful Scheduled with changes by Guus der Kinderen

Stages & jobs

  1. Build and Package

Build result summary

Details

Completed
Queue duration
1 second
Duration
9 minutes
Labels
None
Revision
3a15d09db06d25d1ea4a27dc7f362b102cbddb26
Total tests
1868
First to pass since
#3205 (Scheduled with changes by 4 people)

Tests

Code commits

Author Commit Message Commit date
Guus der Kinderen Guus der Kinderen 0586d226baeac8960c24d1087768d783dbb5fbe8 OF-3176: start DirectTLS and enable autoRead before business logic handler sees channelActive
In both NettyServerInitializer and NettySessionInitializer, the handler responsible for starting DirectTLS and enabling autoRead was appended to the end of the pipeline via a trailing addLast() call. Since channelActive propagates head-to-tail, this meant the business logic handler received channelActive before TLS was initiated and before autoRead was enabled.

Move the tlsAndAutoReadHandler to immediately before businessLogicHandler in both pipelines, ensuring TLS startup and autoRead are sequenced correctly relative to business logic processing.

Also give businessLogicHandler an explicit pipeline name for clarity.
Guus der Kinderen Guus der Kinderen 609c03c8f7bd53a7a17844e6f2a1f53cefadff89 OF-3176: Preserve backward compatibility for NettyChannelHandlerFactory per review feedback
Keep the original addNewHandlerTo(ChannelPipeline) method and add an executor-aware overload as default, avoiding breaking existing plugin implementations.
Guus der Kinderen Guus der Kinderen dab901d1fddf260c15d6e25be601abe745ff96f4 OF-3176: Fix NettyConnectionAcceptor start() to restore interrupt flag on InterruptedException
Previously, when start() was interrupted, closeMainChannel() was called but the thread's interrupted status was cleared. This could hide the interruption from higher-level code. Now, the interrupt flag is restored via Thread.currentThread().interrupt(), ensuring that the thread interruption is correctly propagated without changing existing stop/start behavior.
Guus der Kinderen Guus der Kinderen 369fdc42a7640058459e03c1211c7ae087db02d8 OF-3182: Share Netty thread pools across outbound S2S connections
Previously, each NettySessionInitializer instance created its own NioEventLoopGroup and DefaultEventExecutorGroup, meaning every outbound S2S connection owned its own thread pools for its entire lifetime. This caused unbounded thread growth under load.

Introduce static shared thread pools (sharedIoWorkerGroup and sharedBlockingHandlerExecutor) in NettySessionInitializer, managed via new startSharedResources() and stopSharedResources() static methods. All outbound S2S connections now share a single pair of pools.
Guus der Kinderen Guus der Kinderen 973bb4afad7ab5de8f9e6b2c18d008d8b7a0e1a0 Migrate properties for Netty socket options to configurable system properties
Replaced inline Netty channel options in NettyConnectionAcceptor with dedicated SystemProperty constants, replacing the older JiveGlobals approach.

The new approach is a bit more type-safe, and is self-documenting.

Added a couple of new properties for values that were up until now hard-coded.

Tests

Fixed tests 1
Status Test Failing since View job Duration
Successful LocalOutgoingServerSessionTest outgoingTest(ServerSettings, ServerSettings)[38]
Failing since build #3205 (Scheduled with changes by 4 people) Workflow < 1 sec

Jira issues

IssueDescriptionStatus
Unknown Issue TypeOF-3176Could not obtain issue details from Jira
Unknown Issue TypeOF-3180Could not obtain issue details from Jira
Unknown Issue TypeOF-3182Could not obtain issue details from Jira

Shared artifacts

Artifact File size
install4j-generated media 5 KB