'ant prepGUI' to fetch and prepare the jfreechart code
'ant buildGUI' to build the jars necessary
'ant distGUI' to build a gui.zip that contains the jars and a
license notice related to the LGPL and APL software linked
within it.
("installing" the GUI == unzip gui.zip into the I2P install dir)
(with a commented out set of lines for a heartbeat client/server)
updated -cp lines accordingly
use javaw for windows users (so they can close the damn dos boxes)
toss the default logger logs into logs/ (say that three times fast)
formatting
SAMBridge [[listenHost ]listenPort[ name=val]*]
where listenHost defaults to localhost, listenPort defaults to 7656, and name=val
can be the I2CP options to override (e.g. i2cp.tcp.host=localhost i2cp.tcp.port=4001)
if a client only wants 0 hop tunnels, give them 0 hop tunnels (rather than wasting a 2+ hop on it)
make inNetPool.dropped and inNetPool.duplicate rate stats, not frequency stats
formatting, minor refactoring
I2PSocketManager.connect(), with better error reporting to SAM clients;
* made SAMStreamSession destroy the associated I2PSocketManager when being
closed.
(human)
better error reporting;
* Added an I2PSocketManager.destroySocketManager() method, that closes all
the managed sockets and destroys the associated I2PSession.
(human)
* refactoring of SAMRawSession.java, to make it derive from
SAMMessageSession.java (parent class for SAMDatagramSession.java, too);
* removed unuseful cruft;
* some fixes;
* M-x untabify.
(human)
udp-esque users get transparent sessionKey/sessionTag management. we'll
probably refactor mode=guaranteed/best_effort into two concepts later,
dealing with blocking and encryption seperately.
logging and formatting fixes
won't be accepted until the server app actually requires an I2PServerSocket
from the I2PSocketManager.
It allows both to add a little bit of functionality, and to fix a nasty bug: it
was possible to hang an app that connects through the I2PSocketManager but
actually doesn't accept() connections (if 2 connection requests were sent
to the app, the I2PSocketManager got stuck waiting forever on
I2PServerSocketImpl.getNewSocket()).
according to whether we're running on *nix or windoze. build.xml
should now work on your platform, as long as you have jython installed
and jython is on your execution path.
Got SAM STREAMs working - test code added to i2psamclient.py
as function demoSTREAM()
HELLO, DEST and NAMING commands, plus SESSIONs with STYLE=RAW. It works with
aum's client-side Python library (modulo a small change in the HELLO command,
required to allow protocol versioning, not yet implemented in the client lib).
(human)
(while i want to spend another few days on it, there
are more pressing things and this will meet my needs
for testnet). the engine works as before, and the
gui now actually plots out and follows the chart over time.
The gui does have a lot of things left to be done before
it can be adopted by joe sixpack -
* load/store the URLs being monitored so you don't
have to reenter them on each startup
* clear out the x axis on refetch (now it just keeps
growing, which is good and bad)
* adjustable refresh rate
* implement snapshots (saving all the current state
files to a dir, and allowing that dir to be loaded
all at once)
* beautification (override the colors, etc)
the net.i2p.heartbeat.** code is all public domain, BUT
net.i2p.heartbeat.gui.JFreeChart* classes depend on the
LGPL'ed jfreechart code, which in turn depends on apache
licensed code (log4j). for the time being, this code
doesn't include the jfreechart code (and dependencies),
but the ant task in apps/heartbeat/java 'fetchJfreechart'
downloads it and places it under apps/heartbeat/java/lib,
after which you can build the GUI by running the ant task
'buildGUI' (buildGUI / etc are NOT in the standard build
process).
once we figure out all the details to comply with the
requirements of log4j's license we'll do so. but for now,
the above works.