Re: svn commit: r1731734 - in /tomcat/trunk: java/org/apache/catalina/manager/host/ webapps/docs/
In addition to the object array size restoration made in 1731735, I think that another erroneous change that I submitted slipped in to your patch. I noticed it while poking around at tomcat-8.5.0.Beta. Now when you add a host you get a button that just contains {5} where the persist button that I proposed would have been. You can revert the change with the following patch to make it work the way it did before: +++ Index: java/org/apache/catalina/manager/host/HTMLHostManagerServlet.java === --- java/org/apache/catalina/manager/host/HTMLHostManagerServlet.java (revision 1737136) +++ java/org/apache/catalina/manager/host/HTMLHostManagerServlet.java (working copy) @@ -511,9 +511,6 @@ " " + " " + " \n" + -" " + -" " + -" \n" + " \n" + "\n"; +++ Cheers On Mon, Feb 22, 2016 at 3:19 PM,wrote: > Author: markt > Date: Mon Feb 22 20:19:15 2016 > New Revision: 1731734 > > URL: http://svn.apache.org/viewvc?rev=1731734=rev > Log: > Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=48674 > Implement an option within the Host Manager web pplication to persist the > current configuration. > Based on a patch by Coty Sutherland. > > Modified: > > tomcat/trunk/java/org/apache/catalina/manager/host/HTMLHostManagerServlet.java > > tomcat/trunk/java/org/apache/catalina/manager/host/HostManagerServlet.java > > tomcat/trunk/java/org/apache/catalina/manager/host/LocalStrings.properties > tomcat/trunk/webapps/docs/changelog.xml > > Modified: > tomcat/trunk/java/org/apache/catalina/manager/host/HTMLHostManagerServlet.java > URL: > http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/manager/host/HTMLHostManagerServlet.java?rev=1731734=1731733=1731734=diff > > == > --- > tomcat/trunk/java/org/apache/catalina/manager/host/HTMLHostManagerServlet.java > (original) > +++ > tomcat/trunk/java/org/apache/catalina/manager/host/HTMLHostManagerServlet.java > Mon Feb 22 20:19:15 2016 > @@ -94,7 +94,8 @@ public final class HTMLHostManagerServle > } else if (command.equals("/list")) { > // Nothing to do - always generate list > } else if (command.equals("/add") || command.equals("/remove") || > -command.equals("/start") || command.equals("/stop")) { > +command.equals("/start") || command.equals("/stop") || > +command.equals("/persist")) { > message = smClient.getString( > "hostManagerServlet.postCommand", command); > } else { > @@ -143,6 +144,8 @@ public final class HTMLHostManagerServle > message = start(name, smClient); > } else if (command.equals("/stop")) { > message = stop(name, smClient); > +} else if (command.equals("/persist")) { > +message = persist(smClient); > } else { > //Try GET > doGet(request, response); > @@ -227,6 +230,22 @@ public final class HTMLHostManagerServle > > > /** > + * Persist the current configuration to server.xml. > + * > + * @param smClient i18n resources localized for the client > + */ > +protected String persist(StringManager smClient) { > + > +StringWriter stringWriter = new StringWriter(); > +PrintWriter printWriter = new PrintWriter(stringWriter); > + > +super.persist(printWriter, smClient); > + > +return stringWriter.toString(); > +} > + > + > +/** > * Render a HTML list of the currently active Contexts in our virtual > host, > * and memory and server status information. > * > @@ -341,7 +360,7 @@ public final class HTMLHostManagerServle > writer.print > (MessageFormat.format(HOSTS_ROW_DETAILS_SECTION, > args)); > > -args = new Object[4]; > +args = new Object[6]; > if (host.getState().isAvailable()) { > args[0] = response.encodeURL > (request.getContextPath() + > @@ -362,10 +381,10 @@ public final class HTMLHostManagerServle > args[3] = hostsRemove; > if (host == this.installedHost) { > writer.print(MessageFormat.format( > -MANAGER_HOST_ROW_BUTTON_SECTION, args)); > +MANAGER_HOST_ROW_BUTTON_SECTION, args)); > } else { > writer.print(MessageFormat.format( > -HOSTS_ROW_BUTTON_SECTION, args)); > +HOSTS_ROW_BUTTON_SECTION, args)); > } > } > } > @@ -413,6 +432,14 @@ public final class HTMLHostManagerServle > args[0] = smClient.getString("htmlHostManagerServlet.addButton"); >
svn commit: r1731734 - in /tomcat/trunk: java/org/apache/catalina/manager/host/ webapps/docs/
Author: markt Date: Mon Feb 22 20:19:15 2016 New Revision: 1731734 URL: http://svn.apache.org/viewvc?rev=1731734=rev Log: Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=48674 Implement an option within the Host Manager web pplication to persist the current configuration. Based on a patch by Coty Sutherland. Modified: tomcat/trunk/java/org/apache/catalina/manager/host/HTMLHostManagerServlet.java tomcat/trunk/java/org/apache/catalina/manager/host/HostManagerServlet.java tomcat/trunk/java/org/apache/catalina/manager/host/LocalStrings.properties tomcat/trunk/webapps/docs/changelog.xml Modified: tomcat/trunk/java/org/apache/catalina/manager/host/HTMLHostManagerServlet.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/manager/host/HTMLHostManagerServlet.java?rev=1731734=1731733=1731734=diff == --- tomcat/trunk/java/org/apache/catalina/manager/host/HTMLHostManagerServlet.java (original) +++ tomcat/trunk/java/org/apache/catalina/manager/host/HTMLHostManagerServlet.java Mon Feb 22 20:19:15 2016 @@ -94,7 +94,8 @@ public final class HTMLHostManagerServle } else if (command.equals("/list")) { // Nothing to do - always generate list } else if (command.equals("/add") || command.equals("/remove") || -command.equals("/start") || command.equals("/stop")) { +command.equals("/start") || command.equals("/stop") || +command.equals("/persist")) { message = smClient.getString( "hostManagerServlet.postCommand", command); } else { @@ -143,6 +144,8 @@ public final class HTMLHostManagerServle message = start(name, smClient); } else if (command.equals("/stop")) { message = stop(name, smClient); +} else if (command.equals("/persist")) { +message = persist(smClient); } else { //Try GET doGet(request, response); @@ -227,6 +230,22 @@ public final class HTMLHostManagerServle /** + * Persist the current configuration to server.xml. + * + * @param smClient i18n resources localized for the client + */ +protected String persist(StringManager smClient) { + +StringWriter stringWriter = new StringWriter(); +PrintWriter printWriter = new PrintWriter(stringWriter); + +super.persist(printWriter, smClient); + +return stringWriter.toString(); +} + + +/** * Render a HTML list of the currently active Contexts in our virtual host, * and memory and server status information. * @@ -341,7 +360,7 @@ public final class HTMLHostManagerServle writer.print (MessageFormat.format(HOSTS_ROW_DETAILS_SECTION, args)); -args = new Object[4]; +args = new Object[6]; if (host.getState().isAvailable()) { args[0] = response.encodeURL (request.getContextPath() + @@ -362,10 +381,10 @@ public final class HTMLHostManagerServle args[3] = hostsRemove; if (host == this.installedHost) { writer.print(MessageFormat.format( -MANAGER_HOST_ROW_BUTTON_SECTION, args)); +MANAGER_HOST_ROW_BUTTON_SECTION, args)); } else { writer.print(MessageFormat.format( -HOSTS_ROW_BUTTON_SECTION, args)); +HOSTS_ROW_BUTTON_SECTION, args)); } } } @@ -413,6 +432,14 @@ public final class HTMLHostManagerServle args[0] = smClient.getString("htmlHostManagerServlet.addButton"); writer.print(MessageFormat.format(ADD_SECTION_END, args)); +// Persist Configuration Section +args = new Object[4]; +args[0] = smClient.getString("htmlHostManagerServlet.persistTitle"); +args[1] = response.encodeURL(request.getContextPath() + "/html/persist"); +args[2] = smClient.getString("htmlHostManagerServlet.persistAllButton"); +args[3] = smClient.getString("htmlHostManagerServlet.persistAll"); +writer.print(MessageFormat.format(PERSIST_SECTION, args)); + // Server Header Section args = new Object[7]; args[0] = smClient.getString("htmlHostManagerServlet.serverTitle"); @@ -483,6 +510,9 @@ public final class HTMLHostManagerServle " " + " " + " \n" + +" " + +" " + +" \n" + " \n" + "\n"; @@ -552,4 +582,20 @@ public final class HTMLHostManagerServle "\n" + "\n"; +private static final String PERSIST_SECTION = +"\n" + +"\n" + +" {0}\n" + +"\n" + +"\n" + +