~slub.team/goobi-indexserver/3.x

« back to all changes in this revision

Viewing changes to solr/solrj/src/java/org/apache/solr/client/solrj/request/CoreAdminRequest.java

  • Committer: Sebastian Meyer
  • Date: 2012-08-03 09:12:40 UTC
  • Revision ID: sebastian.meyer@slub-dresden.de-20120803091240-x6861b0vabq1xror
Remove Lucene and Solr source code and add patches instead
Fix Bug #985487: Auto-suggestion for the search interface

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/**
2
 
 * Licensed to the Apache Software Foundation (ASF) under one or more
3
 
 * contributor license agreements.  See the NOTICE file distributed with
4
 
 * this work for additional information regarding copyright ownership.
5
 
 * The ASF licenses this file to You under the Apache License, Version 2.0
6
 
 * (the "License"); you may not use this file except in compliance with
7
 
 * the License.  You may obtain a copy of the License at
8
 
 *
9
 
 *     http://www.apache.org/licenses/LICENSE-2.0
10
 
 *
11
 
 * Unless required by applicable law or agreed to in writing, software
12
 
 * distributed under the License is distributed on an "AS IS" BASIS,
13
 
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 
 * See the License for the specific language governing permissions and
15
 
 * limitations under the License.
16
 
 */
17
 
 
18
 
package org.apache.solr.client.solrj.request;
19
 
 
20
 
import java.io.IOException;
21
 
import java.util.Collection;
22
 
import java.util.List;
23
 
import java.util.Arrays;
24
 
 
25
 
import org.apache.solr.client.solrj.SolrRequest;
26
 
import org.apache.solr.client.solrj.SolrServer;
27
 
import org.apache.solr.client.solrj.SolrServerException;
28
 
import org.apache.solr.client.solrj.response.CoreAdminResponse;
29
 
import org.apache.solr.common.params.ModifiableSolrParams;
30
 
import org.apache.solr.common.params.CoreAdminParams;
31
 
import org.apache.solr.common.params.SolrParams;
32
 
import org.apache.solr.common.params.CoreAdminParams.CoreAdminAction;
33
 
import org.apache.solr.common.util.ContentStream;
34
 
 
35
 
/**
36
 
 * This class is experimental and subject to change.
37
 
 * @version $Id: CoreAdminRequest.java 606335 2007-12-21 22:23:39Z ryan $
38
 
 * @since solr 1.3
39
 
 */
40
 
public class CoreAdminRequest extends SolrRequest
41
 
