@Override public void register(TestClass testClass, AddonArchive addonArchive) { addonArchive.addBeansXML(); } }
@Override public ForgeArchive setAsForgeXML(final Asset resource) throws IllegalArgumentException { Validate.notNull(resource, "Resource should be specified"); return add(resource, getForgeXMLPath()); }
@Override public void register(TestClass testClass, AddonArchive addonArchive) { addonArchive.addAsServiceProvider(Service.class, testClass.getJavaClass()); } }
for (DeploymentListener listener : deploymentArchive.getDeploymentListeners()) addonManager.install(deploymentArchive.getAddonId(), target).perform(); waitForDeploymentCompletion(deployment, addonToDeploy, deploymentArchive.getDeploymentTimeoutQuantity(), deploymentArchive.getDeploymentTimeoutUnit()); for (DeploymentListener listener : deploymentArchive.getDeploymentListeners()) ((AddonArchiveBase<?>) archive).getDeploymentTimeoutQuantity(), ((AddonArchiveBase<?>) archive).getDeploymentTimeoutUnit());
@Override public Archive<?> generateDeployment(TestDeployment testDeployment, Collection<ProtocolArchiveProcessor> processors) { if (testDeployment.getApplicationArchive() instanceof ForgeArchive) { ForgeArchive deployment = ForgeArchive.class.cast(testDeployment.getApplicationArchive()); deployment.addAsServiceProvider(RemoteLoadableExtension.class, CDIEnricherRemoteExtensionWorkaround.class); deployment.addAsLibraries(testDeployment.getAuxiliaryArchives()); deployment.addClasses(ForgeArchive.class); return deployment; } else if (testDeployment.getApplicationArchive() instanceof ForgeRemoteAddon) { return testDeployment.getApplicationArchive(); } else { throw new IllegalArgumentException( "Invalid Archive type. Ensure that your @Deployment method returns type 'ForgeArchive'."); } } }
@Override public boolean handles(TestClass testClass, AddonArchive addonArchive) { for (AddonDependencyEntry entry : addonArchive.getAddonDependencies()) { if (entry.isFurnaceContainer()) { return entry.getName().endsWith(":simple"); } } return false; }
@Override public Archive<?> generateDeployment(TestDeployment testDeployment, Collection<ProtocolArchiveProcessor> processors) { if (testDeployment.getApplicationArchive() instanceof ForgeArchive) { ForgeArchive deployment = ForgeArchive.class.cast(testDeployment.getApplicationArchive()); deployment.addAsLibraries(testDeployment.getAuxiliaryArchives()); deployment.addClasses(ForgeArchive.class); return deployment; } else if (testDeployment.getApplicationArchive() instanceof ForgeRemoteAddon) { return testDeployment.getApplicationArchive(); } else { throw new IllegalArgumentException( "Invalid Archive type. Ensure that your @Deployment method returns type 'ForgeArchive'."); } } }
@Override public ForgeArchive addBeansXML(Asset resource) { addAsManifestResource(resource, ArchivePaths.create("beans.xml")); return this; } }
private Collection<DeploymentDescription> generateDependencyDeployments(Method deploymentMethod) { Dependencies dependency = deploymentMethod.getAnnotation(Dependencies.class); Collection<DeploymentDescription> deployments = new ArrayList<DeploymentDescription>(); if (dependency.value() != null) for (Addon addon : dependency.value()) { AddonId id = AddonId.from(addon.name(), addon.version()); DeploymentDescription deploymentDescription = new DeploymentDescription(id.toCoordinates(), ShrinkWrap.create(ForgeRemoteAddon.class).setAddonId(id)); deploymentDescription.shouldBeTestable(false); deployments.add(deploymentDescription); } return deployments; }
private MutableAddonRepository selectTargetRepository(RepositoryLocationAware<?> archive) { MutableAddonRepository target = repository; if (archive instanceof RepositoryLocationAware<?> && ((RepositoryLocationAware<?>) archive).getAddonRepository() != null) { final String repositoryName = ((RepositoryLocationAware<?>) archive).getAddonRepository(); if (deploymentRepositories.get(repositoryName) == null) { target = waitForConfigurationRescan(new Callable<MutableAddonRepository>() { @Override public MutableAddonRepository call() throws Exception { return (MutableAddonRepository) runnable.furnace.addRepository(AddonRepositoryMode.MUTABLE, new File(addonDir, OperatingSystemUtils.getSafeFilename(repositoryName))); } }); deploymentRepositories.put(repositoryName, target); } else target = deploymentRepositories.get(repositoryName); } return target; }
private void deployToRepository(Archive<?> archive, MutableAddonRepository repository, final AddonId addonToDeploy) { File destDir = repository.getAddonBaseDir(addonToDeploy); destDir.mkdirs(); ShrinkWrapUtil.toFile(new File(destDir.getAbsolutePath(), archive.getName()), archive); ShrinkWrapUtil.unzip(destDir, archive); System.out.println("Furnace test harness is deploying [" + addonToDeploy + "] to repository [" + repository + "] ..."); if (archive instanceof AddonDependencyAware) { repository.deploy(addonToDeploy, ((AddonDependencyAware<?>) archive).getAddonDependencies(), Collections.<File> emptyList()); } else { repository.deploy(addonToDeploy, Collections.<AddonDependencyEntry> emptyList(), Collections.<File> emptyList()); } repository.enable(addonToDeploy); }
for (DeploymentListener listener : ((AddonDeploymentArchive) archive).getDeploymentListeners()) for (DeploymentListener listener : ((AddonDeploymentArchive) archive).getDeploymentListeners())
@Override public ForgeArchive setAsForgeXML(final Asset resource) throws IllegalArgumentException { Validate.notNull(resource, "Resource should be specified"); return add(resource, getForgeXMLPath()); }
@Override public boolean handles(TestClass testClass, AddonArchive addonArchive) { for (AddonDependencyEntry entry : addonArchive.getAddonDependencies()) { if (entry.isFurnaceContainer()) { return entry.getName().endsWith(":guice"); } } return false; }
@Override public ForgeArchive addBeansXML() { addAsManifestResource(EmptyAsset.INSTANCE, ArchivePaths.create("beans.xml")); return this; }
@Override public void register(TestClass testClass, AddonArchive addonArchive) { addonArchive.addAsServiceProvider(Service.class.getName(), testClass.getJavaClass().getName()); } }
private Collection<DeploymentDescription> generateDependencyDeployments(Method deploymentMethod) { Dependencies dependency = deploymentMethod.getAnnotation(Dependencies.class); Collection<DeploymentDescription> deployments = new ArrayList<DeploymentDescription>(); if (dependency.value() != null) for (Addon addon : dependency.value()) { AddonId id = AddonId.from(addon.name(), addon.version()); DeploymentDescription deploymentDescription = new DeploymentDescription(id.toCoordinates(), ShrinkWrap.create(ForgeRemoteAddon.class).setAddonId(id)); deploymentDescription.shouldBeTestable(false); deployments.add(deploymentDescription); } return deployments; }
@Override public boolean handles(TestClass testClass, AddonArchive addonArchive) { for (AddonDependencyEntry entry : addonArchive.getAddonDependencies()) { if (entry.isFurnaceContainer()) { return entry.getName().endsWith(":cdi"); } } return false; }
@Override public ForgeArchive addBeansXML() { addAsManifestResource(EmptyAsset.INSTANCE, ArchivePaths.create("beans.xml")); return this; }
@Override public ForgeArchive addBeansXML(Asset resource) { addAsManifestResource(resource, ArchivePaths.create("beans.xml")); return this; } }