Jumat, 06 Mei 2011

CruiseControl

CruiseControl

CruiseControl is both a continuous integration tool and an extensible framework for creating a custom continuous build process. It includes dozens of plugins for a variety of source controls, build technologies, and notifications schemes including email and instant messaging. A web interface provides details of the current and previous builds. And the standard CruiseControl distribution is augmented through a rich selection of 3rd Party Tools.
builddetail
CruiseControl is written in Java but is used on a wide variety of projects. There are builders supplied for AntNAntMavenPhingRake, and Xcode, and the catch-all exec builder that can be used with any command-line tool or script.
CruiseControl is open source software and is developed and maintained by a group of dedicated volunteers. CruiseControl is distributed under a BSD-style license.


Bisnis Open Source

Artikel ini, tidak seperti biasanya, ditulis berdasarkan request oleh teman saya. Selain itu, juga ada thread di milis JUG Indonesia yang membahas tentang bisnis open source. Di sana saya memberikan sedikit komentar yang secara singkat serupa dengan apa yang akan dijelaskan di sini.
Beberapa tahun belakangan ini, gema open source mulai ramai di dunia. Banyak orang yang tadinya skeptis dengan ide software gratis, mulai mencoba peruntungannya di dunia yang buka-bukaan ini. Banyak juga orang (salah satunya saya) yang bergembira dan sangat mendukung open source, terutama karena ke’gratis’annya semata.
Tidak kurang dari perusahaan besar di dunia seperti OracleIBMSun, dan masih banyak yang lainnya, merilis aplikasi mereka yang berharga jutaan dolar secara open source atau ‘gratis’.
Open source tidak selalu gratis, walaupun biasanya begitu. Dan gratis juga tidak selalu berarti open-source. Untuk menyederhanakan urusan, yang akan kita bahas di sini adalah software gratis. Terlepas dari apakah software tersebut open source atau tidak.
Orang-orang pun mulai bertanya, “Apa tidak rugi melepas aplikasi secara gratis? Dari mana keuntungannya? Padahal untuk membuat software tersebut, telah banyak biaya yang dikeluarkan.” Dan masih banyak lagi pertanyaan sejenis.
Tapi yang jelas, mereka tidak menjadi rugi karena melepas aplikasinya. Tindakan ini tentunya sudah didahului dengan kalkulasi bisnis yang matang dan tidak semata ikut-ikutan trend open source atau tiba-tiba menjadi ‘baik hati’ terhadap negara ketiga/miskin (misalnya, Indonesia). Nah, sekarang mari kita lihat, dari mana profitnya.
Setidaknya ada beberapa modus operandi penggunaan strategi gratis untuk perusahaan, sepanjang pengetahuan saya:
  1. RND
  2. Teaser product
  3. Strategi Produk Komplementer
  4. By product
  5. Pendukung core business
  6. Sebagai produk utama
Mari kita lihat satu per satu.
Disclaimer: semua yang saya tulis di sini merupakan pendapat pribadi saya, atas pengamatan tentang penggunaan strategi gratisan, yang tidak terbukti kebenarannya. Tidak ada pernyataan resmi dari perusahaan yang disebut di sini tentang strategi gratisnya. Silahkan tulis komentar anda di bawah kalau setuju/tidak setuju dengan pendapat saya ini.

Research and Development

Strategi ini digunakan oleh RedHat. Mereka membuat project open source Fedora sebagai lini depan riset Linux. Teknologi yang dihasilkan di project Fedora kemudian digunakan di lini produk komersilnya Red Hat Enterprise Linux. Dengan menggunakan project open source sebagai divisi RND, Red Hat mendapat keuntungan dari kontribusi tenaga kerja gratisan (baca: sukarelawan) baik di posisi developer, tester, dokumenter, public relation (dalam bentuk komentar positif, testimoni, word of mouth), dan juga technical writer (blog membahas penggunaan Fedora, support forum, mailing list, dsb). Seperti kita lihat di sini, sebenarnya Red Hat mendapat keuntungan besar, setidaknya dari sisi payroll dan marketing, dengan menggunakan strategi open source.
Latihan buat pembaca, sebutkan contoh lain perusahaan yang menggunakan open source sebagai divisi RND.

