propagate from branch 'i2p.i2p.zzz.test' (head 1d4b529f1b52692195f1547338e186819dbd0cab)

to branch 'i2p.i2p' (head 1b8226cb70a7d72f0f674908d8213f8d29eb64eb)
This commit is contained in:
zzz
2009-06-12 12:58:33 +00:00
39 changed files with 221 additions and 142 deletions

View File

@ -1,12 +1,17 @@
Headless I2P installation instructions
1) tar xjf i2p.tar.bz2 (you've already done this)
2) cd i2p ; vi INSTALL-headless.txt (you're doing this now)
3) sh postinstall.sh (this launches the router)
4) lynx http://localhost:7657/index.jsp (configure the router)
1) java -jar i2pinstall.exe -console (you've already done this)
If you're having trouble, swing by http://forum.i2p.net/, check the
website at http://www.i2p.net/, or get on irc://irc.freenode.net/#i2p
This will run the installer in text mode, including running the postinstall.sh
script, which will start the router and launch a browser.
If you do not have an X server running, the browser launch will fail, and
you may use:
lynx http://localhost:7657/index.jsp
to configure the router.
If you're having trouble, swing by http://forum.i2p2.de/, check the
website at http://www.i2p2.de/, or get on irc://irc.freenode.net/#i2p
To run I2P explicitly:
(*nix): sh i2prouter start

View File

@ -6,16 +6,20 @@ and package up the appropriate installer by running:
ant pkg
This will produce a few key files:
* i2p.tar.bz2: the headless installation
* install.jar: the GUI installer
* install.jar: the GUI and console installer
* i2pinstall.exe: the GUI and console installer wrapped for cross-platform execution
* i2pupdate.zip: the update package
From there, you can follow the headless installation instructions
with the headless installer, run the GUI installer, or deploy
the update into an existing installation.
From there, you can run the headless (console mode) installer:
java -jar i2pinstall.exe -console
Or run the GUI installer:
java -jar i2pinstall.exe
Or move the update file into an existing installation directory and restart.
You will need to have ant installed from http://ant.apache.org/
(1.5 or newer)
(1.7.0 or newer)
Supported JVMs:
Windows: Latest available from http://java.sun.com/ (1.5+ supported)

View File

@ -116,8 +116,9 @@ Installer:
Forms were created using Abeille Forms Designer (https://abeille.dev.java.net/)
Izpack:
See licenses/LICENSE-Apache1.1.txt
Izpack 4.3.0:
Copyright (c) 2001-2008 Julien Ponge
See licenses/LICENSE-Apache2.0.txt

View File

@ -75,8 +75,9 @@
<ant target="war" />
</target>
<target name="war" depends="precompilejsp">
<!-- Don't include the css in the war, the main build.xml will copy it to docs/themes/console/ -->
<war destfile="build/routerconsole.war" webxml="../jsp/web-out.xml"
basedir="../jsp/" excludes="web.xml, *.java, *.jsp, web-fragment.xml">
basedir="../jsp/" excludes="web.xml, *.css, *.java, *.jsp, web-fragment.xml">
</war>
</target>
<target name="precompilejsp" unless="precompilejsp.uptodate">

View File

@ -0,0 +1,20 @@
package net.i2p.router.web;
/**
* Copied and modded from I2PTunnel IndexBean (GPL)
* @author zzz
*/
public class CSSHelper extends HelperBase {
public CSSHelper() {}
public static final String PROP_THEME_NAME = "routerconsole.theme";
private static final String BASE = "/themes/console/";
public String getTheme() {
String url = BASE;
String theme = _context.getProperty(PROP_THEME_NAME);
if (theme != null)
url += theme + "/";
return url;
}
}

View File

@ -1,23 +0,0 @@
package net.i2p.router.web;
import net.i2p.data.DataHelper;
import net.i2p.router.RouterContext;
/**
* Simple helper to query the appropriate router for data necessary to render
* any emergency notices
*/
public class NoticeHelper extends HelperBase {
public String getSystemNotice() {
if (true) return ""; // moved to the left hand nav
if (_context.router().gracefulShutdownInProgress()) {
long remaining = _context.router().getShutdownTimeRemaining();
if (remaining > 0)
return "Graceful shutdown in " + DataHelper.formatDuration(remaining);
else
return "Graceful shutdown imminent, please be patient as state is written to disk";
} else {
return "";
}
}
}

View File

@ -3,7 +3,7 @@
<html><head>
<title>I2P Router Console - config networking</title>
<link rel="stylesheet" href="default.css" type="text/css" />
<%@include file="css.jsp" %>
</head><body>
<%@include file="nav.jsp" %>

View File

@ -4,7 +4,7 @@
<html><head>
<title>I2P Router Console - config advanced</title>
<link rel="stylesheet" href="default.css" type="text/css" />
<%@include file="css.jsp" %>
</head><body>
<%@include file="nav.jsp" %>

View File

@ -4,7 +4,7 @@
<html><head>
<title>I2P Router Console - config clients</title>
<link rel="stylesheet" href="default.css" type="text/css" />
<%@include file="css.jsp" %>
<style type='text/css'>
button span.hide{
display:none;

View File

@ -4,7 +4,7 @@
<html><head>
<title>I2P Router Console - config keyring</title>
<link rel="stylesheet" href="default.css" type="text/css" />
<%@include file="css.jsp" %>
</head><body>
<%@include file="nav.jsp" %>

View File

@ -4,7 +4,7 @@
<html><head>
<title>I2P Router Console - config logging</title>
<link rel="stylesheet" href="default.css" type="text/css" />
<%@include file="css.jsp" %>
</head><body>
<jsp:useBean class="net.i2p.router.web.ConfigLoggingHelper" id="logginghelper" scope="request" />
<jsp:setProperty name="logginghelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />

View File

@ -4,7 +4,7 @@
<html><head>
<title>I2P Router Console - config peers</title>
<link rel="stylesheet" href="default.css" type="text/css" />
<%@include file="css.jsp" %>
</head><body>
<%@include file="nav.jsp" %>

View File

@ -4,7 +4,7 @@
<html><head>
<title>I2P Router Console - config service</title>
<link rel="stylesheet" href="default.css" type="text/css" />
<%@include file="css.jsp" %>
</head><body>
<%@include file="nav.jsp" %>

View File

@ -4,7 +4,7 @@
<html><head>
<title>I2P Router Console - config stats</title>
<link rel="stylesheet" href="default.css" type="text/css" />
<%@include file="css.jsp" %>
<script type="text/javascript">
function init()
{

View File

@ -4,7 +4,7 @@
<html><head>
<title>I2P Router Console - config tunnels</title>
<link rel="stylesheet" href="default.css" type="text/css" />
<%@include file="css.jsp" %>
</head><body>
<%@include file="nav.jsp" %>

View File

@ -4,7 +4,7 @@
<html><head>
<title>I2P Router Console - config update</title>
<link rel="stylesheet" href="default.css" type="text/css" />
<%@include file="css.jsp" %>
</head><body>
<%@include file="nav.jsp" %>

View File

@ -0,0 +1,20 @@
<%
/*
* This should be included inside <head>...</head>,
* as it sets the stylesheet.
*/
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
// the above will b0rk if the servlet engine has already flushed
// the response prior to including this file, so it should be
// near the top
if (request.getParameter("i2p.contextId") != null) {
session.setAttribute("i2p.contextId", request.getParameter("i2p.contextId"));
}
%>
<jsp:useBean class="net.i2p.router.web.CSSHelper" id="cssHelper" scope="request" />
<jsp:setProperty name="cssHelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<link href="<%=cssHelper.getTheme()%>console.css" rel="stylesheet" type="text/css" />

View File

@ -4,7 +4,7 @@
<html><head>
<title>I2P Router Console - graphs</title>
<link rel="stylesheet" href="default.css" type="text/css" />
<%@include file="css.jsp" %>
</head><body>
<%@include file="nav.jsp" %>

View File

@ -4,7 +4,7 @@
<html><head>
<title>I2P Router Console - help</title>
<link rel="stylesheet" href="default.css" type="text/css" />
<%@include file="css.jsp" %>
</head><body>
<%@include file="nav.jsp" %>

View File

@ -5,7 +5,7 @@
<html><head>
<title>I2P Router Console - home</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" href="default.css" type="text/css" />
<%@include file="css.jsp" %>
<link rel="shortcut icon" href="favicon.ico" />
</head><body>
<%

View File

@ -4,7 +4,7 @@
<html><head>
<title>I2P Router Console - job queue</title>
<link rel="stylesheet" href="default.css" type="text/css" />
<%@include file="css.jsp" %>
</head><body>
<%@include file="nav.jsp" %>

View File

@ -4,7 +4,7 @@
<html><head>
<title>I2P Router Console - logs</title>
<link rel="stylesheet" href="default.css" type="text/css" />
<%@include file="css.jsp" %>
</head><body>
<%@include file="nav.jsp" %>

View File

@ -1,15 +1,4 @@
<%@page import="java.io.File" %>
<% response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
// the above will b0rk if the servlet engine has already flushed
// the response prior to including nav.jsp, so nav should be
// near the top
if (request.getParameter("i2p.contextId") != null) {
session.setAttribute("i2p.contextId", request.getParameter("i2p.contextId"));
}%>
<div class="logo">
<a href="index.jsp"><img src="i2plogo.png" alt="Router Console" width="187" height="35" /></a><br />
</div>
@ -35,12 +24,10 @@
<a href="graphs.jsp">Graphs</a> |
<a href="oldstats.jsp">Stats</a> <!-- |
<a href="oldconsole.jsp">Internals</a> -->
<% } %>
<% }
// the following is unused and a candidate for removal
%>
<jsp:useBean class="net.i2p.router.web.NavHelper" id="navhelper" scope="request" />
<jsp:setProperty name="navhelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<jsp:getProperty name="navhelper" property="clientAppLinks" />
</div>
<jsp:useBean class="net.i2p.router.web.NoticeHelper" id="noticehelper" scope="request" />
<jsp:setProperty name="noticehelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<b><jsp:getProperty name="noticehelper" property="systemNotice" /></b>

View File

@ -4,7 +4,7 @@
<html><head>
<title>I2P Router Console - network database summary</title>
<link rel="stylesheet" href="default.css" type="text/css" />
<%@include file="css.jsp" %>
</head><body>
<%@include file="nav.jsp" %>

View File

@ -4,7 +4,7 @@
<html><head>
<title>I2P Router Console - internals</title>
<link rel="stylesheet" href="default.css" type="text/css" />
<%@include file="css.jsp" %>
</head><body>
<%@include file="nav.jsp" %>

View File

@ -4,7 +4,7 @@
<html><head>
<title>I2P Router Console - statistics</title>
<link rel="stylesheet" href="default.css" type="text/css" />
<%@include file="css.jsp" %>
</head><body>
<%@include file="nav.jsp" %>

View File

@ -4,7 +4,7 @@
<html><head>
<title>I2P Router Console - peer connections</title>
<link rel="stylesheet" href="default.css" type="text/css" />
<%@include file="css.jsp" %>
</head><body>
<%@include file="nav.jsp" %>

View File

@ -4,7 +4,7 @@
<html><head>
<title>I2P Router Console - peer profiles</title>
<link rel="stylesheet" href="default.css" type="text/css" />
<%@include file="css.jsp" %>
</head><body>
<%@include file="nav.jsp" %>

View File

@ -50,7 +50,7 @@
}
}
%>
<link rel="stylesheet" href="default.css" type="text/css" />
<%@include file="css.jsp" %>
</head>
<body style="margin: 0;">

