maven: fix index context duplication, do not force to download the index for remote...
[idea/community.git] / plugins / maven / maven-server-api / src / org / jetbrains / idea / maven / server / MavenServerIndexer.java
1 /*
2  * Copyright 2000-2010 JetBrains s.r.o.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package org.jetbrains.idea.maven.server;
17
18 import org.apache.lucene.search.Query;
19 import org.jetbrains.annotations.NotNull;
20 import org.jetbrains.annotations.Nullable;
21 import org.jetbrains.idea.maven.model.MavenArchetype;
22 import org.jetbrains.idea.maven.model.MavenArtifactInfo;
23 import org.jetbrains.idea.maven.model.MavenId;
24
25 import java.io.File;
26 import java.rmi.Remote;
27 import java.rmi.RemoteException;
28 import java.util.Collection;
29 import java.util.Set;
30
31 public interface MavenServerIndexer extends Remote {
32   String SEARCH_TERM_COORDINATES = "u"; // see org.sonatype.nexus.index.ArtifactInfo
33   String SEARCH_TERM_CLASS_NAMES = "c";
34
35   int createIndex(@NotNull String indexId,
36                   @NotNull String repositoryId,
37                   @Nullable File file,
38                   @Nullable String url,
39                   @NotNull File indexDir) throws RemoteException, MavenServerIndexerException;
40
41   void releaseIndex(int id) throws RemoteException, MavenServerIndexerException;
42
43   int getIndexCount() throws RemoteException;
44
45   void updateIndex(int id, MavenServerSettings settings, MavenServerProgressIndicator indicator) throws RemoteException,
46                                                                                                         MavenServerIndexerException,
47                                                                                                         MavenServerProcessCanceledException;
48
49   void processArtifacts(int indexId, MavenServerIndicesProcessor processor) throws RemoteException, MavenServerIndexerException;
50
51   MavenId addArtifact(int indexId, File artifactFile) throws RemoteException, MavenServerIndexerException;
52
53   Set<MavenArtifactInfo> search(int indexId, Query query, int maxResult) throws RemoteException, MavenServerIndexerException;
54
55   Collection<MavenArchetype> getArchetypes() throws RemoteException;
56
57   void release() throws RemoteException;
58
59   boolean indexExists(File dir) throws RemoteException;
60 }