@Override public String toString() { return format("%s[%s]", getClass().getSimpleName(), getName()); }
public MuleSharedDomainClassLoader(ArtifactDescriptor artifactDescriptor, ClassLoader parent, ClassLoaderLookupPolicy lookupPolicy, List<URL> urls, List<ArtifactClassLoader> artifactPluginClassLoaders) { super(getDomainId(artifactDescriptor.getName()), artifactDescriptor, urls.toArray(new URL[0]), parent, lookupPolicy, artifactPluginClassLoaders); }
@Override protected String getArtifactId(ArtifactDescriptor artifactDescriptor) { return TOOLING_EXTENSION_MODEL + getUUID() + "/" + artifactDescriptor.getName(); }
@Override protected String getArtifactId(ArtifactDescriptor artifactDescriptor) { return getDomainId(artifactDescriptor.getName()); }
@Override protected String getArtifactId(ArtifactDescriptor artifactDescriptor) { return getPolicyId(artifactDescriptor.getName()); }
@Override protected String getArtifactId(ArtifactDescriptor artifactDescriptor) { return getDomainId(artifactDescriptor.getName()); }
private String getArtifactName(ArtifactClassLoader ownerClassLoader) { return ownerClassLoader.getArtifactDescriptor().getName(); }
private Set<String> sanitizeExportedPackages(ClassLoaderLookupPolicy classLoaderLookupPolicy, Set<String> artifactExportedPackages) { Set<String> sanitizedArtifactExportedPackages = new HashSet<>(artifactExportedPackages); Set<String> containerProvidedPackages = sanitizedArtifactExportedPackages.stream().filter(p -> { LookupStrategy lookupStrategy = classLoaderLookupPolicy.getPackageLookupStrategy(p); return !(lookupStrategy instanceof ChildFirstLookupStrategy); }).collect(toSet()); if (!containerProvidedPackages.isEmpty()) { sanitizedArtifactExportedPackages.removeAll(containerProvidedPackages); logger.warn("Exported packages from artifact '" + artifactDescriptor.getName() + "' are provided by parent class loader: " + containerProvidedPackages); } return sanitizedArtifactExportedPackages; }
@Override public URL findResource(String name) { URL resource = super.findResource(name); if (resource == null) { File file = new File(getDomainFolder(getArtifactDescriptor().getName()) + File.separator + name); if (file.exists()) { try { resource = file.toURI().toURL(); } catch (MalformedURLException e) { LOGGER.debug("Failure looking for resource", e); } } } return resource; }
@Override protected String getArtifactId(ArtifactDescriptor artifactDescriptor) { return getApplicationId(domain.getArtifactId(), artifactDescriptor.getName()); }
@Override protected String[] getLocalResourceLocations() { return new String[] {getDomainFolder(getArtifactDescriptor().getName()).getAbsolutePath(), getMuleConfDir().getAbsolutePath()}; } }
private void doValidate(ArtifactDescriptor descriptor) { String bundleDescriptorVersion = descriptor.getBundleDescriptor().getVersion(); checkState(bundleDescriptorVersion != null, format("No version specified in the bundle descriptor of the artifact %s", descriptor.getName())); MuleVersion artifactVersion = new MuleVersion(bundleDescriptorVersion); checkState(artifactVersion.getRevision() != NO_REVISION, format("Artifact %s version %s must contain a revision number. The version format must be x.y.z and the z part is missing", descriptor.getName(), artifactVersion)); }
private Function<ArtifactClassLoader, ClassLoaderNode> toPluginClassLoaderNode() { return pluginClassLoader -> DefaultClassLoaderNode.builder() .withArtifactClassLoader(pluginClassLoader) .withIsMulePlugin(true) .withId(format(PLUGIN_CL_ID_TEMPLATE, pluginClassLoader.getArtifactDescriptor().getName())) .build(); }
private void doValidation(ArtifactDescriptor descriptor, MuleVersion minMuleVersion, MuleVersion runtimeVersion) { if (runtimeVersion.priorTo(minMuleVersion)) { throw new MuleRuntimeException( createStaticMessage("Artifact %s requires a newest runtime version. Artifact required version is %s and Mule Runtime version is %s", descriptor.getName(), descriptor.getMinMuleVersion().toCompleteNumericVersion(), runtimeVersion.toCompleteNumericVersion())); } }
new MuleArtifactClassLoader(containerDescriptor.getName(), containerDescriptor, urls, parentClassLoader, containerLookupPolicy);
@Override public void validate(ArtifactDescriptor descriptor) { Product requiredProduct = descriptor.getRequiredProduct(); Product runtimeProduct = getProductByName(getProductName()); if (!runtimeProduct.supports(requiredProduct)) { throw new MuleRuntimeException(createStaticMessage("The artifact %s requires a different runtime. The artifact required runtime is %s and the runtime is %s", descriptor.getName(), descriptor.getRequiredProduct().name(), runtimeProduct.name())); } }
private void doValidate(ArtifactDescriptor descriptor) { String bundleDescriptorVersion = descriptor.getBundleDescriptor().getVersion(); checkState(bundleDescriptorVersion != null, format("No version specified in the bundle descriptor of the artifact %s", descriptor.getName())); MuleVersion artifactVersion = new MuleVersion(bundleDescriptorVersion); checkState(artifactVersion.getRevision() != NO_REVISION, format("Artifact %s version %s must contain a revision number. The version format must be x.y.z and the z part is missing", descriptor.getName(), artifactVersion)); }
private void doValidation(ArtifactDescriptor descriptor, MuleVersion minMuleVersion, MuleVersion runtimeVersion) { if (runtimeVersion.priorTo(minMuleVersion)) { throw new MuleRuntimeException( createStaticMessage("Artifact %s requires a newest runtime version. Artifact required version is %s and Mule Runtime version is %s", descriptor.getName(), descriptor.getMinMuleVersion().toCompleteNumericVersion(), runtimeVersion.toCompleteNumericVersion())); } }
@Override public void validate(ArtifactDescriptor descriptor) { Product requiredProduct = descriptor.getRequiredProduct(); Product runtimeProduct = getProductByName(getProductName()); if (!runtimeProduct.supports(requiredProduct)) { throw new MuleRuntimeException(createStaticMessage("The artifact %s requires a different runtime. The artifact required runtime is %s and the runtime is %s", descriptor.getName(), descriptor.getRequiredProduct().name(), runtimeProduct.name())); } }