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 58aa607e5770b56b93a5cc3c543bb290adc1b877
Author: Andrus Adamchik <[email protected]>
AuthorDate: Sun May 17 14:55:26 2026 -0400

    CAY-2945 CayenneModeler universal "main"
    
    cleanup
---
 modeler/cayenne-modeler-generic/pom.xml            | 18 -----------
 modeler/cayenne-modeler-mac/pom.xml                | 22 --------------
 .../src/main/resources/README.txt                  |  6 ++--
 modeler/cayenne-modeler-win/pom.xml                | 20 -------------
 .../main/java/org/apache/cayenne/modeler/Main.java | 13 ++++----
 .../{osx/OSXVersion.java => mac/MacOSVersion.java} | 20 ++++++-------
 .../{osx/OSXPanelUI.java => mac/MacPanelUI.java}   | 10 +++----
 .../MacPlatformInitializer.java}                   | 12 ++++----
 .../MacToolBarSeparatorUI.java}                    |  8 ++---
 .../modeler/service/os/OperatingSystem.java        | 26 +++++++---------
 .../modeler/toolkit/text/style/TextSyntax.java     |  2 +-
 .../cayenne/modeler/toolkit/url/UrlOpener.java     |  4 +--
 .../org/apache/cayenne/modeler/ui/MainFrame.java   |  2 +-
 .../java/org/apache/cayenne/modeler/MainTest.java} | 35 ++++++++--------------
 14 files changed, 61 insertions(+), 137 deletions(-)

diff --git a/modeler/cayenne-modeler-generic/pom.xml 
b/modeler/cayenne-modeler-generic/pom.xml
index 6a5576a32..ef6c6d87a 100644
--- a/modeler/cayenne-modeler-generic/pom.xml
+++ b/modeler/cayenne-modeler-generic/pom.xml
@@ -30,24 +30,6 @@
                        <artifactId>cayenne-modeler</artifactId>
                        <version>${project.version}</version>
                </dependency>
