muharrem taç muharremtac mtac@martisoft

30
Muharrem Taç Muharrem Taç www.muharremtac.com www.muharremtac.com [email protected] [email protected]

Upload: lassie

Post on 10-Jan-2016

29 views

Category:

Documents


1 download

DESCRIPTION

Muharrem Taç www.muharremtac.com [email protected]. Liferay Nedir. Liferay Nedir. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Muharrem Taç muharremtac mtac@martisoft

Muharrem TaçMuharrem Taçwww.muharremtac.comwww.muharremtac.com

[email protected]@martisoft.com

Page 2: Muharrem Taç muharremtac mtac@martisoft

Liferay NedirLiferay Nedir

Page 3: Muharrem Taç muharremtac mtac@martisoft

Liferay NedirLiferay Nedir

2000 yılında Brian Chan önderliğinde 2000 yılında Brian Chan önderliğinde geliştirilmeye başlanmış bir proje. Önce kar geliştirilmeye başlanmış bir proje. Önce kar amacı gütmeyen bir oluşumken 2006-2007 amacı gütmeyen bir oluşumken 2006-2007 yıllarında şirketleşti. Tek ürünleri Portal yıllarında şirketleşti. Tek ürünleri Portal değil. Social Office adında yeni bir ürünleri değil. Social Office adında yeni bir ürünleri var. Bu ürün de Liferay Enterprise Portal var. Bu ürün de Liferay Enterprise Portal tabanlı.tabanlı.

Page 4: Muharrem Taç muharremtac mtac@martisoft

Liferay NedirLiferay Nedir

Açık kaynak kodlu MIT lisansıAçık kaynak kodlu MIT lisansıPortlet container. JSR 168 ve JSR 268.Portlet container. JSR 168 ve JSR 268.Şu an portal 5.2 sürümünde. Fakat bu sürüm çok yeniŞu an portal 5.2 sürümünde. Fakat bu sürüm çok yeniAna Frameworkler Spring ve Hibernate.Ana Frameworkler Spring ve Hibernate.MVC olarak Struts kullanılıyor.MVC olarak Struts kullanılıyor.Şablonlarda Struts Tiles ve Velocity kulanılmış.Şablonlarda Struts Tiles ve Velocity kulanılmış.

Page 5: Muharrem Taç muharremtac mtac@martisoft

Liferay NedirLiferay Nedir

Tema, Layout, drag- drop destekli.Tema, Layout, drag- drop destekli.Türkçe desteği.Türkçe desteği.Exdend edilebilir hazır proje.Exdend edilebilir hazır proje.OpenSSO, CAS Server, OpenID gibi yeni SSO yöntemlerine ve OpenSSO, CAS Server, OpenID gibi yeni SSO yöntemlerine ve ürünlerine destek veriyor.ürünlerine destek veriyor.

Page 6: Muharrem Taç muharremtac mtac@martisoft

Liferay NedirLiferay NedirTema DesteğiTema Desteği

Page 7: Muharrem Taç muharremtac mtac@martisoft

Liferay NedirLiferay NedirLayout DesteğiLayout Desteği

Page 8: Muharrem Taç muharremtac mtac@martisoft

Liferay NedirLiferay NedirAuthentication, SSOAuthentication, SSO

Page 9: Muharrem Taç muharremtac mtac@martisoft

Liferay NedirLiferay Nedir

Desteklenen veritabanları:Desteklenen veritabanları:

MySQL,MySQL,PostgreSQL,PostgreSQL,Oracle,Oracle,IBM DB2,IBM DB2,Microsoft SQL Server,Microsoft SQL Server,Sybase,Sybase,Hipersonic,Hipersonic,Apache Derby,Apache Derby,

Page 10: Muharrem Taç muharremtac mtac@martisoft

Liferay NedirLiferay Nedir

Page 11: Muharrem Taç muharremtac mtac@martisoft

Liferay InstallationLiferay Installation

Page 12: Muharrem Taç muharremtac mtac@martisoft

Liferay InstallationLiferay Installation

Liferay yükleme kolaylığı için bundle olarak dağıtıldığı gibi tek Liferay yükleme kolaylığı için bundle olarak dağıtıldığı gibi tek başına web uygulaması olarak da indirilip yüklenebilir. Bu başına web uygulaması olarak da indirilip yüklenebilir. Bu durumda ilave kütüphaneler için dependencies olan dağıtım durumda ilave kütüphaneler için dependencies olan dağıtım indirilmeli.indirilmeli.

