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/04/24 17:28:55 UTC
(cayenne) branch master updated: Modeler refactoring - package per component
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
The following commit(s) were added to refs/heads/master by this push:
new c503b8e65 Modeler refactoring - package per component
c503b8e65 is described below
commit c503b8e65110a7ff6fd02e1a3dd26b285527aafb
Author: Andrus Adamchik <an...@objectstyle.com>
AuthorDate: Fri Apr 24 12:56:39 2026 -0400
Modeler refactoring - package per component
---
.../modeler/action/ReverseEngineeringAction.java | 82 ++++++++++++++++--
.../modeler/dbimport/DbImportProjectSaver.java | 8 +-
.../cayenne/modeler/dbimport/LoadDataMapTask.java | 97 ----------------------
...rSyncModule.java => ModelerDbImportModule.java} | 12 +--
...derContext.java => ModelerDbLoaderContext.java} | 16 ++--
...rDelegate.java => ModelerDbLoaderDelegate.java} | 6 +-
.../editor/datamap/dbimport/DbImportView.java | 22 ++---
7 files changed, 104 insertions(+), 139 deletions(-)
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ReverseEngineeringAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ReverseEngineeringAction.java
index 06630fb03..9be1fbf35 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ReverseEngineeringAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ReverseEngineeringAction.java
@@ -19,14 +19,24 @@
package org.apache.cayenne.modeler.action;
+import org.apache.cayenne.dbsync.DbSyncModule;
+import org.apache.cayenne.dbsync.reverse.configuration.ToolsModule;
+import org.apache.cayenne.dbsync.reverse.dbimport.DbImportAction;
+import org.apache.cayenne.dbsync.reverse.dbimport.DbImportModule;
+import org.apache.cayenne.di.DIBootstrap;
+import org.apache.cayenne.di.Injector;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.modeler.Application;
+import org.apache.cayenne.modeler.dbimport.ModelerDbImportModule;
+import org.apache.cayenne.modeler.dbimport.ModelerDbLoaderContext;
+import org.apache.cayenne.modeler.pref.DBConnectionInfo;
import org.apache.cayenne.modeler.ui.dbloadresult.DbLoadResultDialog;
-import org.apache.cayenne.modeler.dbimport.DbLoaderContext;
-import org.apache.cayenne.modeler.dbimport.LoadDataMapTask;
import org.apache.cayenne.modeler.ui.project.editor.datamap.dbimport.DbImportController;
import org.apache.cayenne.modeler.ui.project.editor.datamap.dbimport.DbImportView;
-import org.apache.cayenne.modeler.pref.DBConnectionInfo;
+import org.apache.cayenne.modeler.util.LongRunningTask;
+import org.apache.cayenne.modeler.util.ProjectUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import javax.swing.*;
import java.awt.event.ActionEvent;
@@ -40,6 +50,8 @@ import java.util.concurrent.atomic.AtomicInteger;
*/
public class ReverseEngineeringAction extends DBConnectionAwareAction {
+ private static final Logger LOGGER = LoggerFactory.getLogger(ReverseEngineeringAction.class);
+
private static final String ACTION_NAME = "Reengineer Database Schema";
private static final String ICON_NAME = "icon-dbi-runImport.png";
private static final String DIALOG_TITLE = "Reengineer DB Schema: Connect to Database";
@@ -65,7 +77,7 @@ public class ReverseEngineeringAction extends DBConnectionAwareAction {
}
private void startImport(DataMap dataMap) {
- DbLoaderContext context = new DbLoaderContext(
+ ModelerDbLoaderContext context = new ModelerDbLoaderContext(
getProjectController(),
application.getMetaData(),
dataMap);
@@ -127,7 +139,7 @@ public class ReverseEngineeringAction extends DBConnectionAwareAction {
this.dataMaps = new HashSet<>();
}
- private void runLoaderInThread(final DbLoaderContext context, final Runnable callback) {
+ private void runLoaderInThread(final ModelerDbLoaderContext context, final Runnable callback) {
Thread th = new Thread(() -> {
LoadDataMapTask task = new LoadDataMapTask(Application.getFrame(), "Reengineering DB", context);
task.startAndWait();
@@ -139,4 +151,64 @@ public class ReverseEngineeringAction extends DBConnectionAwareAction {
public void setView(DbImportView view) {
this.view = view;
}
+
+ static class LoadDataMapTask extends LongRunningTask<Object> {
+
+ private final ModelerDbLoaderContext context;
+
+ public LoadDataMapTask(JFrame frame, String title, ModelerDbLoaderContext context) {
+ super(frame, title);
+ setMinValue(0);
+ setMaxValue(10);
+ this.context = context;
+ }
+
+ @Override
+ protected void execute() {
+ context.setStatusNote("Preparing...");
+ try {
+ createAction().execute(context.getConfig());
+ } catch (Exception e) {
+ context.processException(e, "Error importing database schema.");
+ }
+ ProjectUtil.cleanObjMappings(context.getDataMap());
+ }
+
+ private DbImportAction createAction() {
+ Injector injector = DIBootstrap.createInjector(new DbSyncModule(),
+ new ToolsModule(LOGGER),
+ new DbImportModule(),
+ new ModelerDbImportModule(context));
+ return injector.getInstance(DbImportAction.class);
+ }
+
+ @Override
+ protected String getCurrentNote() {
+ return context.getStatusNote();
+ }
+
+ @Override
+ protected int getCurrentValue() {
+ return getMinValue();
+ }
+
+ @Override
+ protected boolean isIndeterminate() {
+ return true;
+ }
+
+ @Override
+ public boolean isCanceled() {
+ return context.isStopping();
+ }
+
+ @Override
+ public void setCanceled(boolean canceled) {
+ if (canceled) {
+ context.setStatusNote("Canceling..");
+ }
+ context.setStopping(canceled);
+ }
+ }
+
}
\ No newline at end of file
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/DbImportProjectSaver.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/DbImportProjectSaver.java
index de80e6ade..0ddb93360 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/DbImportProjectSaver.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/DbImportProjectSaver.java
@@ -18,12 +18,11 @@
****************************************************************/
package org.apache.cayenne.modeler.dbimport;
-import org.apache.cayenne.configuration.ConfigurationNameMapper;
-import org.apache.cayenne.modeler.event.model.DataMapEvent;
import org.apache.cayenne.di.Inject;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.event.MapEvent;
import org.apache.cayenne.modeler.Application;
+import org.apache.cayenne.modeler.event.model.DataMapEvent;
import org.apache.cayenne.modeler.ui.project.ProjectController;
import org.apache.cayenne.project.Project;
import org.apache.cayenne.project.ProjectSaver;
@@ -31,13 +30,10 @@ import org.apache.cayenne.resource.Resource;
public class DbImportProjectSaver implements ProjectSaver {
- private ConfigurationNameMapper nameMapper;
-
private ProjectController projectController;
- public DbImportProjectSaver(@Inject ProjectController projectController, @Inject ConfigurationNameMapper nameMapper) {
+ public DbImportProjectSaver(@Inject ProjectController projectController) {
this.projectController = projectController;
- this.nameMapper = nameMapper;
}
@Override
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/LoadDataMapTask.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/LoadDataMapTask.java
deleted file mode 100644
index 001094aa9..000000000
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/LoadDataMapTask.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- ****************************************************************/
-
-package org.apache.cayenne.modeler.dbimport;
-
-import javax.swing.JFrame;
-
-import org.apache.cayenne.dbsync.DbSyncModule;
-import org.apache.cayenne.di.DIBootstrap;
-import org.apache.cayenne.di.Injector;
-import org.apache.cayenne.modeler.util.LongRunningTask;
-import org.apache.cayenne.modeler.util.ProjectUtil;
-import org.apache.cayenne.dbsync.reverse.configuration.ToolsModule;
-import org.apache.cayenne.dbsync.reverse.dbimport.DbImportAction;
-import org.apache.cayenne.dbsync.reverse.dbimport.DbImportModule;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * @since 4.0
- */
-final public class LoadDataMapTask extends LongRunningTask {
-
- private static final Logger LOGGER = LoggerFactory.getLogger(LoadDataMapTask.class);
-
- private DbLoaderContext context;
-
- public LoadDataMapTask(JFrame frame, String title, DbLoaderContext context) {
- super(frame, title);
- setMinValue(0);
- setMaxValue(10);
- this.context = context;
- }
-
- @Override
- protected void execute() {
- context.setStatusNote("Preparing...");
- try {
- createAction().execute(context.getConfig());
- } catch (Exception e) {
- context.processException(e, "Error importing database schema.");
- }
- ProjectUtil.cleanObjMappings(context.getDataMap());
- }
-
- private DbImportAction createAction() {
- Injector injector = DIBootstrap.createInjector(new DbSyncModule(),
- new ToolsModule(LOGGER),
- new DbImportModule(),
- new ModelerSyncModule(context));
- return injector.getInstance(DbImportAction.class);
- }
-
- @Override
- protected String getCurrentNote() {
- return context.getStatusNote();
- }
-
- @Override
- protected int getCurrentValue() {
- return getMinValue();
- }
-
- @Override
- protected boolean isIndeterminate() {
- return true;
- }
-
- @Override
- public boolean isCanceled() {
- return context.isStopping();
- }
-
- @Override
- public void setCanceled(boolean canceled) {
- if (canceled) {
- context.setStatusNote("Canceling..");
- }
- context.setStopping(canceled);
- }
-}
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/ModelerSyncModule.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/ModelerDbImportModule.java
similarity index 79%
rename from modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/ModelerSyncModule.java
rename to modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/ModelerDbImportModule.java
index e8ceb4577..6b48388cb 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/ModelerSyncModule.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/ModelerDbImportModule.java
@@ -26,19 +26,19 @@ import org.apache.cayenne.modeler.ui.project.ProjectController;
import org.apache.cayenne.project.ProjectSaver;
import org.apache.cayenne.dbsync.reverse.dbimport.DbImportAction;
-class ModelerSyncModule implements Module {
+public class ModelerDbImportModule implements Module {
- private DbLoaderContext dbLoaderContext;
+ private final ModelerDbLoaderContext loaderContext;
- ModelerSyncModule(DbLoaderContext dbLoaderHelper) {
- this.dbLoaderContext = dbLoaderHelper;
+ public ModelerDbImportModule(ModelerDbLoaderContext dbLoaderHelper) {
+ this.loaderContext = dbLoaderHelper;
}
@Override
public void configure(Binder binder) {
- binder.bind(ProjectController.class).toInstance(dbLoaderContext.getProjectController());
+ binder.bind(ProjectController.class).toInstance(loaderContext.getProjectController());
binder.bind(ProjectSaver.class).to(DbImportProjectSaver.class);
binder.bind(DbImportAction.class).to(ModelerDbImportAction.class);
- binder.bind(DataMap.class).toInstance(dbLoaderContext.getDataMap());
+ binder.bind(DataMap.class).toInstance(loaderContext.getDataMap());
}
}
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/DbLoaderContext.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/ModelerDbLoaderContext.java
similarity index 94%
rename from modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/DbLoaderContext.java
rename to modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/ModelerDbLoaderContext.java
index 515f620b2..60917ad58 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/DbLoaderContext.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/ModelerDbLoaderContext.java
@@ -41,9 +41,9 @@ import java.sql.Connection;
/**
* @since 4.0
*/
-public class DbLoaderContext {
+public class ModelerDbLoaderContext {
- private static final Logger LOGGER = LoggerFactory.getLogger(DbLoaderContext.class);
+ private static final Logger LOGGER = LoggerFactory.getLogger(ModelerDbLoaderContext.class);
private final ProjectController projectController;
private final DataMap dataMap;
@@ -55,7 +55,7 @@ public class DbLoaderContext {
private String loadStatusNote;
private volatile boolean isInterrupted;
- public DbLoaderContext(ProjectController projectController, DataChannelMetaData dataChannelMetaData, DataMap dataMap) {
+ public ModelerDbLoaderContext(ProjectController projectController, DataChannelMetaData dataChannelMetaData, DataMap dataMap) {
this.projectController = projectController;
this.dataChannelMetaData = dataChannelMetaData;
this.dataMap = dataMap;
@@ -73,7 +73,7 @@ public class DbLoaderContext {
this.config = config;
}
- DbImportConfiguration getConfig() {
+ public DbImportConfiguration getConfig() {
return config;
}
@@ -89,15 +89,15 @@ public class DbLoaderContext {
return stopping;
}
- void setStopping(boolean stopping) {
+ public void setStopping(boolean stopping) {
this.stopping = stopping;
}
- String getStatusNote() {
+ public String getStatusNote() {
return loadStatusNote;
}
- void setStatusNote(String loadStatusNote) {
+ public void setStatusNote(String loadStatusNote) {
this.loadStatusNote = loadStatusNote;
}
@@ -131,7 +131,7 @@ public class DbLoaderContext {
DbImportConfiguration config = new DbImportConfiguration() {
@Override
public DbLoaderDelegate createLoaderDelegate() {
- return new LoaderDelegate(DbLoaderContext.this);
+ return new ModelerDbLoaderDelegate(ModelerDbLoaderContext.this);
}
};
fillConfig(config, connectionInfo, reverseEngineering);
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/LoaderDelegate.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/ModelerDbLoaderDelegate.java
similarity index 92%
rename from modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/LoaderDelegate.java
rename to modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/ModelerDbLoaderDelegate.java
index 7aa88d36b..ad2249b3b 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/LoaderDelegate.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dbimport/ModelerDbLoaderDelegate.java
@@ -27,11 +27,11 @@ import org.apache.cayenne.map.event.EntityEvent;
import org.apache.cayenne.map.event.MapEvent;
import org.apache.cayenne.modeler.Application;
-final class LoaderDelegate extends DefaultDbLoaderDelegate {
+final class ModelerDbLoaderDelegate extends DefaultDbLoaderDelegate {
- private final DbLoaderContext context;
+ private final ModelerDbLoaderContext context;
- LoaderDelegate(DbLoaderContext dbLoaderContext) {
+ ModelerDbLoaderDelegate(ModelerDbLoaderContext dbLoaderContext) {
this.context = dbLoaderContext;
}
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/DbImportView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/DbImportView.java
index 3261c4511..d34424620 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/DbImportView.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/datamap/dbimport/DbImportView.java
@@ -18,30 +18,24 @@
****************************************************************/
package org.apache.cayenne.modeler.ui.project.editor.datamap.dbimport;
-import javax.swing.AbstractAction;
-import javax.swing.ImageIcon;
-import javax.swing.JButton;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JProgressBar;
-import javax.swing.border.EmptyBorder;
-import java.awt.BorderLayout;
-import java.awt.FlowLayout;
-import java.awt.event.ActionEvent;
-
import com.jgoodies.forms.builder.DefaultFormBuilder;
import com.jgoodies.forms.layout.FormLayout;
import org.apache.cayenne.dbsync.reverse.dbimport.ReverseEngineering;
import org.apache.cayenne.map.DataMap;
-import org.apache.cayenne.modeler.ui.project.ProjectController;
import org.apache.cayenne.modeler.action.LoadDbSchemaAction;
import org.apache.cayenne.modeler.action.ReverseEngineeringAction;
+import org.apache.cayenne.modeler.ui.project.ProjectController;
+import org.apache.cayenne.modeler.ui.project.editor.datamap.dbimport.tree.ColorTreeRenderer;
import org.apache.cayenne.modeler.ui.project.editor.datamap.dbimport.tree.DbImportTreeNode;
import org.apache.cayenne.modeler.ui.project.editor.datamap.dbimport.tree.TransferableNode;
-import org.apache.cayenne.modeler.ui.project.editor.datamap.dbimport.tree.ColorTreeRenderer;
import org.apache.cayenne.modeler.util.CayenneAction;
import org.apache.cayenne.modeler.util.ModelerUtil;
+import javax.swing.*;
+import javax.swing.border.EmptyBorder;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+
/**
* @since 4.1
*/
@@ -63,7 +57,7 @@ public class DbImportView extends JPanel {
private JProgressBar reverseEngineeringProgress;
private CayenneAction.CayenneToolbarButton loadDbSchemaButton;
- private ProjectController projectController;
+ private final ProjectController projectController;
private boolean initFromModel;