/* * Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com * The software in this package is published under the terms of the CPAL v1.0 * license, a copy of which has been included with this distribution in the * LICENSE.txt file. */ package org.mule.test.runner.api; import java.net.URL; import java.util.List; import org.eclipse.aether.artifact.Artifact; /** * Defines the result of the classification process for an artifact. It contains a {@link List} of {@link URL}s that should have the * plugin {@link org.mule.runtime.module.artifact.classloader.ArtifactClassLoader} plus a {@link List} of {@link Class}es to be * exported in addition to the packages exported by the artifact, in order to run the test. * <p/> * It also has dependencies references and nested ones. It represents the graph of plugin dependencies also by the list of * children nodes. * * @since 4.0 */ public class ArtifactClassificationNode { private List<URL> urls; private final Artifact artifact; private final List<Class> exportClasses; private final List<ArtifactClassificationNode> artifactDependencies; /** * Creates an instance of the classification. * * @param artifact the classified {@link Artifact} * @param urls list of {@link URL}s that would be used to create the {@link java.net.URLClassLoader} * @param exportClasses list of {@link Class}es that would be used for exporting as extra classes to the plugin * @param artifactDependencies list of {@link ArtifactClassificationNode} plugin dependencies references for this artifact classified */ public ArtifactClassificationNode(Artifact artifact, List<URL> urls, List<Class> exportClasses, List<ArtifactClassificationNode> artifactDependencies) { this.artifact = artifact; this.urls = urls; this.exportClasses = exportClasses; this.artifactDependencies = artifactDependencies; } public List<URL> getUrls() { return urls; } public Artifact getArtifact() { return artifact; } public List<Class> getExportClasses() { return exportClasses; } public List<ArtifactClassificationNode> getArtifactDependencies() { return artifactDependencies; } public void setUrls(List<URL> urls) { this.urls = urls; } }