Merge branch 'stable-2.6' into stable-2.7

* stable-2.6:
  Bump openid4java dependency to 0.9.8
  Provide direct link to REST API documentation
  init: Gracefully handle missing browser
  Improve explanation of path conflicts in project config doc
  init: Don't set username on upgrade if database.type is JDBC
diff --git a/Documentation/project-setup.txt b/Documentation/project-setup.txt
index 244b4b8..36d3c60 100644
--- a/Documentation/project-setup.txt
+++ b/Documentation/project-setup.txt
@@ -108,9 +108,11 @@
 fast-forwarded to the change.
 
 When Gerrit tries to do a merge, by default the merge will only
-succeed if there is no path conflict. By selecting the checkbox
-`Automatically resolve conflicts` Gerrit will try do a content merge
-if a path conflict occurs.
+succeed if there is no path conflict.  A path conflict occurs when
+the same file has also been changed on the other side of the merge.
+
+If `Automatically resolve conflicts` is enabled, Gerrit will try
+to do a content merge when a path conflict occurs.
 
 
 Registering Additional Branches
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/Gerrit.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/Gerrit.java
index 2a9cb71..0b1af89 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/Gerrit.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/Gerrit.java
@@ -695,6 +695,7 @@
       addDocLink(m, C.menuDocumentationSearch(), "user-search.html");
       addDocLink(m, C.menuDocumentationUpload(), "user-upload.html");
       addDocLink(m, C.menuDocumentationAccess(), "access-control.html");
+      addDocLink(m, C.menuDocumentationAPI(), "rest-api.html");
       menuLeft.add(m, C.menuDocumentation());
     }
 
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/GerritConstants.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/GerritConstants.java
index 0b57bcb..683f058 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/GerritConstants.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/GerritConstants.java
@@ -88,6 +88,7 @@
   String menuDocumentationSearch();
   String menuDocumentationUpload();
   String menuDocumentationAccess();
+  String menuDocumentationAPI();
 
   String searchHint();
   String searchButton();
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/GerritConstants.properties b/gerrit-gwtui/src/main/java/com/google/gerrit/client/GerritConstants.properties
index f7033e4..defc7e4 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/GerritConstants.properties
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/GerritConstants.properties
@@ -71,6 +71,7 @@
 menuDocumentationSearch = Searching
 menuDocumentationUpload = Uploading
 menuDocumentationAccess = Access Controls
+menuDocumentationAPI = REST API
 
 searchHint = Change #, SHA-1, tr:id or owner:email
 searchButton = Search
diff --git a/gerrit-openid/pom.xml b/gerrit-openid/pom.xml
index b232496..a81cf17 100644
--- a/gerrit-openid/pom.xml
+++ b/gerrit-openid/pom.xml
@@ -51,8 +51,7 @@
 
     <dependency>
       <groupId>org.openid4java</groupId>
-      <artifactId>openid4java-consumer</artifactId>
-      <type>pom</type>
+      <artifactId>openid4java</artifactId>
     </dependency>
 
     <dependency>
diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/Browser.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/Browser.java
index ea13043..8e3948e 100644
--- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/Browser.java
+++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/Browser.java
@@ -14,6 +14,7 @@
 
 package com.google.gerrit.pgm.init;
 
+import com.google.common.base.Strings;
 import com.google.gerrit.server.config.GerritServerConfig;
 import com.google.inject.Inject;
 
@@ -42,7 +43,6 @@
     if (url == null) {
       return;
     }
-
     if (url.startsWith("proxy-")) {
       url = url.substring("proxy-".length());
     }
@@ -54,15 +54,19 @@
       System.err.println("error: invalid httpd.listenUrl: " + url);
       return;
     }
-    final String hostname = uri.getHost();
-    final int port = InitUtil.portOf(uri);
+    waitForServer(uri);
+    openBrowser(uri, link);
+  }
 
