Return-Path: Delivered-To: apmail-jakarta-avalon-dev-archive@apache.org Received: (qmail 89554 invoked from network); 16 Feb 2002 14:33:17 -0000 Received: from unknown (HELO nagoya.betaversion.org) (192.18.49.131) by daedalus.apache.org with SMTP; 16 Feb 2002 14:33:17 -0000 Received: (qmail 11459 invoked by uid 97); 16 Feb 2002 14:33:17 -0000 Delivered-To: qmlist-jakarta-archive-avalon-dev@jakarta.apache.org Received: (qmail 11433 invoked by uid 97); 16 Feb 2002 14:33:17 -0000 Mailing-List: contact avalon-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Avalon Developers List" Reply-To: "Avalon Developers List" Delivered-To: mailing list avalon-dev@jakarta.apache.org Received: (qmail 11419 invoked from network); 16 Feb 2002 14:33:16 -0000 From: "Leo Sutic" To: "Avalon Developers List" Subject: RE: Son of ComponentManager Date: Sat, 16 Feb 2002 15:38:20 +0100 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0) In-Reply-To: X-Mimeole: Produced By Microsoft MimeOLE V5.50.4522.1200 Importance: Normal X-OriginalArrivalTime: 16 Feb 2002 14:33:18.0395 (UTC) FILETIME=[E04590B0:01C1B6F6] X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N > From: Leo Sutic [mailto:leo.sutic@inspireinfrastructure.com] > > package packagename; > > import org.apache.avalon.framework.component.Component; > import org.apache.avalon.framework.component.ComponentException; > > public interface ObjectManager implements Component { > public static void ROLE = "packagename.ObjectManager"; > public Object lookup (String role) throws ComponentException; > } > > ---------------------------- > > public class DefaultObjectManager implements ObjectManager, Composable, > ThreadSafe { > > private ComponentManager manager = null; > > public void compose (ComponentManager manager) { > this.manager = manager; > } > > public Object lookup (String role) throws ComponentException { > Component maybeWrapper = manager.lookup (role); > if (maybeWrapper instanceof ComponentWrapper) { > return ((ComponentWrapper) maybeWrapper).getObject (); > } else { > return maybeWrapper; > } > } > } > Oops - for Avalon4 compatibility, must not forget: public interface ObjectManager implements Component { public static void ROLE = "packagename.ObjectManager"; public Object lookup (String role) throws ComponentException; public void release (Object obj); } public class DefaultObjectManager implements ObjectManager, Composable, ThreadSafe { private ComponentManager manager = null; public void compose (ComponentManager manager) { this.manager = manager; } public Object lookup (String role) throws ComponentException { Component maybeWrapper = manager.lookup (role); if (maybeWrapper instanceof ComponentWrapper) { return ((ComponentWrapper) maybeWrapper).getObject (); } else { return maybeWrapper; } } public void release (Object object) { if (object instanceof Component) { manager.release ((Component) object); } } } -- To unsubscribe, e-mail: For additional commands, e-mail: