This is an automated email from the ASF dual-hosted git repository. asf-gitbox-commits pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cayenne.git
commit be41f444ad24cd27ae0332cccce32c9af6bfb8f8 Author: Andrus Adamchik <[email protected]> AuthorDate: Sun May 24 16:09:49 2026 -0400 CAY-2949 CayenneModeler MCP: dbimport_run tool make sure we do not lose extensions on save --- .../org/apache/cayenne/mcp/tools/dbimport/DbImportRunTool.java | 7 ++++++- .../src/main/java/org/apache/cayenne/project/ProjectModule.java | 4 ++-- .../project/extension/validation}/ValidationConfigHandler.java | 2 +- .../cayenne/project/extension/validation}/ValidationExtension.java | 2 +- .../project/extension/validation}/ValidationLoaderDelegate.java | 2 +- .../project/extension/validation}/ValidationSaverDelegate.java | 2 +- .../src/main/java/org/apache/cayenne/modeler/ModelerModule.java | 2 +- 7 files changed, 13 insertions(+), 8 deletions(-) diff --git a/cayenne-mcp-server/src/main/java/org/apache/cayenne/mcp/tools/dbimport/DbImportRunTool.java b/cayenne-mcp-server/src/main/java/org/apache/cayenne/mcp/tools/dbimport/DbImportRunTool.java index 0da88ca22..e9ab9609d 100644 --- a/cayenne-mcp-server/src/main/java/org/apache/cayenne/mcp/tools/dbimport/DbImportRunTool.java +++ b/cayenne-mcp-server/src/main/java/org/apache/cayenne/mcp/tools/dbimport/DbImportRunTool.java @@ -28,6 +28,7 @@ import org.apache.cayenne.dbsync.reverse.dbimport.DbImportConfiguration; import org.apache.cayenne.dbsync.reverse.dbimport.DbImportModule; import org.apache.cayenne.di.DIBootstrap; import org.apache.cayenne.di.Injector; +import org.apache.cayenne.gen.xml.CgenExtension; import org.apache.cayenne.map.DataMap; import org.apache.cayenne.modeler.pref.PreferenceNodeIds; import org.apache.cayenne.modeler.pref.PrefsLocator; @@ -45,6 +46,7 @@ import org.apache.cayenne.mcp.tools.dbimport.protocol.DbImportValidation; import org.apache.cayenne.project.Project; import org.apache.cayenne.project.ProjectLoader; import org.apache.cayenne.project.ProjectModule; +import org.apache.cayenne.project.extension.validation.ValidationExtension; import org.apache.cayenne.resource.URLResource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -84,13 +86,16 @@ public class DbImportRunTool { public DbImportRunTool(PrefsLocator prefsLocator) { this.prefsLocator = prefsLocator; + // TODO CAY-2950: unknown extensions should be preserved via blob roundtrip instead of + // requiring each extension to be explicitly registered here this.injector = DIBootstrap.createInjector( new DbSyncModule(), new ToolsModule(LOGGER), new DbImportModule(), new ProjectModule(), new McpProjectLoaderModule(), - binder -> binder.bind(InstrumentedDbImportAction.class).to(InstrumentedDbImportAction.class) + b -> ProjectModule.extend(b).addExtension(CgenExtension.class).addExtension(ValidationExtension.class), + b -> b.bind(InstrumentedDbImportAction.class).to(InstrumentedDbImportAction.class) ); } diff --git a/cayenne-project/src/main/java/org/apache/cayenne/project/ProjectModule.java b/cayenne-project/src/main/java/org/apache/cayenne/project/ProjectModule.java index 0b9ede4dc..9e1ee3687 100644 --- a/cayenne-project/src/main/java/org/apache/cayenne/project/ProjectModule.java +++ b/cayenne-project/src/main/java/org/apache/cayenne/project/ProjectModule.java @@ -37,8 +37,8 @@ import org.apache.cayenne.project.validation.DefaultProjectValidator; import org.apache.cayenne.project.validation.ProjectValidator; /** - * A dependency injection (DI) module contributing configuration related - * to Cayenne mapping project manipulation to a DI container. + * A dependency injection (DI) module contributing configuration related to Cayenne mapping project manipulation to a + * DI container. * * @since 4.0 */ diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/service/validator/extension/ValidationConfigHandler.java b/cayenne-project/src/main/java/org/apache/cayenne/project/extension/validation/ValidationConfigHandler.java similarity index 97% rename from modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/service/validator/extension/ValidationConfigHandler.java rename to cayenne-project/src/main/java/org/apache/cayenne/project/extension/validation/ValidationConfigHandler.java index 898cf4e57..3dc63f17e 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/service/validator/extension/ValidationConfigHandler.java +++ b/cayenne-project/src/main/java/org/apache/cayenne/project/extension/validation/ValidationConfigHandler.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. ****************************************************************/ -package org.apache.cayenne.modeler.service.validator.extension; +package org.apache.cayenne.project.extension.validation; import org.apache.cayenne.configuration.xml.DataChannelMetaData; import org.apache.cayenne.configuration.xml.NamespaceAwareNestedTagHandler; diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/service/validator/extension/ValidationExtension.java b/cayenne-project/src/main/java/org/apache/cayenne/project/extension/validation/ValidationExtension.java similarity index 96% rename from modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/service/validator/extension/ValidationExtension.java rename to cayenne-project/src/main/java/org/apache/cayenne/project/extension/validation/ValidationExtension.java index 4445c5c27..ac816df91 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/service/validator/extension/ValidationExtension.java +++ b/cayenne-project/src/main/java/org/apache/cayenne/project/extension/validation/ValidationExtension.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. ****************************************************************/ -package org.apache.cayenne.modeler.service.validator.extension; +package org.apache.cayenne.project.extension.validation; import org.apache.cayenne.configuration.ConfigurationNodeVisitor; import org.apache.cayenne.configuration.xml.DataChannelMetaData; diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/service/validator/extension/ValidationLoaderDelegate.java b/cayenne-project/src/main/java/org/apache/cayenne/project/extension/validation/ValidationLoaderDelegate.java similarity index 96% rename from modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/service/validator/extension/ValidationLoaderDelegate.java rename to cayenne-project/src/main/java/org/apache/cayenne/project/extension/validation/ValidationLoaderDelegate.java index 2e864289c..ac83a331c 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/service/validator/extension/ValidationLoaderDelegate.java +++ b/cayenne-project/src/main/java/org/apache/cayenne/project/extension/validation/ValidationLoaderDelegate.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. ****************************************************************/ -package org.apache.cayenne.modeler.service.validator.extension; +package org.apache.cayenne.project.extension.validation; import org.apache.cayenne.configuration.xml.DataChannelMetaData; import org.apache.cayenne.configuration.xml.NamespaceAwareNestedTagHandler; diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/service/validator/extension/ValidationSaverDelegate.java b/cayenne-project/src/main/java/org/apache/cayenne/project/extension/validation/ValidationSaverDelegate.java similarity index 97% rename from modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/service/validator/extension/ValidationSaverDelegate.java rename to cayenne-project/src/main/java/org/apache/cayenne/project/extension/validation/ValidationSaverDelegate.java index d28cd66ff..8b0db1ebf 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/service/validator/extension/ValidationSaverDelegate.java +++ b/cayenne-project/src/main/java/org/apache/cayenne/project/extension/validation/ValidationSaverDelegate.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. ****************************************************************/ -package org.apache.cayenne.modeler.service.validator.extension; +package org.apache.cayenne.project.extension.validation; import org.apache.cayenne.configuration.DataChannelDescriptor; import org.apache.cayenne.configuration.xml.DataChannelMetaData; diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ModelerModule.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ModelerModule.java index efe30d2f3..c3258e3dd 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ModelerModule.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ModelerModule.java @@ -26,10 +26,10 @@ import org.apache.cayenne.dbsync.xml.DbImportExtension; import org.apache.cayenne.di.Binder; import org.apache.cayenne.di.Module; import org.apache.cayenne.gen.xml.CgenExtension; -import org.apache.cayenne.modeler.service.validator.extension.ValidationExtension; import org.apache.cayenne.project.ProjectModule; import org.apache.cayenne.project.extension.ExtensionAwareHandlerFactory; import org.apache.cayenne.project.extension.info.InfoExtension; +import org.apache.cayenne.project.extension.validation.ValidationExtension; import org.xml.sax.XMLReader; /**