Teaser Product

Promosi produk yang terbaik adalah dengan cara memberikan produk tersebut ke konsumen, dan berharap mereka puas dan bercerita kepada teman-temannya (yang diharapkan akan membeli produk tersebut). Strategi ini digunakan Oracle pada saat mereka melepas produk Oracle 10g Express Edition. Harapannya adalah, dengan menggunakan produk gratis tersebut:
  1. Lebih banyak orang yang familiar dengan produk Oracle
  2. Pengguna merasa puas atau sudah terlalu terbiasa (baca: kecanduan) dengan Oracle
  3. Pada suatu saat, pengguna gratisan tersebut merasa kurang dengan fitur yang ada, dan akan membeli versi berbayarnya
  4. Jika pengguna gratisan diminta rekomendasi oleh bosnya/temannya, mereka akan merekomendasikan Oracle, karena itulah produk yang mereka kuasai, dan lagipula bukan mereka yang akan membayarnya.
Strategi pemasaran ini lebih efektif daripada memasang iklan di media. Banyak orang (termasuk saya) yang sudah sangat bosan dengan iklan, sehingga ada fitur ‘autoskip’ di otak saya yang secara otomatis menutup popup iklan, bahkan sebelum gambarnya selesai loading. Bahkan untuk kasus ekstrim, banyak orang mau bersusah payah yang memasang filter iklan seperti Adblock atau no-ads.pac untuk melucuti media dari semua iklan.
Dengan menggunakan ‘orang betulan’ yang tulus dan jujur untuk merekomendasikan produknya, lebih besar kemungkinan produk akan dibeli.

Strategi Produk Komplementer

Ada kalanya perusahaan menggratiskan suatu aplikasi karena aplikasi tersebut adalah komplementer dari produk utamanya. Contohnya adalah Acrobat Reader.
Waktu kita belajar di SMP dulu, kita belajar tentang produk substitusi dan komplementer. Produk substitusi adalah produk yang dapat menggantikan produk lain. Misalnya, Indomie adalah produk substitusi Mi Sedap.
Sedangkan produk komplementer adalah produk yang saling melengkapi dengan produk lain. Seperti yang sering kita lihat di tivi, salah satu iklan tag linenya adalah, “Apapun makanannya, minumnya tetap … (produk XXX)”. Nampaknya produsen minuman tersebut berusaha serakah dengan menjadikan produknya sebagai komplementer untuk semua makanan padat.
Acrobat Reader, adalah komplementer dari Acrobat Distiller. Dengan menggratiskan Reader, Adobe berharap penjualan Distiller akan meningkat. Sepertinya strategi ini cukup jitu, sehingga PDF bisa jadi standar format dokumen di internet.
Lebih lanjut tentang penggunaan strategi produk komplementer ini dijelaskan oleh Joel Spolsky. Silahkan baca sendiri di websitenya.

By Products

By products artinya produk sampingan. Misalnya kita membuka usaha jualan kelapa parut di pasar, kita akan mendapatkan banyak sekali air kelapa sebagai limbah. Mereka yang jeli akan segera beternak jamur di dalam air kelapa tersebut dan segera membuka lini produk baru, yang lebih tenar disebut dengan Nata de Coco.
Hal yang sama dilakukan oleh Martin Fowler dan gerombolannya. Bisnis utama mereka adalah software development dan konsultasi bagi perusahaan software development yang lainnya. Sebagai mana konsultan manajemen pada umumnya, mereka juga berjualan jargon. Salah satu jargon yang mereka perdagangkan adalah Continuous Integration. Ini tidak lain adalah istilah keren dari kompile sering-sering dan test sampai capek. Menyuruh programmer kompile lima kali sehari dan testing sepuluh kali sehari kemudian menulis hasilnya dalam format HTML adalah cara cepat untuk membuat programmer pensiun dini alias resign. Oleh karena itu, mereka membuat program kecil yang bisa melakukan kegiatan tersebut secara terjadwal dan terus menerus. Sehingga jargon Continuous Integration bisa dijual dengan sukses.
Program kecil tersebut adalah Cruise Control. Dapat Anda peroleh secara gratis di SourceForge.
Perhatikan di sini bahwa dagangan utama mereka adalah proses, bukan produk. SehinggaCruise Control tersebut adalah by product belaka. Sama seperti ‘nata de coco’. Karena bukan produk utama, tidak ada kerugian dari melepas aplikasi tersebut secara gratis. Keuntungannya, para calon prospek akan berpersepsi bahwa Martin Fowler masih punya mainan lain yang lebih menarik yang tidak digratiskan. Sehingga dengan senang hati mereka akan mempekerjakan dia dan pasukan magangnya dengan tarif selangit.

