Skip to content

Commit 8a3b615

Browse files
Refactored ExtensionsExtractor
Signed-off-by: Siarhei Leanavets <siarhei_leanavets1@epam.com>
1 parent af6f884 commit 8a3b615

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/ExtensionsExtractor.java

+10-3
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,9 @@
1212
*******************************************************************************/
1313
package org.eclipse.jdt.ls.core.internal;
1414

15-
import java.util.Arrays;
1615
import java.util.List;
16+
import java.util.Map;
17+
import java.util.TreeMap;
1718
import java.util.stream.Collectors;
1819

1920
import org.eclipse.core.runtime.IConfigurationElement;
@@ -26,12 +27,18 @@
2627
*
2728
*/
2829
public class ExtensionsExtractor {
29-
public static <T> List<T> extractExtensions(final String namespace, final String extensionPointName) {
30+
public static <T> List<T> extractOrderedExtensions(final String namespace, final String extensionPointName) {
3031

3132
final var extensionPoint = Platform.getExtensionRegistry().getExtensionPoint(namespace, extensionPointName);
3233
final var configs = extensionPoint.getConfigurationElements();
3334

34-
return Arrays.stream(configs).map(ExtensionsExtractor::<T>makeExtension).collect(Collectors.toUnmodifiableList());
35+
Map<Integer, T> extensionMap = new TreeMap<>();
36+
37+
for (int i = 0; i < configs.length; i++) {
38+
Integer order = Integer.valueOf(configs[i].getAttribute("order"));
39+
extensionMap.put(order, makeExtension(configs[i]));
40+
}
41+
return extensionMap.values().stream().collect(Collectors.toUnmodifiableList());
3542
}
3643

3744
@SuppressWarnings("unchecked")

org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/managers/BuildSupportManager.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ private BuildSupportManager() {}
3737

3838
public static List<IBuildSupport> obtainBuildSupports() {
3939
if (instance.lazyLoadedBuildSupportList == null) {
40-
instance.lazyLoadedBuildSupportList = ExtensionsExtractor.extractExtensions(IConstants.PLUGIN_ID, "buildSupport");
40+
instance.lazyLoadedBuildSupportList = ExtensionsExtractor.extractOrderedExtensions(IConstants.PLUGIN_ID, "buildSupport");
4141
}
4242

4343
return instance.lazyLoadedBuildSupportList;

0 commit comments

Comments
 (0)