[jcifs] JCIFS 0.9 Objectives

Michael B Allen mba2000 at ioplex.com
Wed Feb 11 07:49:10 GMT 2004

I am going to do the cleanup pass I've been talking about and I'm going
to do it right now. This will likely take a month or two which will
certainly make some people unhappy about stabilizing 0.8 but I just do
not have the time to operate within the normal guidelines. What follows
are my objectives for 0.9. Feel free to chime in if you have a need.

Switch to Eric's build.xml and enhance as necessary.

Switch to NT status codes.

Cleanup SmbException and places that use it such as permit holding an
inner exception like the Servlet API. See SmbRandomAccessFile.writeUTF.

Add RAP status 59 "An unexpected network error occurred."

Change the NTLM HTTP code, NtlmPasswordAuthentication and SmbTransport so
that closing a transport invalidates any challenges. When this happends,
trying to use the NPA will throw an SmbAuthException. An NPA with an
invalid challenge should NEVER be used to access SMB resources (as it
does now). This is also key to getting DFS to work with NetworkExplorer
and Davenport.

Update the documentation (e.g. list* operations that do not return hidden
shares and files).

The listFiles(SmbFileFilter filter) should return hidden files that
are accepted by the filter. The behavor of all other list* methods will
remain the same.

Replace UCS2-LE encoding/decoding with custom fast methods. Implement
the changes in a way such that making the normal conversion calls is
not necessary. Test with j2me (mmm, after 5 minutes on java.sun.com I
was not able to find it, no wonder sun's going out of business).

Normalize encoding and decoding routines.

Add support for port 445 transport (that's a lot of "ports":-).

Remove NetBIOS socket layer and integrate NetBIOS header directly into
SmbTransport. Make write "zero copy" like reads.

Normalize NetBIOS header and header for port 445.

Add support for jcifs.netbios.wins2 property to specify secondary WINS
server. Also explore the failover of errant domain controllers if that is
related to the mechanism used for triggering the switch to the secondary
WINS server.

Simplify jcifs.util.Log and all logging throughout all classes.

Remove PropertiesTree and replace with vanilla
java.util.Properties. Change all properties to be initialized statically
when the class is loaded. Are there exceptions to this?

Test jcifs.smb.client.useUnicode=false with all servers.

Generally clean, refactor, reduce, etc, etc, etc, ...

Everything I say is subject to changes in wind direction.


More information about the jcifs mailing list