Tag Archives: Eclipse

Public/Private Anahtar İkilisi İle Git Repository Erişimi

Bir Git deposuna (repository) erişmek için ya isim ve şifre kullanabiliriz ya da bir çift public/private anahtarı. Bu yazımda Eclipse ve Git Bash altında public/private anahtar ikilisinin bir git deposuna erişmek için nasıl kullanıldığını aktarmak istiyorum.

Erişim için SSH protokolünü kullanıyorum. Anahtar ikilisinin ayrıca şifresi (passphrase) bulunuyor. Kullandığım işletim sistemi Windows 7. Git client olarak Msysgit Windows sürümünü kullanıyorum.

PuttyGen ile bir public/private anahtar ikilisi oluşturmak mümkün. Public olan anahtarın Git depolarının yer aldığı sunucuya tanıtılması gerekiyor. Private olan anahtar ile sunucu bağlantısı gerçekleştiriliyor.

İlk işlem olarak Eclipse’e kullandığımız private anahtarı tanıtmamiz gerekiyor.

1

Kullandığım kişisel (private) anahtar oeacar.pkk ismini taşıyor. SSH aracılığı ile sunucuya bağlanabilmek için GIT_SSH ismini taşıyan bir sistem değişkeni tanımlamamız gerekiyor. Bu değişkenin plink.exe ismini taşıyan bir programa işaret etmesi gerekiyor. Plink.exe Putty ile gelen bir program ve SSH bağlantılarını oluşturmak için kullanılıyor. Windows altında Msysgit ve plink.exe ne yazık ki birlikte çalışmıyorlar. Bu yüzden TortoiseGit programını kurmamız gerekiyor. TortoiseGit bir Git client ve bünyesinde bir plink implementasyonu mevcut.

Tortoise kurulumundan sonra GIT_SSH degiskenini şu şekilde oluşturabiliriz:

2

Şifre ile korunan kişisel anahtarlarda sistem her Git işleminden önce bu şifreyi edinmeye çalışacaktır. Bu zaman içinde sıkıntılı bir durum alabilir. Tortoise/bin dizininde yer alan pageant.exe ile bu şifreyi sisteme tanıtabiliriz.

Bu programı çalıştırdıktan sonra, program kendisini sağ alt köşede bulunan panele (task panel) konuşlandıracaktır. Sahip olduğu icona tıklayarak, kişisel anahtarımızı ekleyebiliriz.

3

Şimdi Eclipse altında EGit plugini aracılığı ile mevcut bir Git deposunu klonlayabiliriz.

4

Aynı şekilde Git Bash altında da bu depoya erişimi şu şekilde gerçekleştirebiliriz:

5

Bunu yapabilmek için mevcut kişisel anahtarı puttygen.exe ile OpenSSH formatına dönüştürmemiz gerekiyor. TortoiseGit/bin altında da bu programı bulmak mümkün. Load butonuna tıklayarak, kişisel anahtarı yükledikten sonra, Conversions >> Export OpenSSH Keys menüsünden dönüşümü sağlayabiliriz. Anahtarın OpenSSH formatında olması gerekiyor, çünkü Git Bash SSH bağlantısı için OpenSSH implementasyonunu kullanıyor. OpenSSH formatında olan yeni anahtarın id_rsa ismi altında C:\Users\|KULLANICI-ISMI|\.ssh dizinine yerleştirilmesi gerekiyor.

6


EOF (End Of Fun)
Özcan Acar

Yazılımcının Verimliliğini Artıran Eclipse Ayarları

Çoğu projede yazılım geliştirme ortamı olarak Eclipse’i kullanıyorum. Bu yazımda yazılım yaparken verimliliğimi artırdığını düşündüğüm Eclipse ayarlarını sizinle paylaşmak istiyorum. Kullandığım Eclipse sürümü 4.3.1 Kepler.

Hiç sevmediğim bir şey varsa, o da formatsız koddur. Bir Eclipse editöründeki bir kodu CTRL+SHIFT+F ile formatlamak mümkün. Ama bunu yazılımcı değil, Eclipse otomatik olarak yapmalı.

