Ignore:
Timestamp:
2023-08-22T17:40:36+02:00 (17 months ago)
Author:
taylor.smock
Message:

Use jakarta.json instead of java.json

This also fixes various lint issues

File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/livegps/src/livegps/LiveGpsAcquirer.java

    r36120 r36122  
    1616import java.util.List;
    1717
    18 import javax.json.Json;
    19 import javax.json.JsonException;
    20 import javax.json.JsonNumber;
    21 import javax.json.JsonObject;
     18import jakarta.json.Json;
     19import jakarta.json.JsonException;
     20import jakarta.json.JsonNumber;
     21import jakarta.json.JsonObject;
     22import jakarta.json.JsonReader;
    2223
    2324import org.openstreetmap.josm.spi.preferences.Config;
     
    2829 */
    2930public class LiveGpsAcquirer implements Runnable {
    30     private String gpsdHost;
    31     private int gpsdPort;
     31    private final String gpsdHost;
     32    private final int gpsdPort;
    3233
    3334    private Socket gpsdSocket;
    3435    private BufferedReader gpsdReader;
    35     private boolean connected = false;
    36     private boolean shutdownFlag = false;
     36    private boolean connected;
     37    private boolean shutdownFlag;
    3738    private boolean JSONProtocol = true;
    38     private long skipTime = 0L;
    39     private int skipNum = 0;
     39    private long skipTime;
     40    private int skipNum;
    4041
    4142    private final List<PropertyChangeListener> propertyChangeListener = new ArrayList<>();
     
    122123    public void run() {
    123124        LiveGpsData oldGpsData = null;
    124         LiveGpsData gpsData = null;
     125        LiveGpsData gpsData;
    125126
    126127        shutdownFlag = false;
     
    131132                    connect();
    132133                } catch (IOException iox) {
     134                    Logging.trace(iox);
    133135                    fireGpsStatusChangeEvent(LiveGpsStatus.GpsStatus.CONNECTION_FAILED, tr("Connection Failed"));
    134136                    try {
    135137                        Thread.sleep(1000);
    136                     } catch (InterruptedException ignore) {
    137                         Logging.trace(ignore);
     138                    } catch (InterruptedException interruptedException) {
     139                        Logging.trace(interruptedException);
     140                        Thread.currentThread().interrupt();
    138141                    }
    139142                }
     
    155158                    throw new IOException();
    156159
    157                 if (JSONProtocol == true)
     160                if (JSONProtocol)
    158161                    gpsData = parseJSON(line);
    159162                else
     
    173176                try {
    174177                    Thread.sleep(1000);
    175                 } catch (InterruptedException ignore) {
    176                     Logging.trace(ignore);
     178                } catch (InterruptedException interruptedException) {
     179                    Logging.trace(interruptedException);
     180                    Thread.currentThread().interrupt();
    177181                }
    178182                // send warning to layer
     
    219223        }
    220224
    221         if (gpsdSocket == null || gpsdSocket.isConnected() == false) {
     225        if (gpsdSocket == null || !gpsdSocket.isConnected()) {
    222226            if (skipTime == 0)
    223227                skipTime = System.currentTimeMillis()+60000;
     
    237241            return;
    238242
    239         try {
    240             greeting = Json.createReader(new StringReader(line)).readObject();
     243        try (JsonReader reader = Json.createReader(new StringReader(line))) {
     244            greeting = reader.readObject();
    241245            type = greeting.getString("class");
    242             if (type.equals("VERSION")) {
     246            if ("VERSION".equals(type)) {
    243247                release = greeting.getString("release");
    244248                Logging.info("LiveGps: Connected to gpsd " + release);
     
    252256                fireGpsStatusChangeEvent(LiveGpsStatus.GpsStatus.CONNECTED, tr("Connected"));
    253257            }
    254         }
    255 
    256         if (JSONProtocol == true) {
     258            Logging.trace(jex);
     259        }
     260
     261        if (JSONProtocol) {
    257262            JsonObject watch = Json.createObjectBuilder()
    258263                    .add("enable", true)
     
    276281            gpsdSocket.close();
    277282            gpsdSocket = null;
    278         } catch (Exception e) {
     283        } catch (IOException e) {
    279284            Logging.warn("LiveGps: Unable to close socket; reconnection may not be possible");
    280         }
    281     }
    282 
    283     private LiveGpsData parseJSON(String line) {
     285            Logging.trace(e);
     286        }
     287    }
     288
     289    private static LiveGpsData parseJSON(String line) {
    284290        JsonObject report;
    285291        double lat, lon;
     
    289295        float epy = 0;
    290296
    291         try {
    292             report = Json.createReader(new StringReader(line)).readObject();
     297        try (JsonReader reader = Json.createReader(new StringReader(line))) {
     298            report = reader.readObject();
    293299        } catch (JsonException jex) {
    294300            Logging.warn("LiveGps: line read from gpsd is not a JSON object:" + line);
     301            Logging.trace(jex);
    295302            return null;
    296303        }
    297         if (!report.getString("class").equals("TPV") || report.getInt("mode") < 2)
     304        if (!"TPV".equals(report.getString("class")) || report.getInt("mode") < 2)
    298305            return null;
    299306
     
    322329    }
    323330
    324     private LiveGpsData parseOld(String line) {
     331    private static LiveGpsData parseOld(String line) {
    325332        String[] words;
    326         double lat = 0;
    327         double lon = 0;
     333        double lat;
     334        double lon;
    328335        float speed = 0;
    329336        float course = 0;
    330337
    331338        words = line.split(",");
    332         if ((words.length == 0) || !words[0].equals("GPSD"))
     339        if ((words.length == 0) || !"GPSD".equals(words[0]))
    333340            return null;
    334341
Note: See TracChangeset for help on using the changeset viewer.