Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.m2e.maven.indexer/src/org/apache/maven/index/DefaultIndexerEngine.java')
-rw-r--r--org.eclipse.m2e.maven.indexer/src/org/apache/maven/index/DefaultIndexerEngine.java184
1 files changed, 0 insertions, 184 deletions
diff --git a/org.eclipse.m2e.maven.indexer/src/org/apache/maven/index/DefaultIndexerEngine.java b/org.eclipse.m2e.maven.indexer/src/org/apache/maven/index/DefaultIndexerEngine.java
deleted file mode 100644
index 4b155c1b..00000000
--- a/org.eclipse.m2e.maven.indexer/src/org/apache/maven/index/DefaultIndexerEngine.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.
- */
-package org.apache.maven.index;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
-import org.apache.lucene.document.Fieldable;
-import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.index.Term;
-import org.apache.lucene.search.IndexSearcher;
-import org.apache.lucene.search.TermQuery;
-import org.apache.lucene.search.TopDocs;
-import org.apache.maven.index.context.IndexingContext;
-import org.apache.maven.index.creator.MinimalArtifactInfoIndexCreator;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.logging.AbstractLogEnabled;
-
-/**
- * A default {@link IndexerEngine} implementation.
- *
- * @author Tamas Cservenak
- */
-@Component( role = IndexerEngine.class )
-public class DefaultIndexerEngine
- extends AbstractLogEnabled
- implements IndexerEngine
-{
-
- public void index( IndexingContext context, ArtifactContext ac )
- throws IOException
- {
- // skip artifacts not obeying repository layout (whether m1 or m2)
- if ( ac != null && ac.getGav() != null )
- {
- Document d = ac.createDocument( context );
-
- if ( d != null )
- {
- context.getIndexWriter().addDocument( d );
-
- context.updateTimestamp();
- }
- }
- }
-
- public void update( IndexingContext context, ArtifactContext ac )
- throws IOException
- {
- Document d = ac.createDocument( context );
-
- if ( d != null )
- {
- Document old = getOldDocument( context, ac );
-
- if ( !equals(d, old) )
- {
- IndexWriter w = context.getIndexWriter();
-
- w.updateDocument( new Term( ArtifactInfo.UINFO, ac.getArtifactInfo().getUinfo() ), d );
-
- updateGroups( context, ac );
-
- w.commit();
-
- context.updateTimestamp();
- }
- }
- }
-
- private boolean equals( Document d1, Document d2 )
- {
- if ( d1 == null && d2 == null )
- {
- return true;
- }
- if ( d1 == null || d2 == null )
- {
- return false;
- }
-
- Map<String, String> m1 = toMap( d1 );
- Map<String, String> m2 = toMap( d2 );
-
- m1.remove( MinimalArtifactInfoIndexCreator.FLD_LAST_MODIFIED.getKey() );
- m2.remove( MinimalArtifactInfoIndexCreator.FLD_LAST_MODIFIED.getKey() );
-
- return m1.equals( m2 );
- }
-
- private Map<String, String> toMap( Document d )
- {
- final HashMap<String, String> result = new HashMap<String, String>();
-
- for ( Object o : d.getFields() )
- {
- Fieldable f = (Fieldable) o;
- if ( f.isStored() )
- {
- result.put( f.name(), f.stringValue() );
- }
- }
-
- return result;
- }
-
- private Document getOldDocument( IndexingContext context, ArtifactContext ac )
- {
- try
- {
- IndexSearcher indexSearcher = context.getIndexSearcher();
- TopDocs result =
- indexSearcher.search( new TermQuery( new Term( ArtifactInfo.UINFO, ac.getArtifactInfo().getUinfo() ) ),
- 2 );
- if ( result.totalHits == 1 )
- {
- return indexSearcher.doc( result.scoreDocs[0].doc );
- }
- }
- catch ( IOException e )
- {
- }
- return null;
- }
-
- private void updateGroups( IndexingContext context, ArtifactContext ac )
- throws IOException
- {
- String rootGroup = ac.getArtifactInfo().getRootGroup();
- Set<String> rootGroups = context.getRootGroups();
- if ( !rootGroups.contains( rootGroup ) )
- {
- rootGroups.add( rootGroup );
- context.setRootGroups( rootGroups );
- }
-
- Set<String> allGroups = context.getAllGroups();
- if ( !allGroups.contains( ac.getArtifactInfo().groupId ) )
- {
- allGroups.add( ac.getArtifactInfo().groupId );
- context.setAllGroups( allGroups );
- }
- }
-
- public void remove( IndexingContext context, ArtifactContext ac )
- throws IOException
- {
- if ( ac != null )
- {
- String uinfo = ac.getArtifactInfo().getUinfo();
- // add artifact deletion marker
- Document doc = new Document();
- doc.add( new Field( ArtifactInfo.DELETED, uinfo, Field.Store.YES, Field.Index.NO ) );
- doc.add( new Field( ArtifactInfo.LAST_MODIFIED, //
- Long.toString( System.currentTimeMillis() ), Field.Store.YES, Field.Index.NO ) );
- IndexWriter w = context.getIndexWriter();
- w.addDocument( doc );
- w.deleteDocuments( new Term( ArtifactInfo.UINFO, uinfo ) );
- w.commit();
- context.updateTimestamp();
- }
- }
-
-}

Back to the top