20 Nisan 2021 Salı

CLI HelpFormatter Sınıfı

Giriş
Şu satırı dahil ederiz.
import org.apache.commons.cli.HelpFormatter;

printHelp metodu
Bu metodun overload edilmiş bir sürü hali var. Overload edilen parametrelerin sayısı gittikçe artıyor. Her yeni parametre bir sonraki satıra yazılıyor gibi düşünülebilir.

Parametreler şöyle

- String cmdLineSyntax
- String header
- Options
- String footer
- boolean autoUsage

autoUsage true ise şöyle bir çıktı alırız
usage : myapp -myarf <arg>
 -myarg <arg>   - myexplanation for arg
autoUsage false ise şöyle bir çıktı alırız. Yani sadece ilk satır değişiyor.
usage : myapp
 -myarg <arg>   - myexplanation for arg
header ve footer verirsek ve autoUsage true şöyle bir çıktı alırız
usage : myapp -myarf <arg>
header
 -myarg <arg>   - myexplanation for arg
footer
Ayrıca setWidth() ile satır genişliği atanabilir.

Örnek 
Benim kullandıklarımdan birisi şöyle. İlk parametrede "command line syntax" belirtiliyor. hssi ve 9028 parametrelerinin mecburi olduğu da belirtiliyor. İkinci parametre olarak options ve üçüncü parametre olarak true geçerek geriye kalan isteğe bağlı seçenekleri de yazdırıyorum
Options options = ...;
helpFormatter.printHelp("java -jar foo.jar hssi 9028", options, true)
Örnek  - cmdLineSyntax + header + options + footer + autoUsage
Benim kullandıklarımdan birisi şöyle
Options options = ...;
String footer = "component1,component2"
helpFormatter.printHelp("myapp", "Starts my app", options, componentNames ,true);
Çıktı olarak şunu alırız
usage : myapp -blah <arg>
Starts my app
  -blah <arg> - my explanation
component1,component2

17 Nisan 2021 Cumartesi

Digest Crypt Sınıfı

crypto metodu- key
Açıklaması şöyle
Simply use crypto(String key) instead as it already provides random salt.
Örnek
Şöyle yaparız
String hashedPassword = Crypt.crypt(user.getPassword());
crypto metodu - key + salt
Açıklaması şöyle. Mesela SHA-512 kullanılacaksa salt string'i $6$ ile başlar.
The exact algorithm depends on the format of the salt string
Örnek
Şöyle yaparız
String saltBytes = ... ;
String salt = "$6$" + saltBytes;
String hashedPassword = Crypt.crypt(user.getPassword(), salt);

DescriptiveStatistics Sınıfı

Giriş
Şu satırı dahil ederiz
import org.apache.commons.math3.stat.descriptive.DescriptiveStatistics;
Bu sınıfın benzeri SynchronizedDescriptiveStatistics sınıfı da var.