提交 ffe1a24d authored 作者: Thomas Mueller's avatar Thomas Mueller

Fix formatting

上级 5e9911e5
......@@ -401,8 +401,8 @@ properties <code>server0</code>..<code>serverX</code>, where serverX is the numb
</p>
<p>
Example: To get the 2nd server in the connection list one uses <code>getClientInfo('server1')<code>. <b>Note:</b> The
<code>serverX</code> property only returns IP addresses and ports and not hostnames.
Example: To get the 2nd server in the connection list one uses <code>getClientInfo('server1')</code>.
<b>Note:</b> The <code>serverX</code> property only returns IP addresses and ports and not hostnames.
</p>
<h3>Clustering Algorithm and Limitations</h3>
......
......@@ -25,7 +25,7 @@ Change Log
occur MVMap.openVersion when concurrently accessing the store.
</li><li>The LIRS cache now re-sizes the internal hash map if needed.
</li><li>Optionally persist session history in the H2 console. (patch from Martin Grajcar)
<ul><li>Add client-info property to get the number of servers currently in the cluster
</li><li>Add client-info property to get the number of servers currently in the cluster
and which servers that are available. (patch from Nikolaj Fogh)
</li><li>Fix bug in changing encrypted DB password that kept the file handle
open when the wrong password was supplied. (test case from Jens Hohmuth).
......
......@@ -32,7 +32,9 @@ public class Engine implements SessionFactory {
SysProperties.DELAY_WRONG_PASSWORD_MIN;
private boolean jmx;
private Engine() {}
private Engine() {
// use getInstance()
}
public static Engine getInstance() {
return INSTANCE;
......
......@@ -127,6 +127,7 @@ public class Session extends SessionWithState {
this.currentSchemaName = Constants.SCHEMA_MAIN;
}
@Override
public ArrayList<String> getClusterServers() {
return new ArrayList<String>();
}
......
......@@ -21,7 +21,8 @@ public interface SessionInterface extends Closeable {
/**
* Get the list of the cluster servers for this session.
*
* @return A list of "IP:PORT" strings for the cluster servers in this session.
* @return A list of "ip:port" strings for the cluster servers in this
* session.
*/
ArrayList<String> getClusterServers();
......
......@@ -95,11 +95,14 @@ public class SessionRemote extends SessionWithState implements DataHandler {
this.connectionInfo = ci;
}
@Override
public ArrayList<String> getClusterServers() {
ArrayList<String> serverList = new ArrayList<String>();
for (int i = 0; i < transferList.size(); i++) {
Transfer transfer = transferList.get(i);
serverList.add(transfer.getSocket().getInetAddress().getHostAddress().toString() + ":" + String.valueOf(transfer.getSocket().getPort()));
serverList.add(transfer.getSocket().getInetAddress().
getHostAddress() + ":" +
transfer.getSocket().getPort());
}
return serverList;
}
......
......@@ -1408,7 +1408,8 @@ Returns the name of the default schema for this session."
"Functions (System)","SCOPE_IDENTITY","
SCOPE_IDENTITY()
","
Returns the last inserted identity value for this session for the current scope."
Returns the last inserted identity value for this session for the current scope
(ie."
"Functions (System)","SESSION_ID","
SESSION_ID()
","
......
......@@ -48,8 +48,6 @@ import org.h2.util.Utils;
*/
public class WebServer implements Service {
private static final String COMMAND_HISTORY = "commandHistory";
static final String TRANSFER = "transfer";
static final String[][] LANGUAGES = {
......@@ -75,6 +73,8 @@ public class WebServer implements Service {
{ "zh_TW", "\u4e2d\u6587 (\u7e41\u9ad4)"},
};
private static final String COMMAND_HISTORY = "commandHistory";
private static final String DEFAULT_LANGUAGE = "en";
private static final String[] GENERIC = {
......@@ -549,10 +549,12 @@ public class WebServer implements Service {
return result;
}
// Split the commandHistoryString on non-escaped semicolons and unescape it.
// Split the commandHistoryString on non-escaped semicolons
// and unescape it.
StringBuilder sb = new StringBuilder();
for (int end = 0; ; end++) {
if (end == commandHistoryString.length() || commandHistoryString.charAt(end) == ';') {
for (int end = 0;; end++) {
if (end == commandHistoryString.length() ||
commandHistoryString.charAt(end) == ';') {
if (sb.length() > 0) {
result.add(sb.toString());
sb.delete(0, sb.length());
......@@ -560,16 +562,21 @@ public class WebServer implements Service {
if (end == commandHistoryString.length()) {
break;
}
} else if (commandHistoryString.charAt(end) == '\\' && end < commandHistoryString.length() - 1) {
} else if (commandHistoryString.charAt(end) == '\\' &&
end < commandHistoryString.length() - 1) {
sb.append(commandHistoryString.charAt(++end));
} else {
sb.append(commandHistoryString.charAt(end));
}
}
return result;
}
/**
* Save the command history to the properties file.
*
* @param commandHistory the history
*/
public void saveCommandHistoryList(ArrayList<String> commandHistory) {
StringBuilder sb = new StringBuilder();
for (String s : commandHistory) {
......
......@@ -67,7 +67,8 @@ class WebSession {
WebSession(WebServer server) {
this.server = server;
// This must be stored in the session rather than in the server.
// Otherwise, one client could allow saving history for others (insecure).
// Otherwise, one client could allow
// saving history for others (insecure).
this.commandHistory = server.getCommandHistoryList();
}
......
......@@ -280,7 +280,6 @@ public class TestCluster extends TestBase {
conn = getConnection(urlCluster, user, password);
Properties p = conn.getClientInfo();
assertEquals("2", p.getProperty("numServers"));
assertEquals("127.0.0.1:" + port1, p.getProperty("server0"));
assertEquals("127.0.0.1:" + port2, p.getProperty("server1"));
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论