|
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