View File

@ -4,7 +4,7 @@
<html><head>
<title>I2P Router Console - tunnel summary</title>
<link rel="stylesheet" href="default.css" type="text/css" />
<%@include file="css.jsp" %>
</head><body>
<%@include file="nav.jsp" %>

View File

@ -203,7 +203,7 @@
</delete>
</target>
<!-- one release only, then back to updaterWithJettyFixes -->
<target name="pkg" depends="distclean, updaterWithJettyFixesAndGeoIP, tarball, installer" />
<target name="pkg" depends="distclean, updaterWithJettyFixesAndGeoIP, preppkg, installer" />
<target name="pkgclean" depends="deletepkg-temp">
<delete>
<fileset dir="." includes="i2p.tar.bz2 install.jar i2pupdate.zip" />
@ -249,6 +249,7 @@
<copy file="installer/resources/eepget" todir="pkg-temp/" />
<copy file="installer/resources/i2prouter" todir="pkg-temp/" />
<copy file="installer/resources/i2prouter.bat" todir="pkg-temp/" />
<copy file="installer/resources/fixperms.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/" />
@ -315,6 +316,7 @@
<copy file="installer/lib/launch4j/lib/JGoodies.Looks.LICENSE.txt" tofile="pkg-temp/licenses/LICENSE-JGoodies-Looks.txt" />
<copy file="installer/lib/launch4j/lib/XStream.LICENSE.txt" tofile="pkg-temp/licenses/LICENSE-XStream.txt" />
</target>
<!-- this is no longer required, izpack 4.3.0 supports headless installs with java -jar i2pinstall.exe -console -->
<target name="tarball" depends="preppkg">
<tar compression="bzip2" destfile="i2p.tar.bz2">
<tarfileset dir="pkg-temp" includes="**/*" prefix="i2p" />
@ -369,6 +371,9 @@
<copy file="build/addressbook.war" todir="pkg-temp/webapps/" />
<!-- New readme_*.html files - For one release only -->
<copy file="readme_zh.html" todir="pkg-temp/docs/" />
<!-- CSS now in docs/, not in the .war -->
<copy file="apps/routerconsole/jsp/default.css" tofile="pkg-temp/docs/themes/console/console.css" />
<copy file="apps/routerconsole/jsp/default.css" tofile="pkg-temp/docs/themes/console/defCon1/console.css" />
</target>
<target name="prepupdateRouter" depends="buildrouter, deletepkg-temp">
<copy file="build/i2p.jar" todir="pkg-temp/lib/" />
@ -394,13 +399,14 @@
</target>
<target name="installer" depends="preppkg">
<taskdef name="izpack" classpath="${basedir}/installer/lib/izpack/standalone-compiler.jar" classname="com.izforge.izpack.ant.IzPackTask" />
<jar destfile="./pkg-temp/lib/copy.jar" basedir="./core/java/build/obj" includes="net/i2p/util/Copy.class net/i2p/util/FileUtil.class">
<mkdir dir="pkg-temp/installer" />
<jar destfile="./pkg-temp/installer/copy.jar" basedir="./core/java/build/obj" includes="net/i2p/util/Copy.class net/i2p/util/FileUtil.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/Delete.class net/i2p/util/FileUtil.class">
<jar destfile="./pkg-temp/installer/delete.jar" basedir="./core/java/build/obj" includes="net/i2p/util/Delete.class net/i2p/util/FileUtil.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/Exec.class">
<jar destfile="./pkg-temp/installer/exec.jar" basedir="./core/java/build/obj" includes="net/i2p/util/Exec.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}" />
@ -523,7 +529,7 @@
</copy>
</target>
<target name="updaterWithDesktopgui" depends="prepupdateWithDesktopgui,updater" />
<target name="pkgWithDesktopgui" depends="distclean, updaterWithDesktopgui, installerWithDesktopgui, tarball" />
<target name="pkgWithDesktopgui" depends="distclean, updaterWithDesktopgui, installerWithDesktopgui, preppkg" />
<target name="distWithDesktopgui" depends="pkgWithDesktopgui, javadoc" />
<target name="distcleanWithDesktopgui" depends="distclean">
<ant dir="apps/desktopgui" target="build_clean" />