-
-               <!-- adding cayenne runtime dependencies explicitly, as they 
are marked 
-                       as "provided" in the modeler pom and won't be included 
in the jar -->
-               <dependency>
-                       <groupId>org.apache.cayenne</groupId>
-                       <artifactId>cayenne</artifactId>
-                       <version>${project.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.apache.cayenne</groupId>
-                       <artifactId>cayenne-project</artifactId>
-                       <version>${project.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.apache.cayenne.modeler</groupId>
-                       <artifactId>cayenne-wocompat</artifactId>
-                       <version>${project.version}</version>
-               </dependency>
        </dependencies>
 
        <profiles>
diff --git a/modeler/cayenne-modeler-mac/pom.xml 
b/modeler/cayenne-modeler-mac/pom.xml
index d9586c75f..fe6ce14df 100644
--- a/modeler/cayenne-modeler-mac/pom.xml
+++ b/modeler/cayenne-modeler-mac/pom.xml
@@ -37,28 +37,6 @@
                        <artifactId>cayenne-modeler</artifactId>
                        <version>${project.version}</version>
                </dependency>
-
-               <!--
-                       adding cayenne runtime dependencies explicitly, 
-                       as they are marked as "provided" in the modeler pom
-                       and won't be included in the jar 
-               -->
-               <dependency>
-                       <groupId>org.apache.cayenne</groupId>
-                       <artifactId>cayenne</artifactId>
-                       <version>${project.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.apache.cayenne</groupId>
-                       <artifactId>cayenne-project</artifactId>
-                       <version>${project.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.apache.cayenne.modeler</groupId>
-                       <artifactId>cayenne-wocompat</artifactId>
-                       <version>${project.version}</version>
-               </dependency>
-
        </dependencies>
 
     <profiles>
diff --git a/modeler/cayenne-modeler-mac/src/main/resources/README.txt 
b/modeler/cayenne-modeler-mac/src/main/resources/README.txt
index eaee13e73..924c054ef 100644
--- a/modeler/cayenne-modeler-mac/src/main/resources/README.txt
+++ b/modeler/cayenne-modeler-mac/src/main/resources/README.txt
@@ -1,11 +1,9 @@
-
-
 MAC OS X INSTALLATION
 ---------------------
 
-1. "CayenneModeler.app" is the GUI modeler. Drag it to a folder where you 
+1. "CayenneModeler.app" is the GUI ORM modeler. Drag it to a folder where you
    normally put your applications (e.g. in the "Applications" folder). It 
-   requires Java 8 or newer.
+   requires Java 21 or newer.
    
 2. "cayenne-xxx" folder contains Cayenne documentation and runtime libraries. 
Drag it
    anywhere you would normally place such things.
\ No newline at end of file
diff --git a/modeler/cayenne-modeler-win/pom.xml 
b/modeler/cayenne-modeler-win/pom.xml
index b4c05d7e8..a33a3350f 100644
--- a/modeler/cayenne-modeler-win/pom.xml
+++ b/modeler/cayenne-modeler-win/pom.xml
@@ -38,26 +38,6 @@
                        <artifactId>cayenne-modeler</artifactId>
                        <version>${project.version}</version>
                </dependency>
-               <!--
-                       adding cayenne runtime dependencies explicitly, 
-                       as they are marked as "provided" in the modeler pom
-                       and won't be included in the jar 
-               -->
-               <dependency>
-                       <groupId>org.apache.cayenne</groupId>
-                       <artifactId>cayenne</artifactId>
-                       <version>${project.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.apache.cayenne</groupId>
-                       <artifactId>cayenne-project</artifactId>
-                       <version>${project.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.apache.cayenne.modeler</groupId>
-                       <artifactId>cayenne-wocompat</artifactId>
-                       <version>${project.version}</version>
-               </dependency>
        </dependencies>
 
        <build>
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 52fb46965..40aadf424 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
@@ -25,15 +25,16 @@ import 
org.apache.cayenne.modeler.platform.UIPlatformInitializer;
 public final class Main {
 
     public static void main(String[] args) {
-        Application.launch(args, loadPlatformInitializer());
+        Application.launch(args, loadPlatformInitializer(OperatingSystem.os));
     }
 
-    private static UIPlatformInitializer loadPlatformInitializer() {
-        String fqn = switch (OperatingSystem.getOS()) {
-            case MAC_OS_X -> 
"org.apache.cayenne.modeler.platform.osx.OSXPlatformInitializer";
-            case WINDOWS  -> 
"org.apache.cayenne.modeler.platform.win.WinPlatformInitializer";
-            case OTHER    -> 
"org.apache.cayenne.modeler.platform.generic.GenericPlatformInitializer";
+    static UIPlatformInitializer loadPlatformInitializer(OperatingSystem os) {
+        String fqn = switch (os) {
+            case MAC_OS -> 
"org.apache.cayenne.modeler.platform.mac.MacPlatformInitializer";
+            case WINDOWS -> 
"org.apache.cayenne.modeler.platform.win.WinPlatformInitializer";
+            case OTHER -> 
"org.apache.cayenne.modeler.platform.generic.GenericPlatformInitializer";
         };
+
         try {
             return (UIPlatformInitializer) 
Class.forName(fqn).getDeclaredConstructor().newInstance();
         } catch (ReflectiveOperationException e) {
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/osx/OSXVersion.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/mac/MacOSVersion.java
similarity index 79%
rename from 
modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/osx/OSXVersion.java
rename to 
modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/mac/MacOSVersion.java
index 2af3a8c50..983e697d8 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/osx/OSXVersion.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/mac/MacOSVersion.java
@@ -17,21 +17,21 @@
  *  under the License.
  ****************************************************************/
 
-package org.apache.cayenne.modeler.platform.osx;
+package org.apache.cayenne.modeler.platform.mac;
 
 /**
  * @since 4.2
  */
-public class OSXVersion {
+public class MacOSVersion {
 
-    public static final OSXVersion UNKNOWN = new OSXVersion(-1, -1);
-    public static final OSXVersion CATALINA = new OSXVersion(10, 15);
-    public static final OSXVersion BIG_SUR = new OSXVersion(10, 16);
+    public static final MacOSVersion UNKNOWN = new MacOSVersion(-1, -1);
+    public static final MacOSVersion CATALINA = new MacOSVersion(10, 15);
+    public static final MacOSVersion BIG_SUR = new MacOSVersion(10, 16);
 
     private final int major;
     private final int minor;
 
-    public static OSXVersion fromSystemProperties() {
+    public static MacOSVersion fromSystemProperties() {
         // sanity check in case this code executed not on macOS
         String osName = System.getProperty("os.name").toLowerCase();
         if(!osName.contains("mac")) {
@@ -46,23 +46,23 @@ public class OSXVersion {
         try {
             int major = Integer.parseInt(osVersionComponents[0]);
             int minor = Integer.parseInt(osVersionComponents[1]);
-            return new OSXVersion(major, minor);
+            return new MacOSVersion(major, minor);
         } catch (Exception ex) {
             return UNKNOWN;
         }
     }
 
-    public OSXVersion(int major, int minor) {
+    public MacOSVersion(int major, int minor) {
         this.major = major;
         this.minor = minor;
     }
 
-    public boolean gt(OSXVersion version) {
+    public boolean gt(MacOSVersion version) {
         return getMajor() >= version.getMajor()
                 && getMinor() > version.getMinor();
     }
 
-    public boolean eq(OSXVersion version) {
+    public boolean eq(MacOSVersion version) {
         return getMajor() == version.getMajor()
                 && getMinor() == version.getMinor();
     }
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/osx/OSXPanelUI.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/mac/MacPanelUI.java
similarity index 90%
rename from 
modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/osx/OSXPanelUI.java
rename to 
modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/mac/MacPanelUI.java
index c8dd1ec16..70d0e5a0e 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/osx/OSXPanelUI.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/mac/MacPanelUI.java
@@ -17,7 +17,7 @@
  *  under the License.
  ****************************************************************/
 
-package org.apache.cayenne.modeler.platform.osx;
+package org.apache.cayenne.modeler.platform.mac;
 
 import org.apache.cayenne.modeler.ui.SearchPanel;
 
@@ -26,11 +26,11 @@ import javax.swing.plaf.ComponentUI;
 import javax.swing.plaf.basic.BasicPanelUI;
 import java.awt.*;
 
-public class OSXPanelUI extends BasicPanelUI {
+public class MacPanelUI extends BasicPanelUI {
 
     private static final Color BACKGROUND = new Color(0xEEEEEE);
 
-    private static final OSXPanelUI INSTANCE;
+    private static final MacPanelUI INSTANCE;
 
     static {
         BasicPanelUI delegate;
@@ -43,12 +43,12 @@ public class OSXPanelUI extends BasicPanelUI {
             delegate = new BasicPanelUI();
         }
 
-        INSTANCE = new OSXPanelUI(delegate);
+        INSTANCE = new MacPanelUI(delegate);
     }
 
     private BasicPanelUI delegate;
 
-    private OSXPanelUI(BasicPanelUI delegate) {
+    private MacPanelUI(BasicPanelUI delegate) {
         this.delegate = delegate;
     }
 
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/osx/OSXPlatformInitializer.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/mac/MacPlatformInitializer.java
similarity index 94%
rename from 
modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/osx/OSXPlatformInitializer.java
rename to 
modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/mac/MacPlatformInitializer.java
index 56d7457ff..4146ad6c9 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/osx/OSXPlatformInitializer.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/mac/MacPlatformInitializer.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  ****************************************************************/
-package org.apache.cayenne.modeler.platform.osx;
+package org.apache.cayenne.modeler.platform.mac;
 
 import org.apache.cayenne.modeler.Application;
 import org.apache.cayenne.modeler.service.action.GlobalActions;
@@ -32,7 +32,7 @@ import java.awt.*;
 import java.util.HashSet;
 import java.util.Set;
 
-public class OSXPlatformInitializer implements UIPlatformInitializer {
+public class MacPlatformInitializer implements UIPlatformInitializer {
 
     @Override
     public void initLookAndFeel() {
@@ -42,8 +42,8 @@ public class OSXPlatformInitializer implements 
UIPlatformInitializer {
         Color darkGrey = new Color(225, 225, 225);
         Border darkBorder = BorderFactory.createLineBorder(darkGrey);
 
-        UIManager.put("ToolBarSeparatorUI", 
OSXToolBarSeparatorUI.class.getName());
-        UIManager.put("PanelUI", OSXPanelUI.class.getName());
+        UIManager.put("ToolBarSeparatorUI", 
MacToolBarSeparatorUI.class.getName());
+        UIManager.put("PanelUI", MacPanelUI.class.getName());
         // next two is custom-made for Cayenne's MainToolBar
         UIManager.put("ToolBar.background", lightGrey);
         UIManager.put("MainToolBar.background", lightGrey);
@@ -69,8 +69,8 @@ public class OSXPlatformInitializer implements 
UIPlatformInitializer {
         UIManager.put("CheckBoxHeader.border", 
BorderFactory.createEmptyBorder(0, 9, 0, 0));
 
         // MacOS BigSur needs additional style tweaking for the tabs active 
state
-        OSXVersion version = OSXVersion.fromSystemProperties();
-        if (version.gt(OSXVersion.CATALINA)) {
+        MacOSVersion version = MacOSVersion.fromSystemProperties();
+        if (version.gt(MacOSVersion.CATALINA)) {
             UIManager.put("TabbedPane.selectedTabTitlePressedColor", 
Color.BLACK);
             UIManager.put("TabbedPane.selectedTabTitleNormalColor", 
Color.BLACK);
             UIManager.put("TabbedPane.selectedTabTitleShadowDisabledColor", 
new Color(0, 0, 0, 0));
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/osx/OSXToolBarSeparatorUI.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/mac/MacToolBarSeparatorUI.java
similarity index 92%
rename from 
modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/osx/OSXToolBarSeparatorUI.java
rename to 
modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/mac/MacToolBarSeparatorUI.java
index 7aeda95a6..1348dd354 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/osx/OSXToolBarSeparatorUI.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/platform/mac/MacToolBarSeparatorUI.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  ****************************************************************/
-package org.apache.cayenne.modeler.platform.osx;
+package org.apache.cayenne.modeler.platform.mac;
 
 import java.awt.Dimension;
 import java.awt.Graphics;
@@ -31,13 +31,13 @@ import javax.swing.plaf.basic.BasicToolBarSeparatorUI;
  *
  * @since 4.0
  */
-public class OSXToolBarSeparatorUI extends BasicToolBarSeparatorUI {
+public class MacToolBarSeparatorUI extends BasicToolBarSeparatorUI {
 
-    private OSXToolBarSeparatorUI() {
+    private MacToolBarSeparatorUI() {
     }
 
     public static ComponentUI createUI(JComponent c) {
-        return new OSXToolBarSeparatorUI();
+        return new MacToolBarSeparatorUI();
     }
 
     public void paint( Graphics g, JComponent c ) {
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/service/os/OperatingSystem.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/service/os/OperatingSystem.java
index b556738a7..b7c7f71b4 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/service/os/OperatingSystem.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/service/os/OperatingSystem.java
@@ -24,26 +24,20 @@ package org.apache.cayenne.modeler.service.os;
  */
 public enum OperatingSystem {
 
-    MAC_OS_X, WINDOWS, OTHER;
+    MAC_OS, WINDOWS, OTHER;
+
+    public static final OperatingSystem os;
 
-    private static final OperatingSystem os;
     static {
-        String osName = System.getProperty("os.name");
 
-        if (osName == null) {
-            os = OTHER;
+        String osName = System.getProperty("os.name").toLowerCase();
+
+        if (osName.startsWith("win")) {
+            os = WINDOWS;
+        } else if (osName.startsWith("mac")) {
+            os = MAC_OS;
         } else {
-            if (osName.startsWith("Windows")) {
-                os = WINDOWS;
-            } else if (osName.startsWith("Mac OS X")) {
-                os = MAC_OS_X;
-            } else {
-                os = OTHER;
-            }
+            os = OTHER;
         }
     }
-
-    public static OperatingSystem getOS() {
-        return os;
-    }
 }
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/text/style/TextSyntax.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/text/style/TextSyntax.java
index c52d05a95..8353c1f4c 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/text/style/TextSyntax.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/text/style/TextSyntax.java
@@ -25,7 +25,7 @@ import java.awt.Font;
 
 public interface TextSyntax {
 
-    Font DEFAULT_FONT = new Font(OperatingSystem.getOS() == 
OperatingSystem.WINDOWS
+    Font DEFAULT_FONT = new Font(OperatingSystem.os == OperatingSystem.WINDOWS
             ? "Courier New"
             : "Courier", Font.PLAIN, 14);
 
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/url/UrlOpener.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/url/UrlOpener.java
index 0402ede3c..4f9882089 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/url/UrlOpener.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/url/UrlOpener.java
@@ -35,10 +35,10 @@ public class UrlOpener {
             if (Desktop.isDesktopSupported() && 
Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) {
                 Desktop.getDesktop().browse(new URI(url));
                 // failover to a platform-specific hacks
-            } else if (OperatingSystem.getOS() == OperatingSystem.WINDOWS) {
+            } else if (OperatingSystem.os == OperatingSystem.WINDOWS) {
                 String cmd = "rundll32 url.dll,FileProtocolHandler " + url;
                 Runtime.getRuntime().exec(cmd);
-            } else if (OperatingSystem.getOS() == OperatingSystem.MAC_OS_X) {
+            } else if (OperatingSystem.os == OperatingSystem.MAC_OS) {
                 String cmd = "open " + url;
                 Runtime.getRuntime().exec(cmd);
             } else { // assume Unix or Linux
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/MainFrame.java
 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/MainFrame.java
index d86d84824..2ea845d87 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/MainFrame.java
+++ 
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/MainFrame.java
@@ -225,7 +225,7 @@ public class MainFrame extends AppFrame {
         });
 
         // Register a hook to save the window position when quit via the app 
menu. This is in macOS only.
-        if (OperatingSystem.getOS() == OperatingSystem.MAC_OS_X) {
+        if (OperatingSystem.os == OperatingSystem.MAC_OS) {
             Runnable runner = session::saveSelectionToPrefs;
             Runtime.getRuntime().addShutdownHook(new Thread(runner, "Window 
Prefs Hook"));
         }
diff --git 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/text/style/TextSyntax.java
 
b/modeler/cayenne-modeler/src/test/java/org/apache/cayenne/modeler/MainTest.java
similarity index 62%
copy from 
modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/text/style/TextSyntax.java
copy to 
modeler/cayenne-modeler/src/test/java/org/apache/cayenne/modeler/MainTest.java
index c52d05a95..18869bfa5 100644
--- 
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/toolkit/text/style/TextSyntax.java
+++ 
b/modeler/cayenne-modeler/src/test/java/org/apache/cayenne/modeler/MainTest.java
@@ -16,31 +16,22 @@
  *  specific language governing permissions and limitations
  *  under the License.
  ****************************************************************/
-package org.apache.cayenne.modeler.toolkit.text.style;
 
-import org.apache.cayenne.modeler.service.os.OperatingSystem;
-
-import java.awt.Color;
-import java.awt.Font;
-
-public interface TextSyntax {
-
-    Font DEFAULT_FONT = new Font(OperatingSystem.getOS() == 
OperatingSystem.WINDOWS
-            ? "Courier New"
-            : "Courier", Font.PLAIN, 14);
+package org.apache.cayenne.modeler;
 
-    Color DEFAULT_COLOR = Color.black;
-    String COMMENT_TEXT = "(?:/\\*(?:[^*]|(?:\\*+[^*/]))*\\*+/)|(?://.*)";
-    String COMMENT_TEXT_START = "/\\*.?";
-    String NUMBER_TEXT = "\\d+";
-
-    String[] keywords();
-
-    String[] keywords2();
+import org.apache.cayenne.modeler.platform.UIPlatformInitializer;
+import org.apache.cayenne.modeler.service.os.OperatingSystem;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.EnumSource;
 
-    String[] types();
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
-    String[] operators();
+public class MainTest {
 
-    String contentType();
+    @ParameterizedTest
+    @EnumSource(OperatingSystem.class)
+    public void loadPlatformInitializer_resolvesValidClass(OperatingSystem os) 
{
+        UIPlatformInitializer initializer = Main.loadPlatformInitializer(os);
+        assertNotNull(initializer, "No initializer resolved for " + os);
+    }
 }

Reply via email to