JBoss Seam. Melih Sakarya www.melihsakarya.com melih.sakarya@gmail.com



Benzer belgeler
JBoss Seam Next Generation Integration Framework

Java EE 5 Teknolojileri Jboss Seam

JSF Melih Sakarya. Java Server Faces Facelet

Client Server Database

Spring Ekosisteminde Kurumsal Yazılım Geliştirme. Kenan Sevindik Harezmi Bilişim Çözümleri A.Ş.

JavaServerFaces. Ahmet Demirelli. SCJP 5.0, SCWCD 1.4

JSF Melih Sakarya. Java Server Faces

Spring Application Framework Harezmi Bilişim Çözümleri

ORM & Hibernate. Ahmet Demirelli. SCJP 5.0, SCWCD 1.4 ahmetdemirelli@sabanciuniv.edu

Rahman USTA Editör Altuğ B. ALTINTAŞ Papatya Yayıncılık Eğitim

MVP, Observer ve Mediator Örüntüleri ile Yeniden Kullanılabilir Uygulama Bileşenleri Geliştirme

.com. Kurumsal Java. Özcan Acar com

Spring Framework Eğitimi

Business Delegate Tasarım Şablonu KurumsalJava.com

sstproje2 Java Server Faces ile Stajyer Arama Ege Üniversitesi Bilgisayar Mühendisliği Sunucu Yazılım Teknolojileri Proje-2 Umut BENZER

.com. Özcan Acar 2009 Kurumsal Java.com

Java EE web uygulamaları geliştirmek için kullanılan açık kaynak web uygulama framework üdür.

MySqlConnection connection; MySqlCommand command; MySqlDataReader reader; MySqlDataAdapter adapter; DataTable table;

İÇERİK. Amaç. Kapsam. Süreç. Teknik Mimari. Faydalar

HTML isteklerini anlayarak HTML sonucu üreten ve yaygın olarak kullanılan temel Servlet sınıfı HttpServlet tir.

Intercepting Filter Tasarım Şablonu KurumsalJava.com

ÖZGÜR YAZILIMLAR İLE J2EE


Spring Security Framework Harezmi Bilişim Çözümleri


MOBİL UYGULAMA GELİŞTİRME

1. Bölüm Spring'e Giriş

Gönderilen uygulama incelendiğinde, belirtilen gerekliliklerin bir kısmının karşılandığı görülmüştür.

Spring Application Framework e Giriş

GittiGidiyor ve Açık Kaynak Kodlu Yazılımlar

PHP+Memory Cache+PostgreSQL Kullanarak Performanslı Veritabanı Uygulaması Geliştirme

İçindekiler JPA - Genel Konular...1 Genel Bilgiler...1 JPA Hakkında...1 Temel Kavramlar...3 Kurulum ve Yapılandırma...3 Yapılandırma Dosyası

Tekir (Ön Muhasebe Yazılımı)

Özcan Acar 2009 Kurumsal Java.com

Java Nedir? 7 Java nın Diğer Programlama Dillerinden Farkı 8

THY A.O. Bilgi Teknolojileri Alanında Tecrübeli Çalışma Arkadaşları Arıyor

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2

CODEIGNITER SEMINERI KÜTÜPHANE YAZMA GÜVENLIK ÖNLEMLERI CODEIGNITER 2.0

Spring Framework Eğitimi

Bölüm 8. Ayrık Küme. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 16

Web 2.0 Örnek Eğitim Notu

ÇANAKKALE ONSEKĠZ MART ÜNĠVERSĠTESĠ MÜHENDĠSLĠK-MĠMARLIK FAKÜLTESĠ BĠLGĠSAYAR MÜHENDĠSLĠĞĠ BÖLÜMÜ

Yazılım Akademisi 2011 Eğitim Sunumu -1

Java Kodunuzun Nesne-Merkezli Olmadığının 10 İşareti

Yazılım Kodlama ve İ simlendirme Standartları v1.0

İTÜ ELEKTRİK-ELEKTRONİK FAKÜLTESİ STAJ DEFTERİ

MASTER PAGE SAYFASI KULLANIMI

1 GİRİŞ 1 Bu Kitap Kime Hitap Eder? 2 Kitapta Nelerden Bahsedilmiştir? 3 Kitabı Takip Edebilmek için Nelere İhtiyaç Duyacaksınız?

«BM364» Veritabanı Uygulamaları

Bölüm 24. Java Ağ Uygulamaları 24.1 Java Appletleri. Bir Applet in Yaşam Döngüsü:

ICM Software Innovative Code Motion

Selsoft Academy Eğitim Kataloğu

ÖNCE B L NMES GEREKENLER