Pendukung produk utama

Framework favorit saya, Spring Framework adalah contohnya. Produk utama [Interface 21], perusahaan sponsor Spring Framework, adalah perusahaan software development. Berbagai perusahaan besar di dunia mempercayakan pengembangan aplikasi bisnisnya pada Interface 21. Jadi, produk utama Interface 21 adalah software development. Dalam mengembangkan aplikasi pesanan client, Interface 21 membutuhkan framework berkualitas tinggi dan berarsitektur bagus. Di situlah peranan project Spring Framework, sebagai produk pendukung aktivitas bisnis Interface 21.

Produk Utama

Ada juga beberapa perusahaan yang menjadikan aplikasi gratisnya sebagai produk utama. Lalu datang pertanyaan, “Kalau produk utama digratiskan, dari mana dapat uangnya?”. Ada beberapa jalur lain di luar penjualan software: training, buku, dan customization. Jalur ini ditempuh JBoss dan Hibernate. Dokumentasi utama JBoss tidak gratis. Kita harus membeli dengan sistem berlangganan di websitenya.
Hibernate, mendapat pemasukan dari penjualan buku. Pembuatnya, Gavin King dan Christian Bauer mengarang buku yang bagus sekali, Hibernate in Action. Isinya menjelaskan desain aplikasi pada umumnya, dan penggunaan framework Hibernate. Dengan semakin banyaknya pengguna Hibernate, buku dan training akan semakin laku.
PlaySMS dan PlayBilling, mendapat pemasukan dari customization. Para pelanggan seringkali membutuhkan fitur khusus yang belum ada di rilis open source. Untuk itu, mereka membayar developer untuk menambahkan fitur yang dibutuhkan. Siapa yang lagi yang lebih berkompeten menulis tambahan fitur selain pengembang aslinya?
Demikianlah uraian tentang bisnis open source. Jadi, hilangkan ilusi bahwa perusahaan besar sekarang menjadi dermawan, karena memberikan aplikasinya secara gratis. Ada kepentingan pemegang saham di baliknya, yang tentu saja, tidak mau rugi.
Walaupun demikian, kita lihat ada situasi win-win di sini. Pengguna diuntungkan dengan adanya software gratis. Perusahaan juga diuntungkan dari promosi gratis, tenaga sukarela, dan berbagai keuntungan lainnya.
Oleh karena itu, mari gunakan aplikasi gratis. Kalo bisa gratis, kenapa harus bayar? Kalo ada yang gratis, kenapa masih membajak?

WebSphere Portal dan Application Server

Pengertian Umum
http://www.meinsoftlab.co.cc/2010/09/standalone-server.html
Sebuah server standalone adalah jenis server yang bukan bagian dari infrastruktur jaringan yang lebih besar seperti Active Directory domain. Dalam pengertian umum, server mandiri memberikan layanan kepada klien tanpa bergantung pada sumber-sumber eksternal, termasuk otentikasi. Namun, dalam Windows Server System , server dapat menjadi Domain Controller , server Anggota (bergabung ke sebuah domain ), atau server standalone (bergabung ke workgroup ). Oleh karena itu, server tunggal yang menjadi tuan sebuah domain Active Directory akan dianggap sebagai Domain Controller server dan tidak mandiri.

