use of org.apache.maven.model.Dependency in project drools by kiegroup.
the class KieRepositoryScannerTest method testKieScannerScopesNotRequired.
@Test
public void testKieScannerScopesNotRequired() throws Exception {
MavenRepository repository = getMavenRepository();
KieServices ks = KieServices.Factory.get();
ReleaseId releaseIdWithDep = ks.newReleaseId("org.kie", "test-with-dep", "1.0-SNAPSHOT");
Dependency dep1 = dependencyWithScope("org.kie", "test-dep1-in-test-scope", "1.0-SNAPSHOT", "test");
Dependency dep2 = dependencyWithScope("org.kie", "test-dep2-in-provided-scope", "1.0-SNAPSHOT", "provided");
Dependency dep3 = dependencyWithScope("org.kie", "test-dep3-in-system-scope", "1.0-SNAPSHOT", "system");
dep3.setSystemPath(fileManager.getRootDirectory().getAbsolutePath());
// to ensure KieBuilder is able to build correctly:
repository.installArtifact(ks.newReleaseId("org.kie", "test-dep3-in-system-scope", "1.0-SNAPSHOT"), new byte[] {}, new byte[] {});
InternalKieModule kJar2 = createKieJarWithDependencies(ks, releaseIdWithDep, false, "rule1", dep1, dep2, dep3);
KieContainer kieContainer = ks.newKieContainer(releaseIdWithDep);
// DROOLS-1051 following should not throw NPE because dependencies are not in scope of scanner
KieScanner scanner = ks.newKieScanner(kieContainer);
assertNotNull(scanner);
}
use of org.apache.maven.model.Dependency in project buck by facebook.
the class PomIntegrationTest method testMultipleInvocation.
@Test
public void testMultipleInvocation() throws Exception {
// Setup: deps: com.example:with-deps:jar:1.0 -> com.othercorp:no-deps:jar:1.0
BuildRule dep = createMavenPublishable("//example:dep", "com.othercorp:no-deps:1.0", null);
MavenPublishable item = createMavenPublishable("//example:has-deps", "com.example:with-deps:1.0", null, dep);
Path pomPath = tmp.getRoot().resolve("pom.xml");
assertFalse(Files.exists(pomPath));
// Basic case
Pom.generatePomFile(pathResolver, item, pomPath);
Model pomModel = parse(pomPath);
assertEquals("com.example", pomModel.getGroupId());
assertEquals("with-deps", pomModel.getArtifactId());
assertEquals("1.0", pomModel.getVersion());
List<Dependency> dependencies = pomModel.getDependencies();
assertEquals(1, dependencies.size());
Dependency dependency = dependencies.get(0);
assertEquals("com.othercorp", dependency.getGroupId());
assertEquals("no-deps", dependency.getArtifactId());
assertEquals("1.0", dependency.getVersion());
// Corrupt dependency data and ensure buck restores that
removeDependencies(pomModel, pomPath);
Pom.generatePomFile(pathResolver, item, pomPath);
pomModel = parse(pomPath);
// Add extra pom data and ensure buck preserves that
pomModel.setUrl(URL);
serializePom(pomModel, pomPath);
Pom.generatePomFile(pathResolver, item, pomPath);
pomModel = parse(pomPath);
assertEquals(URL, pomModel.getUrl());
}
use of org.apache.maven.model.Dependency in project buck by facebook.
the class PomIntegrationTest method shouldUseTemplateIfProvided.
@Test
public void shouldUseTemplateIfProvided() throws Exception {
MavenPublishable withoutTemplate = createMavenPublishable("//example:no-template", "example.com:project:1.0.0", null);
Model noTemplate = parse(Pom.generatePomFile(pathResolver, withoutTemplate));
MavenPublishable withTemplate = createMavenPublishable("//example:template", "example.com:project:1.0.0", new FakeSourcePath(TestDataHelper.getTestDataDirectory(getClass()).resolve("poms/template-pom.xml").toString()));
Model templated = parse(Pom.generatePomFile(pathResolver, withTemplate));
// Template sets developers and an example dep. Check that these aren't in the non-templated
// version
assertTrue(noTemplate.getDevelopers().isEmpty());
assertTrue(noTemplate.getDependencies().isEmpty());
// Now check the same fields in the templated version.
Developer seenDev = Iterables.getOnlyElement(templated.getDevelopers());
assertEquals("susan", seenDev.getId());
assertEquals("Susan The Developer", seenDev.getName());
assertEquals(ImmutableList.of("Owner"), seenDev.getRoles());
Dependency seenDep = Iterables.getOnlyElement(templated.getDependencies());
assertEquals("com.google.guava", seenDep.getGroupId());
assertEquals("guava", seenDep.getArtifactId());
assertEquals("19.0", seenDep.getVersion());
}
use of org.apache.maven.model.Dependency in project buck by facebook.
the class Pom method merge.
private Model merge(Model first, @Nullable Model second) {
if (second == null) {
return first;
}
Model model = first.clone();
//---- Values from ModelBase
List<String> modules = second.getModules();
if (modules != null) {
for (String module : modules) {
model.addModule(module);
}
}
DistributionManagement distributionManagement = second.getDistributionManagement();
if (distributionManagement != null) {
model.setDistributionManagement(distributionManagement);
}
Properties properties = second.getProperties();
if (properties != null) {
for (Map.Entry<Object, Object> entry : properties.entrySet()) {
model.addProperty((String) entry.getKey(), (String) entry.getValue());
}
}
DependencyManagement dependencyManagement = second.getDependencyManagement();
if (dependencyManagement != null) {
model.setDependencyManagement(dependencyManagement);
}
List<Dependency> dependencies = second.getDependencies();
if (dependencies != null) {
for (Dependency dependency : dependencies) {
model.addDependency(dependency);
}
}
List<Repository> repositories = second.getRepositories();
if (repositories != null) {
for (Repository repository : repositories) {
model.addRepository(repository);
}
}
List<Repository> pluginRepositories = second.getPluginRepositories();
if (pluginRepositories != null) {
for (Repository pluginRepository : pluginRepositories) {
model.addPluginRepository(pluginRepository);
}
}
// Ignore reports, reporting, and locations
//----- From Model
Parent parent = second.getParent();
if (parent != null) {
model.setParent(parent);
}
Organization organization = second.getOrganization();
if (organization != null) {
model.setOrganization(organization);
}
List<License> licenses = second.getLicenses();
Set<String> currentLicenseUrls = new HashSet<>();
if (model.getLicenses() != null) {
for (License license : model.getLicenses()) {
currentLicenseUrls.add(license.getUrl());
}
}
if (licenses != null) {
for (License license : licenses) {
if (!currentLicenseUrls.contains(license.getUrl())) {
model.addLicense(license);
currentLicenseUrls.add(license.getUrl());
}
}
}
List<Developer> developers = second.getDevelopers();
Set<String> currentDevelopers = new HashSet<>();
if (model.getDevelopers() != null) {
for (Developer developer : model.getDevelopers()) {
currentDevelopers.add(developer.getName());
}
}
if (developers != null) {
for (Developer developer : developers) {
if (!currentDevelopers.contains(developer.getName())) {
model.addDeveloper(developer);
currentDevelopers.add(developer.getName());
}
}
}
List<Contributor> contributors = second.getContributors();
Set<String> currentContributors = new HashSet<>();
if (model.getContributors() != null) {
for (Contributor contributor : model.getContributors()) {
currentDevelopers.add(contributor.getName());
}
}
if (contributors != null) {
for (Contributor contributor : contributors) {
if (!currentContributors.contains(contributor.getName())) {
model.addContributor(contributor);
currentContributors.add(contributor.getName());
}
}
}
List<MailingList> mailingLists = second.getMailingLists();
if (mailingLists != null) {
for (MailingList mailingList : mailingLists) {
model.addMailingList(mailingList);
}
}
Prerequisites prerequisites = second.getPrerequisites();
if (prerequisites != null) {
model.setPrerequisites(prerequisites);
}
Scm scm = second.getScm();
if (scm != null) {
model.setScm(scm);
}
String url = second.getUrl();
if (url != null) {
model.setUrl(url);
}
String description = second.getDescription();
if (description != null) {
model.setDescription(description);
}
IssueManagement issueManagement = second.getIssueManagement();
if (issueManagement != null) {
model.setIssueManagement(issueManagement);
}
CiManagement ciManagement = second.getCiManagement();
if (ciManagement != null) {
model.setCiManagement(ciManagement);
}
Build build = second.getBuild();
if (build != null) {
model.setBuild(build);
}
List<Profile> profiles = second.getProfiles();
Set<String> currentProfileIds = new HashSet<>();
if (model.getProfiles() != null) {
for (Profile profile : model.getProfiles()) {
currentProfileIds.add(profile.getId());
}
}
if (profiles != null) {
for (Profile profile : profiles) {
if (!currentProfileIds.contains(profile.getId())) {
model.addProfile(profile);
currentProfileIds.add(profile.getId());
}
}
}
return model;
}
use of org.apache.maven.model.Dependency in project buck by facebook.
the class Pom method updateModel.
private void updateModel(Artifact mavenCoordinates, Iterable<Artifact> deps) {
model.setGroupId(mavenCoordinates.getGroupId());
model.setArtifactId(mavenCoordinates.getArtifactId());
model.setVersion(mavenCoordinates.getVersion());
if (Strings.isNullOrEmpty(model.getName())) {
// better than nothing
model.setName(mavenCoordinates.getArtifactId());
}
// Dependencies
ImmutableMap<DepKey, Dependency> depIndex = Maps.uniqueIndex(getModel().getDependencies(), DepKey::new);
for (Artifact artifactDep : deps) {
DepKey key = new DepKey(artifactDep);
Dependency dependency = depIndex.get(key);
if (dependency == null) {
dependency = key.createDependency();
getModel().addDependency(dependency);
}
updateDependency(dependency, artifactDep);
}
}
Aggregations