Skip to content

Commit 0ed7137

Browse files
committed
GH-1621: added preference to enable/disable embedded MCP server - eclipse part
1 parent 881575b commit 0ed7137

File tree

6 files changed

+64
-0
lines changed

6 files changed

+64
-0
lines changed

eclipse-language-servers/org.springframework.tooling.boot.ls/plugin.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,12 @@
221221
id="org.springframework.tooling.boot.xml.ls.preferences"
222222
name="XML Config Files">
223223
</page>
224+
<page
225+
category="org.springsource.ide.eclipse.commons.preferencePage"
226+
class="org.springframework.tooling.boot.ls.prefs.AiConfigPreferencePage"
227+
id="org.springframework.tooling.boot.ls.ai.preferences"
228+
name="AI">
229+
</page>
224230
<page
225231
class="org.springframework.tooling.boot.ls.prefs.BootJavaPreferencesPage"
226232
id="org.springsource.ide.eclipse.commons.preferencePage"

eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/Constants.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,4 +58,6 @@ public class Constants {
5858

5959
public static final String PREF_CODELENS_QUERY_METHODS = "boot-java.java.codelens-over-query-methods";
6060

61+
public static final String PREF_AI_ENABLE_MCP = "boot-java.ai.mcp-server-enabled";
62+
6163
}

eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/DelegatingStreamConnectionProvider.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,12 @@ private void sendConfiguration() {
256256
)
257257
);
258258

259+
bootJavaObj.put("ai", Map.of(
260+
"mcp-server-enabled", preferenceStore.getBoolean(Constants.PREF_AI_ENABLE_MCP)
261+
)
262+
);
263+
264+
259265
settings.put("boot-java", bootJavaObj);
260266

261267
settings.put("http", createHttpProxySettings());

eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/SpringBootLanguageServer.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,11 @@ private List<String> getJVMArgs() {
4646
args.add("-XX:TieredStopAtLevel=1");
4747
args.add("-Dspring.config.location=classpath:/application.properties");
4848

49+
// disable embedded MCP server, depending on preference
50+
if (BootLanguageServerPlugin.getDefault().getPreferenceStore().getBoolean(Constants.PREF_START_LS_EARLY) == false) {
51+
args.add("-Dspring.main.web-application-type=NONE");
52+
}
53+
4954
addCustomJVMArgs(args);
5055

5156
return args;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/*******************************************************************************
2+
* Copyright (c) 2025 Broadcom
3+
* All rights reserved. This program and the accompanying materials
4+
* are made available under the terms of the Eclipse Public License v1.0
5+
* which accompanies this distribution, and is available at
6+
* https://www.eclipse.org/legal/epl-v10.html
7+
*
8+
* Contributors:
9+
* Broadcom - initial API and implementation
10+
*******************************************************************************/
11+
package org.springframework.tooling.boot.ls.prefs;
12+
13+
import org.eclipse.jface.preference.BooleanFieldEditor;
14+
import org.eclipse.jface.preference.FieldEditorPreferencePage;
15+
import org.eclipse.swt.widgets.Composite;
16+
import org.eclipse.ui.IWorkbench;
17+
import org.eclipse.ui.IWorkbenchPreferencePage;
18+
import org.springframework.tooling.boot.ls.BootLanguageServerPlugin;
19+
import org.springframework.tooling.boot.ls.Constants;
20+
21+
public class AiConfigPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
22+
23+
public AiConfigPreferencePage() {
24+
super(GRID);
25+
}
26+
27+
@Override
28+
protected void adjustGridLayout() {
29+
}
30+
31+
@Override
32+
public void init(IWorkbench workbench) {
33+
setPreferenceStore(BootLanguageServerPlugin.getDefault().getPreferenceStore());
34+
}
35+
36+
@Override
37+
protected void createFieldEditors() {
38+
Composite fieldEditorParent = getFieldEditorParent();
39+
addField(new BooleanFieldEditor(Constants.PREF_AI_ENABLE_MCP, "Enable embedded MCP server", fieldEditorParent));
40+
}
41+
42+
43+
}

eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/prefs/PrefsInitializer.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ public void initializeDefaultPreferences() {
6767
preferenceStore.setDefault(Constants.PREF_BEANS_STRUCTURE_TREE, true);
6868
preferenceStore.setDefault(Constants.PREF_SYMBOLS_FROM_NEW_INDEX, true);
6969
preferenceStore.setDefault(Constants.PREF_CODELENS_QUERY_METHODS, true);
70+
71+
preferenceStore.setDefault(Constants.PREF_AI_ENABLE_MCP, true);
7072
}
7173

7274
}

0 commit comments

Comments
 (0)