diff --git a/h2-1.4.196.pom b/h2-1.4.196.pom new file mode 100644 index 0000000000000000000000000000000000000000..0122b4c8a80731b81136957829e9c6f31a4744de --- /dev/null +++ b/h2-1.4.196.pom @@ -0,0 +1,30 @@ + + 4.0.0 + com.h2database + h2 + 1.4.196 + jar + H2 Database Engine + http://www.h2database.com + H2 Database Engine + + + MPL 2.0 or EPL 1.0 + http://h2database.com/html/license.html + repo + + + + scm:git:https://github.com/h2database/h2database + https://github.com/h2database/h2database + + + + thomas.tom.mueller + Thomas Mueller + thomas.tom.mueller at gmail dot com + + + + + \ No newline at end of file diff --git a/h2-2017-06-10.zip b/h2-2017-06-10.zip new file mode 100644 index 0000000000000000000000000000000000000000..17d1d728802fecc3d568354a8d89972e02844ddd Binary files /dev/null and b/h2-2017-06-10.zip differ diff --git a/h2.spec b/h2.spec new file mode 100644 index 0000000000000000000000000000000000000000..79744d4f18587c14da3ed7d9e948cff5f70a40ba --- /dev/null +++ b/h2.spec @@ -0,0 +1,68 @@ +Name: h2 +Version: 1.4.196 +Release: 1 +Summary: Java SQL database +License: (EPL or MPLv2.0 or LGPLv3+) and ASL 2.0 +URL: http://www.h2database.com +Source0: http://www.h2database.com/h2-2017-06-10.zip +Source1: https://repo1.maven.org/maven2/com/h2database/h2/%{version}/h2-%{version}.pom +Patch0: port-to-lucene-6.patch +BuildArch: noarch +BuildRequires: javapackages-local lucene >= 6.1.0 lucene-analysis >= 6.1.0 +BuildRequires: lucene-queryparser >= 6.1.0 slf4j felix-osgi-core glassfish-servlet-api jts +%description +H2 is a the Java SQL database. The main features of H2 are: Very fast, open +source, JDBC API; Embedded and server modes; In-memory databases; Browser +based Console application; Small footprint: around 1 MB jar file size. + +%package javadoc +Summary: Javadocs for %{name} +%description javadoc +This package contains the API documentation for %{name}. + +%prep +%setup -q -n %{name} +%patch0 -p2 +rm src/main/org/h2/util/OsgiDataSourceFactory.java +sed -i -e '/OsgiDataSourceFactory/d' src/main/org/h2/util/DbDriverActivator.java +sed -i -e '/org.osgi.service.jdbc/d' src/main/META-INF/MANIFEST.MF +find -name '*.class' -delete +find -name '*.jar' -delete +find -name '*.exe' -delete +find -name '*.dll' -delete +sed -i -e 's/com\.vividsolutions\.jts/org.locationtech.jts/' $(find -name *.java) +sed -i -e 's/vividsolutions/vividsolutions locationtech/' src/tools/org/h2/build/doc/dictionary.txt +sed -i -e '/downloadTest();/d' -e '/download();/d' \ + src/tools/org/h2/build/Build.java +sed -i -e '/TestNetUtils/d' \ + src/test/org/h2/test/TestAll.java +mkdir ext +ln -s -T $(build-classpath jts) ext/jts-core-1.14.0.jar +ln -s -T $(build-classpath glassfish-servlet-api) ext/servlet-api-3.1.0.jar +ln -s -T $(build-classpath slf4j/api) ext/slf4j-api-1.6.0.jar +ln -s -T $(build-classpath slf4j/nop) ext/slf4j-nop-1.6.0.jar +ln -s -T $(build-classpath lucene/lucene-core) ext/lucene-core-6.1.0.jar +ln -s -T $(build-classpath lucene/lucene-analyzers-common) ext/lucene-analyzers-common-6.1.0.jar +ln -s -T $(build-classpath lucene/lucene-queryparser) ext/lucene-queryparser-6.1.0.jar +ln -s -T $(build-classpath felix/org.osgi.core) ext/org.osgi.core-4.2.0.jar +echo "classic queryparser" >> src/tools/org/h2/build/doc/dictionary.txt + +%build +export JAVA_HOME=%{_jvmdir}/java +sh build.sh jar docs testFast + +%install +%mvn_artifact %SOURCE1 bin/h2-%{version}.jar +%mvn_install -J docs/javadoc + +%files -f .mfiles +%doc docs/index.html +%doc docs/html +%license src/docsrc/html/license.html + +%files javadoc -f .mfiles-javadoc +%license src/docsrc/html/license.html + +%changelog +* Mon Aug 3 2020 yanan li - 1.4.196-1 +- Package init diff --git a/h2.yaml b/h2.yaml new file mode 100644 index 0000000000000000000000000000000000000000..00bfc18a7f2961ce6d155ce92b48ce46075f4141 --- /dev/null +++ b/h2.yaml @@ -0,0 +1,5 @@ +git_url: https://github.com/h2database/h2database.git +version_control: github +src_repo: h2database/h2database +tag_prefix: "version-" +seperator: "." diff --git a/port-to-lucene-6.patch b/port-to-lucene-6.patch new file mode 100644 index 0000000000000000000000000000000000000000..19be17fc82821331382865ea33fc3dd49742183a --- /dev/null +++ b/port-to-lucene-6.patch @@ -0,0 +1,182 @@ +From 7e707748a5d500c34b2d6350c0093c05c3d2775c Mon Sep 17 00:00:00 2001 +From: Mat Booth +Date: Mon, 8 Aug 2016 19:48:08 +0100 +Subject: [PATCH 2/2] Update to lucene 5 + +--- + h2/pom.xml | 13 ++++++++++++- + h2/src/main/META-INF/MANIFEST.MF | 16 ++++++++-------- + h2/src/main/org/h2/fulltext/FullTextLucene.java | 18 +++++++++--------- + h2/src/tools/org/h2/build/Build.java | 8 ++++++-- + 4 files changed, 35 insertions(+), 20 deletions(-) + +diff --git a/h2/src/main/META-INF/MANIFEST.MF b/h2/src/main/META-INF/MANIFEST.MF +index 9f219d1..49dc47d 100644 +--- a/h2/src/main/META-INF/MANIFEST.MF ++++ b/h2/src/main/META-INF/MANIFEST.MF +@@ -23,14 +23,14 @@ Import-Package: javax.management, + javax.sql, + javax.tools;resolution:=optional, + javax.transaction.xa;resolution:=optional, +- org.apache.lucene.analysis;version="[3.6.2,4.0.0)";resolution:=optional, +- org.apache.lucene.analysis.standard;version="[3.6.2,4.0.0)";resolution:=optional, +- org.apache.lucene.document;version="[3.6.2,4.0.0)";resolution:=optional, +- org.apache.lucene.index;version="[3.6.2,4.0.0)";resolution:=optional, +- org.apache.lucene.queryParser;version="[3.6.2,4.0.0)";resolution:=optional, +- org.apache.lucene.search;version="[3.6.2,4.0.0)";resolution:=optional, +- org.apache.lucene.store;version="[3.6.2,4.0.0)";resolution:=optional, +- org.apache.lucene.util;version="[3.6.2,4.0.0)";resolution:=optional, ++ org.apache.lucene.analysis;version="[6.1.0,8.0.0)";resolution:=optional, ++ org.apache.lucene.analysis.standard;version="[6.1.0,8.0.0)";resolution:=optional, ++ org.apache.lucene.document;version="[6.1.0,8.0.0)";resolution:=optional, ++ org.apache.lucene.index;version="[6.1.0,8.0.0)";resolution:=optional, ++ org.apache.lucene.queryParser;version="[6.1.0,8.0.0)";resolution:=optional, ++ org.apache.lucene.search;version="[6.1.0,8.0.0)";resolution:=optional, ++ org.apache.lucene.store;version="[6.1.0,8.0.0)";resolution:=optional, ++ org.apache.lucene.util;version="[6.1.0,8.0.0)";resolution:=optional, + com.vividsolutions.jts.geom;version="1.14.0";resolution:=optional, + com.vividsolutions.jts.io;version="1.14.0";resolution:=optional, + org.h2;version="[${version},1.5.0)", +diff --git a/h2/src/main/org/h2/fulltext/FullTextLucene.java b/h2/src/main/org/h2/fulltext/FullTextLucene.java +index f24bcab..d9c5b92 100644 +--- a/h2/src/main/org/h2/fulltext/FullTextLucene.java ++++ b/h2/src/main/org/h2/fulltext/FullTextLucene.java +@@ -19,10 +19,13 @@ + import org.apache.lucene.document.DateTools; + import org.apache.lucene.document.Document; + import org.apache.lucene.document.Field; ++import org.apache.lucene.document.StringField; ++import org.apache.lucene.document.TextField; ++import org.apache.lucene.index.DirectoryReader; + import org.apache.lucene.index.IndexReader; + import org.apache.lucene.index.IndexWriterConfig; + import org.apache.lucene.index.Term; +-import org.apache.lucene.queryParser.QueryParser; ++import org.apache.lucene.queryparser.classic.QueryParser; + import org.apache.lucene.search.IndexSearcher; + import org.apache.lucene.search.Query; + import org.h2.api.Trigger; +@@ -303,13 +306,14 @@ + if (access == null) { + try { + Directory indexDir = path.startsWith(IN_MEMORY_PREFIX) ? +- new RAMDirectory() : FSDirectory.open(new File(path)); +- Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_30); +- IndexWriterConfig conf = new IndexWriterConfig(Version.LUCENE_30, analyzer); ++ new RAMDirectory() : FSDirectory.open(new File(path).toPath()); ++ Analyzer analyzer = new StandardAnalyzer(); ++ analyzer.setVersion(Version.LUCENE_6_1_0); ++ IndexWriterConfig conf = new IndexWriterConfig(analyzer); + conf.setOpenMode(IndexWriterConfig.OpenMode.CREATE_OR_APPEND); + IndexWriter writer = new IndexWriter(indexDir, conf); + //see http://wiki.apache.org/lucene-java/NearRealtimeSearch +- IndexReader reader = IndexReader.open(writer, true); ++ IndexReader reader = DirectoryReader.open(writer, true, true); + access = new IndexAccess(); + access.writer = writer; + access.reader = reader; +@@ -394,7 +398,6 @@ + synchronized (INDEX_ACCESS) { + try { + INDEX_ACCESS.remove(indexPath); +- access.searcher.close(); + access.reader.close(); + access.writer.close(); + } catch (Exception e) { +@@ -430,7 +433,7 @@ + // reuse the same analyzer; it's thread-safe; + // also allows subclasses to control the analyzer used. + Analyzer analyzer = access.writer.getAnalyzer(); +- QueryParser parser = new QueryParser(Version.LUCENE_30, ++ QueryParser parser = new QueryParser( + LUCENE_FIELD_DATA, analyzer); + Query query = parser.parse(text); + // Lucene 3 insists on a hard limit and will not provide +@@ -440,10 +443,10 @@ + int maxResults = (limit == 0 ? 100 : limit) + offset; + TopDocs docs = searcher.search(query, maxResults); + if (limit == 0) { +- limit = docs.totalHits; ++ limit = (int)docs.totalHits; + } + for (int i = 0, len = docs.scoreDocs.length; +- i < limit && i + offset < docs.totalHits ++ i < limit && i + offset < (int)docs.totalHits + && i + offset < len; i++) { + ScoreDoc sd = docs.scoreDocs[i + offset]; + Document doc = searcher.doc(sd.doc); +@@ -604,9 +607,8 @@ + try { + indexAccess.writer.commit(); + // recreate Searcher with the IndexWriter's reader. +- indexAccess.searcher.close(); + indexAccess.reader.close(); +- indexAccess.reader = IndexReader.open(indexAccess.writer, true); ++ indexAccess.reader = DirectoryReader.open(indexAccess.writer, true, true); + indexAccess.searcher = new IndexSearcher(indexAccess.reader); + } catch (IOException e) { + throw convertException(e); +@@ -622,12 +624,12 @@ + protected void insert(Object[] row, boolean commitIndex) throws SQLException { + String query = getQuery(row); + Document doc = new Document(); +- doc.add(new Field(LUCENE_FIELD_QUERY, query, +- Field.Store.YES, Field.Index.NOT_ANALYZED)); ++ doc.add(new StringField(LUCENE_FIELD_QUERY, query, ++ Field.Store.YES)); + long time = System.currentTimeMillis(); +- doc.add(new Field(LUCENE_FIELD_MODIFIED, ++ doc.add(new StringField(LUCENE_FIELD_MODIFIED, + DateTools.timeToString(time, DateTools.Resolution.SECOND), +- Field.Store.YES, Field.Index.NOT_ANALYZED)); ++ Field.Store.YES)); + StatementBuilder buff = new StatementBuilder(); + for (int index : indexColumns) { + String columnName = columns[index]; +@@ -638,15 +640,14 @@ + if (columnName.startsWith(LUCENE_FIELD_COLUMN_PREFIX)) { + columnName = LUCENE_FIELD_COLUMN_PREFIX + columnName; + } +- doc.add(new Field(columnName, data, +- Field.Store.NO, Field.Index.ANALYZED)); ++ doc.add(new TextField(columnName, data, ++ Field.Store.NO)); + buff.appendExceptFirst(" "); + buff.append(data); + } + Field.Store storeText = STORE_DOCUMENT_TEXT_IN_INDEX ? + Field.Store.YES : Field.Store.NO; +- doc.add(new Field(LUCENE_FIELD_DATA, buff.toString(), storeText, +- Field.Index.ANALYZED)); ++ doc.add(new TextField(LUCENE_FIELD_DATA, buff.toString(), storeText)); + try { + indexAccess.writer.addDocument(doc); + if (commitIndex) { +diff --git a/h2/src/tools/org/h2/build/Build.java b/h2/src/tools/org/h2/build/Build.java +index a599656..24d97c6 100644 +--- a/h2/src/tools/org/h2/build/Build.java ++++ b/h2/src/tools/org/h2/build/Build.java +@@ -204,7 +204,9 @@ public class Build extends BuildBase { + download(); + String classpath = "temp" + + File.pathSeparator + "ext/servlet-api-3.1.0.jar" + +- File.pathSeparator + "ext/lucene-core-3.6.2.jar" + ++ File.pathSeparator + "ext/lucene-core-6.1.0.jar" + ++ File.pathSeparator + "ext/lucene-analyzers-common-6.1.0.jar" + ++ File.pathSeparator + "ext/lucene-queryparser-6.1.0.jar" + + File.pathSeparator + "ext/slf4j-api-1.6.0.jar" + + File.pathSeparator + "ext/org.osgi.core-4.2.0.jar" + + File.pathSeparator + "ext/org.osgi.enterprise-4.2.0.jar" + +@@ -595,7 +597,9 @@ public class Build extends BuildBase { + javadoc("-sourcepath", "src/main", "org.h2.jdbc", "org.h2.jdbcx", + "org.h2.tools", "org.h2.api", "org.h2.engine", "org.h2.fulltext", + "-classpath", +- "ext/lucene-core-3.6.2.jar" + ++ "ext/lucene-core-6.1.0.jar" + File.pathSeparator + ++ "ext/lucene-analyzers-common-6.1.0.jar" + File.pathSeparator + ++ "ext/lucene-queryparser-6.1.0.jar" + + File.pathSeparator + "ext/jts-core-1.14.0.jar", + "-docletpath", "bin" + File.pathSeparator + "temp", + "-doclet", "org.h2.build.doclet.Doclet"); +-- +2.5.5