SourceForge adresi :SourceForge adresi :http://sourceforge.net/projects/lportal/http://sourceforge.net/projects/lportal/

Page 13: Muharrem Taç muharremtac mtac@martisoft

Liferay InstallationLiferay Installation

Bundle dağıtımlarların desteklediği;Bundle dağıtımlarların desteklediği;Servlet containerlar : Tomcat, Jetty , Servlet containerlar : Tomcat, Jetty , Application serverlar : Jboss, Glassfish, Geronimo, JonAS, Application serverlar : Jboss, Glassfish, Geronimo, JonAS, ResinResin

Tomcat bundle yüklemesi için örneğinTomcat bundle yüklemesi için örneğinliferay-portal-tomcat-5.5-5.1.2.zipliferay-portal-tomcat-5.5-5.1.2.zip açılıraçılırAçılan bu dizinde Tomcat’e herşeyiyle kurulmuş konfigüre Açılan bu dizinde Tomcat’e herşeyiyle kurulmuş konfigüre edilmiş Liferay Portal kuruludur. Kurulu veritabanı HSQL’dir ve edilmiş Liferay Portal kuruludur. Kurulu veritabanı HSQL’dir ve test kullanıcısı bulunmaktadır. Ayarlarda değişiklik mesela test kullanıcısı bulunmaktadır. Ayarlarda değişiklik mesela veritabanı değiştirmek için veritabanı değiştirmek için \conf\Catalina\localhost\ROOT.xml\conf\Catalina\localhost\ROOT.xml değiştirilebilir.değiştirilebilir.webapps/ROOT webapps/ROOT dizini ana uygulama dizinidir. Portal burada dizini ana uygulama dizinidir. Portal burada kuruludur.kuruludur.

Page 14: Muharrem Taç muharremtac mtac@martisoft

Liferay InstallationLiferay Installation

Portletler de webapps altına deploy edilir.Portletler de webapps altına deploy edilir.Portlet deployment kullanıcı home dizini altında Portlet deployment kullanıcı home dizini altında liferay/deployliferay/deploy dizinine war gönderilmesi ile gerçekleşir.dizinine war gönderilmesi ile gerçekleşir.Örneğin Windows için:Örneğin Windows için:C:\Documents and Settings\mtac\liferay\deploy\portlet.warC:\Documents and Settings\mtac\liferay\deploy\portlet.warLiferay Liferay PortletAutoDeployListenerPortletAutoDeployListener war dosyasını buradan alarak war dosyasını buradan alarak webapps dizinine kopyalar ve portletleri register etmeye başlar. webapps dizinine kopyalar ve portletleri register etmeye başlar. Bir uygulama içerisinde pek çok portlet olabilir.Bir uygulama içerisinde pek çok portlet olabilir.

Page 15: Muharrem Taç muharremtac mtac@martisoft

Liferay Web MVCLiferay Web MVC

Page 16: Muharrem Taç muharremtac mtac@martisoft

Liferay Web MVCLiferay Web MVC

Liferay 2000 yılından beri geliştirilmekte olduğu için oturmuş bir Liferay 2000 yılından beri geliştirilmekte olduğu için oturmuş bir yapı var ve bu yapıyı tümden değiştirmek zor olduğundan Struts yapı var ve bu yapıyı tümden değiştirmek zor olduğundan Struts ile devam ediliyor.ile devam ediliyor.JSF ile geliştirilmeye devam edilecek söylentileri var.JSF ile geliştirilmeye devam edilecek söylentileri var.

Struts actionları ve forwardları klasik şekilde struts-config.xml Struts actionları ve forwardları klasik şekilde struts-config.xml içinde tanımlı.içinde tanımlı.tiles-defs.xml, forwardların nereye gideceği bilgisini taşıyor.tiles-defs.xml, forwardların nereye gideceği bilgisini taşıyor.Önemli ayar dosyaları system.properties, portal.propertiesÖnemli ayar dosyaları system.properties, portal.propertiesDil dosyaları Language.propertiesDil dosyaları Language.properties

Page 17: Muharrem Taç muharremtac mtac@martisoft

Liferay ExtendLiferay Extend

Page 18: Muharrem Taç muharremtac mtac@martisoft

