From 5e6fb5ce465fa8c976ec68471aadb683fd3d490b Mon Sep 17 00:00:00 2001 From: "Edwin L. Punzalan" Date: Fri, 23 Dec 2005 03:35:42 +0000 Subject: [PATCH] Added custom artifact analyzer git-svn-id: https://svn.apache.org/repos/asf/maven/repository-manager/trunk@358691 13f79535-47bb-0310-9956-ffa450edef68 --- .../indexing/AbstractRepositoryIndexer.java | 4 +- .../ArtifactRepositoryIndexAnalyzer.java | 78 +++++++++++++++++++ 2 files changed, 80 insertions(+), 2 deletions(-) create mode 100644 maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/ArtifactRepositoryIndexAnalyzer.java diff --git a/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/AbstractRepositoryIndexer.java b/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/AbstractRepositoryIndexer.java index 41f8494b4..d71a5040d 100644 --- a/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/AbstractRepositoryIndexer.java +++ b/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/AbstractRepositoryIndexer.java @@ -22,7 +22,7 @@ import java.io.IOException; import java.util.Collection; import org.apache.lucene.analysis.Analyzer; -import org.apache.lucene.analysis.standard.StandardAnalyzer; +import org.apache.lucene.analysis.SimpleAnalyzer; import org.apache.lucene.index.IndexReader; import org.apache.lucene.index.IndexWriter; @@ -126,7 +126,7 @@ public abstract class AbstractRepositoryIndexer protected Analyzer getAnalyzer() { - return new StandardAnalyzer(); + return new ArtifactRepositoryIndexAnalyzer( new SimpleAnalyzer() ); } protected void validateIndex() diff --git a/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/ArtifactRepositoryIndexAnalyzer.java b/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/ArtifactRepositoryIndexAnalyzer.java new file mode 100644 index 000000000..1be1c1721 --- /dev/null +++ b/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/ArtifactRepositoryIndexAnalyzer.java @@ -0,0 +1,78 @@ +package org.apache.maven.repository.indexing; + +/* + * Copyright 2001-2005 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import java.io.Reader; +import org.apache.lucene.analysis.Analyzer; +import org.apache.lucene.analysis.CharTokenizer; +import org.apache.lucene.analysis.TokenStream; + +/** + * + * @author Edwin Punzalan + */ +public class ArtifactRepositoryIndexAnalyzer + extends Analyzer +{ + private Analyzer defaultAnalyzer; + + public ArtifactRepositoryIndexAnalyzer( Analyzer defaultAnalyzer ) + { + this.defaultAnalyzer = defaultAnalyzer; + } + + public TokenStream tokenStream(String fieldName, Reader reader) + { + TokenStream tokenStream; + + if ( "version".equals( fieldName ) ) + { + tokenStream = new VersionTokenizer( reader ); + } + else + { + tokenStream = defaultAnalyzer.tokenStream( fieldName, reader ); + } + + return tokenStream; + } + + private class VersionTokenizer + extends CharTokenizer + { + public VersionTokenizer( Reader reader ) + { + super( reader ); + } + + protected boolean isTokenChar(char param) + { + boolean token; + + switch( param ) + { + case '.': token = false; break; + case '-': token = false; break; + default: + token = true; + } + + return token; + } + } +} -- 2.39.5