本文整理汇总了Java中org.jboss.forge.furnace.util.Addons类的典型用法代码示例。如果您正苦于以下问题:Java Addons类的具体用法?Java Addons怎么用?Java Addons使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
Addons类属于org.jboss.forge.furnace.util包,在下文中一共展示了Addons类的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: testFurnaceLoadsInstalledAddonFromSeparateInstance
import org.jboss.forge.furnace.util.Addons; //导入依赖的package包/类
@Test(timeout = 20000)
public void testFurnaceLoadsInstalledAddonFromSeparateInstance() throws IOException, TimeoutException
{
Assert.assertEquals(1, furnace.getRepositories().size());
Assert.assertEquals(0, furnace.getAddonRegistry().getAddons().size());
Assert.assertEquals(0, furnace.getRepositories().get(0).listEnabled().size());
Furnace furnace2 = ServiceLoader.load(Furnace.class).iterator().next();
AddonDependencyResolver resolver = new MavenAddonDependencyResolver();
furnace2.addRepository(AddonRepositoryMode.MUTABLE, repository);
AddonManager addonManager = new AddonManagerImpl(furnace2, resolver);
AddonId addon = AddonId.from("test:no_dep", "1.1.2-SNAPSHOT");
InstallRequest install = addonManager.install(addon);
List<? extends AddonActionRequest> actions = install.getActions();
Assert.assertEquals(1, actions.size());
Assert.assertThat(actions.get(0), instanceOf(DeployRequest.class));
install.perform();
Addons.waitUntilStarted(furnace.getAddonRegistry().getAddon(addon));
Assert.assertEquals(1, furnace2.getRepositories().get(0).listEnabled().size());
Assert.assertEquals(1, furnace.getRepositories().get(0).listEnabled().size());
Assert.assertEquals(1, furnace.getAddonRegistry().getAddons().size());
}
示例2: undeploy
import org.jboss.forge.furnace.util.Addons; //导入依赖的package包/类
@Override
public void undeploy(Archive<?> archive) throws DeploymentException
{
undeploying = true;
AddonId addonToUndeploy = getAddonEntry(deploymentInstance.get());
AddonRegistry registry = runnable.getForge().getAddonRegistry();
System.out.println("Undeploying [" + addonToUndeploy + "] ... ");
try
{
Addon addonToStop = registry.getAddon(addonToUndeploy);
if (addonToStop.getStatus().isLoaded())
((MutableAddonRepository) addonToStop.getRepository()).disable(addonToUndeploy);
Addons.waitUntilStopped(addonToStop);
}
catch (Exception e)
{
throw new DeploymentException("Failed to undeploy " + addonToUndeploy, e);
}
finally
{
repository.undeploy(addonToUndeploy);
}
}
示例3: testAddonsLoadAPIClassesFromBootpathJAR
import org.jboss.forge.furnace.util.Addons; //导入依赖的package包/类
@Test
public void testAddonsLoadAPIClassesFromBootpathJAR() throws IOException, Exception
{
Furnace furnace = FurnaceFactory.getInstance();
furnace.addRepository(AddonRepositoryMode.MUTABLE, repodir1);
AddonDependencyResolver resolver = new MavenAddonDependencyResolver();
AddonManager manager = new AddonManagerImpl(furnace, resolver);
AddonId no_dep = AddonId.from("test:no_dep", "1.0.0.Final");
AddonId one_dep = AddonId.from("test:one_dep", "1.0.0.Final");
manager.install(no_dep).perform();
manager.install(one_dep).perform();
ConfigurationScanListener listener = new ConfigurationScanListener();
ListenerRegistration<ContainerLifecycleListener> registration = furnace.addContainerLifecycleListener(listener);
furnace.startAsync();
while (!listener.isConfigurationScanned())
Thread.sleep(100);
registration.removeListener();
Addon projectsAddon = furnace.getAddonRegistry().getAddon(no_dep);
Addons.waitUntilStarted(projectsAddon, 10, TimeUnit.SECONDS);
ClassLoader addonClassLoader = projectsAddon.getClassLoader().loadClass(Addon.class.getName()).getClassLoader();
ClassLoader appClassLoader = Addon.class.getClassLoader();
Assert.assertNotEquals(appClassLoader, addonClassLoader);
Assert.assertTrue(projectsAddon.getStatus().isStarted());
furnace.stop();
}
示例4: testPreShutdownIsCalled
import org.jboss.forge.furnace.util.Addons; //导入依赖的package包/类
@Test(timeout = 5000)
public void testPreShutdownIsCalled() throws Exception
{
Furnace furnace = LocalServices.getFurnace(getClass().getClassLoader());
AddonRegistry registry = furnace.getAddonRegistry();
Addon dep2 = registry.getAddon(AddonId.from("dep2", "2"));
RecordingEventManager manager = registry.getServices(RecordingEventManager.class).get();
Assert.assertEquals(3, manager.getPostStartupCount());
MutableAddonRepository repository = (MutableAddonRepository) furnace.getRepositories().get(0);
repository.disable(dep2.getId());
Addons.waitUntilStopped(dep2);
Assert.assertEquals(1, manager.getPreShutdownCount());
}
示例5: waitForOldWindupUIAddon
import org.jboss.forge.furnace.util.Addons; //导入依赖的package包/类
private void waitForOldWindupUIAddon(Furnace furnace) throws InterruptedException
{
Addon addon = furnace.getAddonRegistry().getAddon(AddonId.from(WINDUP_UI_ADDON_NAME, WINDUP_OLD_VERSION));
Addons.waitUntilStarted(addon);
do
{
// We need to wait till furnace will process all the information changed in the directories.
Thread.sleep(500);
}
while (furnace.getAddonRegistry().getServices(WindupUpdateDistributionCommand.class).isUnsatisfied());
}
示例6: testAddonsDuplicatedIfSubgraphDiffers
import org.jboss.forge.furnace.util.Addons; //导入依赖的package包/类
@Test
public void testAddonsDuplicatedIfSubgraphDiffers() throws IOException, InterruptedException, TimeoutException
{
Furnace furnace = FurnaceFactory.getInstance();
AddonRepository left = furnace.addRepository(AddonRepositoryMode.MUTABLE, leftRepo);
AddonRepository right = furnace.addRepository(AddonRepositoryMode.MUTABLE, rightRepo);
AddonDependencyResolver resolver = new MavenAddonDependencyResolver();
AddonManager manager = new AddonManagerImpl(furnace, resolver);
AddonId no_dep = AddonId.from("test:no_dep", "1.0.0.Final");
AddonId one_dep = AddonId.from("test:one_dep", "1.0.0.Final");
AddonId one_dep_a = AddonId.from("test:one_dep_a", "1.0.0.Final");
AddonId one_dep_lib = AddonId.from("test:one_dep_lib", "1.0.0.Final");
AddonId one_dep_2 = AddonId.from("test:one_dep", "2.0.0.Final");
Assert.assertFalse(left.isDeployed(one_dep_lib));
Assert.assertFalse(left.isDeployed(one_dep_a));
Assert.assertFalse(left.isDeployed(no_dep));
Assert.assertFalse(left.isDeployed(one_dep));
Assert.assertFalse(left.isDeployed(one_dep_2));
Assert.assertFalse(right.isDeployed(one_dep_lib));
Assert.assertFalse(right.isDeployed(one_dep_a));
Assert.assertFalse(right.isDeployed(no_dep));
Assert.assertFalse(right.isDeployed(one_dep));
Assert.assertFalse(right.isDeployed(one_dep_2));
manager.install(no_dep, left).perform();
manager.deploy(one_dep, left).perform();
manager.deploy(one_dep_a, left).perform();
manager.deploy(one_dep_lib, left).perform();
manager.deploy(one_dep_2, right).perform();
Assert.assertTrue(left.isDeployed(no_dep));
Assert.assertTrue(left.isDeployed(one_dep));
Assert.assertTrue(left.isDeployed(one_dep_a));
Assert.assertTrue(left.isDeployed(one_dep_lib));
Assert.assertFalse(left.isDeployed(one_dep_2));
Assert.assertFalse(right.isDeployed(no_dep));
Assert.assertFalse(right.isDeployed(one_dep));
Assert.assertFalse(right.isDeployed(one_dep_a));
Assert.assertFalse(right.isDeployed(one_dep_lib));
Assert.assertTrue(right.isDeployed(one_dep_2));
ConfigurationScanListener listener = new ConfigurationScanListener();
ListenerRegistration<ContainerLifecycleListener> registration = furnace.addContainerLifecycleListener(listener);
furnace.startAsync();
while (!listener.isConfigurationScanned())
Thread.sleep(100);
AddonRegistry registry = furnace.getAddonRegistry();
Addons.waitUntilStarted(registry.getAddon(one_dep_a), 10, TimeUnit.SECONDS);
AddonRegistry leftRegistry = furnace.getAddonRegistry(left);
Addon addon = leftRegistry.getAddon(one_dep);
Assert.assertNotNull(addon);
registration.removeListener();
furnace.stop();
}
示例7: testAddonsCanReferenceDependenciesInOtherRepositories
import org.jboss.forge.furnace.util.Addons; //导入依赖的package包/类
@Test
public void testAddonsCanReferenceDependenciesInOtherRepositories() throws IOException, InterruptedException,
TimeoutException
{
Furnace furnace = FurnaceFactory.getInstance();
AddonRepository left = furnace.addRepository(AddonRepositoryMode.MUTABLE, repodir1);
AddonRepository right = furnace.addRepository(AddonRepositoryMode.MUTABLE, repodir2);
AddonDependencyResolver resolver = new MavenAddonDependencyResolver();
AddonManager manager = new AddonManagerImpl(furnace, resolver);
AddonId no_dep = AddonId.from("test:no_dep", "1.0.0.Final");
AddonId one_dep = AddonId.from("test:one_dep", "1.0.0.Final");
AddonId one_dep_a = AddonId.from("test:one_dep_a", "1.0.0.Final");
Assert.assertFalse(left.isDeployed(one_dep_a));
Assert.assertFalse(left.isDeployed(no_dep));
Assert.assertFalse(left.isDeployed(one_dep));
Assert.assertFalse(right.isDeployed(one_dep_a));
Assert.assertFalse(right.isDeployed(no_dep));
Assert.assertFalse(right.isDeployed(one_dep));
manager.install(no_dep, left).perform();
manager.deploy(one_dep, left).perform();
manager.deploy(one_dep_a, right).perform();
Assert.assertFalse(left.isDeployed(one_dep_a));
Assert.assertFalse(right.isDeployed(one_dep));
Assert.assertFalse(right.isDeployed(no_dep));
Assert.assertTrue(left.isDeployed(one_dep));
Assert.assertTrue(left.isDeployed(one_dep));
Assert.assertTrue(right.isDeployed(one_dep_a));
ConfigurationScanListener listener = new ConfigurationScanListener();
ListenerRegistration<ContainerLifecycleListener> registration = furnace.addContainerLifecycleListener(listener);
furnace.startAsync();
while (!listener.isConfigurationScanned())
Thread.sleep(100);
Addons.waitUntilStarted(furnace.getAddonRegistry().getAddon(one_dep_a), 10, TimeUnit.SECONDS);
registration.removeListener();
furnace.stop();
}
示例8: testAddonsDontFailIfDuplicatedInOtherRepositories
import org.jboss.forge.furnace.util.Addons; //导入依赖的package包/类
@Test
public void testAddonsDontFailIfDuplicatedInOtherRepositories() throws IOException, Exception
{
Furnace furnace = FurnaceFactory.getInstance();
AddonRepository left = furnace.addRepository(AddonRepositoryMode.MUTABLE, repodir1);
AddonRepository right = furnace.addRepository(AddonRepositoryMode.MUTABLE, repodir2);
AddonDependencyResolver resolver = new MavenAddonDependencyResolver();
AddonManager manager = new AddonManagerImpl(furnace, resolver);
AddonId no_dep = AddonId.from("test:no_dep", "1.0.0.Final");
AddonId one_dep = AddonId.from("test:one_dep", "1.0.0.Final");
AddonId one_dep_a = AddonId.from("test:one_dep_a", "1.0.0.Final");
Assert.assertFalse(left.isDeployed(one_dep_a));
Assert.assertFalse(left.isDeployed(no_dep));
Assert.assertFalse(left.isDeployed(one_dep));
Assert.assertFalse(right.isDeployed(one_dep_a));
Assert.assertFalse(right.isDeployed(no_dep));
Assert.assertFalse(right.isDeployed(one_dep));
manager.install(no_dep, left).perform();
manager.deploy(one_dep, left).perform();
manager.deploy(one_dep_a, left).perform();
manager.deploy(one_dep_a, right).perform();
Assert.assertFalse(right.isDeployed(no_dep));
Assert.assertFalse(right.isDeployed(one_dep));
Assert.assertTrue(left.isDeployed(one_dep_a));
Assert.assertTrue(left.isDeployed(one_dep));
Assert.assertTrue(left.isDeployed(one_dep_a));
Assert.assertTrue(right.isDeployed(one_dep_a));
ConfigurationScanListener listener = new ConfigurationScanListener();
ListenerRegistration<ContainerLifecycleListener> registration = furnace.addContainerLifecycleListener(listener);
furnace.startAsync();
while (!listener.isConfigurationScanned())
Thread.sleep(100);
registration.removeListener();
Addons.waitUntilStarted(furnace.getAddonRegistry().getAddon(one_dep_a), 10, TimeUnit.SECONDS);
Addons.waitUntilStarted(furnace.getAddonRegistry().getAddon(no_dep), 10, TimeUnit.SECONDS);
Addons.waitUntilStarted(furnace.getAddonRegistry().getAddon(one_dep), 10, TimeUnit.SECONDS);
System.out.println("Getting instances.");
//FIXME Mocked addons should contain these classes. Use reflection to avoid compile-time dependency ?
// ExportedInstance<ConverterFactory> instance = furnace.getAddonRegistry()
// .getExportedInstance(ConverterFactory.class);
// ConverterFactory factory = instance.get();
//
// factory.getConverter(File.class,
// furnace.getAddonRegistry().getAddon(one_dep_a).getClassLoader()
// .loadClass("org.jboss.forge.addon.resource.DirectoryResource"));
furnace.stop();
}
示例9: testAddonsSharedIfSubgraphEquivalent
import org.jboss.forge.furnace.util.Addons; //导入依赖的package包/类
@Test
public void testAddonsSharedIfSubgraphEquivalent() throws IOException, InterruptedException, TimeoutException
{
Furnace furnace = FurnaceFactory.getInstance(Furnace.class.getClassLoader());
AddonRepository left = furnace.addRepository(AddonRepositoryMode.MUTABLE, repodir1);
AddonRepository right = furnace.addRepository(AddonRepositoryMode.MUTABLE, repodir2);
AddonDependencyResolver resolver = new MavenAddonDependencyResolver();
AddonManager manager = new AddonManagerImpl(furnace, resolver);
AddonId no_dep = AddonId.from("test:no_dep", "1.0.0.Final");
AddonId one_dep = AddonId.from("test:one_dep", "1.0.0.Final");
AddonId one_dep_a = AddonId.from("test:one_dep_a", "1.0.0.Final");
AddonId no_dep2 = AddonId.from("test:no_dep", "2.0.0.Final");
Assert.assertFalse(left.isDeployed(one_dep_a));
Assert.assertFalse(left.isDeployed(no_dep));
Assert.assertFalse(left.isDeployed(no_dep2));
Assert.assertFalse(left.isDeployed(one_dep));
Assert.assertFalse(right.isDeployed(one_dep_a));
Assert.assertFalse(right.isDeployed(no_dep));
Assert.assertFalse(right.isDeployed(no_dep2));
Assert.assertFalse(right.isDeployed(one_dep));
manager.install(no_dep, left).perform();
manager.deploy(one_dep, left).perform();
manager.deploy(one_dep_a, right).perform();
manager.deploy(no_dep2, right).perform();
Assert.assertFalse(left.isDeployed(one_dep_a));
Assert.assertFalse(right.isDeployed(one_dep));
Assert.assertFalse(right.isDeployed(no_dep));
Assert.assertFalse(left.isDeployed(no_dep2));
Assert.assertTrue(left.isDeployed(no_dep));
Assert.assertTrue(left.isDeployed(one_dep));
Assert.assertTrue(right.isDeployed(one_dep_a));
Assert.assertTrue(right.isDeployed(no_dep2));
ConfigurationScanListener listener = new ConfigurationScanListener();
ListenerRegistration<ContainerLifecycleListener> registration = furnace.addContainerLifecycleListener(listener);
furnace.startAsync();
while (!listener.isConfigurationScanned())
Thread.sleep(100);
AddonRegistry registry = furnace.getAddonRegistry();
Addons.waitUntilStarted(registry.getAddon(one_dep_a), 10, TimeUnit.SECONDS);
AddonRegistry leftRegistry = furnace.getAddonRegistry(left);
Assert.assertNotNull(leftRegistry.getAddon(no_dep));
Assert.assertTrue(registry.getAddon(no_dep).getStatus().isMissing());
Assert.assertNotNull(registry.getAddon(no_dep2));
Assert.assertTrue(leftRegistry.getAddon(no_dep2).getStatus().isMissing());
registration.removeListener();
furnace.stop();
}
示例10: testAddonsDuplicatedIfSubgraphDiffers
import org.jboss.forge.furnace.util.Addons; //导入依赖的package包/类
@Test
public void testAddonsDuplicatedIfSubgraphDiffers() throws IOException, InterruptedException, TimeoutException
{
Furnace furnace = FurnaceFactory.getInstance(Furnace.class.getClassLoader());
AddonRepository left = furnace.addRepository(AddonRepositoryMode.MUTABLE, repodir1);
AddonRepository right = furnace.addRepository(AddonRepositoryMode.MUTABLE, repodir2);
AddonDependencyResolver resolver = new MavenAddonDependencyResolver();
AddonManager manager = new AddonManagerImpl(furnace, resolver);
AddonId no_dep = AddonId.from("test:no_dep", "1.0.0.Final");
AddonId one_dep = AddonId.from("test:one_dep", "1.0.0.Final");
AddonId one_dep_a = AddonId.from("test:one_dep_a", "1.0.0.Final");
AddonId one_dep_lib = AddonId.from("test:one_dep_lib", "1.0.0.Final");
AddonId one_dep_2 = AddonId.from("test:one_dep", "2.0.0.Final");
Assert.assertFalse(left.isDeployed(one_dep_lib));
Assert.assertFalse(left.isDeployed(one_dep_a));
Assert.assertFalse(left.isDeployed(no_dep));
Assert.assertFalse(left.isDeployed(one_dep));
Assert.assertFalse(left.isDeployed(one_dep_2));
Assert.assertFalse(right.isDeployed(one_dep_lib));
Assert.assertFalse(right.isDeployed(one_dep_a));
Assert.assertFalse(right.isDeployed(no_dep));
Assert.assertFalse(right.isDeployed(one_dep));
Assert.assertFalse(right.isDeployed(one_dep_2));
manager.install(no_dep, left).perform();
manager.deploy(one_dep, left).perform();
manager.deploy(one_dep_a, left).perform();
manager.deploy(one_dep_lib, left).perform();
manager.deploy(one_dep_2, right).perform();
Assert.assertTrue(left.isDeployed(no_dep));
Assert.assertTrue(left.isDeployed(one_dep));
Assert.assertTrue(left.isDeployed(one_dep_a));
Assert.assertTrue(left.isDeployed(one_dep_lib));
Assert.assertFalse(left.isDeployed(one_dep_2));
Assert.assertFalse(right.isDeployed(no_dep));
Assert.assertFalse(right.isDeployed(one_dep));
Assert.assertFalse(right.isDeployed(one_dep_a));
Assert.assertFalse(right.isDeployed(one_dep_lib));
Assert.assertTrue(right.isDeployed(one_dep_2));
ConfigurationScanListener listener = new ConfigurationScanListener();
ListenerRegistration<ContainerLifecycleListener> registration = furnace.addContainerLifecycleListener(listener);
furnace.startAsync();
while (!listener.isConfigurationScanned())
Thread.sleep(100);
AddonRegistry registry = furnace.getAddonRegistry();
Addons.waitUntilStarted(registry.getAddon(one_dep_a), 10, TimeUnit.SECONDS);
AddonRegistry leftRegistry = furnace.getAddonRegistry(left);
Addon addon = leftRegistry.getAddon(one_dep);
Assert.assertNotNull(addon);
registration.removeListener();
furnace.stop();
}
示例11: testAddonsCanReferenceDependenciesInOtherRepositories
import org.jboss.forge.furnace.util.Addons; //导入依赖的package包/类
@Test
public void testAddonsCanReferenceDependenciesInOtherRepositories() throws IOException, InterruptedException,
TimeoutException
{
Furnace furnace = FurnaceFactory.getInstance(Furnace.class.getClassLoader());
AddonRepository left = furnace.addRepository(AddonRepositoryMode.MUTABLE, repodir1);
AddonRepository right = furnace.addRepository(AddonRepositoryMode.MUTABLE, repodir2);
AddonDependencyResolver resolver = new MavenAddonDependencyResolver();
AddonManager manager = new AddonManagerImpl(furnace, resolver);
AddonId no_dep = AddonId.from("test:no_dep", "1.0.0.Final");
AddonId one_dep = AddonId.from("test:one_dep", "1.0.0.Final");
AddonId one_dep_a = AddonId.from("test:one_dep_a", "1.0.0.Final");
Assert.assertFalse(left.isDeployed(one_dep_a));
Assert.assertFalse(left.isDeployed(no_dep));
Assert.assertFalse(left.isDeployed(one_dep));
Assert.assertFalse(right.isDeployed(one_dep_a));
Assert.assertFalse(right.isDeployed(no_dep));
Assert.assertFalse(right.isDeployed(one_dep));
manager.install(no_dep, left).perform();
manager.deploy(one_dep, left).perform();
manager.deploy(one_dep_a, right).perform();
Assert.assertFalse(left.isDeployed(one_dep_a));
Assert.assertFalse(right.isDeployed(one_dep));
Assert.assertFalse(right.isDeployed(no_dep));
Assert.assertTrue(left.isDeployed(one_dep));
Assert.assertTrue(left.isDeployed(one_dep));
Assert.assertTrue(right.isDeployed(one_dep_a));
ConfigurationScanListener listener = new ConfigurationScanListener();
ListenerRegistration<ContainerLifecycleListener> registration = furnace.addContainerLifecycleListener(listener);
furnace.startAsync();
while (!listener.isConfigurationScanned())
Thread.sleep(100);
Addons.waitUntilStarted(furnace.getAddonRegistry().getAddon(one_dep_a), 10, TimeUnit.SECONDS);
registration.removeListener();
furnace.stop();
}
示例12: testAddonsDontFailIfDuplicatedInOtherRepositories
import org.jboss.forge.furnace.util.Addons; //导入依赖的package包/类
@Test
public void testAddonsDontFailIfDuplicatedInOtherRepositories() throws IOException, Exception
{
Furnace furnace = FurnaceFactory.getInstance(Furnace.class.getClassLoader());
AddonRepository left = furnace.addRepository(AddonRepositoryMode.MUTABLE, repodir1);
AddonRepository right = furnace.addRepository(AddonRepositoryMode.MUTABLE, repodir2);
AddonDependencyResolver resolver = new MavenAddonDependencyResolver();
AddonManager manager = new AddonManagerImpl(furnace, resolver);
AddonId no_dep = AddonId.from("test:no_dep", "1.0.0.Final");
AddonId one_dep = AddonId.from("test:one_dep", "1.0.0.Final");
AddonId one_dep_a = AddonId.from("test:one_dep_a", "1.0.0.Final");
Assert.assertFalse(left.isDeployed(one_dep_a));
Assert.assertFalse(left.isDeployed(no_dep));
Assert.assertFalse(left.isDeployed(one_dep));
Assert.assertFalse(right.isDeployed(one_dep_a));
Assert.assertFalse(right.isDeployed(no_dep));
Assert.assertFalse(right.isDeployed(one_dep));
manager.install(no_dep, left).perform();
manager.deploy(one_dep, left).perform();
manager.deploy(one_dep_a, left).perform();
manager.deploy(one_dep_a, right).perform();
Assert.assertFalse(right.isDeployed(no_dep));
Assert.assertFalse(right.isDeployed(one_dep));
Assert.assertTrue(left.isDeployed(one_dep_a));
Assert.assertTrue(left.isDeployed(one_dep));
Assert.assertTrue(left.isDeployed(one_dep_a));
Assert.assertTrue(right.isDeployed(one_dep_a));
ConfigurationScanListener listener = new ConfigurationScanListener();
ListenerRegistration<ContainerLifecycleListener> registration = furnace.addContainerLifecycleListener(listener);
furnace.startAsync();
while (!listener.isConfigurationScanned())
Thread.sleep(100);
registration.removeListener();
Addons.waitUntilStarted(furnace.getAddonRegistry().getAddon(one_dep_a), 10, TimeUnit.SECONDS);
Addons.waitUntilStarted(furnace.getAddonRegistry().getAddon(no_dep), 10, TimeUnit.SECONDS);
Addons.waitUntilStarted(furnace.getAddonRegistry().getAddon(one_dep), 10, TimeUnit.SECONDS);
System.out.println("Getting instances.");
//FIXME Mocked addons should contain these classes. Use reflection to avoid compile-time dependency ?
// ExportedInstance<ConverterFactory> instance = furnace.getAddonRegistry()
// .getExportedInstance(ConverterFactory.class);
// ConverterFactory factory = instance.get();
//
// factory.getConverter(File.class,
// furnace.getAddonRegistry().getAddon(one_dep_a).getClassLoader()
// .loadClass("org.jboss.forge.addon.resource.DirectoryResource"));
furnace.stop();
}
示例13: run
import org.jboss.forge.furnace.util.Addons; //导入依赖的package包/类
@Override
public void run()
{
Thread currentThread = Thread.currentThread();
String name = currentThread.getName();
currentThread.setName(addon.getId().toCoordinates());
try
{
logger.info("> Starting container [" + addon.getId() + "] [" + addon.getRepository().getRootDirectory() + "]");
long start = System.currentTimeMillis();
lifecycleProviderEntry = detectLifecycleProvider();
if (lifecycleProviderEntry != null)
{
final AddonLifecycleProvider lifecycleProvider = lifecycleProviderEntry.getProvider();
ClassLoaders.executeIn(addon.getClassLoader(), new Callable<Void>()
{
@Override
public Void call() throws Exception
{
lifecycleProvider.initialize(furnace, furnace.getAddonRegistry(getRepositories()),
lifecycleProviderEntry.getAddon());
lifecycleProvider.start(addon);
stateManager.setServiceRegistry(addon, lifecycleProvider.getServiceRegistry(addon));
stateManager.setEventManager(addon, lifecycleProvider.getEventManager(addon));
for (AddonDependency dependency : addon.getDependencies())
{
if (dependency.getDependency().getStatus().isLoaded())
Addons.waitUntilStarted(dependency.getDependency());
}
lifecycleProvider.postStartup(addon);
for (AddonView view : stateManager.getViewsOf(addon))
{
for (Addon a : view.getAddons(notThisAddonFilter))
{
a.getEventManager().fireEvent(new PostStartup(addon));
}
}
return null;
}
});
}
logger.info(">> Started container [" + addon.getId() + "] - " + (System.currentTimeMillis() - start) + "ms");
}
catch (Throwable e)
{
addon.getFuture().cancel(false);
Level level = Level.FINEST;
if (!shutdownRequested)
level = Level.SEVERE;
logger.log(level, "Failed to start addon [" + addon.getId() + "] with classloader ["
+ stateManager.getClassLoaderOf(addon)
+ "]", e);
}
finally
{
lifecycleManager.finishedStarting(addon);
SecurityActions.cleanupThreadLocals(Thread.currentThread());
currentThread.setName(name);
currentThread.setContextClassLoader(null);
}
}