Liferay ExtendLiferay Extend

Liferay’in sitesinde exdend projesi bulunuyor.Liferay’in sitesinde exdend projesi bulunuyor.Proje build edildiğinde Liferay extend core librarylerini jar Proje build edildiğinde Liferay extend core librarylerini jar halinde paketlerken önemli dosyaları –ext. olarak çoğaltıyor.halinde paketlerken önemli dosyaları –ext. olarak çoğaltıyor.

portal.properties -> portal-ext.propertiesportal.properties -> portal-ext.propertiessystem.properties -> system-ext.propertiessystem.properties -> system-ext.propertiestiles-defs.xml -> tiles-defs-ext.xmltiles-defs.xml -> tiles-defs-ext.xmlLanguage-ext_tr.propertiesLanguage-ext_tr.properties

Page 19: Muharrem Taç muharremtac mtac@martisoft

PortletlerPortletler

Page 20: Muharrem Taç muharremtac mtac@martisoft

PortletlerPortletler

Java stadardı.Java stadardı.Portletler portale deploy edilen uygulamalar. Birer modül gibi Portletler portale deploy edilen uygulamalar. Birer modül gibi düşünebiliriz. Bağımsız pencereler gibi çalışıyor.düşünebiliriz. Bağımsız pencereler gibi çalışıyor.Portal ile bütünleşik olabiliyor. Portal’in sağladığı API’lara Portal ile bütünleşik olabiliyor. Portal’in sağladığı API’lara erişebiliyor.erişebiliyor.Kendine ait request ve response’u var. Kendine ait request ve response’u var. RenderRequestRenderRequestRenderResponse gibi.RenderResponse gibi.Modern JavaEE Frameworkleri ile portlet yazılabiliyor. Spring, Modern JavaEE Frameworkleri ile portlet yazılabiliyor. Spring, Struts, JSF.Struts, JSF.

Page 21: Muharrem Taç muharremtac mtac@martisoft

PortletlerPortletler

Dr.Naci DAİ’nin kazandırdığı Lomboz ile Eclipse ile entegre Dr.Naci DAİ’nin kazandırdığı Lomboz ile Eclipse ile entegre olarak Portlet geliştirme imkanı.olarak Portlet geliştirme imkanı.

http://lomboz.objectweb.orghttp://lomboz.objectweb.org

Preconfigured with Eclipse Ganymede and Europa for enteprise Java/JEE Preconfigured with Eclipse Ganymede and Europa for enteprise Java/JEE developmentdevelopmentIncludes Eclipse Webtools Platform, Web Services, JSF and JPA ToolsIncludes Eclipse Webtools Platform, Web Services, JSF and JPA ToolsIncludes BPEL Editor and builtin support for Apache ODEIncludes BPEL Editor and builtin support for Apache ODESOA support with REST, JAX-WS and JAXBSOA support with REST, JAX-WS and JAXBJava Portal and Portlet Development Tools and support for Liferay and eXo Java Portal and Portlet Development Tools and support for Liferay and eXo PortalsPortalsBundles Spring IDE, Hibernate and Struts ToolsBundles Spring IDE, Hibernate and Struts ToolsEasy installation with cloudsmith virtual distrosEasy installation with cloudsmith virtual distrosSupport optionsSupport options

Page 22: Muharrem Taç muharremtac mtac@martisoft

PortletlerPortletler

Portlet deployment kullanıcı home dizini altında liferay/deploy Portlet deployment kullanıcı home dizini altında liferay/deploy dizinine war gönderilmesi ile gerçekleşir.dizinine war gönderilmesi ile gerçekleşir.Örneğin Windows için:Örneğin Windows için:C:\Documents and Settings\mtac\liferay\deploy\portlet.warC:\Documents and Settings\mtac\liferay\deploy\portlet.warLiferay Liferay PortletAutoDeployListenerPortletAutoDeployListener war dosyasını buradan alarak war dosyasını buradan alarak webapps dizinine kopyalar ve portletleri register etmeye başlar. webapps dizinine kopyalar ve portletleri register etmeye başlar. Bir uygulama içerisinde pek çok portlet olabilir.Bir uygulama içerisinde pek çok portlet olabilir.

Page 23: Muharrem Taç muharremtac mtac@martisoft

PortletlerPortletler

3 Önemli Dosya:3 Önemli Dosya:

