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;