You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by to...@apache.org on 2019/06/30 04:42:00 UTC
[lucene-solr] branch branch_8x updated: LUCENE-8874: Show SPI names
instead of class names in Luke Analysis tab.
This is an automated email from the ASF dual-hosted git repository.
tomoko pushed a commit to branch branch_8x
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
The following commit(s) were added to refs/heads/branch_8x by this push:
new 2804d00 LUCENE-8874: Show SPI names instead of class names in Luke Analysis tab.
2804d00 is described below
commit 2804d00137957dc27dce922103c6286bbc7a9eca
Author: Tomoko Uchida <to...@apache.org>
AuthorDate: Sun Jun 30 13:27:24 2019 +0900
LUCENE-8874: Show SPI names instead of class names in Luke Analysis tab.
---
lucene/CHANGES.txt | 2 ++
.../components/dialog/analysis/AnalysisChainDialogFactory.java | 9 ++++++---
.../org/apache/lucene/luke/models/analysis/AnalysisImpl.java | 7 ++++---
.../org/apache/lucene/luke/models/analysis/AnalysisImplTest.java | 6 +++---
4 files changed, 15 insertions(+), 9 deletions(-)
diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt
index 5916656..70d8a91 100644
--- a/lucene/CHANGES.txt
+++ b/lucene/CHANGES.txt
@@ -109,6 +109,8 @@ Improvements
* LUCENE-8793: Luke enhanced UI for CustomAnalyzer: show detailed analysis steps. (Jun Ohtani via Tomoko Uchida)
+* LUCENE-8874: Show SPI names instead of class names in Luke Analysis tab. (Tomoko Uchida)
+
* LUCENE-8855: Add Accountable to some Query implementations (ab, Adrien Grand)
* LUCENE-8894: Add APIs to find SPI names for Tokenizer/CharFilter/TokenFilter factory classes. (Tomoko Uchida)
diff --git a/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/components/dialog/analysis/AnalysisChainDialogFactory.java b/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/components/dialog/analysis/AnalysisChainDialogFactory.java
index 31fce6d..002fdca 100644
--- a/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/components/dialog/analysis/AnalysisChainDialogFactory.java
+++ b/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/components/dialog/analysis/AnalysisChainDialogFactory.java
@@ -37,6 +37,9 @@ import java.awt.Window;
import java.io.IOException;
import org.apache.lucene.analysis.custom.CustomAnalyzer;
+import org.apache.lucene.analysis.util.CharFilterFactory;
+import org.apache.lucene.analysis.util.TokenFilterFactory;
+import org.apache.lucene.analysis.util.TokenizerFactory;
import org.apache.lucene.luke.app.desktop.Preferences;
import org.apache.lucene.luke.app.desktop.PreferencesFactory;
import org.apache.lucene.luke.app.desktop.util.DialogOpener;
@@ -109,7 +112,7 @@ public class AnalysisChainDialogFactory implements DialogOpener.DialogFactory {
c.weighty = 0.5;
panel.add(new JLabel(MessageUtils.getLocalizedMessage("analysis.dialog.chain.label.charfilters")), c);
- String[] charFilters = analyzer.getCharFilterFactories().stream().map(f -> f.getClass().getName()).toArray(String[]::new);
+ String[] charFilters = analyzer.getCharFilterFactories().stream().map(f -> CharFilterFactory.findSPIName(f.getClass())).toArray(String[]::new);
JList<String> charFilterList = new JList<>(charFilters);
charFilterList.setVisibleRowCount(charFilters.length == 0 ? 1 : Math.min(charFilters.length, 5));
c.gridx = 1;
@@ -124,7 +127,7 @@ public class AnalysisChainDialogFactory implements DialogOpener.DialogFactory {
c.weighty = 0.1;
panel.add(new JLabel(MessageUtils.getLocalizedMessage("analysis.dialog.chain.label.tokenizer")), c);
- String tokenizer = analyzer.getTokenizerFactory().getClass().getName();
+ String tokenizer = TokenizerFactory.findSPIName(analyzer.getTokenizerFactory().getClass());
JTextField tokenizerTF = new JTextField(tokenizer);
tokenizerTF.setColumns(30);
tokenizerTF.setEditable(false);
@@ -142,7 +145,7 @@ public class AnalysisChainDialogFactory implements DialogOpener.DialogFactory {
c.weighty = 0.5;
panel.add(new JLabel(MessageUtils.getLocalizedMessage("analysis.dialog.chain.label.tokenfilters")), c);
- String[] tokenFilters = analyzer.getTokenFilterFactories().stream().map(f -> f.getClass().getName()).toArray(String[]::new);
+ String[] tokenFilters = analyzer.getTokenFilterFactories().stream().map(f -> TokenFilterFactory.findSPIName(f.getClass())).toArray(String[]::new);
JList<String> tokenFilterList = new JList<>(tokenFilters);
tokenFilterList.setVisibleRowCount(tokenFilters.length == 0 ? 1 : Math.min(tokenFilters.length, 5));
tokenFilterList.setMinimumSize(new Dimension(300, 25));
diff --git a/lucene/luke/src/java/org/apache/lucene/luke/models/analysis/AnalysisImpl.java b/lucene/luke/src/java/org/apache/lucene/luke/models/analysis/AnalysisImpl.java
index be821a8..dd06470 100644
--- a/lucene/luke/src/java/org/apache/lucene/luke/models/analysis/AnalysisImpl.java
+++ b/lucene/luke/src/java/org/apache/lucene/luke/models/analysis/AnalysisImpl.java
@@ -247,7 +247,7 @@ public final class AnalysisImpl implements Analysis {
Reader readerForWriteOut = new StringReader(charFilteredSource);
readerForWriteOut = charFilterFactory.create(readerForWriteOut);
charFilteredSource = writeCharStream(readerForWriteOut);
- charfilteredTexts.add(new CharfilteredText(readerForWriteOut.getClass().getName(), charFilteredSource));
+ charfilteredTexts.add(new CharfilteredText(CharFilterFactory.findSPIName(charFilterFactory.getClass()), charFilteredSource));
}
reader = cs;
}
@@ -259,13 +259,14 @@ public final class AnalysisImpl implements Analysis {
((Tokenizer)tokenStream).setReader(reader);
List<Token> tokens = new ArrayList<>();
List<AttributeSource> attributeSources = analyzeTokenStream(tokenStream, tokens);
- namedTokens.add(new NamedTokens(tokenStream.getClass().getName(), tokens));
+ namedTokens.add(new NamedTokens(TokenizerFactory.findSPIName(tokenizerFactory.getClass()), tokens));
+
ListBasedTokenStream listBasedTokenStream = new ListBasedTokenStream(tokenStream, attributeSources);
for (TokenFilterFactory tokenFilterFactory : tokenFilterFactories) {
tokenStream = tokenFilterFactory.create(listBasedTokenStream);
tokens = new ArrayList<>();
attributeSources = analyzeTokenStream(tokenStream, tokens);
- namedTokens.add(new NamedTokens(tokenStream.getClass().getName(), tokens));
+ namedTokens.add(new NamedTokens(TokenFilterFactory.findSPIName(tokenFilterFactory.getClass()), tokens));
try {
listBasedTokenStream.close();
} catch (IOException e) {
diff --git a/lucene/luke/src/test/org/apache/lucene/luke/models/analysis/AnalysisImplTest.java b/lucene/luke/src/test/org/apache/lucene/luke/models/analysis/AnalysisImplTest.java
index b0a2c68..c4bce93 100644
--- a/lucene/luke/src/test/org/apache/lucene/luke/models/analysis/AnalysisImplTest.java
+++ b/lucene/luke/src/test/org/apache/lucene/luke/models/analysis/AnalysisImplTest.java
@@ -165,12 +165,12 @@ public class AnalysisImplTest extends LuceneTestCase {
assertNotNull(result);
assertNotNull(result.getCharfilteredTexts());
assertEquals(1,result.getCharfilteredTexts().size());
- assertEquals("org.apache.lucene.analysis.charfilter.HTMLStripCharFilter", result.getCharfilteredTexts().get(0).getName());
+ assertEquals("htmlStrip", result.getCharfilteredTexts().get(0).getName());
assertNotNull(result.getNamedTokens());
assertEquals(2, result.getNamedTokens().size());
//FIXME check each namedTokensList
- assertEquals("org.apache.lucene.analysis.core.KeywordTokenizer", result.getNamedTokens().get(0).getName());
- assertEquals("org.apache.lucene.analysis.core.LowerCaseFilter", result.getNamedTokens().get(1).getName());
+ assertEquals("keyword", result.getNamedTokens().get(0).getName());
+ assertEquals("lowercase", result.getNamedTokens().get(1).getName());
}
}