Pada umumnya pengabungan LAN sebelumnya hanya memiliki satu server saja, sehingga user tidak mengalami kesulitan untuk mencari/menempatkan file-file printer, dan sumber daya lainnya untuk berbagai pakai (share). NetWare 2.x dan 3.x mempunyai sistem operasi yang domain pada LAN yang kecil dan secara statistik menujukan rata-rata jaringan novell 2.x dan 3.x terdiri dari server tunggal dan 30 server, atau beberapa workstation.


File-file dapat ditemukan dengan menggunakan perintah DIR pada DOS, dan printer dapat ditentukan sebelumnya dari daftar. Dalam banyak hal, lingkungan user LAN telah dikonfigurasi sebelumnya untuk para user oleh administator LAN. User memperoleh akses pada printer tertentu, file akses yang telah ditentukan, dan user tidak perlu banyak mengetahui LAN untuk menggunakannya secara efektif.

Penambahan server kedua dapat menimbulkan kesulitan yang sangat berarti, karena masing-masing server stand-alone mengelola daftar user dan sumber dayanya sendiri-sendiri, pada ilustrasi gambar diatas server A adalah host untuk aplikasi WordPerfect, lost 1-2-3, dan microsoft Access server b adalah host untuk email perusahan, aplikasi akuntansi, ddan database sales, user-user yang membutuhkan akses database sales dan menggunakan aplikasi harus mengambil aaccount pada kedua server tersebut. Masing-masing user tersebut harus dibuat da n dikelolah secara terpisah. Padahal user acount hanya berada pada satu data saja.
Kesulitan yang terjadi adalah berasal dari user standpoitnt, dimana user harus log on dan mengelolah password pada masing-masing server secara terpisah. Adminitrator jaringan dengan beberapa server stand alone digunakan untuk mensikrokan kembali password user pada masing-masing server.

User-user juga mempunyai masalah dengan multiserver stand alone. Untuk menggunakan printer, user harus mengetahui mana host server printer untuk mengakses file-file program, user harus mengetahui server yang mengolah file tersebut. Kecuali user memperoleh kemudahan fasilitas tool sehingga user dapat dengan mudah mencari layanan-layanan sumber daya akan tetapi beberapa kemampuan jaringan mengalami kesulitan untuk mengakses sumber daya.

Stand-alone server topology

Skenario yang berdiri sendiri berbeda dari server-server tunggal sejak database, LDAP server, dan perangkat lunak server Web yang diinstal pada server fisik yang berbeda dari IBM WebSphere ® ® Portal. Konfigurasi ini memungkinkan Anda untuk mendistribusikan perangkat lunak dalam jaringan Anda dan karenanya mendistribusikan beban pengolahan.

Untuk konfigurasi yang berdiri sendiri, Anda dapat menggunakan yang ada, didukung database dalam jaringan Anda dan yang ada, didukung direktori LDAP. Anda dapat mengkonfigurasi IBM WebSphere Portal untuk mengotentikasi dengan server LDAP. Ilustrasi berikut menampilkan topologi umum untuk server yang berdiri sendiri. Server HTTP, (juga disebut sebagai server Web) dipasang di server dalam jaringan yang dilindungi. LDAP server dan database server juga diinstal pada server yang berbeda. WebSphere Portal dan Application Server WebSphere diinstal pada server yang sama.


Ant build tool cross platform

Apache ant

Pada saat membaca tutorial dari pak endy (artivisi) saya menemukan statement dari pak endy yaitu "Ant adalah perangkat yang wajib dikuasai oleh programmer Java." maka saya searching di google dan menemukan langsung websitenya.Dan saya juga menemukan artikel bagus dihttp://bambangpdp.wordpress.com/2009/09/29/apache-ant-memahami-fungsi-dan-dasar-penggunaan-build-tool/#comment-87

silahkan dibaca...

