private void applyRecommendationToDependency(final RecommendationStrategyFactory factory, Dependency dependency, List<ProjectDependency> visited) { if (dependency instanceof ExternalModuleDependency) { factory.getRecommendationStrategy().inspectDependency(dependency); } else if (dependency instanceof ProjectDependency) { ProjectDependency projectDependency = (ProjectDependency) dependency; if (!visited.contains(projectDependency)) { visited.add(projectDependency); Configuration configuration; try { ProjectDependency.class.getMethod("getTargetConfiguration"); String targetConfiguration = projectDependency.getTargetConfiguration() == null ? Dependency.DEFAULT_CONFIGURATION : projectDependency.getTargetConfiguration(); configuration = projectDependency.getDependencyProject().getConfigurations().getByName(targetConfiguration); } catch (NoSuchMethodException ignore) { try { Method method = ProjectDependency.class.getMethod("getProjectConfiguration"); configuration = (Configuration) method.invoke(dependency); } catch (Exception e) { throw new RuntimeException("Unable to retrieve configuration for project dependency", e); } } DependencySet dependencies = configuration.getAllDependencies(); for (Dependency dep : dependencies) { applyRecommendationToDependency(factory, dep, visited); } } } }
private void populateEtaConfiguration(final Configuration configuration) { final DefaultEtaConfiguration etaConfiguration = ExtensionHelper.createExtension (configuration, ETA_CONFIGURATION_EXTENSION_NAME, DefaultEtaConfiguration.class, configuration, mavenRepository); Set<EtaDependency> dependencies = etaConfiguration.getDependencies(); configuration.getDependencies().all (dependency -> { if (dependency instanceof ProjectDependency) { final ProjectDependency projectDependency = (ProjectDependency) dependency; dependencies.add(new DefaultEtaProjectDependency (projectDependency.getDependencyProject(), projectDependency.getTargetConfiguration())); } else if (dependency instanceof EtaDependency) { dependencies.add((EtaDependency) dependency); } }); }
@Override public List<Buildable> call() { return getProject().getConfigurations() .getByName(getTargetConfiguration()) .getAllDependencies().stream() .filter(dependency -> dependency instanceof ProjectDependency) .flatMap(dependency -> { final ProjectDependency projectDependency = (ProjectDependency) dependency; final Project project = projectDependency.getDependencyProject(); final String configurationName = projectDependency.getTargetConfiguration(); return ConfigurationUtils.getConfiguration (project, configurationName) .getAllArtifacts().stream(); }) .collect(Collectors.toList()); } });
String configurationName = projectDependency.getTargetConfiguration(); if (configurationName == null) { configurationName = "default";
public static List<String> searchForEtaProjectDependencies (final Project project, final Configuration configuration) { List<String> allMavenDependencies = new ArrayList<String>(); for (Dependency dependency : configuration.getAllDependencies()) { if (dependency instanceof ProjectDependency) { final ProjectDependency projectDependency = (ProjectDependency) dependency; final Project targetProject = projectDependency.getDependencyProject(); final String targetConfiguration = projectDependency.getTargetConfiguration(); List<String> mavenDependencies; if (targetProject.getPlugins().hasPlugin(EtaBasePlugin.class)) { mavenDependencies = ConfigurationUtils.getEtaConfiguration (targetProject, targetConfiguration) .getAllResolvedDependencies(project); } else { mavenDependencies = searchForEtaProjectDependencies (project, ConfigurationUtils.getConfiguration (targetProject, targetConfiguration)); } allMavenDependencies.addAll(mavenDependencies); } } return allMavenDependencies; } }
final Project targetProject = projectDependency.getDependencyProject(); final String targetConfiguration = projectDependency.getTargetConfiguration(); List<String> mavenDependencies; if (targetProject.getPlugins().hasPlugin(EtaBasePlugin.class)) {