Skip to content

Move Avro & Thrift. Switch to java.time from joda#431

Merged
ppkarwasz merged 13 commits into
trunkfrom
extract-rpc
May 26, 2026
Merged

Move Avro & Thrift. Switch to java.time from joda#431
ppkarwasz merged 13 commits into
trunkfrom
extract-rpc

Conversation

@rgoers
Copy link
Copy Markdown
Member

@rgoers rgoers commented May 25, 2026

Separates Avro & Thrift and their dependencies from the heart of Flume. As a consequence several classes have moved to the SDK module. It also removes the dependency on joda-time in favor of java.time.

@rgoers rgoers requested a review from ppkarwasz May 25, 2026 21:44
Copy link
Copy Markdown
Member

@ppkarwasz ppkarwasz left a comment

Choose a reason for hiding this comment

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

LGTM

There are many file changes, but they seem to be all refactorings.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR restructures Flume’s RPC-related code by introducing a dedicated flume-rpc module (with Avro/Thrift submodules), moving related implementations out of core/SDK, and migrating multiple time-handling paths from Joda-Time to java.time.

Changes:

  • Introduces flume-rpc (Avro + Thrift) modules and rewires various modules/tests to depend on them.
  • Migrates various codepaths/tests from Joda-Time to java.time and relocates a number of SDK/core APIs and exceptions.
  • Updates configuration enums and scripts to point to moved RPC implementations and new package locations.

Reviewed changes

Copilot reviewed 141 out of 181 changed files in this pull request and generated 11 comments.