Tentang Apache Ant dan Build Tool
Apache Ant adalah software berbasis Java yang digunakan untuk keperluan build tool. Sebagai build tool, tugas utama dari Ant adalah untuk menyediakan sumber daya dan melaksanakan proses yang memungkinkan membangun suatu software dari bentuk source code menjadi aplikasi yang siap didistribusikan atau bahkan telah diinstall pada remote server. Meskipun definisi tersebut kelihatannya sederhana, kita akan melihat bahwa Ant mempunyai banyak sekali tasks yang bisa digunakan untuk berbagai keperluan sesuai dengan tujuan utama dari build tool. Ada banyak build tool yang tersedia, beberapa diantaranya adalah build tool yang bersifat spesifik untuk sistem operasi tertentu. Beberapa contoh dari build tool, diantaranya adalah:
  • GNU Make (ingat siklus ./configure, make, make install)
  • Jam
  • rake (untuk Ruby), dan lain-lain
Tulisan ini tidak untuk membandingkan berbagai build tools yang tersedia, tetapi lebih ke arah bagaimana memahami posisi Ant dan bagaimana kita bisa menggunakan Ant untuk keperluan mempermudah membangun software.
Ant merupakan software untuk keperluan build tool yang bersifat cross platform, bisa digunakan pada berbagai sistem operasi yang mendukung Java. Meskipun demikian, pembahasan dalam tulisan ini akan menggunakan Linux. Jika anda menggunakan Windows, silahkan sesuaikan dengan sistem operasi anda (hanya jika diperlukan). Selama tidak menggunakan fitur spesifik dari sistem operasi yang bersangkutan (diantaranya dengan tag ), maka pembahasan ini bersifat cross platform.
Mengapa Harus Menggunakan Build Tool?
Build tool tidak diperlukan jika software yang akan kita bangun sangat sederhana (seperti misalnya hanya menampilkan satu atau beberapa baris tulisan) dan kita tidak keberatan untuk menuliskan dan mencantumkan berbagai dependencies dari software tersebut (misalnya berbagai file jar yang kita perlukan). Jika aplikasi yang kita bangun relatif kompleks, melibatkan banyak dependencies, dengan struktur direktori tertentu, serta memerlukan banyak eksekusi atau menjalankan tools (misalnya jar, rmic, javac, bzip2, dan lain-lain), maka kita memerlukan build tool untuk meng-”otomatiskan” proses membangun (compile, test, run, deploy) software tersebut. Anda bisa membayangkan sendiri jika harus mengetikkan berpuluh-puluh baris untuk siklus compile, test, run, deploy jika tidak menggunakan build tool.
Instalasi Apache Ant
Ant adalah software bebas dan mempunyai lisensi ASF (Apache Software Foundation). Ant bisa diperoleh di http://ant.apache.org. Versi terakhir saat tulisan ini dibuat adalah versi 1.7.1. Download distribusi Ant seperti berikut ini:
[bpdp@bpdp-arch ant]$ ls -la
total 7484
drwxr-xr-x  2 bpdp users    4096 2009-09-01 03:08 .
drwxr-xr-x 26 bpdp users    4096 2009-09-19 17:37 ..
-rw-r--r--  1 bpdp users 7641928 2008-07-09 16:19 apache-ant-1.7.1-bin.tar.bz2
[bpdp@bpdp-arch ant]$
Asumsi:
  • JDK telah terinstall dan JAVA_HOME telah di-set.
  • Ant akan diinstall di direktori $HOME/software/
Berikut adalah langkahnya:
  1. $ cd software
  2. $ tar -xjvf apache-ant-1.7.1-bin.tar.bz2
