private String asExtension(BundleDescriptor descriptor) { return descriptor.getClassifier().orElse("") + "." + descriptor.getType(); }
boolean isRequestedArtifact(BundleDescriptor descriptor, String groupId, String artifactId, String version, Optional<String> classifier, String type, Supplier<Boolean> onVersionMismatch) { boolean versionResult = true; if (!descriptor.getVersion().equals(version) && !WILDCARD.equals(version)) { versionResult = onVersionMismatch.get(); } return descriptor.getGroupId().equals(groupId) && descriptor.getArtifactId().equals(artifactId) && versionResult && descriptor.getClassifier().equals(classifier) && descriptor.getType().equals(type); }
protected Optional<BundleDependency> findBundleDependency(String groupId, String artifactId, Optional<String> classifierOptional) { return dependencies.stream() .filter(bundleDependency -> bundleDependency.getDescriptor().getArtifactId().equals(artifactId) && bundleDependency.getDescriptor().getGroupId().equals(groupId) && classifierOptional .map(classifier -> classifier.equals(bundleDependency.getDescriptor().getClassifier().orElse(null))).orElse(true)) .findFirst(); }
private void addDependenciesToClasspathUrls(ClassLoaderModel.ClassLoaderModelBuilder classLoaderModelBuilder, Set<BundleDependency> dependencies) { dependencies.stream() .filter(dependency -> !MULE_PLUGIN_CLASSIFIER.equals(dependency.getDescriptor().getClassifier().orElse(null))) .filter(dependency -> dependency.getBundleUri() != null) .forEach(dependency -> { try { classLoaderModelBuilder.containing(dependency.getBundleUri().toURL()); } catch (MalformedURLException e) { throw new MuleRuntimeException(e); } }); }
/** * @return the optional descriptor of the domain on which the application is deployed into */ public Optional<BundleDescriptor> getDomainDescriptor() { if (domainDescriptor == null) { synchronized (this) { if (domainDescriptor == null) { Optional<BundleDependency> domain = getClassLoaderModel().getDependencies().stream().filter(d -> d.getDescriptor().getClassifier().isPresent() ? d.getDescriptor().getClassifier().get().equals(MULE_DOMAIN_CLASSIFIER) : false).findFirst(); if (domain.isPresent()) { domainDescriptor = ofNullable(domain.get().getDescriptor()); } else { domainDescriptor = Optional.empty(); } } } } return domainDescriptor; }
protected static String createResolutionErrorMessage(List<ArtifactPluginDescriptor> unresolvedPlugins, List<ArtifactPluginDescriptor> resolvedPlugins) { StringBuilder builder = new StringBuilder("Unable to resolve plugin dependencies:"); for (ArtifactPluginDescriptor unresolvedPlugin : unresolvedPlugins) { builder.append("\nPlugin: ").append(unresolvedPlugin.getName()).append(" missing dependencies:"); List<BundleDependency> missingDependencies = new ArrayList<>(); for (BundleDependency dependency : unresolvedPlugin.getClassLoaderModel().getDependencies()) { Optional<String> classifierOptional = dependency.getDescriptor().getClassifier(); if (classifierOptional.isPresent() && MULE_PLUGIN_CLASSIFIER.equals(classifierOptional.get())) { final ArtifactPluginDescriptor dependencyDescriptor = findArtifactPluginDescriptor(dependency, resolvedPlugins); if (dependencyDescriptor == null) { missingDependencies.add(dependency); } } } builder.append(missingDependencies); } return builder.toString(); }
private Set<String> findDependencyPackageClosure(Set<BundleDependency> pluginDependencies, List<ArtifactPluginDescriptor> resolvedPlugins) { Set<String> exportedPackages = new HashSet<>(); for (BundleDependency pluginDependency : pluginDependencies) { final Optional<String> classifier = pluginDependency.getDescriptor().getClassifier(); if (classifier.isPresent() && MULE_PLUGIN_CLASSIFIER.equals(classifier.get())) { ArtifactPluginDescriptor dependencyDescriptor = findArtifactPluginDescriptor(pluginDependency, resolvedPlugins); exportedPackages.addAll(dependencyDescriptor.getClassLoaderModel().getExportedPackages()); exportedPackages .addAll(findDependencyPackageClosure(dependencyDescriptor.getClassLoaderModel().getDependencies(), resolvedPlugins)); } } return exportedPackages; }
private boolean isDependencyPlugin(Set<BundleDependency> dependencies, ArtifactPluginDescriptor dependencyPluginDescriptor) { for (BundleDependency pluginDependency : dependencies) { if (pluginDependency.getDescriptor().getArtifactId() .equals(dependencyPluginDescriptor.getBundleDescriptor().getArtifactId()) && pluginDependency.getDescriptor().getGroupId() .equals(dependencyPluginDescriptor.getBundleDescriptor().getGroupId()) && MULE_PLUGIN_CLASSIFIER.equals(pluginDependency.getDescriptor().getClassifier().orElse(null))) { return true; } } return false; }
private List<org.mule.maven.client.api.model.BundleDependency> resolveDependencies(Set<BundleDependency> additionalDependencies) { List<org.mule.maven.client.api.model.BundleDependency> resolvedAdditionalDependencies = new ArrayList<>(); additionalDependencies.stream() .map(BundleDependency::getDescriptor) .map(descriptor -> new org.mule.maven.client.api.model.BundleDescriptor.Builder() .setGroupId(descriptor.getGroupId()) .setArtifactId(descriptor.getArtifactId()) .setVersion(descriptor.getVersion()) .setType(descriptor.getType()) .setClassifier(descriptor.getClassifier().orElse(null)).build()) .forEach(bundleDescriptor -> { resolveDependency(bundleDescriptor) .forEach(additionalDep -> updateAdditionalDependencyOrFail(resolvedAdditionalDependencies, additionalDep)); }); return resolvedAdditionalDependencies; }
boolean isRequestedArtifact(BundleDescriptor descriptor, BundleDescriptor artifact, Supplier<Boolean> onVersionMismatch) { return isRequestedArtifact(descriptor, artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion(), artifact.getClassifier(), artifact.getType(), onVersionMismatch); }
@Override public boolean matches(Object o) { if (!(o instanceof BundleDependency)) { return false; } BundleDependency bundleDependency = (BundleDependency) o; return bundleDependency.getDescriptor().getClassifier().isPresent() && bundleDependency.getDescriptor().getClassifier().get().equals(MULE_PLUGIN_CLASSIFIER) && bundleDependency.getDescriptor().getArtifactId().equals(artifactId) && bundleDependency.getDescriptor().getGroupId().equals("org.mule.tests") && bundleDependency.getDescriptor().getVersion().equals(MULE_PROJECT_VERSION); } };
@Override public boolean matches(Object o) { if (!(o instanceof BundleDependency)) { return false; } BundleDependency bundleDependency = (BundleDependency) o; return bundleDependency.getDescriptor().getClassifier().isPresent() && bundleDependency.getDescriptor().getClassifier().get().equals(MULE_PLUGIN_CLASSIFIER) && bundleDependency.getDescriptor().getArtifactId().equals("test-empty-plugin") && bundleDependency.getDescriptor().getGroupId().equals("org.mule.tests") && bundleDependency.getDescriptor().getVersion().equals(MULE_PROJECT_VERSION) && (hasUri ? bundleDependency.getBundleUri() != null : bundleDependency.getBundleUri() == null); } };
private DefaultArtifact toArtifact(BundleDependency bundleDependency) { return new DefaultArtifact(bundleDependency.getDescriptor().getGroupId(), bundleDependency.getDescriptor().getArtifactId(), bundleDependency.getDescriptor().getClassifier().orElse(null), bundleDependency.getDescriptor().getType(), bundleDependency.getDescriptor().getVersion()); } }
new HashMap<>(deployableArtifactAdditionalLibrariesMap); nonProvidedDependencies.stream() .filter(bundleDependency -> MULE_PLUGIN.equals(bundleDependency.getDescriptor().getClassifier().orElse(null))) .forEach(bundleDependency -> { Model effectiveModel;
@Override public boolean matches(Object o) { if (!(o instanceof BundleDependency)) { return false; } BundleDependency bundleDependency = (BundleDependency) o; return bundleDependency.getScope().equals(COMPILE) && !bundleDependency.getDescriptor().getClassifier().isPresent() && bundleDependency.getDescriptor().getArtifactId().equals("commons-collections") && bundleDependency.getDescriptor().getGroupId().equals("commons-collections") && bundleDependency.getDescriptor().getVersion().equals("3.2.2"); } };
@Test public void assignsBundleDescriptor() throws Exception { MulePolicyModelBuilder mulePolicyModelBuilder = new MulePolicyModelBuilder() .setName(POLICY_NAME) .setMinMuleVersion("4.0.0") .setRequiredProduct(MULE) .withBundleDescriptorLoader(createPolicyBundleDescriptorLoader(PROPERTIES_BUNDLE_DESCRIPTOR_LOADER_ID)) .withClassLoaderModelDescriptorLoader(new MuleArtifactLoaderDescriptor(MULE_LOADER_ID, emptyMap())); PolicyFileBuilder policyFileBuilder = new PolicyFileBuilder(POLICY_NAME).usingLibrary(echoTestJarFile.getAbsolutePath()) .describedBy(mulePolicyModelBuilder.build()); File tempFolder = createTempFolder(); unzip(policyFileBuilder.getArtifactFile(), tempFolder); PolicyTemplateDescriptorFactory descriptorFactory = new PolicyTemplateDescriptorFactory(artifactPluginDescriptorLoader, descriptorLoaderRepository, ArtifactDescriptorValidatorBuilder.builder()); PolicyTemplateDescriptor desc = descriptorFactory.create(tempFolder, empty()); assertThat(desc.getBundleDescriptor().getArtifactId(), equalTo(POLICY_NAME)); assertThat(desc.getBundleDescriptor().getGroupId(), equalTo(POLICY_GROUP_ID)); assertThat(desc.getBundleDescriptor().getClassifier().get(), equalTo(POLICY_CLASSIFIER)); assertThat(desc.getBundleDescriptor().getType(), equalTo(POLICY_ARTIFACT_TYPE)); assertThat(desc.getBundleDescriptor().getVersion(), equalTo(POLICY_VERSION)); }
private void addDependenciesToClasspathUrls(ClassLoaderModel.ClassLoaderModelBuilder classLoaderModelBuilder, Set<BundleDependency> dependencies) { dependencies.stream() .filter(dependency -> !MULE_PLUGIN_CLASSIFIER.equals(dependency.getDescriptor().getClassifier().orElse(null))) .filter(dependency -> dependency.getBundleUri() != null) .forEach(dependency -> { try { classLoaderModelBuilder.containing(dependency.getBundleUri().toURL()); } catch (MalformedURLException e) { throw new MuleRuntimeException(e); } }); }
@Override public boolean matches(Object o) { if (!(o instanceof BundleDependency)) { return false; } BundleDependency bundleDependency = (BundleDependency) o; return bundleDependency.getScope().equals(COMPILE) && bundleDependency.getDescriptor().getClassifier().isPresent() && bundleDependency.getDescriptor().getClassifier().get().equals(MULE_PLUGIN_CLASSIFIER) && bundleDependency.getDescriptor().getArtifactId().equals(artifactId) && bundleDependency.getDescriptor().getGroupId().equals("org.mule.tests") && bundleDependency.getDescriptor().getVersion().equals(MULE_PROJECT_VERSION); } };
private DefaultArtifact toArtifact(BundleDependency bundleDependency) { return new DefaultArtifact(bundleDependency.getDescriptor().getGroupId(), bundleDependency.getDescriptor().getArtifactId(), bundleDependency.getDescriptor().getClassifier().orElse(null), bundleDependency.getDescriptor().getType(), bundleDependency.getDescriptor().getVersion()); } }
@Override public boolean matches(Object o) { if (!(o instanceof BundleDependency)) { return false; } BundleDependency bundleDependency = (BundleDependency) o; return bundleDependency.getScope().equals(COMPILE) && !bundleDependency.getDescriptor().getClassifier().isPresent() && bundleDependency.getDescriptor().getArtifactId().equals("commons-collections") && bundleDependency.getDescriptor().getGroupId().equals("commons-collections") && bundleDependency.getDescriptor().getVersion().equals("3.2.2"); } };