commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christian Gosch (JIRA)" <>
Subject [jira] Commented: (NET-272) Backport / Downgrade of commons-net-2.0 to Java 1.4
Date Thu, 23 Apr 2009 07:37:47 GMT


Christian Gosch commented on NET-272:

OK, so we closed the circle ;-)

In need of FTPS the one and only version of commons-net to use is 2.0, 
and in need to deploy it on Java 1.4, the one and only way to achieve 
this is to back-port it. retroweaver is no option since some classes not 
"retroweavable" are present.

Thus I will use it that way and offer the code again here, with the one 
TODO mentioned earlier:

- back-replace regex "MatchResult" by the corresponding ORO construct in 
the directory contents parser context.

Maybe I am required to do this by myself anyway.

Additionally, the Java 1.4 compatible thread-safe List (i. e. 
"Collections.synchronizedList(new ArrayList())") in ListenerList which I 
currently use may be replaced by some construct fitting better the 
purpose. In 1.5.0, it simply was a Vector.

Finally, I only changed the source code and the obvious attributes in 
the maven XML stuff. To build the project using maven, one has to check 
carefully if that is sufficient. I did not test that.

If no one else of the team has any interest in incorporating this kind 
of code in any branch of commons-net, this thread is complete. 

If any one else is interested in this code, I think it should be 
possible to zip the whole tree and simply upload it here. If I succeed 
in re-introducing MatchResult via ORO, I will mention it here.


MatchResult in

> Backport / Downgrade of commons-net-2.0 to Java 1.4
> ---------------------------------------------------
>                 Key: NET-272
>                 URL:
>             Project: Commons Net
>          Issue Type: Improvement
>    Affects Versions: 2.0
>         Environment: Java 1.4 VM (as opposed to usually required Java5 VM)
>            Reporter: Christian Gosch
>            Priority: Minor
>   Original Estimate: 24h
>  Remaining Estimate: 24h
> I need FTP over TLS used as Client on an IBM WebSphere 6.0 AppServer which only allows
for the built-in Sun/IBM JRE 1.4.2, and the one and only useful open source Java library for
doing so currently seems to be commons-net-2.0 which requires a Java5 VM. (The alternative
EnterpriseDT edtFTPj/PRO may fit fine but is way too expensive.)
> Thus I tried to "back-port" the commons-net-2.0 sources to Java 1.4 which was feasible
up to some 95% in a few hours :-) 
> Of course the nice things about type safety and so on (generics, extended "for" loop
syntax...) disappeared gracefully, the enum in the TFTPServer had to be replaced by an equivalent
implementation, and all annotations have been abandoned, but finally only 1 hard stopper remained:
I could not find a useful replacement for the use of MatchResult in RegexFTPFileEntryParserImpl
and VMSVersioningFTPEntryParser, which could guarantee the separation of changes in the same
way MatchResult does. (The __listeners list in ListenerList is solved by Collections.synchronizedList(new
ArrayList()), which at least guarantees thread safety.)
> I have that code at hand and can donate it to the community, but at least it should only
get into some branch, and finally: Are you or is someone else interested in this code at all?
> If so, there should be some way to publish it, maybe here or elsewhere. Remaining tasks
are: Finding a useful replacement for Java5 MatchResult in Java 1.4, re-integration with the
maven build environment (i did the modifications somewhat "offline").
> If not, sorry for the disturbance...

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message