Hasilnya:
[bpdp@bpdp-arch software]$ pwd
/home/bpdp/software
[bpdp@bpdp-arch software]$ ls -la apache-ant-1.7.1/
total 276
drwxr-xr-x  6 bpdp users   4096 2008-06-27 12:04 .
drwxr-xr-x 25 bpdp users   4096 2009-09-28 10:05 ..
-rw-r--r--  1 bpdp users    126 2008-06-27 12:04 INSTALL
-rw-r--r--  1 bpdp users  51380 2008-06-27 12:04 KEYS
-rw-r--r--  1 bpdp users  15289 2008-06-27 12:04 LICENSE
-rw-r--r--  1 bpdp users   1270 2008-06-27 12:04 NOTICE
-rw-r--r--  1 bpdp users   4119 2008-06-27 12:04 README
-rw-r--r--  1 bpdp users 146814 2008-06-27 12:04 WHATSNEW
drwxr-xr-x  2 bpdp users   4096 2009-09-04 10:23 bin
drwxr-xr-x  9 bpdp users   4096 2009-09-04 10:23 docs
drwxr-xr-x  3 bpdp users   4096 2009-09-04 10:23 etc
-rw-r--r--  1 bpdp users   7160 2008-06-27 12:04 fetch.xml
-rw-r--r--  1 bpdp users   4445 2008-06-27 12:04 get-m2.xml
drwxr-xr-x  2 bpdp users   4096 2009-09-04 10:23 lib
[bpdp@bpdp-arch software]$
Setelah itu, setting konfigurasi environment variable di $HOME/.bashrc sebagai berikut:
export ANT_HOME=/home/bpdp/software/apache-ant-1.7.1/
export PATH=$PATH:$ANT_HOME/bin
Setelah itu setiap kali login, shell sudah mengenali ant yang telah kita install. Jika telah terinstall dengan benar, hasil instalasi adalah sebagai berikut:
[bpdp@bpdp-arch software]$ ant -version
Apache Ant version 1.7.1 compiled on June 27 2008
[bpdp@bpdp-arch software]$
Jika ingin mengetahui lebih lengkap lagi, gunakan parameter -diagnostics.
Ant dan build.xml
Pada saat dijalankan, Ant akan mencari file build.xml pada direktori yang aktif. Jika tidak menemukan, Ant akana menampilkan pesan kesalahan berikut:
[bpdp@bpdp-arch software]$ ant
Buildfile: build.xml does not exist!
Build failed
[bpdp@bpdp-arch software]$
File build.xml merupakan file XML yang digunakan untuk mendeskripsikan proyek build yang akan dikerjakan oleh Ant. Contoh sederhana untuk mengkompilasi dan menjalankan program Java yang akan menampilkan string “Hello World” adalah sebagai berikut:
Struktur Direktori dan File
.
|-- build
|   `-- classes
`-- src
    `-- simpleant
        `-- HelloWorld.java
Catatan: Direktori simpleant ada di bawah src dan file HelloWorld.java ada di dalam direktori simpleant.
Asumsi: hasil kompilasi akan diletakkan di direktori build/classes.
Tanpa Apache Ant – Shell
$ javac -sourcepath src -d build/classes/ src/simpleant/HelloWorld.java
$ java -cp build/classes simpleant.HelloWorld
Hello World
$
Tanpa Apache Ant – jar
Untuk keperluan ini anda harus membuat file manifest terlebih dahulu (misalnya helloworld-manifest).
$ cat helloworld-manifest
Main-Class: simpleant.HelloWorld
$ mkdir build/jar
$ jar cfm build/jar/HelloWorld.jar helloworld-manifest -C build/classes/ .
$ java -jar build/jar/HelloWorld.jar
Hello World
$
Menggunakan Apache Ant
build.xml

  
    
  
  
    
    
  
  
    
    
      
        
      
    
  
  
    
  
