<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7242277445654742100</id><updated>2011-12-24T10:51:58.960+02:00</updated><category term='Veri Tabanı'/><category term='CXF'/><category term='Diğer'/><category term='JPA'/><category term='Template'/><category term='MySQL'/><category term='Adapter'/><category term='SMTPAppender'/><category term='IzPack'/><category term='Hibernate'/><category term='Sunum'/><category term='HSQLDB'/><category term='Çevik'/><category term='Sertifika'/><category term='Log4j'/><category term='Spring Security'/><category term='Web Service'/><category term='Refactoring'/><category term='Richfaces'/><category term='CETURK'/><category term='Spring Web Service'/><category term='EJB'/><category term='Eşli Programlama'/><category term='SUN'/><category term='Tasarım Örüntüleri'/><category term='STS'/><category term='JMX'/><category term='Maven'/><category term='Proxy'/><category term='Singleton'/><category term='Eclipse'/><category term='Spring Remoting'/><category term='Effective Java'/><category term='Annotation'/><category term='JSF'/><category term='Spring'/><category term='POJO'/><category term='Null Object'/><category term='Flash Scope'/><category term='JTPD'/><title type='text'>Ucundan Java</title><subtitle type='html'>Java Enterprise ile ilgili anlatılarım, deneyimlediklerim ve paylaşmak istediklerim...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>50</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-1500734986455617727</id><published>2011-12-24T10:44:00.000+02:00</published><updated>2011-12-24T10:44:50.167+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Effective Java'/><title type='text'>equals() Metodu Nasıl Yazılmalı</title><content type='html'>Yeni mezun meslektaşlarımızın List, Map, Set türevi veri yapılarında nesneleri konumlandırdıkları zaman nesnelerin equals ve hashCode metotlarını hazırlamamaları yaygın bir unutkanlıktır. List bileşenine koydukları nesne nedense &lt;i&gt;contains()&lt;/i&gt;&amp;nbsp;kontrolünde kaybolur. Sorunun çözümünü de benzer olayları önceden yaşamış ve kaynağını az çok tahmin eden tecrübeli yazılım geliştiricen gelir. &lt;i&gt;equals &lt;/i&gt;ve &lt;i&gt;hashCode&lt;/i&gt;&amp;nbsp;metotlarının sınıf için gerçekleştirimi unutulmuştur. List ve Set sınıfları barındırdıkları nesnelerin eşitliğini bu iki metodu kullanarak kontrol ederler&lt;br /&gt;&lt;br /&gt;Ne var ki &lt;i&gt;equals ve hashCode&amp;nbsp;&lt;/i&gt;metotları tecrübeli geliştiriciler tarafından bile olması gerektiği gibi hazırlanmıyor. Bu yazımda "Effective Java" kitabında yer alan "Item 8: Obey the general contract when overriding equals" bölümüne referans göstererek ideal bir &lt;i&gt;equals&lt;/i&gt;&amp;nbsp;metodunun nasıl olması gerektiğine değineceğim.&lt;br /&gt;&lt;br /&gt;İlk uyulması gereken kural basit. "En iyi kod yazılmamış kodtur" ilkesini benimsemiş gibi: Eğer sınıfın her bir nesnesi &lt;i&gt;sadece&lt;/i&gt; kendisiyle eşit olacak ise, yani &lt;i&gt;sadece aynı bellek alanına referans gösteren&lt;/i&gt; değişkenler birbirleriyle eşit olacak ise sınıfta&amp;nbsp;&lt;i&gt;equals &lt;/i&gt;metodu yazmayın. Her Java sınıfının türediği &lt;i&gt;Object&lt;/i&gt;&amp;nbsp;sınıfının &lt;i&gt;equals&lt;/i&gt;&amp;nbsp;metodu&amp;nbsp;bu bellek kontrolünü üstlenmiş durumda zaten. Böyle bir durumu oluşturabilecek senaryolar ise şu şekilde listeleniyor:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Sınıfın değerleri üzerinden işlevsel bir eşitlik gerektirmiyorsa:&lt;/b&gt; Örneğin &lt;i&gt;java.util.Random&lt;/i&gt;&amp;nbsp;sınıfının görevi rasgele sayılar üretmektir. İki &lt;i&gt;Random&lt;/i&gt;&amp;nbsp;sınıfının birbirine eşit olup olmaması işlevsel bir eşitlik kontrolü gerektirmez.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Atasınıfın (&lt;i&gt;superclass&lt;/i&gt;)&lt;i&gt;&amp;nbsp;&lt;/i&gt;ihtiyacı karşılayacak şekilde gerçekleştirilmiş halihazırda bir &lt;i&gt;equals &lt;/i&gt;metodu varsa: &lt;/b&gt;Çoğu &lt;i&gt;Set&lt;/i&gt;&amp;nbsp;gerçekleştirimi &lt;i&gt;AbstractSet&lt;/i&gt;, &lt;i&gt;List &lt;/i&gt;gerçekleştirimleri ise &lt;i&gt;AbstractList&lt;/i&gt;&amp;nbsp;atasınıfının &lt;i&gt;equals&lt;/i&gt;&amp;nbsp;metodunu kullanır.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Eğer sınıf private ve package-private ise ve sınıflar üzerinde eşitlik kontrolü yapılmayacağı kesinse&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Sınıfın sadece yaratılmış tek bir olgusu olacak ise: &lt;/b&gt;Singleton sınıflar&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Özetle sınıfımızın eşitliği, barındırdığı değişkenlerin değerleri üzerinden anlam ifade ediyorsa ve atasınıfta bu değerler üzerinden eşitlik kontrolünü sağlayacak metot yoksa sınıfımız için bir &lt;i&gt;equals&lt;/i&gt;&amp;nbsp;metodu yazmalıyız.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Peki ideal bir &lt;i&gt;equals &lt;/i&gt;nasıl olmalı? Matematik derslerinden hatırlayacağımız aşağıdaki 5 kriteri de karşılamalı:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Dönüşlü: &lt;/b&gt;&lt;i&gt;null &lt;/i&gt;olmayan her x değeri için &lt;i&gt;x.equals(x)&lt;/i&gt;'in sonucu &lt;i&gt;true&lt;/i&gt;&amp;nbsp;olmalı.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Simetrik: &lt;/b&gt;&lt;i&gt;null &lt;/i&gt;olmayan her x, y değerleri için &lt;i&gt;x.equals(y) &lt;/i&gt;sadece &lt;i&gt;y.equals(x)&lt;/i&gt;&amp;nbsp;sonucu &lt;i&gt;true ise &lt;/i&gt;true olmalı.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Geçişli:&lt;/b&gt;&amp;nbsp;&lt;i&gt;null&amp;nbsp;&lt;/i&gt;olmayan her x, y, z değerleri için &lt;i&gt;x.equals(y) &lt;/i&gt;ve&lt;i&gt;&amp;nbsp;y.equals(z) &lt;/i&gt;sonuçları&amp;nbsp;&lt;i&gt;true&lt;/i&gt;&amp;nbsp;ise &lt;i&gt;x.equals(z)&lt;/i&gt;&amp;nbsp;sonucu da &lt;i&gt;true&lt;/i&gt;&amp;nbsp;olmalı.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Tutarlı: &lt;/b&gt;eşitlik kontrolünde kullanılan değişkenlerin değerleri değişmediği sürece &lt;i&gt;x.equals(y)&lt;/i&gt;&amp;nbsp;sonucu her zaman ya hep &lt;i&gt;true &lt;/i&gt;ya da hep &lt;i&gt;false &lt;/i&gt;olmalı.&lt;/li&gt;&lt;li&gt;&lt;i&gt;null &lt;/i&gt;olmayan her x için &lt;i&gt;x.equals(null)&lt;/i&gt;&amp;nbsp;sonucu hep &lt;i&gt;false&lt;/i&gt;&amp;nbsp;olmalı&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Bu eğlenceli matematiksel kriterleri sağlayamayan her &lt;i&gt;equals&lt;/i&gt;&amp;nbsp;metodu uygulamamızda sıkıntı yaratacak ve hatanın kaynağı bulmak da belki uzunca bir süre mümkün olmayacaktır. Bu kriterlere biraz yakından bakalım:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Dönüşlü&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Basitçe, her bir nesne kendisine eşit olmalı. Bu kriteri bozacak bir gerçekleştirimde, List'e eklediğimiz nesnemizi &lt;i&gt;contains&lt;/i&gt;&amp;nbsp;metoduyla sorguladığımızda karşılaşacağımız sonuç olumsuz olacaktır.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Simetrik&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Simetri kriterini aşağıdaki örnek kod kırıyor. (Örnek kodlar Effective Java kitabından alınmıştır):&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;      &lt;div class="column"&gt;   &lt;pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt; font-weight: 700;"&gt;// Broken - violates symmetry!&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt;"&gt;   public final class CaseInsensitiveString {&lt;br /&gt;       private final String s;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt;"&gt;       public CaseInsensitiveString(String s) {&lt;br /&gt;           if (s == null)&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt;"&gt;               throw new NullPointerException();&lt;br /&gt;           this.s = s;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt;"&gt;}&lt;/span&gt;&lt;br /&gt;   &lt;pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt; font-weight: 700;"&gt;       // Broken - violates symmetry!&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt;"&gt;       @Override public boolean equals(Object o) {&lt;br /&gt;           if (o instanceof CaseInsensitiveString)&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt;"&gt;               return s.equalsIgnoreCase(&lt;br /&gt;                   ((CaseInsensitiveString) o).s);&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt; font-weight: 700;"&gt;           if (o instanceof String)  // One-way interoperability!&lt;br /&gt;               return s.equalsIgnoreCase((String) o);&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt;"&gt;           return false;&lt;br /&gt;       }&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt;"&gt;       ...  // Remainder omitted&lt;br /&gt;   }&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family: LucidaSans; font-size: 9pt;"&gt;CaseInsensitiveString cis = new CaseInsensitiveString("Polish");&lt;/span&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt;"&gt;String s = "polish";&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Burada &lt;i&gt;cis.equals(s)&lt;/i&gt;&amp;nbsp;kontrolü &lt;i&gt;true &lt;/i&gt;dönerken &lt;i&gt;s.equals(cis)&lt;/i&gt;&amp;nbsp;kontrolü ise &lt;i&gt;false &lt;/i&gt;değerini dönecektir. Problemin kaynağı &lt;i&gt;CaseInsensitiveString &lt;/i&gt;sınıfının &lt;i&gt;equals&lt;/i&gt;&amp;nbsp;metodu, karşılaştırmayı büyük/küçük harf ayırtmaksızın yaparken, &lt;i&gt;String&lt;/i&gt;&amp;nbsp;sınıfının &lt;i&gt;equals&lt;/i&gt;&amp;nbsp;metodunun bu ayrımı yapmamasından kaynaklanmaktadır.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;span style="font-family: LucidaSans; font-size: 9pt;"&gt;List&lt;caseinsensitivestring&gt; list = new ArrayList&lt;caseinsensitivestring&gt;();&lt;br /&gt;&lt;/caseinsensitivestring&gt;&lt;/caseinsensitivestring&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family: LucidaSans; font-size: 9pt;"&gt;list.add(cis);&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family: LucidaSans;"&gt;&lt;span style="font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;Yukarıdaki gibi bir senaryoda yapılan&amp;nbsp;&lt;span style="font-family: LucidaSans; font-size: 9pt;"&gt;list.contains(s)&amp;nbsp;&lt;/span&gt;kontrolü kodun üzerinde çalıştığı Java gerçekleştirimine göre true ya da false dönebilir. "Benim bilgisayarımda çalışıyordu" dememek için hastalıklı kodu düzeltmeliyiz. Karşılaştırmada String sınıfı aradan çıkartılmalı:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;      &lt;div class="column"&gt;   &lt;pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt;"&gt;@Override public boolean equals(Object o) {&lt;br /&gt;       return o instanceof CaseInsensitiveString &amp;amp;&amp;amp;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt;"&gt;           ((CaseInsensitiveString) o).s.equalsIgnoreCase(s);&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt;"&gt;}&amp;nbsp;&lt;/span&gt;&lt;br /&gt;  &lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Geçişli&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Bu kriteri kırmak da çok zor değil. &lt;i&gt;Point &lt;/i&gt;sınıfından türeyen bir &lt;i&gt;ColorPoint &lt;/i&gt;sınıfında koordinatlara ek olarak getirilen renk değişkeni &lt;i&gt;equals &lt;/i&gt;metoduna eklenince olanlar oluyor:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;      &lt;div class="column"&gt;   &lt;pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt;"&gt;public class Point {&lt;br /&gt;       private final int x;&lt;br /&gt;       private final int y;&lt;br /&gt;       public Point(int x, int y) {&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt;"&gt;this.x = x;&lt;/span&gt;&lt;br /&gt;   &lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt;"&gt;this.y = y;}&lt;/span&gt;&lt;br /&gt;   &lt;pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt;"&gt;       @Override public boolean equals(Object o) {&lt;br /&gt;           if (!(o instanceof Point))&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt;"&gt;               return false;&lt;br /&gt;           Point p = (Point)o;&lt;br /&gt;           return p.x == x &amp;amp;&amp;amp; p.y == y;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt;"&gt;}&lt;/span&gt;&lt;br /&gt;   &lt;pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt;"&gt;       ...  // Remainder omitted&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;div class="column"&gt;&lt;br /&gt;&lt;br /&gt;   &lt;pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt;"&gt;public class ColorPoint extends Point {&lt;br /&gt;       private final Color color;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt;"&gt;       public ColorPoint(int x, int y, Color color) {&lt;br /&gt;           super(x, y);&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt;"&gt;           this.color = color;&lt;br /&gt;       }&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt;"&gt;       ...  // Remainder omitted&lt;br /&gt;   }&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;      &lt;div class="column"&gt;   &lt;pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt; font-weight: 700;"&gt;// Broken - violates transitivity!&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt;"&gt;   @Override public boolean equals(Object o) {&lt;br /&gt;       if (!(o instanceof Point))&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt;"&gt;           return false;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt; font-weight: 700;"&gt;       // If o is a normal Point, do a color-blind comparison&lt;br /&gt;       if (!(o instanceof ColorPoint))&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt; font-weight: 700;"&gt;           return o.equals(this);&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt;"&gt;       // o is a ColorPoint; do a full comparison&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt;"&gt;       return super.equals(o) &amp;amp;&amp;amp; ((ColorPoint)o).color == color;&lt;br /&gt;   }&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;  &lt;pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt;"&gt;ColorPoint p1 = new ColorPoint(1, 2, Color.RED);&lt;br /&gt;Point p2 = new Point(1, 2);&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="font-family: 'LucidaSans'; font-size: 9.000000pt;"&gt;ColorPoint p3 = new ColorPoint(1, 2, Color.BLUE);&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;p1 ile p2, p2 ile p3 birbirlerine eşit iken p1 ile p3 birbirine eşit olmalıyken maalesef eşitlik kontrolü bize &lt;i&gt;false&lt;/i&gt;&amp;nbsp;değerini dönecektir. Java kütüphanesinde bu kriteri kıran sınıflar bulmak mümkün. Örneğin &lt;i&gt;Date &lt;/i&gt;ve &lt;i&gt;Timestamp&lt;/i&gt;&amp;nbsp;sınıfları. Ayrıntılı değerlendirmeyi "Effective Java" kitabından edinebilirsiniz.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Bu sorun için çözüm ise gene bir Object Oriented tasarım ilkesini adres gösteriyor. "is-a ilişkisi yerine has-a" ilişkisi kullanmak. &lt;i&gt;Point &lt;/i&gt;sınıfından &lt;i&gt;ColorPoint&lt;/i&gt;&amp;nbsp;sınıfı türetmek yerine &lt;i&gt;ColorPoint &lt;/i&gt;sınıfı içerisinde &lt;i&gt;Point&lt;/i&gt;&amp;nbsp;sınıfının referansını barındırsın.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Tutarlılık&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Eşitlik kontrolü yapılacak değişkenler her zaman tutarlı değerlere sahip olmalıdır. Örneğin &lt;i&gt;java.net.URL&lt;/i&gt;&amp;nbsp;sınıfının eşitlik kontrolü IP adresi ile ilişkilendirilen &lt;i&gt;host name&lt;/i&gt; değişkeni üzerinden yapılıyor. Bu yüzden ağ erişiminin yanı sıra &lt;i&gt;host name&lt;/i&gt;&amp;nbsp;ile ilişkilendirilmiş IP adresi de değişebilir. Sağlıklı bir karşılaştırma her zaman yapılamayacaktır.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Equals metodu için bu olmazsa olmazların yanında sorguyu hızlandıracak ve kesirli değerler için&lt;i&gt;&amp;nbsp;equals &lt;/i&gt;yerine &lt;i&gt;Float.compare() &lt;/i&gt;ya da &lt;i&gt;Double.compare() &lt;/i&gt;kullanmanız gerektiğini söyleyen bir çok minik ipucunu "Effective Java" kitabında bulabilirsiniz. Kitabın Java ile geliştirim yaparken dikkat edilmesini önerdiği diğer konular da her Java geliştiricisi tarafından sindirilip kod yazarken uygulanmalı. Kitaptan bir tane edinin derim :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-1500734986455617727?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/1500734986455617727/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2011/12/equals-metodu-nasl-yazlmal.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/1500734986455617727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/1500734986455617727'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2011/12/equals-metodu-nasl-yazlmal.html' title='equals() Metodu Nasıl Yazılmalı'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-8971587087211322693</id><published>2011-11-25T07:45:00.001+02:00</published><updated>2011-11-26T13:56:34.138+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Spring Security'/><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><title type='text'>JSF ve Spring Security ile Önceden Kimlik Kontrolü Yapılmış Kullanıcı için Login Sayfasının Tekrar Gösterilmemesi</title><content type='html'>Başlık biraz uzun oldu ama anlatacağım konuyu başlıkta ancak bu kadar özetleyebildim. Özetin açıklamasını yapmaya çalışırsak: web uygulamasına giriş yapmış, yani kimliğini doğrulatmış bir kullanıcı, belirli sayfalara istekte bulunduğunda (örneğin login sayfası için tekrar istek gönderirse) zaten yetkilendirildiğini belirleyip isteği başka bir sayfaya yönlendirmek (örneğin login sayfasından sonra gösterilecek index sayfasına) istiyoruz.&lt;br /&gt;&lt;br /&gt;Spring Security'de bu işin kolay yolu var mıdır diye küçük bir araştırma yaptık ama ya doğru kelimeleri yine bulamadık ki blog başlığı seçerken de yaşadım aynı sıkıntıyı ( :) ) ya da diğerler geliştiriciler böyle bir gereksinime ihtiyaç duymamışlar. İlki seçenek akla daha yatkın..&lt;br /&gt;&lt;br /&gt;Çalışma arkadaşım &lt;a href="http://www.basrikahveci.com/" target="_blank"&gt;Basri Kahveci&lt;/a&gt;'nin önerdiği ve bir projede uyguladığı yöntem de aklıma yatmayınca (Çalışıyor ama biraz kulağı tersten tutmak gibiydi :)) Küçük bir "Nasıl yapabiliriz?" düşünmesinin ardından aslında basit bir JSF &lt;i&gt;PhaseListener&lt;/i&gt;&amp;nbsp;kullanarak yapılabileceğini farkettim.&lt;br /&gt;&lt;br /&gt;Bildiğiniz üzere JSF yaşam döngüsü temel olarak 6 adımdan oluşur (Yaşam döngüsünü detayıyla incelemek isterseniz &lt;a href="http://balusc.blogspot.com/2006/09/debug-jsf-lifecycle.html" target="_blank"&gt;BalusC&lt;/a&gt; bu konuda emek harcamış):&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-x_f3QIXkeTE/Ts8yezUM0AI/AAAAAAAABaw/UW43A2L_oHo/s1600/jsf-request-processing-lifecycle.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="108" src="http://2.bp.blogspot.com/-x_f3QIXkeTE/Ts8yezUM0AI/AAAAAAAABaw/UW43A2L_oHo/s320/jsf-request-processing-lifecycle.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Kısaca hatırlamak gerekirse &lt;i&gt;Request parametresi&lt;/i&gt; barındıran bir istek bu 6 adımdan geçerek kullanıcıya hedef sayfa döndürülür. Bir sayfaya yapılan ilk istek, yani parametre barındırmayan bir istek ise ilk adımdan sonra yaşam döngüsünü dolaşmak yerine &lt;i&gt;Render Response&lt;/i&gt;&amp;nbsp;adımına yönlendirilip kullanıcının istediği sayfa gösterilir. Her adımda gerçekleşen işlemleri isterseniz başka bir blog girdisinde bahsederiz.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;JSF bize bu adımların arasına girebilmek için &lt;i&gt;&lt;a href="http://docs.oracle.com/cd/E17824_01/dsc_docs/docs/jscreator/apis/jsf/javax/faces/event/PhaseListener.html" target="_blank"&gt;PhaseListener&lt;/a&gt; &lt;/i&gt;interface'ini kullanıma sunuyor. Görüldüğü gibi PhaseListener'da 3 metot mevcut. İkisi yaşam döngüsü adımlarının herbirine girerken ve herbirinden çıkarken işletilecek kodları barındırırken, üçüncü metot da hangi adımda bu listener'ın çalıştırılması gerektiğini belirtmemize olanak sağlıyor. Bu metotta&amp;nbsp;&lt;i&gt;PhaseId.ANY_PHASE &lt;/i&gt;gibi bir değer döndürerek her bir adım için listenerın tetiklenmesini sağlayabileceğimiz gibi &lt;i&gt;PhaseId.RENDER_RESPONSE&lt;/i&gt;&amp;nbsp;benzeri bir değerle belirli bir adımda tetiklenmesini de sağlayabiliyoruz.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Bizim senaryomuzda da login sayfamız render olmadan önce bir PhaseListenerın tetiklenmesini sağlayarak, kullanıcının önceden sisteme giriş yapıp yapmadığını belirleyip gerekiyorsa başka bir sayfaya yönlendirme işlemini yapmak mümkün:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre class="brush:java"&gt;public class AuthPhaseListener implements PhaseListener {&lt;br /&gt;&lt;br /&gt; @Override&lt;br /&gt; public void afterPhase(PhaseEvent event) {&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; @Override&lt;br /&gt; public void beforePhase(PhaseEvent event) {&lt;br /&gt;  User user = (User)SecurityContextHolder.getContext().getAuthentication().getPrincipal();&lt;br /&gt;  if(user != null){&lt;br /&gt;   FacesContext.getCurrentInstance().getExternalContext().redirect("main");&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; @Override&lt;br /&gt; public PhaseId getPhaseId() {&lt;br /&gt;  return PhaseId.RENDER_RESPONSE;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;i&gt;beforePhase() &lt;/i&gt;metodu içinde Spring Security'nin &lt;i&gt;SecurityContextHolder'ı&lt;/i&gt;&amp;nbsp;ile sessionda kayıtlı bir kullanıcı &amp;nbsp;olup olmadığını kontrol ettik. Eğer bir kullanıcı nesnesi elde edebiliyorsak &lt;i&gt;FacesContext&lt;/i&gt;&amp;nbsp;ile de basitçe yönlendirme işlemini yapıyoruz.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Geriye yazdığımız bu listener sınıfını projemize entegre etmeye geldi. Eğer listener tanımını &lt;i&gt;faces-config.xml&lt;/i&gt;&amp;nbsp;içerisinde yaparsak her sayfa için işletilecek yaşam döngüsünde sınıfımız tetiklenecektir. Bizim istediğimiz sadece login sayfasında bunu tetiklemek. O yüzden tanımı listenerı kullanmak istediğimiz sayfa bazında yapmamız gerekli. JSF sayfamıza şu tag'i eklemek yeterli:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre class="brush:xml"&gt;&amp;lt;f:phaseListener type="com.prime.dasgin.AuthPhaseListener"/&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;JSF kullanılmayan projelerde benzer bir mantık web.xml'de tanımlanan &lt;i&gt;Servlet Filter&lt;/i&gt;'lar ile de gerçekleştirmek mümkündür. Login sayfasına yapılacak olan bir istekte devreye girecek bir &lt;i&gt;Filter&lt;/i&gt;&amp;nbsp;tanımlamak ve benzer bir süreci içinde işletmek sorunu çözer.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-8971587087211322693?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/8971587087211322693/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2011/11/jsf-ve-spring-security-ile-onceden.html#comment-form' title='1 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/8971587087211322693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/8971587087211322693'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2011/11/jsf-ve-spring-security-ile-onceden.html' title='JSF ve Spring Security ile Önceden Kimlik Kontrolü Yapılmış Kullanıcı için Login Sayfasının Tekrar Gösterilmemesi'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-x_f3QIXkeTE/Ts8yezUM0AI/AAAAAAAABaw/UW43A2L_oHo/s72-c/jsf-request-processing-lifecycle.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-1956030897294950163</id><published>2011-10-16T18:22:00.000+03:00</published><updated>2011-10-16T18:22:08.309+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><title type='text'>MySQL'in String karşılaştırması</title><content type='html'>Var olan bir projeye sonradan katıldıysanız ya da proje ekibinizde veritabanı işlerini yöneten bir takım arkadaşınız varsa MySQL'in string karşılaştırmasının nasıl çalıştığı ile ilgili bilginiz olmayabilir. Ve vakit gelip de yeni bir projenin veritabanını oluşturma ihtiyacı duyduğunuzda ve iş başa düştüyse MySQL karakter encoding ve string karşılaştırmayla ilgili anlatacağım bu konu size zaman kazandıracaktır.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;MySQL'de nonbinary string tipleri (char, varchar, text) büyük küçük harf ayırmaksızın karşılaştırılır. Örneğin &lt;i&gt;username like 'admin' &lt;/i&gt;gibi bir sorgu koşulunda dönen sonuçlar içinde username'i &lt;i&gt;admin, ADmin, ADMIN, vb.&lt;/i&gt;&amp;nbsp;olan kayıtlar da getirilecektir.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Böyle bir sonucu engellemek için ya veritabanı oluşturulurken &lt;i&gt;schema&lt;/i&gt;&amp;nbsp;tanımının &lt;i&gt;collation&lt;/i&gt;&amp;nbsp;tipini ya da sorunu yaşadığınız kolonun &lt;i&gt;collation&lt;/i&gt;&amp;nbsp;tipini binary olacak şekilde ayarlamanız gerekiyor:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: #f7f7f7; font-family: arial, FreeSans, Helvetica, sans-serif; font-size: 14px; line-height: 20px;"&gt;CREATE DATABASE mobileme CHARACTER SET utf8 COLLATE &lt;b&gt;utf8_bin&lt;/b&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: #f7f7f7; font-family: arial, FreeSans, Helvetica, sans-serif; font-size: 14px; line-height: 20px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: #f7f7f7; font-family: arial, FreeSans, Helvetica, sans-serif; font-size: 14px; line-height: 20px;"&gt;ya da&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: #f7f7f7; font-family: arial, FreeSans, Helvetica, sans-serif; font-size: 14px; line-height: 20px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: #f7f7f7; font-family: arial, FreeSans, Helvetica, sans-serif; font-size: 14px; line-height: 20px;"&gt;ALTER TABLE table_name MODIFY username VARCHAR(25) CHARACTER SET utf8 COLLATE &lt;b&gt;utf8_bin&lt;/b&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: #f7f7f7; font-family: arial, FreeSans, Helvetica, sans-serif; font-size: 14px; line-height: 20px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Varolan schema'da böyle bir sıkıntınız varsa tüm schema'nın &lt;i&gt;collate&lt;/i&gt;&amp;nbsp;tipini değiştirmek için aşağıdaki sorgunun ürettiği sorgucukları işletmeniz yeterli:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: #f7f7f7; font-family: arial, FreeSans, Helvetica, sans-serif; font-size: 14px; line-height: 20px;"&gt;SELECT CONCAT('ALTER TABLE `', t.`TABLE_SCHEMA`, '`.`', t.`TABLE_NAME`, '` CONVERT TO CHARACTER SET utf8 COLLATE &lt;b&gt;utf8_bin&lt;/b&gt;;') as stmt&lt;br /&gt;FROM `information_schema`.`TABLES` t&lt;br /&gt;WHERE 1&lt;br /&gt;AND t.`TABLE_SCHEMA` = '&lt;b&gt;schema_name&lt;/b&gt;'&lt;br /&gt;ORDER BY 1;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial, FreeSans, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: 14px; line-height: 20px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-1956030897294950163?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/1956030897294950163/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2011/10/mysqlin-string-karslastrmas.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/1956030897294950163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/1956030897294950163'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2011/10/mysqlin-string-karslastrmas.html' title='MySQL&apos;in String karşılaştırması'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-2030820487270709877</id><published>2011-04-25T10:25:00.000+03:00</published><updated>2011-04-25T10:25:20.654+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Maven'/><title type='text'>Türkçe Maven Rehberi</title><content type='html'>"&lt;a href="http://kahveninhatiri.blogspot.com/"&gt;Kahvenin Hatırı&lt;/a&gt;" adlı blogta Sonatype'ın Maven belgelerinin Türkçe'ye çevrilmiş hallerine ulaşabilirsiniz. Son blog girdilerinde Maven ile ilgili örnekler de mevcut. Emeği geçen arkadaşa teşekkür ederiz:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://kahveninhatiri.blogspot.com/2011/04/turkce-maven-rehberi.html"&gt;http://kahveninhatiri.blogspot.com/2011/04/turkce-maven-rehberi.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-2030820487270709877?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/2030820487270709877/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2011/04/turkce-maven-rehberi.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/2030820487270709877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/2030820487270709877'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2011/04/turkce-maven-rehberi.html' title='Türkçe Maven Rehberi'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-2869212206280760016</id><published>2011-04-17T12:39:00.002+03:00</published><updated>2011-04-17T12:40:05.034+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><title type='text'>JSF 2.0 ve Composite Components</title><content type='html'>JSF 1.2 ve Facelets ile halihazırdaki bileşenleri biraraya getirip yeni bir &lt;i&gt;tag &lt;/i&gt;yaratarak&amp;nbsp;tek bir bileşen olarak kullanabiliyorduk. Bunun için izlenen adımlar:&lt;br /&gt;&lt;br /&gt;1) Biraraya getirilecek bileşenlerin .xhtml dosyasında &amp;lt;ui:composition&amp;gt; tagi altında yazılması.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"&lt;br /&gt;        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&lt;br /&gt;  xmlns:ui="http://java.sun.com/jsf/facelets"&lt;br /&gt;  xmlns:h="http://java.sun.com/jsf/html"&amp;gt;&lt;br /&gt;  &lt;br /&gt; &amp;lt;ui:composition&amp;gt;&lt;br /&gt;  &amp;lt;h:outputLabel value="#{label}" for="#{id}"/&amp;gt;&lt;br /&gt;  &amp;lt;h:inputText id="#{id}" value="#{value}"/&amp;gt;&lt;br /&gt; &amp;lt;/ui:composition&amp;gt;&lt;br /&gt;  &lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;2) Hazırlanan bu .xhtml dosyasının &lt;i&gt;namespace&lt;/i&gt;'i belirtilmiş&amp;nbsp;*.taglib.xml içerisinde ismi ve dosya adresini belirten bir tag olarak tanımlanması.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;facelet-taglib xmlns="http://java.sun.com/xml/ns/javaee"&lt;br /&gt;                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&lt;br /&gt;                xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0.xsd"&lt;br /&gt;                version="2.0"&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;namespace&amp;gt;http://mdasgin.blogspot.com/custom&amp;lt;/namespace&amp;gt;&lt;br /&gt;    &lt;br /&gt;    &amp;lt;tag&amp;gt;&lt;br /&gt;     &amp;lt;tag-name&amp;gt;myInput&amp;lt;/tag-name&amp;gt;&lt;br /&gt;     &amp;lt;source&amp;gt;tags/customTag.xhtml&amp;lt;/source&amp;gt;&lt;br /&gt;    &amp;lt;/tag&amp;gt;&lt;br /&gt;&amp;lt;/facelet-taglib&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;3) *.taglib.xml' in web.xml'de tanımının yapılması.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&amp;lt;context-param&amp;gt;&lt;br /&gt; &amp;lt;param-name&amp;gt;javax.faces.FACELETS_LIBRARIES&amp;lt;/param-name&amp;gt;&lt;br /&gt; &amp;lt;param-value&amp;gt;&lt;br /&gt;        /WEB-INF/taglibs/custom.taglib.xml;&lt;br /&gt;    &amp;lt;/param-value&amp;gt;&lt;br /&gt;&amp;lt;/context-param&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;4) Yeni yaratılan tag'in kullanılmak istendiği yerde namespace ve tag ismi belirtilerek kullanılmasını içermekteydi.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&amp;lt;html xmlns:m="http://mdasgin.blogspot.com/custom"&amp;gt;&lt;br /&gt;..&lt;br /&gt;&amp;lt;m:myInput id="myInput" label="Username" value="#{user.name}"/&amp;gt;&lt;br /&gt;..&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Ne var ki bu şekilde Facelets ile yapılan yeni bileşen yaratma işleminde yaratılan bileşene sadece &lt;i&gt;Value Expression&lt;/i&gt;&amp;nbsp;tanımları geçilebiliyordu. Örneğin &lt;i&gt;h:inputText&lt;/i&gt;'in yanına &lt;i&gt;h:commandButton&lt;/i&gt;&amp;nbsp;bileşeni ekleyerek commandButton'un kullanımına &amp;lt;&lt;i&gt;m:myInput action="#{user.save}"&lt;/i&gt;&amp;gt; gibi bir &lt;i&gt;Method Expression&lt;/i&gt;&amp;nbsp;parametresi veremiyorduk.&lt;br /&gt;&lt;br /&gt;Neyseki JSF 2.0 ile gelen &lt;i&gt;Composite Components&lt;/i&gt;&amp;nbsp;özelliği ile geliştiriciyi yoran gereksiz adımlardan ve yeni bileşenimize method expression aktaramama gibi kısıtlardan kurtuluyoruz. &lt;i&gt;WEB-INF&lt;/i&gt;/&lt;i&gt;resources&lt;/i&gt;&amp;nbsp;klasörü içinde namespace görevi gören bir dizin oluşturmak ve bu dizin altında &lt;i&gt;bileşenIsmi.xhtml&lt;/i&gt;&amp;nbsp;dosyası hazırlamamız yeterli:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"&lt;br /&gt;        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&lt;br /&gt;   xmlns:composite="http://java.sun.com/jsf/composite"&lt;br /&gt;   xmlns:h="http://java.sun.com/jsf/html"&lt;br /&gt;   xmlns:p="http://primefaces.prime.com.tr/ui"&amp;gt;&lt;br /&gt; &lt;br /&gt; &amp;lt;composite:interface&amp;gt;&lt;br /&gt;  &amp;lt;composite:attribute name="id" required="true"/&amp;gt;&lt;br /&gt;  &amp;lt;composite:attribute name="label" required="true"/&amp;gt;&lt;br /&gt;  &amp;lt;composite:attribute name="value"/&amp;gt;&lt;br /&gt;  &amp;lt;composite:attribute name="action" method-signature="void action()"/&amp;gt;&lt;br /&gt; &amp;lt;/composite:interface&amp;gt;&lt;br /&gt; &lt;br /&gt; &amp;lt;composite:implementation&amp;gt;&lt;br /&gt;  &amp;lt;h:outputLabel value="#{cc.attrs.label}" for="#{cc.attrs.id}"/&amp;gt;&lt;br /&gt;  &amp;lt;h:inputText id="#{cc.attrs.id}" value="${cc.attrs.value}"/&amp;gt;&lt;br /&gt;  &amp;lt;h:commandButton value="Save" action="#{cc.attrs.action}"/&amp;gt; &lt;br /&gt; &amp;lt;/composite:implementation&amp;gt;&lt;br /&gt; &lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Yukarda&amp;nbsp;&lt;i&gt;/WEB-INF/resources/components&lt;/i&gt; dizini altına &lt;i&gt;myInput.xhtml&lt;/i&gt;&amp;nbsp;dosyasının içeriği mevcut. Ayrıntılara &amp;nbsp;göz atarsak, JSF 2.0 ile gelen &lt;i&gt;composite&lt;/i&gt;&amp;nbsp;namespace'inin kullanımı hemen dikkat çekiyor. Dosya içeriği&amp;nbsp;&lt;i&gt;composite:interface&lt;/i&gt;&amp;nbsp;ve &lt;i&gt;composite:implementation&lt;/i&gt;&amp;nbsp;olarak ikiye ayrılıyor. Implementation kısmında istenen yetenek gerçekleştirilirken interface kısmında yeni bileşenin ihtiyaç duyduğu değişkenler sıralanıyor. Değişkenleri detaylı incelersek &lt;i&gt;value expression &lt;/i&gt;alan değişkenlerin yanında &lt;i&gt;method expression&lt;/i&gt;&amp;nbsp;alan &lt;i&gt;action&amp;nbsp;&lt;/i&gt;değişkeninin tanımlanması örneklemiştir. Ayrıca değişkenlere erişim de görüldüğü gibi &lt;i&gt;#{cc.attrs.degiskenIsmi} &lt;/i&gt;&amp;nbsp;şeklinde yapılıyor.&lt;br /&gt;&lt;br /&gt;Yeni bileşenimizi bu şekilde hazırladıktan sonra hiçbir ek tanım yapmadan JSF sayfalarımızda kullanabiliriz:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&amp;lt;html xmlns:m="http://java.sun.com/jsf/composite/components"&amp;gt;&lt;br /&gt; ...&lt;br /&gt;  &amp;lt;m:myInput id="myInput" label="Username" value="#{user.name}" action="${user.save}"/&amp;gt;&lt;br /&gt; ...&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Küçük bir not: Composite Components kullanırken tanımladığınız değişkenin ismi "rendered" olursa JSF'in hata fırlattığını da hatırlatayım. İlgili bug kaydı&lt;a href="http://java.net/jira/browse/JAVASERVERFACES-1849"&gt; burada.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-2869212206280760016?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/2869212206280760016/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2011/04/jsf-composite-components.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/2869212206280760016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/2869212206280760016'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2011/04/jsf-composite-components.html' title='JSF 2.0 ve Composite Components'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-7263366881845637200</id><published>2011-03-17T21:49:00.001+02:00</published><updated>2011-03-17T22:07:09.381+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash Scope'/><title type='text'>JSF2'de Flash Scope Sorunu</title><content type='html'>&lt;i&gt;Redirect&lt;/i&gt;&amp;nbsp;işlemlerinde sunucuya ikinci bir istem gönderildiği için &lt;i&gt;Request Scope&lt;/i&gt;&amp;nbsp;içindeki değişkenler kayboluyor, bu yüzden aktarılacak değişkenler&amp;nbsp;&lt;i&gt;Session Scope'&lt;/i&gt;ta tutuluyordu. Session scope'un gereksiz meşgul edilmemesi için JSF2 ile birlikte &lt;i&gt;Map&lt;/i&gt;&amp;nbsp;gerçekleştirimi olan &lt;i&gt;flash&lt;/i&gt;&amp;nbsp;nesnesi kullanıma sunuldu. Böylelikle redirect işlemlerinde değişken aktarımı ve kullanımı Java sınıfı içerisinde:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:java"&gt;ExternalContext.getFlash().put("message", "Your password is about to expire");&lt;br /&gt;&lt;/pre&gt;JSF sayfası içerisinde de:&lt;br /&gt;&lt;pre class="brush:xml"&gt;#{flash.message}&lt;br /&gt;&lt;/pre&gt;şeklinde yapılabilir hale geldi. Ne var ki bu özellik Mojarra 2.0.3 impl'de (MyFaces ile denemedim) sadece aynı dizin ve altdizinlerde bulunan sayfalara redirect yapılırsa çalışıyor. Farklı dizin yapılarında bulunan sayfalar arasında yapılan redirect işleminde bir bug nedeniyle Flash scope'a konulan değişkene ulaşamıyorsunuz. Sorunun nerden kaynaklandığı ile ilgili bir bağlantı &lt;a href="http://www.coderanch.com/t/518729/JSF/java/JSF-Flash-scope-cookie-not"&gt;şurda&lt;/a&gt;.. Böyle bir gereksinimde gene eski usül, Session Scope'tan faydalanmak ve ilgili değişken redirect yapılan sayfada kullanıldıktan sonra Session Scope'tan değişkeni kaldırmayı unutmamak gerekiyor.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-7263366881845637200?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/7263366881845637200/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2011/03/jsf2de-flash-scope-sorunu.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/7263366881845637200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/7263366881845637200'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2011/03/jsf2de-flash-scope-sorunu.html' title='JSF2&apos;de Flash Scope Sorunu'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-7374081783053821976</id><published>2011-02-16T14:54:00.002+02:00</published><updated>2011-02-17T14:32:10.814+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SMTPAppender'/><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><category scheme='http://www.blogger.com/atom/ns#' term='Log4j'/><title type='text'>JSF'de SMTPAppender ile Gmail üzerinden Exception Bildirimi</title><content type='html'>Geliştirdiğimiz uygulamaların kullanımı esnasında oluşabilecek kullanıcı kaynaklı ya da sistemsel hataları yakalayıp kullanıcıyı bilgilendirmek ya da yönlendirmek için yoğun çaba harcarız. Harcanan çabaya rağmen gözden kaçırılan bir hatanın oluşması durumunda ise hatanın sebebini bulmak için genelde loglar kurcalanır. Bir hata oluştuğunu anlamak için de ya kullanıcı geri bildirimi ya da rutin log kontrolleri yapılır. Bu geri bildirimin hata oluştuğu esnada bir ileti ile otomatik olarak yapılması da hataya müdahale için iyi bir yöntemdir. Bunun için popüler loglama kütüphanesi log4j'nin &lt;i&gt;SMTPAppender &lt;/i&gt;sınıfı kullanılabilir. Örneğin yakalanan bir &lt;i&gt;Exception&lt;/i&gt;'ın &lt;i&gt;error&lt;/i&gt;&amp;nbsp;seviyesinde loglanması ile log4j'nin bir ileti göndermesi sağlanabilir.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Bu iş için Gmail'i kullanabilir miyiz diye küçük bir arama yaptığımda &lt;a href="http://marcelo-olivas.blogspot.com/2009/11/gmail-and-log4j-e-mail-appender-error.html"&gt;şu blog girdisine&lt;/a&gt; rastladım. Örnek kodta Gmail ayarları barındıran bir Enum mevcut. Mail gönderimi için de Spring çatısının &lt;a href="http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mail.html"&gt;Email&lt;/a&gt; desteği kullanılmış. Spring Email kullanabilmek için ayrıca&amp;nbsp;&lt;i&gt;activation.jar&amp;nbsp;&lt;/i&gt;ve&amp;nbsp;&lt;i&gt;mail.jar&lt;/i&gt;&amp;nbsp;kütüphaneleri de gerekli.&amp;nbsp;Madem Spring kullanacağız bağımlılık yönetimini Spring'e bırakalım. Enum sınıfı yerine öncelikle JavaMailSenderImpl yaratan bir bean tanımı yapalım:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre class="brush:xml"&gt;&amp;lt;bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"&amp;gt;&lt;br /&gt;        &amp;lt;property name="host" value="smtp.googlemail.com"/&amp;gt;&lt;br /&gt;        &amp;lt;property name="port" value="587"/&amp;gt;&lt;br /&gt;        &amp;lt;property name="username" value="gmailAccount@gmail.com"/&amp;gt;&lt;br /&gt;        &amp;lt;property name="password" value="armut123"/&amp;gt;&lt;br /&gt;        &amp;lt;property name="javaMailProperties"&amp;gt;&lt;br /&gt;            &amp;lt;props&amp;gt;&lt;br /&gt;                &amp;lt;prop key="mail.smtp.auth"&amp;gt;true&amp;lt;/prop&amp;gt;                &lt;br /&gt;                &amp;lt;prop key="mail.smtp.starttls.enable"&amp;gt;true&amp;lt;/prop&amp;gt;                &lt;br /&gt;            &amp;lt;/props&amp;gt;&lt;br /&gt;        &amp;lt;/property&amp;gt;&lt;br /&gt;    &amp;lt;/bean&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;Yapmış olduğumuz bean tanımını &lt;i&gt;ApplicationContext&lt;/i&gt;'ten alıp GMailAppender sınıfının kullanımına sunacak olan &lt;i&gt;JavaMailSenderFactory &lt;/i&gt;sınıfını yazalım:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:java"&gt;@Component&lt;br /&gt;public class JavaMailSenderFactory implements ApplicationContextAware {&lt;br /&gt;&lt;br /&gt;    private static ApplicationContext applicationContext;&lt;br /&gt;    &lt;br /&gt;    public static JavaMailSender createJavaMailSender(){&lt;br /&gt;        return applicationContext.getBean("javaMailSender", JavaMailSender.class);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    @Override&lt;br /&gt;    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {&lt;br /&gt;        this.applicationContext = applicationContext;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;JavaMailSenderFactory sınıfını da annotation yardımıyla Spring bean olarak tanımladık. Bean tanımını XML ile de yapabilirdik. Bu sınıf&amp;nbsp;&lt;i&gt;ApplicationContextAware&lt;/i&gt;&amp;nbsp;arayüzünü gerçekleştirdiği için &lt;i&gt;Spring application context&lt;/i&gt;'e&lt;i&gt;&amp;nbsp;&lt;/i&gt;erişerek JavaMailSender beanine ulaşabiliriz. Bunun için bean tanımını döndüren static bir metot yeterli olur. Log4j'nin &lt;i&gt;SMTPAppender&lt;/i&gt;&amp;nbsp;sınıfınından türetilen&amp;nbsp;&lt;i&gt;GMailAppender&lt;/i&gt;&amp;nbsp;sınıfının bizim yaptığımız değişiklikler sonrasında aldığı hal şu şekilde:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:java"&gt;public class GMailAppender extends SMTPAppender {&lt;br /&gt;    private static final String NL = System.getProperty("line.separator");&lt;br /&gt;    &lt;br /&gt;    @Override&lt;br /&gt;    public void append(LoggingEvent event){&lt;br /&gt;        &lt;br /&gt;        SimpleMailMessage msg = new SimpleMailMessage();&lt;br /&gt;        StringBuilder builder = new StringBuilder();&lt;br /&gt;        builder.append(getLayout().format(event));&lt;br /&gt;        builder.append(event.getMessage().toString());&lt;br /&gt;        if (event.getThrowableInformation() != null) {&lt;br /&gt;            builder.append(NL);&lt;br /&gt;            String[] stackTrace = event.getThrowableInformation().getThrowableStrRep();&lt;br /&gt;            for(int i = 0; i &amp;lt; stackTrace.length; i++) {&lt;br /&gt;                builder.append(stackTrace[i] + NL);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        String[] senders = getTo().trim().replace(" ", "").split(",");&lt;br /&gt;        &lt;br /&gt;        msg.setTo(senders);&lt;br /&gt;        msg.setText(builder.toString());&lt;br /&gt;        msg.setSubject(this.getSubject());&lt;br /&gt;        &lt;br /&gt;        try{&lt;br /&gt;            JavaMailSender javaMail = JavaMailSenderFactory.createJavaMailSender();&lt;br /&gt;            javaMail.send(msg);&lt;br /&gt;        }catch (MailException e) {&lt;br /&gt;            System.err.println("!!! HATA MAILI GONDERILEMEDI !!! : ");&lt;br /&gt;            e.printStackTrace();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Referans aldığım sitedeki &lt;i&gt;append()&lt;/i&gt;metodunu da az biraz değiştirdim.&amp;nbsp;Değişikliğin nedeni &lt;i&gt;append() &lt;/i&gt;metodunun &lt;i&gt;super.append(event) &lt;/i&gt;ile akışı SMTPAppender sınıfına aktarmış olması. GMailAppender içinde gerekli biçimlendirme ve gönderim işlemi yapıldığı için buna gerek yok aslında. Şimdi de GMailAppender için Log4J ayarlarını yapılandıralım. Ben properties dosyası yerine log4j.xml kullanmayı tercih ettim:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&amp;lt;root&amp;gt;&lt;br /&gt;        &amp;lt;priority value="info" /&amp;gt;&lt;br /&gt;        &amp;lt;appender-ref ref="GMailAppender" /&amp;gt;&lt;br /&gt;    &amp;lt;/root&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;appender name="GMailAppender" class="com.prime.mobileme.core.util.appender.GMailAppender"&amp;gt;&lt;br /&gt;        &amp;lt;param name="BufferSize" value="1" /&amp;gt;&lt;br /&gt;        &amp;lt;param name="SMTPDebug" value="false" /&amp;gt;&lt;br /&gt;        &amp;lt;param name="To" value="dasgin@gmail.com" /&amp;gt;&lt;br /&gt;        &amp;lt;param name="Subject" value="Ucundan Java ERROR" /&amp;gt;&lt;br /&gt;        &amp;lt;layout class="org.apache.log4j.PatternLayout"&amp;gt;&lt;br /&gt;            &amp;lt;param name="ConversionPattern"    value="[%d] [%t] %-5p %c %x" /&amp;gt;&lt;br /&gt;        &amp;lt;/layout&amp;gt;&lt;br /&gt;        &amp;lt;filter class="org.apache.log4j.varia.LevelRangeFilter"&amp;gt;&lt;br /&gt;            &amp;lt;param name="LevelMin" value="error" /&amp;gt;&lt;br /&gt;            &amp;lt;param name="LevelMax" value="fatal" /&amp;gt;&lt;br /&gt;        &amp;lt;/filter&amp;gt;&lt;br /&gt;    &amp;lt;/appender&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Yukarıdaki ayarlardan da anlaşılacağı gibi yakaladığınız Exception'ları log4j ile &lt;i&gt;error &lt;/i&gt;ya da &lt;i&gt;fatal &lt;/i&gt;olarak loglarsanız loglanan hata mail olarak belirttiğiniz Gmail hesabı üzerinden gönderilecektir. Peki yakalayamadığımız hata durumlarında ne yapmalı? Eğer JSF 2 kullanıyorsanız &lt;a href="http://jugojava.blogspot.com/2010/09/jsf-2-exception-handling.html"&gt;şu blog girdisinden&lt;/a&gt; faydalanabiliriz. Gene buradaki örneği kendi ihtiyaçlarımıza göre yeniden düzenleyelim. Öncelikle oluşan hatayı ele alarak log4j'ye error olarak log düşen &lt;i&gt;ExceptionHandler &lt;/i&gt;sınıfını hazırlayalım:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:java"&gt;public class MyExceptionHandler extends ExceptionHandlerWrapper {&lt;br /&gt;&lt;br /&gt;    private static Logger logger = LoggerFactory.getLogger(MyExceptionHandler.class);&lt;br /&gt;    private ExceptionHandler wrappedExceptionHandler;&lt;br /&gt;    &lt;br /&gt;    public MyExceptionHandler(ExceptionHandler exceptionHandler){&lt;br /&gt;        this.wrappedExceptionHandler = exceptionHandler;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    @Override&lt;br /&gt;    public ExceptionHandler getWrapped() {&lt;br /&gt;        return wrappedExceptionHandler;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    @Override&lt;br /&gt;    public void handle(){&lt;br /&gt;        &lt;br /&gt;        for (ExceptionQueuedEvent event : getUnhandledExceptionQueuedEvents()) {&lt;br /&gt;            ExceptionQueuedEventContext context = (ExceptionQueuedEventContext)event.getSource();&lt;br /&gt;            Throwable t = context.getException();&lt;br /&gt;            logger.error(&amp;quot;Unhandled Exception: &amp;quot;, t);&lt;br /&gt;        }&lt;br /&gt;        getWrapped().handle();&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Ardından ExceptionHandler sınıfımızı JSF'in kullanabilmesi için &lt;i&gt;ExceptionHandlerFactory &lt;/i&gt;sınımızı hazırlayalım:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:java"&gt;public class MyExceptionHandlerFactory extends ExceptionHandlerFactory {&lt;br /&gt;&lt;br /&gt;    private ExceptionHandlerFactory parent;&lt;br /&gt;    &lt;br /&gt;    public MyExceptionHandlerFactory(ExceptionHandlerFactory parent){&lt;br /&gt;        this.parent = parent;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    @Override&lt;br /&gt;    public ExceptionHandler getExceptionHandler() {&lt;br /&gt;        return new MyExceptionHandler(parent.getExceptionHandler());&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;En son adımda da faces-config.xml'e yazdığımız factory sınıfını tanıtmak kalıyor:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&amp;lt;factory&amp;gt;&lt;br /&gt;          &amp;lt;exception-handler-factory&amp;gt;&lt;br /&gt;            ucundan.java.MyExceptionHandlerFactory&lt;br /&gt;          &amp;lt;/exception-handler-factory&amp;gt;&lt;br /&gt;    &amp;lt;/factory&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Kaynaklar:&lt;br /&gt;*&amp;nbsp;&lt;span class="Apple-style-span" style="color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;a href="http://marcelo-olivas.blogspot.com/2009/11/gmail-and-log4j-e-mail-appender-error.html"&gt;GMail and log4j e-mail appender - error STARTTLS&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;*&amp;nbsp;&lt;span class="Apple-style-span" style="color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;"&gt;&lt;a href="http://jugojava.blogspot.com/2010/09/jsf-2-exception-handling.html"&gt;JSF 2 Exception Handling&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-7374081783053821976?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/7374081783053821976/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2011/02/jsfde-smtpappender-ile-gmail-uzerinden.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/7374081783053821976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/7374081783053821976'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2011/02/jsfde-smtpappender-ile-gmail-uzerinden.html' title='JSF&apos;de SMTPAppender ile Gmail üzerinden Exception Bildirimi'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-5720419933596604449</id><published>2010-12-30T14:53:00.000+02:00</published><updated>2010-12-30T14:53:47.635+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Annotation'/><category scheme='http://www.blogger.com/atom/ns#' term='Spring'/><category scheme='http://www.blogger.com/atom/ns#' term='Hibernate'/><title type='text'>Spring ile Hibernate Annotation Kullanılan Entity Sınıfların Otomatik Algılanması</title><content type='html'>Veri erişim katmanında JPA standartını kullanırken annotation ile tanımladığımız entity sınıflarımızın algılanması, proje ayağa kalkarken otomatik gerçekleştirilir. Araya JPA standartını sokmak yerine doğrudan Hibernate çatısını kullanmak istediğimizde annotationlarla tanımlanmış bu entity sınıflarının algılanabilmesi için kullanılagelen yaygın yöntem ya &lt;i&gt;hibernate.cfg.xml&lt;/i&gt;&amp;nbsp;içersinde bu sınıfları algılatmak ya da her bir entity sınıfını Spring'in Hibernate entegrasonu için kullanıma sunduğu AnnotationSessionFactoryBean tanımı içinde tek tek belirtmektir:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&amp;lt;bean id="sessionFactory"&lt;br /&gt; class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"&amp;gt;&lt;br /&gt; &amp;lt;property name="dataSource" ref="${dataSourceType}" /&amp;gt;&lt;br /&gt; &amp;lt;property name="hibernateProperties"&amp;gt;&lt;br /&gt;  &amp;lt;props&amp;gt;&lt;br /&gt;   &amp;lt;prop key="hibernate.dialect"&amp;gt;${hibernate.dialect}&amp;lt;/prop&amp;gt;&lt;br /&gt;   &amp;lt;prop key="hibernate.show_sql"&amp;gt;${hibernate.show_sql}&amp;lt;/prop&amp;gt;&lt;br /&gt;   &amp;lt;prop key="hibernate.format_sql"&amp;gt;${hibernate.format_sql}&amp;lt;/prop&amp;gt;&lt;br /&gt;   &amp;lt;prop key="hibernate.hbm2ddl.auto"&amp;gt;${hibernate.hbm2ddl.auto}&amp;lt;/prop&amp;gt;&lt;br /&gt;  &amp;lt;/props&amp;gt;&lt;br /&gt; &amp;lt;/property&amp;gt;&lt;br /&gt; &amp;lt;property name="annotatedClasses"&amp;gt;&lt;br /&gt;  &amp;lt;list&amp;gt;&lt;br /&gt;   &amp;lt;value&amp;gt;com.prime.ExampleClass1&amp;lt;/value&amp;gt;&lt;br /&gt;   &amp;lt;value&amp;gt;com.prime.ExampleClass2&amp;lt;/value&amp;gt;&lt;br /&gt;  &amp;lt;/list&amp;gt;&lt;br /&gt;    &amp;lt;/property&amp;gt;&lt;br /&gt;&amp;lt;/bean&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;i&gt;annotatedClasses&lt;/i&gt;'ın bu şekilde kullanımı entity sınıf sayısı arttıkça sıkıntı yaratmaya başlayabilir. Bunun yerine aynı Spring bean'in &lt;i&gt;packagesToScan&lt;/i&gt;&amp;nbsp;değişkeni uygun paket yapısıyla kurarak uzun uzadıya sınıf tanımları yapmaktan kurtulabilirsiniz:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&amp;lt;property name="packagesToScan" value="com.prime" /&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;ya da&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&amp;lt;property name="packagesToScan"&amp;gt;&lt;br /&gt; &amp;lt;list&amp;gt;&lt;br /&gt;  &amp;lt;value&amp;gt;com.prime.package1.model&amp;lt;/value&amp;gt;&lt;br /&gt;  &amp;lt;value&amp;gt;com.prime.package2.model&amp;lt;/value&amp;gt;&lt;br /&gt; &amp;lt;/list&amp;gt;&lt;br /&gt;&amp;lt;/property&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Hibernate annotation kullanan entitylerinizin&amp;nbsp;otomatik algılanması için&amp;nbsp;yukardaki tüm kullanımlara ek olarak&amp;nbsp;proje classpath'inde javassist.jar kütüphanesi de bulunmalıdır..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-5720419933596604449?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/5720419933596604449/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2010/12/spring-ile-hibernate-annotation.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/5720419933596604449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/5720419933596604449'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2010/12/spring-ile-hibernate-annotation.html' title='Spring ile Hibernate Annotation Kullanılan Entity Sınıfların Otomatik Algılanması'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-563381513204504519</id><published>2010-12-21T16:38:00.000+02:00</published><updated>2010-12-21T16:38:37.385+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><category scheme='http://www.blogger.com/atom/ns#' term='Spring'/><title type='text'>Spring - JSF Yeniden (JSF 2.0)</title><content type='html'>&lt;div style="text-align: justify;"&gt;Blogta ziyaret edilen girdilere göz attığımda "&lt;a href="http://mdasgin.blogspot.com/2008/01/jsf-javaserver-faces-bilindii-gibi-java.html"&gt;Spring - JSF Bütünleştirmesi&lt;/a&gt;" yazımın son zamanlarda tekrar ziyaret edildiğini farkettim. Hazır geçen hafta da JTPD'nin eğitim seminerlerinde bu konular üzerine eğilmişken iki çatının entegrasyonunu, değişen yeteneklerini de dikkate alarak tekrar gözden geçirelim istedim.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://mdasgin.blogspot.com/2008/01/jsf-javaserver-faces-bilindii-gibi-java.html"&gt;Eski girdide&lt;/a&gt; bu iki çatıyı birbirleriyle anlaşır hale getirebilmek için JSF'ye &lt;i&gt;variable resolver&lt;/i&gt;&amp;nbsp;olarak Spring'in bize sunduğu &lt;span class="Apple-style-span" style="font-family: monospace; font-size: 13px; line-height: 13px; white-space: pre;"&gt;DelegatingVariableResolver&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #37483d; font-family: 'Courier New', monospace; font-size: 11px; line-height: 13px;"&gt;&amp;nbsp;&lt;/span&gt;sınıfını tanıtmıştık. Bu sınıf iki çatı arasında bean aktarımlarını gerçekleştirmek için aktarımı yapılacak beani öncelikle JSF beanlerinde, bulamazsa Spring beanlerinde arıyordu. Benzer şekilde, önce Spring bean tanımlarına sonra da JSF bean tanımlarına bakan&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: monospace; font-size: 13px; line-height: 13px; white-space: pre;"&gt;SpringBeanVariableResolver &lt;/span&gt;Spring sınıfını da JSF 1.1 ve 1.2 sürümlerinde kullanabiliriz.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;JSF 1.2+ sürümlerinde ise variable resolver kullanımı yerini &lt;i&gt;ELResolver&lt;/i&gt;'a bırakıyor:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&amp;lt;faces-config&amp;gt;&lt;br /&gt;  &amp;lt;application&amp;gt;&lt;br /&gt;    &amp;lt;el-resolver&amp;gt;org.springframework.web.jsf.el.SpringBeanFacesELResolver&amp;lt;/el-resolver&amp;gt;&lt;br /&gt;  &amp;lt;/application&amp;gt;&lt;br /&gt;&amp;lt;/faces-config&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Spring ile JSF'i bu şekilde ilişkilendirdikten sonra&amp;nbsp;eski yazıdaki örneği bu sefer&amp;nbsp;JSF 2.0'ın annotationlarını kullanarak Spring beanini JSF bean tanımı içine aktarımını yapalım:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:java"&gt;@ManagedBean(name="member")&lt;br /&gt;@RequestScoped&lt;br /&gt;public class Member {&lt;br /&gt;&lt;br /&gt; @ManagedProperty(value="#{memberService}")&lt;br /&gt; private MemberService memberService;&lt;br /&gt;&lt;br /&gt; // memberService getter/setter&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Spring bean tanımını da @Service("memberService") ya da @Component("memberService") annotationlarını kullanarak da xml'e bulaşmadan MemberService sınıfı içinde yapabiliriz:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:java"&gt;@Service("memberService")&lt;br /&gt;public class MemberServiceImpl implements MemberService {&lt;br /&gt;    // ...&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Spring annotationlarının çalışması içinse Spring context xml tanımınına ya &lt;i&gt;&amp;lt;context:component-scan base-package="com.prime.packname"&amp;gt;&amp;lt;/context:component-scan&amp;gt;&lt;/i&gt;&amp;nbsp;satırını eklemeli ya da web.xml içerisinde Spring bean tanımlarını xml yerine annotation kullanarak yapacağımızı belirten gerekli düzenlemeleri yapmalıyız:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:xml"&gt;&amp;lt;web-app&amp;gt;&lt;br /&gt;      &amp;lt;context-param&amp;gt;&lt;br /&gt;            &amp;lt;param-name&amp;gt;contextClass&amp;lt;/param-name&amp;gt;&lt;br /&gt;            &amp;lt;param-value&amp;gt;org.springframework.web.context.support.AnnotationConfigWebApplicationContext&amp;lt;/param-value&amp;gt;&lt;br /&gt;      &amp;lt;/context-param&amp;gt;&lt;br /&gt;&lt;br /&gt;      &amp;lt;context-param&amp;gt;&lt;br /&gt;            &amp;lt;param-name&amp;gt;contextConfigLocation&amp;lt;/param-name&amp;gt;&lt;br /&gt;            &amp;lt;param-value&amp;gt;com.prime.packageName&amp;lt;/param-value&amp;gt;&lt;br /&gt;      &amp;lt;/context-param&amp;gt;&lt;br /&gt;&amp;lt;/web-app&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Bu işlemlerin ardından annotationlarla tanımladığımız Spring ve JSF beanlerini birbirine entegre olarak kullanabiliriz. Bol Javalar..&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-563381513204504519?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/563381513204504519/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2010/12/spring-jsf-yeniden-jsf-20.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/563381513204504519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/563381513204504519'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2010/12/spring-jsf-yeniden-jsf-20.html' title='Spring - JSF Yeniden (JSF 2.0)'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-5284081867863454178</id><published>2010-12-12T21:10:00.004+02:00</published><updated>2010-12-15T10:03:39.141+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sunum'/><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><category scheme='http://www.blogger.com/atom/ns#' term='Spring'/><category scheme='http://www.blogger.com/atom/ns#' term='JPA'/><category scheme='http://www.blogger.com/atom/ns#' term='JTPD'/><title type='text'>JTPD'de JSF, Spring ve JPA Sunumları</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: justify;"&gt;Dün &lt;a href="http://www.jtpd.org/"&gt;JTPD&lt;/a&gt;'nin düzenlediği Java eğitimlerinin 3. haftasında katılımcılara JSF, Spring ve JPA sunumları yapma fırsatım oldu. Sunumların ardından küçük örnekler yaparak da anlatılan konuları pekiştirmeye çalıştık. Her ne kadar bahsi geçen konuları detaylı incelemek için 4-5 saat gibi çok çok kısıtlı süremiz olsa da mümkün olduğunca bu çatılar (framework) bizlere neler vaat ediyor, yetenekleri neler ve birbirleriyle nasıl entegre edebiliriz konuları üzerinden hızlıca geçtik. Anlatılan konular katılımcılar için zaman zaman detaylı ve karmaşık olsa da beni sabırla dinledikleri için kendilerine çok teşekkür ederim. Umarım faydalı olabilmişimdir. Hazırladığım eğitim sunumlarına ve örnek projelere &lt;a href="https://bit.ly/dasgin_jtpd"&gt;buradan&lt;/a&gt; erişebilirsiniz. Java kültürünü daha geniş kitlelere yaymaya çalışan JTPD derneğini de tebrik ediyorum..&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://i55.twitgoo.com/5frlo1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://i55.twitgoo.com/5frlo1.jpg" width="191" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-5284081867863454178?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/5284081867863454178/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2010/12/jtpdde-jsf-spring-ve-jpa-sunumlar.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/5284081867863454178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/5284081867863454178'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2010/12/jtpdde-jsf-spring-ve-jpa-sunumlar.html' title='JTPD&apos;de JSF, Spring ve JPA Sunumları'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-4713663700553811888</id><published>2010-11-06T15:10:00.000+02:00</published><updated>2010-11-06T15:10:34.860+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Refactoring'/><category scheme='http://www.blogger.com/atom/ns#' term='Null Object'/><title type='text'>Introduce Null Object</title><content type='html'>&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;div style="background-color: transparent; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Tasarım örüntüleri yazılımın yönetilebilirliği ve genişletilebilirliği için ulaşılmak istenen hedeftir. Sadece bu hedefi anlayıp uygulamaya çalışmak yerine, hedefe nasıl ulaşıldığını anlamak daha önemlidir. Refactoring yöntemleri, sizi ideal hedefe ulaştıran tasarımsal evrimi temsil eder&lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 6.6pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: super; white-space: pre-wrap;"&gt;[1]&lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;. Bu yöntemlerden bir tanesi de &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: italic; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Null Object&lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;tir.&lt;/span&gt;&lt;br /&gt;&lt;div style="background-color: transparent; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Uygulama geliştirme esnasında bir metot sorgusu sonucu dönen nesnenin null olup olmadığının kontrolünü yapmak sıklıkla başvurduğumuz kontrollerden birisidir. Bu kontrolü unuttuğumuz da ise vay halimize, o ünlü &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: italic; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;NullPointerException&lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; hatasıyla uygulamamızın göçmesi kaçınılmaz olur. &lt;/span&gt;&lt;/div&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;İş mantığımızın gereksinimleri sebebiyle bir nesne için bu kontrolü sıklıkla tekrarlayarak null olma durumunda kodun alternatif davranışlar sergilemesi gerekebilir. Bu durum kaynak kodumuzun fazlaca tekrarlı kontrol deyimi içermesine ve Martin Fowler’ın Refactoring&lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 6.6pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: super; white-space: pre-wrap;"&gt;[2]&lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; kitabındaki deyimiyle kodun kötü kokular yaymasına sebep olacaktır. Böyle bir durumda uygulanması gereken refactoring (ben “kod adam etme” demeyi seviyorum) yöntemi &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: italic; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Null Object &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;olmalıdır.&lt;/span&gt;&lt;/div&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Bir &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: italic; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Null Object &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;temel olarak gerçek nesneyle aynı metot imzalarına sahiptir. Metotları ise null olma durumunda varsayılan değerleri döndürecek, alternatif davranışları sergileyecek şekilde gerçekleştirilir.&lt;/span&gt;&lt;/div&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Metot imzaları aynı olacağı için &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: italic; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Null Object &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;ya gerçek nesneden kalıtım (inheritance) yoluyla türetilecek ya da gerçek nesneyle ortak bir interfaceden geliştirilecek (implement) şekilde tasarlanabilir.&lt;/span&gt;&lt;/div&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium; white-space: normal;"&gt;&lt;img height="187px;" src="https://lh5.googleusercontent.com/PrsgdkC8YUG_UnyOdfOGMKIlTwV5N_uMKEvmVVdpGvaTpNdzcWL9QqBGHxzMJq7_Yksot5JAYEDJ1EEwnhgzZEL3E7xjcr3E52t0I1AyzwDFh196lQ" width="124px;" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Kalıtım yoluyla yaratılan &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: italic; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Null Object&lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; sınıfının, null olma durumunda alternatif davranışı sergileyecek metotları override etmesi gerekmektedir. Atasınıfa yeni eklenen metotların alternatif davranış için override edilmesinin unutulması hatalı işleyişe sebep olabilir. Interface gerçekleştirilerek yaratılan &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: italic; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Null Object &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;sınıfında bu risk söz konusu olmaz. Ama bu sefer yaratılan yeni sınıf içeriğinde alternatif davranış sergilemek zorunda olmayan diğer metotların gövdelerinin de barındırması gerekir.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Bir diğer sıkıntı da geliştirim aşamasında değişmeye meyilli interface tasarımlarıdır. Yeni metot eklendikçe, metot çıkartıldıkça ya da metot imzaları değiştikçe &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: italic; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Null Object&lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; sınıfını da değiştirmek gerekir. Bu soruna Kenan Sevindik, blogunda yazdığı “Mockito ile Null Object”&lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 6.6pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: super; white-space: pre-wrap;"&gt;[3]&lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; yazısında ilginç bir çözüm getiriyor. Joshua Kerievsky “&lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: italic; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Refactoring to Patterns&lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;”[1] kitabında &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: italic; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Null Object&lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; yönteminin temel amacının kodu basitleştirmenin yanında kaynak kod satır sayısını düşürmesi gerektiğini, en azından aynı düzeyde tutması gerektiğinin altını çiziyor. Kaynak kod satır sayısı artıyorsa uygulanmamasını &amp;nbsp;tavsiye ediyor.&lt;/span&gt;&lt;/div&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: italic; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Null Object &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;örüntüsünün varlığı null kontrollerinin yapılmayacağını garanti etmez. &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: italic; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Null Object&lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; örüntüsünün kullanıldığından habersiz bir başka geliştirici null kontrolleri yapmaya devam edebilir dahası null olma durumunda işletilecek kod parçalarını iş mantığına ekleyebilir. Null Object nesnesini ve gerçek nesneyi davranış barındırmayan &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: italic; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Nullable&lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; gibi boş bir interfaceten gerçekleştirmek geliştiricilerin dikkatini çekerek bu gibi problemlerin önüne bir nebze de olsa geçebilir. Boş bir interfaceten gerçekleştirmek yerine &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: italic; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;isNull() &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;metotu içeren bir interface de ilerde ihtiyaç duyulabilecek olası bir null kontrolü için faydalı olur:&lt;/span&gt;&lt;/div&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="background-color: transparent; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre class="brush:java"&gt;public interface Nullable {&lt;br /&gt; boolean isNull();&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;pre class="brush:java"&gt;public class Customer implements Nullable {&lt;br /&gt; boolean isNull(){&lt;br /&gt;  return false;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;   Plan getPlan(){&lt;br /&gt;          doMoreThings();&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;pre class="brush:java"&gt;public class NullCustomer extends Customer {&lt;br /&gt; boolean isNull(){&lt;br /&gt;  return true;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt;  Plan getPlan(){&lt;br /&gt;    return Plan.emptyPlan();&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Kaynak koda müdahale edemediğimiz durumlarda sadece &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: italic; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Null Object &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;davranışı olmayan bir interfaceten gerçekleştirilerek null kontrolü &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: italic; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;instanceof &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;ile yapılabilir:&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:java"&gt;public interface Null { }&lt;br /&gt;&lt;/pre&gt;&lt;pre class="brush:java"&gt;public class NullCustomer extends Customer implements Null{&lt;br /&gt;//...&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;pre class="brush:java"&gt;//...&lt;br /&gt;if(customer instanceof Null) { }&lt;br /&gt;//...&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: italic; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Null Object&lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; davranışı ve durumu değişmeyecek bir sınıf olduğu için çok fazla Null Object nesnesi yaratılma durumunda &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: italic; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Singleton&lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; tasarım örüntüsü kullanılarak her yeni çağrıda yeni null sınıf yaratılmasının önüne de geçilebilir.&lt;/span&gt;&lt;/div&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;Artıları/Eksileri:&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;+ Null kontrolü tekrarları yapmadan, null hatalarının önüne geçer.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;+ Null kontrollerinin sayısını en aza indirerek kodu basitleştirir.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;- Sadece bir kaç null kontrolü kullanıldığı durumlarda kodu karmaşıklaştırır.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;- Null Object gerçekleştirimi yapıldığından haberi olmayan bir geliştirici gereksiz null kontrolleri yazabilir.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;- Yönetilebilirliği zorlaştırır. Gerçek sınıfa eklenen yeni metotlar için Null Object sınıfı içinde override işlemi yapılmalıdır.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Bir örnekle konuya açıklık getirelim:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:java"&gt;class SecmenKutugu {&lt;br /&gt; Vatandas vatandas;&lt;br /&gt; Vatandas getVatandas(){&lt;br /&gt;  return vatandas;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;class Vatandas{&lt;br /&gt; public long getTCNo() { &lt;br /&gt;  //..&lt;br /&gt;  }&lt;br /&gt; public Adres getAdres() { &lt;br /&gt;  //.. &lt;br /&gt;  }&lt;br /&gt; public Muhtar setMuhtar { &lt;br /&gt;  //..&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;class Adres {&lt;br /&gt; public int getSokakNo() { &lt;br /&gt;  //.. &lt;br /&gt;  }&lt;br /&gt; // ...&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:java"&gt;Vatandas vatandas = secmenKutugu.getVatandas();&lt;br /&gt;if(vatandas != null) vatandas.setMuhtar(Muhtar.getInstance());&lt;br /&gt;//...&lt;br /&gt;long tcNo;&lt;br /&gt;if(vatandas == null) tcNo = 0;&lt;br /&gt;else tcNo = vatandas.getTCNo();&lt;br /&gt;//...&lt;br /&gt;int sokakNo;&lt;br /&gt;if(vatandas == null) sokakNo = 0;&lt;br /&gt;else sokakNo = vatandas.getAdres().getSokakNo();&lt;br /&gt;//..&lt;br /&gt;&lt;/pre&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br /&gt;Yukardaki örnekteki gibi tekrarlı null kontrolleri yapan kodumuz olsun. Bu kodu adam etmeye null testi yapmaya imkan sağlayan Null Object yaratmakla başlayalım. Böylelikle bahsettiğimiz gibi diğer geliştiricilerin de Null Object kullanıldığına dair dikkatini çekebiliriz:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:java"&gt;interface Nullable {&lt;br /&gt; boolean isNull();&lt;br /&gt;}&lt;br /&gt;class Vatandas implements Nullable{&lt;br /&gt; &lt;br /&gt; static Vatandas newNull() {&lt;br /&gt;                return new NullVatandas();&lt;br /&gt;        }&lt;br /&gt;        boolean isNull(){&lt;br /&gt;  return false;&lt;br /&gt; }&lt;br /&gt; //...&lt;br /&gt;}&lt;br /&gt;class NullVatandas extends Vatandas {&lt;br /&gt; boolean isNull(){&lt;br /&gt;  return true;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Null değer dönebilecek yerlerde yarattığımız yeni Null Object nesnesini döndürelim:&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:java"&gt;class SecmenKutugu {&lt;br /&gt; Vatandas vatandas;&lt;br /&gt; Vatandas getVatandas(){&lt;br /&gt;  return (vatandas == null)? Vatandas.newNull(): vatandas;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 15px; white-space: pre-wrap;"&gt;Null kontrollerinin yapıldığı her bir iş mantığı için Null Object sınıfına null olma durumunda işletilecek alternatif metot kodunu ekleyelim ve null kontrollerini kaldıralım. Ayrıca her değişiklikte kodun davranışının değişmediğini test etmekte yarar var. Tüm değişikliklerin sonunda kodumuz şu şekilde olacak:&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:java"&gt;class NullVatandas extends Vatandas {&lt;br /&gt; public long getTCNo() {&lt;br /&gt;  return 0;&lt;br /&gt; }&lt;br /&gt; public Muhtar setMuhtar(Muhtar muhtar) { }&lt;br /&gt; public Adres getAdres() {&lt;br /&gt;  return Adres.newNull();&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;class NullAdres extends Adres {&lt;br /&gt; public int getSokakNo(){&lt;br /&gt;  return 0;&lt;br /&gt; }&lt;br /&gt; //..&lt;br /&gt;}&lt;br /&gt;&amp;nbsp;&lt;/pre&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre class="brush:java"&gt;Vatandas vatandas = secmenKutugu.getVatandas();&lt;br /&gt;vatandas.setMuhtar(Muhtar.getInstance());&lt;br /&gt;//...&lt;br /&gt;long tcNo = vatandas.getTCNo();&lt;br /&gt;//...&lt;br /&gt;int sokakNo = vatandas.getAdres().getSokakNo();&lt;br /&gt;//..&lt;br /&gt;&lt;/pre&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br /&gt;Yukarıdaki örnekte Adres sınıfı için de bir &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: italic; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Null Object&lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; yazma gerekliliğimiz dikkatinizi çekmiştir. Sınıfın başka bir sınıfa delege ettiği metotlar için null sınıfın da metotu delege edeceği yeni null sınıflar yazılır.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Null Object yöntemi nesnenin null davranışını modellemek için kullanılabileceği gibi aynı zamanda nesnenin varsayılan davranış sergileyecek farklı senaryoları için de (Örk: NullVatandas, UnknownVatandas, PrivateVatandas vb.) kullanılabileceğini belirterek konumuzu sonlandıralım.&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;Kaynaklar:&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;1. Joshua Kerievsky - Refactoring to Patterns&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;2. Martin Fowler - Refactoring: Improving the Design of Existing Code&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;3. Kenan Sevindik - &lt;/span&gt;&lt;a href="http://ksevindik.blogspot.com/2010/01/mockito-ile-null-object.html"&gt;&lt;span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;http://ksevindik.blogspot.com/2010/01/mockito-ile-null-object.html&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-4713663700553811888?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/4713663700553811888/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2010/11/introduce-null-object.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/4713663700553811888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/4713663700553811888'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2010/11/introduce-null-object.html' title='Introduce Null Object'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-4203291637990860586</id><published>2010-08-14T17:23:00.000+03:00</published><updated>2010-08-14T17:23:35.050+03:00</updated><title type='text'>Popüler Programlama Dilleri</title><content type='html'>Bu site programlama dillerini çeşitli kriterleri dikkate alarak populerliğine göre aylık olarak sıralıyor. Java uzunca bir süredir ilk sırada. Dünyadaki programlama dili akımlarını takip etmek için güzel bir kaynak. Örneğin Ağustos-2010 tarihinde son zamanların popüler programlama dili Python hafif bir düşüşe geçmişken Objective-C atakta. Google'ın geliştirdiği Go programlama dili sağlam bir çıkış yaparak ilk 20 içine girerken yılların Smalltalk dili 50. sıradan da aşağılara düşmüş:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html"&gt;http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;İyi Javalar..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-4203291637990860586?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/4203291637990860586/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2010/08/populer-programlama-dilleri.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/4203291637990860586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/4203291637990860586'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2010/08/populer-programlama-dilleri.html' title='Popüler Programlama Dilleri'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-765454632767093123</id><published>2010-07-04T02:39:00.000+03:00</published><updated>2010-07-04T02:39:45.828+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Çevik'/><category scheme='http://www.blogger.com/atom/ns#' term='Eşli Programlama'/><title type='text'>Eşli Programlama</title><content type='html'>Eşli programlama (&lt;i&gt;Pair Programming&lt;/i&gt;) iletişimi, eşler arasında işbirliğini ve dolayısıyla öğrenmeyi temel alan program geliştirme yöntemidir. Eşlerden biri "Sürücü (&lt;i&gt;Driver&lt;/i&gt;)" rolünü diğeri ise "Yönlendirici (&lt;i&gt;Navigator&lt;/i&gt;)" rolünü üstlenir. Aynı bir yarış arabasındaki pilot/yardımcı pilot yardımlaşmasındaki gibi, Sürücü kodun yazımı, yazım hatalarının denetimi, API'lerin çağırımı gibi konularla ilgilenirken Yönlendirici de yapılan işin doğruluğu, gereksinimler, alternatif yöntemler, bir sonraki adım, vb. konulara yoğunlaşır. Eşler büyük resmi, birbirlerinin eksiklerini tamamlayarak daha iyi ele alırlar. Olası hatalar büyük oranda ortaya çıkma aşamasında ele alınır ve çözülür.&lt;br /&gt;&lt;br /&gt;Niclas Nilsson ve Hans Brattberg eşli programlamayı, yapılması ve yapılmaması gerekenleri, eşli programlamanın avantajlarını&amp;nbsp;küçük tiyatrolarla destekleyerek&amp;nbsp;anlatmışlar. Hoş bir sunum tarzı olmuş: &lt;a href="http://bit.ly/amzdsy"&gt;The Pair Programming Show&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-765454632767093123?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/765454632767093123/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2010/07/esli-programlama.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/765454632767093123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/765454632767093123'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2010/07/esli-programlama.html' title='Eşli Programlama'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-235043037696751320</id><published>2010-06-18T23:31:00.000+03:00</published><updated>2010-06-18T23:31:21.163+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Diğer'/><title type='text'>Java Dergisi..</title><content type='html'>&lt;a href="http://www.javadergisi.com/"&gt;Java Dergisi&lt;/a&gt;'nin yayın hayatına başlaması Türkiye yazılım dünyası için güzel bir gelişme oldu... Kaliteli ve doyurucu bir içeriğe sahip olmasının yanında çok kaliteli bir baskıya da sahip olan dergiye emeği geçenlere içten bir teşekkürü borç bilirim. Özellikle de bu dergi için ön ayak olan Özcan Acar'a...&lt;br /&gt;&lt;br /&gt;Gerçek bir yazılım içeriği sunması açısından Java'ya gönül verenlerin, Java'ya adım atmak isteyenlerin ellerinden düşürmeyecekleri bir dergi. Derginin önerilerimizle daha da iyi olacağını düşünüyorum. Alınası, bol bol okunası...&lt;br /&gt;&lt;br /&gt;Tekrar teşekkürler.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-235043037696751320?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/235043037696751320/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2010/06/java-dergisi.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/235043037696751320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/235043037696751320'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2010/06/java-dergisi.html' title='Java Dergisi..'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-5891146713144578674</id><published>2010-06-18T23:21:00.001+03:00</published><updated>2010-11-06T10:22:30.123+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Diğer'/><title type='text'>Tekrar Yayında..</title><content type='html'>Evet askerlik bitti...&lt;br /&gt;&lt;br /&gt;17 Mayıs itibari ile askerliği bitirip özlediğim sivil hayata dönüş yaptım. Askerlik ile ilgili düşünceleri dost meclisinde dile getiriyoruz. Burada sivil hayatımdaki değişiklikleri paylaşayım.&lt;br /&gt;&lt;br /&gt;Her şey değişti... İşim, evim, yaşadığım şehir... Bundan sonraki hayatımı paylaşacağım müstakbel eşimin isteği sebebiyle İstanbul'a taşındım. Bu nedenle 9 senelik arkadaşları, güzel anıları paylaştığım dostları üzülerek Ankara'da bıraktım. Ama her fırsatta bir araya geleceğimizden hiç şüpheleri olmasın. Bunun yanında bir çok şey öğrendiğim, aralarında bulunmaktan mutluluk duyduğum Innova Ankara ailesinden de ayrılmak zorunda kaldım. Prime Teknoloji ailesine katkı sağlamaya, yeni şeyler öğrenmeye, öğrendiklerimizi aktarmaya çalışacağım.&lt;br /&gt;&lt;br /&gt;Askerlik ve askerlikten sonra tüm bu değişiklikleri yönetmek, bir yandan da evlilik hazırlıkları yapmak zamanımın çoğunu götürdüğü için özlediğim mesleğime, uğraşmayı sevdiğim Java dünyasına dönmemi geciktirdi. Belirsizliklerin yavaş yavaş ortadan kalkması, işlerin planlanması sonucu tekrar kendime ve Java'ya vakit ayırmaya başlıyorum.&lt;br /&gt;&lt;br /&gt;Umarım bundan sonra da her şey güzel ve gönlümüzce olur...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-5891146713144578674?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/5891146713144578674/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2010/06/tekrar-yaynda.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/5891146713144578674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/5891146713144578674'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2010/06/tekrar-yaynda.html' title='Tekrar Yayında..'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-5391574258391844913</id><published>2009-11-12T17:16:00.004+02:00</published><updated>2010-02-27T15:35:41.933+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Diğer'/><title type='text'>Kelle Koltuk Programlama</title><content type='html'>&lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 12"&gt;&lt;meta name="Originator" content="Microsoft Word 12"&gt;&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5Cmdasgin%5CLOCALS%7E1%5CTemp_%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;&lt;link rel="themeData" href="file:///C:%5CDOCUME%7E1%5Cmdasgin%5CLOCALS%7E1%5CTemp_%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;&lt;link rel="colorSchemeMapping" href="file:///C:%5CDOCUME%7E1%5Cmdasgin%5CLOCALS%7E1%5CTemp_%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:hyphenationzone&gt;21&lt;/w:HyphenationZone&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;TR&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="&amp;#45;-"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:Wingdings; 	panose-1:5 0 0 0 0 0 0 0 0 0; 	mso-font-charset:2; 	mso-generic-font-family:auto; 	mso-font-pitch:variable; 	mso-font-signature:0 268435456 0 0 -2147483648 0;} @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-alt:"Calisto MT"; 	mso-font-charset:162; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-alt:"Century Gothic"; 	mso-font-charset:162; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin:0cm; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman";} a:link, span.MsoHyperlink 	{mso-style-noshow:yes; 	mso-style-priority:99; 	color:blue; 	text-decoration:underline; 	text-underline:single;} a:visited, span.MsoHyperlinkFollowed 	{mso-style-noshow:yes; 	mso-style-priority:99; 	color:purple; 	mso-themecolor:followedhyperlink; 	text-decoration:underline; 	text-underline:single;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	font-size:10.0pt; 	mso-ansi-font-size:10.0pt; 	mso-bidi-font-size:10.0pt;} @page Section1 	{size:612.0pt 792.0pt; 	margin:70.85pt 70.85pt 70.85pt 70.85pt; 	mso-header-margin:35.4pt; 	mso-footer-margin:35.4pt; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin:0cm; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:"Times New Roman"; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} &lt;/style&gt; &lt;![endif]--&gt;Takip ettiğim blogların &lt;a href="http://www.cihataltuntas.com/?p=601"&gt;birinde&lt;/a&gt; beni "Cargo Cult Programming" terimiyle tanıştıran çok hoş bir yazı okudum. Blog yazarı &lt;span style="font-style: italic;"&gt;Cihat Altuntaş&lt;/span&gt;'ın "Çakma Programlama" diye çevirdiği terimi, bu tarz programlamanın olası sonuçları açısından ve de &lt;span style="font-style: italic;"&gt;Cargo Cult&lt;/span&gt; terimine birazcık benzer söylenişinden dolayı "&lt;span style="font-weight: bold;"&gt;Kelle Koltuk Programlama&lt;/span&gt;" diye dilimize çevirmeyi daha hoş buldum :)&lt;br /&gt;&lt;br /&gt;Terimin detaylı anlatımını &lt;a href="http://en.wikipedia.org/wiki/Cargo_cult_programming"&gt;wiki&lt;/a&gt;'den okuyabilirsiniz. Özetle neyin ne olduğunu bilmeden ezbere programlama, şu örnekte kodu şöyle yazmışlar ben de yazıp bi deneyeyim çalışacak mı programlama...&lt;br /&gt;&lt;br /&gt;:)&lt;br /&gt;&lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 12"&gt;&lt;meta name="Originator" content="Microsoft Word 12"&gt;&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5Cmdasgin%5CLOCALS%7E1%5CTemp_%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:hyphenationzone&gt;21&lt;/w:HyphenationZone&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;TR&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="&amp;#45;-"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:Wingdings; 	panose-1:5 0 0 0 0 0 0 0 0 0; 	mso-font-charset:2; 	mso-generic-font-family:auto; 	mso-font-pitch:variable; 	mso-font-signature:0 268435456 0 0 -2147483648 0;} @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-alt:"Calisto MT"; 	mso-font-charset:162; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-alt:"Century Gothic"; 	mso-font-charset:162; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin:0cm; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman";} a:link, span.MsoHyperlink 	{mso-style-noshow:yes; 	mso-style-priority:99; 	color:blue; 	text-decoration:underline; 	text-underline:single;} a:visited, span.MsoHyperlinkFollowed 	{mso-style-noshow:yes; 	mso-style-priority:99; 	color:purple; 	mso-themecolor:followedhyperlink; 	text-decoration:underline; 	text-underline:single;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	font-size:10.0pt; 	mso-ansi-font-size:10.0pt; 	mso-bidi-font-size:10.0pt;} @page Section1 	{size:612.0pt 792.0pt; 	margin:70.85pt 70.85pt 70.85pt 70.85pt; 	mso-header-margin:35.4pt; 	mso-footer-margin:35.4pt; 	mso-paper-source:0;} div.Section1 	{page:Section1;} &lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 12"&gt;&lt;meta name="Originator" content="Microsoft Word 12"&gt;&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5Cmdasgin%5CLOCALS%7E1%5CTemp_%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;&lt;link rel="themeData" href="file:///C:%5CDOCUME%7E1%5Cmdasgin%5CLOCALS%7E1%5CTemp_%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;&lt;link rel="colorSchemeMapping" href="file:///C:%5CDOCUME%7E1%5Cmdasgin%5CLOCALS%7E1%5CTemp_%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:hyphenationzone&gt;21&lt;/w:HyphenationZone&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;TR&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="&amp;#45;-"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:Wingdings; 	panose-1:5 0 0 0 0 0 0 0 0 0; 	mso-font-charset:2; 	mso-generic-font-family:auto; 	mso-font-pitch:variable; 	mso-font-signature:0 268435456 0 0 -2147483648 0;} @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-alt:"Calisto MT"; 	mso-font-charset:162; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-alt:"Century Gothic"; 	mso-font-charset:162; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin:0cm; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman";} a:link, span.MsoHyperlink 	{mso-style-noshow:yes; 	mso-style-priority:99; 	color:blue; 	text-decoration:underline; 	text-underline:single;} a:visited, span.MsoHyperlinkFollowed 	{mso-style-noshow:yes; 	mso-style-priority:99; 	color:purple; 	mso-themecolor:followedhyperlink; 	text-decoration:underline; 	text-underline:single;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	font-size:10.0pt; 	mso-ansi-font-size:10.0pt; 	mso-bidi-font-size:10.0pt;} @page Section1 	{size:612.0pt 792.0pt; 	margin:70.85pt 70.85pt 70.85pt 70.85pt; 	mso-header-margin:35.4pt; 	mso-footer-margin:35.4pt; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --&gt; &lt;/style&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-5391574258391844913?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/5391574258391844913/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2009/11/kelle-koltuk-programlama.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/5391574258391844913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/5391574258391844913'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2009/11/kelle-koltuk-programlama.html' title='Kelle Koltuk Programlama'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-1826792473559997666</id><published>2009-11-05T14:03:00.002+02:00</published><updated>2009-11-05T14:17:51.041+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sertifika'/><title type='text'>SCWCD EE5</title><content type='html'>Yaklaşık 3 saat önce SCWCD EE5 sınavını da başarıyla sonuçlandırıp sertifika almaya hak kazandım, darısı çalışanların başına :)&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Önceden de belirttiğim gibi sınav için "&lt;a href="http://www.amazon.com/Head-First-Servlets-JSP-Certified/dp/0596516681/ref=sr_1_1?ie=UTF8&amp;amp;qid=1250356171&amp;amp;sr=8-1"&gt;Head First Servlet &amp;amp; JSP&lt;/a&gt;" kitabından faydalandım. Kitap sınav için tüm gerekli konu başlıklarını gayet iyi açıklıyor fakat hem konu anlatımlarında hem de kitabın sonundaki deneme sınavında küçük yanlışlıklar göze çarpıyor. Bu yüzden kitabın sitesinden kitapla ilgili düzeltmeler kısmına mutlaka bakılmalı.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ayrıca JavaRanch sitesinden SCWCD ile ilgili &lt;a href="http://www.coderanch.com/forums/f-18/Web-Component-Certification-SCWCD"&gt;forum&lt;/a&gt; ve sınav hakkında açıklayıcı, faydalı bilgilere de erişebilirsiniz.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sırada ne mi var? Sırada bir aksilik çıkmazsa aralık ayında askerik var ;)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-1826792473559997666?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/1826792473559997666/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2009/11/scwcd-ee5.html#comment-form' title='2 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/1826792473559997666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/1826792473559997666'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2009/11/scwcd-ee5.html' title='SCWCD EE5'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-7930633633241599681</id><published>2009-10-22T10:15:00.007+03:00</published><updated>2009-10-22T10:30:43.380+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Diğer'/><title type='text'>Bazen Mühendislik Sıradışı Çözümlerin Peşinden Gitmektir..</title><content type='html'>Ya bir heyecan uğruna ya da sadece öylesine; sıradan çözümleri görmezden gelerek... :)&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_2GrRy5nvSoc/SuAIAos_2mI/AAAAAAAABSU/G_hvRkuIhi4/s1600-h/20102009020.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_2GrRy5nvSoc/SuAIAos_2mI/AAAAAAAABSU/G_hvRkuIhi4/s320/20102009020.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5395321160609028706" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_2GrRy5nvSoc/SuAIAXAnpYI/AAAAAAAABSM/p0mYFRHBH_I/s1600-h/20102009019.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_2GrRy5nvSoc/SuAIAXAnpYI/AAAAAAAABSM/p0mYFRHBH_I/s320/20102009019.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5395321155859490178" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_2GrRy5nvSoc/SuAIAcV83CI/AAAAAAAABSE/WlzcIUTiPfI/s1600-h/20102009018.jpg" style="text-decoration: none;"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_2GrRy5nvSoc/SuAIAcV83CI/AAAAAAAABSE/WlzcIUTiPfI/s320/20102009018.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5395321157291138082" /&gt;&lt;/a&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-7930633633241599681?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/7930633633241599681/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2009/10/bazen-muhendislik-srads-cozumlerin.html#comment-form' title='1 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/7930633633241599681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/7930633633241599681'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2009/10/bazen-muhendislik-srads-cozumlerin.html' title='Bazen Mühendislik Sıradışı Çözümlerin Peşinden Gitmektir..'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_2GrRy5nvSoc/SuAIAos_2mI/AAAAAAAABSU/G_hvRkuIhi4/s72-c/20102009020.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-2387681939489152221</id><published>2009-09-25T10:26:00.002+03:00</published><updated>2009-09-25T10:33:43.224+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Singleton'/><category scheme='http://www.blogger.com/atom/ns#' term='Tasarım Örüntüleri'/><title type='text'>En Basit Tasarım Örüntüsü Singleton (mu?) -- 2</title><content type='html'>&lt;a href="http://mdasgin.blogspot.com/2008/11/en-basit-tasarm-rnts-singleton.html"&gt;Daha önceki bir blog girdimde&lt;/a&gt; Singleton sınıfın yazımında dikkat edilesi hususları yazmıştım. Singleton örüntüsünün Java Reflection ile kırıldığını da duymama rağmen "nasılı" üzerinde pek durmamıştım. Bir kaç gün önce karşılaştığım blog girdisinde "Yohan Liyanage" bu konudan ve alınabilecek önlemlerden bahsetmiş: &lt;a href="http://yohanliyanage.blogspot.com/2009/09/breaking-singleton.html"&gt;Breaking Singleton&lt;/a&gt; &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Bakalım Singleton'dan daha ne numaralar çıkacak :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-2387681939489152221?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/2387681939489152221/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2009/09/en-basit-tasarm-oruntusu-singleton-mu-2.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/2387681939489152221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/2387681939489152221'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2009/09/en-basit-tasarm-oruntusu-singleton-mu-2.html' title='En Basit Tasarım Örüntüsü Singleton (mu?) -- 2'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-4312684351221748557</id><published>2009-08-19T16:50:00.001+03:00</published><updated>2009-08-19T16:51:25.042+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='STS'/><title type='text'>SpringSource Tool Suite 2.1.0</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; "&gt;&lt;div style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 3px; padding-right: 3px; padding-bottom: 3px; padding-left: 3px; width: auto; font: normal normal normal 100%/normal Georgia, serif; text-align: left; "&gt;&lt;div style="text-align: justify; "&gt;Yaklaşık 2 hafta önce STS 2.1.0'nın kararlı sürümü yayınlandı. Yeni kurup hızlıca göz gezdirme fırsatı bulduğum STS 2.1.0'nin, Eclipse 3.5 üzerine kurulu olmasının yanı sıra ilk dikkatimi çeken güzelliği &lt;a href="http://izpack.org/"&gt;IzPack&lt;/a&gt; kullanarak hazırlanmış bir kurulum sihirbazı aracılığıyla kurulumunu gerçekleştirebilmeniz. IzPack ile kurulum sihirbazı hazırlama konusunda önceden benim de tecrübem olduğundan doğru ve hoş bir seçim diyebilirim. IzPack'i kurcalamanızı tavsiye ederim. STS kurulumunun yanında Spring tm Server, Spring dm Server ve Spring ROO paketlerini de kurabilmek için sihirbaz size seçim şansı tanıyor. Seçilen paketler kurulum esnasında belirlediğiniz dizin altına herbir paket kendi dizininde gruplanmış şekilde kopyalanıyor.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ayrıca kararlı sürümün kurulum dosyası olarak dağıtılmasıyla önceki sürümlerde .zip dosyasını açarken karşılaşılan ve can sıkan uzun dosya isimlerinin yarattığı probleminin önüne geçilmiş.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;Sorunsuz kurulumdan sonra hemen denemek istediğim, önceki sürümde bir türlü kullanamadığım "Roo Shell" penceresi oldu. Her nedense bir türlü STS üzerinden Roo Shell'i kullanarak Roo projesi yaratamamış, var olan bir Roo projesini de STS'ye aktaramamıştım. Kararlı sürümde gördüğüm kadarıyla Roo Shell penceresi çalışır durumda...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Diğer dikkatimi çeken ise, STS çalışıp Package Explorer penceresi görünür görünmez var olan Eclipse projelerini arayarak listelemesi oldu.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Alalacele kısaca paylaşmak istediğim ilk izlenimlerimin bunlar. Kullanıp keşfettikçe STS'yi buradan sizlere tecrübelerimi aktarmaya devam ederim..&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_2GrRy5nvSoc/SowCsxGL2MI/AAAAAAAABP8/mZ-wx8Sd6OI/s1600-h/sts.jpg"&gt;&lt;img src="http://1.bp.blogspot.com/_2GrRy5nvSoc/SowCsxGL2MI/AAAAAAAABP8/mZ-wx8Sd6OI/s320/sts.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5371671423662938306" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 240px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-4312684351221748557?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/4312684351221748557/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2009/08/springsource-tool-suite-210.html#comment-form' title='1 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/4312684351221748557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/4312684351221748557'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2009/08/springsource-tool-suite-210.html' title='SpringSource Tool Suite 2.1.0'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_2GrRy5nvSoc/SowCsxGL2MI/AAAAAAAABP8/mZ-wx8Sd6OI/s72-c/sts.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-1041413369333341421</id><published>2009-08-15T19:51:00.005+03:00</published><updated>2009-11-05T14:17:40.295+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sertifika'/><title type='text'>SCJP, SCWCD, Spring Roo, STS, vs. vs.</title><content type='html'>Uzunca sayılabilecek bir süre blogumla ilgilenemedim. Bunun başlıca sebebi &lt;a href="http://www.sun.com/training/certification/java/scjp.xml"&gt;SCJP 6.0&lt;/a&gt; için çalışıyor olmam ve bu sebeple merak ettiğim, ilgilenmek istediğim Spring Roo gibi teknolojilerden uzak kalmamdı. Neyseki 2 hafta önce sınava girerek sertifika almaya hak kazandım ve ardından yıllık izne çıktım.&lt;br /&gt;&lt;br /&gt;SCJP sınavına "&lt;a href="http://www.amazon.com/SCJP-Certified-Programmer-Java-310-065/dp/0071591060"&gt;SCJP Sun Certified Programmer for Java 6 Exam 310-065&lt;/a&gt;" kitabıyla hazırlandım. Uygulama geliştirirken ezbere ya da bilmeden yaptığımız birçok konuyu öğrenmek, "bu da bu şekildeymiş" demek, örnek soruları çözmek benim için hem eğitici hem de keyifliydi. Kitabı okumanızı tavsiye ederim. Ardından bol soru çözmek sınav için yeterli olacaktır.&lt;div&gt;&lt;br /&gt;Sırada &lt;a href="http://www.sun.com/training/certification/java/scwcd.xml"&gt;SCWCD&lt;/a&gt; var. Sınava çalışmak için ilk başta "&lt;a href="http://www.amazon.com/Certified-Component-Developer-310-081-310-082/dp/0072258810/ref=sr_1_12?ie=UTF8&amp;amp;qid=1250356171&amp;amp;sr=8-12"&gt;Sun Certified Web Component Developer Study Guide&lt;/a&gt;" kitabını düşünsem de kitabın okuyuculardan aldığı kötü yorumlar, beni "&lt;a href="http://www.amazon.com/Head-First-Servlets-JSP-Certified/dp/0596516681/ref=sr_1_1?ie=UTF8&amp;amp;qid=1250356171&amp;amp;sr=8-1"&gt;Head First Servlet &amp;amp; JSP&lt;/a&gt;" yönlendirdi. En kısa zamanda da ikinci sertifika için çalışmaya başlamayı düşünüyorum.&lt;br /&gt;&lt;br /&gt;İlk sertifikaya çalışırken gösterdiğim tembelliği tekrarlamamaya; Refactoring, TDD ve merak ettiğim Spring Roo, OSGi gibi konulara da tekrar eğilmeye çalışıcam. Bu sırada Eclipse 3.5 tabanlı SpringSource Tool Suite 2.1.0'ı da kullanarak getirdiği kolaylıkları gözlemlemek de istiyorum.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-1041413369333341421?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/1041413369333341421/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2009/08/scjp-scwcd-spring-roo-sts-vs-vs.html#comment-form' title='4 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/1041413369333341421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/1041413369333341421'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2009/08/scjp-scwcd-spring-roo-sts-vs-vs.html' title='SCJP, SCWCD, Spring Roo, STS, vs. vs.'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-6621638600716207301</id><published>2009-06-29T08:57:00.003+03:00</published><updated>2010-03-28T11:16:30.749+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CETURK'/><category scheme='http://www.blogger.com/atom/ns#' term='Sunum'/><title type='text'>CETURK Java Teknolojileri Etkinliği -7</title><content type='html'>Geçtiğimiz haftalarda Ankara'da gerçekleştirdiğimiz &lt;a href="http://mdasgin.blogspot.com/2009/06/ceturk-java-ankara-etkinliginin-ardndan.html"&gt;Java Teknolojileri Etkinliğinin&lt;/a&gt; bir benzerini bu sefer İstanbul'da, IBM Türk binasında gerçekleştireceğiz. 04.07.2009 tarihinde Java ve Kurumsal uygulamalara gönül veren İstanbullularla buluşmak dileğiyle.&lt;br /&gt;&lt;br /&gt;Etkinliğin ayrıntılı duyurusuna &lt;a href="http://www.ceturk.com/etkinlikkayit.asp?id=75"&gt;http://www.ceturk.com/etkinlikkayit.asp?id=75&lt;/a&gt; adresinden erişebilirsiniz.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-6621638600716207301?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/6621638600716207301/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2009/06/ceturk-java-teknolojileri-etkinligi-7.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/6621638600716207301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/6621638600716207301'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2009/06/ceturk-java-teknolojileri-etkinligi-7.html' title='CETURK Java Teknolojileri Etkinliği -7'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-7207393620674933226</id><published>2009-06-16T09:33:00.005+03:00</published><updated>2010-03-28T11:16:45.092+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CETURK'/><title type='text'>CETURK Java - Ankara Etkinliğinin Ardından..</title><content type='html'>&lt;div style="text-align: justify;"&gt;13 Haziranda ODTÜ - KKM'de gerçekleştirilen CETURK Java Teknoloji seminerlerinin kendi açımdan heyecanlı geçmesinin yanı sıra izleyicilerin de yeni teknolojilerle tanışması açısından başarılı geçtiğini düşünüyorum.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Benim de &lt;a href="http://demirm.blogspot.com/"&gt;Mustafa Demir&lt;/a&gt; ile "Spring Web Service" sunumuyla katıldığım etkinlikte &lt;a href="http://www.jroller.com/hasant/"&gt;Hasan Türksoy&lt;/a&gt;'un GWT ve &lt;a href="http://mehmetgursul.net/blog/"&gt;Mehmet Gürsul&lt;/a&gt;'un OSGi konularına giriş düzeyindeki sunumları en azından bu iki konuya olan açlığımı bir nepze gidererek bu iki alanda biraz oyalanmam için kapıları araladı. Ayrıca &lt;a href="http://www.vardar.biz.tr/"&gt;Ümit Vardar&lt;/a&gt; Hocamızın EJB 3.1'in getirdiği yenilikler konulu sunumuyla &lt;a href="http://ksevindik.blogspot.com/"&gt;Kenan Sevindik&lt;/a&gt;'in Audit sunumu da etkinliğe renk kattı.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;İlk sunumum olması sebebiyle heyecanlanmanın yanında keyif de aldığımı söyleyebilirim. Yeni sunumlarda birlikte olmak dileğiyle... :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;"Spring Web Service" sunumunun yansılarına ve örnek uygulamaya http://files.getdropbox.com/u/135887/presantations/springws.rar bağlantısından erişebilirsiniz.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_2GrRy5nvSoc/SjdDdP-z5cI/AAAAAAAABJw/JJ5v2dQFjJI/s1600-h/IMG_1704+%5B640x480%5D.jpg"&gt;&lt;img src="http://1.bp.blogspot.com/_2GrRy5nvSoc/SjdDdP-z5cI/AAAAAAAABJw/JJ5v2dQFjJI/s320/IMG_1704+%5B640x480%5D.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5347817252311000514" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 240px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_2GrRy5nvSoc/SjdDp1DTc1I/AAAAAAAABJ4/4pRxpF_8XJ8/s1600-h/IMG_1748+%5B640x480%5D.jpg"&gt;&lt;img src="http://4.bp.blogspot.com/_2GrRy5nvSoc/SjdDp1DTc1I/AAAAAAAABJ4/4pRxpF_8XJ8/s320/IMG_1748+%5B640x480%5D.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5347817468420387666" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 240px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_2GrRy5nvSoc/SjdEy5zTeKI/AAAAAAAABKA/mpetZrpzlUc/s1600-h/IMG_3847.JPG"&gt;&lt;img src="http://4.bp.blogspot.com/_2GrRy5nvSoc/SjdEy5zTeKI/AAAAAAAABKA/mpetZrpzlUc/s320/IMG_3847.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5347818723825907874" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 240px; height: 320px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-7207393620674933226?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/7207393620674933226/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2009/06/ceturk-java-ankara-etkinliginin-ardndan.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/7207393620674933226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/7207393620674933226'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2009/06/ceturk-java-ankara-etkinliginin-ardndan.html' title='CETURK Java - Ankara Etkinliğinin Ardından..'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_2GrRy5nvSoc/SjdDdP-z5cI/AAAAAAAABJw/JJ5v2dQFjJI/s72-c/IMG_1704+%5B640x480%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-2743165727434633912</id><published>2009-06-05T14:02:00.004+03:00</published><updated>2009-06-05T14:22:40.431+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CETURK'/><category scheme='http://www.blogger.com/atom/ns#' term='Sunum'/><title type='text'>CETURK Java Teknolojileri Ankara Etkinliği 2</title><content type='html'>&lt;div style="text-align: justify;"&gt;CETURK'ün katılım ücretsiz olarak düzenlediği teknoloji etkinliklerinin Ankara'da 2.si 13 Haziran 2009 Cumartesi günü ODTÜ Kültür ve Kongre Merkezi (KKM) A Salonunda gerçekleştirilecek. Alanında uzman kişilerin çeşitli sunumlarla bilgilerini paylaştıkları CETURK etkinliklerinin bu ayağına "Spring Web Service" sunumuyla Mustafa Demir ile birlikte biz de konuşmacı olarak katılıyoruz. Devamının gelmesini dilerim...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Ayrıca GWT, Spring AOP, EJB 3.1 ve OSGI sunumlarının da olacağı seminerin duyurusuna ve program akışına &lt;a href="http://www.ceturk.com/etkinlikkayit.asp?id=74"&gt;http://www.ceturk.com/etkinlikkayit.asp?id=74&lt;/a&gt; adresinden ulaşabilirsiniz.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_2GrRy5nvSoc/Sij_p_IexRI/AAAAAAAABI4/gop1-Frnvpg/s1600-h/CETURK-Java-Teknolojileri-Gunu-Ankara.jpg"&gt;&lt;img src="http://4.bp.blogspot.com/_2GrRy5nvSoc/Sij_p_IexRI/AAAAAAAABI4/gop1-Frnvpg/s320/CETURK-Java-Teknolojileri-Gunu-Ankara.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5343802054661817618" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 210px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-2743165727434633912?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/2743165727434633912/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2009/06/ceturk-java-teknolojileri-ankara.html#comment-form' title='1 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/2743165727434633912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/2743165727434633912'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2009/06/ceturk-java-teknolojileri-ankara.html' title='CETURK Java Teknolojileri Ankara Etkinliği 2'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_2GrRy5nvSoc/Sij_p_IexRI/AAAAAAAABI4/gop1-Frnvpg/s72-c/CETURK-Java-Teknolojileri-Gunu-Ankara.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-1991049330913490593</id><published>2009-03-25T15:27:00.005+02:00</published><updated>2009-03-25T15:33:24.956+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hibernate'/><title type='text'>Hibernate Parameter Binding</title><content type='html'>Hibernate kullananların sıkça karşılaştığı bir durum Hibernate’in ürettiği SQL cümleciklerine geçtiği parametreleri görememektir. Hibernate’in ayar kütüğü persistence.xml’e yazılan&lt;br /&gt;&lt;br /&gt;&lt;p class="western"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(63, 127, 127);"&gt;properties&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(63, 127, 127);"&gt;property &lt;/span&gt;&lt;span style="color: rgb(127, 0, 127);"&gt;name&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"hibernate.show_sql" &lt;/span&gt;&lt;span style="color: rgb(127, 0, 127);"&gt;value&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"true"&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;  ...&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(63, 127, 127);"&gt;properties&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;p class="western" align="justify"&gt;&lt;br /&gt;İfadesi bile üretilen SQL cümleciğinde parametre gelecek yerleri ‘?’ ile gösteriyor. Hal böyle olunca bazen debug esnasında akışı izlemek sıkıntılı olabiliyor. Bu sıkıntıyı aşmanın bir yolu ise Hibernate Type sınıfı için Log4j 1.2.12 sürümünden itibaren kullanılmaya başlanan TRACE düzey loglama yapmak:&lt;/p&gt;&lt;br /&gt;&lt;p class="western"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(63, 127, 127);"&gt;logger &lt;/span&gt;&lt;span style="color: rgb(127, 0, 127);"&gt;name&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"org.hibernate.type"&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;      &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(63, 127, 127);"&gt;level &lt;/span&gt;&lt;span style="color: rgb(127, 0, 127);"&gt;value&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"TRACE"&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;p class="western" align="justify"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(63, 127, 127);"&gt;logger&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;Her ne kadar ‘?’ yerine değerler gelmese de basılan loglardan soru işareti ile belirtilen yerlere atanan değerleri elde etmek mümkün. Dönen değerler de bonus olarak gösteriliyor &lt;span style="font-family:Wingdings;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="western"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Hibernate:&lt;br /&gt;/* load deneme.DovizTipi */ select doviztipi0_.ID as ID52_0_, doviztipi0_.ACIKLAMA as ACIKLAMA52_0_, doviztipi0_.KISA_ACIKLAMA as KISA8_52_0_ from DOVIZ_TIPI doviztipi0_ where doviztipi0_.ID=&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;?&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;25 Mar 2009 15:11:27,159 - TRACE - IP:127.0.0.1, ReqURI:/ips/spring/anasayfa-flow - /ips - org.hibernate.type.NullableType.nullSafeSet(151) | &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;binding '949' to parameter: 1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;p class="western"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;25 Mar 2009 15:11:27,159 - TRACE - IP:127.0.0.1, ReqURI:/ips/spring/anasayfa-flow - /ips - org.hibernate.type.NullableType.nullSafeGet(193) | &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;returning 'Yeni Türk Lirasi'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; as column: ACIKLAMA52_0_&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="western" align="justify"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;25 Mar 2009 15:11:27,159 - TRACE - IP:127.0.0.1, ReqURI:/ips/spring/anasayfa-flow - /ips -&lt;br /&gt;org.hibernate.type.NullableType.nullSafeGet(193) | &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;returning 'TL'&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; as column: KISA8_52_0_&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-1991049330913490593?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/1991049330913490593/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2009/03/hibernate-parameter-binding.html#comment-form' title='1 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/1991049330913490593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/1991049330913490593'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2009/03/hibernate-parameter-binding.html' title='Hibernate Parameter Binding'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-8709459778805237819</id><published>2009-02-18T17:04:00.004+02:00</published><updated>2009-02-18T17:36:30.875+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Refactoring'/><title type='text'>Açıklama Satırı Yazmadan Kod Yazana 10 Puan Bonus</title><content type='html'>Bilgisayar Mühendisini mezun olduktan sonra, yaşadığı sanal dünyadan gerçek dünyaya hazırlayan, okuduğu teorik bilgileri pratiğe dökmesini sağlayan yegane işlev, genelde ikişer haftalık periyotlarla geliştirdiği, üstüne bir de raporun yazdığı programlama ödevleridir. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Öğrencinin istenen programı hatasız geliştirmesinin yanı sıra yaptıklarını anlatan ödev raporu ve kodun içinde -alışkanlık olması ve asistanın okuyabilirliğini arttırmak için- kodun bakılabilirliğini kolaylaştırdığı düşünülen açıklama satırlarını yazması beklenir. Hatta kodu yazıp açıklama satırını yazmayı ihmal eden öğrencinin en az 10 puanın gideceği garanti edilir. Hal böyle olunca mühendis adayı ya kodu yazarken açıklama satırlarını da aynı anda yazmayı kendine ilke edinir ya da kod yazma işi bittikten sonra uygun gördüğü yere açıklama satırlarını serpiştirir.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;İki hafta bir sürenin son 3-4 günü ödevini yapmaya başlayan öğrenci ise ödev yetiştirmeye çalışmaktan ne Martin Fowler'dan ne "Refactoring"den -kodu adam etme demeyi daha çok seviyorum- ne de o kadar çok açıklama satırı yazmaması gerektiğinden haberi vardır. İşin ilginci ödevi veren de bundan bi haberdir...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Benim de mezun olduktan sonra namını duyduğum Martin Fowler "Refactoring Improving the Design of Existing Code" kitabında güzel konulara değinirken bu açıklama satırları konusuna da değiniyor. "Açıklama satırı kötü kokan kodun üzerine sıkılmaya çalışan deodoranttır" diyor. Doğru :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Kitapta sınıf, metot ve değişken isimlendirmelerinin üstlenilen görevi anlatacak nitelikte yapılması gerektiğinden bahsediliyor. Bir kod parçasının işlevi açıklanma gereği duyuluyorsa o kod parçasının ayrı bir metota taşınmasını ve yeni metotun isminin açıklayıcı nitelikte olması gerektiğini söylüyor. Yazılması gereken açıklama satırının "nasıl"ı değil diğer geliştiriciler için "neden" sorusuna cevap vermesi gerekliliği vurgulanıyor.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Bol açıklama satırsız kodlar... &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-8709459778805237819?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/8709459778805237819/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2009/02/acklama-satr-yazmadan-kod-yazana-10.html#comment-form' title='3 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/8709459778805237819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/8709459778805237819'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2009/02/acklama-satr-yazmadan-kod-yazana-10.html' title='Açıklama Satırı Yazmadan Kod Yazana 10 Puan Bonus'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-6791983523564239978</id><published>2009-01-09T15:36:00.005+02:00</published><updated>2009-01-09T16:13:25.062+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Richfaces'/><title type='text'>Richfaces Editor Bileşeni</title><content type='html'>&lt;a href="http://mdasgin.blogspot.com/2009/01/richfaces-calendar-bileeni-ve-tinymce.html"&gt;Önceki girdimde&lt;/a&gt; belirtiğim projede ortaya çıkan richfaces:calendar ile TinyMCE'nin IE ortamında birbirlerine yaptığı uyuzluk beni Richfaces 3.3.0 ile gelecek olan editor bileşenini denemeye yöneltti. &lt;a href="http://repository.jboss.org/maven2/org/richfaces/ui/richfaces-ui/3.3.0.CR3/"&gt;Richfaces 3.3.0.CR3&lt;/a&gt; sürümünü indirerek gerekli ayarları yapmam ve bileşeni kullanmam çok kısa sürede sonuçlandı. TinyMCE'i kullanmak için sayfaya yüklememiz gereken tiny_mce.js işlemini yapmaya gerek duymadan sadece editorconfig.properties dosyasını classpath'te hazırlayarak bileşeni kullanabilir duruma geldim.&lt;br /&gt;&lt;br /&gt;Detaylı bir editorconfig.properties içeriği şu şekilde oluşturabilinir:&lt;br /&gt;&lt;br /&gt;http://dl.getdropbox.com/u/135887/editorconfig.properties&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;TinyMCE ayarları ile ilgili detaylı bilgiyi &lt;a href="http://wiki.moxiecode.com/index.php/TinyMCE:Configuration"&gt;buradan&lt;/a&gt; bulabilirsiniz. Bileşeni kullanmak istediğiniz yerde şu kod parçasını yazmanız yeterli:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_2GrRy5nvSoc/SWdZNy92uLI/AAAAAAAAA_I/ZcuvBDmi9Vg/s1600-h/richcode.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 47px;" src="http://3.bp.blogspot.com/_2GrRy5nvSoc/SWdZNy92uLI/AAAAAAAAA_I/ZcuvBDmi9Vg/s400/richcode.JPG" alt="" id="BLOGGER_PHOTO_ID_5289294380924319922" border="0" /&gt;&lt;/a&gt;&lt;rich:editor value="#{entity.duyuruDetayi}" theme="advanced" configuration="editorconfig"&gt;&lt;f:param name="width" value="730"&gt;&lt;br /&gt;&lt;br /&gt;Yukardaki kodda da görüldüğü gibi &lt;f:param&gt; ile ayar dosyasında olan bir niteliği ezebiliyor, olmayan niteliği de ekleyebiliyorum. Sonuç bence başarılı :)&lt;br /&gt;&lt;br /&gt;&lt;/f:param&gt;&lt;/f:param&gt;&lt;/rich:editor&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_2GrRy5nvSoc/SWdYGtyhUcI/AAAAAAAAA-4/d1tkQSc76Zk/s1600-h/IEnewEditor.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 188px;" src="http://1.bp.blogspot.com/_2GrRy5nvSoc/SWdYGtyhUcI/AAAAAAAAA-4/d1tkQSc76Zk/s200/IEnewEditor.JPG" alt="" id="BLOGGER_PHOTO_ID_5289293159763890626" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;rich:editor value="#{entity.duyuruDetayi}" theme="advanced" configuration="editorconfig"&gt;&lt;f:param name="width" value="730"&gt;&lt;f:param&gt;&lt;br /&gt;&lt;br /&gt;&lt;/f:param&gt;&lt;/f:param&gt;&lt;/rich:editor&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-6791983523564239978?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/6791983523564239978/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2009/01/richfaces-editor-bileeni.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/6791983523564239978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/6791983523564239978'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2009/01/richfaces-editor-bileeni.html' title='Richfaces Editor Bileşeni'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_2GrRy5nvSoc/SWdZNy92uLI/AAAAAAAAA_I/ZcuvBDmi9Vg/s72-c/richcode.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-3197779471376122401</id><published>2009-01-08T20:07:00.007+02:00</published><updated>2009-01-09T16:06:03.446+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Richfaces'/><title type='text'>Richfaces Calendar bileşeni ve TinyMCE</title><content type='html'>&lt;a href="http://www.jboss.org/jbossrichfaces/"&gt;Richfaces&lt;/a&gt; sunduğu zengin JSF bileşenleriyle JSF ile geliştirilen web uygulamalarında kullanımı sıkça tercih edilen bir kütüphane. &lt;rich:calendar&gt; bileşeni de Richfaces'ın işe yarar özellikleri olan güzel bir takvim gerçekleştirimi.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://tinymce.moxiecode.com/"&gt;TinyMCE &lt;/a&gt;ise html girdileri yapabileceğiniz popüler bir "zengin metin editörü".&lt;br /&gt;&lt;br /&gt;Geliştirdiğimiz web uygulamalarında TinyMCE'i bir Richfaces bileşeni olarak paketlemiştik. Böylece kolay ve tekrar kullanılabilir zengin metin editörümüz oldu. Bir adım daha ileri giderek Richfaces'in dosya yükleme bileşen&lt;/rich:calendar&gt;&lt;rich:calendar&gt;i olan ve bu blogta gerçekleştirimi bir örnek&lt;/rich:calendar&gt;&lt;rich:calendar&gt;le &lt;a href="http://mdasgin.blogspot.com/2008/05/richfaces-3.html"&gt;anlatılan&lt;/a&gt; &lt;rich:fileupload&gt; ile zengin metin editör bileşenimizi birlikte çalışır hale getirdik.&lt;br /&gt;&lt;br /&gt;Zengin metin editörümüzü mutlu mesut kullanırken, richfaces'ın dosya yükleme yeteneği ile kullanıcılara resimler yükletirken bugün gördüm ki rich:calendar ve tinyMCE ile birbirleriyle aynı sayfada geçinemiyor. Firefox iki bileşeni problemsiz çalıştırırken, bu uyumsuzluk bir şekilde IE'de ortaya çıkıyor ve can sıkıyor. (Uyumsuzluğu bulmak 2 saatimi alınca canlar sıkıldı elbet.)&lt;br /&gt;&lt;br /&gt;Richfaces'in Jira'sında bununla ilgili bir hata kaydı girilmiş: https://jira.jboss.org/jira/browse/RF-3697&lt;br /&gt;&lt;br /&gt;Kayıttan da anlaşıldığı gibi sorunu 3.3.0 ile birlikte gelecek olan &lt;a href="http://www.jboss.org/community/docs/DOC-11879"&gt;&lt;rich:editor&gt;&lt;/rich:editor&gt;&lt;/a&gt; ile çözmüşler. &lt;rich:editor&gt; Richfaces'in TinyMCE gerçekleştirimi. TinyMCE'in var olan özelliklerinin yanısıra yeni özellikler barındırdığından da bahsediliyor. &lt;a href="http://www.jboss.org/community/docs/DOC-12943"&gt;İncelediğim&lt;/a&gt; kadarıyla TinyMC&lt;/rich:editor&gt;&lt;/rich:fileupload&gt;&lt;/rich:calendar&gt;&lt;rich:calendar&gt;&lt;rich:fileupload&gt;&lt;rich:editor&gt;E'in gerek duyduğu parametreleri .properties dosyasından temin ediyor. Biz bu parametreleri bileşenin .xhtml sayfasında veriyorduk&lt;/rich:editor&gt;&lt;/rich:fileupload&gt;&lt;/rich:calendar&gt;&lt;rich:calendar&gt;&lt;rich:fileupload&gt;&lt;rich:editor&gt;.&lt;br /&gt;&lt;br /&gt;TinyMCE bileşenini Richfaces'tan önce geliştirdiğimize mi sevineyim, var olan sorunlar nedeniyle Richfaces'ın yeni sürümünde gelecek olan gerçekleştirime geçmek zorunda kaldığımız için harcanan emeğe mi üzüleyim bilemedim :)&lt;br /&gt;&lt;br /&gt;&lt;/rich:editor&gt;&lt;/rich:fileupload&gt;&lt;/rich:calendar&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_2GrRy5nvSoc/SWZJ36FdXtI/AAAAAAAAA-o/wtjw7ILH7M0/s1600-h/tinyFirefox.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 198px;" src="http://1.bp.blogspot.com/_2GrRy5nvSoc/SWZJ36FdXtI/AAAAAAAAA-o/wtjw7ILH7M0/s200/tinyFirefox.JPG" alt="" id="BLOGGER_PHOTO_ID_5288996037227011794" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_2GrRy5nvSoc/SWZKJerB5sI/AAAAAAAAA-w/7NXkQZoOjOI/s1600-h/tinyIE.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 140px;" src="http://3.bp.blogspot.com/_2GrRy5nvSoc/SWZKJerB5sI/AAAAAAAAA-w/7NXkQZoOjOI/s200/tinyIE.JPG" alt="" id="BLOGGER_PHOTO_ID_5288996339106047682" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-3197779471376122401?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/3197779471376122401/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2009/01/richfaces-calendar-bileeni-ve-tinymce.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/3197779471376122401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/3197779471376122401'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2009/01/richfaces-calendar-bileeni-ve-tinymce.html' title='Richfaces Calendar bileşeni ve TinyMCE'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_2GrRy5nvSoc/SWZJ36FdXtI/AAAAAAAAA-o/wtjw7ILH7M0/s72-c/tinyFirefox.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-7230042391864951937</id><published>2008-11-14T10:51:00.004+02:00</published><updated>2009-07-07T10:28:25.558+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Singleton'/><category scheme='http://www.blogger.com/atom/ns#' term='Tasarım Örüntüleri'/><title type='text'>En Basit Tasarım Örüntüsü Singleton (mu?)</title><content type='html'>Singleton örüntüsü bir sınıfın sadece tek bir nesnesi olması gerektiği durumlarda kullanılır ve  sınıfın ihtiyaç duyulduğu zaman yaratıldığı en bilindik kullanım şekli şu şekildedir:&lt;br /&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;public&lt;/span&gt;&lt;/b&gt; &lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;class&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; DateUtils {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;"&gt; &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;private&lt;/span&gt;&lt;/b&gt; &lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;static&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; DateUtils &lt;/span&gt;&lt;i&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;instance&lt;/span&gt;&lt;/i&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; = &lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;null&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;"&gt; &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;private&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; DateUtils() {}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;"&gt; &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;public&lt;/span&gt;&lt;/b&gt; &lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;static&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; DateUtils getInstance() {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;if&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;i&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;instance&lt;/span&gt;&lt;/i&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; == &lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;null&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 120px;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;i&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;instance&lt;/span&gt;&lt;/i&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; = &lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; DateUtils();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;"&gt;  &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;return&lt;/span&gt;&lt;/b&gt; &lt;i&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;instance&lt;/span&gt;&lt;/i&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0.14in; margin-left: 40px;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;          &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;...&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0.14in;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0.14in;"&gt;Böyle bir kullanım çoklu işletim dizilerinde (&lt;i&gt;multithreads&lt;/i&gt;) sorunlara neden olabilmektedir. Aynı anda iki farklı işletim dizisinin instance niteliğini kontrol etmesi ve null görmesi sonucu iki farklı olgunun yaratılma olasılığı vardır. Bunun önüne iki şekilde geçilebilir. İlki sınıfın &lt;i&gt;static &lt;/i&gt;niteliğinin uygulama ayağa kalkarken yaratılması:&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;public&lt;/span&gt;&lt;/b&gt; &lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;class&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; DateUtils {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;"&gt; &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;private&lt;/span&gt;&lt;/b&gt; &lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;static&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; DateUtils &lt;/span&gt;&lt;i&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;instance&lt;/span&gt;&lt;/i&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; = &lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; DateUtils();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;private&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; DateUtils() {}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;"&gt; &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;public&lt;/span&gt;&lt;/b&gt; &lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;static&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; DateUtils getInstance() {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;return&lt;/span&gt;&lt;/b&gt; &lt;i&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;instance&lt;/span&gt;&lt;/i&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;          &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0.14in; margin-left: 40px;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt; ...&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in; line-height: 100%;" align="justify"&gt;&lt;span style=";font-family:Courier New,monospace;font-size:100%;"  &gt;İkincisi ise getInstance() yönteminin synchronize hale getirilmesi.  Tüm yöntemin senkron hale getirilmesi, sadece nesnenin null durumunda kontrol edilmesi gereken, nesne yaratıldıktan sonra da performansa olumsuz etki yapan bir durum olduğu için kullanımından kaçınılmaktadır. Bunun yerine &lt;i&gt;instance&lt;/i&gt; niteliği null ise senkronu başlatan bir yöntem tercih edilmiştir:&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;public&lt;/span&gt;&lt;/b&gt; &lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;class&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; DateUtils {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;private&lt;/span&gt;&lt;/b&gt; &lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;static&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; DateUtils &lt;/span&gt;&lt;i&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;instance&lt;/span&gt;&lt;/i&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;&lt;br /&gt;   private&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; DateUtils() {}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;public &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;static&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; DateUtils getInstance&lt;/span&gt; () {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;"&gt;   &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;if&lt;/span&gt;&lt;/b&gt;(&lt;i&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;instance&lt;/span&gt;&lt;/i&gt; == null) {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in; line-height: 100%; margin-left: 120px;"&gt;      &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;synchronized&lt;/span&gt;&lt;/b&gt;(DateUtils.&lt;i&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;class&lt;/span&gt;&lt;/i&gt;)&lt;br /&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in; line-height: 100%; margin-left: 160px;"&gt;        &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;if&lt;/span&gt;&lt;/b&gt;(&lt;i&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;instance&lt;/span&gt;&lt;/i&gt; == null)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in; line-height: 100%; margin-left: 200px;"&gt;          &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;instance&lt;/span&gt;&lt;/i&gt; = &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; DateUtils();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in; line-height: 100%; margin-left: 120px;"&gt;      &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;"&gt;   &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;"&gt;   &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;return &lt;/span&gt;&lt;/b&gt;&lt;i&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;instance&lt;/span&gt;&lt;/i&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;p  style="margin-bottom: 0in; line-height: 100%;font-family:georgia;"&gt;&lt;span style="font-size:100%;"&gt;Ne var ki “Double-Checked Locking” olarak bilinen bu yöntem JDK 5’ten önce çalışmıyor. Ayrıntılı bilgiye “&lt;a href="http://www.cs.umd.edu/%7Epugh/java/memoryModel/DoubleCheckedLocking.html"&gt;&lt;u&gt;&lt;span style="color: rgb(84, 141, 212);"&gt;The Double-Checked Locking is Broken Declaration&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;” bağlantısından ulaşabilirsiniz. JDK 5 ile gelen &lt;i&gt;volatile &lt;/i&gt;bu&lt;br /&gt;sıkıntıya derman oluyor:&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;public&lt;/span&gt;&lt;/b&gt; &lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;class&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; DateUtils {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;private &lt;u&gt;volatile&lt;/u&gt; static&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; DateUtils &lt;/span&gt;&lt;i&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;instance&lt;/span&gt;&lt;/i&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;private&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; DateUtils() {}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;public&lt;/span&gt;&lt;/b&gt; &lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;static&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; DateUtils getInstance&lt;/span&gt; () {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;"&gt;   &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;if&lt;/span&gt;&lt;/b&gt; (&lt;i&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;instance&lt;/span&gt;&lt;/i&gt; == null) {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in; line-height: 100%; margin-left: 120px;"&gt;      &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;synchronized&lt;/span&gt;&lt;/b&gt;(DateUtils.&lt;i&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;class&lt;/span&gt;&lt;/i&gt;)&lt;br /&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in; line-height: 100%; margin-left: 160px;"&gt;        &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;if&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt; (&lt;i&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;instance&lt;/span&gt;&lt;/i&gt; == null)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in; line-height: 100%; margin-left: 200px;"&gt;          &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;instance&lt;/span&gt;&lt;/i&gt; = &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; DateUtils();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in; line-height: 100%; margin-left: 120px;"&gt;      &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;"&gt;   &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;"&gt;   &lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;return&lt;/span&gt;&lt;/b&gt; &lt;i&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;instance&lt;/span&gt;&lt;/i&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;p  style="margin-bottom: 0in; line-height: 100%;font-family:georgia;" align="justify"&gt;&lt;span style="font-size:100%;"&gt;Singleton örüntüsünde dikkat edilmesi gereken bir başka husus ise sınıf &lt;i&gt;Clonable&lt;/i&gt; arayüzünü gerçekleştiren bir başka sınıftan türetilmişse ortaya çıkıyor. Singleton sınıfımızın clone() yöntemi ile çoğaltılmasının önüne geçmek istiyorsak bu metodun üstüne yazmamız gerekiyor:&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; Object clone() &lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;throws&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; CloneNotSupportedException {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;"&gt; &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;throw&lt;/span&gt;&lt;/b&gt; &lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; CloneNotSupportedException();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-7230042391864951937?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/7230042391864951937/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2008/11/en-basit-tasarm-rnts-singleton.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/7230042391864951937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/7230042391864951937'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2008/11/en-basit-tasarm-rnts-singleton.html' title='En Basit Tasarım Örüntüsü Singleton (mu?)'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-3951833278207293626</id><published>2008-11-13T10:24:00.004+02:00</published><updated>2008-11-13T10:58:41.008+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hibernate'/><title type='text'>Hibernate Data Filtering (Süzme)</title><content type='html'>&lt;p class="western" style="margin-bottom: 0.14in;" align="justify"&gt;Verilerin tamamını değil de belirli kriterlerle süzülüp işimize yarayacakları veritabanından sorgulamak günlük hayatta çokça karşılaştığımız bir senaryo. Örneğin “Abone” nesnesinin belirli tarihten önceki ödenmemiş faturalarına erişmek istediğimiz zaman &lt;span style="font-family:Courier New,monospace;"&gt;abone.getFaturalar()&lt;/span&gt;&lt;br /&gt;şeklinde bir erişim, eğer bir süzme uygulanmazsa abonenin tüm faturalarını getireceği için Java kodlarıyla süzme işlemini yapmamızı gerektirecektir. Buna benzer ya da veri güvenliği (kullanıcıya sadece görmesi gereken verilerin gösterilmesi) gibi senaryolarda &lt;i&gt;Hibernate Data Filtering&lt;/i&gt;, Java kodlarında gerçekleştirmemiz gereken süzme maliyetinden kurtulmamıza olanak sağlıyor.&lt;/p&gt;&lt;br /&gt;Öncelikle süzme işleminde kullanacağımız süzgeci, biricik ismiyle tanımlamamız gerekiyor:&lt;br /&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="color: rgb(100, 100, 100);"&gt;@&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;org.hibernate.annotations.&lt;/span&gt;&lt;span style="color: rgb(100, 100, 100);"&gt;FilterDef&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(name=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"faturaOdemeFilter"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;"&gt;&lt;br /&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;parameters={&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="color: rgb(100, 100, 100);"&gt;@ParamDef&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(name=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"donem"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,type=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"integer"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;),&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="color: rgb(100, 100, 100);"&gt;@ParamDef&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(name=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"kalanTutar"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,type=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"double"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;),&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="color: rgb(100, 100, 100);"&gt;@ParamDef&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(name=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"durumConditions"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,type=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"long"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;})&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0.14in;" align="justify"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="western" style="margin-bottom: 0.14in;" align="justify"&gt;Tanımladığımız süzgecin ismi &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;faturaOdemeFilter &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;ve dinamik süzme işlemi yapabilmemiz için üç tane parametre alıyor. Parametrelerin kurulma işlemine birazdan değineceğiz. Bu tanım global nitelikli olduğu için herhangi bir sınıfta ya da &lt;span style="font-family:Courier New,monospace;"&gt;package-info.java&lt;/span&gt; içerisinde yazılabilir. Yazıldığı sınıfın davranışında bir etkisi yoktur fakat uygun olan tanımın ilgili sınıfta yazılmasıdır. Süzgeç tanımımız olgusunu da süzme işleminin yapılacağı sınıfta ya da ilişkide yazılması gerekmektedir:&lt;/p&gt;&lt;span style="color: rgb(100, 100, 100);"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;@Entity&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="color: rgb(100, 100, 100);"&gt;@Table&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(name=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"FATURA"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="color: rgb(100, 100, 100);"&gt;@Filter&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(name=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"faturaOdemeFilter"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, condition=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"ODEME_DONEMI &amp;lt;= :donem and FATURA_DURUM in (:durumConditions) and KALAN_TUTAR &amp;gt;:kalanTutar"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="margin-bottom: 0.14in;" align="justify"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;public &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;class&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; Fatura {...}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%;"&gt;Birden fazla süzgeç&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; @org.hibernate.annotations.Filters &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;ile gruplanabilir. Yukarıdaki gibi sınıf  üzerine yazılmış süzgeç olgusu&lt;br /&gt;&lt;/p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;List&amp;lt;Fatura&amp;gt; filteredItems = session.createQuery("from Fatura").list();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;List&amp;lt;Fatura&amp;gt; filteredItems = session.createCriteria(Fatura.class).list();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%;" align="justify"&gt;Deyimlerinde çalışacaktır. Id ile sorgulamalarda (id'yi biliyorsak süzmeye de gerek yok)  ve  nesne niteliklerinin sorgulanmasında sınıf üzerine yapılan tanım çalışmayacaktır. &lt;span style="font-family:Courier New,monospace;"&gt;abone.getFaturalar()&lt;/span&gt;deyimi gibi abonenin ilişkili olduğu faturaların süzülmesi için süzgeç olgusunun ilişki üzerinde tanımlanması gerekmektedir:&lt;/p&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%;" align="justify"&gt;&lt;br /&gt;&lt;span style="color: rgb(100, 100, 100);"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;@Entity&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="color: rgb(100, 100, 100);"&gt;@Table&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(name = &lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"ABONE"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;public&lt;/span&gt;&lt;/b&gt; &lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;class&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; Abone {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;"&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="color: rgb(100, 100, 100);"&gt;@&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;OneToMany(mappedBy=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"abone"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="color: rgb(100, 100, 100);"&gt;@&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Filter(name=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"faturaOdemeFilter"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, condition=&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"ODEME_DONEMI &amp;lt;= :donem and FATURA_DURUM in (:durumConditions) and KALAN_TUTAR &amp;gt; :kalanTutar"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" align="justify"&gt; &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;private&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; Set&amp;lt;Fatura&amp;gt; faturalar = &lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; HashSet&amp;lt;Fatura&amp;gt;();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" align="justify"&gt;&lt;br /&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt; ...&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%;" align="justify"&gt;&lt;br /&gt;Süzgeç tanımının kullanılması için Hibernate Session’ında süzgeç aktif hale getirilerek varsa aldığı parametreler kurulmalıdır. Veriler çekildikten sonra da süzgeç tekrar pasif hale getirilebilinir. (JPA API’sinde &lt;i&gt;EntityManager &lt;/i&gt;filtrelemeye destek sağlamadığı için Hibernate arayüzü kullanılmalıdır.)&lt;/p&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%;"&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;List&amp;lt;Long&amp;gt; durumConditions = &lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; ArrayList&amp;lt;Long&amp;gt;();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;durumConditions.add(FaturaDurumEnum.&lt;/span&gt;&lt;i&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;ODENMEMIS&lt;/span&gt;&lt;/i&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.getValue());&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;durumConditions.add(FaturaDurumEnum.&lt;/span&gt;&lt;i&gt;&lt;span style="color: rgb(0, 0, 192);"&gt;PARCALI_ODENIYOR&lt;/span&gt;&lt;/i&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.getValue());&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Filter filter = session.enableFilter(&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"faturaNormalOdemeFilter"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%;" align="justify"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;filter.setParameter(&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"donem"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,donem).setParameter(&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"kalanTutar"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt;&lt;b&gt;&lt;span style="color: rgb(127, 0, 85);"&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; Double(0)).setParameterList(&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"durumConditions"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, durumConditions);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%;" align="justify"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="font-size:85%;"&gt;Set&amp;lt;Fatura&amp;gt; faturalar = abone.getFaturalar();&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;session.disableFilter((&lt;/span&gt;&lt;span style="color: rgb(42, 0, 255);"&gt;"faturaNormalOdemeFilter"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%;" align="justify"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-3951833278207293626?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/3951833278207293626/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2008/11/hibernate-data-filtering.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/3951833278207293626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/3951833278207293626'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2008/11/hibernate-data-filtering.html' title='Hibernate Data Filtering (Süzme)'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-4575681454087501847</id><published>2008-10-23T11:41:00.004+03:00</published><updated>2008-10-23T11:45:13.758+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hibernate'/><title type='text'>Char Tipi ve Hibernate</title><content type='html'>Bir veritabanına erişirken Char tipinde tanımlanmış bir kolona&lt;br /&gt;rastladım. Birkaç ufak takla atma, alan nesnesinde kolona karşılık&lt;br /&gt;gelen niteliği String tanımalama gibi girişimlerim sonuç vermeyince&lt;br /&gt;Google başvurmak kaçınılmaz oldu. &lt;a href="http://www.hibernate.org/388.html"&gt;Hibernate'in sitesinde yer alan bir sayfada&lt;/a&gt;&lt;br /&gt;UserType arayüzünden gerçekleştirilmiş bir sınıfın bu işi çözeceği&lt;br /&gt;belirtilmiş. Sınıfı aşağıdaki annotationlar ile denediğimde artık Char&lt;br /&gt;tipine sorunsuz ulaşabildim:&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;(Burada Char.class, UserType’tan gerçekleştirilmiş sınıfımız)&lt;/p&gt;&lt;p class="MsoNormal"&gt; &lt;/p&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;span style="font-size:85%;"&gt;@Entity&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;span style="font-size:85%;"&gt;@Table&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;color:black;"  &gt;&lt;span style="font-size:85%;"&gt;(name=&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;span style="font-size:85%;"&gt;"ABONE_DURUM"&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;color:black;"  &gt;&lt;span style="font-size:85%;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;span style="font-size:85%;"&gt;@TypeDef&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;color:black;"  &gt;&lt;span style="font-size:85%;"&gt;(name = &lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;span style="font-size:85%;"&gt;"char"&lt;/span&gt;&lt;/span&gt;, typeClass =&lt;span style=";font-family:&amp;quot;;color:black;"  &gt;&lt;span style="font-size:85%;"&gt; Char.&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;span style="font-size:85%;"&gt;class&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:&amp;quot;;color:black;"  &gt;&lt;span style="font-size:85%;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;span style="font-size:85%;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:&amp;quot;;color:black;"  &gt;&lt;span style="font-size:85%;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;span style="font-size:85%;"&gt;class&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:&amp;quot;;color:black;"  &gt;&lt;span style="font-size:85%;"&gt; AboneDurum&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;span style="font-size:85%;"&gt;{&lt;br /&gt;&lt;br /&gt;     @Id&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;   &lt;span style=";font-family:&amp;quot;;" &gt;&lt;span style="font-size:85%;"&gt;@Column&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;color:black;"  &gt;&lt;span style="font-size:85%;"&gt;(name=&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;span style="font-size:85%;"&gt;"ABONE_DURUM_KODU"&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;color:black;"  &gt;&lt;span style="font-size:85%;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;     &lt;b&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;span style="font-size:85%;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:&amp;quot;;color:black;"  &gt;&lt;span style="font-size:85%;"&gt; Long &lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;span style="font-size:85%;"&gt;id&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;color:black;"  &gt;&lt;span style="font-size:85%;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style=";font-family:&amp;quot;;" &gt;&lt;span style="font-size:85%;"&gt;@Column&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;color:black;"  &gt;&lt;span style="font-size:85%;"&gt;(name=&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;span style="font-size:85%;"&gt;"ACIKLAMA"&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;color:black;"  &gt;&lt;span style="font-size:85%;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;     &lt;b&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;span style="font-size:85%;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:&amp;quot;;color:black;"  &gt;&lt;span style="font-size:85%;"&gt; String &lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;span style="font-size:85%;"&gt;aciklama&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;color:black;"  &gt;&lt;span style="font-size:85%;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style=";font-family:&amp;quot;;" &gt;&lt;span style="font-size:85%;"&gt;@Type&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;color:black;"  &gt;&lt;span style="font-size:85%;"&gt;(type=&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;span style="font-size:85%;"&gt;"char"&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;color:black;"  &gt;&lt;span style="font-size:85%;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;     @Column&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;color:black;"  &gt;&lt;span style="font-size:85%;"&gt;(name=&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;span style="font-size:85%;"&gt;"KISA_ACIKLAMA"&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;color:black;"  &gt;&lt;span style="font-size:85%;"&gt;, length=3)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;     &lt;b&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;span style="font-size:85%;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:&amp;quot;;color:black;"  &gt;&lt;span style="font-size:85%;"&gt; String &lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;span style="font-size:85%;"&gt;kisaAciklama&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;color:black;"  &gt;&lt;span style="font-size:85%;"&gt;;&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-4575681454087501847?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/4575681454087501847/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2008/10/char-tipi-ve-hibernate.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/4575681454087501847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/4575681454087501847'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2008/10/char-tipi-ve-hibernate.html' title='Char Tipi ve Hibernate'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-8456231807078219036</id><published>2008-08-13T21:28:00.007+03:00</published><updated>2008-08-13T21:41:50.211+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EJB'/><category scheme='http://www.blogger.com/atom/ns#' term='POJO'/><category scheme='http://www.blogger.com/atom/ns#' term='Spring'/><title type='text'>POJO vs. EJB 3.0</title><content type='html'>&lt;p id="tphq" class="western" style="margin-bottom: 0in; line-height: 100%;" align="center" lang="tr-TR"&gt; &lt;/p&gt;&lt;p id="tphq1" class="western" style="margin-bottom: 0in; line-height: 100%; text-align: left;" lang="tr-TR"&gt;POJO ve EJB, Java EE geliştiriminde tercih edilen iki ayrı programlama modeli. Bu iki teknoloji, EJB 3.0'ın öğrenilmesi zor ve karmışık programlama modelini terkederek POJO tabanlı bir model seçmesiyle aynı eksende ilerleyecek gibi duruyor. Ama hala göz ardı edilemeyecek farklılıklar mevcut. POJO programlama modelini temel alan Spring çatısını kendine örnek alan EJB ile POJO'yu kıyaslarken elde ettiğim sonuçları özetlemeye çalıştım: &lt;/p&gt;&lt;p id="tphq3" class="western" style="margin-bottom: 0in; line-height: 100%; text-align: left;" lang="tr-TR"&gt; &lt;/p&gt; &lt;p id="wweb1" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;/p&gt;&lt;table style="width: 539px; height: 1413px;" id="wweb2" dir="ltr" align="left" border="1" bordercolor="#000000" cellpadding="8" cellspacing="0" hspace="5"&gt;  &lt;col id="wweb3" width="99"&gt;  &lt;col id="wweb4" width="230"&gt;  &lt;col id="wweb5" width="262"&gt;  &lt;tbody id="wweb6"&gt;&lt;tr id="wweb7" valign="top"&gt;   &lt;td id="wweb8" width="99"&gt;    &lt;p id="wweb9" class="western" align="center" lang="tr-TR"&gt;     &lt;/p&gt;   &lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;   &lt;td id="wweb11" width="230"&gt;    &lt;p id="wweb12" class="western" align="center" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;&lt;b id="wweb13"&gt;POJO&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb14" width="262"&gt;    &lt;p id="wweb15" class="western" align="center" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;&lt;b id="wweb16"&gt;EJB 3&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr id="wweb17" valign="top"&gt;   &lt;td id="wweb18" width="99"&gt;    &lt;p id="wweb19" class="western" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;&lt;b id="wweb20"&gt;Basitlik&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb21" width="230"&gt;    &lt;p id="wweb22" class="western" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;Mimarinin geliştiriminde göz    önünde tutulan nesne yönelimli ilkeler sayesinde    öğrenilmesi ve kullanılması kolay bir yapıya    sahip. Basitlik ve tutarlılık ön planda.&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb23" width="262"&gt;    &lt;p id="wweb24" class="western" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;Getirdiği mimari artılarına    karşın EJB 1.0 sürümünden bu yana değişen    programlama modeli ve öğrenim maliyeti projeler için    dezavantaj oluşturuyor.&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr id="wweb25" valign="top"&gt;   &lt;td id="wweb26" width="99"&gt;    &lt;p id="wweb27" class="western" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;&lt;b id="wweb28"&gt;Test Edilebilirlik&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb29" width="230"&gt;    &lt;p id="wweb30" class="western" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;POJO yapısı sayesinde    Bağımlılık aktarımı (&lt;i id="wweb31"&gt;Dependency    Injection&lt;/i&gt;) örüntüsü kullanılarak    bileşenlerin kolay ve hızlı test edilebilirliğine    imkan sağlıyor. Testler &lt;i id="wweb32"&gt;container&lt;/i&gt;dan bağımsız    yapılabiliyor.     &lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb33" width="262"&gt;    &lt;p id="wweb34" class="western" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;Bağımlılık    aktarımının sadece JNDI nesneleri ile    yapılabilmesi, Session ve message-driven beanlerinin POJO    olmalarına rağmen EJB Container’a ihtiyaç    duymaları sebebiyle test edilebilirlik kısıtlanıyor.    Bu da geliştirim sürecini olumsuz etkiliyor.&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr id="wweb35" valign="top"&gt;   &lt;td id="wweb36" width="99"&gt;    &lt;p id="wweb37" class="western" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;&lt;b id="wweb38"&gt;Geliştirim Ortamı&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb39" width="230"&gt;    &lt;p id="wweb40" class="western" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;Tomcat gibi hafif (lightweight)    containerlarla geliştirilen web uygulaması hızlıca    çalıştırılabiliyor.&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb41" width="262"&gt;    &lt;p id="wweb42" class="western" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;Geliştirilen uygulamanın    çalıştırılabilmesi için ağır    uygulama sunucularına ihtiyaç duyuyor. Projenin    ihtiyaç duymadığı özellikler de    uygulama sunucusu ile ayağa kaldırılıyor.&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr id="wweb43" valign="top"&gt;   &lt;td id="wweb44" width="99"&gt;    &lt;p id="wweb45" class="western" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;&lt;b id="wweb46"&gt;Collections Desteği&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb47" width="230"&gt;    &lt;p id="wweb48" class="western" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;Hibernate çatısı    ile persistence katmanında&lt;/span&gt;&lt;span id="wweb49" style=";font-family:Courier New,monospace;font-size:85%;"  &gt;    Set&amp;lt;String&amp;gt;, Set&amp;lt;Integer&amp;gt; &lt;/span&gt;&lt;span style="font-size:85%;"&gt;gibi entity    beanlerden oluşmayan collectionlara doğrudan destek    sağlıyor.&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb50" width="262"&gt;    &lt;p id="wweb51" class="western" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;Persistence katmanında sadece    entity beanleri için collection desteği sağlıyor.    &lt;/span&gt;&lt;span id="wweb52" style=";font-family:Courier New,monospace;font-size:85%;"  &gt;Set&amp;lt;String&amp;gt;,    Set&amp;lt;Integer&amp;gt; &lt;/span&gt;&lt;span style="font-size:85%;"&gt;gibi collectionlara doğrudan destek    sağlamıyor.     &lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr id="wweb53" valign="top"&gt;   &lt;td id="wweb54" width="99"&gt;    &lt;p id="wweb55" class="western" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;&lt;b id="wweb56"&gt;Konfigürasyon &lt;/b&gt;&lt;/span&gt;    &lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb57" width="230"&gt;    &lt;p id="wweb58" class="western" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;Spring Bean configuration    dosyalarına ihtiyaç duyuyor. Annotation desteği    sunuyor.&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb59" width="262"&gt;    &lt;p id="wweb60" class="western" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;Spring Bean configuration    dosyalarından daha karmaşık bir yapıya sahip    EJB descriptor dosyalarına ihtiyaç duyuyor. Annotation    desteği sunuyor.&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr id="wweb61" valign="top"&gt;   &lt;td id="wweb62" width="99"&gt;    &lt;p id="wweb63" class="western" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;&lt;b id="wweb64"&gt;Persistence API&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb65" width="230"&gt;    &lt;p id="wweb66" class="western" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;Kendine ait bir persistence api    olmamasına karşın Template örüntüsü    ile desteklenen; Hibernate, Ibatis, JPA gibi popüler    çatılarla ve JDBC ile kolayca entegrasyona izin veren    bir mimari sağlıyor.&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb67" width="262"&gt;    &lt;p id="wweb68" class="western" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;EJB 3 ile Entity beanlerin yerini    Hibernate, Toplink, JDO gibi persistence API’lerden    devşirilen JPA belirtimi alıyor. Belirtim olması    sebebiyle belirtimin yetersiz kaldığı yerlerde    geliştirim sağlayıcısına bağımlı    kalınabilmektedir.&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr id="wweb69" valign="top"&gt;   &lt;td id="wweb70" width="99"&gt;    &lt;p id="wweb71" class="western" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;&lt;b id="wweb72"&gt;Transactions&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb73" width="230"&gt;    &lt;p id="wweb74" class="western" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;Dağıtık transaction    mimarisini JTA ile destekliyor. Spring AOP çatısı    ile annotationlar kullanılarak 7 farklı    Propagation-bazlı transaction tanımlanabiliyor.    Transactionlar XML konfigürasyon dosyalarında ya da    aspect yaklaşım kullanılarak tanımlanıyor.    Spring JDBX, Hibernate ve JTA ile entegre olabiliyor.&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb75" width="262"&gt;    &lt;p id="wweb76" class="western" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;Dağıtık transaction    mimari geliştirimine olanak sağlıyor. Session    beanlerin tüm public metodlarına transaction mantığı    otomatik olarak uygulanıyor. Annotation tabanlı bir    transaction yönetimi bulunuyor. Sadece JTA’yı    destekliyor. JTA Tomcat gibi hafif containerlarda çalışmıyor.&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr id="wweb77" valign="top"&gt;   &lt;td id="wweb78" width="99"&gt;    &lt;p id="wweb79" class="western" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;&lt;b id="wweb80"&gt;Güvenlik&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb81" width="230"&gt;    &lt;p id="wweb82" class="western" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;ACEGI güvenlik çatısıyla    hem nesne method çağrımı hem de HTTP    istemlerinde doğrulama ve yetkilendirme yapılabiliyor.    Rol-bazlının yanı sıra ACL-bazlı    yetkilendirme de sağlıyor. Uygulama sunucusundan    bağımsız standart bir güvenlik katmanı    sağlıyor.&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb83" width="262"&gt;    &lt;p id="wweb84" class="western" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;Tanımlı method-düzeyi    rol-bazlı yetkilendirme, programatik rol belirleme    özelliklerine sahip. EJB belirtiminin yeterli olmaması    sebebiyle, güvenlik gerçekleştirimini uygulama    sunucusuna bırakıyor. Böylece güvenlik katmanı    uygulama sunucuna bağımlı hale geliyor.&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;   &lt;p id="wweb86" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="wweb88" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="wweb89"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="wweb90"  style="font-size:100%;"&gt;&lt;b id="wweb91"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b0" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b1"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b2"  style="font-size:100%;"&gt;&lt;b id="mz3b3"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b5" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b6"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b7"  style="font-size:100%;"&gt;&lt;b id="mz3b8"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b10" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b11"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b12"  style="font-size:100%;"&gt;&lt;b id="mz3b13"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b15" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b16"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b17"  style="font-size:100%;"&gt;&lt;b id="mz3b18"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b20" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b21"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b22"  style="font-size:100%;"&gt;&lt;b id="mz3b23"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b25" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b26"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b27"  style="font-size:100%;"&gt;&lt;b id="mz3b28"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b30" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b31"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b32"  style="font-size:100%;"&gt;&lt;b id="mz3b33"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b35" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b36"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b37"  style="font-size:100%;"&gt;&lt;b id="mz3b38"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b40" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b41"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b42"  style="font-size:100%;"&gt;&lt;b id="mz3b43"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b45" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b46"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b47"  style="font-size:100%;"&gt;&lt;b id="mz3b48"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b50" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b51"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b52"  style="font-size:100%;"&gt;&lt;b id="mz3b53"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b55" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b56"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b57"  style="font-size:100%;"&gt;&lt;b id="mz3b58"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b60" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b61"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b62"  style="font-size:100%;"&gt;&lt;b id="mz3b63"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b65" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b66"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b67"  style="font-size:100%;"&gt;&lt;b id="mz3b68"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b70" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b71"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b72"  style="font-size:100%;"&gt;&lt;b id="mz3b73"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b75" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b76"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b77"  style="font-size:100%;"&gt;&lt;b id="mz3b78"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b80" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b81"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b82"  style="font-size:100%;"&gt;&lt;b id="mz3b83"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b85" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b86"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b87"  style="font-size:100%;"&gt;&lt;b id="mz3b88"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b90" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b91"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b92"  style="font-size:100%;"&gt;&lt;b id="mz3b93"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b95" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b96"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b97"  style="font-size:100%;"&gt;&lt;b id="mz3b98"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b100" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b101"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b102"  style="font-size:100%;"&gt;&lt;b id="mz3b103"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b105" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b106"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b107"  style="font-size:100%;"&gt;&lt;b id="mz3b108"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b110" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b111"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b112"  style="font-size:100%;"&gt;&lt;b id="mz3b113"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b115" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b116"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b117"  style="font-size:100%;"&gt;&lt;b id="mz3b118"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b120" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b121"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b122"  style="font-size:100%;"&gt;&lt;b id="mz3b123"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b125" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b126"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b127"  style="font-size:100%;"&gt;&lt;b id="mz3b128"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b130" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b131"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b132"  style="font-size:100%;"&gt;&lt;b id="mz3b133"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b135" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b136"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b137"  style="font-size:100%;"&gt;&lt;b id="mz3b138"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b140" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b141"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b142"  style="font-size:100%;"&gt;&lt;b id="mz3b143"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b145" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b146"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b147"  style="font-size:100%;"&gt;&lt;b id="mz3b148"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b150" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b151"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b152"  style="font-size:100%;"&gt;&lt;b id="mz3b153"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b155" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b156"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b157"  style="font-size:100%;"&gt;&lt;b id="mz3b158"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b160" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b161"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b162"  style="font-size:100%;"&gt;&lt;b id="mz3b163"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b165" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b166"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b167"  style="font-size:100%;"&gt;&lt;b id="mz3b168"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b170" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b171"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b172"  style="font-size:100%;"&gt;&lt;b id="mz3b173"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b175" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b176"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b177"  style="font-size:100%;"&gt;&lt;b id="mz3b178"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b180" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b181"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b182"  style="font-size:100%;"&gt;&lt;b id="mz3b183"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b185" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b186"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b187"  style="font-size:100%;"&gt;&lt;b id="mz3b188"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b190" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b191"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b192"  style="font-size:100%;"&gt;&lt;b id="mz3b193"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b195" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b196"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b197"  style="font-size:100%;"&gt;&lt;b id="mz3b198"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b200" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b201"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b202"  style="font-size:100%;"&gt;&lt;b id="mz3b203"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b205" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b206"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b207"  style="font-size:100%;"&gt;&lt;b id="mz3b208"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b210" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b211"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b212"  style="font-size:100%;"&gt;&lt;b id="mz3b213"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b215" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b216"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b217"  style="font-size:100%;"&gt;&lt;b id="mz3b218"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b220" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b221"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b222"  style="font-size:100%;"&gt;&lt;b id="mz3b223"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b225" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b226"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b227"  style="font-size:100%;"&gt;&lt;b id="mz3b228"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b230" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b231"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b232"  style="font-size:100%;"&gt;&lt;b id="mz3b233"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b235" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b236"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b237"  style="font-size:100%;"&gt;&lt;b id="mz3b238"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b240" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b241"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b242"  style="font-size:100%;"&gt;&lt;b id="mz3b243"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b245" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b246"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b247"  style="font-size:100%;"&gt;&lt;b id="mz3b248"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b250" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b251"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b252"  style="font-size:100%;"&gt;&lt;b id="mz3b253"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b255" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b256"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b257"  style="font-size:100%;"&gt;&lt;b id="mz3b258"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b260" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b261"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b262"  style="font-size:100%;"&gt;&lt;b id="mz3b263"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b265" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b266"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b267"  style="font-size:100%;"&gt;&lt;b id="mz3b268"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b270" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b271"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b272"  style="font-size:100%;"&gt;&lt;b id="mz3b273"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b275" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b276"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b277"  style="font-size:100%;"&gt;&lt;b id="mz3b278"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b280" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b281"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b282"  style="font-size:100%;"&gt;&lt;b id="mz3b283"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b285" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b286"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b287"  style="font-size:100%;"&gt;&lt;b id="mz3b288"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b290" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b291"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b292"  style="font-size:100%;"&gt;&lt;b id="mz3b293"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b295" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b296"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b297"  style="font-size:100%;"&gt;&lt;b id="mz3b298"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b300" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b301"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b302"  style="font-size:100%;"&gt;&lt;b id="mz3b303"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b305" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b306"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b307"  style="font-size:100%;"&gt;&lt;b id="mz3b308"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b310" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b311"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b312"  style="font-size:100%;"&gt;&lt;b id="mz3b313"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b315" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b316"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b317"  style="font-size:100%;"&gt;&lt;b id="mz3b318"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b320" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b321"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b322"  style="font-size:100%;"&gt;&lt;b id="mz3b323"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b325" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b326"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b327"  style="font-size:100%;"&gt;&lt;b id="mz3b328"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b330" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b331"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b332"  style="font-size:100%;"&gt;&lt;b id="mz3b333"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b335" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b336"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b337"  style="font-size:100%;"&gt;&lt;b id="mz3b338"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b340" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b341"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b342"  style="font-size:100%;"&gt;&lt;b id="mz3b343"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b345" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b346"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b347"  style="font-size:100%;"&gt;&lt;b id="mz3b348"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b350" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b351"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b352"  style="font-size:100%;"&gt;&lt;b id="mz3b353"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b355" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b356"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b357"  style="font-size:100%;"&gt;&lt;b id="mz3b358"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b360" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b361"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b362"  style="font-size:100%;"&gt;&lt;b id="mz3b363"&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="mz3b365" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="mz3b366"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="mz3b367"  style="font-size:100%;"&gt;&lt;b id="mz3b368"&gt;Summation of Persistence Comparison Between Spring and EJB 3.0. &lt;/b&gt;&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;table id="wweb92" style="color: rgb(192, 192, 192); width: 549px; height: 175px;" border="1" cellpadding="1" cellspacing="3"&gt;  &lt;col id="wweb93" width="173"&gt;  &lt;col id="wweb94" width="251"&gt;  &lt;col id="wweb95" width="241"&gt;  &lt;tbody id="wweb96"&gt;&lt;tr id="wweb97" valign="top"&gt;   &lt;td id="wweb98" bg="" style="color: rgb(51, 51, 255);" width="173"&gt;    &lt;p id="wweb99" class="western" lang="tr-TR"&gt;&lt;span id="wweb100" style=";font-family:Times New Roman,serif;font-size:85%;"  &gt;&lt;span id="wweb101"&gt;&lt;b id="wweb102"&gt;Feature    &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;    &lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb103" bg="" style="color: rgb(51, 51, 255);" width="251"&gt;    &lt;p id="wweb104" class="western" lang="tr-TR"&gt;&lt;span id="wweb105" style=";font-family:Times New Roman,serif;font-size:85%;"  &gt;&lt;span id="wweb106"&gt;&lt;b id="wweb107"&gt;Spring    &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;    &lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb108" bg="" style="color: rgb(51, 51, 255);" width="241"&gt;    &lt;p id="wweb109" class="western" lang="tr-TR"&gt;&lt;span id="wweb110" style=";font-family:Times New Roman,serif;font-size:85%;"  &gt;&lt;span id="wweb111"&gt;&lt;b id="wweb112"&gt;EJB    3.0 &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;    &lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr id="wweb113" valign="top"&gt;   &lt;td id="wweb114" bg="" style="color: rgb(0, 0, 0); font-weight: bold;" width="173"&gt;    &lt;p id="wweb115" class="western" lang="tr-TR"&gt;&lt;span id="wweb116" style=";font-family:Times New Roman,serif;font-size:85%;"  &gt;&lt;span id="wweb117"&gt;Simple    ORM Persistence&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="color: rgb(0, 0, 0);" id="wweb118" bg="" width="251"&gt;    &lt;p id="wweb119" class="western" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;√&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="color: rgb(0, 0, 0);" id="wweb120" bg="" width="241"&gt;    &lt;p id="wweb121" class="western" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;√&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr id="wweb122" valign="top"&gt;   &lt;td id="wweb123" bg="" style="color: rgb(0, 0, 0); font-weight: bold;" width="173"&gt;    &lt;p id="wweb124" class="western" lang="tr-TR"&gt;&lt;span id="wweb125" style=";font-family:Times New Roman,serif;font-size:85%;"  &gt;&lt;span id="wweb126"&gt;Implementation&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb127" bg="" style="color: rgb(0, 0, 0);" width="251"&gt;    &lt;p id="wweb128" class="western" lang="tr-TR"&gt;&lt;span id="wweb129" style=";font-family:Times New Roman,serif;font-size:85%;"  &gt;&lt;span id="wweb130"&gt;Hibernate,    JPA, JDO, TopLink, iBatis&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb131" bg="" style="color: rgb(0, 0, 0);" width="241"&gt;    &lt;p id="wweb132" class="western" lang="tr-TR"&gt;&lt;span id="wweb133" style=";font-family:Times New Roman,serif;font-size:85%;"  &gt;&lt;span id="wweb134"&gt;JPA    (providers include Hibernate, Kodo and Toplink)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr id="wweb135" valign="top"&gt;   &lt;td id="wweb136" bg="" style="color: rgb(0, 0, 0); font-weight: bold;" width="173"&gt;    &lt;p id="wweb137" class="western" lang="tr-TR"&gt;&lt;span id="wweb138" style=";font-family:Times New Roman,serif;font-size:85%;"  &gt;&lt;span id="wweb139"&gt;JDBC    Support&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="color: rgb(0, 0, 0);" id="wweb140" bg="" width="251"&gt;    &lt;p id="wweb141" class="western" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;√&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb142" bg="" style="color: rgb(0, 0, 0);" width="241"&gt;    &lt;p id="wweb143" class="western" lang="tr-TR"&gt;&lt;span id="wweb144" style=";font-family:Times New Roman,serif;font-size:85%;"  &gt;&lt;span id="wweb145"&gt;--&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr id="wweb146" valign="top"&gt;   &lt;td id="wweb147" bg="" style="color: rgb(0, 0, 0); font-weight: bold;" width="173"&gt;    &lt;p id="wweb148" class="western" lang="tr-TR"&gt;&lt;span id="wweb149" style=";font-family:Times New Roman,serif;font-size:85%;"  &gt;&lt;span id="wweb150"&gt;Mapping&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb151" bg="" style="color: rgb(0, 0, 0);" width="251"&gt;    &lt;p id="wweb152" class="western" lang="tr-TR"&gt;&lt;span id="wweb153" style=";font-family:Times New Roman,serif;font-size:85%;"  &gt;&lt;span id="wweb154"&gt;XML,    Annotations&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb155" bg="" style="color: rgb(0, 0, 0);" width="241"&gt;    &lt;p id="wweb156" class="western" lang="tr-TR"&gt;&lt;span id="wweb157" style=";font-family:Times New Roman,serif;font-size:85%;"  &gt;&lt;span id="wweb158"&gt;Annotations,    XML&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr id="wweb159" valign="top"&gt;   &lt;td id="wweb160" bg="" style="color: rgb(0, 0, 0); font-weight: bold;" width="173"&gt;    &lt;p id="wweb161" class="western" lang="tr-TR"&gt;&lt;span id="wweb162" style=";font-family:Times New Roman,serif;font-size:85%;"  &gt;&lt;span id="wweb163"&gt;Cache    Propagation&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb164" bg="" style="color: rgb(0, 0, 0);" width="251"&gt;    &lt;p id="wweb165" class="western" lang="tr-TR"&gt;&lt;span id="wweb166" style=";font-family:Times New Roman,serif;font-size:85%;"  &gt;&lt;span id="wweb167"&gt;Thread    local&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb168" bg="" style="color: rgb(0, 0, 0);" width="241"&gt;    &lt;p id="wweb169" class="western" lang="tr-TR"&gt;&lt;span id="wweb170" style=";font-family:Times New Roman,serif;font-size:85%;"  &gt;&lt;span id="wweb171"&gt;Transaction&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr id="wweb172" valign="top"&gt;   &lt;td id="wweb173" bg="" style="color: rgb(0, 0, 0); font-weight: bold;" width="173"&gt;    &lt;p id="wweb174" class="western" lang="tr-TR"&gt;&lt;span id="wweb175" style=";font-family:Times New Roman,serif;font-size:85%;"  &gt;&lt;span id="wweb176"&gt;Extended    cache scoping&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb177" bg="" style="color: rgb(0, 0, 0);" width="251"&gt;    &lt;p id="wweb178" class="western" lang="tr-TR"&gt;&lt;span id="wweb179" style=";font-family:Times New Roman,serif;font-size:85%;"  &gt;&lt;span id="wweb180"&gt;Open    session in view&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb181" bg="" style="color: rgb(0, 0, 0);" width="241"&gt;    &lt;p id="wweb182" class="western" lang="tr-TR"&gt;&lt;span id="wweb183" style=";font-family:Times New Roman,serif;font-size:85%;"  &gt;&lt;span id="wweb184"&gt;Extended    persistence context&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;p id="wweb188" class="western" style="margin-bottom: 0.14in;" lang="tr-TR"&gt;  &lt;/p&gt; &lt;p id="wweb191" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="wweb192"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="wweb193"  style="font-size:100%;"&gt;&lt;b id="wweb194"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="wweb191" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;&lt;span id="wweb192"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="wweb193"  style="font-size:100%;"&gt;&lt;b id="wweb194"&gt;Equivalent Transaction Management Functionality in Both Spring and EJB 3.0.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;table id="wweb195" style="color: rgb(192, 192, 192); width: 549px; height: 188px;" border="1" cellpadding="1" cellspacing="3"&gt;  &lt;col id="wweb196" width="195"&gt;  &lt;col id="wweb197" width="125"&gt;  &lt;col id="wweb198" width="299"&gt;  &lt;tbody id="wweb199"&gt;&lt;tr id="wweb200" valign="top"&gt;   &lt;td id="wweb201" bg="" style="color: rgb(51, 51, 255);" width="195"&gt;    &lt;p id="wweb202" class="western" lang="tr-TR"&gt;&lt;span id="wweb203"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="wweb204"  style="font-size:100%;"&gt;&lt;b id="wweb205"&gt;Feature    &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;    &lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb206" bg="" style="color: rgb(51, 51, 255);" width="125"&gt;    &lt;p id="wweb207" class="western" lang="tr-TR"&gt;&lt;span id="wweb208"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="wweb209"  style="font-size:100%;"&gt;&lt;b id="wweb210"&gt;Spring    &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;    &lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb211" bg="" style="color: rgb(51, 51, 255);" width="299"&gt;    &lt;p id="wweb212" class="western" lang="tr-TR"&gt;&lt;span id="wweb213"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="wweb214"  style="font-size:100%;"&gt;&lt;b id="wweb215"&gt;EJB    3.0 &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;    &lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr id="wweb216" valign="top"&gt;   &lt;td id="wweb217" bg="" style="color: rgb(0, 0, 0); font-weight: bold;" width="195"&gt;    &lt;p id="wweb218" class="western" lang="tr-TR"&gt;&lt;span id="wweb219" style=";font-family:Times New Roman,serif;font-size:85%;"  &gt;&lt;span id="wweb220"&gt;Declarative    Transactions&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="color: rgb(0, 0, 0);" id="wweb221" bg="" width="125"&gt;    &lt;p id="wweb222" class="western" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;√&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="color: rgb(0, 0, 0);" id="wweb223" bg="" width="299"&gt;    &lt;p id="wweb224" class="western" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;√&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr id="wweb225" valign="top"&gt;   &lt;td id="wweb226" bg="" style="color: rgb(0, 0, 0); font-weight: bold;" width="195"&gt;    &lt;p id="wweb227" class="western" lang="tr-TR"&gt;&lt;span id="wweb228" style=";font-family:Times New Roman,serif;font-size:85%;"  &gt;&lt;span id="wweb229"&gt;Programmatic    Transactions&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="color: rgb(0, 0, 0);" id="wweb230" bg="" width="125"&gt;    &lt;p id="wweb231" class="western" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;√&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="color: rgb(0, 0, 0);" id="wweb232" bg="" width="299"&gt;    &lt;p id="wweb233" class="western" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;√&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr id="wweb234" valign="top"&gt;   &lt;td id="wweb235" bg="" style="color: rgb(0, 0, 0); font-weight: bold;" width="195"&gt;    &lt;p id="wweb236" class="western" lang="tr-TR"&gt;&lt;span id="wweb237" style=";font-family:Times New Roman,serif;font-size:85%;"  &gt;&lt;span id="wweb238"&gt;Demarcation&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb239" bg="" style="color: rgb(0, 0, 0);" width="125"&gt;    &lt;p id="wweb240" class="western" lang="tr-TR"&gt;&lt;span id="wweb241" style=";font-family:Times New Roman,serif;font-size:85%;"  &gt;&lt;span id="wweb242"&gt;AOP&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb243" bg="" style="color: rgb(0, 0, 0);" width="299"&gt;    &lt;p id="wweb244" class="western" lang="tr-TR"&gt;&lt;span id="wweb245" style=";font-family:Times New Roman,serif;font-size:85%;"  &gt;&lt;span id="wweb246"&gt;Session    bean methods&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr id="wweb247" valign="top"&gt;   &lt;td id="wweb248" bg="" style="color: rgb(0, 0, 0); font-weight: bold;" width="195"&gt;    &lt;p id="wweb249" class="western" lang="tr-TR"&gt;&lt;span id="wweb250" style=";font-family:Times New Roman,serif;font-size:85%;"  &gt;&lt;span id="wweb251"&gt;Supported    Transaction Types&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb252" bg="" style="color: rgb(0, 0, 0);" width="125"&gt;    &lt;p id="wweb253" class="western" lang="tr-TR"&gt;&lt;span id="wweb254" style=";font-family:Times New Roman,serif;font-size:85%;"  &gt;&lt;span id="wweb255"&gt;JDBC,    Hibernate, JTA&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb256" bg="" style="color: rgb(0, 0, 0);" width="299"&gt;    &lt;p id="wweb257" class="western" lang="tr-TR"&gt;&lt;span id="wweb258" style=";font-family:Times New Roman,serif;font-size:85%;"  &gt;&lt;span id="wweb259"&gt;JTA&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr id="wweb260" valign="top"&gt;   &lt;td id="wweb261" bg="" style="color: rgb(0, 0, 0); font-weight: bold;" width="195"&gt;    &lt;p id="wweb262" class="western" lang="tr-TR"&gt;&lt;span id="wweb263" style=";font-family:Times New Roman,serif;font-size:85%;"  &gt;&lt;span id="wweb264"&gt;Support    for Distributed Transactions&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb265" bg="" style="color: rgb(0, 0, 0);" width="125"&gt;    &lt;p id="wweb266" class="western" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;√ &lt;/span&gt;&lt;span id="wweb267" style=";font-family:Times New Roman,serif;font-size:85%;"  &gt;&lt;span id="wweb268"&gt;(With    JTA)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td style="color: rgb(0, 0, 0);" id="wweb269" bg="" width="299"&gt;    &lt;p id="wweb270" class="western" lang="tr-TR"&gt;&lt;span style="font-size:85%;"&gt;√&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr id="wweb271" valign="top"&gt;   &lt;td id="wweb272" bg="" style="color: rgb(0, 0, 0); font-weight: bold;" width="195"&gt;    &lt;p id="wweb273" class="western" lang="tr-TR"&gt;&lt;span id="wweb274" style=";font-family:Times New Roman,serif;font-size:85%;"  &gt;&lt;span id="wweb275"&gt;Configuration&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb276" bg="" style="color: rgb(0, 0, 0);" width="125"&gt;    &lt;p id="wweb277" class="western" lang="tr-TR"&gt;&lt;span id="wweb278" style=";font-family:Times New Roman,serif;font-size:85%;"  &gt;&lt;span id="wweb279"&gt;XML&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb280" bg="" style="color: rgb(0, 0, 0);" width="299"&gt;    &lt;p id="wweb281" class="western" lang="tr-TR"&gt;&lt;span id="wweb282" style=";font-family:Times New Roman,serif;font-size:85%;"  &gt;&lt;span id="wweb283"&gt;Transactional    by default, override with annotations or XML&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;p id="wweb296" class="western" style="margin-bottom: 0.14in;" lang="tr-TR"&gt;  &lt;/p&gt;&lt;p id="wweb317" class="western" style="margin-bottom: 0.14in;" lang="tr-TR"&gt;  &lt;/p&gt; &lt;p id="wweb320" class="western" style="margin-bottom: 0.14in;" lang="tr-TR"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p id="wweb320" class="western" style="margin-bottom: 0.14in;" lang="tr-TR"&gt;Teknolojilerin Google Trend’ten elde edilen yıllara göre arama sonuçlarının karşılaştırma tabloları:&lt;/p&gt; &lt;table id="wweb321" width="90" border="0" cellpadding="1" cellspacing="0" height="27"&gt;  &lt;col id="wweb322" width="25"&gt;  &lt;col id="wweb323" width="4"&gt;  &lt;col id="wweb324" width="25"&gt;  &lt;col id="wweb325" width="37"&gt;  &lt;col id="wweb326" width="4"&gt;  &lt;col id="wweb327" width="22"&gt;  &lt;tbody id="wweb328"&gt;&lt;tr id="wweb329"&gt;   &lt;td id="wweb330" width="25"&gt;    &lt;p id="wweb331" class="western" lang="tr-TR"&gt;&lt;span id="wweb332"  style="font-size:85%;"&gt;&lt;span id="wweb333"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="wweb334" style="color: rgb(70, 132, 238);"&gt;&lt;b id="wweb335"&gt;ejb&lt;/b&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb336" colspan="4" width="75"&gt;    &lt;p id="wweb337" class="western" lang="tr-TR"&gt;&lt;img id="wweb338" src="http://docs.google.com/File?id=dcn4r5n8_77fwx9q64b_b" name="Frame2" alt="Frame2" width="74" align="bottom" height="9" /&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb339" width="22"&gt;    &lt;p id="wweb340" class="western" lang="tr-TR"&gt;&lt;span id="wweb341"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="wweb342"  style="font-size:78%;"&gt;1.00&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr id="wweb343"&gt;   &lt;td id="wweb344" colspan="2" width="31"&gt;    &lt;p id="wweb345" class="western" lang="tr-TR"&gt;&lt;span id="wweb346"  style="font-size:85%;"&gt;&lt;span id="wweb347"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="wweb348" style="color: rgb(220, 57, 18);"&gt;&lt;b id="wweb349"&gt;pojo&lt;/b&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb350" width="25"&gt;    &lt;p id="wweb351" class="western" lang="tr-TR"&gt;&lt;img id="wweb352" src="http://docs.google.com/File?id=dcn4r5n8_78gvq9s9gs_b" name="Frame3" alt="Frame3" width="12" align="bottom" height="9" /&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb353" width="37"&gt;    &lt;p id="wweb354" class="western" lang="tr-TR"&gt;&lt;span id="wweb355"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="wweb356"  style="font-size:78%;"&gt;0.16&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb357" colspan="2" valign="top" width="28"&gt;    &lt;p id="wweb358" class="western" lang="tr-TR"&gt;     &lt;/p&gt;&lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;p id="wweb360" class="western" style="margin-bottom: 0.14in;" lang=""&gt;&lt;img style="width: 518px; height: 232px;" id="wweb361" src="http://docs.google.com/File?id=dcn4r5n8_79fpc7kbcz_b" name="graphics1" align="bottom" border="0" /&gt;&lt;/p&gt;&lt;p id="wweb360" class="western" style="margin-bottom: 0.14in;" lang=""&gt;&lt;br /&gt;&lt;/p&gt;&lt;p id="wweb365" class="western" style="margin-bottom: 0.14in;" lang="tr-TR"&gt;  &lt;/p&gt; &lt;table id="wweb368" width="174" border="0" cellpadding="1" cellspacing="0"&gt;  &lt;col id="wweb369" width="24"&gt;  &lt;col id="wweb370" width="4"&gt;  &lt;col id="wweb371" width="5"&gt;  &lt;col id="wweb372" width="27"&gt;  &lt;col id="wweb373" width="3"&gt;  &lt;col id="wweb374" width="8"&gt;  &lt;col id="wweb375" width="57"&gt;  &lt;col id="wweb376" width="6"&gt;  &lt;col id="wweb377" width="22"&gt;  &lt;tbody id="wweb378"&gt;&lt;tr id="wweb379"&gt;   &lt;td id="wweb380" colspan="2" width="30"&gt;    &lt;p id="wweb381" class="western" lang="tr-TR"&gt;&lt;span id="wweb382"  style="font-size:85%;"&gt;&lt;span id="wweb383"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="wweb384" style="color: rgb(70, 132, 238);"&gt;&lt;b id="wweb385"&gt;ejb&lt;/b&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb386" colspan="4" width="49"&gt;    &lt;p id="wweb387" class="western" lang="tr-TR"&gt;&lt;img id="wweb388" src="http://docs.google.com/File?id=dcn4r5n8_80f8qn4sgz_b" name="Frame4" alt="Frame4" width="41" align="bottom" height="12" /&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb389" width="57"&gt;    &lt;p id="wweb390" class="western" lang="tr-TR"&gt;&lt;span id="wweb391"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="wweb392"  style="font-size:78%;"&gt;1.00&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb393" colspan="2" valign="top" width="30"&gt;    &lt;p id="wweb394" class="western" lang="tr-TR"&gt;     &lt;/p&gt;&lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt;  &lt;tr id="wweb396"&gt;   &lt;td id="wweb397" colspan="5" width="71"&gt;    &lt;p id="wweb398" class="western" lang="tr-TR"&gt;&lt;span id="wweb399"  style="font-size:85%;"&gt;&lt;span id="wweb400"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="wweb401" style="color: rgb(220, 57, 18);"&gt;&lt;b id="wweb402"&gt;hibernate&lt;/b&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb403" colspan="3" width="75"&gt;    &lt;p id="wweb404" class="western" lang="tr-TR"&gt;&lt;img id="wweb405" src="http://docs.google.com/File?id=dcn4r5n8_81fxdbvxgh_b" name="Frame5" alt="Frame5" width="74" align="bottom" height="9" /&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb406" width="22"&gt;    &lt;p id="wweb407" class="western" lang="tr-TR"&gt;&lt;span id="wweb408"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="wweb409"  style="font-size:78%;"&gt;1.84&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr id="wweb410"&gt;   &lt;td id="wweb411" width="24"&gt;    &lt;p id="wweb412" class="western" lang="tr-TR"&gt;&lt;span id="wweb413"  style="font-size:85%;"&gt;&lt;span id="wweb414"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="wweb415" style="color: rgb(255, 153, 0);"&gt;&lt;b id="wweb416"&gt;jpa&lt;/b&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb417" colspan="2" width="12"&gt;    &lt;p id="wweb418" class="western" lang="tr-TR"&gt;&lt;img id="wweb419" src="http://docs.google.com/File?id=dcn4r5n8_82chb6n9cj_b" name="Frame6" alt="Frame6" width="10" align="bottom" height="15" /&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb420" width="27"&gt;    &lt;p id="wweb421" class="western" lang="tr-TR"&gt;&lt;span id="wweb422"  style="font-family:Times New Roman,serif;"&gt;&lt;span id="wweb423"  style="font-size:78%;"&gt;0.24&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td id="wweb424" colspan="5" valign="top" width="104"&gt;    &lt;p id="wweb425" class="western" lang="tr-TR"&gt;     &lt;/p&gt;&lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;p id="wweb427" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="wweb428" class="western" style="margin-bottom: 0in; line-height: 100%;" lang=""&gt; &lt;img style="width: 498px; height: 223px;" id="wweb429" src="http://docs.google.com/File?id=dcn4r5n8_83gdhcx3cs_b" name="viz?q=ejb,+hibernate,+jpa&amp;amp;date=all&amp;amp;geo=all&amp;amp;graph=weekly_img&amp;amp;sort=0&amp;amp;sa=N" align="bottom" border="0" /&gt;&lt;/p&gt;&lt;p id="wweb428" class="western" style="margin-bottom: 0in; line-height: 100%;" lang=""&gt;&lt;br /&gt;&lt;/p&gt; &lt;p id="wweb430" class="western" style="margin-bottom: 0.14in;" lang="tr-TR"&gt; &lt;/p&gt;&lt;p id="tphq5" class="western" style="margin-bottom: 0.14in;" lang="tr-TR"&gt;  &lt;/p&gt; &lt;p id="wweb433" class="western" style="margin-bottom: 0.14in;" lang="tr-TR"&gt;&lt;img style="width: 508px; height: 282px;" id="wweb434" src="http://docs.google.com/File?id=dcn4r5n8_84g3xx2bhp_b" name="graphics2" align="bottom" border="0" /&gt;&lt;/p&gt;&lt;p id="wweb438" class="western" style="margin-bottom: 0.14in;" lang="tr-TR"&gt; &lt;/p&gt;&lt;p id="vbdy0" class="western" style="margin-bottom: 0.14in;" lang="tr-TR"&gt;Sonuç olarak Java EE uygulamalarda EJB'nin tercih edilmesini gerektirecek tek durum dağıtık transaction yönetimi ihtiyacı. POJO (dolayısıyla Spring) bu ihtiyaca karşılık veremiyor. Bunun dışındaki senaryolarda değişen trendler de göz önüne alınarak POJO programlama modelini temel alan çözümlerin (Spring, Hibernate, vs.) (EJB 3.0 gibi kopyalarının yerine :) ) seçilmemesinde hiç bir neden yok. &lt;/p&gt;&lt;p id="pczg0" class="western" style="margin-bottom: 0.14in;" lang="tr-TR"&gt; &lt;/p&gt; &lt;p id="wweb441" class="western" style="margin-bottom: 0.14in;" lang="tr-TR"&gt;&lt;b id="wweb442"&gt;Kaynaklar&lt;/b&gt;&lt;/p&gt; &lt;ul id="wweb443"&gt;  &lt;li id="wweb444"&gt;&lt;p id="wweb445" style="margin-bottom: 0.14in;" lang="tr-TR"&gt;Manning –  POJOs In Action - &lt;span id="wweb446" style="color: rgb(0, 0, 255);"&gt;&lt;u id="wweb447"&gt;&lt;a id="wweb448" href="http://www.manning.com/crichardson/"&gt;http://www.manning.com/crichardson/&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;   &lt;/p&gt;  &lt;/li&gt;&lt;li id="wweb449"&gt;&lt;p id="wweb450" style="margin-bottom: 0.14in;" lang="tr-TR"&gt;An Early Look at  Spring vs. EJB 3.0 - &lt;span id="wweb451" style="color: rgb(0, 0, 255);"&gt;&lt;u id="wweb452"&gt;&lt;a id="wweb453" href="http://www.techienuggets.com/Detail?tx=93"&gt;http://www.techienuggets.com/Detail?tx=93&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="wweb454"&gt;&lt;p id="wweb455" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;Spring  and EJB 3 Compared - &lt;span id="wweb456" style="color: rgb(0, 0, 255);"&gt;&lt;u id="wweb457"&gt;&lt;a id="wweb458" href="http://www.infoq.com/news/spring-ejb-3-compared"&gt;http://www.infoq.com/news/spring-ejb-3-compared&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="wweb459"&gt;&lt;p id="wweb460" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;Make  the Right Decision with Our Side-by-Side Comparison of Spring and  EJB 3.0 - &lt;span id="wweb461" style="color: rgb(0, 0, 255);"&gt;&lt;u id="wweb462"&gt;&lt;a id="wweb463" href="http://www.devx.com/Java/Article/32314/0/page/1"&gt;http://www.devx.com/Java/Article/32314/0/page/1&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;   &lt;/p&gt;  &lt;/li&gt;&lt;li id="wweb464"&gt;&lt;p id="wweb465" style="margin-bottom: 0.14in;" lang="tr-TR"&gt;&lt;span id="wweb466" style="color: rgb(0, 0, 255);"&gt;&lt;u id="wweb467"&gt;&lt;a id="wweb468" href="http://www.google.com/trends"&gt;http://www.google.com/trends&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;   &lt;/p&gt;  &lt;/li&gt;&lt;li id="wweb469"&gt;&lt;p id="wweb470" style="margin-bottom: 0.14in;" lang="tr-TR"&gt;Job Trends:EJB,  Spring, and Hibernate -  &lt;span id="wweb471" style="color: rgb(0, 0, 255);"&gt;&lt;u id="wweb472"&gt;&lt;a id="wweb473" href="http://www.infoq.com/news/2006/11/job-trends-ejb3-spring"&gt;http://www.infoq.com/news/2006/11/job-trends-ejb3-spring&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-8456231807078219036?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/8456231807078219036/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2008/08/pojo-ve-ejb-java-ee-gelitiriminde.html#comment-form' title='2 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/8456231807078219036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/8456231807078219036'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2008/08/pojo-ve-ejb-java-ee-gelitiriminde.html' title='POJO vs. EJB 3.0'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-4402739888494466049</id><published>2008-07-11T17:06:00.001+03:00</published><updated>2008-07-11T17:08:44.764+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CXF'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Service'/><title type='text'>Spring 2.5.3 ve Apache CXF ile Anlaşma-Sonra(Contract-Last) Yaklaşımlı Web Service Geliştirme</title><content type='html'>&lt;p id="geyh" class="western" style="margin-bottom: 0.14in;" lang="tr-TR"&gt;&lt;b id="geyh0"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt; &lt;p id="geyh1" class="western" style="margin-bottom: 0.14in;" align="justify" lang="tr-TR"&gt; Bir önceki &lt;a href="http://mdasgin.blogspot.com/2008/06/web-servisleri-bir-makinede-sunulan.html"&gt;girdide&lt;/a&gt; Spring Web Service kullanarak anlaşma-önce web service geliştirme yaklaşımından ve bu yaklaşımının artılarından bahsetmiştik. WSDL belgesinin değişmesinin istemci ve sunucu kodlarını etkileyeceği için önce WSDL belgesinin oluşturulması gerektiğine değinmiştik. Bunun yanında anlaşma-önce yaklaşımın kullanılması geliştiriciyi Web Service geliştiriminin ayrıntılarından uzak tutacağı için küçük çaplı projelerde avantaj sağlayabilir. Bu girdide de &lt;span id="geyh2"  style="color:#0000ff;"&gt;&lt;u id="geyh3"&gt;&lt;a id="geyh4" href="http://cxf.apache.org/"&gt;Apache CXF&lt;/a&gt;&lt;/u&gt;&lt;/span&gt; kullanarak anlaşma-önce yaklaşımla basit bir web service geliştireceğiz.&lt;/p&gt; &lt;p id="geyh5" class="western" style="margin-bottom: 0.14in;" align="justify" lang="tr-TR"&gt; Apache CXF’nin kullanacağı kütüphaneleri &lt;span id="geyh6"  style="color:#0000ff;"&gt;&lt;u id="geyh7"&gt;&lt;a id="geyh8" href="http://cxf.apache.org/download.html"&gt;indirdikten&lt;/a&gt;&lt;/u&gt;&lt;/span&gt; sonra projemiz için gerekli olanları .zip kütüğünün lib dizininde yer alan &lt;i id="geyh9"&gt;WHICH_JARS&lt;/i&gt; kütüğünde bulabilirsiniz. Temel kullanım için gerekli olan kütüphanelerin listesi şu şekildedir:&lt;/p&gt; &lt;p id="geyh10" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh11"  style="font-family:System, Arial, sans-serif;"&gt;&lt;span id="geyh12"  style="font-size:85%;"&gt;&lt;b id="geyh13"&gt;- cxf.jar&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh14" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh15"  style="font-family:System, Arial, sans-serif;"&gt;&lt;span id="geyh16"  style="font-size:85%;"&gt;&lt;b id="geyh17"&gt;- commons-logging.jar&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh18" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;b id="geyh19"&gt;&lt;span id="geyh20"  style="font-size:85%;"&gt;&lt;span id="geyh21"  style="font-family:System, Arial, sans-serif;"&gt;- geronimo-activation.jar (Or the Sun equivalent) *&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p id="geyh22" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh23"  style="font-family:System, Arial, sans-serif;"&gt;&lt;span id="geyh24"  style="font-size:85%;"&gt;&lt;b id="geyh25"&gt;- geronimo-annotation.jar (Or the Sun equivalent) *&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh26" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh27"  style="font-family:System, Arial, sans-serif;"&gt;&lt;span id="geyh28"  style="font-size:85%;"&gt;&lt;b id="geyh29"&gt;- geronimo-javamail.jar (Or the Sun equivalent) *&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh30" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh31"  style="font-family:System, Arial, sans-serif;"&gt;&lt;span id="geyh32"  style="font-size:85%;"&gt;&lt;b id="geyh33"&gt;- geronimo-stax-api.jar (Or the Sun equivalent) *&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh34" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh35"  style="font-family:System, Arial, sans-serif;"&gt;&lt;span id="geyh36"  style="font-size:85%;"&gt;&lt;b id="geyh37"&gt;- neethi.jar&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh38" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh39"  style="font-family:System, Arial, sans-serif;"&gt;&lt;span id="geyh40"  style="font-size:85%;"&gt;&lt;b id="geyh41"&gt;- jaxb-api.jar  *&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh42" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh43"  style="font-family:System, Arial, sans-serif;"&gt;&lt;span id="geyh44"  style="font-size:85%;"&gt;&lt;b id="geyh45"&gt;- jaxb-impl.jar&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh46" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh47"  style="font-family:System, Arial, sans-serif;"&gt;&lt;span id="geyh48"  style="font-size:85%;"&gt;&lt;b id="geyh49"&gt;- stax-utils.jar&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh50" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh51"  style="font-family:System, Arial, sans-serif;"&gt;&lt;span id="geyh52"  style="font-size:85%;"&gt;&lt;b id="geyh53"&gt;- XmlSchema.jar&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh54" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh55"  style="font-family:System, Arial, sans-serif;"&gt;&lt;span id="geyh56"  style="font-size:85%;"&gt;&lt;b id="geyh57"&gt;- wstx-asl.jar  *&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh58" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh59"  style="font-family:System, Arial, sans-serif;"&gt;&lt;span id="geyh60"  style="font-size:85%;"&gt;&lt;b id="geyh61"&gt;- wsdl4j.jar&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh62" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh63"  style="font-family:System, Arial, sans-serif;"&gt;&lt;span id="geyh64"  style="font-size:85%;"&gt;&lt;b id="geyh65"&gt;- xml-resolver.jar &lt;/b&gt;&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p id="geyh66" class="western" style="margin-bottom: 0.14in;" lang="tr-TR"&gt;* Bu kütüphaneler Java 6  Update 4’den sonra JDK içinde mevcuttur.&lt;/p&gt; &lt;p id="geyh67" class="western" style="margin-bottom: 0.14in;" align="justify" lang="tr-TR"&gt; Ayrıca Java sınıflarımızda Annotation kullanacağımız için Aegis ve JAX-WS kütüphalerine de ihtiyacımız var:&lt;/p&gt; &lt;p id="geyh68" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh69"  style="font-family:System, Arial, sans-serif;"&gt;&lt;span id="geyh70"  style="font-size:85%;"&gt;&lt;b id="geyh71"&gt;- jaxen.jar&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh72" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh73"  style="font-family:System, Arial, sans-serif;"&gt;&lt;span id="geyh74"  style="font-size:85%;"&gt;&lt;b id="geyh75"&gt;- jdom.jar&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh76" class="western" style="margin-bottom: 0.14in;" lang="tr-TR"&gt;&lt;span id="geyh77"  style="font-family:System, Arial, sans-serif;"&gt;&lt;span id="geyh78"  style="font-size:85%;"&gt;&lt;b id="geyh79"&gt;- stax-utils.jar&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh80" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh81"  style="font-family:System, Arial, sans-serif;"&gt;&lt;span id="geyh82"  style="font-size:85%;"&gt;&lt;b id="geyh83"&gt;- geronimo-ws-metadata.jar [6]&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh84" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh85"  style="font-family:System, Arial, sans-serif;"&gt;&lt;span id="geyh86"  style="font-size:85%;"&gt;&lt;b id="geyh87"&gt;- jaxws-api.jar [6]&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh88" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh89"  style="font-family:System, Arial, sans-serif;"&gt;&lt;span id="geyh90"  style="font-size:85%;"&gt;&lt;b id="geyh91"&gt;- saaj-api.jar [6]&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh92" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh93"  style="font-family:System, Arial, sans-serif;"&gt;&lt;span id="geyh94"  style="font-size:85%;"&gt;&lt;b id="geyh95"&gt;- saaj-impl.jar [6]&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh96" class="western" style="margin-bottom: 0.14in;" lang="tr-TR"&gt;&lt;span id="geyh97"  style="font-family:System, Arial, sans-serif;"&gt;&lt;span id="geyh98"  style="font-size:85%;"&gt;&lt;b id="geyh99"&gt;- asm.jar&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh100" class="western" style="margin-bottom: 0.14in;" lang="tr-TR"&gt;Örnek servis olarak kişi listesi döndüren bir servis yazalım:&lt;/p&gt; &lt;p id="geyh101" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh102"  style="font-size:85%;"&gt;&lt;span id="geyh103"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh104"&gt;&lt;span id="geyh105"  style="color:#7f0055;"&gt;package&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh106"  style="color:#000000;"&gt; com.blogspot.mdasgin.examples.model;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh107" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh109" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh110"  style="font-size:85%;"&gt;&lt;span id="geyh111"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh112"&gt;&lt;span id="geyh113"  style="color:#7f0055;"&gt;import&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh114"  style="color:#000000;"&gt; org.apache.cxf.aegis.type.java5.IgnoreProperty;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh115" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh117" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh118"  style="font-size:85%;"&gt;&lt;span id="geyh119"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh120"&gt;&lt;span id="geyh121"  style="color:#7f0055;"&gt;public&lt;/span&gt;&lt;/b&gt; &lt;b id="geyh122"&gt;&lt;span id="geyh123"  style="color:#7f0055;"&gt;class&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh124"  style="color:#000000;"&gt; Kisi {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh125" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh127" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh128"  style="font-size:85%;"&gt;&lt;span id="geyh129"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh130"&gt;&lt;span id="geyh131"  style="color:#7f0055;"&gt;private&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh132"  style="color:#000000;"&gt; String &lt;/span&gt;&lt;span id="geyh133"  style="color:#0000c0;"&gt;isim&lt;/span&gt;&lt;span id="geyh134"  style="color:#000000;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh135" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh136"  style="font-size:85%;"&gt;&lt;span id="geyh137"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh138"&gt;&lt;span id="geyh139"  style="color:#7f0055;"&gt;private&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh140"  style="color:#000000;"&gt; String &lt;/span&gt;&lt;span id="geyh141"  style="color:#0000c0;"&gt;soyisim&lt;/span&gt;&lt;span id="geyh142"  style="color:#000000;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh143" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh144"  style="font-size:85%;"&gt;&lt;span id="geyh145"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh146"&gt;&lt;span id="geyh147"  style="color:#7f0055;"&gt;private&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh148"  style="color:#000000;"&gt; Integer &lt;/span&gt;&lt;span id="geyh149"  style="color:#0000c0;"&gt;kimlikNo&lt;/span&gt;&lt;span id="geyh150"  style="color:#000000;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh151" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh153" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh154"  style="font-size:85%;"&gt;&lt;span id="geyh155"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh156"&gt;&lt;span id="geyh157"  style="color:#7f0055;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh158"  style="color:#000000;"&gt; Kisi() {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh159" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="geyh160"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh161"  style="font-size:85%;"&gt; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh162" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh164" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh165"  style="font-size:85%;"&gt;&lt;span id="geyh166"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh167"&gt;&lt;span id="geyh168"  style="color:#7f0055;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh169"  style="color:#000000;"&gt; Kisi(String isim, String soyisim, Integer kimlikNo) {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh170" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;" lang="tr-TR"&gt;   &lt;span id="geyh171"  style="font-size:85%;"&gt;&lt;span id="geyh172"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh173"&gt;&lt;span id="geyh174"  style="color:#7f0055;"&gt;this&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh175"  style="color:#000000;"&gt;.&lt;/span&gt;&lt;span id="geyh176"  style="color:#0000c0;"&gt;isim&lt;/span&gt;&lt;span id="geyh177"  style="color:#000000;"&gt; = isim;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh178" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;" lang="tr-TR"&gt;   &lt;span id="geyh179"  style="font-size:85%;"&gt;&lt;span id="geyh180"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh181"&gt;&lt;span id="geyh182"  style="color:#7f0055;"&gt;this&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh183"  style="color:#000000;"&gt;.&lt;/span&gt;&lt;span id="geyh184"  style="color:#0000c0;"&gt;soyisim&lt;/span&gt;&lt;span id="geyh185"  style="color:#000000;"&gt; = soyisim;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh186" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;" lang="tr-TR"&gt;   &lt;span id="geyh187"  style="font-size:85%;"&gt;&lt;span id="geyh188"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh189"&gt;&lt;span id="geyh190"  style="color:#7f0055;"&gt;this&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh191"  style="color:#000000;"&gt;.&lt;/span&gt;&lt;span id="geyh192"  style="color:#0000c0;"&gt;kimlikNo&lt;/span&gt;&lt;span id="geyh193"  style="color:#000000;"&gt; = kimlikNo;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh194" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="geyh195"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh196"  style="font-size:85%;"&gt; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh197" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh199" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh200"  style="font-size:85%;"&gt;&lt;span id="geyh201"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh202"&gt;&lt;span id="geyh203"  style="color:#7f0055;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh204"  style="color:#000000;"&gt; String getIsim() {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh205" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;" lang="tr-TR"&gt;   &lt;span id="geyh206"  style="font-size:85%;"&gt;&lt;span id="geyh207"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh208"&gt;&lt;span id="geyh209"  style="color:#7f0055;"&gt;return&lt;/span&gt;&lt;/b&gt; &lt;span id="geyh210"  style="color:#0000c0;"&gt;isim&lt;/span&gt;&lt;span id="geyh211"  style="color:#000000;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh212" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="geyh213"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh214"  style="font-size:85%;"&gt; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh215" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh217" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh218"  style="font-size:85%;"&gt;&lt;span id="geyh219"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh220"&gt;&lt;span id="geyh221"  style="color:#7f0055;"&gt;public&lt;/span&gt;&lt;/b&gt; &lt;b id="geyh222"&gt;&lt;span id="geyh223"  style="color:#7f0055;"&gt;void&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh224"  style="color:#000000;"&gt; setIsim(String isim) {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh225" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;" lang="tr-TR"&gt;   &lt;span id="geyh226"  style="font-size:85%;"&gt;&lt;span id="geyh227"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh228"&gt;&lt;span id="geyh229"  style="color:#7f0055;"&gt;this&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh230"  style="color:#000000;"&gt;.&lt;/span&gt;&lt;span id="geyh231"  style="color:#0000c0;"&gt;isim &lt;/span&gt;&lt;span id="geyh232"  style="color:#000000;"&gt;= isim;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh233" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="geyh234"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh235"  style="font-size:85%;"&gt; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh236" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh238" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh239"  style="font-size:85%;"&gt;&lt;span id="geyh240"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh241"&gt;&lt;span id="geyh242"  style="color:#7f0055;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh243"  style="color:#000000;"&gt; String getSoyisim() {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh244" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;" lang="tr-TR"&gt;   &lt;span id="geyh245"  style="font-size:85%;"&gt;&lt;span id="geyh246"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh247"&gt;&lt;span id="geyh248"  style="color:#7f0055;"&gt;return&lt;/span&gt;&lt;/b&gt; &lt;span id="geyh249"  style="color:#0000c0;"&gt;soyisim&lt;/span&gt;&lt;span id="geyh250"  style="color:#000000;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh251" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="geyh252"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh253"  style="font-size:85%;"&gt; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh254" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh256" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh257"  style="font-size:85%;"&gt;&lt;span id="geyh258"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh259"&gt;&lt;span id="geyh260"  style="color:#7f0055;"&gt;public&lt;/span&gt;&lt;/b&gt; &lt;b id="geyh261"&gt;&lt;span id="geyh262"  style="color:#7f0055;"&gt;void&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh263"  style="color:#000000;"&gt; setSoyisim(String soyisim) {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh264" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;" lang="tr-TR"&gt;   &lt;span id="geyh265"  style="font-size:85%;"&gt;&lt;span id="geyh266"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh267"&gt;&lt;span id="geyh268"  style="color:#7f0055;"&gt;this&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh269"  style="color:#000000;"&gt;.&lt;/span&gt;&lt;span id="geyh270"  style="color:#0000c0;"&gt;soyisim&lt;/span&gt;&lt;span id="geyh271"  style="color:#000000;"&gt; = soyisim;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh272" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="geyh273"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh274"  style="font-size:85%;"&gt; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh275" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh277" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh278"  style="font-size:85%;"&gt;&lt;span id="geyh279"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh280"  style="color:#3f7f5f;"&gt;/*&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh281" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="geyh282"  style="color:#3f7f5f;"&gt;&lt;span id="geyh283"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh284"  style="font-size:85%;"&gt;  * @IgnoreProperty tells Aegis that I don't want getTamIsim() to show up in the auto-generated WSDL. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p id="geyh285" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="geyh286"  style="color:#3f7f5f;"&gt;&lt;span id="geyh287"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh288"  style="font-size:85%;"&gt;  * It's just a read-only convenience method.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh289" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="geyh290"  style="color:#3f7f5f;"&gt;&lt;span id="geyh291"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh292"  style="font-size:85%;"&gt;  */&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh293" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh294"  style="font-size:85%;"&gt;&lt;span id="geyh295"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh296"  style="color:#646464;"&gt;@IgnoreProperty&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh297" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh298"  style="font-size:85%;"&gt;&lt;span id="geyh299"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh300"&gt;&lt;span id="geyh301"  style="color:#7f0055;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh302"  style="color:#000000;"&gt; String getTamIsim() {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh303" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;" lang="tr-TR"&gt;   &lt;span id="geyh304"  style="font-size:85%;"&gt;&lt;span id="geyh305"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh306"&gt;&lt;span id="geyh307"  style="color:#7f0055;"&gt;return&lt;/span&gt;&lt;/b&gt; &lt;span id="geyh308"  style="color:#0000c0;"&gt;soyisim&lt;/span&gt;&lt;span id="geyh309"  style="color:#000000;"&gt; + &lt;/span&gt;&lt;span id="geyh310"  style="color:#2a00ff;"&gt;", "&lt;/span&gt;&lt;span id="geyh311"  style="color:#000000;"&gt; + &lt;/span&gt;&lt;span id="geyh312"  style="color:#0000c0;"&gt;isim&lt;/span&gt;&lt;span id="geyh313"  style="color:#000000;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh314" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="geyh315"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh316"  style="font-size:85%;"&gt; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh317" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh319" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh320"  style="font-size:85%;"&gt;&lt;span id="geyh321"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh322"&gt;&lt;span id="geyh323"  style="color:#7f0055;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh324"  style="color:#000000;"&gt; Integer getKimlikNo() {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh325" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;" lang="tr-TR"&gt;   &lt;span id="geyh326"  style="font-size:85%;"&gt;&lt;span id="geyh327"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh328"&gt;&lt;span id="geyh329"  style="color:#7f0055;"&gt;return&lt;/span&gt;&lt;/b&gt; &lt;span id="geyh330"  style="color:#0000c0;"&gt;kimlikNo&lt;/span&gt;&lt;span id="geyh331"  style="color:#000000;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh332" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="geyh333"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh334"  style="font-size:85%;"&gt; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh335" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh337" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh338"  style="font-size:85%;"&gt;&lt;span id="geyh339"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh340"&gt;&lt;span id="geyh341"  style="color:#7f0055;"&gt;public&lt;/span&gt;&lt;/b&gt; &lt;b id="geyh342"&gt;&lt;span id="geyh343"  style="color:#7f0055;"&gt;void&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh344"  style="color:#000000;"&gt; setTamIsim(Integer kimlikNo) {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh345" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;" lang="tr-TR"&gt;   &lt;span id="geyh346"  style="font-size:85%;"&gt;&lt;span id="geyh347"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh348"&gt;&lt;span id="geyh349"  style="color:#7f0055;"&gt;this&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh350"  style="color:#000000;"&gt;.&lt;/span&gt;&lt;span id="geyh351"  style="color:#0000c0;"&gt;kimlikNo&lt;/span&gt;&lt;span id="geyh352"  style="color:#000000;"&gt; = kimlikNo;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh353" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="geyh354"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh355"  style="font-size:85%;"&gt; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh356" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh357"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh358"  style="font-size:85%;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh359" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh361" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh363" class="western" style="margin-bottom: 0in; line-height: 100%;" align="justify" lang="tr-TR"&gt; &lt;span id="geyh364"  style="font-size:85%;"&gt;&lt;span id="geyh365"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh366"  style="color:#646464;"&gt;@IgnoreProperty&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; annotation’ı sayesinde Aegis, otomatik üretilen WSDL belgesinde bu niteliği göz ardı edecek. Web service arayüzü ve geliştirimi de şu şekilde olacaktır:&lt;/p&gt; &lt;p id="geyh367" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh369" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh371" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh372"  style="font-size:85%;"&gt;&lt;span id="geyh373"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh374"&gt;&lt;span id="geyh375"  style="color:#7f0055;"&gt;package &lt;/span&gt;&lt;/b&gt;&lt;span id="geyh376"  style="color:#000000;"&gt;com.blogspot.mdasgin.examples.contractlast.services;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh377" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh379" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh380"  style="font-size:85%;"&gt;&lt;span id="geyh381"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh382"&gt;&lt;span id="geyh383"  style="color:#7f0055;"&gt;import&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh384"  style="color:#000000;"&gt; java.util.List;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh385" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh387" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh388"  style="font-size:85%;"&gt;&lt;span id="geyh389"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh390"&gt;&lt;span id="geyh391"  style="color:#7f0055;"&gt;import&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh392"  style="color:#000000;"&gt; javax.jws.WebParam;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh393" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh394"  style="font-size:85%;"&gt;&lt;span id="geyh395"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh396"&gt;&lt;span id="geyh397"  style="color:#7f0055;"&gt;import&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh398"  style="color:#000000;"&gt; javax.jws.WebService;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh399" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh401" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh402"  style="font-size:85%;"&gt;&lt;span id="geyh403"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh404"&gt;&lt;span id="geyh405"  style="color:#7f0055;"&gt;import&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh406"  style="color:#000000;"&gt; com.blogspot.mdasgin.examples.model.Kisi;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh407" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh409" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh410"  style="color:#3f7f5f;"&gt;&lt;span id="geyh411"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh412"  style="font-size:85%;"&gt;/*&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh413" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh414"  style="color:#3f7f5f;"&gt; &lt;span id="geyh415"  style="font-size:85%;"&gt;&lt;span id="geyh416"  style="font-family:Courier New, monospace;"&gt;* @WebService annotation bu arayuzun bir web service arayuzu oldugunu belirtir.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh417" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh418"  style="color:#3f7f5f;"&gt; &lt;span id="geyh419"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh420"  style="font-size:85%;"&gt;*/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh421" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh422"  style="color:#646464;"&gt;&lt;span id="geyh423"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh424"  style="font-size:85%;"&gt;@WebService&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh425" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh426"  style="font-size:85%;"&gt;&lt;span id="geyh427"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh428"&gt;&lt;span id="geyh429"  style="color:#7f0055;"&gt;public&lt;/span&gt;&lt;/b&gt; &lt;b id="geyh430"&gt;&lt;span id="geyh431"  style="color:#7f0055;"&gt;interface&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh432"  style="color:#000000;"&gt; KisiService {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh433" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh435" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="geyh436"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh437"  style="font-size:85%;"&gt; List&amp;lt;Kisi&amp;gt; getKisiList();&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh438" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh440" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh441"  style="font-size:85%;"&gt;&lt;span id="geyh442"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh443"  style="color:#3f7f5f;"&gt;/*&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh444" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="geyh445"  style="color:#3f7f5f;"&gt;&lt;span id="geyh446"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh447"  style="font-size:85%;"&gt;  * @WebParam annotation allows us to use an HTTP parameter called "message" to reference the operation's argument &lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p id="geyh448" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="geyh449"  style="color:#3f7f5f;"&gt;&lt;span id="geyh450"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh451"  style="font-size:85%;"&gt;  * instead of having to call it "arg0", which is the default.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh452" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="geyh453"  style="color:#3f7f5f;"&gt;&lt;span id="geyh454"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh455"  style="font-size:85%;"&gt;  */&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p id="geyh469" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh457"  style="font-size:85%;"&gt;&lt;span id="geyh458"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh459"&gt;&lt;span id="geyh460"  style="color:#7f0055;"&gt;void&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh461"  style="color:#000000;"&gt; addKisi(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span id="geyh463"  style="font-size:85%;"&gt;&lt;span id="geyh464"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh465"  style="color:#646464;"&gt;@WebParam&lt;/span&gt;&lt;span id="geyh466"  style="color:#000000;"&gt;(name = &lt;/span&gt;&lt;span id="geyh467"  style="color:#2a00ff;"&gt;"kisi"&lt;/span&gt;&lt;span id="geyh468"  style="color:#000000;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span id="geyh470"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh471"  style="font-size:85%;"&gt;Kisi kisi);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh472" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh474" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh475"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh476"  style="font-size:85%;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh477" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh479" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh480"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh481"  style="font-size:85%;"&gt;---&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh482" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh484" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh485"  style="font-size:85%;"&gt;&lt;span id="geyh486"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh487"&gt;&lt;span id="geyh488"  style="color:#7f0055;"&gt;package&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh489"  style="color:#000000;"&gt; com.blogspot.mdasgin.examples.contractlast.services.impl;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh490" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh492" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh493"  style="font-size:85%;"&gt;&lt;span id="geyh494"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh495"&gt;&lt;span id="geyh496"  style="color:#7f0055;"&gt;import&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh497"  style="color:#000000;"&gt; java.util.ArrayList;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh498" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh499"  style="font-size:85%;"&gt;&lt;span id="geyh500"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh501"&gt;&lt;span id="geyh502"  style="color:#7f0055;"&gt;import&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh503"  style="color:#000000;"&gt; java.util.List;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh504" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh506" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh507"  style="font-size:85%;"&gt;&lt;span id="geyh508"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh509"&gt;&lt;span id="geyh510"  style="color:#7f0055;"&gt;import&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh511"  style="color:#000000;"&gt; javax.jws.WebService;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh512" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh514" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh515"  style="font-size:85%;"&gt;&lt;span id="geyh516"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh517"&gt;&lt;span id="geyh518"  style="color:#7f0055;"&gt;import&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh519"  style="color:#000000;"&gt; com.blogspot.mdasgin.examples.contractlast.services.KisiService;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh520" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh521"  style="font-size:85%;"&gt;&lt;span id="geyh522"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh523"&gt;&lt;span id="geyh524"  style="color:#7f0055;"&gt;import&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh525"  style="color:#000000;"&gt; com.blogspot.mdasgin.examples.model.Kisi;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh526" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh528" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh529"  style="color:#3f7f5f;"&gt;&lt;span id="geyh530"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh531"  style="font-size:85%;"&gt;/*&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh532" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh533"  style="color:#3f7f5f;"&gt; &lt;span id="geyh534"  style="font-size:85%;"&gt;&lt;span id="geyh535"  style="font-family:Courier New, monospace;"&gt;* @WebService annotation bu sinifi bir web service geliştirimi olarak isaretler. Ayrica kullandigi arayuzu de belirtir.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh536" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh537"  style="color:#3f7f5f;"&gt; &lt;span id="geyh538"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh539"  style="font-size:85%;"&gt;*/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh540" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh541"  style="font-size:85%;"&gt;&lt;span id="geyh542"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh543"  style="color:#646464;"&gt;@WebService&lt;/span&gt;&lt;span id="geyh544"  style="color:#000000;"&gt;(endpointInterface=&lt;/span&gt;&lt;span id="geyh545"  style="color:#2a00ff;"&gt;"com.blogspot.mdasgin.examples.contractlast.services.KisiService"&lt;/span&gt;&lt;span id="geyh546"  style="color:#000000;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh547" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh548"  style="font-size:85%;"&gt;&lt;span id="geyh549"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh550"&gt;&lt;span id="geyh551"  style="color:#7f0055;"&gt;public&lt;/span&gt;&lt;/b&gt; &lt;b id="geyh552"&gt;&lt;span id="geyh553"  style="color:#7f0055;"&gt;class&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh554"  style="color:#000000;"&gt; KisiServiceImpl &lt;/span&gt;&lt;b id="geyh555"&gt;&lt;span id="geyh556"  style="color:#7f0055;"&gt;implements&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh557"  style="color:#000000;"&gt; KisiService {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh558" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh560" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh561"  style="font-size:85%;"&gt;&lt;span id="geyh562"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh563"&gt;&lt;span id="geyh564"  style="color:#7f0055;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh565"  style="color:#000000;"&gt; List&amp;lt;Kisi&amp;gt; getKisiList() {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh566" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;" lang="tr-TR"&gt; &lt;span id="geyh567"  style="font-size:85%;"&gt;&lt;span id="geyh568"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh569"  style="color:#000000;"&gt;  List&amp;lt;Kisi&amp;gt; kisiList = &lt;/span&gt;&lt;b id="geyh570"&gt;&lt;span id="geyh571"  style="color:#7f0055;"&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh572"  style="color:#000000;"&gt; ArrayList&amp;lt;Kisi&amp;gt;();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p id="geyh580" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;" lang="tr-TR"&gt; &lt;span id="geyh574"  style="color:#000000;"&gt;        &lt;span id="geyh575"  style="font-size:85%;"&gt;&lt;span id="geyh576"  style="font-family:Courier New, monospace;"&gt;kisiList.add(&lt;/span&gt;&lt;b id="geyh577"&gt;&lt;span id="geyh578"  style="color:#7f0055;"&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh579"  style="color:#000000;"&gt; Kisi(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span id="geyh581"  style="font-size:85%;"&gt;&lt;span id="geyh582"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh583"  style="color:#2a00ff;"&gt;"Mustafa"&lt;/span&gt;&lt;span id="geyh584"  style="color:#000000;"&gt;, &lt;/span&gt;&lt;span id="geyh585"  style="color:#2a00ff;"&gt;"Dasgin"&lt;/span&gt;&lt;span id="geyh586"  style="color:#000000;"&gt;, &lt;/span&gt;&lt;span id="geyh587"  style="color:#2a00ff;"&gt;"11111111111"&lt;/span&gt;&lt;span id="geyh588"  style="color:#000000;"&gt;));&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p id="geyh596" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;" lang="tr-TR"&gt; &lt;span id="geyh590"  style="color:#000000;"&gt;        &lt;span id="geyh591"  style="font-size:85%;"&gt;&lt;span id="geyh592"  style="font-family:Courier New, monospace;"&gt;kisiList.add(&lt;/span&gt;&lt;b id="geyh593"&gt;&lt;span id="geyh594"  style="color:#7f0055;"&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh595"  style="color:#000000;"&gt; Kisi(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span id="geyh597"  style="font-size:85%;"&gt;&lt;span id="geyh598"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh599"  style="color:#2a00ff;"&gt;"Huzur"&lt;/span&gt;&lt;span id="geyh600"  style="color:#000000;"&gt;, &lt;/span&gt;&lt;span id="geyh601"  style="color:#2a00ff;"&gt;"Oncu"&lt;/span&gt;&lt;span id="geyh602"  style="color:#000000;"&gt;, &lt;/span&gt;&lt;span id="geyh603"  style="color:#2a00ff;"&gt;"22222222222"&lt;/span&gt;&lt;span id="geyh604"  style="color:#000000;"&gt;));&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh605" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;" lang="tr-TR"&gt;         &lt;span id="geyh606"  style="font-size:85%;"&gt;&lt;span id="geyh607"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh608"&gt;&lt;span id="geyh609"  style="color:#7f0055;"&gt;return&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh610"  style="color:#000000;"&gt; kisiList;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh611" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="geyh612"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh613"  style="font-size:85%;"&gt; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh614" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh616" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh617"  style="font-size:85%;"&gt;&lt;span id="geyh618"  style="font-family:Courier New, monospace;"&gt;&lt;b id="geyh619"&gt;&lt;span id="geyh620"  style="color:#7f0055;"&gt;public&lt;/span&gt;&lt;/b&gt; &lt;b id="geyh621"&gt;&lt;span id="geyh622"  style="color:#7f0055;"&gt;void&lt;/span&gt;&lt;/b&gt;&lt;span id="geyh623"  style="color:#000000;"&gt; addKisi(Kisi kisi) {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh624" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;" lang="tr-TR"&gt; &lt;span id="geyh625"  style="font-size:85%;"&gt;&lt;span id="geyh626"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh627"  style="color:#000000;"&gt;  System.&lt;/span&gt;&lt;i id="geyh628"&gt;&lt;span id="geyh629"  style="color:#0000c0;"&gt;out&lt;/span&gt;&lt;/i&gt;&lt;span id="geyh630"  style="color:#000000;"&gt;.&lt;span id="geyh631" style="background: rgb(192, 192, 192) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;println&lt;/span&gt;(kisi.getTamIsim());&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh632" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="geyh633"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh634"  style="font-size:85%;"&gt; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh635" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh637" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh638"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh639"  style="font-size:85%;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh640" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh642" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh644" class="western" style="margin-bottom: 0in; line-height: 100%;" align="justify" lang="tr-TR"&gt; Bu aşamadan sonra web.xml’de gelen web service istemlerinin yönlendirilebilmesi için gerekli tanımları eklemeliyiz:&lt;/p&gt; &lt;p id="geyh645" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh647" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh648"  style="color:#008080;"&gt;    &lt;span id="geyh649"  style="font-size:85%;"&gt;&lt;span id="geyh650"  style="font-family:Courier New, monospace;"&gt;&amp;lt;&lt;/span&gt;&lt;span id="geyh651"  style="color:#3f7f7f;"&gt;servlet&lt;/span&gt;&lt;span id="geyh652"  style="color:#008080;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh653" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;         &lt;span id="geyh654"  style="font-size:85%;"&gt;&lt;span id="geyh655"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh656"  style="color:#008080;"&gt;&amp;lt;&lt;/span&gt;&lt;span id="geyh657"  style="color:#3f7f7f;"&gt;servlet-name&lt;/span&gt;&lt;span id="geyh658"  style="color:#008080;"&gt;&amp;gt;&lt;/span&gt;&lt;span id="geyh659"  style="color:#000000;"&gt;CXFServlet&lt;/span&gt;&lt;span id="geyh660"  style="color:#008080;"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="geyh661"  style="color:#3f7f7f;"&gt;servlet-name&lt;/span&gt;&lt;span id="geyh662"  style="color:#008080;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh663" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;         &lt;span id="geyh664"  style="font-size:85%;"&gt;&lt;span id="geyh665"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh666"  style="color:#008080;"&gt;&amp;lt;&lt;/span&gt;&lt;span id="geyh667"  style="color:#3f7f7f;"&gt;servlet-class&lt;/span&gt;&lt;span id="geyh668"  style="color:#008080;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh669" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="geyh670"  style="color:#000000;"&gt;            &lt;span id="geyh671"  style="font-size:85%;"&gt;&lt;span id="geyh672"  style="font-family:Courier New, monospace;"&gt;org.apache.cxf.transport.servlet.CXFServlet&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh673" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;         &lt;span id="geyh674"  style="font-size:85%;"&gt;&lt;span id="geyh675"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh676"  style="color:#008080;"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="geyh677"  style="color:#3f7f7f;"&gt;servlet-class&lt;/span&gt;&lt;span id="geyh678"  style="color:#008080;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh679" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;     &lt;span id="geyh680"  style="font-size:85%;"&gt;&lt;span id="geyh681"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh682"  style="color:#008080;"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="geyh683"  style="color:#3f7f7f;"&gt;servlet&lt;/span&gt;&lt;span id="geyh684"  style="color:#008080;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh685" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;      &lt;/p&gt; &lt;p id="geyh686" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;     &lt;span id="geyh687"  style="font-size:85%;"&gt;&lt;span id="geyh688"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh689"  style="color:#008080;"&gt;&amp;lt;&lt;/span&gt;&lt;span id="geyh690"  style="color:#3f7f7f;"&gt;servlet-mapping&lt;/span&gt;&lt;span id="geyh691"  style="color:#008080;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh692" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;         &lt;span id="geyh693"  style="font-size:85%;"&gt;&lt;span id="geyh694"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh695"  style="color:#008080;"&gt;&amp;lt;&lt;/span&gt;&lt;span id="geyh696"  style="color:#3f7f7f;"&gt;servlet-name&lt;/span&gt;&lt;span id="geyh697"  style="color:#008080;"&gt;&amp;gt;&lt;/span&gt;&lt;span id="geyh698"  style="color:#000000;"&gt;CXFServlet&lt;/span&gt;&lt;span id="geyh699"  style="color:#008080;"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="geyh700"  style="color:#3f7f7f;"&gt;servlet-name&lt;/span&gt;&lt;span id="geyh701"  style="color:#008080;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh702" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;         &lt;span id="geyh703"  style="font-size:85%;"&gt;&lt;span id="geyh704"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh705"  style="color:#008080;"&gt;&amp;lt;&lt;/span&gt;&lt;span id="geyh706"  style="color:#3f7f7f;"&gt;url-pattern&lt;/span&gt;&lt;span id="geyh707"  style="color:#008080;"&gt;&amp;gt;&lt;/span&gt;&lt;span id="geyh708"  style="color:#000000;"&gt;/webservices/*&lt;/span&gt;&lt;span id="geyh709"  style="color:#008080;"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="geyh710"  style="color:#3f7f7f;"&gt;url-pattern&lt;/span&gt;&lt;span id="geyh711"  style="color:#008080;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh712" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;     &lt;span id="geyh713"  style="font-size:85%;"&gt;&lt;span id="geyh714"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh715"  style="color:#008080;"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="geyh716"  style="color:#3f7f7f;"&gt;servlet-mapping&lt;/span&gt;&lt;span id="geyh717"  style="color:#008080;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh718" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh720" class="western" style="margin-bottom: 0.14in;" align="justify" lang="tr-TR"&gt; Tanımdan da anlaşılacağı gibi sunucumuza “/webservices/*” örüntüsünde gelen istemler CXFServlet’e yönlendirilecektir. Spring bean tanımlarımızı da yapalım:&lt;/p&gt; &lt;p id="geyh721" class="western" style="margin-bottom: 0.14in;" align="justify" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh724" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh725"  style="font-size:85%;"&gt;&lt;span id="geyh726"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh727"  style="color:#008080;"&gt;&amp;lt;&lt;/span&gt;&lt;span id="geyh728"  style="color:#3f7f7f;"&gt;beans &lt;/span&gt;&lt;span id="geyh729"  style="color:#7f007f;"&gt;xmlns&lt;/span&gt;&lt;span id="geyh730"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh731"  style="color:#2a00ff;"&gt;"http://www.springframework.org/schema/beans"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh732" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh733"  style="font-size:85%;"&gt;&lt;span id="geyh734"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh735"  style="color:#7f007f;"&gt;xmlns:xsi&lt;/span&gt;&lt;span id="geyh736"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh737"  style="color:#2a00ff;"&gt;"http://www.w3.org/2001/XMLSchema-instance"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh738" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh739"  style="font-size:85%;"&gt;&lt;span id="geyh740"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh741"  style="color:#7f007f;"&gt;xmlns:context&lt;/span&gt;&lt;span id="geyh742"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh743"  style="color:#2a00ff;"&gt;"http://www.springframework.org/schema/context"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh744" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh745"  style="font-size:85%;"&gt;&lt;span id="geyh746"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh747"  style="color:#7f007f;"&gt;xmlns:cxf&lt;/span&gt;&lt;span id="geyh748"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh749"  style="color:#2a00ff;"&gt;"http://cxf.apache.org/core"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh750" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh751"  style="font-size:85%;"&gt;&lt;span id="geyh752"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh753"  style="color:#7f007f;"&gt;xmlns:jaxws&lt;/span&gt;&lt;span id="geyh754"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh755"  style="color:#2a00ff;"&gt;"http://cxf.apache.org/jaxws"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh756" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh757"  style="font-size:85%;"&gt;&lt;span id="geyh758"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh759"  style="color:#7f007f;"&gt;xsi:schemaLocation&lt;/span&gt;&lt;span id="geyh760"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh761"  style="color:#2a00ff;"&gt;"http://www.springframework.org/schema/beans&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh762" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="geyh763"  style="color:#2a00ff;"&gt;        &lt;span id="geyh764"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh765"  style="font-size:85%;"&gt;http://www.springframework.org/schema/beans/spring-beans-2.5.xsd&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh766" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="geyh767"  style="color:#2a00ff;"&gt;        &lt;span id="geyh768"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh769"  style="font-size:85%;"&gt;http://www.springframework.org/schema/context&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh770" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="geyh771"  style="color:#2a00ff;"&gt;        &lt;span id="geyh772"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh773"  style="font-size:85%;"&gt;http://www.springframework.org/schema/context/spring-context-2.5.xsd&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh774" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="geyh775"  style="color:#2a00ff;"&gt;        &lt;span id="geyh776"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh777"  style="font-size:85%;"&gt;http://cxf.apache.org/core&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh778" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="geyh779"  style="color:#2a00ff;"&gt;        &lt;span id="geyh780"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh781"  style="font-size:85%;"&gt;http://cxf.apache.org/schemas/core.xsd&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh782" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="geyh783"  style="color:#2a00ff;"&gt;        &lt;span id="geyh784"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh785"  style="font-size:85%;"&gt;http://cxf.apache.org/jaxws&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh786" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="geyh787"  style="color:#2a00ff;"&gt;        &lt;span id="geyh788"  style="font-size:85%;"&gt;&lt;span id="geyh789"  style="font-family:Courier New, monospace;"&gt;http://cxf.apache.org/schemas/jaxws.xsd"&lt;/span&gt;&lt;span id="geyh790"  style="color:#008080;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh791" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh793" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh794"  style="font-size:85%;"&gt;&lt;span id="geyh795"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh796"  style="color:#008080;"&gt;&amp;lt;&lt;/span&gt;&lt;span id="geyh797"  style="color:#3f7f7f;"&gt;import &lt;/span&gt;&lt;span id="geyh798"  style="color:#7f007f;"&gt;resource&lt;/span&gt;&lt;span id="geyh799"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh800"  style="color:#2a00ff;"&gt;"classpath:META-INF/cxf/cxf.xml" &lt;/span&gt;&lt;span id="geyh801"  style="color:#008080;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh802" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh803"  style="font-size:85%;"&gt;&lt;span id="geyh804"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh805"  style="color:#008080;"&gt;&amp;lt;&lt;/span&gt;&lt;span id="geyh806"  style="color:#3f7f7f;"&gt;import &lt;/span&gt;&lt;span id="geyh807"  style="color:#7f007f;"&gt;resource&lt;/span&gt;&lt;span id="geyh808"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh809"  style="color:#2a00ff;"&gt;"classpath:META-INF/cxf/cxf-extension-soap.xml" &lt;/span&gt;&lt;span id="geyh810"  style="color:#008080;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh811" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh812"  style="font-size:85%;"&gt;&lt;span id="geyh813"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh814"  style="color:#008080;"&gt;&amp;lt;&lt;/span&gt;&lt;span id="geyh815"  style="color:#3f7f7f;"&gt;import &lt;/span&gt;&lt;span id="geyh816"  style="color:#7f007f;"&gt;resource&lt;/span&gt;&lt;span id="geyh817"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh818"  style="color:#2a00ff;"&gt;"classpath:META-INF/cxf/cxf-servlet.xml" &lt;/span&gt;&lt;span id="geyh819"  style="color:#008080;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh820" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh822" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh823"  style="font-size:85%;"&gt;&lt;span id="geyh824"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh825"  style="color:#3f5fbf;"&gt;&amp;lt;!-- CXF'nin loglama ozelligi kullanilabilir fakat performans soz konusu ise kullanilmamasi onerilir.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh826" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="geyh827"  style="color:#3f5fbf;"&gt;&lt;span id="geyh828"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh829"  style="font-size:85%;"&gt; --&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh830" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh831"  style="font-size:85%;"&gt;&lt;span id="geyh832"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh833"  style="color:#008080;"&gt;&amp;lt;&lt;/span&gt;&lt;span id="geyh834"  style="color:#3f7f7f;"&gt;cxf:bus&lt;/span&gt;&lt;span id="geyh835"  style="color:#008080;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh836" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;" lang="tr-TR"&gt;   &lt;span id="geyh837"  style="font-size:85%;"&gt;&lt;span id="geyh838"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh839"  style="color:#008080;"&gt;&amp;lt;&lt;/span&gt;&lt;span id="geyh840"  style="color:#3f7f7f;"&gt;cxf:features&lt;/span&gt;&lt;span id="geyh841"  style="color:#008080;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh842" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 120px;" lang="tr-TR"&gt;    &lt;span id="geyh843"  style="font-size:85%;"&gt;&lt;span id="geyh844"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh845"  style="color:#008080;"&gt;&amp;lt;&lt;/span&gt;&lt;span id="geyh846"  style="color:#3f7f7f;"&gt;cxf:logging &lt;/span&gt;&lt;span id="geyh847"  style="color:#008080;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh848" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;" lang="tr-TR"&gt;   &lt;span id="geyh849"  style="font-size:85%;"&gt;&lt;span id="geyh850"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh851"  style="color:#008080;"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="geyh852"  style="color:#3f7f7f;"&gt;cxf:features&lt;/span&gt;&lt;span id="geyh853"  style="color:#008080;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh854" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh855"  style="font-size:85%;"&gt;&lt;span id="geyh856"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh857"  style="color:#008080;"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="geyh858"  style="color:#3f7f7f;"&gt;cxf:bus&lt;/span&gt;&lt;span id="geyh859"  style="color:#008080;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh860" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh862" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh863"  style="font-size:85%;"&gt;&lt;span id="geyh864"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh865"  style="color:#3f5fbf;"&gt;&amp;lt;!-- The service bean --&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh866" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh867"  style="font-size:85%;"&gt;&lt;span id="geyh868"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh869"  style="color:#008080;"&gt;&amp;lt;&lt;/span&gt;&lt;span id="geyh870"  style="color:#3f7f7f;"&gt;bean &lt;/span&gt;&lt;span id="geyh871"  style="color:#7f007f;"&gt;id&lt;/span&gt;&lt;span id="geyh872"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh873"  style="color:#2a00ff;"&gt;"kisiService"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh874" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;" lang="tr-TR"&gt;   &lt;span id="geyh875"  style="font-size:85%;"&gt;&lt;span id="geyh876"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh877"  style="color:#7f007f;"&gt;class&lt;/span&gt;&lt;span id="geyh878"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh879"  style="color:#2a00ff;"&gt;"com.blogspot.mdasgin.examples.contractlast.services.impl.KisiServiceImpl" &lt;/span&gt;&lt;span id="geyh880"  style="color:#008080;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh881" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh883" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh884"  style="font-size:85%;"&gt;&lt;span id="geyh885"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh886"  style="color:#3f5fbf;"&gt;&amp;lt;!-- Aegis data binding --&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh887" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh888"  style="font-size:85%;"&gt;&lt;span id="geyh889"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh890"  style="color:#008080;"&gt;&amp;lt;&lt;/span&gt;&lt;span id="geyh891"  style="color:#3f7f7f;"&gt;bean &lt;/span&gt;&lt;span id="geyh892"  style="color:#7f007f;"&gt;id&lt;/span&gt;&lt;span id="geyh893"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh894"  style="color:#2a00ff;"&gt;"aegisBean"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh895" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;" lang="tr-TR"&gt;   &lt;span id="geyh896"  style="font-size:85%;"&gt;&lt;span id="geyh897"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh898"  style="color:#7f007f;"&gt;class&lt;/span&gt;&lt;span id="geyh899"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh900"  style="color:#2a00ff;"&gt;"org.apache.cxf.aegis.databinding.AegisDatabinding"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh901" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;" lang="tr-TR"&gt;   &lt;span id="geyh902"  style="font-size:85%;"&gt;&lt;span id="geyh903"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh904"  style="color:#7f007f;"&gt;scope&lt;/span&gt;&lt;span id="geyh905"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh906"  style="color:#2a00ff;"&gt;"prototype" &lt;/span&gt;&lt;span id="geyh907"  style="color:#008080;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh908" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh909"  style="font-size:85%;"&gt;&lt;span id="geyh910"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh911"  style="color:#008080;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="i:ld0" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;&lt;span id="i:ld1"  style="font-size:85%;"&gt;&lt;span id="i:ld2"  style="font-family:Courier New, monospace;"&gt;&lt;span id="i:ld3"  style="color:#008080;"&gt;&amp;lt;&lt;/span&gt;&lt;span id="geyh912"  style="color:#3f7f7f;"&gt;bean &lt;/span&gt;&lt;span id="geyh913"  style="color:#7f007f;"&gt;id&lt;/span&gt;&lt;span id="geyh914"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh915"  style="color:#2a00ff;"&gt;"jaxws-and-aegis-service-factory"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh916" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;" lang="tr-TR"&gt;   &lt;span id="geyh917"  style="font-size:85%;"&gt;&lt;span id="geyh918"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh919"  style="color:#7f007f;"&gt;class&lt;/span&gt;&lt;span id="geyh920"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh921"  style="color:#2a00ff;"&gt;"org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh922" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;" lang="tr-TR"&gt;   &lt;span id="geyh923"  style="font-size:85%;"&gt;&lt;span id="geyh924"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh925"  style="color:#7f007f;"&gt;scope&lt;/span&gt;&lt;span id="geyh926"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh927"  style="color:#2a00ff;"&gt;"prototype"&lt;/span&gt;&lt;span id="geyh928"  style="color:#008080;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh929" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;" lang="tr-TR"&gt;   &lt;span id="geyh930"  style="font-size:85%;"&gt;&lt;span id="geyh931"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh932"  style="color:#008080;"&gt;&amp;lt;&lt;/span&gt;&lt;span id="geyh933"  style="color:#3f7f7f;"&gt;property &lt;/span&gt;&lt;span id="geyh934"  style="color:#7f007f;"&gt;name&lt;/span&gt;&lt;span id="geyh935"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh936"  style="color:#2a00ff;"&gt;"dataBinding" &lt;/span&gt;&lt;span id="geyh937"  style="color:#7f007f;"&gt;ref&lt;/span&gt;&lt;span id="geyh938"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh939"  style="color:#2a00ff;"&gt;"aegisBean" &lt;/span&gt;&lt;span id="geyh940"  style="color:#008080;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh941" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;" lang="tr-TR"&gt;   &lt;span id="geyh942"  style="font-size:85%;"&gt;&lt;span id="geyh943"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh944"  style="color:#008080;"&gt;&amp;lt;&lt;/span&gt;&lt;span id="geyh945"  style="color:#3f7f7f;"&gt;property &lt;/span&gt;&lt;span id="geyh946"  style="color:#7f007f;"&gt;name&lt;/span&gt;&lt;span id="geyh947"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh948"  style="color:#2a00ff;"&gt;"serviceConfigurations"&lt;/span&gt;&lt;span id="geyh949"  style="color:#008080;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh950" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 120px;" lang="tr-TR"&gt;    &lt;span id="geyh951"  style="font-size:85%;"&gt;&lt;span id="geyh952"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh953"  style="color:#008080;"&gt;&amp;lt;&lt;/span&gt;&lt;span id="geyh954"  style="color:#3f7f7f;"&gt;list&lt;/span&gt;&lt;span id="geyh955"  style="color:#008080;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh956" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 160px;" lang="tr-TR"&gt;     &lt;span id="geyh957"  style="font-size:85%;"&gt;&lt;span id="geyh958"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh959"  style="color:#008080;"&gt;&amp;lt;&lt;/span&gt;&lt;span id="geyh960"  style="color:#3f7f7f;"&gt;bean&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh961" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 160px;" lang="tr-TR"&gt;      &lt;span id="geyh962"  style="font-size:85%;"&gt;&lt;span id="geyh963"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh964"  style="color:#7f007f;"&gt;class&lt;/span&gt;&lt;span id="geyh965"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh966"  style="color:#2a00ff;"&gt;"org.apache.cxf.jaxws.support.JaxWsServiceConfiguration" &lt;/span&gt;&lt;span id="geyh967"  style="color:#008080;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh968" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 160px;" lang="tr-TR"&gt;     &lt;span id="geyh969"  style="font-size:85%;"&gt;&lt;span id="geyh970"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh971"  style="color:#008080;"&gt;&amp;lt;&lt;/span&gt;&lt;span id="geyh972"  style="color:#3f7f7f;"&gt;bean&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh973" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 160px;" lang="tr-TR"&gt;      &lt;span id="geyh974"  style="font-size:85%;"&gt;&lt;span id="geyh975"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh976"  style="color:#7f007f;"&gt;class&lt;/span&gt;&lt;span id="geyh977"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh978"  style="color:#2a00ff;"&gt;"org.apache.cxf.aegis.databinding.AegisServiceConfiguration" &lt;/span&gt;&lt;span id="geyh979"  style="color:#008080;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh980" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 160px;" lang="tr-TR"&gt;     &lt;span id="geyh981"  style="font-size:85%;"&gt;&lt;span id="geyh982"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh983"  style="color:#008080;"&gt;&amp;lt;&lt;/span&gt;&lt;span id="geyh984"  style="color:#3f7f7f;"&gt;bean&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh985" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 160px;" lang="tr-TR"&gt;      &lt;span id="geyh986"  style="font-size:85%;"&gt;&lt;span id="geyh987"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh988"  style="color:#7f007f;"&gt;class&lt;/span&gt;&lt;span id="geyh989"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh990"  style="color:#2a00ff;"&gt;"org.apache.cxf.service.factory.DefaultServiceConfiguration" &lt;/span&gt;&lt;span id="geyh991"  style="color:#008080;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh992" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 120px;" lang="tr-TR"&gt;    &lt;span id="geyh993"  style="font-size:85%;"&gt;&lt;span id="geyh994"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh995"  style="color:#008080;"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="geyh996"  style="color:#3f7f7f;"&gt;list&lt;/span&gt;&lt;span id="geyh997"  style="color:#008080;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh998" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;" lang="tr-TR"&gt;   &lt;span id="geyh999"  style="font-size:85%;"&gt;&lt;span id="geyh1000"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh1001"  style="color:#008080;"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="geyh1002"  style="color:#3f7f7f;"&gt;property&lt;/span&gt;&lt;span id="geyh1003"  style="color:#008080;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh1004" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh1005"  style="font-size:85%;"&gt;&lt;span id="geyh1006"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh1007"  style="color:#008080;"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="geyh1008"  style="color:#3f7f7f;"&gt;bean&lt;/span&gt;&lt;span id="geyh1009"  style="color:#008080;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh1010" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh1012" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh1013"  style="font-size:85%;"&gt;&lt;span id="geyh1014"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh1015"  style="color:#3f5fbf;"&gt;&amp;lt;!-- Service endpoint --&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh1016" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh1017"  style="font-size:85%;"&gt;&lt;span id="geyh1018"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh1019"  style="color:#3f5fbf;"&gt;&amp;lt;!-- See http://incubator.apache.org/cxf/faq.html regarding CXF + Spring AOP --&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh1020" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh1021"  style="font-size:85%;"&gt;&lt;span id="geyh1022"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh1023"  style="color:#008080;"&gt;&amp;lt;&lt;/span&gt;&lt;span id="geyh1024"  style="color:#3f7f7f;"&gt;jaxws:endpoint &lt;/span&gt;&lt;span id="geyh1025"  style="color:#7f007f;"&gt;id&lt;/span&gt;&lt;span id="geyh1026"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh1027"  style="color:#2a00ff;"&gt;"kisiServiceEndPoint"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh1028" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;" lang="tr-TR"&gt;   &lt;span id="geyh1029"  style="font-size:85%;"&gt;&lt;span id="geyh1030"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh1031"  style="color:#7f007f;"&gt;implementorClass&lt;/span&gt;&lt;span id="geyh1032"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh1033"  style="color:#2a00ff;"&gt;"com.blogspot.mdasgin.examples.contractlast.services.impl.KisiServiceImpl"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh1034" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;" lang="tr-TR"&gt;   &lt;span id="geyh1035"  style="font-size:85%;"&gt;&lt;span id="geyh1036"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh1037"  style="color:#7f007f;"&gt;implementor&lt;/span&gt;&lt;span id="geyh1038"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh1039"  style="color:#2a00ff;"&gt;"#kisiService" &lt;/span&gt;&lt;span id="geyh1040"  style="color:#7f007f;"&gt;address&lt;/span&gt;&lt;span id="geyh1041"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh1042"  style="color:#2a00ff;"&gt;"/kisiws"&lt;/span&gt;&lt;span id="geyh1043"  style="color:#008080;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh1044" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;" lang="tr-TR"&gt;   &lt;span id="geyh1045"  style="font-size:85%;"&gt;&lt;span id="geyh1046"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh1047"  style="color:#008080;"&gt;&amp;lt;&lt;/span&gt;&lt;span id="geyh1048"  style="color:#3f7f7f;"&gt;jaxws:serviceFactory&lt;/span&gt;&lt;span id="geyh1049"  style="color:#008080;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh1050" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 120px;" lang="tr-TR"&gt;    &lt;span id="geyh1051"  style="font-size:85%;"&gt;&lt;span id="geyh1052"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh1053"  style="color:#008080;"&gt;&amp;lt;&lt;/span&gt;&lt;span id="geyh1054"  style="color:#3f7f7f;"&gt;ref &lt;/span&gt;&lt;span id="geyh1055"  style="color:#7f007f;"&gt;bean&lt;/span&gt;&lt;span id="geyh1056"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh1057"  style="color:#2a00ff;"&gt;"jaxws-and-aegis-service-factory" &lt;/span&gt;&lt;span id="geyh1058"  style="color:#008080;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh1059" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 80px;" lang="tr-TR"&gt;   &lt;span id="geyh1060"  style="font-size:85%;"&gt;&lt;span id="geyh1061"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh1062"  style="color:#008080;"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="geyh1063"  style="color:#3f7f7f;"&gt;jaxws:serviceFactory&lt;/span&gt;&lt;span id="geyh1064"  style="color:#008080;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh1065" class="western" style="margin-bottom: 0.14in; margin-left: 40px;" align="justify" lang="tr-TR"&gt;  &lt;span id="geyh1066"  style="font-size:85%;"&gt;&lt;span id="geyh1067"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh1068"  style="color:#008080;"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="geyh1069"  style="color:#3f7f7f;"&gt;jaxws:endpoint&lt;/span&gt;&lt;span id="geyh1070"  style="color:#008080;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="w5ez" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;  &lt;span id="w5ez0"  style="font-size:85%;"&gt;&lt;span id="w5ez1"  style="font-family:Courier New, monospace;"&gt;&lt;span id="w5ez2"  style="color:#008080;"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="w5ez3"  style="color:#3f7f7f;"&gt;bean&lt;/span&gt;&lt;span id="w5ez4"  style="color:#008080;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh1071" class="western" style="margin-bottom: 0.14in;" align="justify" lang="tr-TR"&gt;    &lt;/p&gt; &lt;p id="geyh1074" class="western" style="margin-bottom: 0.14in;" align="justify" lang="tr-TR"&gt; Sunucu tarafımız hazır. Aşağıdaki istemlerle deneme yapabilirsiniz:&lt;/p&gt; &lt;ul id="geyh1075"&gt;  &lt;li id="geyh1076"&gt;&lt;p id="geyh1077" class="western" style="margin-top: 0.19in; margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;  &lt;span id="geyh1078"  style="font-size:85%;"&gt;&lt;span id="geyh1079"  style="font-family:Courier New, monospace;"&gt;http://localhost:8080/denemeWSProje/webservices  (Hizmet veren web servis listesi)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="geyh1080"&gt;&lt;p id="geyh1081" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;  &lt;span id="geyh1082"  style="font-size:85%;"&gt;&lt;span id="geyh1083"  style="font-family:Courier New, monospace;"&gt;http://localhost:8080/denemeWSProje  /webservices/kisiws?wsdl (Üretilen wsdl belgesi)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="geyh1084"&gt;&lt;p id="geyh1085" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;  &lt;span id="geyh1086"  style="font-size:85%;"&gt;&lt;span id="geyh1087"  style="font-family:Courier New, monospace;"&gt;http://localhost:8080/denemeWSProje  /webservices/kisiws/getKisiList &lt;/span&gt;&lt;/span&gt;  &lt;/p&gt;  &lt;/li&gt;&lt;li id="geyh1088"&gt;&lt;p id="geyh1089" class="western" style="margin-bottom: 0.19in; line-height: 100%;" lang="tr-TR"&gt;  &lt;span id="geyh1090"  style="font-size:85%;"&gt;&lt;span id="geyh1091"  style="font-family:Courier New, monospace;"&gt;http://localhost:8080/denemeWSProje  /webservices/kisiws/addKisi?kisi=...&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p id="geyh1092" class="western" style="margin-bottom: 0.14in;" align="justify" lang="tr-TR"&gt;    &lt;/p&gt; &lt;p id="geyh1095" class="western" style="margin-bottom: 0.14in;" align="justify" lang="tr-TR"&gt; Sunucuya bağlanacak istemci tarafında tanımlanması gereken spring bean’leri de şu şekilde olmalıdır (Sunucu tarafında tanımlanan &lt;span id="geyh1096"  style="font-size:85%;"&gt;&lt;span id="geyh1097"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh1098"  style="color:#2a00ff;"&gt;aegisBean &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;ve&lt;span id="geyh1099"  style="font-size:85%;"&gt;&lt;span id="geyh1100"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh1101"  style="color:#2a00ff;"&gt; jaxws-and-aegis-service-factory &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;beanleri de istemci tarafında tanımlanmalıdır):&lt;/p&gt; &lt;p id="geyh1102" class="western" style="margin-bottom: 0.14in;" align="justify" lang="tr-TR"&gt;    &lt;/p&gt; &lt;p id="geyh1105" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh1106"  style="font-size:85%;"&gt;&lt;span id="geyh1107"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh1108"  style="color:#008080;"&gt;&amp;lt;&lt;/span&gt;&lt;span id="geyh1109"  style="color:#3f7f7f;"&gt;bean &lt;/span&gt;&lt;span id="geyh1110"  style="color:#7f007f;"&gt;id&lt;/span&gt;&lt;span id="geyh1111"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh1112"  style="color:#2a00ff;"&gt;"client"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh1113" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;   &lt;span id="geyh1114"  style="font-size:85%;"&gt;&lt;span id="geyh1115"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh1116"  style="color:#7f007f;"&gt;class&lt;/span&gt;&lt;span id="geyh1117"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh1118"  style="color:#2a00ff;"&gt;"com.blospot.mdasgin.examples.contractlast.services.KisiService"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh1119" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh1120"  style="font-size:85%;"&gt;&lt;span id="geyh1121"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh1122"  style="color:#7f007f;"&gt;factory-bean&lt;/span&gt;&lt;span id="geyh1123"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh1124"  style="color:#2a00ff;"&gt;"clientFactory" &lt;/span&gt;&lt;span id="geyh1125"  style="color:#7f007f;"&gt;factory-method&lt;/span&gt;&lt;span id="geyh1126"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh1127"  style="color:#2a00ff;"&gt;"create" &lt;/span&gt;&lt;span id="geyh1128"  style="color:#008080;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh1129" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="geyh1131" class="western" style="margin-bottom: 0in; line-height: 100%;" lang="tr-TR"&gt; &lt;span id="geyh1132"  style="font-size:85%;"&gt;&lt;span id="geyh1133"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh1134"  style="color:#008080;"&gt;&amp;lt;&lt;/span&gt;&lt;span id="geyh1135"  style="color:#3f7f7f;"&gt;bean &lt;/span&gt;&lt;span id="geyh1136"  style="color:#7f007f;"&gt;id&lt;/span&gt;&lt;span id="geyh1137"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh1138"  style="color:#2a00ff;"&gt;"clientFactory"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh1139" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh1140"  style="font-size:85%;"&gt;&lt;span id="geyh1141"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh1142"  style="color:#7f007f;"&gt;class&lt;/span&gt;&lt;span id="geyh1143"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh1144"  style="color:#2a00ff;"&gt;"org.apache.cxf.jaxws.JaxWsProxyFactoryBean"&lt;/span&gt;&lt;span id="geyh1145"  style="color:#008080;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh1146" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh1147"  style="font-size:85%;"&gt;&lt;span id="geyh1148"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh1149"  style="color:#008080;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="em9j0" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;&lt;span id="em9j1"  style="font-size:85%;"&gt;&lt;span id="em9j2"  style="font-family:Courier New, monospace;"&gt;&lt;span id="em9j3"  style="color:#008080;"&gt;&amp;lt;&lt;/span&gt;&lt;span id="geyh1150"  style="color:#3f7f7f;"&gt;property &lt;/span&gt;&lt;span id="geyh1151"  style="color:#7f007f;"&gt;name&lt;/span&gt;&lt;span id="geyh1152"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh1153"  style="color:#2a00ff;"&gt;"serviceClass"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh1154" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;    &lt;span id="geyh1155"  style="font-size:85%;"&gt;&lt;span id="geyh1156"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh1157"  style="color:#7f007f;"&gt;value&lt;/span&gt;&lt;span id="geyh1158"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh1159"  style="color:#2a00ff;"&gt;" com.blogspot.mdasgin.contractlast.services.KisiService" &lt;/span&gt;&lt;span id="geyh1160"  style="color:#008080;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh1161" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh1162"  style="font-size:85%;"&gt;&lt;span id="geyh1163"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh1164"  style="color:#008080;"&gt;&amp;lt;&lt;/span&gt;&lt;span id="geyh1165"  style="color:#3f7f7f;"&gt;property &lt;/span&gt;&lt;span id="geyh1166"  style="color:#7f007f;"&gt;name&lt;/span&gt;&lt;span id="geyh1167"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh1168"  style="color:#2a00ff;"&gt;"address"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh1169" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;   &lt;span id="geyh1170"  style="font-size:85%;"&gt;&lt;span id="geyh1171"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh1172"  style="color:#7f007f;"&gt;value&lt;/span&gt;&lt;span id="geyh1173"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh1174"  style="color:#2a00ff;"&gt;"http://localhost:8080/denemeWSProje/webservices/kisiws" &lt;/span&gt;&lt;span id="geyh1175"  style="color:#008080;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh1176" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;  &lt;span id="geyh1177"  style="font-size:85%;"&gt;&lt;span id="geyh1178"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh1179"  style="color:#008080;"&gt;&amp;lt;&lt;/span&gt;&lt;span id="geyh1180"  style="color:#3f7f7f;"&gt;property &lt;/span&gt;&lt;span id="geyh1181"  style="color:#7f007f;"&gt;name&lt;/span&gt;&lt;span id="geyh1182"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh1183"  style="color:#2a00ff;"&gt;"serviceFactory"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh1184" class="western" style="margin-bottom: 0in; line-height: 100%; margin-left: 40px;" lang="tr-TR"&gt;    &lt;span id="geyh1185"  style="font-size:85%;"&gt;&lt;span id="geyh1186"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh1187"  style="color:#7f007f;"&gt;ref&lt;/span&gt;&lt;span id="geyh1188"  style="color:#000000;"&gt;=&lt;/span&gt;&lt;span id="geyh1189"  style="color:#2a00ff;"&gt;"jaxws-and-aegis-service-factory" &lt;/span&gt;&lt;span id="geyh1190"  style="color:#008080;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh1191" class="western" style="margin-bottom: 0.14in;" align="justify" lang="tr-TR"&gt;  &lt;span id="geyh1192"  style="font-size:85%;"&gt;&lt;span id="geyh1193"  style="font-family:Courier New, monospace;"&gt;&lt;span id="geyh1194"  style="color:#008080;"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="geyh1195"  style="color:#3f7f7f;"&gt;bean&lt;/span&gt;&lt;span id="geyh1196"  style="color:#008080;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="geyh1197" class="western" style="margin-bottom: 0.14in;" align="justify" lang="tr-TR"&gt;    &lt;/p&gt; &lt;p id="geyh1200" class="western" style="margin-bottom: 0.14in;" align="justify" lang="tr-TR"&gt; Kaynaklar:&lt;/p&gt; &lt;ul id="geyh1201"&gt;  &lt;li id="geyh1202"&gt;&lt;p id="geyh1203" class="western" style="margin-bottom: 0.14in;" align="justify" lang="tr-TR"&gt;  &lt;span id="geyh1204"  style="color:#0000ff;"&gt;&lt;u id="geyh1205"&gt;&lt;a id="geyh1206" href="http://cxf.apache.org/"&gt;http://cxf.apache.org/&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="geyh1207"&gt;&lt;p id="geyh1208" class="western" style="margin-bottom: 0.14in;" align="justify" lang="tr-TR"&gt;  &lt;span id="geyh1209"  style="color:#0000ff;"&gt;&lt;u id="geyh1210"&gt;&lt;a id="geyh1211" href="http://wheelersoftware.com/articles/spring-cxf-web-services.html"&gt;http://wheelersoftware.com/articles/spring-cxf-web-services.html&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="geyh1212"&gt;&lt;p id="geyh1213" class="western" style="margin-bottom: 0.14in;" align="justify" lang="tr-TR"&gt;  &lt;span id="geyh1214"  style="color:#0000ff;"&gt;&lt;u id="geyh1215"&gt;&lt;a id="geyh1216" href="http://wheelersoftware.com/articles/spring-cxf-consuming-web-services.html"&gt;http://wheelersoftware.com/articles/spring-cxf-consuming-web-services.html&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="geyh1217"&gt;&lt;p id="geyh1218" class="western" style="margin-bottom: 0.14in;" align="justify" lang="tr-TR"&gt;  &lt;span id="geyh1219"  style="color:#0000ff;"&gt;&lt;u id="geyh1220"&gt;&lt;a id="geyh1221" href="http://cwiki.apache.org/CXF20DOC/cxf-architecture.html"&gt;http://cwiki.apache.org/CXF20DOC/cxf-architecture.html&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p id="geyh1222" class="western" style="margin-bottom: 0.14in;" align="justify" lang="tr-TR"&gt;    &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-4402739888494466049?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/4402739888494466049/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2008/07/spring-2.html#comment-form' title='3 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/4402739888494466049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/4402739888494466049'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2008/07/spring-2.html' title='Spring 2.5.3 ve Apache CXF ile Anlaşma-Sonra(Contract-Last) Yaklaşımlı Web Service Geliştirme'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-7710241606546372663</id><published>2008-07-08T23:49:00.005+03:00</published><updated>2008-07-09T00:02:50.728+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Cola: Gerçek Zamanlı, Paylaşımlı Programlama</title><content type='html'>&lt;object width="549" height="309"&gt; &lt;param name="allowfullscreen" value="true"&gt; &lt;param name="allowscriptaccess" value="always"&gt; &lt;param name="movie" value="http://www.vimeo.com/moogaloop.swf?clip_id=1195398&amp;amp;server=www.vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=00ADEF&amp;amp;fullscreen=1"&gt; &lt;embed src="http://www.vimeo.com/moogaloop.swf?clip_id=1195398&amp;amp;server=www.vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=00ADEF&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="549" height="309"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.vimeo.com/1195398?pg=embed&amp;amp;sec=1195398"&gt;Cola: Real-Time Shared Editing&lt;/a&gt; from &lt;a href="http://www.vimeo.com/mustafa?pg=embed&amp;amp;sec=1195398"&gt;Mustafa K. Isik&lt;/a&gt; on &lt;a href="http://vimeo.com/?pg=embed&amp;amp;sec=1195398"&gt;Vimeo&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/object&gt;&lt;a href="http://live.eclipse.org/node/543"&gt;http://live.eclipse.org/node/543&lt;/a&gt;&lt;br /&gt;&lt;a href="http://wiki.eclipse.org/RT_Shared_Editing"&gt;http://wiki.eclipse.org/RT_Shared_Editing&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7242277445654742100-7710241606546372663?l=mdasgin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mdasgin.blogspot.com/feeds/7710241606546372663/comments/default' title='Kayıt Yorumları'/><link rel='replies' type='text/html' href='http://mdasgin.blogspot.com/2008/07/cola-gerek-zamanl-paylaml-programlama.html#comment-form' title='0 Yorum'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/7710241606546372663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7242277445654742100/posts/default/7710241606546372663'/><link rel='alternate' type='text/html' href='http://mdasgin.blogspot.com/2008/07/cola-gerek-zamanl-paylaml-programlama.html' title='Cola: Gerçek Zamanlı, Paylaşımlı Programlama'/><author><name>Mustafa Daşgın</name><uri>http://www.blogger.com/profile/04623308531339912528</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://3.bp.blogspot.com/-zYpw5PfWLNw/TVvMY-4CrcI/AAAAAAAABYI/1es1sB3cMNM/s220/10933_163872743465_523268465_2684319_3673556_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7242277445654742100.post-284889895909120739</id><published>2008-06-16T16:15:00.005+03:00</published><updated>2008-07-11T17:09:53.871+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Service'/><category scheme='http://www.blogger.com/atom/ns#' term='Spring Web Service'/><title type='text'>Spring Web Servis ve Anlaşma-Önce (Contract-First) Yaklaşımı ile Web Servis geliştirme</title><content type='html'>&lt;p id="sx55" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt; Web Servisleri bir makinede sunulan hizmetin platform bağımsız olarak başka istemci makinelerce kullanılabilirliğini sağlamaktadır. Web Servis geliştiriminde temelde iki yaklaşım izlenmektedir: Anlaşma-önce(&lt;i id="sx550"&gt;Contract-first&lt;/i&gt;) ve Anlaşma-sonra(&lt;i id="sx551"&gt;Contract-last&lt;/i&gt;). Anlaşma-önce yaklaşımında servis ve servisten istemde bulunacak istemcilerin anlaşabilmeleri için (sunucu hangi servisleri sağlıyor, bu servislerin girdi ve çıktı tipleri neler, vs.) XML tabanlı bir belge (WSDL – Web Service Definition Language - &lt;span id="sx552" style="color: rgb(0, 0, 255);"&gt;&lt;u id="sx553"&gt;&lt;a id="sx554" href="http://www.w3.org/TR/wsdl"&gt;http://www.w3.org/TR/wsdl&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;) baz alınır. Anlaşma-sonra yaklaşımda ise yazılan kodlar aracılığıyla arka planda WSDL belgesi üretilerek geliştirim ve haberleşme karmaşıklığı geliştiriciden soyutlanmaktadır.&lt;/p&gt; &lt;p id="sx555" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="sx557" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt; Anlaşma-sonra yaklaşım ile web servis gerçekleştiriminde &lt;span id="sx558" style="color: rgb(0, 0, 255);"&gt;&lt;u id="sx559"&gt;&lt;a id="sx5510" href="http://cxf.apache.org/"&gt;Apache – CXF&lt;/a&gt;&lt;/u&gt;&lt;/span&gt; ön plana çıkarken Anlaşma-önce yaklaşımda &lt;span id="sx5511" style="color: rgb(0, 0, 255);"&gt;&lt;u id="sx5512"&gt;&lt;a id="sx5513" href="http://static.springframework.org/spring-ws/site/reference/html/why-contract-first.html"&gt;Spring Web Service&lt;/a&gt;&lt;/u&gt;&lt;/span&gt; geliştirimi kolaylaştırmaktadır.&lt;/p&gt; &lt;p id="sx5514" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="sx5516" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt; Her ne kadar Anlaşma-sonra yaklaşım ilk etapta geliştirim kolaylığı açısından daha tercih edilebilir görünmekteyse de sunucu kodu değişince, kodtan otomatik üretilen WSDL belgesinin de değişmesi istemci tarafını da değişikliğe zorlar. Bu ve &lt;span id="sx5517" style="color: rgb(0, 0, 255);"&gt;&lt;u id="sx5518"&gt;&lt;a id="sx5519" href="http://static.springframework.org/spring-ws/site/reference/html/why-contract-first.html"&gt;diğer sebepler&lt;/a&gt;&lt;/u&gt;&lt;/span&gt; yüzünden büyük sistemlerde Anlaşma-önce yaklaşım tercih edilmektedir.  &lt;/p&gt; &lt;p id="sx5520" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="sx5522" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt; Spring Web Service(SWS) bir adım daha ileri giderek anlaşma belgesiyle geliştirim arasındaki bağımlılığın azaltılmasını önermektedir. Gelen XML mesajlarının &lt;i id="sx5523"&gt;namespace &lt;/i&gt;ve kök imini (&lt;i id="sx5524"&gt;tag&lt;/i&gt;) kullanarak mesajı, mesajla ilgilenen sınıfa (&lt;i id="sx5525"&gt;endpoint &lt;/i&gt;sınıfları) yönlendirmektedir. Bunun için de istemci/sunucu arasında mesaj iletimi için gönderilen XML mesajlarının tanımlarını (XSD – XML Schema Definition) kullanmaktadır.&lt;/p&gt; &lt;p id="sx5526" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="sx5528" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt; SWS ile iş mantığını barındıran servislerimizi Web servis olarak kullanıma açmak için gereken ilk adımı sunucuya gelen web servis istemlerini ele alacak &lt;i id="sx5529"&gt;Servlet’&lt;/i&gt;i web.xml’e tanımlayarak başlayalım:&lt;/p&gt; &lt;p id="sx5530" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="sx5532" class="western" style="margin-bottom: 0in;" lang="tr-TR"&gt;&lt;span id="sx5533"  style="font-size:85%;"&gt;&lt;span id="sx5534"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx5535" style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span id="sx5536" style="color: rgb(63, 127, 127);"&gt;servlet&lt;/span&gt;&lt;span id="sx5537" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx5538" class="western" style="margin-bottom: 0in; margin-left: 40px;" lang="tr-TR"&gt;   &lt;span id="sx5539"  style="font-size:85%;"&gt;&lt;span id="sx5540"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx5541" style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span id="sx5542" style="color: rgb(63, 127, 127);"&gt;servlet-name&lt;/span&gt;&lt;span id="sx5543" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;span id="sx5544" style="color: rgb(0, 0, 0);"&gt;spring-ws&lt;/span&gt;&lt;span id="sx5545" style="color: rgb(0, 128, 128);"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="sx5546" style="color: rgb(63, 127, 127);"&gt;servlet-name&lt;/span&gt;&lt;span id="sx5547" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx5548" class="western" style="margin-bottom: 0in; margin-left: 40px;" lang="tr-TR"&gt;   &lt;span id="sx5549"  style="font-size:85%;"&gt;&lt;span id="sx5550"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx5551" style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span id="sx5552" style="color: rgb(63, 127, 127);"&gt;servlet-class&lt;/span&gt;&lt;span id="sx5553" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx5554" class="western" style="text-indent: 0.49in; margin-bottom: 0in; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="sx5555"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx5556"  style="font-size:85%;"&gt;org.springframework.ws.transport.http.MessageDispatcherServlet&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx5548" class="western" style="margin-bottom: 0in; margin-left: 40px;" lang="tr-TR"&gt;   &lt;span id="sx5549"  style="font-size:85%;"&gt;&lt;span id="sx5550"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx5551" style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span id="sx5552" style="color: rgb(63, 127, 127);"&gt;/servlet-class&lt;/span&gt;&lt;span id="sx5553" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx5563" class="western" style="margin-bottom: 0in;" lang="tr-TR"&gt;&lt;span id="sx5564"  style="font-size:85%;"&gt;&lt;span id="sx5565"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx5566" style="color: rgb(0, 128, 128);"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="sx5567" style="color: rgb(63, 127, 127);"&gt;servlet&lt;/span&gt;&lt;span id="sx5568" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx5569" class="western" style="margin-bottom: 0in;" lang="tr-TR"&gt;  &lt;/p&gt; &lt;p id="sx5571" class="western" style="margin-bottom: 0in;" lang="tr-TR"&gt;&lt;span id="sx5572"  style="font-size:85%;"&gt;&lt;span id="sx5573"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx5574" style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span id="sx5575" style="color: rgb(63, 127, 127);"&gt;servlet-mapping&lt;/span&gt;&lt;span id="sx5576" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx5577" class="western" style="margin-bottom: 0in; margin-left: 40px;" lang="tr-TR"&gt;   &lt;span id="sx5578"  style="font-size:85%;"&gt;&lt;span id="sx5579"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx5580" style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span id="sx5581" style="color: rgb(63, 127, 127);"&gt;servlet-name&lt;/span&gt;&lt;span id="sx5582" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;span id="sx5583" style="color: rgb(0, 0, 0);"&gt;spring-ws&lt;/span&gt;&lt;span id="sx5584" style="color: rgb(0, 128, 128);"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="sx5585" style="color: rgb(63, 127, 127);"&gt;servlet-name&lt;/span&gt;&lt;span id="sx5586" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx5587" class="western" style="margin-bottom: 0in; margin-left: 40px;" lang="tr-TR"&gt;   &lt;span id="sx5588"  style="font-size:85%;"&gt;&lt;span id="sx5589"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx5590" style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span id="sx5591" style="color: rgb(63, 127, 127);"&gt;url-pattern&lt;/span&gt;&lt;span id="sx5592" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;span id="sx5593" style="color: rgb(0, 0, 0);"&gt;/springws/*&lt;/span&gt;&lt;span id="sx5594" style="color: rgb(0, 128, 128);"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="sx5595" style="color: rgb(63, 127, 127);"&gt;url-pattern&lt;/span&gt;&lt;span id="sx5596" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx5597" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt; &lt;span id="sx5598"  style="font-size:85%;"&gt;&lt;span id="sx5599"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55100" style="color: rgb(0, 128, 128);"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="sx55101" style="color: rgb(63, 127, 127);"&gt;servlet-mapping&lt;/span&gt;&lt;span id="sx55102" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55103" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="sx55105" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="sx55107" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt; &lt;span id="sx55108"  style="font-size:85%;"&gt;&lt;span id="sx55109"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55110" style="color: rgb(0, 0, 0);"&gt;MessageDispatcherServlet&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; ile sunucuya gelen &lt;span id="sx55111"  style="font-size:85%;"&gt;&lt;span id="sx55112"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55113" style="color: rgb(0, 0, 0);"&gt;/springws/* &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;istemleri mesaj-endpoint eşlemesine tabi tutulacaktır. Eşleme, konfigürasyon kütüğünde ya da &lt;i id="sx55114"&gt;annotation&lt;/i&gt; kullanılarak yapılabilir. Servlet ismi olarak &lt;span id="sx55115"  style="font-size:85%;"&gt;&lt;span id="sx55116"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55117" style="color: rgb(0, 0, 0);"&gt;MessageDispatcherServlet’e&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; verdiğimiz isim /WEB-INF dizini altında yer alacak konfigürasyon kütüğünün ismini de belirler: &lt;b id="sx55118"&gt;servlet-ws&lt;/b&gt;-servlet.xml&lt;/p&gt; &lt;p id="sx55119" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="sx55121" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt; Konfigürasyon kütüğü kullanılarak yapılan eşleme ve sınıf yapısı şu şekilde olur:&lt;/p&gt; &lt;p id="sx55122" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="sx55124" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="sx55126" class="western" style="margin-bottom: 0in;" lang="tr-TR"&gt;&lt;span id="sx55127" style="color: rgb(63, 95, 191);"&gt;&lt;span id="sx55128"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55129"  style="font-size:85%;"&gt;&amp;lt;!-- End Point Example with Marshalling --&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55130" class="western" style="margin-left: 0.5in; text-indent: -0.5in; margin-bottom: 0in;" lang="tr-TR"&gt; &lt;span id="sx55131"  style="font-size:85%;"&gt;&lt;span id="sx55132"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55133" style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span id="sx55134" style="color: rgb(63, 127, 127);"&gt;bean &lt;/span&gt;&lt;span id="sx55135" style="color: rgb(127, 0, 127);"&gt;id&lt;/span&gt;&lt;span id="sx55136" style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span id="sx55137" style="color: rgb(42, 0, 255);"&gt;"marshallingExampleServiceDoSomeJobEndpoint" &lt;/span&gt;&lt;span id="sx55138" style="color: rgb(127, 0, 127);"&gt;class&lt;/span&gt;&lt;span id="sx55139" style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span id="sx55140" style="color: rgb(42, 0, 255);"&gt;"tr.com.dasgin.MarshallingExampleServiceDoSomeJobEndPoint"&lt;/span&gt;&lt;span id="sx55141" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55142" class="western" style="margin-bottom: 0in; margin-left: 40px;" lang="tr-TR"&gt;      &lt;span id="sx55143"  style="font-size:85%;"&gt;&lt;span id="sx55144"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55145" style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span id="sx55146" style="color: rgb(63, 127, 127);"&gt;constructor-arg &lt;/span&gt;&lt;span id="sx55147" style="color: rgb(127, 0, 127);"&gt;ref&lt;/span&gt;&lt;span id="sx55148" style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span id="sx55149" style="color: rgb(42, 0, 255);"&gt;"exampleService"&lt;/span&gt;&lt;span id="sx55150" style="color: rgb(0, 128, 128);"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55151" class="western" style="margin-bottom: 0in; margin-left: 40px;" lang="tr-TR"&gt;      &lt;span id="sx55152"  style="font-size:85%;"&gt;&lt;span id="sx55153"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55154" style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span id="sx55155" style="color: rgb(63, 127, 127);"&gt;constructor-arg &lt;/span&gt;&lt;span id="sx55156" style="color: rgb(127, 0, 127);"&gt;ref&lt;/span&gt;&lt;span id="sx55157" style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span id="sx55158" style="color: rgb(42, 0, 255);"&gt;"xmlBeansMarshaller"&lt;/span&gt;&lt;span id="sx55159" style="color: rgb(0, 128, 128);"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55160" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt; &lt;span id="sx55161"  style="font-size:85%;"&gt;&lt;span id="sx55162"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55163" style="color: rgb(0, 128, 128);"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="sx55164" style="color: rgb(63, 127, 127);"&gt;bean&lt;/span&gt;&lt;span id="sx55165" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55166" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="sx55168" class="western" style="margin-bottom: 0in;" lang="tr-TR"&gt;&lt;span id="sx55169" style="color: rgb(63, 95, 191);"&gt;&lt;span id="sx55170"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55171"  style="font-size:85%;"&gt;&amp;lt;!-- Marshaller --&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55172" class="western" style="margin-left: 0.5in; text-indent: -0.5in; margin-bottom: 0in;" lang="tr-TR"&gt; &lt;span id="sx55173"  style="font-size:85%;"&gt;&lt;span id="sx55174"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55175" style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span id="sx55176" style="color: rgb(63, 127, 127);"&gt;bean &lt;/span&gt;&lt;span id="sx55177" style="color: rgb(127, 0, 127);"&gt;id&lt;/span&gt;&lt;span id="sx55178" style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span id="sx55179" style="color: rgb(42, 0, 255);"&gt;"xmlBeansMarshaller" &lt;/span&gt;&lt;span id="sx55180" style="color: rgb(127, 0, 127);"&gt;class&lt;/span&gt;&lt;span id="sx55181" style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span id="sx55182" style="color: rgb(42, 0, 255);"&gt;"org.springframework.oxm.xmlbeans.XmlBeansMarshaller"&lt;/span&gt;&lt;span id="sx55183" style="color: rgb(0, 128, 128);"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55184" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="sx55186" class="western" style="margin-bottom: 0in;" lang="tr-TR"&gt;&lt;span id="sx55187" style="color: rgb(63, 95, 191);"&gt;&lt;span id="sx55188"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55189"  style="font-size:85%;"&gt;&amp;lt;!-- Mapping --&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55190" class="western" style="margin-bottom: 0in;" lang="tr-TR"&gt;&lt;span id="sx55191"  style="font-size:85%;"&gt;&lt;span id="sx55192"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55193" style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span id="sx55194" style="color: rgb(63, 127, 127);"&gt;bean &lt;/span&gt;&lt;span id="sx55195" style="color: rgb(127, 0, 127);"&gt;class&lt;/span&gt;&lt;span id="sx55196" style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span id="sx55197" style="color: rgb(42, 0, 255);"&gt;"org.springframework.ws.server.endpoint.mapping.PayloadRootQNameEndpointMapping"&lt;/span&gt;&lt;span id="sx55198" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55199" class="western" style="margin-bottom: 0in; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="sx55200"  style="font-size:85%;"&gt;&lt;span id="sx55201"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55202" style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span id="sx55203" style="color: rgb(63, 127, 127);"&gt;property &lt;/span&gt;&lt;span id="sx55204" style="color: rgb(127, 0, 127);"&gt;name&lt;/span&gt;&lt;span id="sx55205" style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span id="sx55206" style="color: rgb(42, 0, 255);"&gt;"mappings"&lt;/span&gt;&lt;span id="sx55207" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55208" class="western" style="margin-bottom: 0in; margin-left: 80px;" lang="tr-TR"&gt;  &lt;span id="sx55209"  style="font-size:85%;"&gt;&lt;span id="sx55210"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55211" style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span id="sx55212" style="color: rgb(63, 127, 127);"&gt;props&lt;/span&gt;&lt;span id="sx55213" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55214" class="western" style="margin-bottom: 0in; margin-left: 120px;" lang="tr-TR"&gt;   &lt;span id="sx55215"  style="font-size:85%;"&gt;&lt;span id="sx55216"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55217" style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span id="sx55218" style="color: rgb(63, 127, 127);"&gt;prop&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55219" class="western" style="margin-bottom: 0in; margin-left: 120px;" lang="tr-TR"&gt;  &lt;span id="sx55220"  style="font-size:85%;"&gt;&lt;span id="sx55221"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55222" style="color: rgb(127, 0, 127);"&gt;key&lt;/span&gt;&lt;span id="sx55223" style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span id="sx55224" style="color: rgb(42, 0, 255);"&gt;"{http://www.dasgin.com.tr/sws/schemas}DoSomeJobRequest"&lt;/span&gt;&lt;span id="sx55225" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55226" class="western" style="margin-bottom: 0in; margin-left: 160px;" lang="tr-TR"&gt;&lt;span id="sx55227"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55228"  style="font-size:85%;"&gt;    marshallingExampleServiceDoDomeJobEndpoint&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55229" class="western" style="margin-bottom: 0in; margin-left: 120px;" lang="tr-TR"&gt;   &lt;span id="sx55230"  style="font-size:85%;"&gt;&lt;span id="sx55231"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55232" style="color: rgb(0, 128, 128);"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="sx55233" style="color: rgb(63, 127, 127);"&gt;prop&lt;/span&gt;&lt;span id="sx55234" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55235" class="western" style="margin-bottom: 0in; margin-left: 80px;" lang="tr-TR"&gt;  &lt;span id="sx55236"  style="font-size:85%;"&gt;&lt;span id="sx55237"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55238" style="color: rgb(0, 128, 128);"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="sx55239" style="color: rgb(63, 127, 127);"&gt;props&lt;/span&gt;&lt;span id="sx55240" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55241" class="western" style="margin-bottom: 0in; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="sx55242"  style="font-size:85%;"&gt;&lt;span id="sx55243"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55244" style="color: rgb(0, 128, 128);"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="sx55245" style="color: rgb(63, 127, 127);"&gt;property&lt;/span&gt;&lt;span id="sx55246" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55247" class="western" style="margin-bottom: 0in;" lang="tr-TR"&gt;&lt;span id="sx55248"  style="font-size:85%;"&gt;&lt;span id="sx55249"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55250" style="color: rgb(0, 128, 128);"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="sx55251" style="color: rgb(63, 127, 127);"&gt;bean&lt;/span&gt;&lt;span id="sx55252" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55253" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="sx55255" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="sx55257" class="western" style="margin-bottom: 0in;" lang="tr-TR"&gt;&lt;span id="sx55258"  style="font-size:85%;"&gt;&lt;span id="sx55259"  style="font-family:Courier New,monospace;"&gt;&lt;b id="sx55260"&gt;&lt;span id="sx55261" style="color: rgb(127, 0, 85);"&gt;public&lt;/span&gt;&lt;/b&gt; &lt;b id="sx55262"&gt;&lt;span id="sx55263" style="color: rgb(127, 0, 85);"&gt;class&lt;/span&gt;&lt;/b&gt;&lt;span id="sx55264" style="color: rgb(0, 0, 0);"&gt; MarshallingExampleServiceDoSomeJobEndPoint &lt;/span&gt;&lt;b id="sx55265"&gt;&lt;span id="sx55266" style="color: rgb(127, 0, 85);"&gt;extends&lt;/span&gt;&lt;/b&gt;&lt;span id="sx55267" style="color: rgb(0, 0, 0);"&gt; AbstractMarshallingPayloadEndpoint{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55268" class="western" style="margin-bottom: 0in;" lang="tr-TR"&gt;  &lt;/p&gt; &lt;p id="sx55270" class="western" style="margin-bottom: 0in; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="sx55271"  style="font-size:85%;"&gt;&lt;span id="sx55272"  style="font-family:Courier New,monospace;"&gt;&lt;b id="sx55273"&gt;&lt;span id="sx55274" style="color: rgb(127, 0, 85);"&gt;private&lt;/span&gt;&lt;/b&gt; &lt;b id="sx55275"&gt;&lt;span id="sx55276" style="color: rgb(127, 0, 85);"&gt;final&lt;/span&gt;&lt;/b&gt;&lt;span id="sx55277" style="color: rgb(0, 0, 0);"&gt; ExampleService &lt;/span&gt;&lt;span id="sx55278" style="color: rgb(0, 0, 192);"&gt;exampleService&lt;/span&gt;&lt;span id="sx55279" style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55280" class="western" style="margin-bottom: 0in; margin-left: 40px;" lang="tr-TR"&gt; &lt;/p&gt; &lt;p id="sx55281" class="western" style="margin-bottom: 0in; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="sx55282"  style="font-size:85%;"&gt;&lt;span id="sx55283"  style="font-family:Courier New,monospace;"&gt;&lt;b id="sx55284"&gt;&lt;span id="sx55285" style="color: rgb(127, 0, 85);"&gt; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="sx55281" class="western" style="margin-bottom: 0in; margin-left: 40px;" lang="tr-TR"&gt;&lt;span id="sx55282"  style="font-size:85%;"&gt;&lt;span id="sx55283"  style="font-family:Courier New,monospace;"&gt;&lt;b id="sx55284"&gt;&lt;span id="sx55285" style="color: rgb(127, 0, 85);"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span id="sx55286" style="color: rgb(0, 0, 0);"&gt; MarshallingExampleServiceDoSomeJobEndPoint(ExampleService exampleService, Marshaller marshaller){&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55287" class="western" style="margin-bottom: 0in; margin-left: 80px;" lang="tr-TR"&gt;  &lt;span id="sx55288"  style="font-size:85%;"&gt;&lt;span id="sx55289"  style="font-family:Courier New,monospace;"&gt;&lt;b id="sx55290"&gt;&lt;span id="sx55291" style="color: rgb(127, 0, 85);"&gt;super&lt;/span&gt;&lt;/b&gt;&lt;span id="sx55292" style="color: rgb(0, 0, 0);"&gt;(marshaller);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55293" class="western" style="margin-bottom: 0in; margin-left: 80px;" lang="tr-TR"&gt;  &lt;span id="sx55294"  style="font-size:85%;"&gt;&lt;span id="sx55295"  style="font-family:Courier New,monospace;"&gt;&lt;b id="sx55296"&gt;&lt;span id="sx55297" style="color: rgb(127, 0, 85);"&gt;this&lt;/span&gt;&lt;/b&gt;&lt;span id="sx55298" style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span id="sx55299" style="color: rgb(0, 0, 192);"&gt;exampleService&lt;/span&gt;&lt;span id="sx55300" style="color: rgb(0, 0, 0);"&gt; = exampleService;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55301" class="western" style="margin-bottom: 0in; margin-left: 40px;" lang="tr-TR"&gt;&lt;span id="sx55302"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55303"  style="font-size:85%;"&gt; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55304" class="western" style="margin-bottom: 0in; margin-left: 40px;" lang="tr-TR"&gt; &lt;/p&gt; &lt;p id="sx55305" class="western" style="margin-bottom: 0in; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="sx55306"  style="font-size:85%;"&gt;&lt;span id="sx55307"  style="font-family:Courier New,monospace;"&gt;&lt;b id="sx55308"&gt;&lt;span id="sx55309" style="color: rgb(127, 0, 85);"&gt; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="sx55305" class="western" style="margin-bottom: 0in; margin-left: 40px;" lang="tr-TR"&gt;&lt;span id="sx55306"  style="font-size:85%;"&gt;&lt;span id="sx55307"  style="font-family:Courier New,monospace;"&gt;&lt;b id="sx55308"&gt;&lt;span id="sx55309" style="color: rgb(127, 0, 85);"&gt;protected&lt;/span&gt;&lt;/b&gt;&lt;span id="sx55310" style="color: rgb(0, 0, 0);"&gt; Object invokeInternal(Object request) &lt;/span&gt;&lt;b id="sx55311"&gt;&lt;span id="sx55312" style="color: rgb(127, 0, 85);"&gt;throws&lt;/span&gt;&lt;/b&gt;&lt;span id="sx55313" style="color: rgb(0, 0, 0);"&gt; Exception {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55314" class="western" style="margin-bottom: 0in; margin-left: 80px;" align="justify" lang="tr-TR"&gt; &lt;span id="sx55315"  style="font-size:85%;"&gt;&lt;span id="sx55316"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55317" style="color: rgb(0, 0, 0);"&gt;  ...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55318" class="western" style="margin-bottom: 0in; margin-left: 80px;" align="justify" lang="tr-TR"&gt; &lt;span id="sx55319"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55320"  style="font-size:85%;"&gt;  exampleService.doSomeJob( ... );&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55321" class="western" style="margin-bottom: 0in; margin-left: 80px;" align="justify" lang="tr-TR"&gt; &lt;span id="sx55322"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55323"  style="font-size:85%;"&gt;  ...&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55324" class="western" style="margin-bottom: 0in; margin-left: 40px;" align="justify" lang="tr-TR"&gt; &lt;span id="sx55325"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55326"  style="font-size:85%;"&gt; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="sx55324" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt;&lt;span id="sx55325"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55326"  style="font-size:85%;"&gt; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55327" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="sx55329" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="sx55331" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt; Burada, önceden tanımlı ve iş mantığını yürüten ExampleService sınıfı, &lt;b id="sx55332"&gt;bir metoduna&lt;/b&gt; vekillik yapan &lt;i id="sx55333"&gt;EndPoint &lt;/i&gt;sınıfına bağlanmıştır. Burada dikkat edilmesi gereken husus web servis olarak sunulan her bir metot için ayrı bir EndPoint sınıfı yazılmasıdır. Annotation ile yapılan tanımlamalarda bu methodlar tekbir EndPoint sınıfında toplanabilir.&lt;/p&gt; &lt;p id="sx55334" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="sx55336" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt; EndPoint sınıfına ayrıca istem olarak gelen ya da cevap olarak dönülen XML mesajlarına &lt;i id="sx55337"&gt;marshalling/unmarshalling &lt;/i&gt;uygulayacak olan &lt;span id="sx55338"  style="font-size:85%;"&gt;&lt;span id="sx55339"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55340" style="color: rgb(42, 0, 255);"&gt;XmlBeansMarshaller &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;sınıfı da bağlanmıştır. Bu sayede XML &amp;lt;-&amp;gt; Nesne dönüşümleri otomatik olarak gerçekleştirilecektir. (XMLBeans kütüphanesi ile XSD ya da WSDL belgesinden Java kodunda kullanılacak Java Sınıfları üretilmiştir.)&lt;/p&gt; &lt;p id="sx55341" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="sx55343" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt; Eşleme işlemini yapan bean tanımı incelendiğinde tanımlanan EndPoint beanler’in bir anahtar aracılığıyla eşlendiği görülür. Bu anahtar tanımı ile sunucuya gelen web servis istemlerinde yer alan &lt;i id="sx55344"&gt;namespace’i &lt;/i&gt;&lt;span id="sx55345"  style="font-size:85%;"&gt;&lt;span id="sx55346"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55347" style="color: rgb(42, 0, 255);"&gt;http://www.dasgin.com.tr/sws/schemas &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;olan ve kök imi&lt;span id="sx55348"  style="font-size:85%;"&gt;&lt;span id="sx55349"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55350" style="color: rgb(42, 0, 255);"&gt; DoSomeJobRequest &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;olan XML mesajlarının &lt;span id="sx55351"  style="font-size:85%;"&gt;&lt;span id="sx55352"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55353" style="color: rgb(0, 0, 0);"&gt;marshallingExampleServiceDoDomeJobEndpoint &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Endpoint sınıfına yönlendirilmeleri sağlanmaktadır.  &lt;/p&gt; &lt;p id="sx55354" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="sx55356" class="western" style="margin-bottom: 0in;" lang="tr-TR"&gt;&lt;span id="sx55357"  style="font-size:85%;"&gt;&lt;span id="sx55358"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55359" style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span id="sx55360" style="color: rgb(63, 127, 127);"&gt;DoSomeJobRequest &lt;/span&gt;&lt;span id="sx55361" style="color: rgb(127, 0, 127);"&gt;xmlns&lt;/span&gt;&lt;span id="sx55362" style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span id="sx55363" style="color: rgb(42, 0, 255);"&gt;"http://www.dasgin.com.tr/sws/schemas"&lt;/span&gt;&lt;span id="sx55364" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55365" class="western" style="margin-bottom: 0in; margin-left: 40px;" lang="tr-TR"&gt;    &lt;span id="sx55366"  style="font-size:85%;"&gt;&lt;span id="sx55367"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55368" style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span id="sx55369" style="color: rgb(63, 127, 127);"&gt;foo&lt;/span&gt;&lt;span id="sx55370" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;span id="sx55371" style="color: rgb(0, 0, 0);"&gt;SOME&lt;/span&gt;&lt;span id="sx55372" style="color: rgb(0, 128, 128);"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="sx55373" style="color: rgb(63, 127, 127);"&gt;foo&lt;/span&gt;&lt;span id="sx55374" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55375" class="western" style="margin-bottom: 0in; margin-left: 40px;" lang="tr-TR"&gt;    &lt;span id="sx55376"  style="font-size:85%;"&gt;&lt;span id="sx55377"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55378" style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span id="sx55379" style="color: rgb(63, 127, 127);"&gt;foo&lt;/span&gt;&lt;span id="sx55380" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;span id="sx55381" style="color: rgb(0, 0, 0);"&gt;JOB!&lt;/span&gt;&lt;span id="sx55382" style="color: rgb(0, 128, 128);"&gt;&amp;lt;/f&lt;/span&gt;&lt;span id="sx55383" style="color: rgb(63, 127, 127);"&gt;oo&lt;/span&gt;&lt;span id="sx55384" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55385" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt; &lt;span id="sx55386"  style="font-size:85%;"&gt;&lt;span id="sx55387"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55388" style="color: rgb(0, 128, 128);"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="sx55389" style="color: rgb(63, 127, 127);"&gt;DoSomeJobRequest&lt;/span&gt;&lt;span id="sx55390" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p id="sx55391" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="sx55393" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt; Sunucuya gelen ve endpoint’e yönlendirilecek olan yukarıdaki örnek XML mesajının XSD şeması da şu şekildedir:&lt;/p&gt; &lt;p id="sx55394" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="sx55396" class="western" style="margin-bottom: 0in;" lang="tr-TR"&gt;&lt;span id="sx55397"  style="font-size:85%;"&gt;&lt;span id="sx55398"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55399" style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span id="sx55400" style="color: rgb(63, 127, 127);"&gt;xsd:schema &lt;/span&gt;&lt;span id="sx55401" style="color: rgb(127, 0, 127);"&gt;xmlns:sch&lt;/span&gt;&lt;span id="sx55402" style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span id="sx55403" style="color: rgb(42, 0, 255);"&gt;"http://www.dasgin.com.tr/sws/schemas"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55404" class="western" style="margin-left: 0.98in; text-indent: 0.02in; margin-bottom: 0in;" lang="tr-TR"&gt; &lt;span id="sx55405"  style="font-size:85%;"&gt;&lt;span id="sx55406"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55407" style="color: rgb(127, 0, 127);"&gt;xmlns:xsd&lt;/span&gt;&lt;span id="sx55408" style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span id="sx55409" style="color: rgb(42, 0, 255);"&gt;"http://www.w3.org/2001/XMLSchema" &lt;/span&gt;&lt;span id="sx55410" style="color: rgb(127, 0, 127);"&gt;elementFormDefault&lt;/span&gt;&lt;span id="sx55411" style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span id="sx55412" style="color: rgb(42, 0, 255);"&gt;"qualified"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55413" class="western" style="margin-bottom: 0in; margin-left: 80px;" lang="tr-TR"&gt;            &lt;span id="sx55414"  style="font-size:85%;"&gt;&lt;span id="sx55415"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55416" style="color: rgb(127, 0, 127);"&gt;targetNamespace&lt;/span&gt;&lt;span id="sx55417" style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span id="sx55418" style="color: rgb(42, 0, 255);"&gt;"http://www.dasgin.com.tr/sws/schemas"&lt;/span&gt;&lt;span id="sx55419" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55420" class="western" style="margin-bottom: 0in; margin-left: 40px;" lang="tr-TR"&gt;     &lt;span id="sx55421"  style="font-size:85%;"&gt;&lt;span id="sx55422"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55423" style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span id="sx55424" style="color: rgb(63, 127, 127);"&gt;xsd:element &lt;/span&gt;&lt;span id="sx55425" style="color: rgb(127, 0, 127);"&gt;name&lt;/span&gt;&lt;span id="sx55426" style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span id="sx55427" style="color: rgb(42, 0, 255);"&gt;"DoSomeJob"&lt;/span&gt;&lt;span id="sx55428" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55429" class="western" style="margin-bottom: 0in; margin-left: 80px;" lang="tr-TR"&gt;        &lt;span id="sx55430"  style="font-size:85%;"&gt;&lt;span id="sx55431"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55432" style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span id="sx55433" style="color: rgb(63, 127, 127);"&gt;xsd:complexType&lt;/span&gt;&lt;span id="sx55434" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55435" class="western" style="margin-bottom: 0in; margin-left: 120px;" lang="tr-TR"&gt;             &lt;span id="sx55436"  style="font-size:85%;"&gt;&lt;span id="sx55437"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55438" style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span id="sx55439" style="color: rgb(63, 127, 127);"&gt;xsd:sequence&lt;/span&gt;&lt;span id="sx55440" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55441" class="western" style="margin-left: 0.98in; text-indent: 0.49in; margin-bottom: 0in;" lang="tr-TR"&gt; &lt;span id="sx55442"  style="font-size:85%;"&gt;&lt;span id="sx55443"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55444" style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span id="sx55445" style="color: rgb(63, 127, 127);"&gt;xsd:element &lt;/span&gt;&lt;span id="sx55446" style="color: rgb(127, 0, 127);"&gt;maxOccurs&lt;/span&gt;&lt;span id="sx55447" style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span id="sx55448" style="color: rgb(42, 0, 255);"&gt;"unbounded" &lt;/span&gt;&lt;span id="sx55449" style="color: rgb(127, 0, 127);"&gt;minOccurs&lt;/span&gt;&lt;span id="sx55450" style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span id="sx55451" style="color: rgb(42, 0, 255);"&gt;"0" &lt;/span&gt;&lt;span id="sx55454" style="color: rgb(42, 0, 255);"&gt;&lt;/span&gt;&lt;span id="sx55455" style="color: rgb(127, 0, 127);"&gt;type&lt;/span&gt;&lt;span id="sx55456" style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span id="sx55457" style="color: rgb(42, 0, 255);"&gt;"sch:FooType"&lt;/span&gt;&lt;span id="sx55458" style="color: rgb(0, 128, 128);"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55459" class="western" style="margin-bottom: 0in; margin-left: 120px;" lang="tr-TR"&gt;             &lt;span id="sx55460"  style="font-size:85%;"&gt;&lt;span id="sx55461"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55462" style="color: rgb(0, 128, 128);"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="sx55463" style="color: rgb(63, 127, 127);"&gt;xsd:sequence&lt;/span&gt;&lt;span id="sx55464" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55465" class="western" style="margin-bottom: 0in; margin-left: 80px;" lang="tr-TR"&gt;        &lt;span id="sx55466"  style="font-size:85%;"&gt;&lt;span id="sx55467"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55468" style="color: rgb(0, 128, 128);"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="sx55469" style="color: rgb(63, 127, 127);"&gt;xsd:complexType&lt;/span&gt;&lt;span id="sx55470" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55471" class="western" style="margin-bottom: 0in; margin-left: 40px;" lang="tr-TR"&gt;     &lt;span id="sx55472"  style="font-size:85%;"&gt;&lt;span id="sx55473"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55474" style="color: rgb(0, 128, 128);"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="sx55475" style="color: rgb(63, 127, 127);"&gt;xsd:element&lt;/span&gt;&lt;span id="sx55476" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55477" class="western" style="margin-bottom: 0in; margin-left: 40px;" lang="tr-TR"&gt;       &lt;/p&gt; &lt;p id="sx55478" class="western" style="margin-bottom: 0in; margin-left: 40px;" lang="tr-TR"&gt;     &lt;span id="sx55479"  style="font-size:85%;"&gt;&lt;span id="sx55480"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55481" style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span id="sx55482" style="color: rgb(63, 127, 127);"&gt;xsd:simpleType &lt;/span&gt;&lt;span id="sx55483" style="color: rgb(127, 0, 127);"&gt;name&lt;/span&gt;&lt;span id="sx55484" style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span id="sx55485" style="color: rgb(42, 0, 255);"&gt;"FooType"&lt;/span&gt;&lt;span id="sx55486" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55487" class="western" style="margin-bottom: 0in; margin-left: 80px;" lang="tr-TR"&gt;         &lt;span id="sx55488"  style="font-size:85%;"&gt;&lt;span id="sx55489"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55490" style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span id="sx55491" style="color: rgb(63, 127, 127);"&gt;xsd:restriction &lt;/span&gt;&lt;span id="sx55492" style="color: rgb(127, 0, 127);"&gt;base&lt;/span&gt;&lt;span id="sx55493" style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span id="sx55494" style="color: rgb(42, 0, 255);"&gt;"xsd:string"&lt;/span&gt;&lt;span id="sx55495" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55496" class="western" style="margin-bottom: 0in; margin-left: 120px;" lang="tr-TR"&gt;              &lt;span id="sx55497"  style="font-size:85%;"&gt;&lt;span id="sx55498"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55499" style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span id="sx55500" style="color: rgb(63, 127, 127);"&gt;xsd:pattern &lt;/span&gt;&lt;span id="sx55501" style="color: rgb(127, 0, 127);"&gt;value&lt;/span&gt;&lt;span id="sx55502" style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span id="sx55503" style="color: rgb(42, 0, 255);"&gt;"[A-Z]+"&lt;/span&gt;&lt;span id="sx55504" style="color: rgb(0, 128, 128);"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55505" class="western" style="margin-bottom: 0in; margin-left: 80px;" lang="tr-TR"&gt;         &lt;span id="sx55506"  style="font-size:85%;"&gt;&lt;span id="sx55507"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55508" style="color: rgb(0, 128, 128);"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="sx55509" style="color: rgb(63, 127, 127);"&gt;xsd:restriction&lt;/span&gt;&lt;span id="sx55510" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55511" class="western" style="margin-bottom: 0in; margin-left: 40px;" align="justify" lang="tr-TR"&gt;      &lt;span id="sx55512"  style="font-size:85%;"&gt;&lt;span id="sx55513"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55514" style="color: rgb(0, 128, 128);"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="sx55515" style="color: rgb(63, 127, 127);"&gt;xsd:simpleType&lt;/span&gt;&lt;span id="sx55516" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55517" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt; &lt;span id="sx55518"  style="font-size:85%;"&gt;&lt;span id="sx55519"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55520" style="color: rgb(0, 128, 128);"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="sx55521" style="color: rgb(63, 127, 127);"&gt;xsd:schema&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55522" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="sx55524" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="sx55526" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt; Annotation kullanılarak yapılan eşlemelerde en önemli fark, yöntemlerin tek bir EndPoint sınıfında toplanabilme olanağıdır:&lt;/p&gt; &lt;p id="sx55527" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="sx55529" class="western" style="margin-bottom: 0in;" lang="tr-TR"&gt;&lt;span id="sx55530" style="color: rgb(63, 95, 191);"&gt;&lt;span id="sx55531"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55532"  style="font-size:85%;"&gt;&amp;lt;!-- End Point Example with Marshalling and Annotation (MultipleMethodEndPoint) --&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55533" class="western" style="margin-left: 0.5in; text-indent: -0.5in; margin-bottom: 0in;" lang="tr-TR"&gt; &lt;span id="sx55534"  style="font-size:85%;"&gt;&lt;span id="sx55535"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55536" style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span id="sx55537" style="color: rgb(63, 127, 127);"&gt;bean &lt;/span&gt;&lt;span id="sx55538" style="color: rgb(127, 0, 127);"&gt;id&lt;/span&gt;&lt;span id="sx55539" style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span id="sx55540" style="color: rgb(42, 0, 255);"&gt;"annotationExampleServiceEndPoint" &lt;/span&gt;&lt;span id="sx55541" style="color: rgb(127, 0, 127);"&gt;class&lt;/span&gt;&lt;span id="sx55542" style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span id="sx55543" style="color: rgb(42, 0, 255);"&gt;"tr.com.dasgin.AnnotationExampleServiceEndPoint"&lt;/span&gt;&lt;span id="sx55544" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55545" class="western" style="margin-bottom: 0in; margin-left: 40px;" lang="tr-TR"&gt;      &lt;span id="sx55546"  style="font-size:85%;"&gt;&lt;span id="sx55547"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55548" style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span id="sx55549" style="color: rgb(63, 127, 127);"&gt;property &lt;/span&gt;&lt;span id="sx55550" style="color: rgb(127, 0, 127);"&gt;name&lt;/span&gt;&lt;span id="sx55551" style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span id="sx55552" style="color: rgb(42, 0, 255);"&gt;"exampleService" &lt;/span&gt;&lt;span id="sx55553" style="color: rgb(127, 0, 127);"&gt;ref&lt;/span&gt;&lt;span id="sx55554" style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span id="sx55555" style="color: rgb(42, 0, 255);"&gt;"exampleService"&lt;/span&gt;&lt;span id="sx55556" style="color: rgb(0, 128, 128);"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55557" class="western" style="margin-bottom: 0in;" lang="tr-TR"&gt;&lt;span id="sx55558"  style="font-size:85%;"&gt;&lt;span id="sx55559"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55560" style="color: rgb(0, 128, 128);"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="sx55561" style="color: rgb(63, 127, 127);"&gt;bean&lt;/span&gt;&lt;span id="sx55562" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="sx55557" class="western" style="margin-bottom: 0in;" lang="tr-TR"&gt;&lt;span id="sx55558"  style="font-size:85%;"&gt;&lt;span id="sx55559"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55562" style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55563" class="western" style="margin-bottom: 0in;" lang="tr-TR"&gt; &lt;/p&gt; &lt;p id="sx55564" class="western" style="margin-bottom: 0in;" lang="tr-TR"&gt;&lt;span id="sx55565"  style="font-size:85%;"&gt;&lt;span id="sx55566"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55567" style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span id="sx55568" style="color: rgb(63, 127, 127);"&gt;bean &lt;/span&gt;&lt;span id="sx55569" style="color: rgb(127, 0, 127);"&gt;class&lt;/span&gt;&lt;span id="sx55570" style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span id="sx55571" style="color: rgb(42, 0, 255);"&gt;"org.springframework.ws.server.endpoint.adapter.GenericMarshallingMethodEndpointAdapter"&lt;/span&gt;&lt;span id="sx55572" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55573" class="western" style="margin-bottom: 0in; margin-left: 40px;" lang="tr-TR"&gt;      &lt;span id="sx55574"  style="font-size:85%;"&gt;&lt;span id="sx55575"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55576" style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span id="sx55577" style="color: rgb(63, 127, 127);"&gt;constructor-arg &lt;/span&gt;&lt;span id="sx55578" style="color: rgb(127, 0, 127);"&gt;ref&lt;/span&gt;&lt;span id="sx55579" style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span id="sx55580" style="color: rgb(42, 0, 255);"&gt;"xmlBeansMarshaller"&lt;/span&gt;&lt;span id="sx55581" style="color: rgb(0, 128, 128);"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55582" class="western" style="margin-bottom: 0in;" lang="tr-TR"&gt;&lt;span id="sx55583"  style="font-size:85%;"&gt;&lt;span id="sx55584"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55585" style="color: rgb(0, 128, 128);"&gt;&amp;lt;/&lt;/span&gt;&lt;span id="sx55586" style="color: rgb(63, 127, 127);"&gt;bean&lt;/span&gt;&lt;span id="sx55587" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="sx55582" class="western" style="margin-bottom: 0in;" lang="tr-TR"&gt;&lt;span id="sx55583"  style="font-size:85%;"&gt;&lt;span id="sx55584"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55587" style="color: rgb(0, 128, 128);"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55588" class="western" style="margin-bottom: 0in;" lang="tr-TR"&gt;     &lt;/p&gt; &lt;p id="sx55589" class="western" style="margin-bottom: 0in;" lang="tr-TR"&gt;&lt;span id="sx55590" style="color: rgb(63, 95, 191);"&gt;&lt;span id="sx55591"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55592"  style="font-size:85%;"&gt;&amp;lt;!-- &lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p id="sx55593" class="western" style="margin-bottom: 0in;" lang="tr-TR"&gt;&lt;span id="sx55594" style="color: rgb(63, 95, 191);"&gt;&lt;span id="sx55595"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55596"  style="font-size:85%;"&gt;Endpoint sinifinda @PayloadRoot annotation i kullanilacak olursa asagidaki   bean yaratilmali. @PayloadRoot annotation i ile &lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p id="sx55597" class="western" style="margin-bottom: 0in;" lang="tr-TR"&gt;&lt;span id="sx55598" style="color: rgb(63, 95, 191);"&gt;&lt;span id="sx55599"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55600"  style="font-size:85%;"&gt;gelen mesajlarin(xml) namespace ve localpart larina gore ayiriyor. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p id="sx55601" class="western" style="margin-bottom: 0in;" lang="tr-TR"&gt;&lt;span id="sx55602" style="color: rgb(63, 95, 191);"&gt;&lt;span id="sx55603"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55604"  style="font-size:85%;"&gt;--&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55605" class="western" style="margin-left: 0.5in; text-indent: -0.5in; margin-bottom: 0in;" lang="tr-TR"&gt; &lt;span id="sx55606"  style="font-size:85%;"&gt;&lt;span id="sx55607"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55608" style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span id="sx55609" style="color: rgb(63, 127, 127);"&gt;bean &lt;/span&gt;&lt;span id="sx55610" style="color: rgb(127, 0, 127);"&gt;class&lt;/span&gt;&lt;span id="sx55611" style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span id="sx55612" style="color: rgb(42, 0, 255);"&gt;"org.springframework.ws.server.endpoint.mapping.PayloadRootAnnotationMethodEndpointMapping"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span id="sx55606"  style="font-size:85%;"&gt;&lt;span id="sx55607"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55613" style="color: rgb(0, 128, 128);"&gt;/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span id="sx55606"  style="font-size:85%;"&gt;&lt;span id="sx55607"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55613" style="color: rgb(0, 128, 128);"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p id="sx55620" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="sx55622" class="western" style="margin-left: 0.5in; text-indent: -0.5in; margin-bottom: 0in;" lang="tr-TR"&gt; &lt;span id="sx55623"  style="font-size:85%;"&gt;&lt;span id="sx55624"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55625" style="color: rgb(0, 128, 128);"&gt;&amp;lt;&lt;/span&gt;&lt;span id="sx55626" style="color: rgb(63, 127, 127);"&gt;bean &lt;/span&gt;&lt;span id="sx55627" style="color: rgb(127, 0, 127);"&gt;id&lt;/span&gt;&lt;span id="sx55628" style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span id="sx55629" style="color: rgb(42, 0, 255);"&gt;"xmlBeansMarshaller" &lt;/span&gt;&lt;span id="sx55630" style="color: rgb(127, 0, 127);"&gt;class&lt;/span&gt;&lt;span id="sx55631" style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span id="sx55632" style="color: rgb(42, 0, 255);"&gt;"org.springframework.oxm.xmlbeans.XmlBeansMarshaller"&lt;/span&gt;&lt;span id="sx55633" style="color: rgb(0, 128, 128);"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55634" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="sx55636" class="western" style="margin-bottom: 0in;" align="justify" lang="tr-TR"&gt;   &lt;/p&gt; &lt;p id="sx55638" class="western" style="margin-bottom: 0in;" lang="tr-TR"&gt;&lt;span id="sx55639" style="color: rgb(100, 100, 100);"&gt;&lt;span id="sx55640"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55641"  style="font-size:85%;"&gt;@Endpoint&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55642" class="western" style="margin-bottom: 0in;" lang="tr-TR"&gt;&lt;span id="sx55643"  style="font-size:85%;"&gt;&lt;span id="sx55644"  style="font-family:Courier New,monospace;"&gt;&lt;b id="sx55645"&gt;&lt;span id="sx55646" style="color: rgb(127, 0, 85);"&gt;public&lt;/span&gt;&lt;/b&gt; &lt;b id="sx55647"&gt;&lt;span id="sx55648" style="color: rgb(127, 0, 85);"&gt;class&lt;/span&gt;&lt;/b&gt;&lt;span id="sx55649" style="color: rgb(0, 0, 0);"&gt; AnnotationExampleServiceEndPoint {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55650" class="western" style="margin-bottom: 0in;" lang="tr-TR"&gt;  &lt;/p&gt; &lt;p id="sx55652" class="western" style="margin-bottom: 0in; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="sx55653"  style="font-size:85%;"&gt;&lt;span id="sx55654"  style="font-family:Courier New,monospace;"&gt;&lt;b id="sx55655"&gt;&lt;span id="sx55656" style="color: rgb(127, 0, 85);"&gt;private&lt;/span&gt;&lt;/b&gt;&lt;span id="sx55657" style="color: rgb(0, 0, 0);"&gt; ExampleService &lt;/span&gt;&lt;span id="sx55658" style="color: rgb(0, 0, 192);"&gt;exampleService&lt;/span&gt;&lt;span id="sx55659" style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55660" class="western" style="margin-bottom: 0in; margin-left: 40px;" lang="tr-TR"&gt; &lt;/p&gt; &lt;p id="sx55661" class="western" style="margin-bottom: 0in; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="sx55662"  style="font-size:85%;"&gt;&lt;span id="sx55663"  style="font-family:Courier New,monospace;"&gt;&lt;b id="sx55664"&gt;&lt;span id="sx55665" style="color: rgb(127, 0, 85);"&gt; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="sx55661" class="western" style="margin-bottom: 0in; margin-left: 40px;" lang="tr-TR"&gt;&lt;span id="sx55662"  style="font-size:85%;"&gt;&lt;span id="sx55663"  style="font-family:Courier New,monospace;"&gt;&lt;b id="sx55664"&gt;&lt;span id="sx55665" style="color: rgb(127, 0, 85);"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span id="sx55666" style="color: rgb(0, 0, 0);"&gt; ExampleService getExampleService() {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55667" class="western" style="margin-bottom: 0in; margin-left: 80px;" lang="tr-TR"&gt;  &lt;span id="sx55668"  style="font-size:85%;"&gt;&lt;span id="sx55669"  style="font-family:Courier New,monospace;"&gt;&lt;b id="sx55670"&gt;&lt;span id="sx55671" style="color: rgb(127, 0, 85);"&gt;return&lt;/span&gt;&lt;/b&gt; &lt;span id="sx55672" style="color: rgb(0, 0, 192);"&gt;exampleService&lt;/span&gt;&lt;span id="sx55673" style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55674" class="western" style="margin-bottom: 0in; margin-left: 40px;" lang="tr-TR"&gt;&lt;span id="sx55675"  style="font-family:Courier New,monospace;"&gt;&lt;span id="sx55676"  style="font-size:85%;"&gt; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55677" class="western" style="margin-bottom: 0in; margin-left: 40px;" lang="tr-TR"&gt; &lt;span id="sx55678"  style="font-size:85%;"&gt;&lt;span id="sx55679"  style="font-family:Courier New,monospace;"&gt;&lt;b id="sx55680"&gt;&lt;span id="sx55681" style="color: rgb(127, 0, 85);"&gt; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="sx55677" class="western" style="margin-bottom: 0in; margin-left: 40px;" lang="tr-TR"&gt;&lt;span id="sx55678"  style="font-size:85%;"&gt;&lt;span id="sx55679"  style="font-family:Courier New,monospace;"&gt;&lt;b id="sx55680"&gt;&lt;span id="sx55681" style="color: rgb(127, 0, 85);"&gt;public&lt;/span&gt;&lt;/b&gt; &lt;b id="sx55682"&gt;&lt;span id="sx55683" style="color: rgb(127, 0, 85);"&gt;void&lt;/span&gt;&lt;/b&gt;&lt;span id="sx55684" style="color: rgb(0, 0, 0);"&gt; setExampleService(ExampleService exampleService) {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sx55685" class="western" style="margin-bottom: 0in; margin-left: 80px;" lang="tr-TR"&gt;  &lt;span id="sx55686"  style="font-size:85%;"&gt;&lt;span id="sx55687"  style="font-family:Courier New,monospace;"&gt;&lt;b id="sx55688"&gt;&lt;span id="sx55689" style="color: rgb(127, 0, 85);"&gt;this&lt;/span&gt;&lt;/b&gt;&lt;
