<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>extension &#8211; Halil UĞUR</title>
	<atom:link href="https://ugurhalil.com/tag/extension/feed/" rel="self" type="application/rss+xml" />
	<link>https://ugurhalil.com</link>
	<description>Yazılım; yaşam ve düşünce tarzıdır.</description>
	<lastBuildDate>Wed, 27 Jul 2022 23:45:12 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.3.2</generator>

<image>
	<url>https://ugurhalil.com/wp-content/uploads/2020/08/HuLogoRGB256-150x150.png</url>
	<title>extension &#8211; Halil UĞUR</title>
	<link>https://ugurhalil.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Hybris Dosya Yapısı, Extension Oluşturma: Bölüm 2</title>
		<link>https://ugurhalil.com/hybris-dosya-yapisi-extension-olusturma/</link>
				<pubDate>Tue, 04 Aug 2020 17:46:44 +0000</pubDate>
		<dc:creator><![CDATA[Halil UĞUR]]></dc:creator>
				<category><![CDATA[Hybris]]></category>
		<category><![CDATA[create extension]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[extension hybris]]></category>
		<category><![CDATA[extgen]]></category>
		<category><![CDATA[how to create extension]]></category>
		<category><![CDATA[hybris]]></category>
		<category><![CDATA[hybris ant command]]></category>
		<category><![CDATA[hybris e commerce]]></category>
		<category><![CDATA[hybris extension]]></category>
		<category><![CDATA[hybris nedir]]></category>
		<category><![CDATA[hybris sap]]></category>
		<category><![CDATA[modulgen]]></category>
		<category><![CDATA[sap hybris]]></category>

		<guid isPermaLink="false">https://ugurhalil.com/?p=222</guid>
				<description><![CDATA[<p>Hybris Bir önceki yazımızda Hybris&#8217;in ne olduğunu ve ne için kullanılabileceğine değinmiştik. Aynı zamanda Hybris&#8217;in B2C yapısına sahip e-ticaret sitesinin kurulumunu da gerçekleştirmiştik. (Bir önceki yazıya gitmek isterseniz buraya tıklayabilirsiniz.) Bu bölümde ise kendimize ait bir eklentiyi nasıl oluşturacağımızı ve bunu hybris projemize nasıl dahil edeceğimizi öğreneceğiz. Hybris&#8217;in Dosya Yapısı Eklenti oluşturmayı öğrenmeden önce dosyaların [...]</p>
<p>The post <a rel="nofollow" href="https://ugurhalil.com/hybris-dosya-yapisi-extension-olusturma/">Hybris Dosya Yapısı, Extension Oluşturma: Bölüm 2</a> appeared first on <a rel="nofollow" href="https://ugurhalil.com">Halil UĞUR</a>.</p>
]]></description>
								<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img src="https://ugurhalil.com/wp-content/uploads/2020/07/HybrisLogo-1.png" alt="Hybris" class="wp-image-215" srcset="https://ugurhalil.com/wp-content/uploads/2020/07/HybrisLogo-1.png 678w, https://ugurhalil.com/wp-content/uploads/2020/07/HybrisLogo-1-300x169.png 300w" sizes="(max-width: 678px) 100vw, 678px" /><figcaption>Hybris</figcaption></figure>



<p>Bir önceki yazımızda Hybris&#8217;in ne olduğunu ve ne için kullanılabileceğine değinmiştik. Aynı zamanda Hybris&#8217;in B2C yapısına sahip e-ticaret sitesinin  kurulumunu da gerçekleştirmiştik. (Bir önceki yazıya gitmek isterseniz <a href="https://ugurhalil.com/hybris-nedir-ve-nasil-kurulur/">buraya</a> tıklayabilirsiniz.) Bu bölümde ise kendimize ait bir eklentiyi nasıl oluşturacağımızı ve bunu hybris projemize nasıl dahil edeceğimizi öğreneceğiz.</p>



<h4>Hybris&#8217;in Dosya Yapısı</h4>



<p>Eklenti oluşturmayı öğrenmeden önce dosyaların nerede oluştuğu nasıl oluştuğu, hangi komutların kullanılması gerektiğini açıklamak gerekiyor.</p>



