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 0381fd5959ba01026f630236c067455f9fe19e96
Author: Andrus Adamchik <[email protected]>
AuthorDate: Sun May 17 12:12:34 2026 -0400

    Modeler cleanup - uniwinding injection
---
 .../java/org/apache/cayenne/modeler/Application.java    | 17 +++++++++++++----
 .../src/main/java/org/apache/cayenne/modeler/Main.java  |  2 +-
 .../java/org/apache/cayenne/modeler/ModelerModule.java  |  7 -------
 .../cayenne/modeler/service/action/GlobalActions.java   |  7 +++----
 .../service/validator/ConfigurableProjectValidator.java |  3 +--
 .../cayenne/modeler/CayenneModelerValidationIT.java     |  7 +++----
 6 files changed, 21 insertions(+), 22 deletions(-)

diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Application.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Application.java
index f3d3137e4..594e077c7 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Application.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Application.java
@@ -19,11 +19,11 @@
 
 package org.apache.cayenne.modeler;
 
+import org.apache.cayenne.configuration.ConfigurationNameMapper;
 import org.apache.cayenne.configuration.DataMapLoader;
 import org.apache.cayenne.configuration.runtime.DbAdapterFactory;
 import org.apache.cayenne.configuration.xml.DataChannelMetaData;
 import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactoryProvider;
-import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.di.Injector;
 import org.apache.cayenne.modeler.dbconnector.DBConnectors;
 import org.apache.cayenne.modeler.log.ModelerLogFactory;
@@ -35,6 +35,7 @@ import org.apache.cayenne.modeler.pref.RecentProjectsPrefs;
 import org.apache.cayenne.modeler.service.action.GlobalActions;
 import org.apache.cayenne.modeler.service.classloader.ModelerClassLoader;
 import org.apache.cayenne.modeler.service.platform.PlatformInitializer;
+import 
org.apache.cayenne.modeler.service.validator.ConfigurableProjectValidator;
 import org.apache.cayenne.modeler.ui.MainFrame;
 import org.apache.cayenne.modeler.ui.action.OpenProjectAction;
 import org.apache.cayenne.modeler.ui.logconsole.LogConsole;
