I2P Address: [http://git.idk.i2p]

Skip to content
Snippets Groups Projects
  • jrandom's avatar
    1a30cd5f
    2004-12-03 jrandom · 1a30cd5f
    jrandom authored and zzz's avatar zzz committed
        * Toss in a small pool of threads (3) to execute the events queued up with
          the SimpleTimer, as we do currently see the occational event
          notification spiking up to a second or so.
        * Implement a SAM client API in java, useful for event based streaming (or
          for testing the SAM bridge)
        * Added support to shut down the SAM bridge on OOM (useful if the SAM
          bridge is being run outside of the router).
        * Include the SAM test code in the sam.jar
        * Remove an irrelevent warning message from SAM, which was caused by
          perfectly normal operation due to a session being closed.
        * Removed some unnecessary synchronization in the streaming lib's
          PacketQueue
        * More quickly clean up the memory used by the streaming lib by
          immediately killing each packet's resend job as soon as it is ACKed (or
          cancelled), so that there are no longer any valid pointers to the
          (potentially 32KB) packet.
        * Fixed the timestamps dumped to stdout when debugging the PacketHandler.
        * Drop packets that would expand our inbound window beyond our maximum
          buffer size (default 32 messages)
        * Always read the ACK/NACK data from the verified packets received, even
          if we are going to drop them
        * Always adjust the window when there are messages ACKed, though do not
          change its size except as before.
        * Streamlined some synchronization in the router's I2CP handling
        * Streamlined some memory allocation in the SAM bridge
        * Default the streaming lib to disconnect on inactivity, rather than send
          an empty message.
    this still doesnt get the BT to where it needs to be, or fix the timeout problem,
    but i dont like having so many commits outstanding and these updates are sound
    1a30cd5f
    History
    2004-12-03 jrandom
    jrandom authored and zzz's avatar zzz committed
        * Toss in a small pool of threads (3) to execute the events queued up with
          the SimpleTimer, as we do currently see the occational event
          notification spiking up to a second or so.
        * Implement a SAM client API in java, useful for event based streaming (or
          for testing the SAM bridge)
        * Added support to shut down the SAM bridge on OOM (useful if the SAM
          bridge is being run outside of the router).
        * Include the SAM test code in the sam.jar
        * Remove an irrelevent warning message from SAM, which was caused by
          perfectly normal operation due to a session being closed.
        * Removed some unnecessary synchronization in the streaming lib's
          PacketQueue
        * More quickly clean up the memory used by the streaming lib by
          immediately killing each packet's resend job as soon as it is ACKed (or
          cancelled), so that there are no longer any valid pointers to the
          (potentially 32KB) packet.
        * Fixed the timestamps dumped to stdout when debugging the PacketHandler.
        * Drop packets that would expand our inbound window beyond our maximum
          buffer size (default 32 messages)
        * Always read the ACK/NACK data from the verified packets received, even
          if we are going to drop them
        * Always adjust the window when there are messages ACKed, though do not
          change its size except as before.
        * Streamlined some synchronization in the router's I2CP handling
        * Streamlined some memory allocation in the SAM bridge
        * Default the streaming lib to disconnect on inactivity, rather than send
          an empty message.
    this still doesnt get the BT to where it needs to be, or fix the timeout problem,
    but i dont like having so many commits outstanding and these updates are sound
