Sayfalar

eclipse etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
eclipse etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

10 Mayıs 2014 Cumartesi

Conditional Breakpoint İle Daha Hızlı ve Etkili Debugging - Eclipse ve Chrome Örneği

2 yorum
English version is at DZone

Yazdığımız kodun çalışmasını incelemek veya kodda alınan bir hatayı bulabilmek için çoğunlukla debugging yöntemini kullanırız.

Günümüzde birçok IDE ve hatta browser'lar debugging yapmayı mümkün kılmaktadır.

Bir anlamda kodu ve çalışması sırasında değişkenlerin aldığı değerleri "didiklediğimiz" debugging işleminin daha hızlı ve etkili yapılmasına yardımcı olduğunu düşündüğüm bir yöntemi aşağıda paylaşmak isterim.

Aşağıda bu yöntemin Eclipse IDE'sinde ve Chrome browser'ındaki örneklerini göreceksiniz. Farklı IDE ve browser'larda da bu yöntemi uygulayabilirsiniz.

Eclipse'de Java kodumuzu debug etmek yani nasıl çalıştığını izlemek için istediğimiz satıra breakpoint koyarız.


 Kodumuzu debug modunda her çalıştırdığımızda breakpoint koyduğumuz satırda  kodun çalışmasının durakladığını görürüz. Bu sırada koddaki değişkenlerin anlık değerlerini de görebiliriz.


 Kodun hangi değerden veya sebepten dolayı hata aldığını bildiğimiz durumlarda, istediğimiz durumun gerçekleşmesini görebilmek için değişken değerlerini her geçişte kontrol etmek yerine breakpoint özelliklerinde bu durumu(condition) belirterek kodun sadece o durumda duraklamasını  sağlayabiliriz. Bu şekilde beklediğimiz durumun gerçekleşmesini daha hızlı görebiliriz.






Bu yöntemle, breakpoint’e gelindiğinde, kodun çalışmasını duraklatmadan istediğimiz farklı bir kodun çalıştırılmasını sağlamamız bile mümkündür.



Hatta, breakpoint’e gelindiğinde değişkenlerin değerlerini bile değiştirebiliriz.


Bu yöntemle, istediğimiz breakpoint’ten istediğimiz  bir exception’u bile throw edebiliriz. Bu şekilde, gelmesi nadir olan bir exception’ ın nasıl catch edildiğini görmemiz mümkündür.



Debugging işlemini Chrome üzerinde de yapmamız mümkündür. Bu sefer Javascript kodumuzu debug edebiliriz. Bunun için, F12’ye basarak ya da “Araçlar(Tools) > Geliştirici Araçları(Developer Tools)” menüsünden açılan penceredeki “Sources” menüsü altından debug etmek istediğimiz kodu seçip breakpoint’i ekleyebiliriz. Ardından burada da beklediğimiz durumu belirtebiliriz. Kodun çalışması ancak, belirttiğimiz durum oluştuğunda duraklayacaktır.



ali kemal taşçı

25 Temmuz 2013 Perşembe

Eclipse - Restore From Local History (Can Kurtaran)