@@ -65,16 +66,24 @@ public class Application {
 
     private final Injector injector;
     private final String name;
+    private final GlobalActions actionManager;
+    private final ProjectValidator projectValidator;
     private LogConsole logConsole;
     private MainFrame frame;
     private CayenneUndoManager undoManager;
     private DBConnectors dbConnectors;
 
-    public Application(@Inject Injector injector) {
+    public Application(Injector injector) {
         this.injector = injector;
 
         String configuredName = System.getProperty(APPLICATION_NAME_PROPERTY);
         this.name = (configuredName != null) ? configuredName : 
DEFAULT_APPLICATION_NAME;
+
+        this.actionManager = new GlobalActions(
+                this,
+                injector.getInstance(ConfigurationNameMapper.class),
+                injector.getInstance(ConfigurationNodeParentGetter.class));
+        this.projectValidator = new ConfigurableProjectValidator(this);
     }
 
     public String getName() {
@@ -86,11 +95,11 @@ public class Application {
     }
 
     public GlobalActions getActionManager() {
-        return injector.getInstance(GlobalActions.class);
+        return actionManager;
     }
 
     public ProjectValidator getProjectValidator() {
-        return injector.getInstance(ProjectValidator.class);
+        return projectValidator;
     }
 
     public ProjectSaver getProjectSaver() {
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Main.java 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Main.java
index aca3cd774..3def30a94 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Main.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Main.java
@@ -72,7 +72,7 @@ public class Main {
         LOGGER.info("JRE v.{} at {}", System.getProperty("java.version"), 
System.getProperty("java.home"));
 
         SwingUtilities.invokeLater(() -> {
-            Application application = injector.getInstance(Application.class);
+            Application application = new Application(injector);
             application.startup(initialProjectFromArgs());
         });
 
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 900117158..3bb9c3cda 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
@@ -27,16 +27,13 @@ import org.apache.cayenne.di.Binder;
 import org.apache.cayenne.di.Module;
 import org.apache.cayenne.gen.xml.CgenExtension;
 import org.apache.cayenne.modeler.pref.PreferencesRepository;
-import org.apache.cayenne.modeler.service.action.GlobalActions;
 import org.apache.cayenne.modeler.service.platform.DefaultPlatformInitializer;
 import org.apache.cayenne.modeler.service.platform.PlatformInitializer;
 import org.apache.cayenne.modeler.service.classloader.ModelerClassLoader;
-import 
org.apache.cayenne.modeler.service.validator.ConfigurableProjectValidator;
 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.validation.ProjectValidator;
 import org.xml.sax.XMLReader;
 
 /**
@@ -46,8 +43,6 @@ public class ModelerModule implements Module {
 
     public void configure(Binder binder) {
 
-        binder.bind(Application.class).to(Application.class);
-        binder.bind(GlobalActions.class).to(GlobalActions.class);
         binder.bind(ModelerClassLoader.class).to(ModelerClassLoader.class);
         
binder.bind(PlatformInitializer.class).to(DefaultPlatformInitializer.class);
         
binder.bind(HandlerFactory.class).to(ExtensionAwareHandlerFactory.class);
@@ -61,7 +56,5 @@ public class ModelerModule implements Module {
                 .addExtension(DbImportExtension.class)
                 .addExtension(CgenExtension.class)
                 .addExtension(ValidationExtension.class);
-
-        
binder.bind(ProjectValidator.class).to(ConfigurableProjectValidator.class);
     }
 }
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/service/action/GlobalActions.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/service/action/GlobalActions.java
index e06abe70a..be2e82ce4 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/service/action/GlobalActions.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/service/action/GlobalActions.java
@@ -20,7 +20,6 @@ package org.apache.cayenne.modeler.service.action;
 
 import org.apache.cayenne.configuration.ConfigurationNameMapper;
 import org.apache.cayenne.configuration.ConfigurationNode;
-import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.modeler.Application;
 import org.apache.cayenne.modeler.toolkit.AppAction;
 import org.apache.cayenne.modeler.ui.action.*;
@@ -55,9 +54,9 @@ public class GlobalActions {
     private final ConfigurationNodeParentGetter nodeParentGetter;
 
     public GlobalActions(
-            @Inject Application application,
-            @Inject ConfigurationNameMapper nameMapper,
-            @Inject ConfigurationNodeParentGetter nodeParentGetter) {
+            Application application,
+            ConfigurationNameMapper nameMapper,
+            ConfigurationNodeParentGetter nodeParentGetter) {
 
         this.nodeParentGetter = nodeParentGetter;
 
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/service/validator/ConfigurableProjectValidator.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/service/validator/ConfigurableProjectValidator.java
index b25c7bf17..c8f386f29 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/service/validator/ConfigurableProjectValidator.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/service/validator/ConfigurableProjectValidator.java
@@ -20,14 +20,13 @@ package org.apache.cayenne.modeler.service.validator;
 
 import org.apache.cayenne.configuration.DataChannelDescriptor;
 import org.apache.cayenne.configuration.xml.DataChannelMetaData;
-import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.modeler.Application;
 import org.apache.cayenne.project.validation.DefaultProjectValidator;
 import org.apache.cayenne.project.validation.ValidationConfig;
 
 public class ConfigurableProjectValidator extends DefaultProjectValidator {
 
-    public ConfigurableProjectValidator(@Inject Application application) {
+    public ConfigurableProjectValidator(Application application) {
         super(() -> {
             DataChannelMetaData metaData = application.getMetaData();
             DataChannelDescriptor dataChannel = (DataChannelDescriptor) 
application.getFrame().getProjectSession().project().getRootNode();
diff --git 
a/modeler/cayenne-modeler/src/test/java/org/apache/cayenne/modeler/CayenneModelerValidationIT.java
 
b/modeler/cayenne-modeler/src/test/java/org/apache/cayenne/modeler/CayenneModelerValidationIT.java
index 97fa5555e..40f0e6a2e 100644
--- 
a/modeler/cayenne-modeler/src/test/java/org/apache/cayenne/modeler/CayenneModelerValidationIT.java
+++ 
b/modeler/cayenne-modeler/src/test/java/org/apache/cayenne/modeler/CayenneModelerValidationIT.java
@@ -27,7 +27,6 @@ import org.apache.cayenne.project.Project;
 import org.apache.cayenne.project.ProjectLoader;
 import org.apache.cayenne.project.ProjectModule;
 import org.apache.cayenne.project.validation.Inspection;
-import org.apache.cayenne.project.validation.ProjectValidator;
 import org.apache.cayenne.project.validation.ValidationConfig;
 import org.apache.cayenne.resource.URLResource;
 import org.junit.jupiter.api.BeforeAll;
@@ -60,14 +59,14 @@ public class CayenneModelerValidationIT {
 
     @Test
     public void validatorProvided() {
-        ProjectValidator projectValidator = 
injector.getInstance(ProjectValidator.class);
-        assertTrue(projectValidator instanceof ConfigurableProjectValidator);
+        Application application = new Application(injector);
+        assertTrue(application.getProjectValidator() instanceof 
ConfigurableProjectValidator);
     }
 
     @Test
     public void configLoaded() {
         URLResource projectResource = new 
URLResource(getClass().getResource(CAYENNE_CONFIGURED_VALIDATION_PROJECT));
-        Application application = injector.getInstance(Application.class);
+        Application application = new Application(injector);
         ProjectLoader projectLoader = 
injector.getInstance(ProjectLoader.class);
         Project project = projectLoader.loadProject(projectResource);
 

Reply via email to