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 Headless I2P installation instructions
1) tar xjf i2p.tar.bz2 (you've already done this) 1) java -jar i2pinstall.exe -console (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)
If you're having trouble, swing by http://forum.i2p.net/, check the This will run the installer in text mode, including running the postinstall.sh
website at http://www.i2p.net/, or get on irc://irc.freenode.net/#i2p 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: To run I2P explicitly:
(*nix): sh i2prouter start (*nix): sh i2prouter start

View File

@ -6,16 +6,20 @@ and package up the appropriate installer by running:
ant pkg ant pkg
This will produce a few key files: This will produce a few key files:
* i2p.tar.bz2: the headless installation * install.jar: the GUI and console installer
* install.jar: the GUI installer * i2pinstall.exe: the GUI and console installer wrapped for cross-platform execution
* i2pupdate.zip: the update package * i2pupdate.zip: the update package
From there, you can follow the headless installation instructions From there, you can run the headless (console mode) installer:
with the headless installer, run the GUI installer, or deploy java -jar i2pinstall.exe -console
the update into an existing installation.
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/ You will need to have ant installed from http://ant.apache.org/
(1.5 or newer) (1.7.0 or newer)
Supported JVMs: Supported JVMs:
Windows: Latest available from http://java.sun.com/ (1.5+ supported) 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/) Forms were created using Abeille Forms Designer (https://abeille.dev.java.net/)
Izpack: Izpack 4.3.0:
See licenses/LICENSE-Apache1.1.txt Copyright (c) 2001-2008 Julien Ponge
See licenses/LICENSE-Apache2.0.txt

View File

@ -75,8 +75,9 @@
<ant target="war" /> <ant target="war" />
</target> </target>
<target name="war" depends="precompilejsp"> <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" <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> </war>
</target> </target>
<target name="precompilejsp" unless="precompilejsp.uptodate"> <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> <html><head>
<title>I2P Router Console - config networking</title> <title>I2P Router Console - config networking</title>
<link rel="stylesheet" href="default.css" type="text/css" /> <%@include file="css.jsp" %>
</head><body> </head><body>
<%@include file="nav.jsp" %> <%@include file="nav.jsp" %>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -5,7 +5,7 @@
<html><head> <html><head>
<title>I2P Router Console - home</title> <title>I2P Router Console - home</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <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" /> <link rel="shortcut icon" href="favicon.ico" />
</head><body> </head><body>
<% <%

View File

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

View File

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

View File

@ -1,15 +1,4 @@
<%@page import="java.io.File" %> <%@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"> <div class="logo">
<a href="index.jsp"><img src="i2plogo.png" alt="Router Console" width="187" height="35" /></a><br /> <a href="index.jsp"><img src="i2plogo.png" alt="Router Console" width="187" height="35" /></a><br />
</div> </div>
@ -35,12 +24,10 @@
<a href="graphs.jsp">Graphs</a> | <a href="graphs.jsp">Graphs</a> |
<a href="oldstats.jsp">Stats</a> <!-- | <a href="oldstats.jsp">Stats</a> <!-- |
<a href="oldconsole.jsp">Internals</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:useBean class="net.i2p.router.web.NavHelper" id="navhelper" scope="request" />
<jsp:setProperty name="navhelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" /> <jsp:setProperty name="navhelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
<jsp:getProperty name="navhelper" property="clientAppLinks" /> <jsp:getProperty name="navhelper" property="clientAppLinks" />
</div> </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> <html><head>
<title>I2P Router Console - network database summary</title> <title>I2P Router Console - network database summary</title>
<link rel="stylesheet" href="default.css" type="text/css" /> <%@include file="css.jsp" %>
</head><body> </head><body>
<%@include file="nav.jsp" %> <%@include file="nav.jsp" %>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -203,7 +203,7 @@
</delete> </delete>
</target> </target>
<!-- one release only, then back to updaterWithJettyFixes --> <!-- 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"> <target name="pkgclean" depends="deletepkg-temp">
<delete> <delete>
<fileset dir="." includes="i2p.tar.bz2 install.jar i2pupdate.zip" /> <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/eepget" todir="pkg-temp/" />
<copy file="installer/resources/i2prouter" todir="pkg-temp/" /> <copy file="installer/resources/i2prouter" todir="pkg-temp/" />
<copy file="installer/resources/i2prouter.bat" 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/i2ptunnel.config" todir="pkg-temp/" />
<!-- <copy file="installer/resources/install_i2p_service_unix" 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/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/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" /> <copy file="installer/lib/launch4j/lib/XStream.LICENSE.txt" tofile="pkg-temp/licenses/LICENSE-XStream.txt" />
</target> </target>
<!-- this is no longer required, izpack 4.3.0 supports headless installs with java -jar i2pinstall.exe -console -->
<target name="tarball" depends="preppkg"> <target name="tarball" depends="preppkg">
<tar compression="bzip2" destfile="i2p.tar.bz2"> <tar compression="bzip2" destfile="i2p.tar.bz2">
<tarfileset dir="pkg-temp" includes="**/*" prefix="i2p" /> <tarfileset dir="pkg-temp" includes="**/*" prefix="i2p" />
@ -369,6 +371,9 @@
<copy file="build/addressbook.war" todir="pkg-temp/webapps/" /> <copy file="build/addressbook.war" todir="pkg-temp/webapps/" />
<!-- New readme_*.html files - For one release only --> <!-- New readme_*.html files - For one release only -->
<copy file="readme_zh.html" todir="pkg-temp/docs/" /> <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>
<target name="prepupdateRouter" depends="buildrouter, deletepkg-temp"> <target name="prepupdateRouter" depends="buildrouter, deletepkg-temp">
<copy file="build/i2p.jar" todir="pkg-temp/lib/" /> <copy file="build/i2p.jar" todir="pkg-temp/lib/" />
@ -394,13 +399,14 @@
</target> </target>
<target name="installer" depends="preppkg"> <target name="installer" depends="preppkg">
<taskdef name="izpack" classpath="${basedir}/installer/lib/izpack/standalone-compiler.jar" classname="com.izforge.izpack.ant.IzPackTask" /> <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> <manifest><attribute name="Main-Class" value="net.i2p.util.Copy" /></manifest>
</jar> </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> <manifest><attribute name="Main-Class" value="net.i2p.util.Delete" /></manifest>
</jar> </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> <manifest><attribute name="Main-Class" value="net.i2p.util.Exec" /></manifest>
</jar> </jar>
<izpack input="${basedir}/installer/install.xml" output="${basedir}/install.jar" installerType="standard" basedir="${basedir}" /> <izpack input="${basedir}/installer/install.xml" output="${basedir}/install.jar" installerType="standard" basedir="${basedir}" />
@ -523,7 +529,7 @@
</copy> </copy>
</target> </target>
<target name="updaterWithDesktopgui" depends="prepupdateWithDesktopgui,updater" /> <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="distWithDesktopgui" depends="pkgWithDesktopgui, javadoc" />
<target name="distcleanWithDesktopgui" depends="distclean"> <target name="distcleanWithDesktopgui" depends="distclean">
<ant dir="apps/desktopgui" target="build_clean" /> <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: Until the build script gets this ability, you need to rename some files:
mv i2pinstall.exe i2pinstall-0.7.xx.exe 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 mv i2pupdate.zip i2pupdate-0.7.xx.zip
you probably don't need to rename i2pupdate.sud you probably don't need to rename i2pupdate.sud
@ -56,7 +55,6 @@ Generate hashes:
Generate PGP signatures: Generate PGP signatures:
gpg -b i2pinstall-0.7.xx.exe 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 i2psource-0.7.xx.tar.bz2
gpg -b i2pupdate-0.7.xx.zip gpg -b i2pupdate-0.7.xx.zip
gpg -b i2pupdate.sud gpg -b i2pupdate.sud

View File

@ -9,12 +9,40 @@
<author name="I2P" email="http://forum.i2p2.de/"/> <author name="I2P" email="http://forum.i2p2.de/"/>
</authors> </authors>
<url>http://www.i2p2.de/</url> <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> </info>
<guiprefs width="590" height="356" resizable="yes"> <guiprefs width="590" height="356" resizable="yes">
<laf name="liquid"> <laf name="liquid">
<os family="unix"/> <os family="unix"/>
</laf> </laf>
<!-- full names, not iso3 codes -->
<modifier key="langDisplayType" value="native" />
</guiprefs> </guiprefs>
<locale> <locale>
@ -24,11 +52,16 @@
<langpack iso3="cze"/> <langpack iso3="cze"/>
<langpack iso3="dan"/> <langpack iso3="dan"/>
<langpack iso3="deu"/> <langpack iso3="deu"/>
<langpack iso3="ell"/>
<langpack iso3="fa"/>
<langpack iso3="fin"/> <langpack iso3="fin"/>
<langpack iso3="fra"/> <langpack iso3="fra"/>
<langpack iso3="glg"/>
<langpack iso3="hun"/> <langpack iso3="hun"/>
<langpack iso3="ind"/>
<langpack iso3="ita"/> <langpack iso3="ita"/>
<langpack iso3="jpn"/> <langpack iso3="jpn"/>
<langpack iso3="kor"/>
<langpack iso3="mys"/> <langpack iso3="mys"/>
<langpack iso3="ned"/> <langpack iso3="ned"/>
<langpack iso3="nor"/> <langpack iso3="nor"/>
@ -41,6 +74,7 @@
<langpack iso3="svk"/> <langpack iso3="svk"/>
<langpack iso3="swe"/> <langpack iso3="swe"/>
<langpack iso3="tur"/> <langpack iso3="tur"/>
<langpack iso3="twn"/>
<langpack iso3="ukr"/> <langpack iso3="ukr"/>
</locale> </locale>
@ -67,32 +101,51 @@
<pack name="Base" required="yes"> <pack name="Base" required="yes">
<description>Base installation files</description> <description>Base installation files</description>
<fileset dir="pkg-temp" includes="**/*" targetdir="$INSTALL_PATH"/> <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 --> <!-- 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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> <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 # if you have changed the default location set in the
# wrapper configuration file. # 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 # These settings can be modified to fit the needs of your application
@ -17,15 +21,15 @@ APP_NAME="i2p"
APP_LONG_NAME="I2P Service" APP_LONG_NAME="I2P Service"
# Wrapper # Wrapper
WRAPPER_CMD="./i2psvc" WRAPPER_CMD="%INSTALL_PATH/i2psvc"
WRAPPER_CONF="wrapper.config" WRAPPER_CONF="%INSTALL_PATH/wrapper.config"
# Priority at which to run the wrapper. See "man nice" for valid priorities. # Priority at which to run the wrapper. See "man nice" for valid priorities.
# nice is only used if a priority is specified. # nice is only used if a priority is specified.
PRIORITY= PRIORITY=
# Location of the pid file. # Location of the pid file.
PIDDIR="." PIDDIR="%SYSTEM_java_io_tmpdir"
# If uncommented, causes the Wrapper to be shutdown using an anchor file. # 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 # 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 ./lib/*.dll
rm -f ./*.bat rm -f ./*.bat
rm -f ./*.exe rm -f ./*.exe
rm -rf ./installer
./i2prouter start ./i2prouter start
exit 0 exit 0

View File

@ -11,6 +11,12 @@
# with the runplain.sh script on Linux. Use the 'restartable' # with the runplain.sh script on Linux. Use the 'restartable'
# icon on Windows or the i2prouter script on Linux to run the wrapper. # 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 # Java Application
wrapper.java.command=java 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 # Java Classpath (include wrapper.jar) Add class path elements as
# needed starting from 1 # needed starting from 1
# i2p sdk, public domain/BSD/Cryptix #
wrapper.java.classpath.1=lib/i2p.jar # Doing it this way means we can add new apps without asking people
# router, depends on i2p.jar, public domain # to update their wrapper.config.
wrapper.java.classpath.2=lib/router.jar # The downside is that we lose control over classpath order,
# compiled jbigi libraries, contains static libGMP, lgpl # This is fine for new installs (where the uninstall jars
wrapper.java.classpath.3=lib/jbigi.jar # copy.jar, delete.jar, and exec.jar containing duplicate FileUtil
# sam bridge, public domain (depends on i2p.jar) # classes, or all the classes of i2p.jar, are in a different directory).
wrapper.java.classpath.4=lib/sam.jar # Be sure there are no other duplicate classes.
# ministreaming lib -interfaces for streaming, BSD (depends on i2p.jar) #
wrapper.java.classpath.5=lib/mstreaming.jar wrapper.java.classpath.1=$INSTALL_PATH/lib/*.jar
# full streaming lib, public domain (depends on mstreaming.jar, i2p.jar) # uncomment this to use the system classpath as well (e.g. to get tools.jar)
wrapper.java.classpath.6=lib/streaming.jar # wrapper.java.classpath.2=%CLASSPATH%
# 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
# Java Library Path (location of Wrapper.DLL or libwrapper.so) # Java Library Path (location of Wrapper.DLL or libwrapper.so)
wrapper.java.library.path.1=. wrapper.java.library.path.1=$INSTALL_PATH
wrapper.java.library.path.2=lib wrapper.java.library.path.2=$INSTALL_PATH/lib
# Java Additional Parameters # Java Additional Parameters
wrapper.java.additional.1=-DloggerFilenameOverride=logs/log-router-@.txt wrapper.java.additional.1=-DloggerFilenameOverride=logs/log-router-@.txt
@ -153,7 +137,11 @@ wrapper.ping.timeout=605
wrapper.use_system_time=false wrapper.use_system_time=false
# pid file for the JVM # 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 # pid file for the service monitoring the JVM
# #
# From i2prouter: # From i2prouter:
@ -163,7 +151,8 @@ wrapper.java.pidfile=routerjvm.pid
# PIDFILE="$PIDDIR/$APP_NAME.pid" # PIDFILE="$PIDDIR/$APP_NAME.pid"
# #
# This means i2prouter looks for './i2p.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 # Wrapper NT Service Properties

View File

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