Ant Task: Mempermudah Penggunaan Tomcat Manager


Tulisan kali ini masih berhubungan dengan sebelumnya. Aku sudah mencoba menggunakan
Tomcat Manager dengan cara mengakses langsung melalui URL-nya. Kali ini, aku akan menggunakan cara yang
lebih praktis, yaitu melakukan reloading melalui Ant.

Pada paket standar-nya, Ant menyediakan cukup banyak task, mulai dari yang umum dipakai hingga yang unik seperti
JspC untuk men-compile JSP (agar saat dipakai nanti, tidak perlu compile lagi) dan Telnet untuk membuka session
telnet. Bila task-task yang ada dirasa belum cukup, programmer boleh membuat sendiri task baru. Sebagai contoh,
Tomcat menyediakan task tambahan sehingga proses reloading dapat dilakukan melalui Ant.

Aku akan mencoba latihan membuat task baru di Ant. Misalnya, sebuah task sederhana yang akan menampilkan kotak
dialog ke user. Aku mulai dengan membuat class berikut:

import javax.swing.JOptionPane;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;

public class Latihan extends Task {

	private String pesan;
	
	public void setPesan(String pesan) {
		this.pesan = pesan;
	}
	
	public void execute() throws BuildException {
		JOptionPane.showMessageDialog(null, pesan);
	}
}

Setiap task harus merupakan turunan dari class Task atau sejenisnya. Fungsi setPesan
akan dipanggil oleh Ant saat mem-proses atribut dengan nama pesan. Kode utama untuk Task terletak
di execute().

Langkah berikutnya, aku men-jar class tersebut kemudian meletakkan di folder %ANT_HOME%\lib, dimana
%ANT_HOME% adalah lokasi yang berisi instalasi Ant.

Berikutnya, aku bisa menguji task buatanku dengan membuat build.xml yang isinya sebagai berikut:

<?xml version="1.0" ?>

<project name="Latihan" default="main">
  
  <taskdef name="latihanTask" classname="Latihan" />

  <target name="main">
     <latihanTask pesan="Hi, apa kabar?" />
  </target>

</project>

Aku menggunakan taskdef untuk mendefinisikan task baru. Saat dijalankan, Ant akan memunculkan
kotak dialog yang berisi tulisan “Hi, apa kabar?” dan sebuah tombol “OK”.

Sekarang, kembali ke topik, Tomcat menyediakan file catalina-ant.jar di folder lib yang
berisi tambahan task untuk Ant. Beberapa task dalam catalina-ant.jar yang berhubungan dengan Tomcat
Manager antara lain:

org.apache.catalina.ant.DeployTask
org.apache.catalina.ant.ListTask
org.apache.catalina.ant.ReloadTask
org.apache.catalina.ant.ResourcesTask
org.apache.catalina.ant.RolesTask
org.apache.catalina.ant.StartTask
org.apache.catalina.ant.StopTask
org.apache.catalina.ant.UndeployTask

Berikut ini adalah contoh build.xml yang memanfaatkan task tambahan dari Tomcat:

<property name="url" value="http://localhost:8080/manager"/>
<property name="username" value="snake"/>
<property name="password" value="solidsnake"/>

<property name="task" value="/LatihanApacheTomcat-0.1" />
...
<taskdef name="deploy"    classname="org.apache.catalina.ant.DeployTask"/>
<taskdef name="reload"    classname="org.apache.catalina.ant.ReloadTask"/>
<taskdef name="undeploy"  classname="org.apache.catalina.ant.UndeployTask"/>
...
<target name="deploy" description="Install web application"
        depends="compile">
  <deploy url="${url}" username="${username}" password="${password}"
          path="${path}" localWar="file:\${build.home}" />
</target>

<target name="reload" description="Reload web application"
        depends="compile">
  <reload  url="${url}" username="${username}" password="${password}"
          path="${path}"/>
</target>

<target name="undeploy" description="Remove web application">
  <undeploy url="${url}" username="${username}" password="${password}"
          path="${path}"/>
</target>

Pada build.xml di atas, target deploy akan men-deploy aplikasi web yang berada dalam struktur
exploded directory. Aku meletakkan hasil kompilasi langsung ke lokasi CATALINA_HOME/webapps, sehingga
setiap kali ada class yang aku ubah, aku tidak perlu me-restart server, hanya perlu menjalankan target
reload saja. Task tambahan tersebut pada dasarnya juga akan mengakses URL Tomcat Manager, melalui HttpURLConnection
(dapat dilihat dari source code-nya, jika men-download source Tomcat).

Karena aku menggunakan Eclipse, sebelum aku bisa menjalankan task tambahan, aku harus menambahkan catalina-ant.jar
pada classpath Ant milik Eclipse. Caranya adalah dengan membuka menu Window, Preferences, lalu
memilih Ant, Editor, Runtime. Pada tab Classpath, aku dapat menambahkan jar
tersebut.

Perihal Solid Snake
I'm nothing...

Apa komentar Anda?

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: