Skip to content

Latest commit

 

History

History
80 lines (63 loc) · 4.41 KB

chapter-09.asc

File metadata and controls

80 lines (63 loc) · 4.41 KB

AspectJ Compiler/Weaver Kullanımı

AspectJ Compiler/Weaver (ajc) kendi işletim sisteminizde de manuel olarak kullanabiliriz. İlk olarak yapılması gereken işlem AspectJ projesinin adresine giderek son güncellemeleri içeren .jar dosyasını indirmek olacak (ör. aspectj-1.8.4.jar ). İndirdiğiniz dosyayı en geleneksel yöntemle (çift tıklama) kurmaya başladığınızda sistemizinizde kurulu olan Java konumu istenecek. Bu konumu program otomatik olarak bulup içerisinde gösterecek. Eğer göstermezse konumu kendiniz girmeniz gerekmektedir (Java’nın sitemde kurulu olmasına dikkat ediniz). Kurulum bittikten sonra Path yolunuzu güncellemeniz gerekmektedir çünkü bu sayede ajc komutunu terminalde daha kolay kullanabileceksiniz.

PATH yoluna eklenmesi gereken konum kurulum işlemi bitiminde de size açıklanacak. Örnek olarak aspectj 1.8’in yüklü olduğu sistemdeki konumu böyle olabilir : /home/hakan/aspectj1.8/bin. Gerekli konumu da PATH yoluna ekledikten sonra terminalde yapacağınız versiyon öğrenme bilgisiyle artık rahatlıkla AspectJ Compiler sistemde kullanılabilir.

$ ajc -version

En basit komutlar ile bir AspectJ projesini derlemek için gerekli komutlar şu sırada terminalde girilmelidir:

$ ajc [-option1, -option2, .. , -optionN] [file1, file2, .. , fileN]

Örneğin bölüm 7’de gösterilen AspectJ 8 destekli Maven projesini kendimiz el yordamıyla çalıştıralım:

Maven projesini ajc ile manuel derleme:
$ cd MaJ/
$ ajc -1.8 -encoding UTF-8 -classpath home\hakan\aspectj1.8\lib\aspectjrt.jar -d targetclasses src\mainjavacomkodcuappdataBrand.java src\main\java\com\kodcu\app\data\Data.java src\main\java\com\kodcu\app\devices\Device.java src\main\java\com\kodcu\app\devices\Mobile.java src\main\java\com\kodcu\app\devices\NoteBook.java src\main\java\com\kodcu\app\devices\Tablet.java src\main\java\com\kodcu\app\imp\Printable.java src\main\java\com\kodcu\app\main\Startup.java src\main\java\comkodcu\app\phones\Phone.java src\main\java\com\kodcu\app\phones\SmartPhone.java src\main\aspect\com\kodcu\app\aspects\DataAspect.aj src\main\aspect\com\kodcuapp\aspects\SoftenedHandlerAspect.aj src\main\aspect\com\kodcu\app\aspects\SystemStructure.aj src\main\aspect\com\kodcu\app\aspects\TraceAspect.aj src\main\aspect\com\kodcuapp\aspects\ValidationAspect.aj

ajc komutları hakkında detaylı açıklamaları bu sayfadan öğrenebilirsiniz: AJC Komutlar ayrıca terminalde girdiğiniz ajc komutuyla ekrana desteklenen tüm komutlar da dökülecektir.

Gösterilen tüm komut demetinde options kısmı: [-1.8 -encoding UTF-8 -classpath home\hakan\aspectj1.8\lib\aspectjrt.jar -d target\classes] olan yere kadardır. Diğer kısımlar derlenmesi gereken dosya konumlarını göstermektedir: [ *.java ve *.aj ile biten tüm kaynak dosyalar].

Important
-classpath içerisinde yazılan .jar kütüphaneleri sistemin bağlılıklarına göre artabilir. Gösterdiğimiz Maven projesinde sistemin akışında ihtiyaç duyduğumuz dolayısıyla gereken bağlılık sadece AspectJ Runtime kütüphanesidir.

Tüm sistemdeki kodların derlenmesi bittiğinde mvn exec:java ile yaptığımız ifadeyi klasik olarak terminalde java komutuyla şu şekilde yaparak istenilen ekran çıktısı gözükür:

$ cd Maj\
$ java -cp home\hakan\aspectj1.8\lib\aspectjrt.jar;home\hakan\desktop\MaJ\target\classes com.kodcu.app.main.Startup

### Starting ###
The lenght of the tablet list : 4
## Display all the phones ##
Unknown ::9000
Nokia   ::3210
Nokia   ::3220
Samsung ::S5
Nokia   ::Lumia 730
Samsung ::Note 3
Huawei  ::Honor 4X
Acer    ::Liquid Z500
## Don't display phones being an unknown brand ##
Nokia   ::3210
Nokia   ::3220
Samsung ::S5
Nokia   ::Lumia 730
Samsung ::Note 3
Huawei  ::Honor 4X
Acer    ::Liquid Z500
## Match any Asus notebook, if present return true, otherwise false ##
true
## Show non-null tablet brands ##
Unknown
Samsung
Acer
## Show only non-null Samsung and Huawei devices
<Samsung>       :: (S5)
<Samsung>       :: (Note 3)
<Huawei>        :: (Honor 4X)
<Samsung>       :: (Galaxy Tab)
### See the trace file under MaJ
### Ending ###

Veya aynı çıktıyı şu şekilde de görebiliriz:

$ cd Maj\
$ cd target\classes\
$ java -cp home\hakan\aspectj1.8\lib\aspectjrt.jar;  com.kodcu.app.main.Startup
Tip
-cp, -classpath komutunun kısaltılmış versiyonudur.