Skip to content

Commit

Permalink
Classloader is required to lookup services
Browse files Browse the repository at this point in the history
  • Loading branch information
gastaldi committed Aug 6, 2015
1 parent 1211885 commit 428eba2
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import org.jboss.forge.furnace.container.simple.EventListener;
import org.jboss.forge.furnace.lifecycle.AddonLifecycleProvider;
import org.jboss.forge.furnace.services.Imported;
import org.jboss.forge.furnace.util.Assert;

/**
* Implements a fast and simple {@link AddonLifecycleProvider} for the {@link Furnace} runtime. Allows Service and
Expand All @@ -31,26 +32,17 @@ public class SimpleContainer
*/
public static Furnace getFurnace(ClassLoader loader)
{
Assert.notNull(loader, "ClassLoader must not be null");
return started.get(loader);
}

/**
* Returns the registered services for a given {@link Furnace} Runtime.
*
* @param service the service {@link Class}
* @return an {@link Imported} instance
*/
public static <T> Imported<T> getServices(Class<T> service)
{
return getServices(service.getClassLoader(), service);
}

/**
* Returns the registered services for a given {@link Furnace} Runtime.
*
* @param classloader the {@link ClassLoader} this {@link Furnace} runtime can be found
* @param service the service {@link Class}
* @return an {@link Imported} instance
* @return an {@link Imported} instance, <code>null</code> if no {@link Furnace} container can be found in the given
* {@link ClassLoader}
*/
public static <T> Imported<T> getServices(ClassLoader classloader, Class<T> service)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,10 @@ public static AddonArchive getDeployment()
@Test
public void testContainerStartup()
{
Imported<SimpleSingletonInstance> services = SimpleContainer.getServices(SimpleSingletonInstance.class);
Imported<SimpleSingletonInstance> services2 = SimpleContainer.getServices(SimpleSingletonInstance.class);
Imported<SimpleSingletonInstance> services = SimpleContainer.getServices(getClass().getClassLoader(),
SimpleSingletonInstance.class);
Imported<SimpleSingletonInstance> services2 = SimpleContainer.getServices(getClass().getClassLoader(),
SimpleSingletonInstance.class);
assertNotNull(services.get());
assertEquals(services.get().getRandomInteger(), services2.get().getRandomInteger());
}
Expand Down

0 comments on commit 428eba2

Please sign in to comment.