Return-Path: Delivered-To: apmail-openjpa-dev-archive@www.apache.org Received: (qmail 53805 invoked from network); 8 Aug 2007 19:07:51 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 8 Aug 2007 19:07:51 -0000 Received: (qmail 77468 invoked by uid 500); 8 Aug 2007 19:07:50 -0000 Delivered-To: apmail-openjpa-dev-archive@openjpa.apache.org Received: (qmail 77440 invoked by uid 500); 8 Aug 2007 19:07:50 -0000 Mailing-List: contact dev-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list dev@openjpa.apache.org Received: (qmail 77431 invoked by uid 99); 8 Aug 2007 19:07:50 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 08 Aug 2007 12:07:50 -0700 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of mprudhomapache@gmail.com designates 64.233.162.237 as permitted sender) Received: from [64.233.162.237] (HELO nz-out-0506.google.com) (64.233.162.237) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 08 Aug 2007 19:07:44 +0000 Received: by nz-out-0506.google.com with SMTP id q3so120648nzb for ; Wed, 08 Aug 2007 12:07:23 -0700 (PDT) DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:mime-version:in-reply-to:references:content-type:message-id:content-transfer-encoding:from:subject:date:to:x-mailer:sender; b=UKOFQgbZ6dRozQ+w5LB96LAQwyTXyof/SfuoqwCz6qYLmTQ8quCz/IbobQeMETM0au+vJhnjXLKTjnmbKIGKElVoHHHkZVTJmGr0olliamYW6RRYyf0rMg9Db8TnsyXJ7AUWUk0WrOGwBWYN/bbj63HkIJNJxL8hGTSw8JkqyLE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:mime-version:in-reply-to:references:content-type:message-id:content-transfer-encoding:from:subject:date:to:x-mailer:sender; b=hOojmC8NLsiWtr+ZfaMtdxmnUVKcvujnmu7oMPFUm0PMET2Skcy68A9AtlBtKsnkEjlLqbxVfnbtAbmh0T6vcUHwnOiv9o8W4AfnJbguUvC46Y+KFAae1i+itnRXIXRtXjPNAd9l8351Ov5PaeceFVnLm2ecJEokuZPSqTdELiE= Received: by 10.64.27.13 with SMTP id a13mr1404397qba.1186600043392; Wed, 08 Aug 2007 12:07:23 -0700 (PDT) Received: from ?192.168.1.10? ( [66.248.222.34]) by mx.google.com with ESMTPS id e11sm459127qbc.2007.08.08.12.07.21 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 08 Aug 2007 12:07:22 -0700 (PDT) Mime-Version: 1.0 (Apple Message framework v752.3) In-Reply-To: <72c1350f0708081147w75594b41s5aa302fcdbaffebe@mail.gmail.com> References: <7262f25e0708071344x22d55055k38e77e2c9f590124@mail.gmail.com> <72c1350f0708081147w75594b41s5aa302fcdbaffebe@mail.gmail.com> Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Message-Id: <23BB6930-A539-4E21-A8D6-6A26EA50D078@apache.org> Content-Transfer-Encoding: 7bit From: Marc Prud'hommeaux Subject: Re: API discussion Date: Wed, 8 Aug 2007 12:07:09 -0700 To: dev@openjpa.apache.org X-Mailer: Apple Mail (2.752.3) Sender: Marc Prud'hommeaux X-Virus-Checked: Checked by ClamAV on apache.org -0. I very much like the idea of separating out our published APIs into maven modules (both because we would then have the infrastructure to enforce that incompatible changes don't get introduces in minor releases, as well as having the ability to easily publish an API jar should we so desire). However, I am concerned with the refactoring. In my experience with changing package names, while trivial to implement, always leads to problems. Since we don't currently support OSGi (I don't think we have even discussed OSGi plans in the lists), I don't see why we need to bind goal A (separating of the API/SPI into separate packages) with goal B (moving the implementations into different sub-packages). We underwent a fair amount of effort to ship only a single aggregate jar of all of OpenJPA, rather than jars for each of the individual modules, so this wouldn't even affect anyone currently using OpenJPA in any context other than having a Maven dependency on the separate module jars. That being said, I'll just vote a -0, and will happily accede to the sentiment of the community should it differ with mine. On Aug 8, 2007, at 11:47 AM, Michael Dick wrote: > > > 2. Break the openjpa-persistence and openjpa-persistence-jdbc modules >> into separate modules for API and SPI. This would require repackaging >> the current impl classes (EntityManagerImpl etc.) into a new >> sub-package, in order to work with the OSGi model (it is my >> understanding that OSGi does not allow multiple bundles (jars) to >> contribute to the same package), but would provide strong compile- >> time >> guarantees and a more formal contract. > > > +1 > > Having a separate maven module for the APIs should be easier to > consume for > other maven users. Also this approach seems easier to maintain once > we're > done. If we invent a build procedure we'll have to ensure that it's > compatible with maven version.next. > > The impact to current users should be minimal if we only change the > packages > on implementation classes and shouldn't raise too many red flags > since we > haven't shipped v1.0 yet. > > -Mike