Show a summary per file
File Description
pom.xml Adds flume-rpc module and adjusts reactor modules.
flume-rpc/pom.xml New parent POM for RPC submodules and dependency mgmt.
flume-rpc/flume-rpc-thrift/pom.xml New Thrift RPC module build + codegen profile metadata.
flume-rpc/flume-rpc-thrift/src/main/thrift/flume.thrift Thrift IDL added for Flume protocol.
flume-rpc/flume-rpc-thrift/src/main/thrift/aslv2 License header blob for Thrift codegen.
flume-rpc/flume-rpc-thrift/src/main/java/org/apache/flume/rpc/thrift/ThriftSourceProtocol.java Moved/generated Thrift protocol Java sources.
flume-rpc/flume-rpc-thrift/src/main/java/org/apache/flume/rpc/thrift/ThriftFlumeEvent.java Moved/generated Thrift event Java sources.
flume-rpc/flume-rpc-thrift/src/main/java/org/apache/flume/rpc/thrift/Status.java Moved/generated Thrift status enum.
flume-rpc/flume-rpc-thrift/src/main/java/org/apache/flume/rpc/thrift/source/ThriftSource.java Moves Thrift source into RPC module.
flume-rpc/flume-rpc-thrift/src/main/java/org/apache/flume/rpc/thrift/sink/ThriftSink.java Moves Thrift sink into RPC module.
flume-rpc/flume-rpc-thrift/src/main/java/org/apache/flume/rpc/thrift/client/ThriftRpcClient.java Moves Thrift RPC client into RPC module.
flume-rpc/flume-rpc-thrift/src/main/java/org/apache/flume/rpc/thrift/api/SecureThriftRpcClient.java Moves secure Thrift client support into RPC module.
flume-rpc/flume-rpc-thrift/src/main/java/org/apache/flume/rpc/thrift/api/SecureRpcClientFactory.java Moves secure client factory into RPC module.
flume-rpc/flume-rpc-thrift/src/test/java/org/apache/flume/rpc/thrift/TestThriftRpcClient.java Updates Thrift client tests to new packages.
flume-rpc/flume-rpc-thrift/src/test/java/org/apache/flume/rpc/thrift/sink/TestThriftSink.java Updates Thrift sink tests to new packages.
flume-rpc/flume-rpc-thrift/src/test/java/org/apache/flume/rpc/thrift/source/TestDefaultSourceFactory.java Adds source-factory tests for Thrift source creation.
flume-rpc/flume-rpc-thrift/src/test/java/org/apache/flume/rpc/thrift/source/MockSource.java Adds mock source used by Thrift factory tests.
flume-rpc/flume-rpc-thrift/src/test/resources/log4j2.xml Adds test logging config for Thrift module.
flume-rpc/flume-rpc-thrift/src/test/resources/certs/server.conf Adds test TLS cert config for Thrift module.
flume-rpc/flume-rpc-thrift/src/test/resources/certs/rootca.conf Adds test CA config for Thrift module.
flume-rpc/flume-rpc-thrift/src/test/resources/certs/gencerts.sh Adds cert generation script for Thrift tests.
flume-rpc/flume-rpc-avro/pom.xml New Avro RPC module build + Avro codegen configuration.
flume-rpc/flume-rpc-avro/src/main/avro/flume.avdl Adds Avro IDL for RPC protocol generation.
flume-rpc/flume-rpc-avro/src/main/avro/TransferStateFileMeta.avsc Adds schema for durable tracker metadata.
flume-rpc/flume-rpc-avro/src/main/java/org/apache/flume/rpc/avro/client/NettyAvroRpcClient.java Moves Avro Netty RPC client into RPC module.
flume-rpc/flume-rpc-avro/src/main/java/org/apache/flume/rpc/avro/client/AvroCLIClient.java Moves Avro CLI client into RPC module.
flume-rpc/flume-rpc-avro/src/main/java/org/apache/flume/rpc/avro/source/AvroSource.java Moves Avro source into RPC module.
flume-rpc/flume-rpc-avro/src/main/java/org/apache/flume/rpc/avro/source/SpoolDirectorySource.java Moves spooldir source into RPC module.
flume-rpc/flume-rpc-avro/src/main/java/org/apache/flume/rpc/avro/sink/AvroSink.java Moves Avro sink into RPC module.
flume-rpc/flume-rpc-avro/src/main/java/org/apache/flume/rpc/avro/serialization/AbstractAvroEventSerializer.java Moves Avro serialization helpers into RPC module.
flume-rpc/flume-rpc-avro/src/main/java/org/apache/flume/rpc/avro/serialization/FlumeEventAvroEventSerializer.java Moves event Avro serializer into RPC module.
flume-rpc/flume-rpc-avro/src/main/java/org/apache/flume/rpc/avro/serialization/AvroEventSerializerConfigurationConstants.java Moves Avro serializer config constants into RPC module.
flume-rpc/flume-rpc-avro/src/main/java/org/apache/flume/rpc/avro/serialization/AvroEventDeserializer.java Moves Avro deserializer into RPC module.
flume-rpc/flume-rpc-avro/src/main/java/org/apache/flume/rpc/avro/serialization/DurablePositionTracker.java Moves durable tracker into RPC module.
flume-rpc/flume-rpc-avro/src/main/java/org/apache/flume/rpc/avro/serialization/ReliableSpoolingFileEventReader.java Moves reliable spooling reader into RPC module.
flume-rpc/flume-rpc-avro/src/test/java/org/apache/flume/rpc/avro/RpcTestUtils.java Updates RPC test utilities to new packages/constructors.
flume-rpc/flume-rpc-avro/src/test/java/org/apache/flume/rpc/avro/TestRpcClientFactory.java Updates Avro RPC factory tests for new module.
flume-rpc/flume-rpc-avro/src/test/java/org/apache/flume/rpc/avro/TestLoadBalancingRpcClient.java Updates load-balancing client tests for new packages.
flume-rpc/flume-rpc-avro/src/test/java/org/apache/flume/rpc/avro/client/TestNettyAvroRpcClient.java Updates Netty Avro client tests for new packages.
flume-rpc/flume-rpc-avro/src/test/java/org/apache/flume/rpc/api/TestFailoverRpcClient.java Moves failover client test package.
flume-rpc/flume-rpc-avro/src/test/java/org/apache/flume/rpc/avro/sink/TestAvroSink.java Updates Avro sink tests to new packages.
flume-rpc/flume-rpc-avro/src/test/java/org/apache/flume/rpc/avro/sink/TestDefaultSinkFactory.java Adds sink-factory tests covering Avro sink creation.
flume-rpc/flume-rpc-avro/src/test/java/org/apache/flume/rpc/avro/source/TestDefaultSourceFactory.java Adds source-factory tests covering Avro sources creation.
flume-rpc/flume-rpc-avro/src/test/java/org/apache/flume/rpc/avro/source/MockSource.java Adds mock source for Avro factory tests.
flume-rpc/flume-rpc-avro/src/test/java/org/apache/flume/rpc/avro/source/TestSpoolDirectorySource.java Updates spooldir tests to new packages and imports.
flume-rpc/flume-rpc-avro/src/test/java/org/apache/flume/rpc/avro/serialization/TestAvroEventDeserializer.java Moves deserializer tests into RPC module packages.
flume-rpc/flume-rpc-avro/src/test/java/org/apache/flume/rpc/avro/serialization/TestDurablePositionTracker.java Moves durable tracker tests into RPC module packages.
flume-rpc/flume-rpc-avro/src/test/java/org/apache/flume/rpc/avro/serialization/TestFlumeEventAvroEventSerializer.java Moves Avro serializer tests into RPC module packages.
flume-rpc/flume-rpc-avro/src/test/java/org/apache/flume/rpc/avro/serialization/TestReliableSpoolingFileEventReader.java Moves reader tests into RPC module packages.
flume-rpc/flume-rpc-avro/src/test/java/org/apache/flume/rpc/avro/serialization/TestResettableFileInputStream.java Moves resettable stream tests into RPC module packages.
flume-rpc/flume-rpc-avro/src/test/java/org/apache/flume/rpc/avro/serialization/TestSpoolingFileLineReader.java Moves line reader tests into RPC module packages.
flume-rpc/flume-rpc-avro/src/test/java/org/apache/flume/rpc/avro/serialization/TestSyslogAvroEventSerializer.java Moves syslog Avro serializer tests into RPC module.
flume-rpc/flume-rpc-avro/src/test/java/org/apache/flume/rpc/avro/serialization/SyslogAvroEventSerializer.java Updates syslog serializer example to java.time.
flume-rpc/flume-rpc-avro/src/test/resources/log4j2.xml Adds test logging config for Avro module.
flume-rpc/flume-rpc-avro/src/test/resources/syslog_event.avsc Adds schema used by syslog Avro serializer tests.
flume-rpc/flume-rpc-avro/src/test/resources/TestResettableFileInputStream_1.avro Adds binary test fixture for tracker.
flume-rpc/flume-rpc-avro/src/test/resources/TestResettableFileInputStream_1.truncated.avro Adds truncated binary fixture for tracker.
flume-rpc/flume-rpc-avro/src/test/resources/server.flume.pem Adds test TLS material for Avro module tests.
flume-rpc/flume-rpc-avro/src/test/resources/server.flume-crt.pem Adds test TLS certificate for Avro module tests.
flume-rpc/flume-rpc-avro/src/test/resources/certs/server.conf Adds test TLS cert config for Avro module.
flume-rpc/flume-rpc-avro/src/test/resources/certs/rootca.conf Adds test CA config for Avro module.
flume-rpc/flume-rpc-avro/src/test/resources/certs/gencerts.sh Adds cert generation script for Avro tests.
flume-parent/pom.xml Removes Avro/Thrift versions/config from parent and adds new deps/flags.
flume-ng-sdk/pom.xml Removes Avro/Thrift build plugins and adjusts dependencies.
flume-ng-core/pom.xml Removes Avro/Thrift deps and Joda-time dependency.
flume-ng-tests/pom.xml Adds dependency on new flume-rpc-avro module.
flume-ng-tests/src/test/resources/log4j2.xml Changes test logging level.
flume-ng-embedded-agent/pom.xml Adds test dependency on flume-rpc-avro.
flume-ng-configuration/src/main/java/org/apache/flume/conf/source/SourceType.java Repoints AVRO/SPOOLDIR/THRIFT types to new RPC packages.
flume-ng-configuration/src/main/java/org/apache/flume/conf/sink/SinkType.java Repoints AVRO/THRIFT sinks; comments out some sink types.
flume-ng-dist/pom.xml Adds RPC modules to dist and adjusts dependency comment blocks.
flume-ng-sources/pom.xml Removes scribe source from module list.
flume-ng-sources/flume-taildir-source/src/main/java/org/apache/flume/source/taildir/TaildirSource.java Updates ChannelException import to new package.
flume-ng-sources/flume-taildir-source/src/main/java/org/apache/flume/source/taildir/ReliableTaildirEventReader.java Updates ReliableEventReader import relocation.
flume-ng-sources/flume-taildir-source/src/test/java/org/apache/flume/source/taildir/TestTaildirSource.java Updates ChannelException import to new package.
flume-ng-sources/flume-jms-source/src/main/java/org/apache/flume/source/jms/JMSSource.java Updates ChannelException import to new package.
flume-ng-sources/flume-jms-source/src/test/java/org/apache/flume/source/jms/TestJMSSource.java Updates ChannelException import to new package.
flume-ng-sinks/flume-irc-sink/src/main/java/org/apache/flume/sink/irc/IRCSink.java Updates ChannelException import to new package.
flume-ng-node/pom.xml Adjusts dependency comment blocks / module deps.
flume-ng-node/src/test/java/org/apache/flume/node/TestAbstractConfigurationProvider.java Updates ChannelException import; removes mismatch test.
flume-ng-sdk/src/main/java/org/apache/flume/api/RpcClientFactory.java Refactors client instantiation logic and uses reflection.
flume-ng-sdk/src/main/java/org/apache/flume/api/FailoverRpcClient.java Changes test helper visibility.
flume-ng-sdk/src/main/java/org/apache/flume/event/EventReader.java Moves event reader API from old package to org.apache.flume.event.
flume-ng-sdk/src/main/java/org/apache/flume/event/ReliableEventReader.java Moves reliable reader API from old package to org.apache.flume.event.
flume-ng-sdk/src/main/java/org/apache/flume/event/SimpleTextLineEventReader.java Moves simple reader API from old package to org.apache.flume.event.
flume-ng-sdk/src/test/java/org/apache/flume/event/TestBufferedLineReader.java Updates package + inlines helper methods.
flume-ng-sdk/src/main/java/org/apache/flume/exception/ChannelException.java Moves ChannelException to org.apache.flume.exception.
flume-ng-sdk/src/main/java/org/apache/flume/exception/ChannelFullException.java Moves ChannelFullException to org.apache.flume.exception.
flume-ng-sdk/src/main/java/org/apache/flume/tools/PlatformDetect.java Adds platform detection utility.
flume-ng-sdk/src/main/java/org/apache/flume/source/SpoolDirectorySourceConfigurationConstants.java Moves spooldir config constants into SDK.
flume-ng-sdk/src/main/java/org/apache/flume/serialization/DecodeErrorPolicy.java Moves decode policy enum into SDK.
flume-ng-sdk/src/main/java/org/apache/flume/serialization/EventDeserializer.java Moves deserializer API into SDK.
flume-ng-sdk/src/main/java/org/apache/flume/serialization/LengthMeasurable.java Adds length-measurement interface.
flume-ng-sdk/src/main/java/org/apache/flume/serialization/LineDeserializer.java Moves/introduces line deserializer in SDK.
flume-ng-sdk/src/main/java/org/apache/flume/serialization/PositionTracker.java Moves/introduces tracker interface in SDK.
flume-ng-sdk/src/main/java/org/apache/flume/serialization/RemoteMarkable.java Adds remote mark API used by Avro deserializer.
flume-ng-sdk/src/main/java/org/apache/flume/serialization/Resettable.java Adds resettable interface.
flume-ng-sdk/src/main/java/org/apache/flume/serialization/ResettableInputStream.java Adds resettable input stream abstraction.
flume-ng-sdk/src/main/java/org/apache/flume/serialization/Seekable.java Adds seekable interface.
flume-ng-sdk/src/main/java/org/apache/flume/annotations/InterfaceAudience.java Adds/moves audience annotations into SDK.
flume-ng-sdk/src/main/java/org/apache/flume/annotations/InterfaceStability.java Adds/moves stability annotations into SDK.
flume-ng-sdk/src/main/java/org/apache/flume/annotations/Disposable.java Adds disposable annotation.
flume-ng-sdk/src/main/java/org/apache/flume/annotations/Recyclable.java Adds recyclable annotation.
flume-ng-sdk/src/main/java/org/apache/flume/instrumentation/ChannelCounter.java Adds channel counter implementation.
flume-ng-sdk/src/main/java/org/apache/flume/instrumentation/ChannelCounterMBean.java Adds channel counter MBean interface.
flume-ng-sdk/src/main/java/org/apache/flume/instrumentation/SourceCounter.java Updates ChannelException import and adds MBean split.
flume-ng-sdk/src/main/java/org/apache/flume/instrumentation/SourceCounterMBean.java Adds source counter MBean interface.
flume-ng-sdk/src/main/java/org/apache/flume/instrumentation/SinkCounter.java Updates ChannelException import and adds MBean split.
flume-ng-sdk/src/main/java/org/apache/flume/instrumentation/SinkCounterMBean.java Adds sink counter MBean interface.
flume-ng-core/src/main/java/org/apache/flume/source/SyslogParser.java Migrates syslog parsing to java.time.
flume-ng-core/src/main/java/org/apache/flume/source/SyslogUDPSource.java Updates ChannelException import to new package.
flume-ng-core/src/main/java/org/apache/flume/source/SyslogTcpSource.java Updates ChannelException import to new package.
flume-ng-core/src/main/java/org/apache/flume/source/StressSource.java Updates ChannelException import to new package.
flume-ng-core/src/main/java/org/apache/flume/source/SequenceGeneratorSource.java Updates ChannelException import to new package.
flume-ng-core/src/main/java/org/apache/flume/source/NetcatSource.java Updates ChannelException import to new package.
flume-ng-core/src/main/java/org/apache/flume/source/NetcatUdpSource.java Updates ChannelException import to new package.
flume-ng-core/src/main/java/org/apache/flume/source/http/HTTPSource.java Updates ChannelException import to new package.
flume-ng-core/src/main/java/org/apache/flume/channel/ChannelProcessor.java Updates ChannelException import to new package.
flume-ng-core/src/main/java/org/apache/flume/channel/ChannelUtils.java Updates ChannelException import to new package.
flume-ng-core/src/main/java/org/apache/flume/channel/BasicChannelSemantics.java Updates ChannelException import to new package.
flume-ng-core/src/main/java/org/apache/flume/channel/BasicTransactionSemantics.java Updates ChannelException import to new package.
flume-ng-core/src/main/java/org/apache/flume/channel/PseudoTxnMemoryChannel.java Updates ChannelException import to new package.
flume-ng-core/src/main/java/org/apache/flume/channel/MemoryChannel.java Updates ChannelException/ChannelFullException imports to new package.
flume-ng-core/src/main/java/org/apache/flume/sink/AbstractRpcSink.java Updates ChannelException import and test accessor visibility.
flume-ng-core/src/main/java/org/apache/flume/interceptor/RegexExtractorInterceptorMillisSerializer.java Migrates serializer to java.time.
flume-ng-core/src/main/java/org/apache/flume/formatter/output/RollTimePathManager.java Migrates roll-time naming to java.time.
flume-ng-core/src/main/java/org/apache/flume/serialization/EventSerializerType.java Changes serializer enum to reflection-based resolution.
flume-ng-core/src/main/java/org/apache/flume/serialization/EventDeserializerType.java Changes deserializer enum to reflection-based resolution.
flume-ng-core/src/main/java/org/apache/flume/serialization/TransientPositionTracker.java Adds transient tracker implementation.
flume-ng-core/src/main/java/org/apache/flume/Channel.java Adds new ChannelException import path.
flume-ng-core/src/test/java/org/apache/flume/source/TestSyslogParser.java Migrates syslog parser test away from Joda-Time.
flume-ng-core/src/test/java/org/apache/flume/source/TestSyslogTcpSource.java Migrates syslog TCP source tests to java.time.
flume-ng-core/src/test/java/org/apache/flume/source/TestSyslogUdpSource.java Migrates syslog UDP source tests to java.time.
flume-ng-core/src/test/java/org/apache/flume/source/TestMultiportSyslogTCPSource.java Migrates multiport syslog tests to java.time.
flume-ng-core/src/test/java/org/apache/flume/interceptor/TestRegexExtractorInterceptor.java Migrates interceptor tests to java.time.
flume-ng-core/src/test/java/org/apache/flume/interceptor/TestRegexExtractorInterceptorMillisSerializer.java Migrates millis serializer tests to java.time.
flume-ng-core/src/test/java/org/apache/flume/formatter/output/TestBucketPath.java Migrates bucket path tests to java.time.
flume-ng-core/src/test/java/org/apache/flume/source/TestNetcatSource.java Fixes incorrect logger class reference.
flume-ng-core/src/test/java/org/apache/flume/source/TestDefaultSourceFactory.java Removes/adjusts Avro/Thrift source factory assertions.
flume-ng-core/src/test/java/org/apache/flume/sink/TestDefaultSinkFactory.java Removes/adjusts Avro sink factory assertions.
flume-ng-core/src/test/java/org/apache/flume/sink/TestRollingFileSink.java Updates ChannelException import to new package.
flume-ng-core/src/test/java/org/apache/flume/sink/TestLoadBalancingSinkProcessor.java Updates ChannelException import to new package.
flume-ng-core/src/test/java/org/apache/flume/channel/TestMemoryChannel.java Updates ChannelException import to new package.
flume-ng-core/src/test/java/org/apache/flume/channel/TestMemoryChannelConcurrency.java Updates ChannelException import to new package.
flume-ng-core/src/test/java/org/apache/flume/channel/TestChannelProcessor.java Updates ChannelException import to new package.
flume-ng-core/src/test/java/org/apache/flume/channel/TestChannelUtils.java Updates ChannelException import to new package.
flume-ng-core/src/test/java/org/apache/flume/channel/MockChannel.java Updates ChannelException import to new package.
flume-ng-core/src/test/java/org/apache/flume/channel/AbstractBasicChannelSemanticsTest.java Updates ChannelException import to new package.
flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/FileChannel.java Updates ChannelException import to new package.
flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/TestFileChannel.java Updates ChannelException import to new package.
flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/TestFileChannelErrorMetrics.java Updates ChannelException import to new package.
flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/TestUtils.java Updates ChannelException import to new package.
flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/encryption/TestFileChannelEncryption.java Updates ChannelException import to new package.
flume-ng-channels/flume-spillable-memory-channel/src/main/java/org/apache/flume/channel/SpillableMemoryChannel.java Updates ChannelException import to new package.
flume-ng-channels/flume-spillable-memory-channel/src/test/java/org/apache/flume/channel/TestSpillableMemoryChannel.java Updates ChannelException import to new package.
flume-ng-embedded-agent/src/main/java/org/apache/flume/agent/embedded/EmbeddedAgent.java Updates ChannelException import to new package.
flume-ng-embedded-agent/src/main/java/org/apache/flume/agent/embedded/EmbeddedSource.java Updates ChannelException import to new package.
flume-ng-clients/flume-ng-log4jappender/src/test/java/org/apache/flume/clients/log4jappender/TestLog4jAppender.java Removes direct AvroSource import usage.
flume-ng-clients/flume-ng-log4jappender/src/test/java/org/apache/flume/clients/log4jappender/TestLog4jAppenderWithAvro.java Removes direct AvroSource import usage.
flume-ng-clients/flume-ng-log4jappender/src/test/java/org/apache/flume/clients/log4jappender/TestLoadBalancingLog4jAppender.java Removes direct AvroSource import usage.
flume-bom/pom.xml Adds RPC modules to BOM-managed dependencies.
bin/flume-ng Updates Avro CLI client class name to new package.
Comments suppressed due to low confidence (2)

