You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2026/05/17 16:17:54 UTC
(cayenne) 01/02: Modeler cleanup - uniwinding injection
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 <an...@objectstyle.com>
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);