Return-Path: X-Original-To: apmail-jackrabbit-dev-archive@www.apache.org Delivered-To: apmail-jackrabbit-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id B32BE90C2 for ; Fri, 24 Feb 2012 09:06:32 +0000 (UTC) Received: (qmail 69671 invoked by uid 500); 24 Feb 2012 09:06:32 -0000 Delivered-To: apmail-jackrabbit-dev-archive@jackrabbit.apache.org Received: (qmail 69637 invoked by uid 500); 24 Feb 2012 09:06:32 -0000 Mailing-List: contact dev-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jackrabbit.apache.org Delivered-To: mailing list dev@jackrabbit.apache.org Received: (qmail 69627 invoked by uid 99); 24 Feb 2012 09:06:32 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 24 Feb 2012 09:06:32 +0000 X-ASF-Spam-Status: No, hits=-1.3 required=5.0 tests=FRT_ADOBE2,RCVD_IN_DNSWL_MED,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of fmeschbe@adobe.com designates 64.18.1.187 as permitted sender) Received: from [64.18.1.187] (HELO exprod6og104.obsmtp.com) (64.18.1.187) by apache.org (qpsmtpd/0.29) with SMTP; Fri, 24 Feb 2012 09:06:22 +0000 Received: from outbound-smtp-1.corp.adobe.com ([192.150.11.134]) by exprod6ob104.postini.com ([64.18.5.12]) with SMTP ID DSNKT0dS+BFez0ds3BCdr0+x4RNPCIeoaFVy@postini.com; Fri, 24 Feb 2012 01:06:01 PST Received: from inner-relay-1.corp.adobe.com ([153.32.1.51]) by outbound-smtp-1.corp.adobe.com (8.12.10/8.12.10) with ESMTP id q1O9420Y027441 for ; Fri, 24 Feb 2012 01:04:02 -0800 (PST) Received: from nahub02.corp.adobe.com (nahub02.corp.adobe.com [10.8.189.98]) by inner-relay-1.corp.adobe.com (8.12.10/8.12.10) with ESMTP id q1O95xMM027151 for ; Fri, 24 Feb 2012 01:05:59 -0800 (PST) Received: from eurhub01.eur.adobe.com (10.128.4.30) by nahub02.corp.adobe.com (10.8.189.98) with Microsoft SMTP Server (TLS) id 8.3.192.1; Fri, 24 Feb 2012 01:05:59 -0800 Received: from eurmbx01.eur.adobe.com ([10.128.4.32]) by eurhub01.eur.adobe.com ([10.128.4.30]) with mapi; Fri, 24 Feb 2012 09:05:58 +0000 From: Felix Meschberger To: "dev@jackrabbit.apache.org" Date: Fri, 24 Feb 2012 09:05:53 +0000 Subject: Re: [jr3] On pluggability and OSGi (Was: [jr3] Release roadmap) Thread-Topic: [jr3] On pluggability and OSGi (Was: [jr3] Release roadmap) Thread-Index: Aczy04TY4QHs5CaRRVulNbgj3jNhQA== Message-ID: <3F8B868C-D294-420A-930A-E0163A843872@adobe.com> References: In-Reply-To: Accept-Language: de-DE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: de-DE, en-US Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Virus-Checked: Checked by ClamAV on apache.org Hi, Am 23.02.2012 um 17:33 schrieb Jukka Zitting: > Hi, >=20 > On Thu, Feb 23, 2012 at 4:03 PM, Felix Meschberger w= rote: >> Hence I would go with OSGi from Day 0 and use the OSGi Service >> Registry as the mechanic for pluggability. >=20 > The trouble with OSGi by default is that it brings in a massive and > pretty complex dependency with it. If you build your code with the > OSGi service registry in mind, it becomes difficult to run it in any > other environment, including in a simple JUnit test case. You're > basically making an assumption that all your deployment environments > will be OSGi frameworks, which dramatically reduces your potential > user-base. >=20 > I don't want us to make that assumption. It should IMHO be possible to > embed the repository implementation to for example an Android app, to > a Maven plugin or a J2EE CMS without having to OSGify the entire > application. >=20 > That doesn't mean we couldn't or shouldn't use OSGi for wiring things > up when the repository *is* deployed to an OSGi environment. Indeed > that's why I explicitly included those points in the roadmap. It's > just that we shouldn't make the core architecture depend on constructs > like ServiceTracker that don't work outside the scope of OSGi. Hmm, ok, let me rephrase it a bit (still I have OSGi in mind and my absolut= e requirement is that JR 3 must be deployable in an OSGi framework more eas= ily than JR2). Here's my list of requirements : * Dependency Injection -- known to be a good thing for testing and supported not only by Spring but also by OSGi (Declarative Services and Blueprint and other non-standard ones). * Clear picture of configuration -- again injected =E0-la DI. * Proper separation of public API/packages and private implementation packages. * No static factories. These are a pain in standard Java but are dreadful in pluggable frameworks. * Create bundles from the start. These don't harm but allow us to testdrive in OSGi frameworks right away. Regards Felix=