public static void main()

in src/main/java/org/apache/logging/log4j/jmx/gui/ClientGui.java [268:310]


    public static void main(final String[] args) throws Exception {
        if (args.length < 1) {
            usage();
            return;
        }
        String serviceUrl = args[0];
        if (!serviceUrl.startsWith("service:jmx")) {
            serviceUrl = "service:jmx:rmi:///jndi/rmi://" + args[0] + "/jmxrmi";
        }
        final JMXServiceURL url = new JMXServiceURL(serviceUrl);
        final Properties props = System.getProperties();
        final Map<String, String> paramMap = new HashMap<>(props.size());
        for (final String key : props.stringPropertyNames()) {
            paramMap.put(key, props.getProperty(key));
        }
        @SuppressWarnings("BanJNDI")
        final JMXConnector connector = JMXConnectorFactory.connect(url, paramMap);
        final Client client = new Client(connector);
        final String title = "Log4j JMX Client - " + url;

        SwingUtilities.invokeLater(() -> {
            installLookAndFeel();
            try {
                final ClientGui gui = new ClientGui(client);
                final JFrame frame = new JFrame(title);
                frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
                frame.getContentPane().add(gui, BorderLayout.CENTER);
                frame.pack();
                frame.setVisible(true);
            } catch (final Exception ex) {
                // if console is visible, print error so that
                // the stack trace remains visible after error dialog is
                // closed
                ex.printStackTrace();

                // show error in dialog: there may not be a console window
                // visible
                final StringWriter sr = new StringWriter();
                ex.printStackTrace(new PrintWriter(sr));
                JOptionPane.showMessageDialog(null, sr.toString(), "Error", JOptionPane.ERROR_MESSAGE);
            }
        });
    }