On Wed, Dec 25, 2024 at 10:41 AM Gary Gregory <garydgreg...@gmail.com> wrote:
> In ftpserver 1.2.0, the class UserMetadata is in > org.apache.ftpserver.usermanager.impl. > In ftpserver 1.2.1-SNAPSHOT, the class UserMetadata is in > org.apache.ftpserver.usermanager. > > The breaks BC. > If I fix the above BC error and apply https://github.com/apache/mina-ftpserver/pull/37, then the build passes. Does the PR look good and are we OK with me fixing the BC and applying the PR. After the above, I'd create a weekly dependabot job on GH CI to test available dependency bumps. TY, Gary > > Gary > > > On Wed, Dec 25, 2024 at 10:37 AM Gary Gregory <garydgreg...@gmail.com> > wrote: > >> The BC break appears to be in org.apache.mina.filter.ssl.SslFilter. >> >> Gary >> >> >> On Wed, Dec 25, 2024 at 10:36 AM Gary D. Gregory <ggreg...@apache.org> >> wrote: >> >>> Hi All and Happy Hols, >>> >>> My big picture: I am _trying_ to migrate Apache Commons VFS tests from >>> SSH Core 0.8.0 (!) and Mina Core 2.1.x. >>> >>> I've given up for now on migrating from SSH Core 0.8.0 to 2.x because it >>> seems like a rewrite beyond my sshd foo ATM. >>> >>> To migrate from Mina Core 2.1.10 to 2.2.4 there is some behavioral >>> breakage that I am trying to resolve. >>> >>> One of the items that sticks out is: >>> >>> Exception in thread "pool-3-thread-1" java.lang.NoSuchFieldError: Class >>> org.apache.mina.filter.ssl.SslFilter does not have member field >>> 'org.apache.mina.core.session.AttributeKey DISABLE_ENCRYPTION_ONCE' >>> at >>> org.apache.ftpserver.command.impl.AUTH.secureSession(AUTH.java:125) >>> at org.apache.ftpserver.command.impl.AUTH.execute(AUTH.java:106) >>> at >>> org.apache.ftpserver.impl.DefaultFtpHandler.messageReceived(DefaultFtpHandler.java:211) >>> at >>> org.apache.ftpserver.listener.nio.FtpHandlerAdapter.messageReceived(FtpHandlerAdapter.java:62) >>> at >>> org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:1015) >>> at >>> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) >>> at >>> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) >>> at >>> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) >>> at >>> org.apache.ftpserver.listener.nio.FtpLoggingFilter.messageReceived(FtpLoggingFilter.java:85) >>> at >>> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) >>> at >>> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) >>> at >>> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) >>> at >>> org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:106) >>> at >>> org.apache.mina.filter.logging.MdcInjectionFilter.filter(MdcInjectionFilter.java:162) >>> at >>> org.apache.mina.filter.util.CommonEventFilter.messageReceived(CommonEventFilter.java:84) >>> at >>> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) >>> at >>> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) >>> at >>> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) >>> at >>> org.apache.mina.filter.codec.AbstractProtocolDecoderOutput.flush(AbstractProtocolDecoderOutput.java:64) >>> at >>> org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:249) >>> at >>> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) >>> at >>> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) >>> at >>> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) >>> at >>> org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:106) >>> at org.apache.mina.core.session.IoEvent.run(IoEvent.java:89) >>> at >>> org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:763) >>> at >>> org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTasks(OrderedThreadPoolExecutor.java:755) >>> at >>> org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.run(OrderedThreadPoolExecutor.java:695) >>> at java.base/java.lang.Thread.run(Thread.java:1575) >>> >>> So that means that Mina's ftpserver is not compatible with mina-core, >>> not great. >>> >>> So I go over to ftpserver and try to compile 1.2.x and it breaks because >>> we've (at least) move a public class from one package to another, _not in a >>> major release_, and JApiCmp is set up to fail on binary incompatibilities. >>> >>> So: >>> - Should I fix 1.2.1-SNAPSHOT to make it not break BC? >>> - Should we declare a BC policy or just keep randomly breaking stuff? >>> >>> TY! >>> Gary >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: dev-unsubscr...@mina.apache.org >>> For additional commands, e-mail: dev-h...@mina.apache.org >>> >>>