<figure class="wp-block-image size-large"><img src="https://ugurhalil.com/wp-content/uploads/2020/08/hybrisFolder.png" alt="Hybris base folder." class="wp-image-230" srcset="https://ugurhalil.com/wp-content/uploads/2020/08/hybrisFolder.png 886w, https://ugurhalil.com/wp-content/uploads/2020/08/hybrisFolder-300x68.png 300w, https://ugurhalil.com/wp-content/uploads/2020/08/hybrisFolder-768x175.png 768w" sizes="(max-width: 886px) 100vw, 886px" /><figcaption>Hybris base folder.</figcaption></figure>



<ul><li><strong>bin ===&gt;  </strong>Bu klasörün altında sizin veya Hybris geliştiricileri tarafından geliştirilen modül, eklenti, entegrasyon veya uygulamaların bulunduğu klasördür.</li><li><strong>config ===&gt;</strong> bin klasörü altında bulunan modül, eklenti, entegrasyon veya uygulamaların konfigürasyonlarını yapabileceğimiz bir klasördür.  Oluşturacağımız eklentileri bu dosya altında konfigüre ederek Hybris&#8217;e dahil edeceğiz. Burası ile haşir neşir olacağımız için şuan çok üstünde durmuyorum.</li><li><strong>data ===&gt;</strong>  İsminden de anlaşılacağı üzere veri klasörü olarak geçmektedir. Ne tür veriler diyecek olursanız da şöyle açıklamaya çalışayım; Verilerimizin tutulduğu HSQLDB veritabanı, Solr ile dökümante ettiğimiz veriler, medya olarak sakladığımız görüntü veya herhangi bir dosya uzantılı veriyi tutabilmemizi sağlayan klasördür. İlerde şöyle bir soru sorabilirsiniz &#8220;Bu var olan verilerin tutulduğu veritanabını görmek istiyorum nerede bu?&#8221; bunun cevabı bu klasörün altında olacaktır. </li><li><strong>log ===&gt;</strong> Hybris platformunda veya JDBC ile ilgili oluşan hata, bilgilendirme veya uyarı mesajların tutulduğu klasördür.</li><li><strong>roles ===&gt;</strong> Proje ilk oluşturulduğunda boş olarak gelmektedir ancak daha sonra roller oluşturulduğunda buraya o roller ile ilgili klasörler ve dosyalar oluşmaktadır.</li><li><strong>temp ===&gt;</strong> ant all komutu ile oluşan geçici dosyaların tutulduğu klasördür.</li></ul>



<p>Hybris dosyalarını kabataslak tanıdığımıza göre eklenti nedir ve nasıl oluşturulur aşamasına geçebiliriz. Eğer detaylı olarak hybris klasörlerini incelemek isterseniz <a href="https://cxwiki.sap.com/pages/viewpage.action?spaceKey=release5&amp;title=Directory+Structure+of+SAP+Hybris+Commerce">buradan</a> erişebilirsiniz.</p>



<h4>Eklenti Nedir ve Nasıl Oluşturulur?</h4>



<p>Eklentiyi tek kelime ile açıklamak hem kafa karışıklığına hemde ne olduğunu anlamakta sorun yaratacağından maddeler halinde eklentiler ile neler yapılabileceğini yazmayı tercih ettim ama özetle şöyle diyebilirim; hybris platformunu genişletmek amacıyla kullanılan program parçacıklarıdır.</p>



<ul><li>Hybris projesinde var olan program parçacıklarını değiştirmek için kullanılabilir. (hybriste var olan eklentinin ezilmesi ile oluşturulan eklenti tipleridir.)</li><li>Hybris tarafından sunulmayan yapılar oluşturmak için kullanılabilir.(tamamen geliştirici tarafından geliştirilen eklentilerdir.)</li><li>İki farklı yazılım arasında entegrasyon sağlamak için kullanılabilir.(Entegre olunacak olan yapı ile koordineli olarak geliştirilen eklentilerdir.)</li></ul>



<p>Eklentinin en önemli özellği projeden rahatlıkla çıkarılabilir ve tekrar takılabilir olmasıdır. (Burada iş yazılımcı tarafına düşüyor ve eklentinin bu amaçla geliştirilmesi gerektiğini bilmesi gerekiyor. Bu yüzden bağımlılıklara dikkat edip ona göre geliştirmesine yapmalıdır.) Eklenti projeden çıkarıldığı zaman herhangi ek bir geliştirme yapılmadan projenin eski yapısıyla çalışması mümkün olabilmelidr aksi taktirde iyi geliştirilen bir eklenti değildir.</p>



