提交 2906f485 authored 作者: Thomas Mueller's avatar Thomas Mueller

--no commit message

--no commit message
上级 f37b24e5
...@@ -17,7 +17,9 @@ Change Log ...@@ -17,7 +17,9 @@ Change Log
<h2>Next Version (unreleased)</h2> <h2>Next Version (unreleased)</h2>
<ul> <ul>
<li>Sometimes an exception 'File ID mismatch' or 'try to add a record twice' <li>H2 is now dual-licensed under the Eclipse Public License (EPL) and the
old 'H2 License' (which is basically MPL).
</li><li>Sometimes an exception 'File ID mismatch' or 'try to add a record twice'
occured after large records (8 KB or larger) are updated or deleted. occured after large records (8 KB or larger) are updated or deleted.
See also http://code.google.com/p/h2database/issues/detail?id=22 See also http://code.google.com/p/h2database/issues/detail?id=22
</li><li>H2 Console: The tools can now be translated </li><li>H2 Console: The tools can now be translated
......
...@@ -67,7 +67,7 @@ public class WebServer implements Service { ...@@ -67,7 +67,7 @@ public class WebServer implements Service {
{ "ru", "\u0440\u0443\u0441\u0441\u043a\u0438\u0439"}, { "ru", "\u0440\u0443\u0441\u0441\u043a\u0438\u0439"},
{ "tr", "T\u00fcrk\u00e7e"}, { "tr", "T\u00fcrk\u00e7e"},
{ "uk", "\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430"}, { "uk", "\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430"},
{ "zh_CN", "\u4e2d\u6587 (\u7c21\u9ad4)"}, { "zh_CN", "\u4e2d\u6587 (\u7b80\u4f53)"},
{ "zh_TW", "\u4e2d\u6587 (\u7e41\u9ad4)"}, { "zh_TW", "\u4e2d\u6587 (\u7e41\u9ad4)"},
}; };
......
.translator=junheng.song (sjh21 (at) hot mail (dot) com); Created by JInto - www.guh-software.de - Mon Apr 10 2006 .translator=junheng.song (sjh21 (at) hot mail (dot) com); Created by JInto - www.guh-software.de - Mon Apr 10 2006
a.help=\u5E2E\u52A9 a.help=\u5E2E\u52A9
a.language=\u4E2D\u6587 a.language=\u4E2D\u6587 (\u7B80\u4F53)
a.lynxNotSupported=\u62B1\u6B49, \u76EE\u524D\u8FD8\u4E0D\u652F\u6301Lynx a.lynxNotSupported=\u62B1\u6B49, \u76EE\u524D\u8FD8\u4E0D\u652F\u6301Lynx
a.password=\u5BC6\u7801 a.password=\u5BC6\u7801
a.remoteConnectionsDisabled=\u62B1\u6B49, \u670D\u52A1\u5668\u4E0A\u7684\u8FDC\u7A0B\u8BA1\u7B97\u673A\u8FDE\u63A5\u88AB\u7981\u7528. a.remoteConnectionsDisabled=\u62B1\u6B49, \u670D\u52A1\u5668\u4E0A\u7684\u8FDC\u7A0B\u8BA1\u7B97\u673A\u8FDE\u63A5\u88AB\u7981\u7528.
......
...@@ -94,45 +94,45 @@ toolbar.refresh=\u66F4\u65B0 ...@@ -94,45 +94,45 @@ toolbar.refresh=\u66F4\u65B0
toolbar.rollback=\u9000\u8FD4 (rollback) toolbar.rollback=\u9000\u8FD4 (rollback)
toolbar.run=\u57F7\u884C (Ctrl+Enter) toolbar.run=\u57F7\u884C (Ctrl+Enter)
toolbar.sqlStatement=SQL \u8FF0\u53E5 toolbar.sqlStatement=SQL \u8FF0\u53E5
tools.backup=\#Backup tools.backup=\u5099\u4EFD
tools.backup.help=\#Creates a backup of a database. tools.backup.help=\u5EFA\u7ACB\u8CC7\u6599\u5EAB\u7684\u5099\u4EFD
tools.changePassword=\#ChangePassword tools.changePassword=\u8B8A\u66F4\u5BC6\u78BC
tools.changePassword.help=\#Allows changing the database file password. tools.changePassword.help=\u5141\u8A31\u8B8A\u66F4\u8CC7\u6599\u5EAB\u6A94\u6848\u7684\u5BC6\u78BC
tools.cipher=\#Cipher (AES or XTEA) tools.cipher=\u52A0\u5BC6 (AES \u6216 XTEA)
tools.commandLine=\#Command line tools.commandLine=\u547D\u4EE4\u5217
tools.convertTraceFile=\#ConvertTraceFile tools.convertTraceFile=\u8F49\u63DBTrace\u6A94\u6848
tools.convertTraceFile.help=\#Converts a .trace.db file to a Java application and SQL script. tools.convertTraceFile.help=\u5C07.trace.db\u6A94\u6848\u8F49\u63DB\u6210Java\u61C9\u7528\u7A0B\u5F0F\u8207SQL\u8173\u672C (script).
tools.createCluster=\#CreateCluster tools.createCluster=\u5EFA\u7ACB\u53E2\u96C6 (Cluster)
tools.createCluster.help=\#Creates a cluster from a standalone database. tools.createCluster.help=\u81EA\u7368\u7ACB\u7684\u8CC7\u6599\u5EAB\u5EFA\u7ACB\u53E2\u96C6 (Cluster)
tools.databaseName=\#Database name tools.databaseName=\u8CC7\u6599\u5EAB\u540D\u7A31
tools.decryptionPassword=\#Decryption password tools.decryptionPassword=\u660E\u6587\u5BC6\u78BC
tools.deleteDbFiles=\#DeleteDbFiles tools.deleteDbFiles=\u522A\u9664\u8CC7\u6599\u5EAB\u6A94\u6848
tools.deleteDbFiles.help=\#Deletes all files belonging to a database. tools.deleteDbFiles.help=\u522A\u9664\u67D0\u4E00\u8CC7\u6599\u5EAB\u7684\u6240\u6709\u76F8\u95DC\u6A94\u6848
tools.directory=\#Directory tools.directory=\u76EE\u9304
tools.encryptionPassword=\#Encryption password tools.encryptionPassword=\u5BC6\u6587\u5BC6\u78BC
tools.javaDirectoryClassName=\#Java directory and class name tools.javaDirectoryClassName=Java\u76EE\u9304 (directory) \u8207\u985E\u5225 (class) \u540D\u7A31
tools.recover=\#Recover tools.recover=\u4FEE\u5FA9
tools.recover.help=\#Helps recovering a corrupted database. tools.recover.help=\u5354\u52A9\u4FEE\u5FA9\u640D\u58DE\u7684\u8CC7\u6599\u5EAB
tools.restore=\#Restore tools.restore=\u56DE\u5B58
tools.restore.help=\#Restores a database backup. tools.restore.help=\u56DE\u5B58\u8CC7\u6599\u5EAB\u7684\u5099\u4EFD
tools.result=\#Result tools.result=\u7D50\u679C
tools.run=\#Run tools.run=\u57F7\u884C
tools.runScript=\#RunScript tools.runScript=\u57F7\u884C\u8173\u672C (Script)
tools.runScript.help=\#Runs a SQL script. tools.runScript.help=\u57F7\u884CSQL\u8173\u672C (script)
tools.script=\#Script tools.script=\u8173\u672C (Script)
tools.script.help=\#Allows to convert a database to a SQL script for backup or migration. tools.script.help=\u5141\u8A31\u81EA\u8CC7\u6599\u5EAB\u8F49\u63DB\u51FA\u70BA\u5099\u4EFD\u6216\u642C\u9077\u7528\u7684SQL\u8173\u672C(script)
tools.scriptFileName=\#Script file name tools.scriptFileName=\u8173\u672C (Script) \u6A94\u6848\u540D\u7A31
tools.serverList=\#Server list tools.serverList=\u4F3A\u670D\u5668\u6E05\u55AE
tools.sourceDatabaseName=\#Source database name tools.sourceDatabaseName=\u4F86\u6E90 (source) \u8CC7\u6599\u5EAB\u540D\u7A31
tools.sourceDatabaseURL=\#Source database URL tools.sourceDatabaseURL=\u4F86\u6E90 (source) \u8CC7\u6599\u5EABURL
tools.sourceDirectory=\#Target directory tools.sourceDirectory=\u76EE\u7684\u76EE\u9304 (target directory)
tools.sourceFileName=\#Source file name tools.sourceFileName=\u4F86\u6E90 (source) \u6A94\u6848\u540D\u7A31
tools.sourceScriptFileName=\#Source script file name tools.sourceScriptFileName=\u4F86\u6E90\u8173\u672C (script) \u6A94\u6848\u540D\u7A31
tools.targetDatabaseName=\#Target database name tools.targetDatabaseName=\u76EE\u7684 (target) \u8CC7\u6599\u5EAB\u540D\u7A31
tools.targetDatabaseURL=\#Target database URL tools.targetDatabaseURL=\u76EE\u7684 (target) \u8CC7\u6599\u5EABURL
tools.targetFileName=\#Target file name tools.targetFileName=\u76EE\u7684 (target) \u6A94\u6848\u540D\u7A31
tools.targetScriptFileName=\#Target script file name tools.targetScriptFileName=\u76EE\u7684\u8173\u672C (script) \u6A94\u6848\u540D\u7A31
tools.traceFileName=\#Trace file name tools.traceFileName=Trace \u6A94\u6848\u540D\u7A31
tree.admin=\u7BA1\u7406 tree.admin=\u7BA1\u7406
tree.current=\u76EE\u524D\u7684\u6578\u503C tree.current=\u76EE\u524D\u7684\u6578\u503C
tree.hashed=\u4F7F\u7528\u96DC\u6E4A\u6CD5 (hashed) tree.hashed=\u4F7F\u7528\u96DC\u6E4A\u6CD5 (hashed)
......
...@@ -584,15 +584,19 @@ public class StringUtils { ...@@ -584,15 +584,19 @@ public class StringUtils {
} }
public static String replaceAll(String s, String before, String after) { public static String replaceAll(String s, String before, String after) {
StringBuffer buff = new StringBuffer(s.length());
int index = 0; int index = 0;
while (true) { while (true) {
int next = s.indexOf(before, index); int next = s.indexOf(before, index);
if (next < 0) { if (next < 0) {
return s; buff.append(s.substring(index));
break;
} }
s = s.substring(0, next) + after + s.substring(next + before.length()); buff.append(s.substring(index, next));
index = next + after.length(); buff.append(after);
index = next + before.length();
} }
return buff.toString();
} }
public static String quoteIdentifier(String s) { public static String quoteIdentifier(String s) {
......
...@@ -160,7 +160,7 @@ java org.h2.test.TestAll timer ...@@ -160,7 +160,7 @@ java org.h2.test.TestAll timer
/* /*
Multiple-Multiple-Licensed under the H2 License, upload jazoon
test case for out of memory (try to corrupt the database using out of memory) test case for out of memory (try to corrupt the database using out of memory)
......
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- <!--
Copyright 2004-2008 H2 Group. Multiple-Licensed under the H2 License, Version 1.0,, Copyright 2004-2008 H2 Group.
Multiple-Licensed under the H2 License, Version 1.0,
and under the Eclipse Public License, Version 1.0 and under the Eclipse Public License, Version 1.0
(http://h2database.com/html/license.html). (http://h2database.com/html/license.html).
Initial Developer: H2 Group Initial Developer: H2 Group
--> -->
<html> <html>
......
...@@ -8,12 +8,11 @@ package org.h2.build; ...@@ -8,12 +8,11 @@ package org.h2.build;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.List;
import org.h2.build.code.SwitchSource; import org.h2.build.code.SwitchSource;
/** /**
* The implementation of the pure Java build. * The build definition.
*/ */
public class Build extends BuildBase { public class Build extends BuildBase {
...@@ -55,11 +54,11 @@ public class Build extends BuildBase { ...@@ -55,11 +54,11 @@ public class Build extends BuildBase {
} }
public void resources() { public void resources() {
List files = getFiles("src/main"); FileList files = getFiles("src/main").
files = filterFiles(files, false, "*.java"); exclude("*.java").
files = filterFiles(files, false, "*/package.html"); exclude("*/package.html").
files = filterFiles(files, false, "*/java.sql.Driver"); exclude("*/java.sql.Driver");
zip("temp/org/h2/util/data.zip", "src/main", files, true, false); zip("temp/org/h2/util/data.zip", files, "src/main", true, false);
} }
private void manifest(String mainClassName) { private void manifest(String mainClassName) {
...@@ -67,8 +66,8 @@ public class Build extends BuildBase { ...@@ -67,8 +66,8 @@ public class Build extends BuildBase {
String version = getStaticField("org.h2.engine.Constants", "VERSION"); String version = getStaticField("org.h2.engine.Constants", "VERSION");
manifest = replaceAll(manifest, "${version}", version); manifest = replaceAll(manifest, "${version}", version);
manifest = replaceAll(manifest, "${buildJdk}", getJavaSpecVersion()); manifest = replaceAll(manifest, "${buildJdk}", getJavaSpecVersion());
String createdBy = System.getProperty("java.runtime.version") + " (" + System.getProperty("java.vm.vendor") String createdBy = System.getProperty("java.runtime.version") +
+ ")"; " (" + System.getProperty("java.vm.vendor") + ")";
manifest = replaceAll(manifest, "${createdBy}", createdBy); manifest = replaceAll(manifest, "${createdBy}", createdBy);
String mainClassTag = manifest == null ? "" : "Main-Class: " + mainClassName; String mainClassTag = manifest == null ? "" : "Main-Class: " + mainClassName;
manifest = replaceAll(manifest, "${mainClassTag}", mainClassTag); manifest = replaceAll(manifest, "${mainClassTag}", mainClassTag);
...@@ -78,33 +77,33 @@ public class Build extends BuildBase { ...@@ -78,33 +77,33 @@ public class Build extends BuildBase {
public void jar() { public void jar() {
compile(); compile();
manifest("org.h2.tools.Console"); manifest("org.h2.tools.Console");
List files = getFiles("temp"); FileList files = getFiles("temp").
files = filterFiles(files, false, "temp/org/h2/dev/*"); exclude("temp/org/h2/dev/*").
files = filterFiles(files, false, "temp/org/h2/build/*"); exclude("temp/org/h2/build/*").
files = filterFiles(files, false, "temp/org/h2/samples/*"); exclude("temp/org/h2/samples/*").
files = filterFiles(files, false, "temp/org/h2/test/*"); exclude("temp/org/h2/test/*").
files = filterFiles(files, false, "*.bat"); exclude("*.bat").
files = filterFiles(files, false, "*.sh"); exclude("*.sh").
files = filterFiles(files, false, "*.txt"); exclude("*.txt");
jar("bin/h2.jar", "temp", files); jar("bin/h2.jar", files, "temp");
} }
public void jarSmall() { public void jarSmall() {
compile(false); compile(false);
List files = getFiles("temp"); FileList files = getFiles("temp").
files = filterFiles(files, false, "temp/org/h2/dev/*"); exclude("temp/org/h2/dev/*").
files = filterFiles(files, false, "temp/org/h2/build/*"); exclude("temp/org/h2/build/*").
files = filterFiles(files, false, "temp/org/h2/samples/*"); exclude("temp/org/h2/samples/*").
files = filterFiles(files, false, "temp/org/h2/test/*"); exclude("temp/org/h2/test/*").
files = filterFiles(files, false, "*.bat"); exclude("*.bat").
files = filterFiles(files, false, "*.sh"); exclude("*.sh").
files = filterFiles(files, false, "*.txt"); exclude("*.txt").
files = filterFiles(files, false, "temp/META-INF/*"); exclude("temp/META-INF/*");
zip("temp/h2classes.zip", "temp", files, true, true); zip("temp/h2classes.zip", files, "temp", true, true);
manifest("org.h2.tools.Console\nClass-Path: h2classes.zip"); manifest("org.h2.tools.Console\nClass-Path: h2classes.zip");
files = getFiles("temp/h2classes.zip"); files = getFiles("temp/h2classes.zip");
files.addAll(getFiles("temp/META-INF")); files.addAll(getFiles("temp/META-INF"));
jar("bin/h2small.jar", "temp", files); jar("bin/h2small.jar", files, "temp");
} }
public void download() { public void download() {
...@@ -135,7 +134,7 @@ public class Build extends BuildBase { ...@@ -135,7 +134,7 @@ public class Build extends BuildBase {
+ "ext/lucene-core-2.2.0.jar" + File.pathSeparator + System.getProperty("java.home") + "ext/lucene-core-2.2.0.jar" + File.pathSeparator + System.getProperty("java.home")
+ "/../lib/tools.jar"; + "/../lib/tools.jar";
List files = getFiles("src/main"); FileList files = getFiles("src/main");
if (debugInfo) { if (debugInfo) {
javac(new String[] { "-d", "temp", "-sourcepath", "src/main", "-classpath", classpath }, files); javac(new String[] { "-d", "temp", "-sourcepath", "src/main", "-classpath", classpath }, files);
} else { } else {
...@@ -150,14 +149,13 @@ public class Build extends BuildBase { ...@@ -150,14 +149,13 @@ public class Build extends BuildBase {
files = getFiles("src/main/META-INF/services"); files = getFiles("src/main/META-INF/services");
copy("temp", files, "src/main"); copy("temp", files, "src/main");
files = getFiles("src/installer"); files = getFiles("src/installer").keep("*.bat");
files = filterFiles(files, true, "*.bat"); files.addAll(getFiles("src/installer").keep("*.sh"));
files = filterFiles(files, true, "*.sh");
copy("temp", files, "src/installer"); copy("temp", files, "src/installer");
files = getFiles("src/test"); files = getFiles("src/test").
files = filterFiles(files, false, "*.java"); exclude("*.java").
files = filterFiles(files, false, "*/package.html"); exclude("*/package.html");
copy("temp", files, "src/test"); copy("temp", files, "src/test");
} }
......
...@@ -32,8 +32,8 @@ public class CheckTextFiles { ...@@ -32,8 +32,8 @@ public class CheckTextFiles {
boolean autoFix = true; boolean autoFix = true;
boolean useCRLF = true; boolean useCRLF = true;
// must contain "+" otherwise this here counts as well // must contain "+" otherwise this here counts as well
String copyrightLicense = "Copyright 2004-2008 H2 Group. " + static final String COPYRIGHT = "Copyright 2004-2008 " + "H2 Group.";
"Multiple-Licensed under the H2 License,"; static final String LICENSE = "Multiple-Licensed " + "under the H2 License";
String[] suffixIgnoreLicense = new String[] { "bat", "nsi", "txt", "properties", "xml", "java.sql.Driver", "task", "sh" }; String[] suffixIgnoreLicense = new String[] { "bat", "nsi", "txt", "properties", "xml", "java.sql.Driver", "task", "sh" };
boolean hasError; boolean hasError;
...@@ -106,10 +106,13 @@ public class CheckTextFiles { ...@@ -106,10 +106,13 @@ public class CheckTextFiles {
in.readFully(data); in.readFully(data);
in.close(); in.close();
if (checkLicense) { if (checkLicense) {
if (data.length > copyrightLicense.length()) { if (data.length > COPYRIGHT.length() + LICENSE.length()) {
// don't check tiny files // don't check tiny files
String text = new String(data); String text = new String(data);
if (text.indexOf(copyrightLicense) < 0) { if (text.indexOf(COPYRIGHT) < 0) {
fail(file, "copyright is missing", 0);
}
if (text.indexOf(LICENSE) < 0) {
fail(file, "license is missing", 0); fail(file, "license is missing", 0);
} }
if (text.indexOf("// " + "##") > 0) { if (text.indexOf("// " + "##") > 0) {
......
...@@ -495,4 +495,14 @@ compressibility ext crc enumerate components mkdir jant downloading mismatch ...@@ -495,4 +495,14 @@ compressibility ext crc enumerate components mkdir jant downloading mismatch
timebomb thinks technotes chmod overloading javase flux solves fastest timebomb thinks technotes chmod overloading javase flux solves fastest
quickstarter bridge bpm trust guides improvements customizing easiest quickstarter bridge bpm trust guides improvements customizing easiest
workflow seque npl netstat ano spellcheck eplfaq opensource zdnet burnette workflow seque npl netstat ano spellcheck eplfaq opensource zdnet burnette
regard epl huge chao derek nls regard epl huge chao derek nls lawsuits counterclaim participate assurances
\ No newline at end of file cooperate indemnified disclaims practicable cease solely receives partners
exchange agrees inconsistency customarily reproduction arose noncompliance
serve contributions publicly facilitate implication jury acceptance revisions
accompanying bring unavailability iii appropriateness originate laws stated
although sole accordance filed originates responsibilities alleged defend
material hereto equipment copyrighted enforceability excludes licensees
estoppel manner reserves defense complies suitable identify infringe
originator brought contribution effectively assumes waives conjunction
informs negotiations collectively omissions trial nor qualify steward neither
worldwide everyone additions expense lawsuit checksums jazoon
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论