/// <summary>Print configuration options that can be changed.</summary> private void PrintConf(PrintWriter @out, Reconfigurable reconf) { Configuration oldConf = reconf.GetConf(); Configuration newConf = new Configuration(); ICollection <ReconfigurationUtil.PropertyChange> changes = ReconfigurationUtil.GetChangedProperties (newConf, oldConf); bool changeOK = true; @out.WriteLine("<form action=\"\" method=\"post\">"); @out.WriteLine("<table border=\"1\">"); @out.WriteLine("<tr><th>Property</th><th>Old value</th>"); @out.WriteLine("<th>New value </th><th></th></tr>"); foreach (ReconfigurationUtil.PropertyChange c in changes) { @out.Write("<tr><td>"); if (!reconf.IsPropertyReconfigurable(c.prop)) { @out.Write("<font color=\"red\">" + StringEscapeUtils.EscapeHtml(c.prop) + "</font>" ); changeOK = false; } else { @out.Write(StringEscapeUtils.EscapeHtml(c.prop)); @out.Write("<input type=\"hidden\" name=\"" + StringEscapeUtils.EscapeHtml(c.prop ) + "\" value=\"" + StringEscapeUtils.EscapeHtml(c.newVal) + "\"/>"); } @out.Write("</td><td>" + (c.oldVal == null ? "<it>default</it>" : StringEscapeUtils .EscapeHtml(c.oldVal)) + "</td><td>" + (c.newVal == null ? "<it>default</it>" : StringEscapeUtils.EscapeHtml(c.newVal)) + "</td>"); @out.Write("</tr>\n"); } @out.WriteLine("</table>"); if (!changeOK) { @out.WriteLine("<p><font color=\"red\">WARNING: properties marked red" + " will not be changed until the next restart.</font></p>" ); } @out.WriteLine("<input type=\"submit\" value=\"Apply\" />"); @out.WriteLine("</form>"); }
public virtual void TestGetChangedProperties() { ICollection <ReconfigurationUtil.PropertyChange> changes = ReconfigurationUtil.GetChangedProperties (conf2, conf1); Assert.True("expected 3 changed properties but got " + changes. Count, changes.Count == 3); bool changeFound = false; bool unsetFound = false; bool setFound = false; foreach (ReconfigurationUtil.PropertyChange c in changes) { if (c.prop.Equals(Prop2) && c.oldVal != null && c.oldVal.Equals(Val1) && c.newVal != null && c.newVal.Equals(Val2)) { changeFound = true; } else { if (c.prop.Equals(Prop3) && c.oldVal != null && c.oldVal.Equals(Val1) && c.newVal == null) { unsetFound = true; } else { if (c.prop.Equals(Prop4) && c.oldVal == null && c.newVal != null && c.newVal.Equals (Val1)) { setFound = true; } } } } Assert.True("not all changes have been applied", changeFound && unsetFound && setFound); }
public virtual void SetReconfigurationUtil(ReconfigurationUtil ru) { reconfigurationUtil = Preconditions.CheckNotNull(ru); }