Merge change I574b992d
* changes:
Adding support to list merged and abandoned changes for a project.
diff --git a/Documentation/install.txt b/Documentation/install.txt
index f4b7bb6..af11447 100644
--- a/Documentation/install.txt
+++ b/Documentation/install.txt
@@ -86,7 +86,7 @@
password, create a database, and give the user full rights:
====
- CREATE USER gerrit2 IDENTIFIED BY 'secret';
+ CREATE USER 'gerrit2'@'localhost' IDENTIFIED BY 'secret';
CREATE DATABASE reviewdb;
GRANT ALL ON reviewdb.* TO 'gerrit2'@'localhost';
FLUSH PRIVILEGES;
@@ -225,10 +225,10 @@
Download and unzip a release version of Jetty. From here on we
call the unpacked directory `$JETTY_HOME`.
-* link:http://dist.codehaus.org/jetty/[Jetty Downloads]
+* link:http://www.eclipse.org/jetty/downloads.php[Jetty Downloads]
Install the required JDBC drivers by copying them into the
-`'$JETTY_HOME'/lib/plus` directory. Drivers can be obtained from
+`'$JETTY_HOME'/lib/ext` directory. Drivers can be obtained from
their source projects:
* link:http://jdbc.postgresql.org/download.html[PostgreSQL JDBC Driver]
@@ -236,7 +236,7 @@
* link:http://commons.apache.org/dbcp/download_dbcp.cgi[Commons DBCP]
Consider installing Bouncy Castle Cypto APIs into the
-`'$JETTY_HOME'/lib/plus` directory. Some of the Bouncy Castle
+`'$JETTY_HOME'/lib/ext` directory. Some of the Bouncy Castle
implementations are faster than then ones that come in the JRE,
and they may support additional encryption algorithms:
@@ -244,46 +244,32 @@
Copy Gerrit into the deployment:
====
- java -jar gerrit.war --cat extra/jetty_gerrit.xml >$JETTY_HOME/contexts/gerrit.xml
- cp gerrit.war $JETTY_HOME/webapps/gerrit.war
-
- rm -f $JETTY_HOME/contexts/test.xml
+ cd $JETTY_HOME
+ cp ~/gerrit.war webapps/gerrit.war
+ java -jar webapps/gerrit.war --cat extra/jetty7/gerrit.xml >contexts/gerrit.xml
+ rm -f contexts/test.xml
====
Edit `'$JETTY_HOME'/contexts/gerrit.xml` to correctly configure
the database and outgoing SMTP connections, especially the user
and password fields.
-If OpenID authentication is being used, you may need to increase
-the header buffer size parameter, due to very long header lines.
+If OpenID authentication (or certain enterprise single-sign-on
+solutions) is being used, you may need to increase the
+header buffer size parameter, due to very long header lines.
Add the following to `'$JETTY_HOME'/etc/jetty.xml` under
-`org.mortbay.jetty.nio.SelectChannelConnector`:
+`org.eclipse.jetty.server.nio.SelectChannelConnector`:
====
<Set name="headerBufferSize">16384</Set>
====
-To start automatically when the system boots, consider a start
-script such as the following in `/etc/init.d/gerrit2-jetty`
+To start automatically when the system boots, create a start
+script and modify it for your configuration:
====
- #!/bin/sh
-
- export JETTY_HOST=127.0.0.1
- export JETTY_PORT=8081
- export JETTY_USER=gerrit2
- export JETTY_PID=/var/run/jetty$JETTY_PORT.pid
- export JETTY_HOME=/home/$JETTY_USER/jetty
- export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.07/jre
-
- JAVA_OPTIONS=""
- JAVA_OPTIONS="$JAVA_OPTIONS -Djetty.host=$JETTY_HOST"
- export JAVA_OPTIONS
-
- C="jetty-logging jetty"
- [ -f "$JETTY_HOME/etc/jetty_sslproxy.xml" ] && C="$C jetty_sslproxy"
-
- exec $JETTY_HOME/bin/jetty.sh "$@" $C
+ java -jar gerrit.war --cat extra/jetty7/gerrit-jetty.sh >/etc/init.d/gerrit-jetty.sh
+ vi /etc/init.d/gerrit-jetty.sh
====
[TIP]
@@ -304,7 +290,8 @@
To deploy on port 443 with SSL enabled, unpack the SSL proxy handling
rule into `'$JETTY_HOME'/etc`:
====
- java -jar gerrit.war --cat extra/jetty_sslproxy.xml >$JETTY_HOME/etc/jetty_sslproxy.xml
+ cd $JETTY_HOME
+ java -jar webapps/gerrit.war --cat extra/jetty7/jetty_sslproxy.xml >etc/jetty_sslproxy.xml
====
Create a start script like the one above, configuring Jetty to
diff --git a/src/main/java/com/google/gerrit/server/mail/NewChangeSender.java b/src/main/java/com/google/gerrit/server/mail/NewChangeSender.java
index 55783397..9a0f41e 100644
--- a/src/main/java/com/google/gerrit/server/mail/NewChangeSender.java
+++ b/src/main/java/com/google/gerrit/server/mail/NewChangeSender.java
@@ -59,18 +59,19 @@
protected void format() {
formatSalutation();
formatChangeDetail();
+
+ appendText("\n");
+ appendText(" " + getPullUrl() + "\n");
}
private void formatSalutation() {
final String changeUrl = getChangeUrl();
- final String pullUrl = getPullUrl();
if (reviewers.isEmpty()) {
formatDest();
if (changeUrl != null) {
appendText("\n");
appendText(" " + changeUrl + "\n");
- appendText(" " + pullUrl + "\n");
appendText("\n");
}
appendText("\n");
@@ -90,14 +91,6 @@
appendText(" Please visit\n");
appendText("\n");
appendText(" " + changeUrl + "\n");
- appendText(" " + pullUrl + "\n");
- appendText("\n");
- appendText("to review the following change:\n");
-
- } else {
- appendText(" Please execute\n");
- appendText("\n");
- appendText(" " + pullUrl + "\n");
appendText("\n");
appendText("to review the following change:\n");
}
diff --git a/src/main/java/com/google/gerrit/server/mail/ReplacePatchSetSender.java b/src/main/java/com/google/gerrit/server/mail/ReplacePatchSetSender.java
index fe6bcad..2430ff7 100644
--- a/src/main/java/com/google/gerrit/server/mail/ReplacePatchSetSender.java
+++ b/src/main/java/com/google/gerrit/server/mail/ReplacePatchSetSender.java
@@ -68,20 +68,19 @@
protected void format() {
formatSalutation();
formatChangeDetail();
+
+ appendText("\n");
+ appendText(" " + getPullUrl() + "\n");
}
private void formatSalutation() {
final String changeUrl = getChangeUrl();
- final String pullUrl = getPullUrl();
if (reviewers.isEmpty()) {
formatDest();
- if (changeUrl != null || pullUrl != null) {
+ if (changeUrl != null) {
appendText("\n");
- if (changeUrl != null) {
- appendText(" " + changeUrl + "\n");
- }
- appendText(" " + pullUrl + "\n");
+ appendText(" " + changeUrl + "\n");
appendText("\n");
}
appendText("\n");
@@ -102,15 +101,6 @@
appendText(" Please visit\n");
appendText("\n");
appendText(" " + changeUrl + "\n");
- appendText(" " + pullUrl + "\n");
- appendText("\n");
- appendText("to look at patch set " + patchSet.getPatchSetId());
- appendText(":\n");
-
- } else {
- appendText(" Please execute\n");
- appendText("\n");
- appendText(" " + pullUrl + "\n");
appendText("\n");
appendText("to look at patch set " + patchSet.getPatchSetId());
appendText(":\n");
diff --git a/src/main/webapp/WEB-INF/extra/jetty6/gerrit-jetty.sh b/src/main/webapp/WEB-INF/extra/jetty6/gerrit-jetty.sh
new file mode 100644
index 0000000..f8e22d9
--- /dev/null
+++ b/src/main/webapp/WEB-INF/extra/jetty6/gerrit-jetty.sh
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+export JETTY_HOST=127.0.0.1
+export JETTY_PORT=8081
+export JETTY_USER=gerrit2
+export JETTY_PID=/var/run/jetty$JETTY_PORT.pid
+export JETTY_HOME=/home/$JETTY_USER/jetty
+export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.07/jre
+
+JAVA_OPTIONS=""
+JAVA_OPTIONS="$JAVA_OPTIONS -Djetty.host=$JETTY_HOST"
+export JAVA_OPTIONS
+
+C="jetty-logging jetty"
+[ -f "$JETTY_HOME/etc/jetty_sslproxy.xml" ] && C="$C jetty_sslproxy"
+
+exec $JETTY_HOME/bin/jetty.sh "$@" $C
diff --git a/src/main/webapp/WEB-INF/extra/jetty_gerrit.xml b/src/main/webapp/WEB-INF/extra/jetty6/gerrit.xml
similarity index 100%
rename from src/main/webapp/WEB-INF/extra/jetty_gerrit.xml
rename to src/main/webapp/WEB-INF/extra/jetty6/gerrit.xml
diff --git a/src/main/webapp/WEB-INF/extra/jetty_sslproxy.xml b/src/main/webapp/WEB-INF/extra/jetty6/jetty_sslproxy.xml
similarity index 100%
rename from src/main/webapp/WEB-INF/extra/jetty_sslproxy.xml
rename to src/main/webapp/WEB-INF/extra/jetty6/jetty_sslproxy.xml
diff --git a/src/main/webapp/WEB-INF/extra/jetty7/gerrit-jetty.sh b/src/main/webapp/WEB-INF/extra/jetty7/gerrit-jetty.sh
new file mode 100644
index 0000000..1342d804
--- /dev/null
+++ b/src/main/webapp/WEB-INF/extra/jetty7/gerrit-jetty.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+export JETTY_HOST=127.0.0.1
+export JETTY_PORT=8081
+export JETTY_USER=gerrit2
+export JETTY_PID=/var/run/jetty$JETTY_PORT.pid
+export JETTY_HOME=/home/$JETTY_USER/jetty
+export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.07/jre
+
+JAVA_OPTIONS=""
+JAVA_OPTIONS="$JAVA_OPTIONS -Djetty.host=$JETTY_HOST"
+export JAVA_OPTIONS
+
+JETTY_ARGS=""
+JETTY_ARGS="$JETTY_ARGS OPTIONS=Server,plus,ext,rewrite"
+export JETTY_ARGS
+
+C="jetty-logging jetty"
+[ -f "$JETTY_HOME/etc/jetty_sslproxy.xml" ] && C="$C jetty_sslproxy"
+
+exec $JETTY_HOME/bin/jetty.sh "$@" $C
diff --git a/src/main/webapp/WEB-INF/extra/jetty7/gerrit.xml b/src/main/webapp/WEB-INF/extra/jetty7/gerrit.xml
new file mode 100644
index 0000000..56b7af0
--- /dev/null
+++ b/src/main/webapp/WEB-INF/extra/jetty7/gerrit.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.eclipse.org/configure.dtd">
+<!--
+
+ Jetty configuration to place "gerrit.war" into the root context,
+ so it answers to simple URLs like "/$changeid" and "/mine".
+
+ * Copy this file to $JETTY_HOME/contexts/gerrit.xml
+ * Edit url, username, password as necessary below for database.
+
+ * Copy commons-dbcp-*.jar to $JETTY_HOME/lib/ext/
+ * Copy commons-pool-*.jar to $JETTY_HOME/lib/ext/
+ * Copy JDBC driver to $JETTY_HOME/lib/ext/
+ * Copy www/gerrit-*.war to $JETTY_HOME/webapps/gerrit.war
+
+ * Make sure you remove $JETTY_HOME/context/test.xml
+
+-->
+<Configure id="wac" class="org.eclipse.jetty.webapp.WebAppContext">
+ <Set name="contextPath">/</Set>
+ <Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/gerrit.war</Set>
+
+ <Set name="extractWAR">true</Set>
+ <Set name="copyWebDir">true</Set>
+ <Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set>
+
+ <Set name="ConfigurationClasses">
+ <Array type="java.lang.String">
+ <Item>org.eclipse.jetty.webapp.WebInfConfiguration</Item>
+ <Item>org.eclipse.jetty.webapp.WebXmlConfiguration</Item>
+ <Item>org.eclipse.jetty.plus.webapp.EnvConfiguration</Item>
+ <Item>org.eclipse.jetty.plus.webapp.Configuration</Item>
+ <Item>org.eclipse.jetty.webapp.JettyWebXmlConfiguration</Item>
+ </Array>
+ </Set>
+
+ <New id="ReviewDb" class="org.eclipse.jetty.plus.jndi.Resource">
+ <Arg></Arg>
+ <Arg>jdbc/ReviewDb</Arg>
+ <Arg>
+ <New class="org.apache.commons.dbcp.BasicDataSource">
+<!-- PostgreSQL
+ <Set name="driverClassName">org.postgresql.Driver</Set>
+ <Set name="url">jdbc:postgresql:reviewdb</Set>
+ <Set name="username">gerrit2</Set>
+ <Set name="password">secretkey</Set>
+-->
+<!-- MySQL
+ <Set name="driverClassName">com.mysql.jdbc.Driver</Set>
+ <Set name="url">jdbc:mysql://localhost/reviewdb?user=gerrit2&password=secretkey</Set>
+-->
+<!-- H2
+ <Set name="driverClassName">org.h2.Driver</Set>
+ <Set name="url">jdbc:h2:file:ReviewDb</Set>
+-->
+ <Set name="initialSize">4</Set>
+ <Set name="maxActive">8</Set>
+ <Set name="minIdle">4</Set>
+ <Set name="maxIdle">4</Set>
+ <Set name="maxWait">30000</Set>
+ </New>
+ </Arg>
+ </New>
+</Configure>
diff --git a/src/main/webapp/WEB-INF/extra/jetty7/jetty_sslproxy.xml b/src/main/webapp/WEB-INF/extra/jetty7/jetty_sslproxy.xml
new file mode 100644
index 0000000..652acad
--- /dev/null
+++ b/src/main/webapp/WEB-INF/extra/jetty7/jetty_sslproxy.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.eclipse.org/configure.dtd">
+<!--
+
+ Jetty configuration to correctly handle SSL/HTTPS traffic when
+ Apache is handling the SSL and proxying over plain HTTP to us.
+
+ Requires Jetty 7.0.0.RC6 (or later).
+
+ * Copy this file to $JETTY_HOME/etc/jetty_sslproxy.xml
+ * Add jetty_sslproxy to your start line:
+
+ $JETTY_HOME/bin/jetty.sh start jetty-logging jetty jetty_sslproxy
+
+ * Configure Apache to set X-Forwarded-Scheme on requests:
+
+ RequestHeader set X-Forwarded-Scheme https
+
+-->
+<Configure id="Server" class="org.eclipse.jetty.server.Server">
+ <Get id="oldHandler" name="handler"/>
+ <Set name="handler">
+ <New class="org.eclipse.jetty.rewrite.handler.RewriteHandler">
+ <Set name="handler"><Ref id="oldHandler"/></Set>
+ <Set name="rules">
+ <Array type="org.eclipse.jetty.rewrite.handler.Rule">
+ <Item>
+ <New class="org.eclipse.jetty.rewrite.handler.ForwardedSchemeHeaderRule">
+ <Set name="header">X-Forwarded-Scheme</Set>
+ <Set name="headerValue">https</Set>
+ <Set name="scheme">https</Set>
+ </New>
+ </Item>
+ </Array>
+ </Set>
+ </New>
+ </Set>
+</Configure>
diff --git a/to_jetty.sh b/to_jetty.sh
index 0f976e4..5e5c61c 100755
--- a/to_jetty.sh
+++ b/to_jetty.sh
@@ -25,7 +25,7 @@
touch "$ctx"
else
rm -f "$jetty/contexts/test.xml" &&
- java -jar $war --cat extra/jetty_gerrit.xml >"$ctx" &&
+ java -jar $war --cat extra/jetty6/gerrit.xml >"$ctx" &&
echo >&2
echo >&2 "You need to copy JDBC drivers to $jetty/lib/plus"