Eksekusi ant dengan berbagai parameter adalah sebagai berikut:
[bpdp@bpdp-arch helloworld-with-ant]$ ant compile
Buildfile: build.xml
compile:
[mkdir] Created dir: /home/bpdp/kerjaan/src/java/helloworld-with-ant/build/classes
[javac] Compiling 1 source file to /home/bpdp/kerjaan/src/java/helloworld-with-ant/build/classes
BUILD SUCCESSFUL
Total time: 1 second
[bpdp@bpdp-arch helloworld-with-ant]$ ant jar
Buildfile: build.xml
jar:
[mkdir] Created dir: /home/bpdp/kerjaan/src/java/helloworld-with-ant/build/jar
[jar] Building jar: /home/bpdp/kerjaan/src/java/helloworld-with-ant/build/jar/HelloWorld.jar
BUILD SUCCESSFUL
Total time: 0 seconds
[bpdp@bpdp-arch helloworld-with-ant]$ ant run
Buildfile: build.xml
run:
[java] Hello World
BUILD SUCCESSFUL
Total time: 0 seconds
[bpdp@bpdp-arch helloworld-with-ant]$ tree .
.
|-- build
|   |-- classes
|   |   `-- simpleant
|   |       `-- HelloWorld.class
|   `-- jar
|       `-- HelloWorld.jar
|-- build.xml
`-- src
    `-- simpleant
        `-- HelloWorld.java
6 directories, 4 files
[bpdp@bpdp-arch helloworld-with-ant]$ ant clean
Buildfile: build.xml
clean:
[delete] Deleting directory /home/bpdp/kerjaan/src/java/helloworld-with-ant/build
BUILD SUCCESSFUL
Total time: 0 seconds
[bpdp@bpdp-arch helloworld-with-ant]$ tree .
|-- build.xml
`-- src
    `-- simpleant
        `-- HelloWorld.java
2 directories, 2 files
[bpdp@bpdp-arch helloworld-with-ant]$
Catatan: tree adalah perintah spesifik di Linux dan berfungsi untuk melihat struktur direktori dan file.
Lebih Lanjut dengan build.xml
Suatu file build.xml pada dasarnya mempunyai beberapa bagian inti yang terangkum di dalam tag … . Rinciannya adalah sebagai berikut:
  1. Project () digunakan untuk mendefinisikan proyek build.
  2. Target (), yaitu tujuan yang bisa dipanggil sebagai parameter dari Ant. Pada contoh build.xml diatas, terdapat target compile, run, dan clean. Pada target ini, didefinisikan task serta definisi-definisi lain untuk memastikan tercapainya target tersebut.
  3. Task (misalnya ), yaitu tugas tertentu yang akan dikerjakan oleh Ant dan biasanya merupakan suatu bagian dari Target untuk memungkinkan target tersebut tercapai.
  4. Properties (), yaitu pasangan nama dan nilai dari nama tersebut. Biasanya digunakan seperti halnya variabel. Lihat penggunaannya pada pembahasan di bawah.
File build.xml yang Fleksibel
File build.xml yang kita buat di atas adalah file yang menyebutkan lokasi file di seluruh badan file XML (hardcoded). Sebenarnya variabel-variabel seperti itu bisa kita atur menggunakan property dan setiap property yang didefinisikan bisa diakses menggunakan format ${namaproperty}. Berikut ini adalah hasil akhir dari file build.xml:
build.xml

  
  
  
  
  
  
    
  
  
    
    
  
  
    
    
      
        
      
    
  
  
    
  
  
  
Berikut adalah hasil dari perubahan file build.xml tersebut:
[bpdp@bpdp-arch helloworld-with-ant]$ ant clean
Buildfile: build.xml
clean:
[delete] Deleting directory /home/bpdp/kerjaan/src/java/helloworld-with-ant/build
BUILD SUCCESSFUL
Total time: 0 seconds
[bpdp@bpdp-arch helloworld-with-ant]$ ant run
Buildfile: build.xml
compile:
[mkdir] Created dir: /home/bpdp/kerjaan/src/java/helloworld-with-ant/build/classes
[javac] Compiling 1 source file to /home/bpdp/kerjaan/src/java/helloworld-with-ant/build/classes
jar:
[mkdir] Created dir: /home/bpdp/kerjaan/src/java/helloworld-with-ant/build/jar
[jar] Building jar: /home/bpdp/kerjaan/src/java/helloworld-with-ant/build/jar/HelloWorld.jar
run:
[java] Hello World
BUILD SUCCESSFUL
Total time: 1 second
[bpdp@bpdp-arch helloworld-with-ant]$
Kemana Setelah Ini?
Secara minimal, setidaknya pemrogram yang akan menggunakan Ant harus memahami masalah target, task, dan properties. Silahkan membuka manual yang merinci hal-hal tersebut. Banyak task telah disediakan. Untuk keperluan umum, biasanya telah tersedia task tertentu, misalnya untuk membuat dan mendeploy file .WAR. Cari pada manual Ant. Jika tidak ada, kemungkinan sudah ada pihak ketiga yang membuat task tersebut dan bisa diperoleh di Internet. Jika tidak, maka anda harus membuat sendiri task (jika perlu). Pengalaman penulis, task yang disediakan oleh Ant sudah cukup untuk keperluan development sehari-hari.
Penutup
Sumber utama dari tulisan ini diambil dari manual Apache Ant, bisa diakses dihttp://ant.apache.org/manual/ serta dari berbagai sumber lain dan pengalaman penulis sendiri. Indentasi pada tulisan ini tidak begitu bagus karena keterbatasan dari fasilitas. Silahkan disesuaikan sendiri.