build.xml 15.54 KiB
<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." default="all" name="i2p">
    
    <target name="all" >
        <echo message="Useful targets: " />
        <echo message="  dist:      distclean then package everything up (installer, clean tarball, update tarball)" />
        <echo message="  installer: build the GUI installer" />
        <echo message="  tarball:   tar the full install into i2p.tar.bz2 (extracts to build a new clean install)" />
        <echo message="  updater:   tar the built i2p specific files into an i2pupdate.zip (extracts safely over existing installs)" />
        <echo message="  distclean: clean up all derived files" />
        <echo message="  javadoc:   generate javadoc for the entire project into ./build/javadoc" />
    </target>
    <target name="dist" depends="pkg, javadoc">
    </target>
    <target name="build" depends="builddep, jar, buildWEB" />
    <target name="buildclean" depends="distclean, build" />
    <target name="builddep">
	<!-- build *everything* here, but only once -->
        <ant dir="core/java/" target="jar" />
        <ant dir="router/java/" target="jar" />
        <ant dir="apps/ministreaming/java/" target="jar" />
        <ant dir="apps/streaming/java/" target="jar" />
        <ant dir="apps/i2ptunnel/java/" target="jar" />
        <ant dir="apps/sam/java/" target="jar" />
        <ant dir="apps/heartbeat/java/" target="jar" />
        <ant dir="apps/netmonitor/java/" target="jar" />
        <ant dir="apps/systray/java/" target="jar" />
        <ant dir="apps/routerconsole/java/" target="jar" />
    </target>
    <target name="buildWEB">
        <ant dir="apps/jetty" target="fetchJettylib" />
        <ant dir="apps/routerconsole/java" target="build" />
        <copy file="apps/routerconsole/java/build/routerconsole.jar" todir="build/" />
        <copy file="apps/routerconsole/java/build/routerconsole.war" todir="build/" />
        <copy file="apps/jetty/jettylib/org.mortbay.jetty.jar" todir="build/" />
        <copy file="apps/jetty/jettylib/org.mortbay.jetty-jdk1.2.jar" todir="build/" />
        <copy file="apps/jetty/jettylib/ant.jar" todir="build/" />
        <copy file="apps/jetty/jettylib/jasper-compiler.jar" todir="build/" />
        <copy file="apps/jetty/jettylib/jasper-runtime.jar" todir="build/" />
        <copy file="apps/jetty/jettylib/jnet.jar" todir="build/" />
        <copy file="apps/jetty/jettylib/xercesImpl.jar" todir="build/" />
        <copy file="apps/jetty/jettylib/xml-apis.jar" todir="build/" />
        <copy file="apps/jetty/jettylib/javax.servlet.jar" todir="build/" />
    </target>
    <target name="compile" />
    <target name="jar" depends="compile" >
        <copy file="core/java/build/i2p.jar" todir="build/" />
        <copy file="router/java/build/router.jar" todir="build/" />
        <copy file="apps/ministreaming/java/build/mstreaming.jar" todir="build/" />
        <copy file="apps/streaming/java/build/streaming.jar" todir="build/" />
        <copy file="apps/i2ptunnel/java/build/i2ptunnel.jar" todir="build/" />
        <copy file="apps/i2ptunnel/java/build/i2ptunnel.war" todir="build/" />
        <copy file="apps/sam/java/build/sam.jar" todir="build/" />
        <copy file="apps/heartbeat/java/build/heartbeat.jar" todir="build/" />
        <copy file="apps/netmonitor/java/build/netmonitor.jar" todir="build/" />
        <copy file="apps/systray/java/build/systray.jar" todir="build/" />
        <copy file="installer/lib/jbigi/jbigi.jar" todir="build" />
    </target>
    <target name="javadoc">
        <mkdir dir="./build" />
        <mkdir dir="./build/javadoc" />
        <javadoc access="package" 
            destdir="./build/javadoc" 
            packagenames="*" 
            use="true" 
            group="SDK net.i2p:net.i2p.*:net.i2p.client:net.i2p.client.*:freenet.support.CPUInformation,
                   Streaming net.i2p.client.streaming,
                   RouterConsole net.i2p.router.web,
                   Router net.i2p.router:net.i2p.router.*:net.i2p.data.i2np,
                   Systray net.i2p.apps.systray,
                   I2PTunnel net.i2p.i2ptunnel:net.i2p.i2ptunnel.*"
            splitindex="true" 
            windowtitle="I2P">
            <sourcepath>
                <pathelement location="core/java/src" />
                <pathelement location="core/java/test" />
                <pathelement location="router/java/src" />
                <pathelement location="router/java/test" />
                <pathelement location="apps/ministreaming/java/src" />
                <pathelement location="apps/streaming/java/src" />
                <pathelement location="apps/i2ptunnel/java/src" />
                <pathelement location="apps/systray/java/src" />
                <pathelement location="apps/routerconsole/java/src" />
            </sourcepath>
            <classpath>
                <pathelement location="apps/jetty/jettylib/org.mortbay.jetty.jar" />
                <pathelement location="apps/systray/java/lib/systray4j.jar" />
                <pathelement location="installer/lib/wrapper/win32/wrapper.jar" />
            </classpath>
        </javadoc>
    </target>
    <target name="clean" depends="pkgclean" >
        <delete dir="./build" />
    </target>
    <target name="distclean" depends="clean">
        <ant dir="core/java/" target="distclean" />
        <ant dir="router/java/" target="distclean" />
        <ant dir="apps/ministreaming/java/" target="distclean" />
        <ant dir="apps/streaming/java/" target="distclean" />
        <ant dir="apps/i2ptunnel/java/" target="distclean" />
        <ant dir="apps/sam/java/" target="distclean" />
        <ant dir="apps/heartbeat/java/" target="distclean" />
        <ant dir="apps/netmonitor/java/" target="distclean" />
        <ant dir="apps/routerconsole/java/" target="distclean" />
        <ant dir="apps/systray/java/" target="distclean" />
        <ant dir="installer/java/" target="distclean" />
        <delete>
            <fileset dir="." includes="**/*.class" />
            <fileset dir="." includes="**/*.java~" />
        </delete>
    </target>
    <target name="distGUI" depends="clean, buildGUI">
        <mkdir dir="build/lib" />
        <copy file="apps/jfreechart/jfreechart-0.9.17/jfreechart-0.9.17.jar" todir="build/lib" />
        <copy file="apps/jfreechart/jfreechart-0.9.17/lib/log4j-1.2.8.jar" todir="build/lib" />
        <copy file="apps/jfreechart/jfreechart-0.9.17/lib/jcommon-0.9.2.jar" todir="build/lib" />
        <copy file="apps/jfreechart/GUI-licenses.txt" todir="build/" />
        <copy file="apps/netmonitor/java/build/netviewer.jar" todir="build/lib" />
        <copy file="apps/heartbeat/java/build/heartbeatGUI.jar" todir="build/lib" />
        <zip destfile="build/gui.zip" basedir="build/" includes="GUI-licenses.txt lib/*.jar" />
    </target>
    <target name="prepGUI">
        <echo message="The code being fetched comes from http://www.jfree.org/jfreechart/" />
        <echo message="It includes code licensed under the LGPL and the APL - please see" />
        <echo message="the JFreeChart site (or the info downloaded) for source and details" />
        <ant dir="apps/jfreechart/" target="fetchJfreechart" />
        <ant dir="apps/jfreechart/" target="build" />
    </target>
    <target name="buildGUI">
        <echo message="Building the GUIs for the heartbeat and netmonitor apps, which depend upon" />
        <echo message="the JFreeChart and related packages.  The following will fail if you haven't" />
        <echo message="already run 'ant prepGUI' to fetch the LGPL/APL'ed code" />
        <ant dir="apps/heartbeat/java" target="buildGUI" />
        <ant dir="apps/netmonitor/java" target="buildGUI" />
        <copy file="apps/jfreechart/jfreechart-0.9.17/jfreechart-0.9.17.jar" todir="build/" />
        <copy file="apps/jfreechart/jfreechart-0.9.17/lib/log4j-1.2.8.jar" todir="build/" />
        <copy file="apps/jfreechart/jfreechart-0.9.17/lib/jcommon-0.9.2.jar" todir="build/" />
        <copy file="apps/jfreechart/GUI-licenses.txt" todir="build/" />
        <copy file="apps/netmonitor/java/build/netviewer.jar" todir="build/" />
        <copy file="apps/heartbeat/java/build/heartbeatGUI.jar" todir="build/" />
        <echo message="GUIs created.  You will need the following files to run them: " />
        <echo message="jfreechart-0.9.17.jar log4j-1.2.8.jar jcommon-0.9.2.jar" />
        <echo message="To run the netmonitor GUI: java -cp jfreechart-0.9.17.jar:log4j-1.2.8.jar:jcommon-0.9.2.jar -jar netviewer.jar" />
        <echo message="To run the heartbeat GUI: java -cp jfreechart-0.9.17.jar:log4j-1.2.8.jar:jcommon-0.9.2.jar -jar heartbeatGUI.jar" />
    </target>
    <target name="pkg" depends="updater, tarball, installer" />
    <target name="pkgclean">
        <delete dir="pkg-temp" />
        <delete>
            <fileset dir="." includes="i2p.tar.bz2 install.jar i2pupdate.zip" />
        </delete>
    </target>
    <target name="preppkg" depends="build">
        <delete dir="pkg-temp" />
        <copy file="build/ant.jar" todir="pkg-temp/lib/" />
        <copy file="build/heartbeat.jar" todir="pkg-temp/lib/" />
        <copy file="build/i2p.jar" todir="pkg-temp/lib/" />
        <copy file="build/i2ptunnel.jar" todir="pkg-temp/lib/" />
        <copy file="build/jasper-compiler.jar" todir="pkg-temp/lib/" />
        <copy file="build/jasper-runtime.jar" todir="pkg-temp/lib/" />
        <copy file="build/javax.servlet.jar" todir="pkg-temp/lib/" />
        <copy file="build/jbigi.jar" todir="pkg-temp/lib" />
        <copy file="build/jnet.jar" todir="pkg-temp/lib/" />
        <copy file="build/mstreaming.jar" todir="pkg-temp/lib/" />
        <copy file="build/streaming.jar" todir="pkg-temp/lib/" />
        <copy file="build/netmonitor.jar" todir="pkg-temp/lib/" />
        <copy file="build/org.mortbay.jetty-jdk1.2.jar" todir="pkg-temp/lib/" />
        <copy file="build/org.mortbay.jetty.jar" todir="pkg-temp/lib/" />
        <copy file="build/router.jar" todir="pkg-temp/lib/" />
        <copy file="build/routerconsole.jar" todir="pkg-temp/lib/" />
        <copy file="build/sam.jar" todir="pkg-temp/lib/" />
        <copy file="build/systray.jar" todir="pkg-temp/lib" />
        <copy file="apps/systray/java/lib/systray4j.jar" todir="pkg-temp/lib" />
        <copy file="apps/systray/java/lib/systray4j.dll" todir="pkg-temp/lib" />
        <copy file="apps/systray/java/resources/iggy.ico" todir="pkg-temp/icons" />
        <copy file="apps/systray/java/resources/iggy.xpm" todir="pkg-temp/icons" />
        <copy file="build/xercesImpl.jar" todir="pkg-temp/lib/" />
        <copy file="build/xml-apis.jar" todir="pkg-temp/lib/" />
        <copy file="build/i2ptunnel.war" todir="pkg-temp/webapps/" />
        <copy file="build/routerconsole.war" todir="pkg-temp/webapps/" />
        <copy file="installer/resources/clients.config" todir="pkg-temp/" />
        <copy file="installer/resources/i2prouter" todir="pkg-temp/" />
        <copy file="installer/resources/i2prouter.bat" todir="pkg-temp/" />
        <copy file="installer/resources/i2ptunnel.config" todir="pkg-temp/" />
        <!-- <copy file="installer/resources/install_i2p_service_unix" todir="pkg-temp/" /> -->
        <copy file="installer/resources/install_i2p_service_winnt.bat" todir="pkg-temp/" />
        <copy file="installer/resources/osid" todir="pkg-temp/" />
        <copy file="installer/resources/postinstall.bat" todir="pkg-temp/" />
        <copy file="installer/resources/postinstall.sh" todir="pkg-temp/" />
        <copy file="installer/resources/systray.config" todir="pkg-temp/" />
        <!-- <copy file="installer/resources/uninstall_i2p_service_unix" todir="pkg-temp/" /> -->
        <copy file="installer/resources/uninstall_i2p_service_winnt.bat" todir="pkg-temp/" />
        <copy file="installer/resources/wrapper.config" todir="pkg-temp/" />
        <copy todir="pkg-temp/lib/wrapper/freebsd/">
            <fileset dir="installer/lib/wrapper/freebsd/" />
        </copy>
        <copy todir="pkg-temp/lib/wrapper/linux/">
            <fileset dir="installer/lib/wrapper/linux/" />
        </copy>
        <copy todir="pkg-temp/lib/wrapper/macosx/">
            <fileset dir="installer/lib/wrapper/macosx/" />
        </copy>
        <copy todir="pkg-temp/lib/wrapper/solaris/">
            <fileset dir="installer/lib/wrapper/solaris/" />
        </copy>
        <copy todir="pkg-temp/lib/wrapper/win32/">
            <fileset dir="installer/lib/wrapper/win32/" />
        </copy>
        <copy file="hosts.txt" todir="pkg-temp/" />
        <copy file="install-headless.txt" todir="pkg-temp/" />
        <copy file="history.txt" todir="pkg-temp/" />
        <mkdir dir="pkg-temp/docs" />
        <copy file="readme.html" todir="pkg-temp/docs/" />
        <copy file="installer/resources/startconsole.html" todir="pkg-temp/docs/" />
        <copy file="installer/resources/start.ico" todir="pkg-temp/docs/" />
        <copy file="installer/resources/console.ico" todir="pkg-temp/docs/" />
        <copy file="installer/resources/uninstall.ico" todir="pkg-temp/docs/" />
        <mkdir dir="pkg-temp/eepsite" />
        <mkdir dir="pkg-temp/eepsite/webapps" />
        <mkdir dir="pkg-temp/eepsite/logs" />
        <mkdir dir="pkg-temp/eepsite/docroot" />
        <copy file="installer/resources/eepsite_index.html" tofile="pkg-temp/eepsite/docroot/index.html" />
        <copy file="installer/resources/favicon.ico" tofile="pkg-temp/eepsite/docroot/favicon.ico" />
        <copy file="installer/resources/jetty.xml" tofile="pkg-temp/eepsite/jetty.xml" />
    </target>
    <target name="tarball" depends="preppkg">
        <tar compression="bzip2" destfile="i2p.tar.bz2">
            <tarfileset dir="pkg-temp" includes="**/*" prefix="i2p" />
        </tar>
    </target>
    <target name="updater" depends="distclean, build">
        <delete dir="pkg-temp" />
        <copy file="build/i2p.jar" todir="pkg-temp/lib/" />
        <copy file="build/i2ptunnel.jar" todir="pkg-temp/lib/" />
        <copy file="build/mstreaming.jar" todir="pkg-temp/lib/" />
        <copy file="build/streaming.jar" todir="pkg-temp/lib/" />
        <copy file="build/sam.jar" todir="pkg-temp/lib/" />
        <copy file="build/router.jar" todir="pkg-temp/lib/" />
        <copy file="build/routerconsole.jar" todir="pkg-temp/lib/" />
        <copy file="build/i2ptunnel.war" todir="pkg-temp/webapps/" />
        <copy file="build/routerconsole.war" todir="pkg-temp/webapps/" />
        <copy file="history.txt" todir="pkg-temp/" />
        <copy file="hosts.txt" todir="pkg-temp/" />
        <mkdir dir="pkg-temp/eepsite" />
        <mkdir dir="pkg-temp/eepsite/webapps" />
        <copy file="installer/resources/jetty.xml" tofile="pkg-temp/eepsite/jetty.xml" />
        <zip destfile="i2pupdate.zip" basedir="pkg-temp" />
    </target>
    <taskdef name="izpack" classpath="${basedir}/installer/lib/izpack/standalone-compiler.jar" classname="com.izforge.izpack.ant.IzPackTask" />
    <target name="installer" depends="preppkg">
        <jar destfile="./pkg-temp/lib/copy.jar" basedir="./core/java/build/obj" includes="net/i2p/util/*.class">
            <manifest><attribute name="Main-Class" value="net.i2p.util.Copy" /></manifest>
        </jar>
        <jar destfile="./pkg-temp/lib/delete.jar" basedir="./core/java/build/obj" includes="net/i2p/util/*.class">
            <manifest><attribute name="Main-Class" value="net.i2p.util.Delete" /></manifest>
        </jar>
        <jar destfile="./pkg-temp/lib/exec.jar" basedir="./core/java/build/obj" includes="net/i2p/util/*.class">
            <manifest><attribute name="Main-Class" value="net.i2p.util.Exec" /></manifest>
        </jar>
        <izpack input="${basedir}/installer/install.xml" output="${basedir}/install.jar" installerType="standard" basedir="${basedir}" />
    </target>
</project>