From 7617449fd155f80b5b8a38627dd9284b7cf49978 Mon Sep 17 00:00:00 2001 From: nsantacruz Date: Mon, 17 Jul 2023 13:42:58 +0300 Subject: [PATCH] feat: move to stable plugin arch --- .../build.gradle | 47 +++++++++++ .../es-plugin.properties | 1 - .../out/artifacts/elasticsearch.zip | Bin 17513 -> 0 bytes .../elasticsearch-analysis-sefaria.jar | Bin 19590 -> 0 bytes .../plugin-descriptor.properties | 6 -- .../plugin-descriptor.properties | 6 -- .../pom.xml | 74 ------------------ .../plugin/SefariaAnalyzerProvider.java | 21 ----- .../sefariaplugin/plugin/SefariaPlugin.java | 22 ------ .../build.gradle | 2 +- 10 files changed, 48 insertions(+), 131 deletions(-) create mode 100644 Sefaria-ElasticSearch-naive-lemmatizer-less-prefixes/build.gradle delete mode 100644 Sefaria-ElasticSearch-naive-lemmatizer-less-prefixes/es-plugin.properties delete mode 100644 Sefaria-ElasticSearch-naive-lemmatizer-less-prefixes/out/artifacts/elasticsearch.zip delete mode 100644 Sefaria-ElasticSearch-naive-lemmatizer-less-prefixes/out/artifacts/elasticsearch/elasticsearch-analysis-sefaria.jar delete mode 100644 Sefaria-ElasticSearch-naive-lemmatizer-less-prefixes/out/artifacts/elasticsearch/plugin-descriptor.properties delete mode 100644 Sefaria-ElasticSearch-naive-lemmatizer-less-prefixes/plugin-descriptor.properties delete mode 100644 Sefaria-ElasticSearch-naive-lemmatizer-less-prefixes/pom.xml delete mode 100644 Sefaria-ElasticSearch-naive-lemmatizer-less-prefixes/src/main/java/org/sefaria/sefariaplugin/plugin/SefariaAnalyzerProvider.java delete mode 100644 Sefaria-ElasticSearch-naive-lemmatizer-less-prefixes/src/main/java/org/sefaria/sefariaplugin/plugin/SefariaPlugin.java diff --git a/Sefaria-ElasticSearch-naive-lemmatizer-less-prefixes/build.gradle b/Sefaria-ElasticSearch-naive-lemmatizer-less-prefixes/build.gradle new file mode 100644 index 0000000..066cf27 --- /dev/null +++ b/Sefaria-ElasticSearch-naive-lemmatizer-less-prefixes/build.gradle @@ -0,0 +1,47 @@ +ext.pluginApiVersion = '8.7.0' +ext.luceneVersion = '9.5.0' + +buildscript { + ext.pluginApiVersion = '8.7.0' + repositories { + mavenCentral() + } + dependencies { + classpath "org.elasticsearch.gradle:build-tools:${pluginApiVersion}" + } +} + +apply plugin: 'elasticsearch.stable-esplugin' +apply plugin: 'elasticsearch.yaml-rest-test' + +esplugin { + name 'analysis-sefaria-naive-lemmatizer-less-prefixes' + description 'Sefaria analyzer' +} + +group 'org.sefaria.sefariaplugin' +version '1.0-SNAPSHOT' + +repositories { + mavenLocal() + mavenCentral() +} + +dependencies { + + compileOnly "org.elasticsearch.plugin:elasticsearch-plugin-api:${pluginApiVersion}" + compileOnly "org.elasticsearch.plugin:elasticsearch-plugin-analysis-api:${pluginApiVersion}" + compileOnly "org.apache.lucene:lucene-analysis-common:${luceneVersion}" + + testImplementation "org.elasticsearch.plugin:elasticsearch-plugin-api:${pluginApiVersion}" + testImplementation "org.elasticsearch.plugin:elasticsearch-plugin-analysis-api:${pluginApiVersion}" + testImplementation "org.apache.lucene:lucene-analysis-common:${luceneVersion}" + + testImplementation ('junit:junit:4.13.2'){ + exclude group: 'org.hamcrest' + } + testImplementation 'org.mockito:mockito-core:4.4.0' + testImplementation 'org.hamcrest:hamcrest:2.2' + +} + diff --git a/Sefaria-ElasticSearch-naive-lemmatizer-less-prefixes/es-plugin.properties b/Sefaria-ElasticSearch-naive-lemmatizer-less-prefixes/es-plugin.properties deleted file mode 100644 index ddd893a..0000000 --- a/Sefaria-ElasticSearch-naive-lemmatizer-less-prefixes/es-plugin.properties +++ /dev/null @@ -1 +0,0 @@ -plugin=org.sefaria.sefariaplugin.plugin.SefariaPlugin \ No newline at end of file diff --git a/Sefaria-ElasticSearch-naive-lemmatizer-less-prefixes/out/artifacts/elasticsearch.zip b/Sefaria-ElasticSearch-naive-lemmatizer-less-prefixes/out/artifacts/elasticsearch.zip deleted file mode 100644 index b88c4d1456845d13127a67e731d0ebfb5ff3fa00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17513 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