View File

@ -45,7 +45,6 @@ Make the source tarball:
Until the build script gets this ability, you need to rename some files:
mv i2pinstall.exe i2pinstall-0.7.xx.exe
mv i2p.tar.bz2 i2pheadless-0.7.xx.tar.bz2
mv i2pupdate.zip i2pupdate-0.7.xx.zip
you probably don't need to rename i2pupdate.sud
@ -56,7 +55,6 @@ Generate hashes:
Generate PGP signatures:
gpg -b i2pinstall-0.7.xx.exe
gpg -b i2pheadless-0.7.xx.tar.bz2
gpg -b i2psource-0.7.xx.tar.bz2
gpg -b i2pupdate-0.7.xx.zip
gpg -b i2pupdate.sud

View File

@ -9,12 +9,40 @@
<author name="I2P" email="http://forum.i2p2.de/"/>
</authors>
<url>http://www.i2p2.de/</url>
<!-- use pack200 compression, saves about 33%
see http://java.sun.com/j2se/1.5.0/docs/guide/deployment/deployment-guide/pack200.html
However it makes the unpacked jars much larger...
For further testing...
<pack200 />
-->
<!-- adding this element will make the installer attempt to launch itself with administrator permissions,
but see http://www.nabble.com/Classpath-security-issues-on-Vista-td22456230.html
which says it isn't sufficient:
Just to let you know that I managed to identify and resolve the problem (in
case anyone else has it). The default installation directory for Vista is
under "Program Files" which is a "special" directory which can only be
written to (create sub-directories) by administrators. However, stupid
Vista downgrades an administrator to a normal user when the program is run
via the application shortcut menu. As you suggested, I added a script which
runs ICACLS which resolved the problem, i.e.
icacls %1 /grant Users:F /T > priv.log
The command needs to be run as a Process rather than as an executable tag in
order to pass $INSTALL_PATH as a parameter.
-->
<run-privileged condition="izpack.windowsinstall.vista|izpack.windowsinstall.7"/>
</info>
<guiprefs width="590" height="356" resizable="yes">
<laf name="liquid">
<os family="unix"/>
</laf>
<!-- full names, not iso3 codes -->
<modifier key="langDisplayType" value="native" />
</guiprefs>
<locale>
@ -24,11 +52,16 @@
<langpack iso3="cze"/>
<langpack iso3="dan"/>
<langpack iso3="deu"/>
<langpack iso3="ell"/>
<langpack iso3="fa"/>
<langpack iso3="fin"/>
<langpack iso3="fra"/>
<langpack iso3="glg"/>
<langpack iso3="hun"/>
<langpack iso3="ind"/>
<langpack iso3="ita"/>
<langpack iso3="jpn"/>
<langpack iso3="kor"/>
<langpack iso3="mys"/>
<langpack iso3="ned"/>
<langpack iso3="nor"/>
@ -41,6 +74,7 @@
<langpack iso3="svk"/>
<langpack iso3="swe"/>
<langpack iso3="tur"/>
<langpack iso3="twn"/>
<langpack iso3="ukr"/>
</locale>
@ -67,32 +101,51 @@
<pack name="Base" required="yes">
<description>Base installation files</description>
<fileset dir="pkg-temp" includes="**/*" targetdir="$INSTALL_PATH"/>
<!--
Do variable substitution in the wrapper.config and i2prouter files. See:
http://www.javalobby.org/forums/thread.jspa?threadID=15967&tstart=0
and the izpack docs for some guidance.
-->
<parsable targetfile="$INSTALL_PATH/wrapper.config" type="javaprop" />
<parsable targetfile="$INSTALL_PATH/i2prouter" type="shell" os="unix|mac" />
<!-- postinstall stuff for windows -->
<executable targetfile="$INSTALL_PATH/lib/copy.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
<executable targetfile="$INSTALL_PATH/installer/copy.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
<args><arg value="$INSTALL_PATH\lib\wrapper\win32\I2Psvc.exe" /><arg value="$INSTALL_PATH" /></args></executable>
<executable targetfile="$INSTALL_PATH/lib/copy.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
<executable targetfile="$INSTALL_PATH/installer/copy.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
<args><arg value="$INSTALL_PATH\lib\wrapper\win32\wrapper.dll" /><arg value="$INSTALL_PATH\lib" /></args></executable>
<executable targetfile="$INSTALL_PATH/lib/copy.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
<executable targetfile="$INSTALL_PATH/installer/copy.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
<args><arg value="$INSTALL_PATH\lib\wrapper\win32\wrapper.jar" /><arg value="$INSTALL_PATH\lib" /></args></executable>
<executable targetfile="$INSTALL_PATH/lib/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
<executable targetfile="$INSTALL_PATH/installer/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
<args><arg value="$INSTALL_PATH\i2prouter" /></args></executable>
<executable targetfile="$INSTALL_PATH/lib/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
<executable targetfile="$INSTALL_PATH/installer/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
<args><arg value="$INSTALL_PATH\install_i2p_service_unix" /></args></executable>
<executable targetfile="$INSTALL_PATH/lib/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
<executable targetfile="$INSTALL_PATH/installer/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
<args><arg value="$INSTALL_PATH\install-headless.txt" /></args></executable>
<executable targetfile="$INSTALL_PATH/lib/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
<executable targetfile="$INSTALL_PATH/installer/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
<args><arg value="$INSTALL_PATH\osid" /></args></executable>
<executable targetfile="$INSTALL_PATH/lib/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
<executable targetfile="$INSTALL_PATH/installer/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
<args><arg value="$INSTALL_PATH\postinstall.sh" /></args></executable>
<executable targetfile="$INSTALL_PATH/lib/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
<executable targetfile="$INSTALL_PATH/installer/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
<args><arg value="$INSTALL_PATH\postinstall.bat" /></args></executable>
<executable targetfile="$INSTALL_PATH/lib/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
<executable targetfile="$INSTALL_PATH/installer/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
<args><arg value="$INSTALL_PATH\uninstall_i2p_service_unix" /></args></executable>
<executable targetfile="$INSTALL_PATH/lib/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
<executable targetfile="$INSTALL_PATH/installer/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
<args><arg value="$INSTALL_PATH\lib\wrapper" /></args></executable>
<!-- workaround for vista permission problems - see comments above -->
<executable targetfile="$INSTALL_PATH/fixperms.bat" type="bin" stage="postinstall" keep="true" failure="warn"
condition="izpack.windowsinstall.vista|izpack.windowsinstall.7" >
<args><arg value="$INSTALL_PATH" /></args>
</executable>
<!-- else delete it -->
<executable targetfile="$INSTALL_PATH/installer/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"
condition="izpack.windowsinstall.xp|izpack.windowsinstall.2003" >
<args><arg value="$INSTALL_PATH\fixperms.bat" /></args>
</executable>
<!--
<executable targetfile="$INSTALL_PATH/lib/exec.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
<executable targetfile="$INSTALL_PATH/installer/exec.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
<args><arg value="$INSTALL_PATH" /><arg value="$INSTALL_PATH\I2Psvc.exe" /><arg value="-c" /><arg value="$INSTALL_PATH\wrapper.config" /></args></executable>
-->

