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. Bu dosyanın içeriğini dosya sistemi gibi kullanabilmeyi sağlar.

getDefault metodu
Şöyle yaparız.
FileSystem fs = FileSystems.getDefault();
newFileSystem metodu
Bu metodun 3 tane overload edilmiş hali var. Bunlar şöyle
newFileSystem(Path)
newFileSystem(Path, Map<String,?>)
newFileSystem(Path, Map<String,?>, ClassLoader)

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ş
Açıklaması şöyle
wsimport is a command-line tool bundled with Java's Web Services Development Pack, primarily based on the Java API for XML-Based Web Services (JAX-WS). Its primary role is to convert WSDL files into Java classes. These classes represent the operations and data structures of the web service, making it easier for developers to interact with it.
wsimport aracının .Net dünyasında karşılığı svcutil aracıdır. 

Buludunduğu Yer
Şuna benzer bir dizinde bulunur.
C:\Program Files\Java\jdk1.8.0_25\bin>wsimport.exe
-d / --dest seçeneği
Açıklaması şöyle. Aslında -s seçeneği ile aynı
Specifies the destination directory where the generated Java source files will be placed.

-e seçeneği
Şöyle yaparız.
wsimport.exe -s e:\temp\javaws 
 http://localhost:8733/Design_Time_Addresses/BillingService/?wsdl
--extension seçeneği
Açıklaması şöyle
Allows the use of vendor-specific extensions when parsing the WSDL. This is often needed when dealing with non-standard or proprietary WSDL documents.

-keep seçeneği
Bu seçenek ile hem .class hem de .java dosyalarını üretiriz.
wsimport -keep http://example.com/webservice?wsdl
-p / -package seçeneği
Açıklaması şöyle
You can also customize the package name of the generated code using the -p flag
Örnek
Şöyle yaparız
wsimport -s src -p com.example.calculator http://example.com/calculator?wsdl
-s / --source seçeneği
Açıklaması şöyle
This flag specifies the directory where you want the generated Java classes to be stored.
Örnek
Şöyle yaparız
wsimport -s src http://example.com/calculator?wsdl
Örnek
Şöyle yaparız
wsimport -s src LocalCalculator.wsdl


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