JavaServer Faces (JSF) Sunucu Yazılım Teknolojileri 2008

Dünya Oryantiring Günü Kayıt Sayfası İşlem Adımları

ANKARA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ. Java Teknolojileri Kullanılarak. Kan Bağış Web Uygulamasının Tasarlanması

1 REACT (REACTJS) GIRIŞ

1 FULL STACK DEVELOPMENT NEDIR? 1 Nasıl Full Stack Developer Olurum? 2

Bölüm 6. Karma. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 31

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

TCMB Deneyim Raporu. Kurumsal Java Uygulama Platformu. Sacit Uluırmak. Türkiye Cumhuriyet Merkez Bankası Sistem Araştırma ve Planlama Müdürlüğü

LOGO DESTEK DOKÜMANI

Cybersoft Bilişim Teknolojileri Sunucu Tarafı Programlaması Kursu Final soruları. Tarih: 27 Kasım 2010 Saat: 13:30 Süre: 3 saat

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals

Bu Kitap Kime Hitap Eder? 2 Kitapta Nelerden Bahsedilmiştir? 3 Kitabı Takip Edebilmek için Nelere İhtiyaç Duyacaksınız?

CSRF (XSRF, Cross Site Request Forgery Cross Site Reference Forgery ) Nedir? Nasıl Kullanılır? ve Nasıl Korunulur?

ICE BİLİŞİM TEKNOLOJİLERİ WEB SERVİS KILAVUZU. SERVİS LİNK: DÜZENLEME TABLOSU

ASP.NET CLASS KULLANARAK VERİTABANI İŞLEMLERİ

e-logo e-fatura Özel Entegratör Sistemi

EGE ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ SUNUCU YAZILIM TEKNOLOJİLERİ LABORATUAR PROJESİ JAVA SERVER FACES

KURULUM KILAVUZU MART Visilabs Target Kurulum Kılavuzu

LINQ Language Integrated Query Dille Bütünleştirilmiş Sorgu Bir Veri Tabanı Tablosundan Veri Gösterme

PAKET TRANSFER SİSTEMİ

Cyberoam Single Sing On İle

PAKET TRANSFER SİSTEMİ

HTTP. (Hyper Text Transfer Protocol)

Ç NDEK LER 1 PHP 6 1 PHP Nedir? 1 PHP nin Tarihi 2 PHP nin Avantajlar 4 PHP nin Dezavantajlar 4 PHP nin Çal flma Mant 6 PHP nin Çal flma Aral 8 PHP

Her Yönüyle SQL Enjeksiyonu. OWASP-Türkiye Bünyamin Demir

Microsoft Outlook 2003 Kurulumu

Öğr. Gör. Serkan AKSU 1

8- Sistem tarihinden gün değerini alarak çift veya tek sayı olup arasındaki sayılardan tek olanları yeşil çift olanları kırmızı

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

Boğaziçi Üniversitesi Bilgi İşlem Merkezi. Web Yönetimi Birimi. Drupal Kullanım Kılavuzu

PAKET TRANSFER SİSTEMİ

Selsoft Eğitim Kataloğu

YAYGIN OLARAK KULLANILAN ADSL MODEMLER VE ROUTER AYARLARI

T.C. ADALET BAKANLIĞINDAN

PHP CodeIgniter MVC Framework

Basit bir web uygulaması

yeni_uye_kayit.ascx UserControl sayfamızda, kaydedilmek istenen üye eğer daha önce veritabanımızda kayıtlı ise bunu buldurup kullanıcıyı uyaralım;

Üst Düzey Programlama

1. KIDEMLİ SİSTEM UZMANI (1 Kişi Tam Zamanlı Aylık Brüt Sözleşme Ücret Tavanının 3 Katı)

JavaScript Örnekleri PDF

BMÜ-112 ALGORİTMA VE PROGRAMLAMA-II LABORATUARI DENEY-2 FÖYÜ


Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals

Kullanıldığı Başlıca Siteler

AJAX WITH JQUERY. Ajax Hikayesi MODULE 11

Python Web 2.0 Python ve Web 2.0 Son. Python ve Web 2.0. Gökmen GÖKSEL, 3 Mayıs 2007

Web Uygulamaları Mimarileri ve Güvenliği

Transkript:

JBoss Seam Melih Sakarya www.melihsakarya.com melih.sakarya@gmail.com

Seam Framework JSF JPA EJB 3.0 Ajax RichFaces A4J Drools itext PDF JFreeChart Facelet Security SSL Web Servis Pojo IoC JBPM Hibernate Groovy Javascript Hibernate Localization Asynchronous Remoting Testing GWT Hibernate Search Mail Captcha JBoss Cache