-    System.err.print("Waiting for server to start ... ");
+  private void waitForServer(URI uri) throws IOException {
+    String host = uri.getHost();
+    int port = InitUtil.portOf(uri);
+    System.err.format("Waiting for server on %s:%d ... ", host, port);
     System.err.flush();
     for (;;) {
-      final Socket s;
+      Socket s;
       try {
-        s = new Socket(hostname, port);
+        s = new Socket(host, port);
       } catch (IOException e) {
         try {
           Thread.sleep(100);
@@ -74,18 +78,33 @@
       break;
     }
     System.err.println("OK");
+  }
 
-    url = cfg.getString("gerrit", null, "canonicalWebUrl");
-    if (url == null || url.isEmpty()) {
+  private String resolveUrl(URI uri, String link) {
+    String url = cfg.getString("gerrit", null, "canonicalWebUrl");
+    if (Strings.isNullOrEmpty(url)) {
       url = uri.toString();
     }
     if (!url.endsWith("/")) {
       url += "/";
     }
-    if (link != null && !link.isEmpty()) {
+    if (!Strings.isNullOrEmpty(link)) {
       url += "#" + link;
     }
-    System.err.println("Opening browser ...");
-    org.h2.tools.Server.openBrowser(url);
+    return url;
+  }
+
+  private void openBrowser(URI uri, String link) {
+    String url = resolveUrl(uri, link);
+    System.err.format("Opening %s ...", url);
+    System.err.flush();
+    try {
+      org.h2.tools.Server.openBrowser(url);
+      System.err.println("OK");
+    } catch (Exception e) {
+      System.err.println("FAILED");
+      System.err.println("Open Gerrit with a JavaScript capable browser:");
+      System.err.println("  " + url);
+    }
   }
 }
diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/JDBCInitializer.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/JDBCInitializer.java
index ac3e728..20034c1 100644
--- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/JDBCInitializer.java
+++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/JDBCInitializer.java
@@ -21,10 +21,11 @@
 class JDBCInitializer implements DatabaseConfigInitializer {
   @Override
   public void initConfig(Section database) {
+    boolean hasUrl = Strings.emptyToNull(database.get("url")) != null;
     database.string("URL", "url", null);
     guessDriver(database);
     database.string("Driver class name", "driver", null);
-    database.string("Database username", "username", username());
+    database.string("Database username", "username", hasUrl ? null : username());
     database.password("username", "password");
   }
 
diff --git a/gerrit-war/src/main/resources/log4j.properties b/gerrit-war/src/main/resources/log4j.properties
index 250fa4c..1fcca6d 100644
--- a/gerrit-war/src/main/resources/log4j.properties
+++ b/gerrit-war/src/main/resources/log4j.properties
@@ -38,10 +38,8 @@
 
 # Silence non-critical messages from openid4java
 #
+log4j.logger.org.apache.http=WARN
 log4j.logger.org.apache.xml=WARN
-log4j.logger.httpclient.wire=WARN
-log4j.logger.org.apache.commons.httpclient=WARN
-log4j.logger.org.apache.commons.httpclient.HttpMethodBase=ERROR
 log4j.logger.org.openid4java=WARN
 log4j.logger.org.openid4java.consumer.ConsumerManager=FATAL
 log4j.logger.org.openid4java.discovery.Discovery=ERROR
diff --git a/pom.xml b/pom.xml
index 74753de..6341800 100644
--- a/pom.xml
+++ b/pom.xml
@@ -526,9 +526,8 @@
 
       <dependency>
         <groupId>org.openid4java</groupId>
-        <artifactId>openid4java-consumer</artifactId>
-        <version>0.9.6</version>
-        <type>pom</type>
+        <artifactId>openid4java</artifactId>
+        <version>0.9.8</version>
         <exclusions>
           <exclusion>
             <!-- conflicts with our use of guice 3.0 -->
@@ -575,12 +574,6 @@
       </dependency>
 
       <dependency>
-        <groupId>org.apache.httpcomponents</groupId>
-        <artifactId>httpclient</artifactId>
-        <version>4.0</version>
-      </dependency>
-
-      <dependency>
         <groupId>com.jcraft</groupId>
         <artifactId>jsch</artifactId>
         <version>0.1.44-1</version>