forked from I2P_Developers/i2p.i2p
Addressbook build changes (ticket #1966):
- Build as jar, not war - Put empty war in updater - Move Servlet starter to SusiDNS - Skip war in RouterConsoleRunner
This commit is contained in:
@ -9,6 +9,8 @@
|
|||||||
<property name="javac.compilerargs" value="" />
|
<property name="javac.compilerargs" value="" />
|
||||||
<property name="javac.version" value="1.7" />
|
<property name="javac.version" value="1.7" />
|
||||||
|
|
||||||
|
<target name="all" depends="jar, emptyWar"/>
|
||||||
|
|
||||||
<target name="init">
|
<target name="init">
|
||||||
<mkdir dir="${build}"/>
|
<mkdir dir="${build}"/>
|
||||||
<mkdir dir="${dist}"/>
|
<mkdir dir="${dist}"/>
|
||||||
@ -36,24 +38,10 @@
|
|||||||
</depend>
|
</depend>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="dependServlet" if="depend.available">
|
<target name="compile" depends="init, depend, warUpToDate">
|
||||||
<depend
|
|
||||||
cache="../../build"
|
|
||||||
srcdir="${src}"
|
|
||||||
destdir="${build}" >
|
|
||||||
<!-- Depend on classes instead of jars where available -->
|
|
||||||
<classpath>
|
|
||||||
<pathelement location="../../core/java/build/obj" />
|
|
||||||
<pathelement location="../jetty/jettylib/javax.servlet.jar" />
|
|
||||||
</classpath>
|
|
||||||
</depend>
|
|
||||||
</target>
|
|
||||||
|
|
||||||
<target name="compile" depends="init, depend">
|
|
||||||
<javac debug="true" deprecation="on" source="${javac.version}" target="${javac.version}"
|
<javac debug="true" deprecation="on" source="${javac.version}" target="${javac.version}"
|
||||||
includeAntRuntime="false"
|
includeAntRuntime="false"
|
||||||
srcdir="${src}" destdir="${build}"
|
srcdir="${src}" destdir="${build}">
|
||||||
excludes="net/i2p/addressbook/Servlet.java">
|
|
||||||
<compilerarg line="${javac.compilerargs}" />
|
<compilerarg line="${javac.compilerargs}" />
|
||||||
<classpath>
|
<classpath>
|
||||||
<pathelement location="../../core/java/build/i2p.jar" />
|
<pathelement location="../../core/java/build/i2p.jar" />
|
||||||
@ -61,20 +49,6 @@
|
|||||||
</javac>
|
</javac>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="compileServlet" depends="init, dependServlet, compile">
|
|
||||||
<javac debug="true" deprecation="on" source="${javac.version}" target="${javac.version}"
|
|
||||||
includeAntRuntime="false"
|
|
||||||
srcdir="${src}" destdir="${build}"
|
|
||||||
includes="net/i2p/addressbook/Servlet.java">
|
|
||||||
<compilerarg line="${javac.compilerargs}" />
|
|
||||||
<classpath>
|
|
||||||
<pathelement location="../../core/java/build/i2p.jar" />
|
|
||||||
<pathelement location="../jetty/jettylib/javax.servlet.jar" />
|
|
||||||
</classpath>
|
|
||||||
</javac>
|
|
||||||
</target>
|
|
||||||
|
|
||||||
<!-- unused for now (except for Android), as we oddly ship addressbook as a .war -->
|
|
||||||
<target name="jar" depends="compile, changes">
|
<target name="jar" depends="compile, changes">
|
||||||
<!-- set if unset -->
|
<!-- set if unset -->
|
||||||
<property name="workspace.changes.tr" value="" />
|
<property name="workspace.changes.tr" value="" />
|
||||||
@ -92,27 +66,12 @@
|
|||||||
</jar>
|
</jar>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="war" depends="compileServlet, changes, warUpToDate" unless="war.uptodate">
|
<target name="emptyWar" depends="init">
|
||||||
<mkdir dir="${dist}/tmp"/>
|
<jar destfile="${dist}/${war}" >
|
||||||
<mkdir dir="${dist}/tmp/WEB-INF"/>
|
|
||||||
<mkdir dir="${dist}/tmp/WEB-INF/classes"/>
|
|
||||||
<copy todir="${dist}/tmp/WEB-INF/classes">
|
|
||||||
<fileset dir="${build}"/>
|
|
||||||
</copy>
|
|
||||||
<!-- set if unset -->
|
|
||||||
<property name="workspace.changes.tr" value="" />
|
|
||||||
<war basedir="${dist}/tmp" webxml="web.xml" destfile="${dist}/${war}">
|
|
||||||
<manifest>
|
<manifest>
|
||||||
<attribute name="Implementation-Version" value="${full.version}" />
|
<attribute name="Note" value="Intentionally empty" />
|
||||||
<attribute name="Built-By" value="${build.built-by}" />
|
|
||||||
<attribute name="Build-Date" value="${build.timestamp}" />
|
|
||||||
<attribute name="Base-Revision" value="${workspace.version}" />
|
|
||||||
<attribute name="Workspace-Changes" value="${workspace.changes.tr}" />
|
|
||||||
<attribute name="X-Compile-Source-JDK" value="${javac.version}" />
|
|
||||||
<attribute name="X-Compile-Target-JDK" value="${javac.version}" />
|
|
||||||
</manifest>
|
</manifest>
|
||||||
</war>
|
</jar>
|
||||||
<delete dir="${dist}/tmp"/>
|
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="warUpToDate">
|
<target name="warUpToDate">
|
||||||
|
@ -1,38 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE web-app
|
|
||||||
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
|
|
||||||
"http://java.sun.com/j2ee/dtds/web-app_2.2.dtd">
|
|
||||||
|
|
||||||
<web-app>
|
|
||||||
<filter>
|
|
||||||
<filter-name>XSSFilter</filter-name>
|
|
||||||
<filter-class>net.i2p.servlet.filters.XSSFilter</filter-class>
|
|
||||||
</filter>
|
|
||||||
<filter-mapping>
|
|
||||||
<filter-name>XSSFilter</filter-name>
|
|
||||||
<url-pattern>/*</url-pattern>
|
|
||||||
</filter-mapping>
|
|
||||||
|
|
||||||
<servlet>
|
|
||||||
<servlet-name>addressbook</servlet-name>
|
|
||||||
<servlet-class>net.i2p.addressbook.Servlet</servlet-class>
|
|
||||||
<init-param>
|
|
||||||
<param-name>home</param-name>
|
|
||||||
<param-value>./addressbook</param-value>
|
|
||||||
</init-param>
|
|
||||||
<load-on-startup>1</load-on-startup>
|
|
||||||
</servlet>
|
|
||||||
|
|
||||||
<servlet-mapping>
|
|
||||||
<servlet-name>addressbook</servlet-name>
|
|
||||||
<url-pattern>/*</url-pattern>
|
|
||||||
</servlet-mapping>
|
|
||||||
|
|
||||||
<!-- this webapp doesn't actually use sessions or cookies -->
|
|
||||||
<session-config>
|
|
||||||
<session-timeout>30</session-timeout>
|
|
||||||
<cookie-config>
|
|
||||||
<http-only>true</http-only>
|
|
||||||
</cookie-config>
|
|
||||||
</session-config>
|
|
||||||
</web-app>
|
|
@ -720,7 +720,13 @@ public class RouterConsoleRunner implements RouterApp {
|
|||||||
for (int i = 0; i < fileNames.length; i++) {
|
for (int i = 0; i < fileNames.length; i++) {
|
||||||
String appName = fileNames[i].substring(0, fileNames[i].lastIndexOf(".war"));
|
String appName = fileNames[i].substring(0, fileNames[i].lastIndexOf(".war"));
|
||||||
String enabled = props.getProperty(PREFIX + appName + ENABLED);
|
String enabled = props.getProperty(PREFIX + appName + ENABLED);
|
||||||
if (! "false".equals(enabled)) {
|
if (appName.equals("addressbook")) {
|
||||||
|
// addressbook.war is now empty, thread is started by SusiDNS
|
||||||
|
if (enabled != null) {
|
||||||
|
props.remove(PREFIX + "addressbook" + ENABLED);
|
||||||
|
rewrite = true;
|
||||||
|
}
|
||||||
|
} else if (! "false".equals(enabled)) {
|
||||||
try {
|
try {
|
||||||
String path = new File(dir, fileNames[i]).getCanonicalPath();
|
String path = new File(dir, fileNames[i]).getCanonicalPath();
|
||||||
WebAppStarter.startWebApp(_context, chColl, appName, path);
|
WebAppStarter.startWebApp(_context, chColl, appName, path);
|
||||||
|
@ -13,6 +13,22 @@
|
|||||||
</filter-mapping>
|
</filter-mapping>
|
||||||
|
|
||||||
<display-name>susidns</display-name>
|
<display-name>susidns</display-name>
|
||||||
|
|
||||||
|
<servlet>
|
||||||
|
<servlet-name>addressbook-runner</servlet-name>
|
||||||
|
<servlet-class>net.i2p.addressbook.servlet.Servlet</servlet-class>
|
||||||
|
<init-param>
|
||||||
|
<param-name>home</param-name>
|
||||||
|
<param-value>./addressbook</param-value>
|
||||||
|
</init-param>
|
||||||
|
<load-on-startup>1</load-on-startup>
|
||||||
|
</servlet>
|
||||||
|
|
||||||
|
<servlet-mapping>
|
||||||
|
<servlet-name>addressbook-runner</servlet-name>
|
||||||
|
<url-pattern>/addressbook-runner</url-pattern>
|
||||||
|
</servlet-mapping>
|
||||||
|
|
||||||
<!-- precompiled servlets -->
|
<!-- precompiled servlets -->
|
||||||
|
|
||||||
<!-- non-.jsp URLs -->
|
<!-- non-.jsp URLs -->
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
<pathelement location="${lib}/jetty-util.jar" />
|
<pathelement location="${lib}/jetty-util.jar" />
|
||||||
<pathelement location="${ant.home}/lib/ant.jar" />
|
<pathelement location="${ant.home}/lib/ant.jar" />
|
||||||
<pathelement location="../../../core/java/build/i2p.jar" />
|
<pathelement location="../../../core/java/build/i2p.jar" />
|
||||||
|
<pathelement location="../../addressbook/dist/addressbook.jar" />
|
||||||
</path>
|
</path>
|
||||||
|
|
||||||
<property name="javac.compilerargs" value="" />
|
<property name="javac.compilerargs" value="" />
|
||||||
|
@ -19,11 +19,10 @@
|
|||||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package net.i2p.addressbook;
|
package net.i2p.addressbook.servlet;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
import java.util.Random;
|
|
||||||
|
|
||||||
import javax.servlet.ServletConfig;
|
import javax.servlet.ServletConfig;
|
||||||
import javax.servlet.ServletException;
|
import javax.servlet.ServletException;
|
||||||
@ -31,12 +30,15 @@ import javax.servlet.http.HttpServlet;
|
|||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
|
import net.i2p.addressbook.DaemonThread;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A wrapper for addressbook to allow it to be started as a web application.
|
* A wrapper for addressbook to allow it to be started as a web application.
|
||||||
*
|
*
|
||||||
* This was a GenericServlet, we make it an HttpServlet solely to provide a hook
|
* This was a GenericServlet, we make it an HttpServlet solely to provide a
|
||||||
* for SusiDNS to wake us up when the subscription list changes.
|
* simple page to display status.
|
||||||
*
|
*
|
||||||
|
* @since 0.9.30 moved from addressbook to SusiDNS
|
||||||
* @author Ragnarok
|
* @author Ragnarok
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@ -48,8 +50,7 @@ public class Servlet extends HttpServlet {
|
|||||||
//private static final String PROP_NONCE = "addressbook.nonce";
|
//private static final String PROP_NONCE = "addressbook.nonce";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Hack to allow susidns to kick the daemon when the subscription list changes.
|
* Simple output to verify that the addressbook servlet is running.
|
||||||
* URL must be /addressbook/ with wakeup param set, and nonce param set from system property.
|
|
||||||
*
|
*
|
||||||
* (non-Javadoc)
|
* (non-Javadoc)
|
||||||
* see javax.servlet.Servlet#service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
|
* see javax.servlet.Servlet#service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
|
@ -0,0 +1,8 @@
|
|||||||
|
<html>
|
||||||
|
<body>
|
||||||
|
<p>
|
||||||
|
The servlet that starts the addressbook DaemonThread.
|
||||||
|
Moved from addressbook to SusiDNS in 0.9.30.
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
18
build.xml
18
build.xml
@ -310,7 +310,7 @@
|
|||||||
<copy file="apps/susimail/susimail.war" todir="build/" />
|
<copy file="apps/susimail/susimail.war" todir="build/" />
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="buildSusiDNS" depends="buildCore, buildJetty, buildImagegen" >
|
<target name="buildSusiDNS" depends="buildCore, buildJetty, buildImagegen, buildAddressbook" >
|
||||||
<ant dir="apps/susidns/src" target="all" />
|
<ant dir="apps/susidns/src" target="all" />
|
||||||
<copy file="apps/susidns/src/susidns.war" todir="build/" />
|
<copy file="apps/susidns/src/susidns.war" todir="build/" />
|
||||||
</target>
|
</target>
|
||||||
@ -332,8 +332,10 @@
|
|||||||
<copy file="apps/addressbook/dist/addressbook.jar" todir="build/" />
|
<copy file="apps/addressbook/dist/addressbook.jar" todir="build/" />
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="buildAddressbook" depends="buildCore, buildJetty" >
|
<target name="buildAddressbook" depends="buildCore" >
|
||||||
<ant dir="apps/addressbook/" target="war" />
|
<ant dir="apps/addressbook/" target="all" />
|
||||||
|
<copy file="apps/addressbook/dist/addressbook.jar" todir="build/" />
|
||||||
|
<!-- war is empty, only for updates -->
|
||||||
<copy file="apps/addressbook/dist/addressbook.war" todir="build/" />
|
<copy file="apps/addressbook/dist/addressbook.war" todir="build/" />
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
@ -734,7 +736,7 @@
|
|||||||
<group title="JRobin Library" packages="org.jrobin:org.jrobin.*:engine.misc" />
|
<group title="JRobin Library" packages="org.jrobin:org.jrobin.*:engine.misc" />
|
||||||
<group title="SAM Bridge" packages="net.i2p.sam" />
|
<group title="SAM Bridge" packages="net.i2p.sam" />
|
||||||
<group title="SAM Demos" packages="net.i2p.sam.client" />
|
<group title="SAM Demos" packages="net.i2p.sam.client" />
|
||||||
<group title="SusiDNS Application" packages="i2p.susi.dns" />
|
<group title="SusiDNS Application" packages="i2p.susi.dns:net.i2p.addressbook.servlet" />
|
||||||
<group title="SusiMail Application" packages="i2p.susi.webmail:i2p.susi.webmail.*:i2p.susi.debug:i2p.susi.util" />
|
<group title="SusiMail Application" packages="i2p.susi.webmail:i2p.susi.webmail.*:i2p.susi.debug:i2p.susi.util" />
|
||||||
<group title="Systray Application" packages="net.i2p.apps.systray" />
|
<group title="Systray Application" packages="net.i2p.apps.systray" />
|
||||||
<sourcepath>
|
<sourcepath>
|
||||||
@ -1205,7 +1207,7 @@
|
|||||||
<copy file="build/i2psnark.jar" todir="pkg-temp/lib/" />
|
<copy file="build/i2psnark.jar" todir="pkg-temp/lib/" />
|
||||||
<copy file="build/i2ptunnel.war" todir="pkg-temp/webapps/" />
|
<copy file="build/i2ptunnel.war" todir="pkg-temp/webapps/" />
|
||||||
<copy file="build/routerconsole.war" todir="pkg-temp/webapps/" />
|
<copy file="build/routerconsole.war" todir="pkg-temp/webapps/" />
|
||||||
<copy file="build/addressbook.war" todir="pkg-temp/webapps/" />
|
<copy file="build/addressbook.jar" todir="pkg-temp/lib/" />
|
||||||
<copy file="build/susimail.war" todir="pkg-temp/webapps/" />
|
<copy file="build/susimail.war" todir="pkg-temp/webapps/" />
|
||||||
<copy file="build/susidns.war" todir="pkg-temp/webapps/" />
|
<copy file="build/susidns.war" todir="pkg-temp/webapps/" />
|
||||||
<copy file="build/imagegen.war" todir="pkg-temp/webapps/" />
|
<copy file="build/imagegen.war" todir="pkg-temp/webapps/" />
|
||||||
@ -1465,11 +1467,11 @@
|
|||||||
<!-- *nix here -->
|
<!-- *nix here -->
|
||||||
<exec executable="sh" osfamily="unix" failonerror="true">
|
<exec executable="sh" osfamily="unix" failonerror="true">
|
||||||
<arg value="-c" />
|
<arg value="-c" />
|
||||||
<arg value="for i in pkg-temp/lib/*.jar pkg-temp/webapps/*war; do if [ $i = pkg-temp/lib/commons-logging.jar -o $i = pkg-temp/lib/jasper-compiler.jar -o $i = pkg-temp/lib/jbigi.jar -o $i = pkg-temp/lib/jetty-java5-threadpool.jar -o $i = pkg-temp/lib/jetty-sslengine.jar ]; then continue; fi; echo pack200 $i; mv $i $i.jar; pack200 -g $i.pack $i.jar; rm -f $i.jar; done" />
|
<arg value="for i in pkg-temp/lib/*.jar pkg-temp/webapps/*war; do if [ $i = pkg-temp/lib/commons-logging.jar -o $i = pkg-temp/lib/jasper-compiler.jar -o $i = pkg-temp/lib/jbigi.jar -o $i = pkg-temp/lib/jetty-java5-threadpool.jar -o $i = pkg-temp/lib/jetty-sslengine.jar -o $i = pkg-temp/webapps/addressbook.war ]; then continue; fi; echo pack200 $i; mv $i $i.jar; pack200 -g $i.pack $i.jar; rm -f $i.jar; done" />
|
||||||
</exec>
|
</exec>
|
||||||
<exec executable="sh" osfamily="mac" failonerror="true">
|
<exec executable="sh" osfamily="mac" failonerror="true">
|
||||||
<arg value="-c" />
|
<arg value="-c" />
|
||||||
<arg value="for i in pkg-temp/lib/*.jar pkg-temp/webapps/*war; do if [ $i = pkg-temp/lib/commons-logging.jar -o $i = pkg-temp/lib/jasper-compiler.jar -o $i = pkg-temp/lib/jbigi.jar -o $i = pkg-temp/lib/jetty-java5-threadpool.jar -o $i = pkg-temp/lib/jetty-sslengine.jar ]; then continue; fi; echo pack200 $i; mv $i $i.jar; pack200 -g $i.pack $i.jar; rm -f $i.jar; done" />
|
<arg value="for i in pkg-temp/lib/*.jar pkg-temp/webapps/*war; do if [ $i = pkg-temp/lib/commons-logging.jar -o $i = pkg-temp/lib/jasper-compiler.jar -o $i = pkg-temp/lib/jbigi.jar -o $i = pkg-temp/lib/jetty-java5-threadpool.jar -o $i = pkg-temp/lib/jetty-sslengine.jar -o $i = pkg-temp/webapps/addressbook.war ]; then continue; fi; echo pack200 $i; mv $i $i.jar; pack200 -g $i.pack $i.jar; rm -f $i.jar; done" />
|
||||||
</exec>
|
</exec>
|
||||||
<!-- windoz here : i admit, i hate escaped symbols in xml, indeed = =! -->
|
<!-- windoz here : i admit, i hate escaped symbols in xml, indeed = =! -->
|
||||||
<exec executable="cmd" osfamily="windows" failonerror="true">
|
<exec executable="cmd" osfamily="windows" failonerror="true">
|
||||||
@ -1551,6 +1553,7 @@
|
|||||||
<copy file="build/jrobin.jar" tofile="pkg-temp/lib/jrobin.jar" />
|
<copy file="build/jrobin.jar" tofile="pkg-temp/lib/jrobin.jar" />
|
||||||
<copy file="build/i2ptunnel.war" todir="pkg-temp/webapps/" />
|
<copy file="build/i2ptunnel.war" todir="pkg-temp/webapps/" />
|
||||||
<copy file="build/routerconsole.war" todir="pkg-temp/webapps/" />
|
<copy file="build/routerconsole.war" todir="pkg-temp/webapps/" />
|
||||||
|
<copy file="build/addressbook.jar" todir="pkg-temp/lib/" />
|
||||||
<copy file="build/addressbook.war" todir="pkg-temp/webapps/" />
|
<copy file="build/addressbook.war" todir="pkg-temp/webapps/" />
|
||||||
<!-- decapitalized the file in 0.7.8 -->
|
<!-- decapitalized the file in 0.7.8 -->
|
||||||
<copy file="installer/resources/countries.txt" todir="pkg-temp/geoip/" />
|
<copy file="installer/resources/countries.txt" todir="pkg-temp/geoip/" />
|
||||||
@ -1898,7 +1901,6 @@
|
|||||||
<!-- start of the files to be analyzed -->
|
<!-- start of the files to be analyzed -->
|
||||||
<arg value="build/BOB.jar"/>
|
<arg value="build/BOB.jar"/>
|
||||||
<arg value="build/addressbook.jar"/>
|
<arg value="build/addressbook.jar"/>
|
||||||
<arg value="build/addressbook.war"/>
|
|
||||||
<arg value="build/i2p.jar"/>
|
<arg value="build/i2p.jar"/>
|
||||||
<arg value="build/i2psnark.jar"/>
|
<arg value="build/i2psnark.jar"/>
|
||||||
<arg value="build/i2psnark.war"/>
|
<arg value="build/i2psnark.war"/>
|
||||||
|
Reference in New Issue
Block a user