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); }
/** * Obtains the file corresponding to a given Maven artifact on the local repo * * @param descriptor describes which artifact must be returned. * @return the file corresponding to the given artifact * @throws IllegalArgumentException if the file does not exists in the local Maven repository */ public static File findMavenArtifact(BundleDescriptor descriptor) { File artifact = new File(getMavenLocalRepository(), Paths .get(descriptor.getGroupId().replaceAll("\\.", quoteReplacement(separator)), descriptor.getArtifactId(), descriptor.getVersion(), descriptor.getArtifactFileName() + "." + descriptor.getType()) .toString()); if (!artifact.exists()) { LOGGER.error(format("Artifact file: %s", artifact.getAbsolutePath())); throw new IllegalArgumentException(format("Maven artifact '%s' does not exists in the local Maven repository @ '%s'", descriptor, getMavenLocalRepository())); } return artifact; }
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); }
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()); } }
@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 DefaultArtifact toArtifact(BundleDependency bundleDependency) { return new DefaultArtifact(bundleDependency.getDescriptor().getGroupId(), bundleDependency.getDescriptor().getArtifactId(), bundleDependency.getDescriptor().getClassifier().orElse(null), bundleDependency.getDescriptor().getType(), bundleDependency.getDescriptor().getVersion()); } }
@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)); }