1 package org.codehaus.xfire.plexus; 2 3 import org.codehaus.plexus.component.repository.exception.ComponentLookupException; 4 import org.codehaus.plexus.personality.plexus.lifecycle.phase.ServiceLocator; 5 import org.codehaus.plexus.personality.plexus.lifecycle.phase.Serviceable; 6 import org.codehaus.xfire.DefaultXFire; 7 import org.codehaus.xfire.XFireRuntimeException; 8 import org.codehaus.xfire.service.ServiceRegistry; 9 import org.codehaus.xfire.transport.TransportManager; 10 11 /*** 12 * An instance of XFire that is managed by Plexus. 13 * 14 * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a> 15 * @since Sep 19, 2004 16 */ 17 public class PlexusXFire 18 extends DefaultXFire 19 implements Serviceable 20 { 21 private ServiceLocator locator; 22 23 public PlexusXFire() 24 { 25 super(); 26 } 27 28 public ServiceRegistry getServiceRegistry() 29 { 30 try 31 { 32 return (ServiceRegistry) locator.lookup(ServiceRegistry.ROLE); 33 } 34 catch (ComponentLookupException e) 35 { 36 throw new XFireRuntimeException("Couldn't find component.", e); 37 } 38 } 39 40 public TransportManager getTransportManager() 41 { 42 try 43 { 44 return (TransportManager) locator.lookup(TransportManager.ROLE); 45 } 46 catch (ComponentLookupException e) 47 { 48 throw new XFireRuntimeException("Couldn't find component.", e); 49 } 50 } 51 52 /*** 53 * @see org.codehaus.plexus.personality.plexus.lifecycle.phase.Serviceable#service(org.codehaus.plexus.personality.plexus.lifecycle.phase.ServiceLocator) 54 */ 55 public void service(ServiceLocator locator) 56 { 57 this.locator = locator; 58 } 59 }