Skip to content

Commit

Permalink
Merge pull request #104 from mkouba/minor-refactoring
Browse files Browse the repository at this point in the history
Minor refactoring
  • Loading branch information
mkouba authored Feb 11, 2025
2 parents f24273a + 522181f commit 3b878dc
Show file tree
Hide file tree
Showing 12 changed files with 38 additions and 42 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@

import org.jboss.jandex.MethodInfo;

import io.quarkiverse.mcp.server.runtime.FeatureMetadata;
import io.quarkiverse.mcp.server.runtime.FeatureMetadata.Feature;
import io.quarkiverse.mcp.server.runtime.Feature;
import io.quarkus.arc.processor.BeanInfo;
import io.quarkus.arc.processor.InvokerInfo;
import io.quarkus.builder.item.MultiBuildItem;
Expand All @@ -30,7 +29,7 @@ final class FeatureMethodBuildItem extends MultiBuildItem {
private final String mimeType;

FeatureMethodBuildItem(BeanInfo bean, MethodInfo method, InvokerInfo invoker, String name, String description, String uri,
String mimeType, FeatureMetadata.Feature feature) {
String mimeType, Feature feature) {
this.bean = Objects.requireNonNull(bean);
this.method = Objects.requireNonNull(method);
this.invoker = Objects.requireNonNull(invoker);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package io.quarkiverse.mcp.server.deployment;

import static io.quarkiverse.mcp.server.runtime.FeatureMetadata.Feature.PROMPT;
import static io.quarkiverse.mcp.server.runtime.FeatureMetadata.Feature.PROMPT_COMPLETE;
import static io.quarkiverse.mcp.server.runtime.FeatureMetadata.Feature.RESOURCE;
import static io.quarkiverse.mcp.server.runtime.FeatureMetadata.Feature.RESOURCE_TEMPLATE;
import static io.quarkiverse.mcp.server.runtime.FeatureMetadata.Feature.RESOURCE_TEMPLATE_COMPLETE;
import static io.quarkiverse.mcp.server.runtime.FeatureMetadata.Feature.TOOL;
import static io.quarkiverse.mcp.server.runtime.Feature.PROMPT;
import static io.quarkiverse.mcp.server.runtime.Feature.PROMPT_COMPLETE;
import static io.quarkiverse.mcp.server.runtime.Feature.RESOURCE;
import static io.quarkiverse.mcp.server.runtime.Feature.RESOURCE_TEMPLATE;
import static io.quarkiverse.mcp.server.runtime.Feature.RESOURCE_TEMPLATE_COMPLETE;
import static io.quarkiverse.mcp.server.runtime.Feature.TOOL;
import static io.quarkus.deployment.annotations.ExecutionTime.RUNTIME_INIT;

import java.lang.annotation.Annotation;
Expand Down Expand Up @@ -48,10 +48,10 @@
import io.quarkiverse.mcp.server.WrapBusinessError;
import io.quarkiverse.mcp.server.runtime.EncoderMapper;
import io.quarkiverse.mcp.server.runtime.ExecutionModel;
import io.quarkiverse.mcp.server.runtime.Feature;
import io.quarkiverse.mcp.server.runtime.FeatureArgument;
import io.quarkiverse.mcp.server.runtime.FeatureArgument.Provider;
import io.quarkiverse.mcp.server.runtime.FeatureMetadata;
import io.quarkiverse.mcp.server.runtime.FeatureMetadata.Feature;
import io.quarkiverse.mcp.server.runtime.FeatureMethodInfo;
import io.quarkiverse.mcp.server.runtime.JsonTextContentEncoder;
import io.quarkiverse.mcp.server.runtime.JsonTextResourceContentsEncoder;
Expand Down Expand Up @@ -104,7 +104,7 @@

class McpServerProcessor {

private static final Map<DotName, FeatureMetadata.Feature> ANNOTATION_TO_FEATURE = Map.of(
private static final Map<DotName, Feature> ANNOTATION_TO_FEATURE = Map.of(
DotNames.PROMPT, PROMPT,
DotNames.COMPLETE_PROMPT, PROMPT_COMPLETE,
DotNames.RESOURCE, RESOURCE,
Expand All @@ -115,15 +115,18 @@ class McpServerProcessor {

@BuildStep
void addBeans(BuildProducer<AdditionalBeanBuildItem> additionalBeans) {
additionalBeans.produce(AdditionalBeanBuildItem.unremovableOf("io.quarkiverse.mcp.server.runtime.ConnectionManager"));
additionalBeans.produce(AdditionalBeanBuildItem.builder().setUnremovable()
.addBeanClasses(PromptManagerImpl.class, ToolManagerImpl.class, ResourceManagerImpl.class,
PromptCompletionManagerImpl.class,
ResourceTemplateManagerImpl.class, ResourceTemplateCompleteManagerImpl.class,
JsonTextContentEncoder.class,
JsonTextResourceContentsEncoder.class, ToolEncoderResultMapper.class,
ResourceContentsEncoderResultMapper.class, PromptEncoderResultMapper.class)
.build());
AdditionalBeanBuildItem.Builder unremovable = AdditionalBeanBuildItem.builder().setUnremovable();
unremovable.addBeanClass("io.quarkiverse.mcp.server.runtime.ConnectionManager");
// Managers
unremovable.addBeanClasses(PromptManagerImpl.class, ToolManagerImpl.class, ResourceManagerImpl.class,
PromptCompletionManagerImpl.class, ResourceTemplateManagerImpl.class,
ResourceTemplateCompleteManagerImpl.class);
// Encoders
unremovable.addBeanClasses(JsonTextContentEncoder.class, JsonTextResourceContentsEncoder.class);
// Result mappers
unremovable.addBeanClasses(ToolEncoderResultMapper.class, ResourceContentsEncoderResultMapper.class,
PromptEncoderResultMapper.class);
additionalBeans.produce(unremovable.build());
additionalBeans
.produce(new AdditionalBeanBuildItem(WrapBusinessError.class, WrapBusinessErrorInterceptor.class));
}
Expand Down Expand Up @@ -737,7 +740,7 @@ ResultHandle promptResultMapper(BytecodeCreator bytecode, org.jboss.jandex.Type
}
}

static String createMapperClassSimpleName(FeatureMetadata.Feature feature, org.jboss.jandex.Type returnType,
static String createMapperClassSimpleName(Feature feature, org.jboss.jandex.Type returnType,
DotName baseType, Function<DotName, String> componentMapper) {
if (returnType.name().equals(baseType)) {
return "ToUni";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import org.jboss.jandex.ParameterizedType;
import org.junit.jupiter.api.Test;

import io.quarkiverse.mcp.server.runtime.FeatureMetadata.Feature;
import io.quarkiverse.mcp.server.runtime.Feature;

public class McpServerProcessorTest {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
import io.quarkiverse.mcp.server.CompletionManager;
import io.quarkiverse.mcp.server.CompletionResponse;
import io.quarkiverse.mcp.server.RequestId;
import io.quarkiverse.mcp.server.runtime.FeatureMetadata.Feature;
import io.smallrye.mutiny.Uni;
import io.vertx.core.Vertx;
import io.vertx.core.json.JsonObject;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package io.quarkiverse.mcp.server.runtime;

public enum Feature {
PROMPT,
TOOL,
RESOURCE,
RESOURCE_TEMPLATE,
PROMPT_COMPLETE,
RESOURCE_TEMPLATE_COMPLETE;

public boolean requiresUri() {
return this == RESOURCE || this == RESOURCE_TEMPLATE;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,17 +40,4 @@ public JsonObject asJson() {
return json;
}

public enum Feature {
PROMPT,
TOOL,
RESOURCE,
RESOURCE_TEMPLATE,
PROMPT_COMPLETE,
RESOURCE_TEMPLATE_COMPLETE;

public boolean requiresUri() {
return this == RESOURCE || this == RESOURCE_TEMPLATE;
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import io.quarkiverse.mcp.server.CompletionResponse;
import io.quarkiverse.mcp.server.PromptCompletionManager;
import io.quarkiverse.mcp.server.PromptManager;
import io.quarkiverse.mcp.server.runtime.FeatureMetadata.Feature;
import io.vertx.core.Vertx;

@Singleton
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
import io.quarkiverse.mcp.server.PromptManager;
import io.quarkiverse.mcp.server.PromptResponse;
import io.quarkiverse.mcp.server.RequestId;
import io.quarkiverse.mcp.server.runtime.FeatureMetadata.Feature;
import io.smallrye.mutiny.Uni;
import io.vertx.core.Vertx;
import io.vertx.core.json.JsonArray;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
import io.quarkiverse.mcp.server.ResourceContentsEncoder;
import io.quarkiverse.mcp.server.ResourceManager;
import io.quarkiverse.mcp.server.ResourceResponse;
import io.quarkiverse.mcp.server.runtime.FeatureMetadata.Feature;
import io.smallrye.mutiny.Uni;
import io.vertx.core.Vertx;
import io.vertx.core.json.JsonObject;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@

import io.quarkiverse.mcp.server.CompletionResponse;
import io.quarkiverse.mcp.server.ResourceTemplateCompletionManager;
import io.quarkiverse.mcp.server.runtime.FeatureMetadata.Feature;
import io.quarkiverse.mcp.server.runtime.ResourceTemplateManagerImpl.ResourceTemplateMetadata;
import io.vertx.core.Vertx;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
import io.quarkiverse.mcp.server.ResourceContentsEncoder;
import io.quarkiverse.mcp.server.ResourceResponse;
import io.quarkiverse.mcp.server.ResourceTemplateManager;
import io.quarkiverse.mcp.server.runtime.FeatureMetadata.Feature;
import io.smallrye.mutiny.Uni;
import io.vertx.core.Vertx;
import io.vertx.core.json.JsonObject;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
import io.quarkiverse.mcp.server.RequestId;
import io.quarkiverse.mcp.server.ToolManager;
import io.quarkiverse.mcp.server.ToolResponse;
import io.quarkiverse.mcp.server.runtime.FeatureMetadata.Feature;
import io.smallrye.mutiny.Uni;
import io.vertx.core.Vertx;
import io.vertx.core.json.JsonArray;
Expand Down

0 comments on commit 3b878dc

Please sign in to comment.