Bu ayarı Window –> Preferences –> Java –> Editor –> Save Actions bölümünde yapabiliriz.

Resim 1

Prefecences panelini açtıktan sonra üst kısımda yer alan arama alanına save kelimesini girmeniz, resim 1 de yer alan ekrana ulaşmanızı sağlayacaktır. Kodu otomatik formatlamak için Perform the selected actions on save kutusunun işaretli olması gerekiyor. Bu kutuyu işaretledikten sonra diğer opsiyonlar aktif hale gelir. Kodu formatlamak için Format source code kutusunu işaretlemek yeterli olacaktır.

Save Actions panelindeyken diğer gerekli gördüğüm ayarları da yapalım isterim.

Bu paneldeki Additional actions kutusunu işaretleyelim ve Configure butonuna tıklayalım. Karşımıza resim 2 de yer alan panel çıkacaktır.

Resim 2

Code Style tabındayız. Ben burada Use blocks in if/while/for/do statmens –> Always ayarını kullanıyorum. Şu şekilde bir if bloğu oluşturduğumda

[source language=”java”]
if(i>0)
doIt();
[/source]

bu Eclipse tarafından otomatik olarak şu şekilde formatlanır.

[source language=”java”]
if(i>0){
doIt();
}
[/source]

Buradaki maksat tek satırlık if/while/for/do yapılarını küme parantezi kullanarak bir blok haline getirmektir. İlk başlarda ben bu tür tek satırlık yapılarda küme parantezlerini kullanmazdım, çünkü bu bana koddan bir satır tasarruf etmemi sağlardı. Lakin sonraları çalıştığım birçok projede firma yazılım geliştirme politikası olarak küme parantezlerinin kullanılması koşulunu takip etme zorunluluğu doğduğundan ve Sonar gibi statik kod analizi araçlarının küme parantezi olmayan bloklardan hoşlanmadıklarından, ben de tek satırlık yapılarda küme parantezleri kullanmaya başladım. Bu bir alışkanlık meselesi. Çok kısa zamanda insan kullandığı yeni yapılara alışıyor ve bırakmak istemiyor. Bunu bir mezhep kavgasına dönüştürmenin bir anlamı yok anlayacağınız ;-)

Yazdığım kodda sınıfların, metotların, değişkenlerin, metot parametrelerinin ve metot gövdesinde kullanılan değişkenlerin mümkün mertebe final olmalarına dikkat ederim. Final olan yapılar genel olarak değiştirilemez olduklarından, istenmeden değiştirilmeleri mümkün değildir. Örneğin final olan bir değişkene yeniden bir değer atanamaz. Paralel çalışan (multi threaded) bir uygulamada final olan yapılar threadlar arasında sıkıntı olmadan paylaşılabilir.

Ben eğer şöyle bir metot yazdı isem

[source language=”java”]
public void doIt(int i) {
int y = i;
System.out.println(y);
}
[/source]

bu metodun Eclipse tarafından şu şekilde formatlanmasını arzularım:

[source language=”java”]
public void doIt(final int i) {
final int y = i;
System.out.println(y);
}
[/source]

Bunun Eclipse tarafından yapılması sağlamak için resim 2 de yer alan Use modifier final where possible kutusunun işaretlenmesi gerekmektedir. Burada üç seçenek bulunmaktadır. Eğer private olan değişkenlerin final olmasını istiyorsak Private fields, metot parametrelerinin final olmasını istiyorsak Parameter ve metot gövdesindeki değişkenlerin final olmasını istiyorsak Local variables seçeneğini aktif hale getiriyoruz.

Resim 3,4 ve 5 de Additional Save Actions panelindeki ayarlarım yer alıyor.

Resim 3

Resim 4

Resim 5

Resim 5 de yer alan Remove unused imports seçeneği koddan kullanılmayan import direktiflerinin silinmesini sağlamaktadır. Bir Java sınıfı bünyesinde zaman içinde import direktifleri ile birçok sınıf kullanılır. Bu sınıf yeniden yapılandırıldığında kullanımda olan bazı sınıflar ihtiyaç dışı kalabilir. Yazılımcılar genelde bu şekilde kullanım dışı kalan import direktiflerini görmediklerinden koddan uzaklaştırmazlar. Ben böyle bir sınıfı editörüme yüklediğimde yaptığım ilk kayıt işlemi (save) ile kullanım dışı olan tüm import direktifleri koddan silinir ve kod formatlanır.

