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);
