Skip to content

Instantly share code, notes, and snippets.

View TGITS's full-sized avatar

TheGeekInTheShell TGITS

View GitHub Profile
@TGITS
TGITS / EndOfLife.java
Created March 29, 2023 11:25
Script EndOfLife complet (à exécuter avec JBang)
///usr/bin/env jbang "$0" "$@" ; exit $?
//DEPS info.picocli:picocli:4.7.1
//DEPS com.squareup.retrofit2:retrofit:2.9.0
//DEPS com.squareup.retrofit2:converter-gson:2.9.0
import okhttp3.OkHttpClient;
import picocli.CommandLine;
import picocli.CommandLine.Command;
import picocli.CommandLine.Parameters;
@TGITS
TGITS / EndOfLife.java
Created March 26, 2023 17:09
Classe EndOfLife compléter pour faire les appels à l'API
class EndOfLife implements Callable<Integer> {
@Parameters(index = "0", description = "The product about which the end of life information are collected", defaultValue = "java")
private String product;
@Parameters(index = "1", description = "The release cycle for which the details must be fetched", defaultValue = "")
private String releaseCycle;
public static void main(String... args) {
int exitCode = new CommandLine(new EndOfLife()).execute(args);
@TGITS
TGITS / EndOfLifeService.java
Created March 26, 2023 17:06
Interface EndOfLifeService
interface EndOfLifeService {
@GET("api/{product}.json")
public Call<List<ProductDetails>> getAllDetails(@Path("product") String product);
@GET("api/{product}/{cycle}.json")
public Call<ProductDetails> getSingleCycleDetails(@Path("product") String product, @Path("cycle") String cycle);
}
@TGITS
TGITS / ProductDetails.java
Created March 26, 2023 17:03
Version simplifiée de ProductDetails
class ProductDetails {
private String cycle;
private String releaseDate;
private String eol;
private String latest;
private String link;
private boolean lts;
private String support;
private String discontinued;
}
@TGITS
TGITS / EndOfLife.java
Created March 26, 2023 16:41
Version initiale du script EndOfLife.java
///usr/bin/env jbang "$0" "$@" ; exit $?
//DEPS info.picocli:picocli:4.6.3
import picocli.CommandLine;
import picocli.CommandLine.Command;
import picocli.CommandLine.Parameters;
import java.util.concurrent.Callable;
@TGITS
TGITS / perfectNumber.jsh
Created March 19, 2023 18:01
Script jshell perfectNumber.jsh avec JBang
//Pour exécuter avec JBang : jbang perfectNumber.jsh
//Pour exécuter avec JShell lancer jshell puis : /open perfectNumber.jsh
import java.util.stream.Collectors;
import java.util.stream.IntStream;
int sumOfDividers(int value){
return IntStream.rangeClosed(1, value).filter(i -> value % i == 0).sum();
}
@TGITS
TGITS / switch-example.jsh
Created January 21, 2023 15:16
Java script for JShell to illustrate the use of the option enable-preview
double getDoubleUsingSwitch(Object o) {
return switch (o) {
case Integer i -> i.doubleValue();
case Float f -> f.doubleValue();
case String s -> Double.parseDouble(s);
default -> 0d;
};
}
System.out.println(getDoubleUsingSwitch("56.6"));
@TGITS
TGITS / save-all.jsh
Last active January 23, 2023 13:12
Exemple de fichier de secript jshell créé à partir d'une sauvegarde de snippets
import java.io.*;
import java.math.*;
import java.net.*;
import java.nio.file.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.function.*;
import java.util.prefs.*;
import java.util.regex.*;
import java.util.stream.*;
@TGITS
TGITS / save-history.jsh
Last active January 23, 2023 13:11
Exemple de fichier de secript jshell créé à partir d'une sauvegarde de snippets
/open perfectNumber.jsh
/open PRINTING
print("Hello world!");
/save -history save-history.jsh
@TGITS
TGITS / save-snippets.jsh
Last active January 23, 2023 13:37
Exemple d'un fichier de scripts jshell créé à parti d'une sauvegarde de snippets
import java.util.stream.Collectors;
import java.util.stream.IntStream;
int sumOfDividers(int value){
return IntStream.rangeClosed(1, value).filter(i -> value % i == 0).sum();
}
var maxItems = 100;
System.out.println("Perfect Numbers up to : " + maxItems);
String list = IntStream.rangeClosed(1, maxItems).filter(num -> sumOfDividers(num) == 2 * num).mapToObj(i -> ((Integer) i).toString()).collect(Collectors.joining(", "));
System.out.println(">> " + list);