Faydalı bulduğum diğer bir ayar ise, hangi küme parantezi bloğunda olduğumu doğrudan görebilmektir. Resim 6 da hangi blok içinde isem, o bloğun küme parantezleri öne çıkmış durumda. Bu ayarı yapmak için resim 7 de görülen Editor paneline gitmemiz ve orada Bracket highlighting seçeneklerinden Enclosing bracket seçeneğini seçmemiz gerekiyor. Bu bizim içinde bulunduğumuz kod bloğunu doğrudan görmemizi sağlayacaktır.

Resim 6

Resim 7

Java’da biliyorsunuz satır sonunda ; işaretini kullanma zorunluluğu var. Bunu da Eclipse bizim için yapabilir. Resim 8 de yer alan Automatically insert at correct position {} ve ; işaretlerinin doğru yerlerde Eclipse tarafından koda eklenmesini sağlamaktadır.

Resim 8

Eclipse altında CTRL+F11 tuşlarına bastığınızda bir uygulamayı koşturabilirsiniz. Genelde ben bir uygulamayı test ederken bu tuş kombinasyonunu şıkça kullanıyorum. Lakin kaynak kod üzerinde yaptığım değişiklikler CTRL+F11 tuşlarına bastığımda otomatik olarak kaydedilmiyor ve böylece yaptığım değişiklikler koşturduğum uygulamaya yansımıyor. Ayrıca CTRL+F11 her zaman en son koşturduğum uygulamayı koşturmayabilir. Uygulamayı koşturmadan önce değişiklikleri kaydetmek ve uygulamayı yeniden derlemek için resim 9 da yer alan ayarların yapılmasında fayda vardır.

Resim 9

Ne zaman iyi bir yazılımcı oluruz? Kullandığımız yazılım geliştirme ortamına sunduğu birçok kısa yol tuşlarıyla hakim olduğumuz zaman, çünkü bu bizim yazılımcı olarak verimliliğimizi artırır.


EOF (End Of Fun)
Özcan Acar

Subclipse Şifresi

Elipse altında Subversion pluginini kullanıyorsanız, bir Subversion repositorisine bağlanmak için kullandığınız şifreyi nasıl değiştirebileceğinizi merak etmiş olabilirsiniz. Eclipse altında bu şifreyi değiştirmek mümkün değil, çünkü plugin şifreyi %APPDATA%\Subversion\auth (Linux altında ~/.subversion/auth) altında saklıyor. Bu dizini sildiğiniz taktirde, tekrar şifreyi girme panelini görebilirsiniz.

Eclipse ile Java EE Ear Projesi

Java EE 5 aplikasyonları EAR (Enterprise Archive) arşiv dosyaları içinde yer alır. Bir EAR dosyası JAR (Java Archive) dosyası yapısına ve .ear dosya ekine sahiptir. EAR dosyası içinde bir Java EE projesini oluşturan diğer modül arşivleri yer alır. Bir sonraki resimde bir EAR arşiv dosyasının yapısı yer almaktadır.

 

Bir EAR arşivinde yer alabilecek modül arşivleri şunlardır:

  • EJB JAR: EJB komponentlerin yer aldığı JAR dosyasıdır. Bu dosya içinde sadece EJB implementasyonları yer alır.
  • EJB Client JAR: EJB komponentlerinin sahip oldukları Remote ve Local EJB interface sınıflar EJB Client JAR arşivlerinde yer alır. Bu JAR dosyası EJB komponentlerini kullanmak isteyen diger modüllerin kullanımına sunulur.
  • WAR: Web aplikasyonları WAR (Web Application Archive) arşiv dosyalarında yer alır.

Bu yazıyı PDF olarak edinebilirsiniz.

  Eclipse ile EJB 3 EAR Arşiv Projesi (760.4 KiB, 10,273 yükleme)

Eclipse projesini .rar dosyasi olarak  edinebilirsiniz.

workspace_emarket.zip