Skip to content

Commit ebc19e8

Browse files
committed
fix after deployment tests for illegal name
1 parent 3b21abf commit ebc19e8

File tree

3 files changed

+13
-8
lines changed

3 files changed

+13
-8
lines changed

dev/io.openliberty.mcp.internal/src/io/openliberty/mcp/internal/McpCdiExtension.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ void registerTools(@Observes ProcessManagedBean<?> pmb) {
5353
void afterDeploymentValidation(@Observes AfterDeploymentValidation afterDeploymentValidation, BeanManager manager) {
5454
reportOnDuplicateTools(afterDeploymentValidation);
5555
reportOnToolArgEdgeCases(afterDeploymentValidation);
56-
reportOnToolArgNameNoParams(afterDeploymentValidation);
5756
reportOnDuplicateSpecialArguments(afterDeploymentValidation);
5857
reportOnInvalidSpecialArguments(afterDeploymentValidation);
5958
}
@@ -64,8 +63,10 @@ void afterDeploymentValidation(@Observes AfterDeploymentValidation afterDeployme
6463
private void reportOnToolArgEdgeCases(AfterDeploymentValidation afterDeploymentValidation) {
6564
StringBuilder sbBlankArgs = new StringBuilder("Blank arguments found in MCP Tool:");
6665
StringBuilder sbDuplicateArgs = new StringBuilder("Duplicate arguments found in MCP Tool:");
66+
StringBuilder sbIllegalArgs = new StringBuilder("Illegal arguments found in MCP Tool:");
6767
boolean blankArgumentsFound = false;
6868
boolean duplicateArgumentsFound = false;
69+
boolean illegalArgumentsFound = false;
6970

7071
for (ToolMetadata tool : tools.getAllTools()) {
7172
Map<String, ArgumentMetadata> arguments = tool.arguments();
@@ -77,6 +78,9 @@ private void reportOnToolArgEdgeCases(AfterDeploymentValidation afterDeploymentV
7778
} else if (arguments.get(argName).isDuplicate()) {
7879
sbDuplicateArgs.append("\n").append("Tool: " + tool.getToolQualifiedName() + " - Argument: " + argName);
7980
duplicateArgumentsFound = true;
81+
} else if (argName.equals(ToolMetadata.ILLEGAL_TOOL_ARG_NAME)) {
82+
sbIllegalArgs.append("\n").append("Tool: " + tool.getToolQualifiedName());
83+
illegalArgumentsFound = true;
8084
}
8185
}
8286
}
@@ -86,10 +90,9 @@ private void reportOnToolArgEdgeCases(AfterDeploymentValidation afterDeploymentV
8690
if (duplicateArgumentsFound) {
8791
afterDeploymentValidation.addDeploymentProblem(new Exception(sbDuplicateArgs.toString()));
8892
}
89-
}
90-
91-
private void reportOnToolArgNameNoParams(AfterDeploymentValidation afterDeploymentValidation) {
92-
93+
if (illegalArgumentsFound) {
94+
afterDeploymentValidation.addDeploymentProblem(new Exception(sbIllegalArgs.toString()));
95+
}
9396
}
9497

9598
private void reportOnDuplicateTools(AfterDeploymentValidation afterDeploymentValidation) {

dev/io.openliberty.mcp.internal/src/io/openliberty/mcp/internal/ToolMetadata.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ public record ToolMetadata(Tool annotation, Bean<?> bean, AnnotatedMethod<?> met
2929
String name, String title, String description,
3030
List<Class<? extends Throwable>> businessExceptions) {
3131

32+
public static final String ILLEGAL_TOOL_ARG_NAME = "<<<ILLEGAL NAME>>>";
33+
3234
public record ArgumentMetadata(Type type, int index, String description, boolean required, boolean isDuplicate) {}
3335

3436
public record SpecialArgumentMetadata(SpecialArgumentType.Resolution typeResolution, int index) {}
@@ -84,7 +86,7 @@ private static String resolveArgumentName(AnnotatedParameter<?> param, ToolArg a
8486
return param.getJavaParameter().getName();
8587
}
8688

87-
throw new IllegalStateException("Parameter name not set. Ensure that javac -parameter flag is enabled");
89+
return ILLEGAL_TOOL_ARG_NAME;
8890
}
8991

9092
private static List<SpecialArgumentMetadata> getSpecialArgumentList(AnnotatedMethod<?> method) {

dev/io.openliberty.mcp.internal_fat/fat/src/io/openliberty/mcp/internal/fat/tool/NoParamNameTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ public static void teardown() throws Exception {
3939

4040
@Test
4141
public void testNoParamNameToolArg() throws Exception {
42-
String expectedErrorHeader = "Blank arguments found in MCP Tool:";
42+
String expectedErrorHeader = "Illegal arguments found in MCP Tool:";
4343
List<String> expectedErrorList = List.of("io.openliberty.mcp.internal.fat.noparamtool.NoParamTools.illegalToolArgNameTool");
44-
ExpectedAppFailureValidator.findAndAssertExpectedErrorsInLogs("Blank Tool Arg: ", expectedErrorHeader, expectedErrorList, server);
44+
ExpectedAppFailureValidator.findAndAssertExpectedErrorsInLogs("Illegal Tool Arg: ", expectedErrorHeader, expectedErrorList, server);
4545
}
4646
}

0 commit comments

Comments
 (0)