This is an automated email from the ASF dual-hosted git repository. jamesbognar pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/juneau.git
commit cbf22b1cd8b38ffbbd8c51f887d37e4eb705d2b4 Author: James Bognar <[email protected]> AuthorDate: Tue Jul 28 18:29:03 2026 -0400 build: fail the build if the MCP core gains a per-revision dependency First dependency-graph-shape enforcement rule in this reactor; the only prior maven-enforcer use is the root pom's requireMavenVersion. Verified by adding the banned dependency locally and confirming the build fails with the rule message. Co-authored-by: Cursor <[email protected]> --- juneau-rest/juneau-rest-server-mcp/pom.xml | 31 ++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/juneau-rest/juneau-rest-server-mcp/pom.xml b/juneau-rest/juneau-rest-server-mcp/pom.xml index dff22f2baa..ff43911251 100644 --- a/juneau-rest/juneau-rest-server-mcp/pom.xml +++ b/juneau-rest/juneau-rest-server-mcp/pom.xml @@ -73,6 +73,37 @@ <build> <plugins> + <!-- + The MCP core is revision-neutral by contract: no per-revision MCP module may appear + anywhere on its dependency tree. Enforced here rather than left to code review, + because a single convenience import is all it takes to quietly couple the core to one + revision and defeat the whole layering. + --> + <plugin> + <artifactId>maven-enforcer-plugin</artifactId> + <executions> + <execution> + <id>enforce-no-revision-modules</id> + <phase>validate</phase> + <goals> + <goal>enforce</goal> + </goals> + <configuration> + <rules> + <bannedDependencies> + <excludes> + <exclude>org.apache.juneau:juneau-bean-mcp-*</exclude> + <exclude>org.apache.juneau:juneau-rest-server-mcp-*</exclude> + </excludes> + <searchTransitive>true</searchTransitive> + <message>juneau-rest-server-mcp is the revision-neutral MCP core: it must not depend on any per-revision MCP module (juneau-bean-mcp-* / juneau-rest-server-mcp-*), in any scope, directly or transitively.</message> + </bannedDependencies> + </rules> + <fail>true</fail> + </configuration> + </execution> + </executions> + </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId>