View File

@ -0,0 +1,11 @@
:: Fix Vista permission problems
:: From http://www.nabble.com/Classpath-security-issues-on-Vista-td22456230.html
::
:: 'echo Y' to get past the 'are you sure' question...
:: cacls requires it on XP, icacls doesnt appear so, but can't hurt
:: F : full control
:: /c : continue on error
:: /q : quiet
:: /t : recursive
::
echo Y|icacls %1 /grant Users:F /c /t > %1%\fixperms.log

View File

@ -8,6 +8,10 @@
# if you have changed the default location set in the
# wrapper configuration file.
#
# Note that (percent)INSTALL_PATH and (percent)SYSTEM_java_io_tmpdir
# should have been replaced by
# the izpack installer. If you did not run the installer,
# replace them with the appropriate path.
#-----------------------------------------------------------------------------
# These settings can be modified to fit the needs of your application
@ -17,15 +21,15 @@ APP_NAME="i2p"
APP_LONG_NAME="I2P Service"
# Wrapper
WRAPPER_CMD="./i2psvc"
WRAPPER_CONF="wrapper.config"
WRAPPER_CMD="%INSTALL_PATH/i2psvc"
WRAPPER_CONF="%INSTALL_PATH/wrapper.config"
# Priority at which to run the wrapper. See "man nice" for valid priorities.
# nice is only used if a priority is specified.
PRIORITY=
# Location of the pid file.
PIDDIR="."
PIDDIR="%SYSTEM_java_io_tmpdir"
# If uncommented, causes the Wrapper to be shutdown using an anchor file.
# When launched with the 'start' command, it will also ignore all INT and