0 yorum
Çalışırken, projedeki bir dosyayı clearcase’e eklemediğim halde göz yanılmasıyla .keep dosyası(checkout'tan vazgeçilmiş geçici dosya) zannederek sildim. Proje hata verince ve dosyayı sildiğimi farkettiğimde aşağı yukarı şöyle bir ifade bende de oluştu: 



[Kullandığınız IDE’yi kodlarınızı kaydetmeden kapattığınızda: (bkz. Bir Yazılımcının Hayatındaki Gerçekler )]

Derin bir nefese alıp, konuyu google’da aratınca eclipse’in süper bir özelliğini öğrenmiş oldum.

Eclipse’den sildiğiniz kodları, aşağıdaki gibi, tekrar geri yükleyebiliyorsunuz. Bir nevi geri dönüşüm kutusu yani:





























ali kemal taşçı

19 Eylül 2012 Çarşamba

Aynı Eclipse'de DB ve Java Geliştirmesi Yapmak İster misiniz?

0 yorum
Bu yazımda ClearCase Remote Client(CCRC)’in kullanmakta olduğumuz Eclipse’e bir plugin olarak kurulmasını ve karşılaştığım bazı durumları sizlerle paylaşmak istiyorum.

Faydalı olması dileğiyle...


Neden CCRC Kullanayım? 
  • CCRC daha önceden kullanmaya çalıştığımız, ClearCase SCM Adapter’ından oldukça hızlı çalışıyor. Bu hız farkını özellikle evden VPN ile bağlandığınızda daha iyi hissedeceksiniz.
  • Tekli veya Toplu “Add to Source”, “Apply Label”, “CheckIn”, “Checkout”, “Show Version Tree”, “Compare..”,  vs. işlemlerine imkan sağlıyor. Hem de alışık olduğumuz Clearcase SCM Adapter’ından daha hızlı bir şekilde.
  • Eskiden beri kullanmakta olduğumuz, SCM Adapter için, saatler sürebilen, full ClearCase Client’ın makinemize kurulması gereksinimi bulunuyor. CCRC için böyle bir gereksinim bulunmamakta.
  • SCM adapter dinamik ve snapshot view’lerin kullanımını destekliyor. CCRC ise WAN tabanlı bir plugin ve sadece web viewları için kullanılıyor.
  • CCRC plugini sayesinde DB kodlarımızı da, aynı eclipse’de java, jsp kodlarımızı yazdığımız gibi yazabiliriz. Bunun için “Perspective”’i değiştirmek yeterli.
  • CCRC de SCM Adapter gibi hızlı erişim butonları sunuyor.

Hiç mi olumsuz tarafı yok?
Aşağıdaki gibi olumsuz olduğunu düşündüğüm kısımları bulunmakta. Tabi çözümleriyle birlikte...
  • Version tree’de son versiyondan önceki versiyonlar chekout edilemiyor. Her zaman son versiyon checkout ediliyor.
Amacımız, önceki versiyonları görmekse, önceki versiyonu “Open” ile açıp içindeki kodu chekout ettiğimiz son versiyon üzerine yapıştırırsak, amacımıza ulaşabiliriz.
  • PROD branch chekout ve chekin yapılamıyor.
Bunun için, İlgili view’ımızın “Config Spec” ini değiştirebiliriz. Ama bu iş zahmetli olacaktır. Bunun yerine hızlıca yeni bir view yaratarak onun “Config Spec”’ini önce PROD’ları görecek şekilde ayarlayabiliriz(detaylar aşağıda).
Yani PROD branchları diğer view’den chekout/checkin yapabiliriz. Pek hoş değil ama idare edilebilir sanırım...
Nasıl Kurulur?
  • Öncelikle, proxy ayarımızı yapalım. Hostname pattern: *braveheartrc* gibi..
  • ClearCase SCM Adapter plugini  mevcut Eclipse’imizde varsa kaldıralım:
  • Daha sonra, http://braveheartrc/ccrc/update adresinden(clearcase server'ın adresi) CCRC plugini mevcut Eclipse’imize  kuralım:
  • Kurulum sonrası Eclipse’e eklenen ClearCase Explorer Perspective’ini açarak, viewlarımızı oluşturmaya başlayabiliriz.
  • CCRC’ye yeni view eklemek için aşağıdaki adımlar takip edilir:
  • Eklediğimiz yeni view’ımızın konfigürasyonunu yapalım:
  • Edit Configuration penceresindeki Version Selection Rule tabına aşağıdaki config spec’i yazabiliriz:
element * CHECKEDOUT
element * TO_UCCSTEST
element * /main/uccs/LATEST
element * /main/LATEST
  • Prod Branch’ ile çalışabilmek için ise, yeni bir view oluşturup, bu view için de aşağıdaki config speci  yazabiliriz:
element * CHECKEDOUT
element * TO_UCCSPROD
element * /main/PROD/LATEST
element * /main/LATEST -mkbranch PROD
  • Clearcase  aşağıdaki gibi bağlanarak çalışmaya başlayabiliriz:
  • Clearcase  view’larımızda checkout işlemi yapabilmek için aşağıdaki tanımı yapmamız gerekmektedir.
ali kemal taşçı

29 Ocak 2008 Salı

Eclipse 'de Plugin Ekleme/Çıkarma

1 yorum
Eclipse ,uygulama geliştirme için oldukça kullanışlı bir platform. Tabi bunda, eclipse'e eklenebilen plugin(eklenti)'lerin etkisi çok büyük. Bu pluginler sayesinde, eclipse'in sahip olduğu yetenekleri arttırıp, tek bir platformda birçok işinizi yapabilir hale gelebiliyorsunuz.

Örneğin clearcase plugin’i sayesinde, ayrıca clearcase explorer uygulamasını kullanmadan, eclipse içinden, kodlarınızı versiyonlama sistemine dahil edebilirsiniz. Oracle plugin’i sayesinde eclipse’den veritabanına bağlanıp, birçok işlemi yapabilirsiniz. Weblogic plug-ini ile, server'ı eclipse içinden başlatabilirsiniz.

Bunlar gibi eclipse’de kullanabileceğiniz birçok plugin bulabilirsiniz. Şu anda, http://www.eclipseplugincentral.com sitesinde kayıtlı 1034 adet plugin bulunuyor.



Eclipse'e plugin eklemenin bir çok yöntemi var;

  • Bunlardan en kolayı; plugin içeren .zip dosyasının içeriğini, eclipse’in bulunduğu dizine kopyalamak. Bu yöntemin olumsuz yanı plugin’i kurup, kullanmaktan vazgeçtiğinizde, geri dönüşün zor olması.

  • Bir diğer yöntem ise, eclipse menu’sunden “Help>Software Updates>Find and Install” seçeneğini kullanmak. Bu yöntemle, mevcut pluginlerinizi güncelleyebilir veya, yeni pluginler ekleyebilirsiniz.



Yeni pluginleri bir siteden direkt olarak yükleyebilirsiniz.



Veya, bilgisayarınıza indirdiğiniz plugin’ leri seçerek de yükleme işlemi yapabilirsiniz.



Bu şekilde eklediğiniz, pluginleri eclipse menu’den “Help>Software Updates>Manage Configuration”
seçeneğinden kaldırabilirsiniz. Fakat, bazen bu yöntemle pluginleri kaldırırken sıkıntılar yaşanabiliyor



  • Ben daha çok, şimdi bahsedeceğim ve daha etkili bulduğum, bu yöntemi kullanıyorum;

    Eclipse’e eklemek istediğiniz pluginlerinizi bir klasör altında biriktiriyorsunuz.


Burada “features” ve “plugins” klasörlerinin “eclipse” isimli klasör altında bulunması gerekiyor.

Daha sonra, eclipse’in çalıştığı klasör içinde “Links” adında bir klasör oluşturuyorsunuz.


Bu “Links” adındaki klasörün içine de, eclipse’in başlarken kullanmasını istediğiniz pluginlerin path’lerini aşağıdaki gibi .link uzantılı dosyalara yazarak ekliyorsunuz. Tüm plugin path’lerini tek bir .link dosyasına da yazabilirsiniz.



Örneğin yukarıdaki “rational_clearcase.link “ dosyasında tek satırlık, aşağıdaki ifade yazılı.

path=D:/eclipse-plugins/rational_clearcase

Bu yöntem sayesinde, .link uzantılı tanım dosyasını “Links” klasörüne ekleyerek veya klasörden kaldırarak, plugin ekleme/çıkarma işlemini daha kolay ve temiz bir şekilde yapabilirsiniz.

Not: Değişikliklerin etkili olması için eclipse’i yeniden başlatmayı unutmayın...

ali kemal taşçı



26 Ocak 2008 Cumartesi

Eclipse'de Kullanılan Heap Memory Miktarı

0 yorum
Eclipse ile çalışırken, uygun memory ayarı yapmamışsanız, eclipse'in bir süre sonra yavaşladığını farketmişsinizdir. Bir de ağ bağlantısı yapan plug-inler(clearcase, oracle, mylyn vs.) kullanıyorsanız, bu yavaşlığı daha çabuk algılarsınız. Bu sorunu yaşamamak için, eclipse'i başlatırken uygun memory parametrelerini belirlemek gerekiyor. Bu parametreler, "..eclipse" dizinindeki "eclipse.ini" dosyasında, aşağıdaki gibi set edilebilir.

-vmargs
-Xms512M
-Xmx1024M
Peki bu değerleri nasıl belirlemeliyiz? Tabi ki eclipse'in ne kadar memory kullandığını görerek.
Bunun için eclipse'de, menuden "Window>Preferences" ile açılan pencerede "General" sekmesinde "Show heap status" kutucuğunu seçip, "OK" butonuna bastıktan sonra, eclipse'in sağ alt köşesinde, kullanılan memory miktarını gösteren bir alan görülecektir.

Bu alandaki çöp kutusu simgesine tıklayarak, elle "grabage collector" 'ü bile çalıştırabilirsiniz.






ali kemal taşçı

4 Aralık 2007 Salı

Eclipse Europa ve "java.lang.OutOfMemoryError: PermGen space" hatası

0 yorum
Uzun zamandır, Eclipse 3.1 versiyonunu kullanarak geliştirme yaparken, yeni gelişmelerden faydalanabilmek için, Eclipse Europa (Eclipse 3.3) yı kurmaya karar verdim. Eclipse 3.3 'ün ilginç ve yararlı birçok özelliğini görüp, memnun kaldıktan sonra, geliştirmelerime, artık bu versiyonda devam etmeye karar verdim. Bunun üzerine eski eclipse'deki tüm tanımlarımı(claspath variables, ant builds vs.) yeni eclipse'e taşıyıp, geliştirmeme devam ettim. Fakat, bir süre çalıştıktan sonra, eclipse'in aniden(workspace'i kaydetmeden) kapanması ve yeniden açtığımda, yaptığım tüm tanım ve ayarlamaların kaybolması beni çileden çıkardı. Tam aldığım karardan pişman olup, eski eclipse'e dönecektim ki, eclipse'in, "..eclipse\workspace\.metadata\" dizinindeki ".log" dosyasına, aşağıdaki hatayı atarak kapandığını farkettim.

java.lang.OutOfMemoryError: PermGen space


Daha önceden, eclipse'i "..eclipse" dizinindeki "eclipse.ini" dosyasına aşağıdaki parametreleri de ekleyerek başlatıyordum.

-vmargs
-Xms512M
-Xmx1024M


Buradaki -Xmx değerini arttırmama rağmen sorun düzelmeyince, Internette bu hatayı kısa bir süre araştırdıktan sonra, sorunu yaşayan tek kişinin ben olmadığımı farkettim. Sorunun nedeni JVM'in data structure ve class tanımlarını sakladığı "permanentSpace" alanının dolmasıydı.

Sorunun çözümünde ise yukarıdaki parametrelere şunları da eklemem gerektiğini öğrendim.

-XX:PermSize=128M
-XX:MaxPermSize=128M


Buradaki parametreler için uygun bir değer belirledikten sonra, artık bu sorunu yaşamıyorum...


Yararlandığım Kaynaklar:


ali kemal taşçı


25 Ağustos 2007 Cumartesi

Eclipse'te Bookmark View Kullanımı

0 yorum
Geliştirdiğimiz uygulamalara(applications) yeni modül eklemeyi, varolan modülde değişiklik yapmayı(iyileştirme) veya hataların düzeltilmesini(bugfix) gerektiren projelerde görev aldığımızda, uygulamaya yeni dosyalar(.java, .jsp, .xml...) ekleriz veya varolan dosyalarda değişiklik yaparız. Daha sonra eklediğimiz veya değiştirdiğimiz dosyaların, uygulamanın bir sonraki sürümüyle birlikte uygulamaya katılmasını sağlarız. Bu gibi projelerde uygulamadaki birçok dosya ile çalıştığımız için, genellikle bir yerlere hangi proje için hangi dosyaları değiştirdiğimizi not ederiz. Böylelikle bir sonraki sürüm çıkışında veya ilgili projeye ait hataların düzeltilmesinde hangi dosyaları değiştirdiğimizi bulabiliriz.
Eğer Eclipse ile yazılım geliştiriyorsak, üzerinde değişiklik yaptığımız dosyaları bulmak çok daha kolay ve hızlı olabilir. Bunun için yapmamız gereken şey dosyalara işaret(bookmark) koymak olacaktır.
Örneğin; ABC adında bir uygulamamız olduğunu düşünelim. Bu uygulamada üzerinde Proje1 ve Proje2 adında iki çalışma yapılmış olsun. Proje1 çalışması sırasında uygulamadaki abc1.java, abc1.jsp ve web.xml dosyalarında, Proje2 çalışması sırasında ise uygulamadaki abc2.java, abc2.jsp ve yine web.xml dosyalarında değişiklik yapıldığını varsayalım.

Değiştirdiğimiz dosyaları kolayca bulabilmek için bu dosyalara işaret(bookmark) koyalım. Bunun için değiştirmek istediğimiz dosyayı açıp, menuden Edit> Add Bookmark' a tıklayalım.
Dosyaların sol taraflarındaki gri alana sağ tıkladığımızda da Add Bookmark menusu çıkacaktır. Bu durumda bookmark'ı istediğimiz satıra koyabiliriz.

Açılan kutucukta, bookmark ismi olarak üzerinde çalışma yapılan proje isimlerini yazalım.

Artık işaret konulmuş dosyaların sol tarafında kitap ayracı sembolü gözükecek ve bu sembolün üzerine gelince de işaretin ismi gözükecek.

Bu şekilde diğer dosyalara da işaret koyduktan sonra, sıra esas işi yapan bookmark view'ı görünür hale getirmeye geldi. Bunun için menüden Window>Show View> Other'a tıklayıp, açılan kutucukta Bookmarks'ı seçelim.

Açılan Bookmark View'da işaret koyduğumuz dosyaları görebiliriz.

Bookmark View'a ait filtrede Where description contains alanına istediğimiz proje ismini yazarsak sadece istediğimiz projeye ait değiştirilen dosyaları listeleyebiliriz.
Değiştirdiğimiz dosya sayısının ve projelerin çok fazla olduğu durumlarda bu yöntemin işimizi fazlasıyla kolaylaştıracağını söyleyebilirim.