/* * 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.runtime.module.deployment.impl.internal.plugin; import static java.lang.Integer.toHexString; import static java.lang.String.format; import static java.lang.System.identityHashCode; import org.mule.runtime.deployment.model.api.plugin.ArtifactPlugin; import org.mule.runtime.deployment.model.api.plugin.ArtifactPluginDescriptor; import org.mule.runtime.module.artifact.classloader.ArtifactClassLoader; import java.io.File; /** * Defines an application plugin artifact */ public class DefaultArtifactPlugin implements ArtifactPlugin { private final String artifactId; private final ArtifactPluginDescriptor descriptor; private final ArtifactClassLoader classLoader; /** * Creates a new plugin * @param artifactId * @param descriptor describes the plugin to create. Non null. * @param classLoader classloader to use on this plugin. Non null. */ public DefaultArtifactPlugin(String artifactId, ArtifactPluginDescriptor descriptor, ArtifactClassLoader classLoader) { this.artifactId = artifactId; this.descriptor = descriptor; this.classLoader = classLoader; } @Override public ArtifactPluginDescriptor getDescriptor() { return descriptor; } @Override public String getArtifactName() { return descriptor.getName(); } @Override public String getArtifactId() { return artifactId; } @Override public File[] getResourceFiles() { return new File[0]; } @Override public ArtifactClassLoader getArtifactClassLoader() { return classLoader; } @Override public String toString() { return format("%s[%s]@%s", getClass().getName(), getArtifactName(), toHexString(identityHashCode(this))); } }