View File

@ -73,6 +73,7 @@ rm -rf ./lib/wrapper
rm -f ./lib/*.dll
rm -f ./*.bat
rm -f ./*.exe
rm -rf ./installer
./i2prouter start
exit 0

View File

@ -11,6 +11,12 @@
# with the runplain.sh script on Linux. Use the 'restartable'
# icon on Windows or the i2prouter script on Linux to run the wrapper.
#
# NOTE - The izpack installer performs variable subsitiution on this
# file upon installation. If you did not use izpack, you must
# find and replace all instances of (dollar)INSTALL_PATH and
# (dollar)SYSTEM_java_io_tmpdir with appropriate values
# (perhaps . and /var/tmp, respectively)
#
#********************************************************************
# Java Application
wrapper.java.command=java
@ -23,44 +29,22 @@ wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp
# Java Classpath (include wrapper.jar) Add class path elements as
# needed starting from 1
# i2p sdk, public domain/BSD/Cryptix
wrapper.java.classpath.1=lib/i2p.jar
# router, depends on i2p.jar, public domain
wrapper.java.classpath.2=lib/router.jar
# compiled jbigi libraries, contains static libGMP, lgpl
wrapper.java.classpath.3=lib/jbigi.jar
# sam bridge, public domain (depends on i2p.jar)
wrapper.java.classpath.4=lib/sam.jar
# ministreaming lib -interfaces for streaming, BSD (depends on i2p.jar)
wrapper.java.classpath.5=lib/mstreaming.jar
# full streaming lib, public domain (depends on mstreaming.jar, i2p.jar)
wrapper.java.classpath.6=lib/streaming.jar
# router console, public domain (depends on i2p.jar, router.jar)
wrapper.java.classpath.7=lib/routerconsole.jar
# i2ptunnel, GPL (depends on mstreaming.jar, i2p.jar)
wrapper.java.classpath.8=lib/i2ptunnel.jar
# jetty libraries (and dependencies), apache licensed
wrapper.java.classpath.9=lib/org.mortbay.jetty.jar
wrapper.java.classpath.10=lib/javax.servlet.jar
wrapper.java.classpath.11=lib/jasper-compiler.jar
wrapper.java.classpath.12=lib/jasper-runtime.jar
wrapper.java.classpath.13=lib/commons-logging.jar
wrapper.java.classpath.14=lib/commons-el.jar
# java service wrapper, BSD
wrapper.java.classpath.15=lib/wrapper.jar
# systray, LGPL
wrapper.java.classpath.16=lib/systray.jar
wrapper.java.classpath.17=lib/systray4j.jar
# BOB
wrapper.java.classpath.18=lib/BOB.jar
# desktopgui
wrapper.java.classpath.19=lib/appframework.jar
wrapper.java.classpath.20=lib/swing-worker.jar
wrapper.java.classpath.21=lib/desktopgui.jar
#
# Doing it this way means we can add new apps without asking people
# to update their wrapper.config.
# The downside is that we lose control over classpath order,
# This is fine for new installs (where the uninstall jars
# copy.jar, delete.jar, and exec.jar containing duplicate FileUtil
# classes, or all the classes of i2p.jar, are in a different directory).
# Be sure there are no other duplicate classes.
#
wrapper.java.classpath.1=$INSTALL_PATH/lib/*.jar
# uncomment this to use the system classpath as well (e.g. to get tools.jar)
# wrapper.java.classpath.2=%CLASSPATH%
# Java Library Path (location of Wrapper.DLL or libwrapper.so)
wrapper.java.library.path.1=.
wrapper.java.library.path.2=lib
wrapper.java.library.path.1=$INSTALL_PATH
wrapper.java.library.path.2=$INSTALL_PATH/lib
# Java Additional Parameters
wrapper.java.additional.1=-DloggerFilenameOverride=logs/log-router-@.txt
@ -153,7 +137,11 @@ wrapper.ping.timeout=605
wrapper.use_system_time=false
# pid file for the JVM
wrapper.java.pidfile=routerjvm.pid
# If you plan to have multiple wrappers running on the same machine,
# you should copy this file, change the location or file name,
# and edit the i2prouter script to change the WRAPPER_CONF setting
# to point to the new wrapper.config location.
wrapper.java.pidfile=$SYSTEM_java_io_tmpdir/routerjvm.pid
# pid file for the service monitoring the JVM
#
# From i2prouter:
@ -163,7 +151,8 @@ wrapper.java.pidfile=routerjvm.pid
# PIDFILE="$PIDDIR/$APP_NAME.pid"
#
# This means i2prouter looks for './i2p.pid'.
wrapper.pidfile=i2p.pid
# See comments above for wrapper.java.pidfile
wrapper.pidfile=$SYSTEM_java_io_tmpdir/i2p.pid
#********************************************************************
# Wrapper NT Service Properties

View File

@ -95,9 +95,10 @@ class RouterWatchdog implements Runnable {
_log.error("Memory: " + DataHelper.formatSize(used) + '/' + DataHelper.formatSize(max));
if (_consecutiveErrors == 1) {
_log.log(Log.CRIT, "Router appears hung, or there is severe network congestion. Watchdog starts barking!");
// This might work on linux...
// This works on linux...
// It won't on windows, and we can't call i2prouter.bat either, it does something
// completely different...
if (System.getProperty("wrapper.version") != null && !System.getProperty("os.name").startsWith("Win")) {
ShellCommand sc = new ShellCommand();
boolean success = sc.executeSilentAndWaitTimed("./i2prouter dump", 10);
if (success)
@ -105,6 +106,7 @@ class RouterWatchdog implements Runnable {
}
}
}
}
public void run() {
while (true) {