KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > roller > business > search > operations > WriteToIndexOperation


1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. The ASF licenses this file to You
4  * under the Apache License, Version 2.0 (the "License"); you may not
5  * 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. For additional information regarding
15  * copyright in this work, please see the NOTICE file in the top level
16  * directory of this distribution.
17  */

18 /* Created on Aug 12, 2003 */
19 package org.apache.roller.business.search.operations;
20
21 import org.apache.commons.logging.Log;
22 import org.apache.commons.logging.LogFactory;
23 import org.apache.roller.business.IndexManagerImpl;
24
25 /**
26  * An operation that writes to index.
27  * @author Mindaugas Idzelis (min@idzelis.com)
28  */

29 public abstract class WriteToIndexOperation extends IndexOperation {
30     
31     public WriteToIndexOperation(IndexManagerImpl mgr) {
32         super(mgr);
33     }
34     
35     private static Log mLogger =
36             LogFactory.getFactory().getInstance(WriteToIndexOperation.class);
37     
38     public void run() {
39         try {
40             manager.getReadWriteLock().writeLock().acquire();
41             mLogger.info("Starting search index operation");
42             doRun();
43             mLogger.info("Search index operation complete");
44         } catch (InterruptedException JavaDoc e) {
45             mLogger.error("Error acquiring write lock on index", e);
46         } finally {
47             manager.getReadWriteLock().writeLock().release();
48         }
49         manager.resetSharedReader();
50     }
51 }
52
Popular Tags