Kayıtlar

maven işleyişi hakkında

Maven ile ilk tanışılınca anlaşılmakta güçlük çekilen bir nokta olan lifecycle, phase, goal, plug-in kavramlarının birbirleri ile ilişkilerini kısaca anlatalım, Maven, bilindigi gibi plug-in ler üzerine kurulu bir sistem. Bu plug-in yapısının kesinlikle en güzel yanlarından biri, plug-inin ihtiyaç duyuldugu anda repositorylerden o anda indirilmesi. Bir digeri de tabiki plug-inler yazmak sureti ile ucu açık sonsuz geliştirme ortamı sunması. Osgi kavramında oldugu gibi merkezde duran bir engine diyebilecegimiz core uygulama en temel bileşenleri bile ihtiyaç duydugu zaman localine alıyor, veya kendi yazmış oldugumuz uygulamaları sisteme dahil ediyor. Plug-in ler içlerinde sınırsız sayıda Goal adı verilen uygulama parçacıklarından oluşur.Bu uygulama parçacıklarını örnegin konsoldan mvn dependency:copy-dependencies komut satırı ile çagırılabilir. Yukarıda ki örnekte, maven bizim için dependencies (maven-dependency-plugin, maven'in default plug-inlerinden biridir) plug-in inden copy-dep...

jni ve shell beraber

efenim jni in yararları ve zararları hakkında birçok kayıt makale var bunlara girmeye gerek yok, hatta ve hatta çok fazla da örnek var ancak bir küçük ornekte ben vermek istiyorum. gayet anlaması kolay basit bir örnek indir sadece run.sh içerisinde jvm için uygun path belirtmek yeterli olacaktır.Dosyalar listelenecektir

Generics && wildcards

Genericsler java 5 ile gelen özellikler. Basit şeklini hemen hemen her yerde kullanıyoruz. ancak collection arayüzü ile beraber kullanımında bazen sıkıntı yaşandıgını görüyorum. şöyle bir incelemek gerekirse; class{ Collection myNUmbers = new ArrayList (); public void main() { printCollection(myNUmbers); } void printCollection(Collection c) { for (Serializable e : c) { System.out.println(e); } } } printCollection(Collection c) methodunda parametre olarak "Collection c" almış olsaydı yukarıda ki kod parçası hata alacaktı. çünkü eger extend kullanmazsak, collection ile beraberinde kullanılan generics betimi beraber bir class oluştruyorlar ancak bu inheritance özelliklerini desteklemiyor diye dusunebiliriz yukarıda extend olmazsa ve biz printCollection(myNUmbers); methodunu aynen çagırırsak hata alırız. hatta ve hatta; Collection myNUmbers = new ArrayList (); şekilde tanım yapıp void printCollection(Collectio...

reverse-ajax

Reverse-Ajax bana garip ve cazibeli gelen bir olay ama bunun zor olduguda bir gerçek http://directwebremoting.org/dwr/index.html linkinde framework ve güzel anlatımlar var. incelenmeli

maven2 de filter özelliği ve process-resources fazı

maven tagları arasında bulunan filter tagı bende ilk başkta dosyaları bir yere taşırken bazılarını almamak gibi bir çağrışım yapmıştı ama asıl yaptıgı iş ondan daha başarıymış. şöyleki diyelim bir proje yaptık ve versiyon numarasını aynı jar içindeki bir *.properties dosyasına koymak istiyoruz. tabi burada önemli olan her versiyonda oluşan generic versiyon numarası. bunun için diyelim ki src/main/resources/META-INF/application.properties dosyası içerisinde project.name=${project.name} project.version=${project.version} message=${my.value} satırlarını kullanmak istiyoruz. hemen efendim src/main/resources true tanımını giriyoruz ve process-resources fazını çalıştıryoruz. bir bakıyoruz ki gerekli alanlar dolmuş. birde sistemde kullandıgımız değişkenleri kullanmak da isteyebiliriz o zaman dataları almak istedigimiz properties dosyasını filter tagları ile mavena tanıtırız . tamamdır src/main/filters/filter.properties he yok efendim öyle ayrı dosyalar falan derseniz ...

Var olan bir web Service stub yazmak

bunun için bir ant script işimizi kolaylaştıracaktır. bu bize gerekli class ları generate edecektir. package com.yemek.run; import javax.xml.ws.BindingProvider; import com.yemek.siparis.Adres; import com.yemek.siparis.Yemek; import com.yemek.siparis.YemekSiparis; import com.yemek.siparis.YemekSiparisService; public class Runtime { public static void main(String[] args) { final String URL = ""; YemekSiparisService service = new YemekSiparisService(); YemekSiparis yemekSiparis = service.getYemekSiparisPort(); Yemek yemek = new Yemek(); yemek.setYemekIsmi("az kuru çok pilav "); Adres adres = yemekSiparis.siparisAl(yemek); System.out.println(adres.getYemek()); } }

SOA - Temel Taşlar 2 - jaxb

JAXB Java-Xml Binding işini , java 6 ile beraber standart olarak yapan tool diyebiliriz. bir xsd dosyamız olsun xmlns:tns="http://www.example.org/objectshop" elementFormDefault="qualified"> bu xsd bir ant scriti çalıştırarak gerekli sınıflarınımı oluştrabiliriz. eger runtime ayarlarınız java 6 ile classpath de eklemeniz gereken library bulunmamaktadır. Standart oldugu için. ancak java 5 kullanıyorsak ayrıca jaxb yi indirmemiz gerekmektedir. yukarıda ki script java 6 içindir. java 1.5 ten onceki versiyonlarda annotation olmadıgı için jaxb kullanmak mumkun degildir. yukarıda ki script bize aşagıdaki gibi classlar generate edecektir @XmlRegistry public class ObjectFactory { private final static QName _ObjectShop_QNAME = new QName("http://www.example.org/objectshop", "ObjectShop"); public ObjectFactory() { } public ObjectShopType createObjectShopTyp...

SOA - Temel Taşlar 1

Soa nın temelinde servisler vardır. Aslında Soa, servislerin butunune denir. Ve genelde servisler xml based sistemler olarak yazılırlar. çogunlukla da servis deyince aklımıza web servisleri gelmektedir. web servisleri yogun bir şekilde xml teknolojilerini kullanmayı gerektirir. xml, xsd, xslt gibi kavramları bilmek gerekmekte

browserdan response ile resim basmak

resim dosyalarını eger başka bir http serverdan alıyorsanız default olarak url = new URL(cmFullPath); conn = url.openConnection(); in = (InputStream) conn.getInputStream(); BufferedImage image =ImageIO.read(in); ImageIO.write(image,"jpg",response.getOutputStream()); response.getOutputStream().flush(); dersiniz yazar. ancak eger http server size gif veya jpeg veya tiff gonderiyorsa o zaman tiffleri ayırmanız gerekir response.setContentType("image/jpeg"); response.setHeader("Cache-Control","no-cache"); //HTTP 1.1 response.setHeader("Pragma","no-cache"); //HTTP 1.0 response.setDateHeader ("Expires", 0); //prevents caching at the proxy server url = new URL(cmFullPath); conn = url.openConnection(); String fileType = conn.getContentType().toLowerCase(); in = (InputStream) conn.getInputStream(); if (fileType.indexOf("ti...