Seam Framework Red Hat Exadel JBoss Hibernate Gavin King (Proje lideri)

Neden Seam Tümleşik bir yapı Hızlı ve kolay geliştirme ortamı (JBoss Tools) Açık kaynak Ücretsiz Kolay entegrasyon (Spring, IceFaces...) Ücretsiz geliştirme araçları (JBoss Tools) Kolay test edilebilirlik Farkli ortamlarda deployment desteği

Geliştirme ortamı Eclipse JBoss Tools Java 1.5 ve üzeri J2EE 1.5 ve üzeri

Geliştirme ortamımızı kuralım

Desteklediği Ortamlar JBoss AS Websphere AS OC4J Weblogic Tomcat...

Seam-gen Bizim için hazırlanan proje ortamı Code generation DB oriented code generation

Örnek projemizi oluşturalım

Seam User Interface Seçenekleri Facelet JSF RI Richfaces Ice Faces My Faces...

JSF-Facelet ve Seam Template desteği Kolay ve yetenekli EL (Expression Language) RichFaces Theme desteği

Seam Component @name( ornek )

Seam Context Event context Stateless context Session context Conversation context Application context Page context Business Process context

EJB 3.0 Stateful Stateles Message Driven Bean

EJB tanımı @Name("loginAction") @Stateless public class LoginAction implements Login {... }

JPA Annotation ile deklarasyon @Entity @Id...

CRUD Operasyonları Insert Update Delete Select

IoC (Inversion of Control) Injection Outjection Bijection

Ajax desteği A4J (Ajax for JSF) RichFaces

Seam JSF kontrolleri <h:selectonemenu value="#{kullanici.sehir}"> <s:selectitems value="#{sehir.resultlist}" var="sehir" label="#{sehir.adi}" /> <s:convertentity /> </h:selectonemenu>

Seam JSF kontrolleri <s:div rendered="#{kullanici.yetki == 1}"> admin alani </s:div>

Caching <s:cache key="blog-#{blog.id}"> <div class="blogentry"> <h3>#{blog.baslik}</h3> <div> <s:formattedtext value="#{blog.icerik}"/> </div> </div> </s:cache>

Caching public void post() {... entitymanager.persist(blogentry); pojocache.remove("anasayfa", "blog-" + blog.getid() ); }

EL (Expression Language) <h:commandbutton action="#{kullaniciaction.sil(kullanici)}" value="sil"/>

File upload <s:fileupload> <h:form enctype="multipart/form-data"> <s:fileupload id="picture" data="#{kayit.resim}" accept="image/png" contenttype="#{kayit.resimcontenttype}" / >

Security - authentication <security:identity authenticate-method= "#{authenticator.authenticate}"/>

Authentication @Name("authenticator") public class Authenticator{ @In Identity identity; public boolean authenticate() { if(identity.getusername().equals("admin") && identity.getpassword().equals("123456")){ identity.addrole("admin"); return true; } else return false; } }

Security <h:outputtext value="test" rendered="#{not ide ntity.loggedin}"> <h:outputlink action="#{reports.listmanagerre ports}" rendered="#{s:hasrole('manager')}"> Yönetici </h:outputlink>

Security @Restrict("#{s:hasRole('admin')}") public void delete() {... }

Security public void deletecustomer() { Identity.instance().checkRestriction("#{s:hasPermission('customer ','delete',selectedcustomer)}"); }

PDF <p:document xmlns:p="http://jboss.com/products/seam/pdf" title="hello"> <p:chapter number="1"> <p:title><p:paragraph>hello</p:paragraph></p:title> <p:paragraph>hello </p:paragraph> </p:chapter> <p:chapter number="2"> <p:title><p:paragraph>goodbye</p:paragraph></p:title> <p:paragraph>goodbye.</p:paragraph> </p:chapter> </p:document>

PDF Components.xml <pdf:document-store use-extensions="true" error-page="/pdfmissing.seam" /> xmlns:pdf=http://jboss.com/products/seam/pdf http://jboss.com/products/seam/pdf http://jboss.com/products/seam/pdf-2.0.xsd

PDF web.xml <servlet> <servlet-name>document Store Servlet</servlet-name> <servlet-class>org.jboss.seam.pdf.documentstoreservlet</servletclass> </servlet> <servlet-mapping> <servlet-name>document Store Servlet</servlet-name> <url-pattern>*.pdf</url-pattern> </servlet-mapping>

PDF WEB-INF\lib\ itext.jar

Grafik Chart WEB-INF\lib jfreechart.jar jcommon.jar

