|
31 | 31 | import org.eclipse.buildship.core.internal.workspace.FetchStrategy;
|
32 | 32 | import org.eclipse.buildship.core.internal.workspace.InternalGradleBuild;
|
33 | 33 | import org.eclipse.buildship.core.internal.workspace.InternalGradleWorkspace;
|
| 34 | +import org.eclipse.buildship.core.internal.workspace.ModelProvider; |
34 | 35 | import org.eclipse.core.resources.IProject;
|
35 | 36 | import org.eclipse.core.runtime.CoreException;
|
36 | 37 | import org.eclipse.core.runtime.IProgressMonitor;
|
@@ -74,18 +75,33 @@ private void configureProject(IProject project, IProgressMonitor monitor) throws
|
74 | 75 | InternalGradleWorkspace workspace = CorePlugin.internalGradleWorkspace();
|
75 | 76 | Optional<GradleBuild> build = workspace.getBuild(project);
|
76 | 77 | if (build.isPresent()) {
|
77 |
| - Collection<EclipseProject> projects = ((InternalGradleBuild) build.get()).getModelProvider() |
78 |
| - .fetchModels(EclipseProject.class, FetchStrategy.FORCE_RELOAD, this.tokenSource, monitor); |
79 |
| - if (hasSpringFormatPlugin(projects)) { |
80 |
| - ProjectSettingsFilesLocator locator = new ProjectSettingsFilesLocator(getSearchFolders(projects)); |
| 78 | + ModelProvider modelProvider = ((InternalGradleBuild) build.get()).getModelProvider(); |
| 79 | + Collection<EclipseProject> rootProjects = modelProvider.fetchModels(EclipseProject.class, |
| 80 | + FetchStrategy.FORCE_RELOAD, this.tokenSource, monitor); |
| 81 | + EclipseProject eclipseProject = findProjectByName(rootProjects, project.getName()); |
| 82 | + if (hasSpringFormatPlugin(eclipseProject)) { |
| 83 | + ProjectSettingsFilesLocator locator = new ProjectSettingsFilesLocator(getSearchFolders(rootProjects)); |
81 | 84 | locator.locateSettingsFiles().applyToProject(project, monitor);
|
82 | 85 | }
|
83 | 86 | }
|
84 | 87 | }
|
85 | 88 |
|
86 |
| - private boolean hasSpringFormatPlugin(Collection<EclipseProject> projects) { |
87 |
| - for (EclipseProject project : projects) { |
88 |
| - for (GradleTask task : project.getGradleProject().getTasks()) { |
| 89 | + private EclipseProject findProjectByName(Iterable<? extends EclipseProject> candidates, String name) { |
| 90 | + for (EclipseProject candidate : candidates) { |
| 91 | + if (name.equals(candidate.getName())) { |
| 92 | + return candidate; |
| 93 | + } |
| 94 | + EclipseProject childResult = findProjectByName(candidate.getChildren(), name); |
| 95 | + if (childResult != null) { |
| 96 | + return childResult; |
| 97 | + } |
| 98 | + } |
| 99 | + return null; |
| 100 | + } |
| 101 | + |
| 102 | + private boolean hasSpringFormatPlugin(EclipseProject eclipseProject) { |
| 103 | + if (eclipseProject != null) { |
| 104 | + for (GradleTask task : eclipseProject.getGradleProject().getTasks()) { |
89 | 105 | if (isSpringFormatPlugin(task)) {
|
90 | 106 | return true;
|
91 | 107 | }
|
|
0 commit comments