001/* 002 * GeoAPI - Java interfaces for OGC/ISO standards 003 * http://www.geoapi.org 004 * 005 * Copyright (C) 2011-2019 Open Geospatial Consortium, Inc. 006 * All Rights Reserved. http://www.opengeospatial.org/ogc/legal 007 * 008 * Permission to use, copy, and modify this software and its documentation, with 009 * or without modification, for any purpose and without fee or royalty is hereby 010 * granted, provided that you include the following on ALL copies of the software 011 * and documentation or portions thereof, including modifications, that you make: 012 * 013 * 1. The full text of this NOTICE in a location viewable to users of the 014 * redistributed or derivative work. 015 * 2. Notice of any changes or modifications to the OGC files, including the 016 * date changes were made. 017 * 018 * THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE 019 * NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 020 * TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT 021 * THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY 022 * PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. 023 * 024 * COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR 025 * CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION. 026 * 027 * The name and trademarks of copyright holders may NOT be used in advertising or 028 * publicity pertaining to the software without specific, written prior permission. 029 * Title to copyright in this software and any associated documentation will at all 030 * times remain with copyright holders. 031 */ 032package org.opengis.test.runner; 033 034import java.io.Console; 035import java.io.PrintWriter; 036import java.awt.EventQueue; 037import javax.swing.UIManager; 038 039 040/** 041 * Provides the entry point for running the {@code geoapi-conformance} tests. 042 * 043 * @author Martin Desruisseaux (Geomatys) 044 * @version 3.1 045 * @since 3.1 046 */ 047public final class Main { 048 /** 049 * Do not allow instantiation of this class. 050 */ 051 private Main() { 052 } 053 054 /** 055 * The application entry point. Current implementation {@linkplain #startSwingApplication() 056 * starts the Swing application}. Future versions may provides different alternatives based 057 * on the command-line arguments. 058 * 059 * @param arguments must be an empty string in current version. 060 * Future versions may accept some command-line arguments. 061 */ 062 @SuppressWarnings("UseOfSystemOutOrSystemErr") 063 public static void main(final String[] arguments) { 064 if (arguments.length == 0) { 065 try { 066 UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 067 } catch (Exception e) { 068 // Ignore - keep the default L&F. 069 } 070 startSwingApplication(); 071 } else { 072 final Console console = System.console(); 073 final PrintWriter out = (console != null) ? console.writer() : new PrintWriter(System.out, true); 074 out.println("Usage: java -jar geoapi-conformance.jar"); 075 out.flush(); 076 } 077 } 078 079 /** 080 * Starts the swing application. 081 */ 082 public static void startSwingApplication() { 083 final MainFrame frame = new MainFrame(); 084 frame.setVisible(true); 085 EventQueue.invokeLater(frame); 086 } 087}