25 Haziran 2016 Cumartesi

FileLock Sınıfı

Giriş
Şu satırı dahil ederiz.
import java.nio.channels.FileLock;
FileChannel tarafından oluşturulur.

constructor
Kilidi alıncaya kadar bloke olur. Şöyle yaparız.
FileChannel fc = ...
FileLock lock = fc.tryLock();
if(lock != null){
  ...
}
Bloke olmasın istersek şöyle yaparız.
FileChannel fc = ...;
FileLock lock = null;

// Try acquiring the lock without blocking. This method returns
// null or throws an exception if the file is already locked.
try {
  lock = channel.tryLock();
} catch (OverlappingFileLockException e) {
  // File is already locked in this thread or virtual machine
}
release metodu
Şöyle yaparız.
// Release the lock - if it is not null!
if( lock != null ) {
  lock.release();
}


FileSystems Sınıfı

Giriş
Şu satırı dahil ederiz.
import java.nio.file.FileSystems;
Bu sınıf Java 7 ile geliyor.

getDefault metodu
Şöyle yaparız.
FileSystem fs = FileSystems.getDefault();
newFileSystem metodu - Uri 
Zip dosyasını okumak için şöyle yaparız.
Path zipfile = ...
URI uriOfFileInZip;
try(FileSystem fs = FileSystems.newFileSystem(zipfile, null)){
  ...
}
newFileSystem metodu - Uri + Map
Zip dosyası oluşturmak için şöyle yaparız.
Path zipFile = ...;
Map<String, String> env = new HashMap<String, String>() {{
  put("create", "true");
}};

try (FileSystem zipFs = FileSystems.newFileSystem(
  URI.create("jar:" + zipFile.toUri()), env)) {
  ...  
}

22 Haziran 2016 Çarşamba

StreamResult Sınıfı

constructor
Şöyle yaparız.
StreamResult result = new StreamResult(new StringWriter());
Şöyle yaparız.
StreamResult consoleResult = new StreamResult(System.out);
getWriter metodu
Şöyle yaparız.
StringWriter writer = result.getWriter();

TransformerFactory Sınıfı

Giriş
Bir Transformer nesnesi oluşturmak için kullanılır.

getInstance metodu
Şöyle yaparız.
TransformerFactory transformerFactory = TransformerFactory.newInstance();
newTransformer metodu
Şöyle yaparız.
Transformer transformer = transformerFactory.newTransformer();

URI Sınıfı

toUrl metodu
Şöyle yaparız.
URI uriOfFileInZip = ...;
InputStream is = uriOfFileInZip.toURL().openStream();

21 Haziran 2016 Salı

JAX-WS Service Sınıfı

Giriş
Şu satırı dahil ederiz.
import javax.xml.ws.Service;
constructor
Şöyle yaparız.
URL wsdlUrl = new URL("http://localhost:8888/webservice/helloworld?wsdl");
//qualifier name ...
QName qname = new QName("http://ws.enterprise.javacodegeeks.com/", 
                         "WebServiceImplService");
Service service = Service.create(wsdlUrl, qname);
getPort metodu
Şöyle yaparız.
WebServiceInterface sayHello = service.getPort(WebServiceInterface.class);



20 Haziran 2016 Pazartesi

wsimport komutu

Giriş
wsimport aracının .Net dünyasında karşılığı svcutil aracıdır. Şuna benzer bir dizinde bulunur.
C:\Program Files\Java\jdk1.8.0_25\bin>wsimport.exe
-e seçeneği
Şöyle yaparız.
wsimport.exe -s e:\temp\javaws 
 http://localhost:8733/Design_Time_Addresses/BillingService/?wsdl
-keep seçeneği
Bu seçenek ile hem .class hem de .java dosyalarını üretiriz.
wsimport -keep http://example.com/webservice?wsdl

JPA @IdClass Anotasyonu

Giriş
Şu satırı dahil ederiz.
import javax.persistence.Id;
Sınıfın @Id ile işaretli birden fazla alanı varsa yani composite primary key varsa kullanılabilir. Composite primary key tanımlamak için bir diğer yöntemse @EmbeddedId anotasyonu.

Sınıfa sadece getter metodlar yazmak yeterli.

Örnek
Şöyle yaparız.
public class SamplesKey  {

  private Integer id;
  private int year;
  ...
}

@Entity
@IdClass(EmbedddedSamplesKey.class)
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class Samplings {

  @Id
  @GeneratedValue
  private Integer id;

  @Id
  private int year;
  ...
}
Örnek
Şöyle bir tablomuz olsun.
detail
  primary key (master_id, name)  name string
  ...
Sınıfımızın PK anlarını göz önüne alarak şöyle kodlarız.
@Entity
@Table(name = "detail")
@IdClass(DetailIdPk.class)
class Detail {
  @Id
  int master;

  @Id
  String name;
}
@IdClass olarak belirtilmiş sınıfımızı şöyle kodlarız.
class DetailIdPK implements Serializable {

  int master;

  String name;

}

19 Haziran 2016 Pazar

InputStreamReader Sınıfı

Giriş
Şu satırı dahil ederiz.
import java.io.InputStreamReader;
constructor - Stream
Şöyle yaparız.
InputStreamReader reader = new InputStreamReader(System.in)
constructor - Stream + Encoding
Şöyle yaparız.
InputStream is = ...;
InputStreamReader reader = new InputStreamReader(is, "UTF-8"));         


18 Haziran 2016 Cumartesi

InternetAddress Sınıfı

Giriş
Şu satırı dahil ederiz.
import javax.mail.internet.InternetAddress;
constructor
Şöyle yaparız.
InternetAddress to = new InternetAddress("abc@mydomain.com")
parse metodu
Şöyle yaparız.
InternetAddress to = InternetAddress.parse("---------@mydomain.com")


15 Haziran 2016 Çarşamba

PublicKey Arayüzü

PublicKey Arayüzü
Şu arayüzler kalıtır.

DHPublicKey, DSAPublicKey, ECPublicKey, RSAPublicKey

RSAPublicKey Arayüzü
Şu satırı dahil ederiz.
import java.security.interfaces.RSAPublicKey;
Constructor
Şöyle yaparız. Algoritma olarak RSA kullanılıyor. Ayrıca keyFactory'nin ürettiği nesne arayüz olarak kullanılıyor.
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
RSAPublicKeySpec rsaPublicSpec = new RSAPublicKeySpec(modulus, exponent);
PublicKey publicKey = keyFactory.generatePublic(rsaPublicSpec);
Şöyle de yapabiliriz. Algoritma olarak RSA, provider olarak BC kullanılıyor. Ayrıca keyFactory'nin ürettiği nesne RSAPublicKey olarak kullanılıyor.
KeyFactory keyFactory = KeyFactory.getInstance("RSA", "BC");
RSAPublicKeySpec pubKeySpec = new RSAPublicKeySpec(new BigInteger(
        "12345678", 16), new BigInteger("11", 16));

RSAPublicKey pubKey = (RSAPublicKey) keyFactory.generatePublic(pubKeySpec);
getModulus metodu
Formül şöyle. Modulus olarak 2048 bit kullanılıyor.
n=2048 bits;
;
Key uzunluğunu almak için şöyle yaparız.
RSAPublicKey publicKey = yourRequest.getPublicKey();
int keySize= publicKey.getModulus().bitLength();
DSAPublicKey Arayüzü
Örnek ver