Grafik Chart <p:piechart title= Parite" circular="false" direction="anticlockwise" startangle="30" labelgap="0.1" labellinkpaint="red"> <p:series key="prices"> <p:data key="2003" columnkey="2003" value="7.36" /> <p:data key="2004" columnkey="2004" value="11.50" /> <p:data key="2005" columnkey="2005" value="34.625" /> <p:data key="2006" columnkey="2006" value="76.30" /> <p:data key="2007" columnkey="2007" value="85.05" /> </p:series> </p:piechart>

HTML Grafik Chart <p:piechart title= Parite" circular="false" direction="anticlockwise" startangle="30" labelgap="0.1" labellinkpaint="red"> <p:series key="prices"> <p:data key="2003" columnkey="2003" value="7.36" /> <p:data key="2004" columnkey="2004" value="11.50" /> <p:data key="2005" columnkey="2005" value="34.625" /> <p:data key="2006" columnkey="2006" value="76.30" /> <p:data key="2007" columnkey="2007" value="85.05" /> </p:series> </p:piechart>

Remoting Seam componentlerine client side erişim sağlar DWR benzeri bir mimari sunar Javascript ile erişim yapabilirsiniz

Remoting <script type="text/javascript" src="seam/resource/remoting/resource/remote.js"></script> <s:remote include="test"/>

Remoting <script type="text/javascript"> //<![CDATA[ function deneme() { var name = prompt("adınız Nedir?"); Seam.Component.getInstance("test").demo(deneme,demoCallback); } function deneme(result) { alert(result); } // ]]> </script>

Remoting @Stateless @Name("test") public class TestAction implements Test { public String demo(string isim){ return "adınız = " + isim; } }

Remoting @Local public interface Test { @WebRemote public String demo(string isim); }

Seam Validation public class Adres { private String sehir; private String postakodu; @NotNull @Length(max=30) public String getsehir() { return sehir; } public void setsehir(string sehir) { this.sehir = sehir; } } @NotNull @Length(max=6) @Pattern("^\d*$") public String getpostakodu() { return postakodu; } public void setpostakodu(string postakodu) { this.postakodu = postakodu; }

Mail <m:message xmlns="http://www.w3.org/1999/xhtml" xmlns:m="http://jboss.com/products/seam/mail" xmlns:h="http://java.sun.com/jsf/html"> <m:from name="melih Sakarya" address="melih.sakarya@vardar.biz.tr" /> <m:to name="#{kullanici.ad} #{kullanici.soyad}">#{kullanici.mail}</m:to> <m:subject>deneme mesaji</m:subject> <m:body> <p>merhaba #{kullanici.ad},</p> <p>bu mail seam ile gonderilmistir. <a href="http://www.melihsakarya.com">www.melihsakarya.com</a></p> </m:body> </m:message>

Mail Configuration components.xml <components xmlns="http://jboss.com/products/seam/components" xmlns:core="http://jboss.com/products/seam/core" xmlns:mail="http://jboss.com/products/seam/mail"> <mail:mail-session host="smtp.vardar.biz.tr" password="123456" port="25" username="msakarya" /> </components>

Mail facelet rendering @In(create=true) private Renderer renderer; public void gonder() { try { renderer.render("/mailornek.xhtml"); facesmessages.add("email basari ile gonderildi"); } catch (Exception e) { facesmessages.add("mesaj gonderilemedi: " + e.getmessage()); } }

Birden çok kişiye gönderim <ui:repeat value="#{tumkulanicilar} var="kullanici"> <m:to name="#{kullanici.ad} #{kullanici.soyad}" address="#{kullanici.mail}" / > </ui:repeat>

Birden çok mail gönderimi <ui:repeat value="#{kullanicilar}" var="k"> <m:message> <m:from name="#{gonderen.ad} #{gonderen.soyad}">#{gonderen.mail}</m:from> <m:to name="#{k.ad}">#{k.adres}</m:to>... </m:message> </ui:repeat>

Alternatif mail <m:body> <f:facet name="alternative"> Bu maili okuyamıyorsanız www.vardar.biz.tr adresini ziyaret ediniz. </f:facet> </m:body>

Mail Attachment <m:attachment value="#{kullanici.foto}" contenttype="image/png" filename="foto.jpg"/>

Birden çok dosya <ui:repeat value="#{kullanicilar}" var="kullanici"> <m:attachment value="#{kullanici.foto}" contenttype="image/jpeg" filename="#{kullanici.ad}_#{kullanici.soyad}.jpg"/> </ui:repeat>

Mail Pdf Attachment <m:attachment filename="test.pdf"> <p:document> test test test </p:document> </m:attachment>

Diğer email özellikleri Mail okuma Farklı header lar ekleme Internationalisation Templating

Son Vardar Yazılım www.vardar.biz.tr