<p>Eklenti kavramını anladığımıza göre şimdi eklenti oluşturalım;  Öncelikle hybris platformumuzun kapalı halde olması gerekiyor böylece oluşturacağımız eklentiyi ekledikten sonra ant komuları ile tekrardan derleyip dosyaları oluşturduktan sonra başlatabileceğiz.</p>



<pre class="wp-block-code"><code>. ./setantenv.sh
ant extgen</code></pre>



<p>Yukarıdaki komutlar çalıştırıldıktan sonra karşımıza aşağıdaki gibi bir ekran çıkıyor.</p>



<figure class="wp-block-image size-large"><img src="https://ugurhalil.com/wp-content/uploads/2020/08/antextgen-1024x411.png" alt="Ant extgen command" class="wp-image-264" srcset="https://ugurhalil.com/wp-content/uploads/2020/08/antextgen-1024x411.png 1024w, https://ugurhalil.com/wp-content/uploads/2020/08/antextgen-300x120.png 300w, https://ugurhalil.com/wp-content/uploads/2020/08/antextgen-768x308.png 768w, https://ugurhalil.com/wp-content/uploads/2020/08/antextgen.png 1135w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Ant extgen command</figcaption></figure>



<p>Yukarıda bulunan resimde kırmızı ile işaretli olan kısım varsayılan olarak seçilmiş eklenti şablonunu göstermektedir, siz doğrudan enter tuşuna basarsanız bu eklenti şablonundan yeni bir eklenti oluşturmaya başlayacaktır. Sarı ile işaretli olan kısımlar ise hybris&#8217;in sizin için işe yarayacağını düşündüğü diğer eklenti şablonlarıdır. Biz şimdilik basit bir yapı ile ilerleyeceğimiz için varsayılan şablon ile devam ediyoruz.</p>



<figure class="wp-block-image size-large"><img src="https://ugurhalil.com/wp-content/uploads/2020/08/antextgen2-1024x417.png" alt="Ant extgen command" class="wp-image-267" srcset="https://ugurhalil.com/wp-content/uploads/2020/08/antextgen2-1024x417.png 1024w, https://ugurhalil.com/wp-content/uploads/2020/08/antextgen2-300x122.png 300w, https://ugurhalil.com/wp-content/uploads/2020/08/antextgen2-768x313.png 768w, https://ugurhalil.com/wp-content/uploads/2020/08/antextgen2.png 1134w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Ant extgen command</figcaption></figure>



<p>Enter tuşuna bastıktan sonra yukarıdaki resimde kırmızı ile işaretlenmiş kısımda eklentimize isim vermek için bizden bir isim bekliyor, ben eklentinin ismini <strong>hellohybris</strong> diye koyuyorum.(Eklentilere isim verilirken dikkat edilmelidir, oluşturulan bir eklentinin ismini değiştirmek oldukça zordur.) İsmi verdikten sonra enter tuşuna basıp devam ediyoruz.  </p>



<figure class="wp-block-image size-large"><img src="https://ugurhalil.com/wp-content/uploads/2020/08/antextgen3-1024x406.png" alt="Ant extgen command" class="wp-image-268" srcset="https://ugurhalil.com/wp-content/uploads/2020/08/antextgen3-1024x406.png 1024w, https://ugurhalil.com/wp-content/uploads/2020/08/antextgen3-300x119.png 300w, https://ugurhalil.com/wp-content/uploads/2020/08/antextgen3-768x305.png 768w, https://ugurhalil.com/wp-content/uploads/2020/08/antextgen3.png 1140w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Ant extgen command</figcaption></figure>



<p>Şimdide oluşturduğunuz eklenti için paket ismi vermemizi istiyor, ben <strong>com.ugurhalil.hellohybris</strong> diye koyuyorum.</p>



