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;
 
 /**

Reply via email to