portlet.xml :portlet.xml : portlet bilgilerinin tutulduğu standard dosya. portlet bilgilerinin tutulduğu standard dosya.

liferay-portlet.xml :liferay-portlet.xml : Liferay’a özel yeteneklerin kullanılabildiği Liferay’a özel yeteneklerin kullanılabildiği liferay specific dosya. Örnek : bir portleti ajaxable yapmak içinliferay specific dosya. Örnek : bir portleti ajaxable yapmak için<ajaxable>true</ajaxable><ajaxable>true</ajaxable>

liferay-display.xml :liferay-display.xml : Liferay uygulama ekleme menüsünde Liferay uygulama ekleme menüsünde görünecek isim ve kategori ağaç sırası.görünecek isim ve kategori ağaç sırası.

Page 24: Muharrem Taç muharremtac mtac@martisoft

PortletlerPortletler

3 Önemli Method:3 Önemli Method:

javax.portlet.GenericPortlet içerisinde desteklenen methodlar:javax.portlet.GenericPortlet içerisinde desteklenen methodlar:

doView(RenderRequest portletRequest,doView(RenderRequest portletRequest,RenderResponse portletResponse)RenderResponse portletResponse) portlet görüntülendiğinde portlet görüntülendiğinde tetiklenir.tetiklenir.

doEdit(RenderRequest portletRequest,doEdit(RenderRequest portletRequest,RenderResponse portletResponse)RenderResponse portletResponse) Portlet edit modunda çalışır.Portlet edit modunda çalışır.

processAction(ActionRequest request, ActionResponse response)processAction(ActionRequest request, ActionResponse response) Portlet’te bir event tetiklendiğinde çalışan methoddur.Portlet’te bir event tetiklendiğinde çalışan methoddur.

Page 25: Muharrem Taç muharremtac mtac@martisoft

PortletlerPortletler

public void doView(RenderRequest portletRequest,public void doView(RenderRequest portletRequest,RenderResponse portletResponse) throws PortletException, IOException {RenderResponse portletResponse) throws PortletException, IOException {WindowState state = portletRequest.getWindowState();WindowState state = portletRequest.getWindowState();portletResponse.setContentType("text/html");portletResponse.setContentType("text/html");

PortletPreferences pref = portletRequest.getPreferences();PortletPreferences pref = portletRequest.getPreferences();byte[] utfContentBytes = pref.getValue("content", null).getBytes();byte[] utfContentBytes = pref.getValue("content", null).getBytes();

String content = new String(utfContentBytes, "UTF-8");String content = new String(utfContentBytes, "UTF-8");portletRequest.setAttribute("content", content);portletRequest.setAttribute("content", content);

Map userInfo = (Map) Map userInfo = (Map) portletRequest.getAttribute(PortletRequest.portletRequest.getAttribute(PortletRequest.USER_INFOUSER_INFO););

PortletContext context = getPortletContext();PortletContext context = getPortletContext();PortletRequestDispatcher rd = PortletRequestDispatcher rd =

context.getRequestDispatcher("/index.jsp");context.getRequestDispatcher("/index.jsp");rd.include(portletRequest, portletResponse);rd.include(portletRequest, portletResponse);

}}

Örnek Görünüm (doView)Örnek Görünüm (doView)

Page 26: Muharrem Taç muharremtac mtac@martisoft

PortletlerPortletlerUygulama EklemeUygulama Ekleme

Page 27: Muharrem Taç muharremtac mtac@martisoft

Liferay Liferay DökümantasyonuDökümantasyonu

Page 28: Muharrem Taç muharremtac mtac@martisoft

Liferay DökümantasyonuLiferay Dökümantasyonu

Son derece açık anlaşılır bir dökümantasyonu mevcut.Son derece açık anlaşılır bir dökümantasyonu mevcut.Yeni başlayanlardan uzmanlara kadar ayrılmış seviye Yeni başlayanlardan uzmanlara kadar ayrılmış seviye dökümanları.dökümanları.

Page 29: Muharrem Taç muharremtac mtac@martisoft

Liferay DökümantasyonuLiferay Dökümantasyonu

Videolar ile görsel eğitimler (Lifecasts)Videolar ile görsel eğitimler (Lifecasts)

Page 30: Muharrem Taç muharremtac mtac@martisoft

TeşekkürlerTeşekkürler