Return-Path: Delivered-To: apmail-lucene-nutch-dev-archive@www.apache.org Received: (qmail 98384 invoked from network); 4 Aug 2009 14:31:27 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 4 Aug 2009 14:31:27 -0000 Received: (qmail 47710 invoked by uid 500); 4 Aug 2009 14:31:31 -0000 Delivered-To: apmail-lucene-nutch-dev-archive@lucene.apache.org Received: (qmail 47612 invoked by uid 500); 4 Aug 2009 14:31:31 -0000 Mailing-List: contact nutch-dev-help@lucene.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: nutch-dev@lucene.apache.org Delivered-To: mailing list nutch-dev@lucene.apache.org Received: (qmail 47558 invoked by uid 99); 4 Aug 2009 14:31:30 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 04 Aug 2009 14:31:30 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of kirby.bohling@gmail.com designates 209.85.221.203 as permitted sender) Received: from [209.85.221.203] (HELO mail-qy0-f203.google.com) (209.85.221.203) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 04 Aug 2009 14:31:18 +0000 Received: by qyk41 with SMTP id 41so5051234qyk.29 for ; Tue, 04 Aug 2009 07:30:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=5apNeJ9I1DIfAxxbOOCHuDB5ViKtlRM/9aPct65B4uw=; b=t/j+QT7ayEa0FoHtfT1ESyeR1Kozwq74lhLjpxitQl054vGjY8r+Uv3FVEZyWQLhBc t81OD9OxFOmki/XIwuRzkYF8LL/kENf5tNIlP3joM40uR89tOavRr+3tRzmXIfzwEeSp uA1WHV5UUp/V/zZ463inHORqXghMqaPIOUWPg= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=dLnewbiMMlwMzT3lyl8GIrHg5qtwL/rbQJZr9I5lHypV974npgRG0a0uZ9F8FDq4Pp 1RRY1G7QpA1RBi0X9W5VeDsqSUe/tsnhezmb1EIY2UQoOmyGm0yUldCzvY6wpVMg6ua1 Llb+gAwztXDYKTbl1VqkMyAHafAdUuLHNOR9c= MIME-Version: 1.0 Received: by 10.224.37.83 with SMTP id w19mr5989555qad.132.1249396258069; Tue, 04 Aug 2009 07:30:58 -0700 (PDT) In-Reply-To: <4A783AD8.7090109@getopt.org> References: <3cac8fdf0908022100x5f49ea9dxe431f86bf31e345a@mail.gmail.com> <4A783AD8.7090109@getopt.org> Date: Tue, 4 Aug 2009 09:30:58 -0500 Message-ID: <3cac8fdf0908040730q3503d625sbc624b2fa85e85a6@mail.gmail.com> Subject: Re: OSGi progress From: Kirby Bohling To: nutch-dev@lucene.apache.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Virus-Checked: Checked by ClamAV on apache.org On Tue, Aug 4, 2009 at 8:42 AM, Andrzej Bialecki wrote: > Kirby Bohling wrote: >> >> All, >> >> I have pushed out a version of Nutch to github: >> >> git://github.com/kbohling/nutch.git > >> I'm going to look into how to use OSGi features to hook the plugins >> into the core configuration. =A0I am trying to minimize the amount >> change to Nutch code. =A0In that vein, I am contemplating adding one >> service implementation to each plugin. =A0Create >> "RegisterExtensionService", that has a single method that will allow >> each plugin to register whatever factory type objects are needed by >> the core to instantiate the objects required to assemble a runtime >> environment. =A0If a plugin has multiple extensions, we can either >> register them all in one service, or register each as a separate >> services. > > This looks like a very good beginning. I only started looking at it, but = one > thing that puzzles me is that there are no services defined ... I t hough= t > that plugins that provide specific services (such as parsing) should > advertise this, so that facades such as Parser, IndexingFilters, URLFilte= rs, > URLNormalizers, etc ... can assemble all available plugins. Or am I missi= ng > something? > I ran out of time over the weekend before services could be inserted. I wanted to get something out for potential review on direction. My initial goal was just to get everything into an OSGi environment. There are several ways of going about adding services. I will try out a couple of different ways, and report back. It looked to me that the least amount of code churn could be accomplished by having a single "service" that each plugin could use to register their implementations. However, we could just as easily implement the services and factory logic using individual services (one per in the plugin.xml files). I likely won't have much time until this weekend, but I can discuss if people have suggestions or designs ideas they want me to try out. Kirby