<figure class="wp-block-image size-large"><img src="https://ugurhalil.com/wp-content/uploads/2020/08/antextgen4-1024x412.png" alt="Ant extgen command" class="wp-image-270" srcset="https://ugurhalil.com/wp-content/uploads/2020/08/antextgen4-1024x412.png 1024w, https://ugurhalil.com/wp-content/uploads/2020/08/antextgen4-300x121.png 300w, https://ugurhalil.com/wp-content/uploads/2020/08/antextgen4-768x309.png 768w, https://ugurhalil.com/wp-content/uploads/2020/08/antextgen4.png 1143w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Ant extgen command</figcaption></figure>



<p>Paket ismi girildikten sonra eklenti oluşturma işlemini bitirmiş oluyoruz. Son gelinen ekranda size bu eklentinin nerede oluşturulduğu ve nasıl sisteme dahil edileceğinin bilgisini vermektedir. </p>



<h4>Oluşturulan Eklentinin Projeye Dahil Edilmesi</h4>



<p>İlk adımda <strong>&#8220;&lt;exten&#8230;&#8221; </strong> ile başlayan ifadeyi <strong>localextensions.xml </strong>dosyasına eklemenizi istiyor. Burada küçük bir noktaya değinmek istiyorum, size verilen &#8220;<strong>&lt;extension dir=&#8221;/home/halilugur&#8230;.. &#8220;</strong>  ifadesi, eklentinin bilgisayardaki tam dizinini belirterek veriyor. Bunun nedeni aynı isme sahip iki eklenti var ise birbirleri ile karışmasını önlemek amacı ile yapıyor, eğer o isimde sadece birtane eklentiniz var ise aşağıdaki şekilde kullanılması localextensions.xml dosyasının okunaklığı açısından daha verimli olacaktır. Örnek kullanım;</p>



<pre class="wp-block-code"><code>&lt;extension name='hellohybris' /></code></pre>



<figure class="wp-block-image size-large"><img src="https://ugurhalil.com/wp-content/uploads/2020/08/image.png" alt="localextensions file image" class="wp-image-277" srcset="https://ugurhalil.com/wp-content/uploads/2020/08/image.png 818w, https://ugurhalil.com/wp-content/uploads/2020/08/image-300x135.png 300w, https://ugurhalil.com/wp-content/uploads/2020/08/image-768x346.png 768w" sizes="(max-width: 818px) 100vw, 818px" /><figcaption>localextensions file image</figcaption></figure>



<p>Eklentiyi <strong>localextensions.xml</strong> dosyasına ekledikten sonra aşağıda bulunan tek satırlık komutu çalıştırıyoruz.</p>



<p><strong>hybrisProject/hybris/bin/platform</strong> klasörün altına giderek;</p>



<pre class="wp-block-code"><code>. ./setantenv.sh &amp;&amp; ant clean all &amp;&amp; ./hybrisserver.sh debug</code></pre>



<p>İşlemler bittikten sonra tarayıcınızı açıp aşağıdaki url&#8217;yi girin;</p>



<p><a href="https://electronics.local:9002/hellohybris/">https://electronics.local:9002/hellohybris</a>/</p>



<p>Hybris platformunu bir önceki yazımızda <strong>ant initialize</strong> çekerek hazır hale getirmiştik. Bu yüzden <strong>yeni eklediğimiz eklentinin logosu hybris tarafında oluşmadığı için arka tarafta hata fırlatıyor</strong> ve eklentimizin açılmamasına neden oluyor. </p>



<figure class="wp-block-image size-large"><img src="https://ugurhalil.com/wp-content/uploads/2020/08/image-2.png" alt="404 Server runtime exception" class="wp-image-320" srcset="https://ugurhalil.com/wp-content/uploads/2020/08/image-2.png 677w, https://ugurhalil.com/wp-content/uploads/2020/08/image-2-300x96.png 300w" sizes="(max-width: 677px) 100vw, 677px" /><figcaption>404 Server runtime exception</figcaption></figure>



<figure class="wp-block-image size-large"><img src="https://ugurhalil.com/wp-content/uploads/2020/08/logoError-1024x338.png" alt="Hybris logo not found exception." class="wp-image-281" srcset="https://ugurhalil.com/wp-content/uploads/2020/08/logoError-1024x338.png 1024w, https://ugurhalil.com/wp-content/uploads/2020/08/logoError-300x99.png 300w, https://ugurhalil.com/wp-content/uploads/2020/08/logoError-768x253.png 768w, https://ugurhalil.com/wp-content/uploads/2020/08/logoError-1536x506.png 1536w, https://ugurhalil.com/wp-content/uploads/2020/08/logoError.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Hybris logo not found exception.</figcaption></figure>