=Q%kzi8`GFiP;usQs)W9HYH6D;ga0{oLZ~I3L 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 Q - - 4.0.0 - - org.sefaria.sefaria-analysis - elasticsearch-analysis-sefaria - 1.0-SNAPSHOT - jar - elasticsearch-analysis-sefaria - http://sefaria.org - - - - - org.apache.maven.plugins - maven-jar-plugin - 2.3.1 - - out/artifacts/elasticsearch - - - - - - - UTF-8 - 7.2.1 - 6.2.3 - 1.0.0 - 11 - 11 - - - - - org.apache.lucene - lucene-test-framework - ${lucene.version} - test - - - org.apache.lucene - lucene-core - ${lucene.version} - provided - - - org.apache.lucene - lucene-analyzers-common - ${lucene.version} - provided - - - org.elasticsearch - elasticsearch - ${elasticsearch.version} - provided - - - com.google.guava - guava - 17.0 - provided - - - junit - junit - 4.11 - test - - - \ No newline at end of file diff --git a/Sefaria-ElasticSearch-naive-lemmatizer-less-prefixes/src/main/java/org/sefaria/sefariaplugin/plugin/SefariaAnalyzerProvider.java b/Sefaria-ElasticSearch-naive-lemmatizer-less-prefixes/src/main/java/org/sefaria/sefariaplugin/plugin/SefariaAnalyzerProvider.java deleted file mode 100644 index 65f2ef7..0000000 --- a/Sefaria-ElasticSearch-naive-lemmatizer-less-prefixes/src/main/java/org/sefaria/sefariaplugin/plugin/SefariaAnalyzerProvider.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.sefaria.sefariaplugin.plugin; - -import org.elasticsearch.common.settings.Settings; -import org.elasticsearch.env.Environment; -import org.elasticsearch.index.IndexSettings; -import org.elasticsearch.index.analysis.AbstractIndexAnalyzerProvider; -import org.sefaria.sefariaplugin.analysis.SefariaAnalyzer; - -public class SefariaAnalyzerProvider extends AbstractIndexAnalyzerProvider { - private final SefariaAnalyzer analyzer; - - public SefariaAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { - super(indexSettings, name, settings); - - analyzer = new SefariaAnalyzer(); - } - - @Override public SefariaAnalyzer get() { - return this.analyzer; - } -} diff --git a/Sefaria-ElasticSearch-naive-lemmatizer-less-prefixes/src/main/java/org/sefaria/sefariaplugin/plugin/SefariaPlugin.java b/Sefaria-ElasticSearch-naive-lemmatizer-less-prefixes/src/main/java/org/sefaria/sefariaplugin/plugin/SefariaPlugin.java deleted file mode 100644 index 3395710..0000000 --- a/Sefaria-ElasticSearch-naive-lemmatizer-less-prefixes/src/main/java/org/sefaria/sefariaplugin/plugin/SefariaPlugin.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.sefaria.sefariaplugin.plugin; -import org.apache.lucene.analysis.Analyzer; -import org.elasticsearch.index.analysis.AnalyzerProvider; -import org.elasticsearch.indices.analysis.AnalysisModule; -import org.elasticsearch.plugins.AnalysisPlugin; -import org.elasticsearch.plugins.Plugin; - -import java.util.HashMap; -import java.util.Map; - -public class SefariaPlugin extends Plugin implements AnalysisPlugin { - - @Override - public Map>> getAnalyzers() { - Map>> extra = new HashMap<>(); - - extra.put("sefaria-naive-lemmatizer-less-prefixes", SefariaAnalyzerProvider::new); - - return extra; - } - -} diff --git a/Sefaria-ElasticSearch-naive-lemmatizer/build.gradle b/Sefaria-ElasticSearch-naive-lemmatizer/build.gradle index 6f037d1..33c4e5b 100644 --- a/Sefaria-ElasticSearch-naive-lemmatizer/build.gradle +++ b/Sefaria-ElasticSearch-naive-lemmatizer/build.gradle @@ -16,7 +16,7 @@ apply plugin: 'elasticsearch.yaml-rest-test' esplugin { name 'analysis-sefaria-naive-lemmatizer' - description 'My analysis plugin' + description 'Sefaria analyzer' } group 'org.sefaria.sefariaplugin'