ShrinkWrap Implementation Base 1.0.1

org.jboss.shrinkwrap.impl.base
Class ServiceExtensionLoader

java.lang.Object
  extended by org.jboss.shrinkwrap.impl.base.ServiceExtensionLoader
All Implemented Interfaces:
ExtensionLoader

public class ServiceExtensionLoader
extends Object
implements ExtensionLoader

ServiceExtensionLoader This class is the default strategy to load extensions when an instance of ExtensionLoader is not provided to the ConfigurationBuilder and the ConfigurationBuilder.build() method is invoked. If the ConfigurationBuilder doesn't provide any ClassLoader, ConfigurationBuilder.build() defaults to a one-element collection holding the TCCL. The classLoaders are used to find the provider-configuration file for the extension to be loaded in META-INF/services/. This provider-configuration file is used to make an instance of the SPI implementation and cached in cache.

Version:
$Revision: $
Author:
Aslak Knutsen, Ken Gullaksen

Constructor Summary
ServiceExtensionLoader(Iterable<ClassLoader> classLoaders)
          Creates a new instance, using the specified ClassLoaders to create extensions
 
Method Summary
<T extends Assignable>
ServiceExtensionLoader
addOverride(Class<T> extensionClass, Class<? extends T> extensionImplClass)
          
<T extends Archive<T>>
ArchiveFormat
getArchiveFormatFromExtensionMapping(Class<T> type)
          
<T extends Assignable>
String
getExtensionFromExtensionMapping(Class<T> type)
          
 boolean isOverriden(Class<?> extensionClass)
          Check to see if a specific extension interface is beeing overloaded
<T extends Assignable>
T
load(Class<T> extensionClass, Archive<?> baseArchive)
          
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ServiceExtensionLoader

public ServiceExtensionLoader(Iterable<ClassLoader> classLoaders)
                       throws IllegalArgumentException
Creates a new instance, using the specified ClassLoaders to create extensions

Parameters:
classLoaders -
Throws:
IllegalArgumentException - If the ClassLoader is not specified
Method Detail

load

public <T extends Assignable> T load(Class<T> extensionClass,
                                     Archive<?> baseArchive)
                          throws UnknownExtensionTypeException

Specified by:
load in interface ExtensionLoader
Throws:
UnknownExtensionTypeException
See Also:
ExtensionLoader.load(java.lang.Class, org.jboss.shrinkwrap.api.Archive)

addOverride

public <T extends Assignable> ServiceExtensionLoader addOverride(Class<T> extensionClass,
                                                                 Class<? extends T> extensionImplClass)

Specified by:
addOverride in interface ExtensionLoader
See Also:
ExtensionLoader.addOverride(java.lang.Class, java.lang.Class)

getExtensionFromExtensionMapping

public <T extends Assignable> String getExtensionFromExtensionMapping(Class<T> type)

Specified by:
getExtensionFromExtensionMapping in interface ExtensionLoader
See Also:
ExtensionLoader.getExtensionFromExtensionMapping(java.lang.Class)

getArchiveFormatFromExtensionMapping

public <T extends Archive<T>> ArchiveFormat getArchiveFormatFromExtensionMapping(Class<T> type)

Specified by:
getArchiveFormatFromExtensionMapping in interface ExtensionLoader
See Also:
ExtensionLoader.getArchiveFormatFromExtensionMapping(java.lang.Class)

isOverriden

public boolean isOverriden(Class<?> extensionClass)
Check to see if a specific extension interface is beeing overloaded

Parameters:
extensionClass - The ExtensionType interface class
Returns:
true if found

ShrinkWrap Implementation Base 1.0.1

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