All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.faunadb.common.http.DriverVersionChecker Maven / Gradle / Ivy

The newest version!
package com.faunadb.common.http;

import com.faunadb.common.Connection;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;

public class DriverVersionChecker
{
    private static boolean alreadyChecked = false;

    public static void setAlreadyChecked() {
        alreadyChecked = true;
    }

    private final static String urlString = "https://repo.maven.apache.org/maven2/com/faunadb/faunadb-common/maven-metadata.xml";
    private static boolean javaDriver;

    public static boolean isAlreadyChecked() {
        return alreadyChecked;
    }

    public static void checkLatestVersion() {
        if (alreadyChecked) return;
        try {
                getVersion();
        }
        catch (IOException e) {
            e.printStackTrace();
        } catch (ParserConfigurationException e) {
            e.printStackTrace();
        } catch (SAXException e) {
            e.printStackTrace();
        }
        setAlreadyChecked();
    }

    private static void getVersion() throws IOException, ParserConfigurationException, SAXException {
        URL url = new URL(urlString);
        URLConnection conn = url.openConnection();

        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();
        Document document = builder.parse(conn.getInputStream());
        var repositoryVersion = document.getDocumentElement().getElementsByTagName("latest").item(0).getFirstChild().getNodeValue();
        var driverVersion = Connection.class.getPackage().getSpecificationVersion();
        if (!repositoryVersion.equals(driverVersion))
        {
            System.out.println("\n");
            System.out.println("=".repeat(80));
            System.out.println("New fauna version available " + repositoryVersion + " -> " + driverVersion);
            System.out.println("Changelog: https://github.com/fauna/faunadb-jvm/blob/main/CHANGELOG.txt");
            System.out.println("=".repeat(80));
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy