ShrinkWrap Resolver SPI 2.0.0-cr-1

org.jboss.shrinkwrap.resolver.spi.loader
Class SpiServiceLoader

java.lang.Object
  extended by org.jboss.shrinkwrap.resolver.spi.loader.SpiServiceLoader
All Implemented Interfaces:
ServiceLoader

public class SpiServiceLoader
extends Object
implements ServiceLoader

A basic ServiceLoader implementation which uses META-INF/services registration. In order to register a service, create a file META-INF/services/${service.interface.name}. The content of the file should list fully qualified names of interface implementations, separated by new line character.

Author:
Aslak Knutsen, Karel Piwko, ALR

Constructor Summary
SpiServiceLoader()
          Create an instance of SPI service loader
SpiServiceLoader(ClassLoader classLoader)
          Creates an instance of SPI service loader.
 
Method Summary
<T> Collection<T>
all(Class<T> serviceClass)
          Loads all registered services for given serviceClass
 ClassLoader getClassLoader()
           
<T> T
onlyOne(Class<T> serviceClass)
          Loads a registered service for given serviceClass
<T> T
onlyOne(Class<T> serviceClass, Class<? extends T> defaultImplementationClass)
          Loads a registered service for given serviceClass.
 void setClassLoader(ClassLoader classLoader)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SpiServiceLoader

public SpiServiceLoader()
Create an instance of SPI service loader


SpiServiceLoader

public SpiServiceLoader(ClassLoader classLoader)
Creates an instance of SPI service loader. Uses specific ClassLoader to load service implementations.

Parameters:
classLoader -
Method Detail

all

public <T> Collection<T> all(Class<T> serviceClass)
Description copied from interface: ServiceLoader
Loads all registered services for given serviceClass

Specified by:
all in interface ServiceLoader
Returns:

onlyOne

public <T> T onlyOne(Class<T> serviceClass)
Description copied from interface: ServiceLoader
Loads a registered service for given serviceClass

Specified by:
onlyOne in interface ServiceLoader
Returns:

onlyOne

public <T> T onlyOne(Class<T> serviceClass,
                     Class<? extends T> defaultImplementationClass)
Description copied from interface: ServiceLoader
Loads a registered service for given serviceClass. Reverts to the defaultImplementationClass if no other service is registered. If defaultImplemenationClass is registered as well, it simply ignores it during resolution.

Specified by:
onlyOne in interface ServiceLoader
Returns:

getClassLoader

public ClassLoader getClassLoader()

setClassLoader

public void setClassLoader(ClassLoader classLoader)

ShrinkWrap Resolver SPI 2.0.0-cr-1

Copyright © 2013 JBoss by Red Hat. All Rights Reserved.