flume-rpc/flume-rpc-avro/src/test/java/org/apache/flume/rpc/avro/serialization/SyslogAvroEventSerializer.java:182

  • parseRfc3164Date cannot work as written: LocalDateTime.parse with patterns like MMM dd HH:mm:ss lacks a year, so it will always throw and return 0. Use a DateTimeFormatterBuilder with a default YEAR (and ideally a fixed ZoneOffset) or parse to a TemporalAccessor and then apply the current year before converting to epoch millis.
    flume-rpc/flume-rpc-avro/src/main/java/org/apache/flume/rpc/avro/client/NettyAvroRpcClient.java:109
  • Javadoc links reference org.apache.flume.rpc.api.RpcClient / org.apache.flume.rpc.api.RpcClientFactory, but the RPC client API appears to live in org.apache.flume.api (and there is no org.apache.flume.rpc.api package in main sources). This will produce broken Javadoc links (and may fail Javadoc builds if configured strictly). Update the @link targets to the correct API types.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread flume-ng-core/src/main/java/org/apache/flume/source/SyslogParser.java Outdated
Comment thread flume-rpc/flume-rpc-thrift/pom.xml
Comment thread flume-rpc/flume-rpc-thrift/pom.xml
Comment thread flume-parent/pom.xml
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 141 out of 181 changed files in this pull request and generated 10 comments.

