Tra le varie librerie messe a disposizione dalla Apache Foundation, ne ho trovato una apposita per la gestione delle email: Apache Commons Email!

Questa libreria migliora le API standard di Java, ed ho deciso di usarla per fare qualche test sulle email in Kotlin.

Se usate Maven, dovete aggiungere questo al file pom.xml:

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-email</artifactId>
            <version>1.4</version>
        </dependency>

Tra le varie librerie Apache Commons, ne troviamo una apposita per il parsing degli argomenti da riga di comando: Apache Commons CLI!

Oggi vediamo un esempio del suo utilizzo.

Se usate Maven potete installare la libreria in questo modo:

        <dependency>
            <groupId>commons-cli</groupId>
            <artifactId>commons-cli</artifactId>
            <version>1.4</version>
        </dependency>

Da Wikipedia:

Apache Solr (pronunciato come /soʊlə/,/soʊlər/, soh-lər) è una piattaforma di ricerca open source del progetto Apache Lucene, in origine creato nel 2004 da Yonik Seeley alla CNET Networks. La sua caratteristica principale è la presenza di ricerca full text, hit highlighting, faceted search, raggruppamento dinamico, integrazione con le basi di dati, gestione di documenti "ricchi" (come documenti word e pdf). Fornisce una ricerca distribuita e la replicazione dell'indice. Solr è altamente scalabile.

Visto che di base non è difficile da installare, configurare ed usare, ho deciso di dargli un'occhiata.

Inoltre, da quanto ho capito, è anche possibile connetterlo a vari database, oltre al fatto che crea già un servizio REST completo, e questo lo rende ancora più interessante.

Vi propongo due metodi per scaricare un file da internet in Java.

Il primo caso è usando le Java NIO, e quindi non servono librerie esterne:

public class Main {

    public static void main(String[] args) {
        String remoteFile = "ftp://ftp.arin.net/pub/stats/arin/delegated-arin-extended-latest";
        String localFile = "/home/matte/Desktop/file.txt";

        try {
            URL website = new URL(remoteFile);
            try (
                    ReadableByteChannel rbc = Channels.newChannel(website.openStream());
                    FileOutputStream fos = new FileOutputStream(localFile)) {
                fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
            }
        } catch (IOException ex) {
            System.out.println(ex.getMessage());
        }

    }

}

Gli Enum in Java sono un tipo di dato abbastanza usato.

Una delle cose che mi è capitato di dover fare, è controllare se un valore è presente nell'Enum.

Da quanto ho capito, in Java standard, non c'è un metodo se non iterare su tutte le voci e controllarle una per una.

A prescindere da se mi sbaglio o meno, ho risolto usando la libreria Apache Commons Lang!