From 8ee76412b075ca2e8c31a421098031057b21330f Mon Sep 17 00:00:00 2001 From: Denislav Prinov Date: Tue, 17 Feb 2026 10:56:51 +0200 Subject: [PATCH] Restructure hawkbit-mcp into starter/server modules following the hawkbit conventions (#2923) Signed-off-by: Denislav Prinov --- hawkbit-mcp/hawkbit-mcp-server/pom.xml | 62 +++++++++ .../hawkbit/mcp/server/McpServerStart.java | 3 - .../src/main/resources/application.properties | 0 hawkbit-mcp/hawkbit-mcp-starter/pom.xml | 114 +++++++++++++++++ .../mcp/McpAutoConfiguration.java | 52 ++++++++ .../client/AuthenticationValidator.java | 0 .../HawkbitAuthenticationValidator.java | 4 - .../client/McpAuthenticationException.java | 0 .../config/HawkbitClientConfiguration.java | 0 .../server/config/HawkbitMcpProperties.java | 0 .../config/McpHttpClientConfiguration.java | 0 .../config/McpSecurityConfiguration.java | 1 + .../config/McpStdioClientConfiguration.java | 0 .../server/config/McpToolConfiguration.java | 0 .../hawkbit/mcp/server/dto/ActionRequest.java | 0 .../server/dto/DistributionSetRequest.java | 0 .../hawkbit/mcp/server/dto/ListRequest.java | 0 .../mcp/server/dto/OperationResponse.java | 0 .../hawkbit/mcp/server/dto/PagedResponse.java | 0 .../mcp/server/dto/RolloutRequest.java | 0 .../mcp/server/dto/SoftwareModuleRequest.java | 0 .../mcp/server/dto/TargetFilterRequest.java | 0 .../hawkbit/mcp/server/dto/TargetRequest.java | 0 .../server/prompts/HawkbitPromptProvider.java | 0 .../HawkbitDocumentationResource.java | 0 .../server/tools/HawkbitMcpToolProvider.java | 0 ...ot.autoconfigure.AutoConfiguration.imports | 1 + .../resources/hawkbit-entity-definitions.md | 0 .../main/resources/prompts/hawkbit-context.md | 0 .../src/main/resources/prompts/rsql-help.md | 0 hawkbit-mcp/pom.xml | 119 ++---------------- 31 files changed, 239 insertions(+), 117 deletions(-) create mode 100644 hawkbit-mcp/hawkbit-mcp-server/pom.xml rename hawkbit-mcp/{ => hawkbit-mcp-server}/src/main/java/org/eclipse/hawkbit/mcp/server/McpServerStart.java (82%) rename hawkbit-mcp/{ => hawkbit-mcp-server}/src/main/resources/application.properties (100%) create mode 100644 hawkbit-mcp/hawkbit-mcp-starter/pom.xml create mode 100644 hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/autoconfigure/mcp/McpAutoConfiguration.java rename hawkbit-mcp/{ => hawkbit-mcp-starter}/src/main/java/org/eclipse/hawkbit/mcp/server/client/AuthenticationValidator.java (100%) rename hawkbit-mcp/{ => hawkbit-mcp-starter}/src/main/java/org/eclipse/hawkbit/mcp/server/client/HawkbitAuthenticationValidator.java (95%) rename hawkbit-mcp/{ => hawkbit-mcp-starter}/src/main/java/org/eclipse/hawkbit/mcp/server/client/McpAuthenticationException.java (100%) rename hawkbit-mcp/{ => hawkbit-mcp-starter}/src/main/java/org/eclipse/hawkbit/mcp/server/config/HawkbitClientConfiguration.java (100%) rename hawkbit-mcp/{ => hawkbit-mcp-starter}/src/main/java/org/eclipse/hawkbit/mcp/server/config/HawkbitMcpProperties.java (100%) rename hawkbit-mcp/{ => hawkbit-mcp-starter}/src/main/java/org/eclipse/hawkbit/mcp/server/config/McpHttpClientConfiguration.java (100%) rename hawkbit-mcp/{ => hawkbit-mcp-starter}/src/main/java/org/eclipse/hawkbit/mcp/server/config/McpSecurityConfiguration.java (99%) rename hawkbit-mcp/{ => hawkbit-mcp-starter}/src/main/java/org/eclipse/hawkbit/mcp/server/config/McpStdioClientConfiguration.java (100%) rename hawkbit-mcp/{ => hawkbit-mcp-starter}/src/main/java/org/eclipse/hawkbit/mcp/server/config/McpToolConfiguration.java (100%) rename hawkbit-mcp/{ => hawkbit-mcp-starter}/src/main/java/org/eclipse/hawkbit/mcp/server/dto/ActionRequest.java (100%) rename hawkbit-mcp/{ => hawkbit-mcp-starter}/src/main/java/org/eclipse/hawkbit/mcp/server/dto/DistributionSetRequest.java (100%) rename hawkbit-mcp/{ => hawkbit-mcp-starter}/src/main/java/org/eclipse/hawkbit/mcp/server/dto/ListRequest.java (100%) rename hawkbit-mcp/{ => hawkbit-mcp-starter}/src/main/java/org/eclipse/hawkbit/mcp/server/dto/OperationResponse.java (100%) rename hawkbit-mcp/{ => hawkbit-mcp-starter}/src/main/java/org/eclipse/hawkbit/mcp/server/dto/PagedResponse.java (100%) rename hawkbit-mcp/{ => hawkbit-mcp-starter}/src/main/java/org/eclipse/hawkbit/mcp/server/dto/RolloutRequest.java (100%) rename hawkbit-mcp/{ => hawkbit-mcp-starter}/src/main/java/org/eclipse/hawkbit/mcp/server/dto/SoftwareModuleRequest.java (100%) rename hawkbit-mcp/{ => hawkbit-mcp-starter}/src/main/java/org/eclipse/hawkbit/mcp/server/dto/TargetFilterRequest.java (100%) rename hawkbit-mcp/{ => hawkbit-mcp-starter}/src/main/java/org/eclipse/hawkbit/mcp/server/dto/TargetRequest.java (100%) rename hawkbit-mcp/{ => hawkbit-mcp-starter}/src/main/java/org/eclipse/hawkbit/mcp/server/prompts/HawkbitPromptProvider.java (100%) rename hawkbit-mcp/{ => hawkbit-mcp-starter}/src/main/java/org/eclipse/hawkbit/mcp/server/resources/HawkbitDocumentationResource.java (100%) rename hawkbit-mcp/{ => hawkbit-mcp-starter}/src/main/java/org/eclipse/hawkbit/mcp/server/tools/HawkbitMcpToolProvider.java (100%) create mode 100644 hawkbit-mcp/hawkbit-mcp-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports rename hawkbit-mcp/{ => hawkbit-mcp-starter}/src/main/resources/hawkbit-entity-definitions.md (100%) rename hawkbit-mcp/{ => hawkbit-mcp-starter}/src/main/resources/prompts/hawkbit-context.md (100%) rename hawkbit-mcp/{ => hawkbit-mcp-starter}/src/main/resources/prompts/rsql-help.md (100%) diff --git a/hawkbit-mcp/hawkbit-mcp-server/pom.xml b/hawkbit-mcp/hawkbit-mcp-server/pom.xml new file mode 100644 index 000000000..15b5342ed --- /dev/null +++ b/hawkbit-mcp/hawkbit-mcp-server/pom.xml @@ -0,0 +1,62 @@ + + + 4.0.0 + + org.eclipse.hawkbit + hawkbit-mcp-parent + ${revision} + + + hawkbit-mcp-server + hawkBit :: MCP :: Server (Standalone) + Standalone MCP server that connects to hawkBit via REST API + + + org.eclipse.hawkbit.mcp.server.McpServerStart + + + + + org.eclipse.hawkbit + hawkbit-mcp-starter + ${project.version} + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + ${baseDir} + ${spring.app.class} + JAR + + + + + + + + src/main/resources + + + + diff --git a/hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/McpServerStart.java b/hawkbit-mcp/hawkbit-mcp-server/src/main/java/org/eclipse/hawkbit/mcp/server/McpServerStart.java similarity index 82% rename from hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/McpServerStart.java rename to hawkbit-mcp/hawkbit-mcp-server/src/main/java/org/eclipse/hawkbit/mcp/server/McpServerStart.java index f9fcccadd..6e53eae41 100644 --- a/hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/McpServerStart.java +++ b/hawkbit-mcp/hawkbit-mcp-server/src/main/java/org/eclipse/hawkbit/mcp/server/McpServerStart.java @@ -9,10 +9,8 @@ */ package org.eclipse.hawkbit.mcp.server; -import org.eclipse.hawkbit.mcp.server.config.HawkbitMcpProperties; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.autoconfigure.security.servlet.UserDetailsServiceAutoConfiguration; /** @@ -23,7 +21,6 @@ import org.springframework.boot.autoconfigure.security.servlet.UserDetailsServic *

*/ @SpringBootApplication(exclude = UserDetailsServiceAutoConfiguration.class) -@EnableConfigurationProperties(HawkbitMcpProperties.class) public class McpServerStart { public static void main(final String[] args) { diff --git a/hawkbit-mcp/src/main/resources/application.properties b/hawkbit-mcp/hawkbit-mcp-server/src/main/resources/application.properties similarity index 100% rename from hawkbit-mcp/src/main/resources/application.properties rename to hawkbit-mcp/hawkbit-mcp-server/src/main/resources/application.properties diff --git a/hawkbit-mcp/hawkbit-mcp-starter/pom.xml b/hawkbit-mcp/hawkbit-mcp-starter/pom.xml new file mode 100644 index 000000000..5f61b4c00 --- /dev/null +++ b/hawkbit-mcp/hawkbit-mcp-starter/pom.xml @@ -0,0 +1,114 @@ + + + 4.0.0 + + org.eclipse.hawkbit + hawkbit-mcp-parent + ${revision} + + + hawkbit-mcp-starter + hawkBit :: MCP :: Spring Boot Starter + + + + + org.eclipse.hawkbit + hawkbit-sdk-mgmt + ${project.version} + + + org.springdoc + springdoc-openapi-starter-webmvc-ui + + + org.springframework.boot + spring-boot-starter-hateoas + + + + + + + org.springframework.ai + spring-ai-starter-mcp-server-webmvc + + + org.springframework.ai + spring-ai-mcp-annotations + + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-security + + + + + com.github.ben-manes.caffeine + caffeine + + + + + + + + org.apache.maven.plugins + maven-resources-plugin + + + copy-hawkbit-docs + generate-resources + + copy-resources + + + ${project.build.outputDirectory}/hawkbit-docs + + + ${project.basedir}/../../docs + + README.md + what-is-hawkbit.md + quick-start.md + features.md + architecture.md + base-setup.md + hawkbit-sdk.md + feign-client.md + clustering.md + authentication.md + authorization.md + datamodel.md + rollout-management.md + targetstate.md + management-api.md + direct-device-integration-api.md + device-management-federation-api.md + + + + + + + + + + diff --git a/hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/autoconfigure/mcp/McpAutoConfiguration.java b/hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/autoconfigure/mcp/McpAutoConfiguration.java new file mode 100644 index 000000000..81fe1e789 --- /dev/null +++ b/hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/autoconfigure/mcp/McpAutoConfiguration.java @@ -0,0 +1,52 @@ +/** + * Copyright (c) 2026 Contributors to the Eclipse Foundation + * + * This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 + * which is available at https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.eclipse.hawkbit.autoconfigure.mcp; + +import org.eclipse.hawkbit.mcp.server.client.AuthenticationValidator; +import org.eclipse.hawkbit.mcp.server.client.HawkbitAuthenticationValidator; +import org.eclipse.hawkbit.mcp.server.config.HawkbitClientConfiguration; +import org.eclipse.hawkbit.mcp.server.config.HawkbitMcpProperties; +import org.eclipse.hawkbit.mcp.server.config.McpHttpClientConfiguration; +import org.eclipse.hawkbit.mcp.server.config.McpSecurityConfiguration; +import org.eclipse.hawkbit.mcp.server.config.McpStdioClientConfiguration; +import org.eclipse.hawkbit.mcp.server.config.McpToolConfiguration; +import org.eclipse.hawkbit.sdk.HawkbitClient; +import org.eclipse.hawkbit.sdk.Tenant; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Import; + +/** + * Auto-configuration for the hawkBit MCP server. + */ +@AutoConfiguration +@ConditionalOnClass(McpToolConfiguration.class) +@Import({ + McpToolConfiguration.class, + HawkbitClientConfiguration.class, + McpHttpClientConfiguration.class, + McpStdioClientConfiguration.class, + McpSecurityConfiguration.class +}) +@EnableConfigurationProperties(HawkbitMcpProperties.class) +public class McpAutoConfiguration { + + @Bean + @ConditionalOnMissingBean + @ConditionalOnProperty(name = "hawkbit.mcp.validation.enabled", havingValue = "true", matchIfMissing = true) + public AuthenticationValidator hawkbitAuthenticationValidator( + final HawkbitClient hawkbitClient, final Tenant dummyTenant, final HawkbitMcpProperties properties) { + return new HawkbitAuthenticationValidator(hawkbitClient, dummyTenant, properties); + } +} diff --git a/hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/client/AuthenticationValidator.java b/hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/client/AuthenticationValidator.java similarity index 100% rename from hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/client/AuthenticationValidator.java rename to hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/client/AuthenticationValidator.java diff --git a/hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/client/HawkbitAuthenticationValidator.java b/hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/client/HawkbitAuthenticationValidator.java similarity index 95% rename from hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/client/HawkbitAuthenticationValidator.java rename to hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/client/HawkbitAuthenticationValidator.java index 09c796515..17c39595f 100644 --- a/hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/client/HawkbitAuthenticationValidator.java +++ b/hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/client/HawkbitAuthenticationValidator.java @@ -22,17 +22,13 @@ import org.eclipse.hawkbit.mcp.server.config.HawkbitMcpProperties; import org.eclipse.hawkbit.mgmt.rest.api.MgmtTenantManagementRestApi; import org.eclipse.hawkbit.sdk.HawkbitClient; import org.eclipse.hawkbit.sdk.Tenant; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Component; /** * Validates authentication credentials against hawkBit REST API using the SDK. * This validator is conditionally created when {@code hawkbit.mcp.validation.enabled=true}. */ @Slf4j -@Component -@ConditionalOnProperty(name = "hawkbit.mcp.validation.enabled", havingValue = "true", matchIfMissing = true) public class HawkbitAuthenticationValidator implements AuthenticationValidator { private final HawkbitClient hawkbitClient; diff --git a/hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/client/McpAuthenticationException.java b/hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/client/McpAuthenticationException.java similarity index 100% rename from hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/client/McpAuthenticationException.java rename to hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/client/McpAuthenticationException.java diff --git a/hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/config/HawkbitClientConfiguration.java b/hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/config/HawkbitClientConfiguration.java similarity index 100% rename from hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/config/HawkbitClientConfiguration.java rename to hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/config/HawkbitClientConfiguration.java diff --git a/hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/config/HawkbitMcpProperties.java b/hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/config/HawkbitMcpProperties.java similarity index 100% rename from hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/config/HawkbitMcpProperties.java rename to hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/config/HawkbitMcpProperties.java diff --git a/hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/config/McpHttpClientConfiguration.java b/hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/config/McpHttpClientConfiguration.java similarity index 100% rename from hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/config/McpHttpClientConfiguration.java rename to hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/config/McpHttpClientConfiguration.java diff --git a/hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/config/McpSecurityConfiguration.java b/hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/config/McpSecurityConfiguration.java similarity index 99% rename from hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/config/McpSecurityConfiguration.java rename to hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/config/McpSecurityConfiguration.java index 51030c519..f6a1772ac 100644 --- a/hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/config/McpSecurityConfiguration.java +++ b/hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/config/McpSecurityConfiguration.java @@ -63,6 +63,7 @@ public class McpSecurityConfiguration { @SuppressWarnings("java:S4502") // CSRF protection is not needed for stateless REST APIs using Authorization header public SecurityFilterChain mcpSecurityFilterChain(final HttpSecurity http) throws Exception { http + .securityMatcher("/mcp/**") .authorizeHttpRequests(auth -> auth.anyRequest().permitAll()) .csrf(AbstractHttpConfigurer::disable) .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS)); diff --git a/hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/config/McpStdioClientConfiguration.java b/hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/config/McpStdioClientConfiguration.java similarity index 100% rename from hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/config/McpStdioClientConfiguration.java rename to hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/config/McpStdioClientConfiguration.java diff --git a/hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/config/McpToolConfiguration.java b/hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/config/McpToolConfiguration.java similarity index 100% rename from hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/config/McpToolConfiguration.java rename to hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/config/McpToolConfiguration.java diff --git a/hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/dto/ActionRequest.java b/hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/dto/ActionRequest.java similarity index 100% rename from hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/dto/ActionRequest.java rename to hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/dto/ActionRequest.java diff --git a/hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/dto/DistributionSetRequest.java b/hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/dto/DistributionSetRequest.java similarity index 100% rename from hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/dto/DistributionSetRequest.java rename to hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/dto/DistributionSetRequest.java diff --git a/hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/dto/ListRequest.java b/hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/dto/ListRequest.java similarity index 100% rename from hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/dto/ListRequest.java rename to hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/dto/ListRequest.java diff --git a/hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/dto/OperationResponse.java b/hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/dto/OperationResponse.java similarity index 100% rename from hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/dto/OperationResponse.java rename to hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/dto/OperationResponse.java diff --git a/hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/dto/PagedResponse.java b/hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/dto/PagedResponse.java similarity index 100% rename from hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/dto/PagedResponse.java rename to hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/dto/PagedResponse.java diff --git a/hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/dto/RolloutRequest.java b/hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/dto/RolloutRequest.java similarity index 100% rename from hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/dto/RolloutRequest.java rename to hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/dto/RolloutRequest.java diff --git a/hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/dto/SoftwareModuleRequest.java b/hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/dto/SoftwareModuleRequest.java similarity index 100% rename from hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/dto/SoftwareModuleRequest.java rename to hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/dto/SoftwareModuleRequest.java diff --git a/hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/dto/TargetFilterRequest.java b/hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/dto/TargetFilterRequest.java similarity index 100% rename from hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/dto/TargetFilterRequest.java rename to hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/dto/TargetFilterRequest.java diff --git a/hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/dto/TargetRequest.java b/hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/dto/TargetRequest.java similarity index 100% rename from hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/dto/TargetRequest.java rename to hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/dto/TargetRequest.java diff --git a/hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/prompts/HawkbitPromptProvider.java b/hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/prompts/HawkbitPromptProvider.java similarity index 100% rename from hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/prompts/HawkbitPromptProvider.java rename to hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/prompts/HawkbitPromptProvider.java diff --git a/hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/resources/HawkbitDocumentationResource.java b/hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/resources/HawkbitDocumentationResource.java similarity index 100% rename from hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/resources/HawkbitDocumentationResource.java rename to hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/resources/HawkbitDocumentationResource.java diff --git a/hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/tools/HawkbitMcpToolProvider.java b/hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/tools/HawkbitMcpToolProvider.java similarity index 100% rename from hawkbit-mcp/src/main/java/org/eclipse/hawkbit/mcp/server/tools/HawkbitMcpToolProvider.java rename to hawkbit-mcp/hawkbit-mcp-starter/src/main/java/org/eclipse/hawkbit/mcp/server/tools/HawkbitMcpToolProvider.java diff --git a/hawkbit-mcp/hawkbit-mcp-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/hawkbit-mcp/hawkbit-mcp-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 000000000..14244abe9 --- /dev/null +++ b/hawkbit-mcp/hawkbit-mcp-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +org.eclipse.hawkbit.autoconfigure.mcp.McpAutoConfiguration diff --git a/hawkbit-mcp/src/main/resources/hawkbit-entity-definitions.md b/hawkbit-mcp/hawkbit-mcp-starter/src/main/resources/hawkbit-entity-definitions.md similarity index 100% rename from hawkbit-mcp/src/main/resources/hawkbit-entity-definitions.md rename to hawkbit-mcp/hawkbit-mcp-starter/src/main/resources/hawkbit-entity-definitions.md diff --git a/hawkbit-mcp/src/main/resources/prompts/hawkbit-context.md b/hawkbit-mcp/hawkbit-mcp-starter/src/main/resources/prompts/hawkbit-context.md similarity index 100% rename from hawkbit-mcp/src/main/resources/prompts/hawkbit-context.md rename to hawkbit-mcp/hawkbit-mcp-starter/src/main/resources/prompts/hawkbit-context.md diff --git a/hawkbit-mcp/src/main/resources/prompts/rsql-help.md b/hawkbit-mcp/hawkbit-mcp-starter/src/main/resources/prompts/rsql-help.md similarity index 100% rename from hawkbit-mcp/src/main/resources/prompts/rsql-help.md rename to hawkbit-mcp/hawkbit-mcp-starter/src/main/resources/prompts/rsql-help.md diff --git a/hawkbit-mcp/pom.xml b/hawkbit-mcp/pom.xml index 12298a43f..a752ceda1 100644 --- a/hawkbit-mcp/pom.xml +++ b/hawkbit-mcp/pom.xml @@ -1,6 +1,6 @@