Comments suppressed due to low confidence (2)

flume-rpc/flume-rpc-avro/src/test/java/org/apache/flume/rpc/avro/serialization/SyslogAvroEventSerializer.java:174

  • parseRfc3164Date uses LocalDateTime.parse(in, dateFmt1/dateFmt2), but the patterns (MMM dd HH:mm:ss / MMM d HH:mm:ss) do not include a year. LocalDateTime.parse will therefore always throw, causing timestamps to remain 0. Use a DateTimeFormatterBuilder with a default year (and ideally Locale.ENGLISH for syslog month names) or parse to a partial type and supply the year explicitly.
    flume-rpc/flume-rpc-thrift/src/test/java/org/apache/flume/rpc/thrift/TestThriftRpcClient.java:25
  • This test imports junit.framework.Assert (JUnit 3) while the rest of the module uses org.junit.Assert. Switching to org.junit.Assert keeps assertions consistent and avoids reliance on legacy JUnit APIs.

Comment thread flume-rpc/flume-rpc-thrift/pom.xml
Comment thread flume-rpc/flume-rpc-avro/pom.xml
Comment thread flume-parent/pom.xml
Comment thread pom.xml
Comment thread flume-ng-tests/src/test/resources/log4j2.xml
Comment thread flume-rpc/flume-rpc-thrift/pom.xml
Comment thread flume-rpc/flume-rpc-thrift/src/test/resources/certs/gencerts.sh
Comment thread flume-rpc/flume-rpc-thrift/src/test/resources/certs/gencerts.sh
@ppkarwasz ppkarwasz merged commit 36f8ac1 into trunk May 26, 2026
5 checks passed
@ppkarwasz ppkarwasz deleted the extract-rpc branch May 26, 2026 18:22
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.

3 participants