J2SE


Sekilas Tentang Java2 Enterprise Edition (J2SE)

On Sunday, 3 October 2010, in Java, by nanggroe
Logo Java2 Enterprise Edition (J2SE)
J2EE adalah kumpulan teknologi yang cukup kuat dan berada diatas lingkungan J2SE. J2EE berbasiskan pada Java2 yang berusaha untuk menyediakan sebuah lingkungan aplikasi yang bersifat reliable dan stabil serta dapat dijalankan pada beberapa lingkungan sistem operasi.
Teknologi enterprise sebagai perkembangan dari lingkungan Java2 difokuskan pada pemenuhan antarmuka yang standar dimana aplikasi J2EE dapat menghasilkan sebuah aplikasi berbasis server yang tangguh (robust) dan tidak bergantung pada lingkungan sistem operasi yang digunakan.
Arsitektur J2EE dapat dilihat pada gambar dibawah ini.
Arsitektur J2EE
Arsitektur J2EE
J2EE server menyediakan 2 buah kontainer besar yaitu kontainer EJB dan kontainer web, dimana kontainer EJB digunakan untuk mengelola dan mengeksekusi enterprise bean yang juga disebut dengan bean dan kontainer web digunakan untuk mengelola dan mengeksekusi servlet sertaJavaServer Pages atau yang disebut juga dengan JSP.
Enterprise bean terdiri dari 3 jenis bean yang diantaranya adalah:
  • Session Bean
  • Entity Bean
  • Message Driven Bean
Package pada J2EE dapat berupa Enterprise Archive (EAR), Java Archive (JAR) yang merupakan kumpulan file dalam sebuah paket, dan Web Archive (WAR). Dimana EAR biasanya merupakan gabungan dari file-file JAR yang biasa digunakan oleh bean, sedangkan WAR biasa digunakan oelh servlet dan JSP.
J2EE memiliki beberapa tipe modul yang diantaranya adalah sebagai berikut:
  • EJB, terdiri dari file-file class dari enterprise bean dan deskriptor dari EJB deployment. EJB biasanya menggunakan package berupa JAR dengan menggunakan ekstensi .jar.
  • Web, seperti servlet dan JSP. Terdiri dari file-file class servlet atau file-file class yang dibutuhkan JSP, file gambar, file HTML, dan deskriptor dari web deployment. Package yang digunakan biasanya adalah WAR dengan ekstensi file .war.
  • Aplikasi Klien, terdiri dari file class klien dan deskriptor klien. Package yang biasanya digunakan adalah JAR dengan ekstensi file .jar.
Contoh-contoh modul bean dapat dilihat disini dan mengkopinya ke komputer anda. Didalam direktori tersebut, terdapat beberapa file pada direktori common yang diperlukan untuk melakukan kompilasi terhadap modul-modul bean, servlet, dan JSP yang akan dibuat dengan script asant, dengan path
j2eetutorial\examples\common,
j2eetutorial\examples\ejb\common, dan
j2eetutorial\examplesejb\commonweb
Direktori j2eetutorial\examples\common terdiri dari tiga file yaitu admin-password.txt, build, properties, targets.xml. Membuat komponen-komponen J2EE tidak terpaku pada contoh diatas, tetapi contoh diatas dapat dibuat sebagai contoh acuan.
Sekian…