*** RemoteSearchable.java 17 Feb 2004 19:00:31 -0000 1.4 --- RemoteSearchable.java 26 Feb 2004 19:25:21 -0000 *************** *** 1,133 **** ! package org.apache.lucene.search; ! ! /* ==================================================================== ! * The Apache Software License, Version 1.1 ! * ! * Copyright (c) 2001 The Apache Software Foundation. All rights ! * reserved. ! * ! * Redistribution and use in source and binary forms, with or without ! * modification, are permitted provided that the following conditions ! * are met: ! * ! * 1. Redistributions of source code must retain the above copyright ! * notice, this list of conditions and the following disclaimer. ! * ! * 2. Redistributions in binary form must reproduce the above copyright ! * notice, this list of conditions and the following disclaimer in ! * the documentation and/or other materials provided with the ! * distribution. ! * ! * 3. The end-user documentation included with the redistribution, ! * if any, must include the following acknowledgment: ! * "This product includes software developed by the ! * Apache Software Foundation (http://www.apache.org/)." ! * Alternately, this acknowledgment may appear in the software itself, ! * if and wherever such third-party acknowledgments normally appear. ! * ! * 4. The names "Apache" and "Apache Software Foundation" and ! * "Apache Lucene" must not be used to endorse or promote products ! * derived from this software without prior written permission. For ! * written permission, please contact apache@apache.org. ! * ! * 5. Products derived from this software may not be called "Apache", ! * "Apache Lucene", nor may "Apache" appear in their name, without ! * prior written permission of the Apache Software Foundation. ! * ! * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED ! * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ! * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ! * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR ! * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ! * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ! * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ! * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ! * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ! * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ! * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ! * SUCH DAMAGE. ! * ==================================================================== ! * ! * This software consists of voluntary contributions made by many ! * individuals on behalf of the Apache Software Foundation. For more ! * information on the Apache Software Foundation, please see ! * . ! */ ! ! import java.io.IOException; ! ! import java.rmi.Naming; ! import java.rmi.RemoteException; ! import java.rmi.RMISecurityManager; ! import java.rmi.server.UnicastRemoteObject; ! ! import org.apache.lucene.document.Document; ! import org.apache.lucene.index.Term; ! ! /** A remote searchable implementation. */ ! public class RemoteSearchable ! extends UnicastRemoteObject ! implements Searchable { ! ! private Searchable local; ! ! /** Constructs and exports a remote searcher. */ ! public RemoteSearchable(Searchable local) throws RemoteException { ! super(); ! this.local = local; ! } ! ! public void search(Query query, Filter filter, HitCollector results) ! throws IOException { ! local.search(query, filter, results); ! } ! ! public void close() throws IOException { ! local.close(); ! } ! ! public int docFreq(Term term) throws IOException { ! return local.docFreq(term); ! } ! ! public int maxDoc() throws IOException { ! return local.maxDoc(); ! } ! ! public TopDocs search(Query query, Filter filter, int n) throws IOException { ! return local.search(query, filter, n); ! } ! ! public TopFieldDocs search (Query query, Filter filter, int n, Sort sort) ! throws IOException { ! return local.search (query, filter, n, sort); ! } ! ! public Document doc(int i) throws IOException { ! return local.doc(i); ! } ! ! public Query rewrite(Query original) throws IOException { ! return local.rewrite(original); ! } ! ! public Explanation explain(Query query, int doc) throws IOException { ! return local.explain(query, doc); ! } ! ! /** Exports a searcher for the index in args[0] named ! * "//localhost/Searchable". */ ! public static void main(String args[]) throws Exception { ! // create and install a security manager ! if (System.getSecurityManager() == null) { ! System.setSecurityManager(new RMISecurityManager()); ! } ! ! Searchable local = new IndexSearcher(args[0]); ! RemoteSearchable impl = new RemoteSearchable(local); ! ! // bind the implementation to "Searchable" ! Naming.rebind("//localhost/Searchable", impl); ! } ! ! } --- 1,142 ---- ! package org.apache.lucene.search; ! ! /* ==================================================================== ! * The Apache Software License, Version 1.1 ! * ! * Copyright (c) 2001 The Apache Software Foundation. All rights ! * reserved. ! * ! * Redistribution and use in source and binary forms, with or without ! * modification, are permitted provided that the following conditions ! * are met: ! * ! * 1. Redistributions of source code must retain the above copyright ! * notice, this list of conditions and the following disclaimer. ! * ! * 2. Redistributions in binary form must reproduce the above copyright ! * notice, this list of conditions and the following disclaimer in ! * the documentation and/or other materials provided with the ! * distribution. ! * ! * 3. The end-user documentation included with the redistribution, ! * if any, must include the following acknowledgment: ! * "This product includes software developed by the ! * Apache Software Foundation (http://www.apache.org/)." ! * Alternately, this acknowledgment may appear in the software itself, ! * if and wherever such third-party acknowledgments normally appear. ! * ! * 4. The names "Apache" and "Apache Software Foundation" and ! * "Apache Lucene" must not be used to endorse or promote products ! * derived from this software without prior written permission. For ! * written permission, please contact apache@apache.org. ! * ! * 5. Products derived from this software may not be called "Apache", ! * "Apache Lucene", nor may "Apache" appear in their name, without ! * prior written permission of the Apache Software Foundation. ! * ! * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED ! * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ! * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ! * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR ! * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ! * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ! * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ! * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ! * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ! * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ! * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ! * SUCH DAMAGE. ! * ==================================================================== ! * ! * This software consists of voluntary contributions made by many ! * individuals on behalf of the Apache Software Foundation. For more ! * information on the Apache Software Foundation, please see ! * . ! */ ! ! import java.io.IOException; ! import java.rmi.Naming; ! import java.rmi.RMISecurityManager; ! import java.rmi.RemoteException; ! import java.rmi.server.UnicastRemoteObject; ! ! import org.apache.lucene.document.Document; ! import org.apache.lucene.index.Term; ! ! /** A remote searchable implementation. */ ! public class RemoteSearchable ! extends UnicastRemoteObject ! implements Searchable { ! ! private Searchable local; ! ! /** Constructs and exports a remote searcher. */ ! public RemoteSearchable(Searchable local) throws RemoteException { ! super(); ! this.local = local; ! } ! ! public void search(Query query, Filter filter, HitCollector results) ! throws IOException { ! local.search(query, filter, results); ! } ! ! public void close() throws IOException { ! local.close(); ! } ! ! public int docFreq(Term term) throws IOException { ! return local.docFreq(term); ! } ! ! public int maxDoc() throws IOException { ! return local.maxDoc(); ! } ! ! public TopDocs search(Query query, Filter filter, int n) throws IOException { ! return local.search(query, filter, n); ! } ! ! public TopFieldDocs search (Query query, Filter filter, int n, Sort sort) ! throws IOException { ! return local.search (query, filter, n, sort); ! } ! ! public Document doc(int i) throws IOException { ! return local.doc(i); ! } ! ! public Query rewrite(Query original) throws IOException { ! return local.rewrite(original); ! } ! ! public Explanation explain(Query query, int doc) throws IOException { ! return local.explain(query, doc); ! } ! ! /** Exports a searcher for the index in args[0] named ! * "//localhost/Searchable". */ ! public static void main(String args[]) throws Exception { ! // create and install a security manager ! if (System.getSecurityManager() == null) { ! System.setSecurityManager(new RMISecurityManager()); ! } ! ! Searchable local = new IndexSearcher(args[0]); ! RemoteSearchable impl = new RemoteSearchable(local); ! ! // bind the implementation to "Searchable" ! Naming.rebind("//localhost/Searchable", impl); ! } ! ! /** Returns the searchable. */ ! public final Searchable getSearchable() { ! return local; ! } ! ! /** Sets the searcherable. */ ! public final void setSearchable(Searchable s) { ! this.local = s; ! } ! ! }