Move Avro & Thrift. Switch to java.time from joda#431
Conversation
ppkarwasz
left a comment
There was a problem hiding this comment.
LGTM
There are many file changes, but they seem to be all refactorings.
There was a problem hiding this comment.
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.timeand 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
parseRfc3164Datecannot work as written:LocalDateTime.parsewith patterns likeMMM dd HH:mm:sslacks a year, so it will always throw and return 0. Use aDateTimeFormatterBuilderwith a default YEAR (and ideally a fixed ZoneOffset) or parse to aTemporalAccessorand 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 inorg.apache.flume.api(and there is noorg.apache.flume.rpc.apipackage in main sources). This will produce broken Javadoc links (and may fail Javadoc builds if configured strictly). Update the@linktargets to the correct API types.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
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
parseRfc3164DateusesLocalDateTime.parse(in, dateFmt1/dateFmt2), but the patterns (MMM dd HH:mm:ss/MMM d HH:mm:ss) do not include a year.LocalDateTime.parsewill therefore always throw, causing timestamps to remain 0. Use aDateTimeFormatterBuilderwith a default year (and ideallyLocale.ENGLISHfor 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 usesorg.junit.Assert. Switching toorg.junit.Assertkeeps assertions consistent and avoids reliance on legacy JUnit APIs.
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.