accord issueshttps://gitlab.ow2.org/accord/accord/-/issues2018-09-21T20:38:56Zhttps://gitlab.ow2.org/accord/accord/-/issues/9Npe on OdetteFtpClientTest#testSendOutgoingFileTransferRequest() test case2018-09-21T20:38:56ZRafael MarinsNpe on OdetteFtpClientTest#testSendOutgoingFileTransferRequest() test caseRunning org.neociclo.odetteftp.client.OdetteFtpClientTest
[15/12/2009 09:01:53] [main] DEBUG eftp.test.EmbeddedTestTemplate - EmbeddedTestTemplate activated shutdownHook callback to clean up temp directories.
[15/12/2009 09:01:53] [main]...Running org.neociclo.odetteftp.client.OdetteFtpClientTest
[15/12/2009 09:01:53] [main] DEBUG eftp.test.EmbeddedTestTemplate - EmbeddedTestTemplate activated shutdownHook callback to clean up temp directories.
[15/12/2009 09:01:53] [main] DEBUG clo.odetteftp.service.Embedded - Starting ODETTE-FTP service...
[15/12/2009 09:01:53] [main] DEBUG clo.odetteftp.service.Embedded - ODETTE-FTP service listening on 0.0.0.0/0.0.0.0:13305
[15/12/2009 09:01:53] [main] DEBUG clo.odetteftp.service.Embedded - ODETTE-FTP service started
java.lang.NullPointerException
at org.neociclo.odetteftp.test.EmbeddedTestTemplate.runTransfer(EmbeddedTestTemplate.java:176)
at org.neociclo.odetteftp.client.OdetteFtpClientTest.testSendOutgoingFileTransferRequest(OdetteFtpClientTest.java:89)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:592)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[15/12/2009 09:01:53] [main] DEBUG clo.odetteftp.service.Embedded - Stopping ODETTE-FTP service...
at java.lang.reflect.Method.invoke(Method.java:592)
at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
[15/12/2009 09:01:53] [main] DEBUG clo.odetteftp.service.Embedded - ODETTE-FTP service stopped
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.102 sec <<< FAILURE!
testSendOutgoingFileTransferRequest(org.neociclo.odetteftp.client.OdetteFtpClientTest) Time elapsed: 0.097 sec <<< FAILURE!
java.lang.AssertionError: Exception thrown on transfer() method.
at org.junit.Assert.fail(Assert.java:91)
at org.neociclo.odetteftp.test.EmbeddedTestTemplate.runTransfer(EmbeddedTestTemplate.java:179)
at org.neociclo.odetteftp.client.OdetteFtpClientTest.testSendOutgoingFileTransferRequest(OdetteFtpClientTest.java:89)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:592)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:592)
at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
https://gitlab.ow2.org/accord/accord/-/issues/11Provide oftp api as OSGI bundle2018-09-21T20:38:56ZRafael MarinsProvide oftp api as OSGI bundlehttps://gitlab.ow2.org/accord/accord/-/issues/13Add tests to load the oftp api as OSGI bundle2018-09-21T20:38:56ZRafael MarinsAdd tests to load the oftp api as OSGI bundlehttps://gitlab.ow2.org/accord/accord/-/issues/15Implement Event-based on-the-fly processors execution2018-09-21T20:38:56ZRafael MarinsImplement Event-based on-the-fly processors executionOFTP2 crypto & compression processing are should actually be performed in offline mode. An event listener based processors could help to implement on-the-fly crypto & compression processing.
It requires a clear form of individual file t...OFTP2 crypto & compression processing are should actually be performed in offline mode. An event listener based processors could help to implement on-the-fly crypto & compression processing.
It requires a clear form of individual file transfer error handling. Have to determine that form.https://gitlab.ow2.org/accord/accord/-/issues/17Make sure that intermediate files generated by processors are deleted2018-09-21T20:38:56ZRafael MarinsMake sure that intermediate files generated by processors are deletedhttps://gitlab.ow2.org/accord/accord/-/issues/19Add file transfer event listener test cases2018-09-21T20:38:56ZRafael MarinsAdd file transfer event listener test caseshttps://gitlab.ow2.org/accord/accord/-/issues/20Identify and enhance Oftplet & Client API behavior on protocol exception2018-09-21T20:38:56ZRafael MarinsIdentify and enhance Oftplet & Client API behavior on protocol exceptionAlso add more topics to errors handling chapter as in #16.Also add more topics to errors handling chapter as in #16.https://gitlab.ow2.org/accord/accord/-/issues/21Complete the OdetteFtpClientFactory and exemplify its use on docs2018-09-21T20:38:56ZRafael MarinsComplete the OdetteFtpClientFactory and exemplify its use on docshttps://gitlab.ow2.org/accord/accord/-/issues/27Configure oftp api release mechanism2018-09-21T20:38:56ZRafael MarinsConfigure oftp api release mechanismBy the means of maven release plugin.By the means of maven release plugin.https://gitlab.ow2.org/accord/accord/-/issues/30Rework client ProcessorFactoryBuilder after removing Commons Discovery depend...2018-09-21T20:38:56ZRafael MarinsRework client ProcessorFactoryBuilder after removing Commons Discovery dependencyMethod returns null.Method returns null.https://gitlab.ow2.org/accord/accord/-/issues/31Add SecureEmbeddedTestTemplate option to enable Secure Authentication on serv...2018-09-21T20:38:56ZRafael MarinsAdd SecureEmbeddedTestTemplate option to enable Secure Authentication on server sideThe embedded server (and its Oftplet impl) should receive a kind of session parameters to setup during Oftplet.init() method.The embedded server (and its Oftplet impl) should receive a kind of session parameters to setup during Oftplet.init() method.https://gitlab.ow2.org/accord/accord/-/issues/32Use JDK provided javax.security.callback.CallbackHandler instead2018-09-21T20:38:57ZRafael MarinsUse JDK provided javax.security.callback.CallbackHandler insteadforby-1.0.0.M1https://gitlab.ow2.org/accord/accord/-/issues/34Specialize the IContainerEvent in more pertinent events2018-09-21T20:38:57ZRafael MarinsSpecialize the IContainerEvent in more pertinent eventsInitially: connecting, connected, disconnecting, disconnected.Initially: connecting, connected, disconnecting, disconnected.https://gitlab.ow2.org/accord/accord/-/issues/35Rename core package into org.neociclo.accord.filetransfer.core2018-09-21T20:38:57ZRafael MarinsRename core package into org.neociclo.accord.filetransfer.corehttps://gitlab.ow2.org/accord/accord/-/issues/36Specialize the IFileTransferEvent into more pertinent events2018-09-21T20:38:57ZRafael MarinsSpecialize the IFileTransferEvent into more pertinent eventsDetail this event into sub-types:
* IOutgoingFileTransferEvent - super interface for outgoing file transfer events
* IIncomingFileTransferEvent - super interface for incoming file transfer events
* IFileTransferRequestEvent - represe...Detail this event into sub-types:
* IOutgoingFileTransferEvent - super interface for outgoing file transfer events
* IIncomingFileTransferEvent - super interface for incoming file transfer events
* IFileTransferRequestEvent - represents remote file transfer incoming requests delivered to IIncomingFileTransferRequestListener
Each sub-type will specialize in more detailed events to represent corresponding file transfer occurrences. Ideas:
* IIncomingFileTransferReceiveDataEvent
* IIncomingFileTransferReceiveDoneEvent
* IIncomingFileTransferReceivePausedEvent
* IIncomingFileTransferReceiveResumedEvent
* IIncomingFileTransferReceiveStartEvent
* IOutgoingFileTransferResponseEvent
* IOutgoingFileTransferSendDataEvent
* IOutgoingFileTransferSendDoneEvent
* IOutgoingFileTransferSendPausedEvent
* IOutgoingFileTransferSendResumeEventhttps://gitlab.ow2.org/accord/accord/-/issues/37Add IFileTransfer to represent the performing file transfer instance2018-09-21T20:38:57ZRafael MarinsAdd IFileTransfer to represent the performing file transfer instanceThe IFileTransfer will represent the performing file transfer instance when sending or receiving files. For example, it's the returning object from the IIncomingFileTransferRequestEvent.accept() method or the IOutgoingFileTransferEvent.g...The IFileTransfer will represent the performing file transfer instance when sending or receiving files. For example, it's the returning object from the IIncomingFileTransferRequestEvent.accept() method or the IOutgoingFileTransferEvent.getSource().
Interesting to use the IFileRangeSpecification idea to specify the offset of the file transfer in resume state.https://gitlab.ow2.org/accord/accord/-/issues/40Add event listeners in the core OFTP api2018-09-21T20:38:57ZRafael MarinsAdd event listeners in the core OFTP apiUse kind of incoming request file transfer to handle the file receiving, in accepting or rejecting it. Other important feature is provide the file transfer progress event on every data block exchanged. It may replace the purpose of Oftpl...Use kind of incoming request file transfer to handle the file receiving, in accepting or rejecting it. Other important feature is provide the file transfer progress event on every data block exchanged. It may replace the purpose of Oftplet if directly implemented in protocol handlers.https://gitlab.ow2.org/accord/accord/-/issues/52Add support for parsing signed DeliveryNotification2018-09-21T20:38:57ZBruno BorgesAdd support for parsing signed DeliveryNotificationImplement a method in OdetteFtpSupport to parse a SignedDeliveryNotification and verify object's signature.
Consider a separated class for thisImplement a method in OdetteFtpSupport to parse a SignedDeliveryNotification and verify object's signature.
Consider a separated class for thisoftp-1.2.0.RC1https://gitlab.ow2.org/accord/accord/-/issues/55Generated Virtual File Time stamp does not follow the specs2018-09-21T20:38:57ZPatrick DessalleGenerated Virtual File Time stamp does not follow the specsThe Virtual File Time stamp currently not generated according to the specs.
The specs (RFC 5024) say that HHMMSSccc means :
HH : hours
MM : minutes
SS : seconds
cccc : counter (0001-9999) which gives higher resolution.
Currently, the co...The Virtual File Time stamp currently not generated according to the specs.
The specs (RFC 5024) say that HHMMSSccc means :
HH : hours
MM : minutes
SS : seconds
cccc : counter (0001-9999) which gives higher resolution.
Currently, the code is generating/parsing the cccc as milliseconds which by definition are limited to 3 digits (so the last c is always 0 and/or is not taken into account). This also means that the counter generates a unique counter number (limiting the protocol to 9999 messages per seconds).
So currently, the code could generate 2 messages with the same counter number if the messages are sent at the exact same millisecond (improbable but not impossible). And also technically the counter should be sequential (but nobody will care I think).
I currently need this counter to be correct to match the message that is sent and the EERP/NERP that is received.
I've set this to a minor priority. I believe that this should not be too complex to implement with a mutex for the counter but it shouldn't be an issue unless someone uses the system with some really heavy load (more than 999 messages a second or two at the same millisecond).oftp-1.2.0.RC1https://gitlab.ow2.org/accord/accord/-/issues/56Improper parsing of SFIDSIGN2018-09-21T20:38:57ZPatrick DessalleImproper parsing of SFIDSIGNThe SFIDSIGN is not properly parsed. It does an Boolean.parseBoolean() while the value is 'Y' or 'N'.
However, Boolean.parseBoolean() only considers "true" as being "true" (with case insensitivity)
Find in attachment a patch.The SFIDSIGN is not properly parsed. It does an Boolean.parseBoolean() while the value is 'Y' or 'N'.
However, Boolean.parseBoolean() only considers "true" as being "true" (with case insensitivity)
Find in attachment a patch.oftp-1.2.0.RC1