MainApp.java

1
package com.jsql;
2
3
import com.jsql.model.InjectionModel;
4
import com.jsql.util.LogLevelUtil;
5
import com.jsql.view.swing.JFrameView;
6
import com.jsql.view.swing.util.MediatorHelper;
7
import com.jsql.view.swing.util.UiUtil;
8
import org.apache.logging.log4j.Level;
9
import org.apache.logging.log4j.LogManager;
10
import org.apache.logging.log4j.Logger;
11
12
import java.awt.*;
13
14
/**
15
 * Main class of the application and called from the .jar.
16
 * This class set the general environment of execution and start the software.
17
 */
18
public class MainApp {
19
    
20
    private static final Logger LOGGER = LogManager.getRootLogger();
21
    private static final InjectionModel INJECTION_MODEL;  // required to load preferences first
22
    
23
    static {
24
        System.setProperty("jdk.httpclient.allowRestrictedHeaders", "connection,content-length,expect,host,upgrade");
25
        System.setProperty("log4j2.formatMsgNoLookups", "true");
26
27
        if (GraphicsEnvironment.isHeadless()) {
28
            LOGGER.log(Level.ERROR, "Headless runtime not supported, use default Java runtime instead");
29
            System.exit(1);
30
        }
31
32
        INJECTION_MODEL = new InjectionModel();
33
        MainApp.INJECTION_MODEL.getMediatorUtils().getPreferencesUtil().loadSavedPreferences();
34
35
        var nameTheme = MainApp.INJECTION_MODEL.getMediatorUtils().getPreferencesUtil().getThemeFlatLafName();
36
        UiUtil.applyTheme(nameTheme);  // required init but not enough, reapplied next
37
        MainApp.apply4K();
38
    }
39
40
    private MainApp() {
41
        // nothing
42
    }
43
    
44
    /**
45
     * Application starting point.
46
     * @param args CLI parameters (not used)
47
     */
48
    public static void main(String[] args) {
49 1 1. main : removed call to com/jsql/view/swing/util/MediatorHelper::register → NO_COVERAGE
        MediatorHelper.register(MainApp.INJECTION_MODEL);
50
51 1 1. main : removed call to com/jsql/util/ExceptionUtil::setUncaughtExceptionHandler → NO_COVERAGE
        MainApp.INJECTION_MODEL.getMediatorUtils().getExceptionUtil().setUncaughtExceptionHandler();
52 1 1. main : removed call to com/jsql/util/ProxyUtil::initProxy → NO_COVERAGE
        MainApp.INJECTION_MODEL.getMediatorUtils().getProxyUtil().initProxy();
53 1 1. main : removed call to com/jsql/util/AuthenticationUtil::setKerberosCifs → NO_COVERAGE
        MainApp.INJECTION_MODEL.getMediatorUtils().getAuthenticationUtil().setKerberosCifs();
54
55
        try {
56
            var view = new JFrameView(MainApp.INJECTION_MODEL);
57 1 1. main : removed call to com/jsql/view/swing/util/MediatorHelper::register → NO_COVERAGE
            MediatorHelper.register(view);
58 1 1. main : removed call to com/jsql/model/InjectionModel::subscribe → NO_COVERAGE
            MainApp.INJECTION_MODEL.subscribe(view.getSubscriber());
59
        } catch (HeadlessException e) {
60
            LOGGER.log(LogLevelUtil.CONSOLE_JAVA, "HeadlessException, command line execution not supported: %s", e);
61
        } catch (AWTError e) {
62
            // Fix #22668: Assistive Technology not found
63
            LOGGER.log(LogLevelUtil.CONSOLE_JAVA, String.format(
64
                "Java Access Bridge missing or corrupt, check your access bridge definition in JDK_HOME/jre/lib/accessibility.properties: %s",
65
                e.getMessage()
66
            ), e);
67
        }
68
    }
69
70
    private static void apply4K() {  // required not in UiUtil before frame is set
71
        if (MainApp.INJECTION_MODEL.getMediatorUtils().getPreferencesUtil().is4K()) {
72
            System.setProperty("sun.java2d.uiScale", "2.5");  // jdk >= 9
73
        }
74
    }
75
}

Mutations

49

1.1
Location : main
Killed by : none
removed call to com/jsql/view/swing/util/MediatorHelper::register → NO_COVERAGE

51

1.1
Location : main
Killed by : none
removed call to com/jsql/util/ExceptionUtil::setUncaughtExceptionHandler → NO_COVERAGE

52

1.1
Location : main
Killed by : none
removed call to com/jsql/util/ProxyUtil::initProxy → NO_COVERAGE

53

1.1
Location : main
Killed by : none
removed call to com/jsql/util/AuthenticationUtil::setKerberosCifs → NO_COVERAGE

57

1.1
Location : main
Killed by : none
removed call to com/jsql/view/swing/util/MediatorHelper::register → NO_COVERAGE

58

1.1
Location : main
Killed by : none
removed call to com/jsql/model/InjectionModel::subscribe → NO_COVERAGE

Active mutators

Tests examined


Report generated by PIT 1.19.1