{
42
 
  protected String core = null;
43
 
  protected String other = null;
44
 
  protected CoreAdminParams.CoreAdminAction action = null;
45
 
  
46
 
  //a create core request
47
 
  public static class Create extends CoreAdminRequest {
48
 
    protected String instanceDir;
49
 
    protected String configName = null;
50
 
    protected String schemaName = null;
51
 
    protected String dataDir = null;
52
 
 
53
 
    public Create() {
54
 
      action = CoreAdminAction.CREATE;
55
 
    }
56
 
    
57
 
    public void setInstanceDir(String instanceDir) { this.instanceDir = instanceDir; }
58
 
    public void setSchemaName(String schema) { this.schemaName = schema; }
59
 
    public void setConfigName(String config) { this.configName = config; }
60
 
    public void setDataDir(String dataDir) { this.dataDir = dataDir; }
61
 
 
62
 
    public String getInstanceDir() { return instanceDir; }
63
 
    public String getSchemaName()  { return schemaName; }
64
 
    public String getConfigName()  { return configName; }
65
 
    public String getDataDir() { return dataDir; }
66
 
 
67
 
    @Override
68
 
    public SolrParams getParams() {
69
 
      if( action == null ) {
70
 
        throw new RuntimeException( "no action specified!" );
71
 
      }
72
 
      ModifiableSolrParams params = new ModifiableSolrParams();
73
 
      params.set( CoreAdminParams.ACTION, action.toString() );
74
 
      if( action.equals(CoreAdminAction.CREATE) ) {
75
 
        params.set( CoreAdminParams.NAME, core );
76
 
      } else {
77
 
        params.set( CoreAdminParams.CORE, core );
78
 
      }
79
 
      params.set( CoreAdminParams.INSTANCE_DIR, instanceDir);
80
 
      if (configName != null) {
81
 
        params.set( CoreAdminParams.CONFIG, configName);
82
 
      }
83
 
      if (schemaName != null) {
84
 
        params.set( CoreAdminParams.SCHEMA, schemaName);
85
 
      }
86
 
      if (dataDir != null) {
87
 
        params.set( CoreAdminParams.DATA_DIR, dataDir);
88
 
      }
89
 
      return params;
90
 
    }
91
 
  }
92
 
    //a persist core request
93
 
  public static class Persist extends CoreAdminRequest {
94
 
    protected String fileName = null;
95
 
    
96
 
    public Persist() {
97
 
      action = CoreAdminAction.PERSIST;
98
 
    }
99
 
    
100
 
    public void setFileName(String name) {
101
 
      fileName = name;
102
 
    }
103
 
    public String getFileName() {
104
 
      return fileName;
105
 
    }
106
 
    @Override
107
 
    public SolrParams getParams() {
108
 
      if( action == null ) {
109
 
        throw new RuntimeException( "no action specified!" );
110
 
      }
111
 
      ModifiableSolrParams params = new ModifiableSolrParams();
112
 
      params.set( CoreAdminParams.ACTION, action.toString() );
113
 
      if (fileName != null) {
114
 
        params.set( CoreAdminParams.FILE, fileName);
115
 
      }
116
 
      return params;
117
 
    }
118
 
  }
119
 
  
120
 
  public static class MergeIndexes extends CoreAdminRequest {
121
 
    protected List<String> indexDirs;
122
 
    protected List<String> srcCores;
123
 
 
124
 
    public MergeIndexes() {
125
 
      action = CoreAdminAction.MERGEINDEXES;
126
 
    }
127
 
 
128
 
    public void setIndexDirs(List<String> indexDirs) {
129
 
      this.indexDirs = indexDirs;
130
 
    }
131
 
 
132
 
    public List<String> getIndexDirs() {
133
 
      return indexDirs;
134
 
    }
135
 
 
136
 
    public List<String> getSrcCores() {
137
 
      return srcCores;
138
 
    }
139
 
 
140
 
    public void setSrcCores(List<String> srcCores) {
141
 
      this.srcCores = srcCores;
142
 
    }
143
 
 
144
 
    @Override
145
 
    public SolrParams getParams() {
146
 
      if (action == null) {
147
 
        throw new RuntimeException("no action specified!");
148
 
      }
149
 
      ModifiableSolrParams params = new ModifiableSolrParams();
150
 
      params.set(CoreAdminParams.ACTION, action.toString());
151
 
      params.set(CoreAdminParams.CORE, core);
152
 
      if (indexDirs != null)  {
153
 
        for (String indexDir : indexDirs) {
154
 
          params.set(CoreAdminParams.INDEX_DIR, indexDir);
155
 
        }
156
 
      }
157
 
      if (srcCores != null) {
158
 
        for (String srcCore : srcCores) {
159
 
          params.set(CoreAdminParams.SRC_CORE, srcCore);
160
 
        }
161
 
      }
162
 
      return params;
163
 
    }
164
 
  }
165
 
 
166
 
  public static class Unload extends CoreAdminRequest {
167
 
    protected boolean deleteIndex;
168
 
 
169
 
    public Unload(boolean deleteIndex) {
170
 
      action = CoreAdminAction.UNLOAD;
171
 
      this.deleteIndex = deleteIndex;
172
 
    }
173
 
 
174
 
    public boolean isDeleteIndex() {
175
 
      return deleteIndex;
176
 
    }
177
 
 
178
 
    public void setDeleteIndex(boolean deleteIndex) {
179
 
      this.deleteIndex = deleteIndex;
180
 
    }
181
 
 
182
 
    @Override
183
 
    public SolrParams getParams() {
184
 
      ModifiableSolrParams params = (ModifiableSolrParams) super.getParams();
185
 
      params.set(CoreAdminParams.DELETE_INDEX, deleteIndex);
186
 
      return params;
187
 
    }
188
 
  }
189
 
 
190
 
  public CoreAdminRequest()
191
 
  {
192
 
    super( METHOD.GET, "/admin/cores" );
193
 
  }
194
 
 
195
 
  public CoreAdminRequest( String path )
196
 
  {
197
 
    super( METHOD.GET, path );
198
 
  }
199
 
 
200
 
  public final void setCoreName( String coreName )
201
 
  {
202
 
    this.core = coreName;
203
 
  }
204
 
 
205
 
  public final void setOtherCoreName( String otherCoreName )
206
 
  {
207
 
    this.other = otherCoreName;
208
 
  }
209
 
  
210
 
  //---------------------------------------------------------------------------------------
211
 
  //
212
 
  //---------------------------------------------------------------------------------------
213
 
 
214
 
  public void setAction( CoreAdminAction action )
215
 
  {
216
 
    this.action = action;
217
 
  }
218
 
 
219
 
  //---------------------------------------------------------------------------------------
220
 
  //
221
 
  //---------------------------------------------------------------------------------------
222
 
 
223
 
  @Override
224
 
  public SolrParams getParams() 
225
 
  {
226
 
    if( action == null ) {
227
 
      throw new RuntimeException( "no action specified!" );
228
 
    }
229
 
    ModifiableSolrParams params = new ModifiableSolrParams();
230
 
    params.set( CoreAdminParams.ACTION, action.toString() );
231
 
    params.set( CoreAdminParams.CORE, core );
232
 
    if (other != null) {
233
 
      params.set(CoreAdminParams.OTHER, other);
234
 
    }
235
 
    return params;
236
 
  }
237
 
 
238
 
  //---------------------------------------------------------------------------------------
239
 
  //
240
 
  //---------------------------------------------------------------------------------------
241
 
 
242
 
  @Override
243
 
  public Collection<ContentStream> getContentStreams() throws IOException {
244
 
    return null;
245
 
  }
246
 
 
247
 
  @Override
248
 
  public CoreAdminResponse process(SolrServer server) throws SolrServerException, IOException 
249
 
  {
250
 
    long startTime = System.currentTimeMillis();
251
 
    CoreAdminResponse res = new CoreAdminResponse();
252
 
    res.setResponse( server.request( this ) );
253
 
    res.setElapsedTime( System.currentTimeMillis()-startTime );
254
 
    return res;
255
 
  }
256
 
 
257
 
  //---------------------------------------------------------------------------------------
258
 
  //
259
 
  //---------------------------------------------------------------------------------------
260
 
 
261
 
  public static CoreAdminResponse reloadCore( String name, SolrServer server ) throws SolrServerException, IOException
262
 
  {
263
 
    CoreAdminRequest req = new CoreAdminRequest();
264
 
    req.setCoreName( name );
265
 
    req.setAction( CoreAdminAction.RELOAD );
266
 
    return req.process( server );
267
 
  }
268
 
 
269
 
  public static CoreAdminResponse unloadCore( String name, SolrServer server ) throws SolrServerException, IOException
270
 
  {
271
 
    return unloadCore(name, false, server);
272
 
  }
273
 
 
274
 
  public static CoreAdminResponse unloadCore( String name, boolean deleteIndex, SolrServer server ) throws SolrServerException, IOException
275
 
  {
276
 
    Unload req = new Unload(deleteIndex);
277
 
    req.setCoreName( name );
278
 
    return req.process( server );
279
 
  }
280
 
 
281
 
  public static CoreAdminResponse renameCore(String coreName, String newName, SolrServer server ) throws SolrServerException, IOException
282
 
  {
283
 
    CoreAdminRequest req = new CoreAdminRequest();
284
 
    req.setCoreName(coreName);
285
 
    req.setOtherCoreName(newName);
286
 
    req.setAction( CoreAdminAction.RENAME );
287
 
    return req.process( server );
288
 
  }
289
 
 
290
 
  public static CoreAdminResponse aliasCore(String coreName, String newName, SolrServer server ) throws SolrServerException, IOException
291
 
  {
292
 
    CoreAdminRequest req = new CoreAdminRequest();
293
 
    req.setCoreName(coreName);
294
 
    req.setOtherCoreName(newName);
295
 
    req.setAction( CoreAdminAction.ALIAS );
296
 
    return req.process( server );
297
 
  }
298
 
 
299
 
  public static CoreAdminResponse getStatus( String name, SolrServer server ) throws SolrServerException, IOException
300
 
  {
301
 
    CoreAdminRequest req = new CoreAdminRequest();
302
 
    req.setCoreName( name );
303
 
    req.setAction( CoreAdminAction.STATUS );
304
 
    return req.process( server );
305
 
  }
306
 
  
307
 
  public static CoreAdminResponse createCore( String name, String instanceDir, SolrServer server ) throws SolrServerException, IOException 
308
 
  {
309
 
    return CoreAdminRequest.createCore(name, instanceDir, server, null, null);
310
 
  }
311
 
  
312
 
  public static CoreAdminResponse createCore( String name, String instanceDir, SolrServer server, String configFile, String schemaFile ) throws SolrServerException, IOException 
313
 
  {
314
 
    CoreAdminRequest.Create req = new CoreAdminRequest.Create();
315
 
    req.setCoreName( name );
316
 
    req.setInstanceDir(instanceDir);
317
 
    if(configFile != null){
318
 
      req.setConfigName(configFile);
319
 
    }
320
 
    if(schemaFile != null){
321
 
      req.setSchemaName(schemaFile);
322
 
    }
323
 
    return req.process( server );
324
 
  }
325
 
 
326
 
  public static CoreAdminResponse persist(String fileName, SolrServer server) throws SolrServerException, IOException 
327
 
  {
328
 
    CoreAdminRequest.Persist req = new CoreAdminRequest.Persist();
329
 
    req.setFileName(fileName);
330
 
    return req.process(server);
331
 
  }
332
 
 
333
 
  public static CoreAdminResponse mergeIndexes(String name,
334
 
      String[] indexDirs, String[] srcCores, SolrServer server) throws SolrServerException,
335
 
      IOException {
336
 
    CoreAdminRequest.MergeIndexes req = new CoreAdminRequest.MergeIndexes();
337
 
    req.setCoreName(name);
338
 
    req.setIndexDirs(Arrays.asList(indexDirs));
339
 
    req.setSrcCores(Arrays.asList(srcCores));
340
 
    return req.process(server);
341
 
  }
342
 
}