<p>Yukarıda bulunan resimdeki gibi bir hata alıyorsanız platformunuza <strong>ant initialize</strong> çekin daha sonra tekrar denediğinizde böyle bir sorun ile karşılaşmadığınızı göreceksiniz.</p>



<p>Platformu sıfırladıktan sonra tekrar url&#8217;yi test ettiğimizde karşımıza aşağıdaki gibi bir görüntü çıkmasını bekliyoruz.</p>



<figure class="wp-block-image size-large"><img src="https://ugurhalil.com/wp-content/uploads/2020/08/resultBrowser-1024x450.png" alt="Extension preview" class="wp-image-283" srcset="https://ugurhalil.com/wp-content/uploads/2020/08/resultBrowser-1024x450.png 1024w, https://ugurhalil.com/wp-content/uploads/2020/08/resultBrowser-300x132.png 300w, https://ugurhalil.com/wp-content/uploads/2020/08/resultBrowser-768x338.png 768w, https://ugurhalil.com/wp-content/uploads/2020/08/resultBrowser-1536x676.png 1536w, https://ugurhalil.com/wp-content/uploads/2020/08/resultBrowser.png 1839w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Extension preview</figcaption></figure>



<p>Eklentimiz artık özelleştirilebilir ve özellik eklenebilir duruma geldi. Son olarak eklentimizin dosya yapısına da göz atalım ve bu yazıyı sonlandıralım. </p>



<p>Eklentimizi <strong>bin/custom</strong> klasörü altında bulabiliriz. Bu klasör bizim oluşturuduğumuz eklentilerin veya ezdiğimiz hybris eklentilerin yer aldığı klasördür.  </p>



<figure class="wp-block-image size-large"><img src="https://ugurhalil.com/wp-content/uploads/2020/08/extensionFolder-1024x578.png" alt="Extension Folder" class="wp-image-310" srcset="https://ugurhalil.com/wp-content/uploads/2020/08/extensionFolder-1024x578.png 1024w, https://ugurhalil.com/wp-content/uploads/2020/08/extensionFolder-300x169.png 300w, https://ugurhalil.com/wp-content/uploads/2020/08/extensionFolder-768x434.png 768w, https://ugurhalil.com/wp-content/uploads/2020/08/extensionFolder.png 1045w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Extension Folder</figcaption></figure>



<ul><li><strong>classes ===&gt;</strong> derlenen java dosyaların bulunduğu klasördür.</li><li><strong>gnsrc ===&gt;</strong> hybris tarafından otomotik oluşturulan dosyaların bulunduğu klasördür.</li><li><strong>lib ===&gt; </strong>eklentimize ekstradan eklemek istediğimiz kütüphanlerin  klasörüdür.</li><li><strong>resources ===&gt;</strong> Kaynakların oluşturulduğu klasördür.</li><li><strong>src ===&gt;</strong> Java dosyaların bulunduğu klasördür.</li><li><strong>testsrc ===&gt;</strong> Oluşturduğumuz java sınıflarının test sınıflarını yazdığımız klasördür.</li><li><strong>web ===&gt;</strong> eklentimizin bir arayüzü var ise arayüzün geliştirilebilmesini sağlayan klasördür.</li><li><strong>.externalToolBuilders ve .settings</strong> <strong>===&gt; </strong>eclipse ile ilgili klasörlerdir.</li></ul>



<p>Klasör altında bulunan dosyaları daha sonra detaylı bir şekilde inceleyeceğiz ve her birinin ne işe yaradığına değineceğiz. Şimdilik hoşçakalın esenle kalın.</p>



<p>Bir sonraki hybris yazısında görüşmek üzere.</p>
<p>The post <a rel="nofollow" href="https://ugurhalil.com/hybris-dosya-yapisi-extension-olusturma/">Hybris Dosya Yapısı, Extension Oluşturma: Bölüm 2</a> appeared first on <a rel="nofollow" href="https://ugurhalil.com">Halil UĞUR</a>.</p>
]]></content:encoded>
										</item>
	</channel>
</rss>
