Return-Path: Delivered-To: apmail-incubator-aries-dev-archive@minotaur.apache.org Received: (qmail 34556 invoked from network); 12 Sep 2010 17:04:11 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 12 Sep 2010 17:04:11 -0000 Received: (qmail 45128 invoked by uid 500); 12 Sep 2010 17:04:10 -0000 Delivered-To: apmail-incubator-aries-dev-archive@incubator.apache.org Received: (qmail 45055 invoked by uid 500); 12 Sep 2010 17:04:09 -0000 Mailing-List: contact aries-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: aries-dev@incubator.apache.org Delivered-To: mailing list aries-dev@incubator.apache.org Received: (qmail 45047 invoked by uid 99); 12 Sep 2010 17:04:09 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 12 Sep 2010 17:04:09 +0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests=FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of vmahrwald@googlemail.com designates 209.85.160.175 as permitted sender) Received: from [209.85.160.175] (HELO mail-gy0-f175.google.com) (209.85.160.175) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 12 Sep 2010 17:04:01 +0000 Received: by gya6 with SMTP id 6so1958145gya.6 for ; Sun, 12 Sep 2010 10:03:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:received:received:from:content-type :content-transfer-encoding:subject:date:message-id:to:mime-version :x-mailer; bh=IPQXZlUl3cRWVUFD06EAm9S8FN0xWCNZofuZGjytYp0=; b=PAkhBw1kHcORCJRP7QApqDzpZcA3RqCv2gOrXokqRCeQI/yMerqHmi88xg8E0C/4eD Pv3dkIhACbqjDCXxawqFvQYYGSiO3842d+6FHivQPExtj1iTnQTrjw6keVeMPW1nM2Gv vXPDnJaRuvSd1fG9CCrwt1hY6QJ0UOhKU/3ik= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=from:content-type:content-transfer-encoding:subject:date:message-id :to:mime-version:x-mailer; b=SPUkfktDeUpgzRKm3NEcSlbk58Z7OFVJ0jjAqQgOmbfuZQJfgyS1MkmU3NxHG1gq3p 9YKVYeLaFALGv8PyOHWSyTjIVqV05zo4vqZt/GPXb08BhbsI213mU1CZH6TP39jNXc95 5o/XbwVoD1nbH1elE1ICTu6c69bFh2+NdMj1U= Received: by 10.150.97.11 with SMTP id u11mr98861ybb.31.1284311021026; Sun, 12 Sep 2010 10:03:41 -0700 (PDT) Received: from [192.168.0.11] (user-0c8hs49.cable.mindspring.com [24.136.240.137]) by mx.google.com with ESMTPS id u24sm5258164yba.21.2010.09.12.10.03.40 (version=TLSv1/SSLv3 cipher=RC4-MD5); Sun, 12 Sep 2010 10:03:40 -0700 (PDT) From: Valentin Mahrwald Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Subject: Package structure in application api Date: Sun, 12 Sep 2010 13:03:39 -0400 Message-Id: To: aries-dev@incubator.apache.org Mime-Version: 1.0 (Apple Message framework v1081) X-Mailer: Apple Mail (2.1081) X-Virus-Checked: Checked by ClamAV on apache.org Hi, currently the application api project has one package = org.apache.aries.application.management which seems like a very = disparate collection of client interfaces and various layers of = interfaces to glue the runtime together. I would like to split that so = that the packages are more coherent and can be versioned with greater = independence. At the very least there ought to be a split between user's api and = implementer's spi: API (everything available from AriesApplicationManager):=20 AriesApplication, AriesApplicationContext, AriesApplicationEvent, = AriesApplicationListener, AriesApplicationManager, BundleInfo, = ManagementException, ResolveConstraint, ResolverException, = UpdateException SPI (everything else) AriesApplicationContextManager, AriesApplicationResolver, = BundleConversion, BundleConverter, BundleFramework, = BundleFrameworkFactory, BundleFrameworkManager, BundleRepository, = BundleRepositoryManager, ContextException, ConversionException, = DeploymentManifestManager, LocalPlatform, PlatformRepository, = RepositoryGenerator, UpdateStrategy InvalidAttributeException seems to belong in the = org.apache.aries.application package since it is only referenced in = DeploymentMetadata, which lives there. But even with this the runtime bundles that currently exist would be = client and implementer for interfaces in the SPI package at the same = time. So a further (OTT) split by responsibility might make sense: spi.conversion: BundleConversion, BundleConverter, ConversionException spi.framework: BundleFramework, BundleFrameworkFactory, = BundleFrameworkManager spi.repository: BundleRepository, BundleRepositoryManager, = PlatformRepository, RepositoryGenerator spi.resolve: AriesApplicationResolver, DeploymentManifestManager spi.runtime: AriesApplicationContextManager spi.update: UpdateStrategy spi.util: LocalPlatform =20 With the oddball ContextException to be still sorted out What do people think? Is either of these splits sensible or is there = something else that would be better? Valentin=