Showing posts with label grails. Show all posts
Showing posts with label grails. Show all posts

Monday, January 28, 2013

Tutorial Grails #4

Seri tutorial Grails ini lanjutan dari sebelumnya, dimana pembahasan kita masih seputar groovy. Kali ini kita akan membahas tentang :
  • Groovy Unit Testing
  • XML di Groovy
  • Expandos

Groovy Unit Testing

Sama seperti java, groovy mempunyai unit testing. Dimana kita tidak perlu men-download terpisah dan sudah terintegrasi dengan JUnit. Mari kita lihat contoh penggunaannya unit testing di groovy:
class RangeTest extends GroovyTestCase {

 def lowerCaseRange = 'a'..'z'
 def upperCaseRange = 'A'..'Z'

 void testLowerCaseRange() {
  assert 26 == lowerCaseRange.size()
  assertTrue(lowerCaseRange.contains('b'))
  assertFalse(lowerCaseRange.contains('B'))
 }

 void testUpperCaseRange() {
  assert 26 == upperCaseRange.size()
  assertTrue(upperCaseRange.contains('B'))
  assertFalse(upperCaseRange.contains('b'))
  }

 void testAlphaRange() {
   def alphaRange = lowerCaseRange + upperCaseRange
   assert 52 == alphaRange.size()
   assert alphaRange.contains('b')
   assert alphaRange.contains('B')
   }
}
      

cara menajalankan tinggal ketikkan groovy RangeTest di command line. Groovy Unit Testing di extend dari class GroovyTestCase dan setiap method menggunakan naming convention testXXX sebagai prefix.

XML di Groovy

Extensible Markup Language, biasa digunakan untuk persist atau share data di enterprise applications.

Kenapa harus XML ?

Karena XML adalah text-based, sudah ada standart dan sudah banyak yang framework atau libraries yang mendukung XML di berbagai platform. Mari kita compare pembuatan XML dengan java (complicated) dengan groovy (simple and elegant).
package com.yukibuwana.testing;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.w3c.dom.Element;

public class GenerateXML {

 /**
  * @param args
  * @throws ParserConfigurationException 
  * @throws TransformerException 
  */
 public static void main(String[] args) throws ParserConfigurationException, TransformerException {
  DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
  Document doc = builder.newDocument();
  
  Element todos = doc.createElement("todos");
  doc.appendChild(todos);
  
  Element task = doc.createElement("todo");
  task.setAttribute("id", "1");
  todos.appendChild(task);
  
  Element name = doc.createElement("name");
  name.setTextContent("Buy Beginning Groovy and Grails");
  task.appendChild(name);
  
  Element note = doc.createElement("note");
  note.setTextContent("Purchase book from Amazon.com for all co-workers.");
  task.appendChild(note);
  
  TransformerFactory tranFactory = TransformerFactory.newInstance();
  Transformer transformer = tranFactory.newTransformer();
  transformer.setOutputProperty(OutputKeys.INDENT, "yes");
  transformer.setOutputProperty(
    "{http://xml.apache.org/xslt}indent-amount", "2");
  
  Source src = new DOMSource(doc);
  Result dest = new StreamResult(System.out);
  transformer.transform(src, dest);
 }
}  

Mari kita lihat dengan groovy way

def writer = new StringWriter()
def builder = new groovy.xml.MarkupBuilder(writer)
builder.setDoubleQuotes(true)
builder.todos {
    todo (id:"1") {
        name "Buy Beginning Groovy and Grails"
        note "Purchase book from Amazon.com for all co-workers."
    }
}

println writer.toString()      

Lalu hasil dari kedua seperti ini
Simple XML

Expandos

Expando adalah class di groovy.util yang digunakan untuk dynamically expandable bean. Artinya, kita bisa menambahkan properties atau closure di saat runtime. Untuk lebih mudahnya, mari kita lihat contoh berikut ini :
class User {
    String firstName;
    String lastName;
}

def user = new User(firstName: "Yuki", lastName: "Buwana")

println user.firstName + " " + user.lastName

Disini kita membuat class User dengan properties firstName dan lastName diawal. Sekarang kita lihat jika kita menggunakan Expando class
def user = new Expando()

user.firstName = "Yuki"
user.lastName = "Buwana"

println user.firstName + " " + user.lastName      

Yoooi... Kita bisa menambahkan properties pada saat runtime. It's amazing.

Banyak hal yang baru di groovy, seperti :

  • MOP
  • Generate Text with Template
Yang tidak kita bahas disini. Sebagai referensi groovy ada disini atau buku Groovy in Action. Disana dibahas lebih mendalam dan lebih detail.

Untuk tutorial selanjutnya, kita akan memulai dengan Grails itu sendiri.

Friday, December 21, 2012

Tutorial Grails #1

Sebelum kita mulai dengan grails, mari kita bertanya dengan

APA ITU GRAILS ?

Grails adalah open source yang diperuntukan dalam pembuatan web application. Bahasa kerennya Web Application Framework. Grails menggunakan bahasa pemrograman groovy dan berjalan diatas JVM.

Sebelum kita memulai ada beberapa hal yang perlu di persiapkan, yaitu INSTALASI

Ada beberapa hal yang akan kita siapkan disini :

  1. Java
  2. Grails
  3. IDE

[ Java ]
Karena grails berjalan diatas JVM, Java harus di install terlebih dahulu. Untuk download java ada disini. Download sesuai dengan OS Environment kita masing-masing dan jangan lupa setting JAVA_HOME beserta PATH-nya.

[ Grails ]
Setelah kita meng-install java, kita lanjukan dengan instalasi pada grails. Download versi grail terbaru ada disini. Untuk proses instalasi grails sangatlah mudah, yaitu :

  1. Unzip file grails yang sudah kita download.
  2. Buat folder grails (mkdir grails) dan pindahkan file yang sudah kita unzip.
  3. Setting GRAILS_HOME beserta PATH-nya.
  4. Untuk membuktikan grails berhasil diinstall, ketik grails -version pada command line. Hasilnya adalah versi dari grail yang telah kita download.

[ IDE ]
Ada beberapa IDE yang bisa kita gunakan, yaitu :


  1. IntelliJ IDEA.
  2. Eclipse.
  3. NetBeans.
  4. TextMate.

Yang biasanya dipakai adalah GGTS (Groovy/Grails Tool Suites). GGTS adalah Eclipse yang didalam  sudah terinstall plug in Groovy dan Grails. Jadi kita tidak perlu install plug in tambahan. Download GGTS terbaru ada disini.

Setelah ini apa yang kita lakukan ?

TESTING GRAILS APPS

Caranya adalah

  1. Buka terminal dan ketik grails create-app demo.
  2. Setelah aplikasi terbentuk, masuk ke folder demo (cd demo).
  3. Ketik grails run-app untuk menjalankan aplikasi yang telah kita buat.
  4. Jalankan aplikasi melalui browser dengan alamat http://localhost:8080/demo