CVS info: $Revision: 1.1.1.1 $ $Date: 2001/11/02 01:55:30 $ $State: Exp $ $Locker: $
Change Log
Version 0.92.1:
jrpcgen now emits a second constructor expecting the port
number to bind transports to as its solely parameter. This allows server
writers to bind their servers to well-known ports.
jportmap and an embedded portmap service class.
It can be used by standalone applications which should also be useable if the
user has not installed a portmap service.
I must have been bored or insane. Or both.
OncRpcServerStub methods public (instead of
protected), to give derived server classes more control over the way they
spin up and down.
Version 0.91.2:
OncRpcTcpSocket. So
much for almost not testing the release. To fix this stupid design bug the
classes OncRpcTcpSocket and OncRpcUdpSocket were
moved to OncRpcTcpSocketHelper and
OncRpcUdpSocketHelper. They now merely support Socket
and DatagramSocket instead of inheriting from them. This avoids
the endless reflection method invocation loop, but is still cheaper in terms
of method invocation performance than a wrapper class.
Version 0.91.1:
AUTH_NONE on the server
side in OncRpcServerAuth.xdrNew when recycling the
AUTH_NONE handler singleton.
jrpcgen
generated server stubs. The constructor of a server stub class now only
creates the transport objects and sets the public transports field
within class OncRpcServerStub. Registering with the portmapper as
well as dispatching calls is now done within the run() method
(note: without any parameters). You need to change your code accordingly by
inserting a call to run(), otherwise the server will not start.
MyServer myserver = new MyServer();
myserver.run();
java",
some files were moved. The JBuilder project files have been moved to the
projects/ subdirectory.
demo.x
example now tests some pathological cases.
addElement instead of add when adding objects to a
Vector.
readme-first/ which should be more obvious to first-time users of
the RemoteTea source code and does not clobber the projects/
directory any more.
NullPointerException in OncRpcTcpClient
and OncRpcUdpClient when checking for rejected credentials
-- and I thought Java had no pointers.
jrpcgen: support for short form unsigned
in addition to unsigned int (compatibility with
rpcgen). Handling of octal numbers added (okay, it is still a valid
number format). Fixed bug in the code generation of desciminated unions using
booleans. Support for more than one program definition within the same x-file.
In this case the source code files generated for the client and server stubs
are named <x-filename><program-id>Client.java and
<x-filename><program-id>Server.java, respectively.
org.acplt.oncrpc.web containing helper
classes for HTTP client connections (HttpClientConnection), and
base64 encoding and decoding (Base64), as well as some other
stuff.
OncRpcHttpClient, which stands in the
tradition of OncRpcClient and implements sending ONC/RPC calls
through HTTP tunnels. Also added XdrHttpDecodingStream, which can
pull base64 encoded data from a web server and provide the decoded data through
the usual decoding XDR stream interface.
Version 0.90.1:
XdrEncodingStream.xdrEncodeByteFixedVector() which
falsely encoded length information about the following array of characters.
I should take more care when doing "Italian code recycling" using copy &
pasta...
OncRpcTcpClient.call() which caused XDR
buffer underflows when receiving the next reply after the previous reply
has been rejected by an ONC/RPC server.
org.acplt.oncrpc to put it
in sync with (de-) serializing fixed-size vectors and dynamic and fixed vectors
of characters.
AUTH_UNIX authentication. For this to achieve quite
some additions and changes were necessary -- luckily, old applications will
not be broken, as the changes are deep within the RemoteTea package:
OncRpcClientAuth, OncRpcClientAuthNone and
OncRpcClientAuthUnix were added.
OncRpcReplyMessage and OncRpcCallMessage are now
both abstract. This was necessary because ONC/RPC protocol issues make it
necessary to handle authentication through so-called authentication protocol
handling objects different on the client side than on the server side.
Additional classes now handle sending calls and receiving replies on the
client side (OncRpcClientCallMessage and
OncRpcClientReplyMessage respectively), as well as on the
server side (OncRpcServerCallMessage and
OncRpcServerReplyMessage). According to their needs, these new
classes only declare those encoding and decoding methods which are really
needed. In consequence, the base class OncRpcCallMessage has lost
its XdrAble interface completely.
OncRpcUdpClient and OncRpcTcpClient, as well as
to the base class OncRpcClient.
callMessage.auth attribute of the OncRpcCallInformation
delivered with each incomming ONC/RPC call. See
tests.org.acplt.oncrpc.ServerTest.java for an example.
AUTH_DES is still not supported, as this needs
quite some things to be done and I don't have full information about the
AUTH_DES protocol.
XdrBufferEncodingStream and
XdrBufferDecodingStream for encoding and decoding XDR data from
and to a fixed-size buffer. These classes comes in handy when dealing with
shorthand credentials.
XdrDynamicOpaque to handle variable-sized
vectors of bytes.
org.acplt.oncrpc.apps.jrpcgen,
because it's an application belonging very tight to ONC/RPC.
OncRpcConstants.REMOTETEA_VERSION_PREVERSION,
which indicates preversions if not zero.
Version 0.86.1:
char<> as a series of
characters, each one sitting happily in its very own XDR int (that is,
four bytes), the two methods XdrDecodingStream.xdrDecodeBytes()
and XdrEncodingStream.xdrEncodeBytes() were renamed to
XdrDecodingStream.xdrDecodeByteVector()
and XdrEncodingStream.xdrEncodeByteVector() as well as their
semantics changed accordingly.
XdrDecodingStream.xdrDecodeDynamicOpaque(),
XdrEncodingStream.xdrEncodeDynamicOpaque(),
XdrDecodingStream.xdrDecodeByteFixedVector() and
XdrEncodingStream.xdrEncodeByteFixedVector().
XdrDecodingStream and XdrEncodingStream
finally final. Maybe this helps Java compilers improve code
speed. Maybe.
XdrDecodingStream
and XdrEncodingStream.
Version 0.85.1:
readBuffer() to class
XdrTcpDecodingStream. This fixes problems when reading from
a TCP/IP stream and not all bytes wanted are immediately available, thus
stream.read() returning not all bytes at once (shame on me
for not reading the java.io documentation attentive enough).
Version 0.84.1:
Version 0.83.1:
Version 0.82.1:
Version 0.81.1:
broadcastCall of method in class OncRpcUdpClient.
jrpcgen. Sun's documentation on the rpcgen
syntax and grammar is rather thin and sometimes inaccurate. As always, I had to resort
to RTSL ("Read The Source, Luke!") to find out what syntax and grammar rpcgen
does in fact use. Please give it a try and report problems. Note that there
is no preprocessor step.
Version 0.80.2:
Version 0.80.1:
Version 0.35.1 and before: