Tips Trik Eclipse, Spring, Dan Hibernate

Tips trick eclipse

Bingung nih dapat error seperti ini

Buildfile: /home/fuad/EclipseProject/DataCentre/build.xml

build:

[delete] Deleting directory /home/fuad/EclipseProject/DataCentre/war/WEB-INF/classes

[mkdir] Created dir: /home/fuad/EclipseProject/DataCentre/war/WEB-INF/classes

[copy] Copying 14 files to /home/fuad/EclipseProject/DataCentre/war/WEB-INF/classes

[javac] Compiling 19 source files to /home/fuad/EclipseProject/DataCentre/war/WEB-INF/classes

junit:

BUILD FAILED

/home/fuad/EclipseProject/DataCentre/build.xml:126: Could not create task or type of type: junit.

Ant could not find the task or a class this task relies upon.

This is common and has a number of causes; the usual

solutions are to read the manual pages then download and

install needed JAR files, or fix the build file:

– You have misspelt ‘junit’.

Fix: check your spelling.

– The task needs an external JAR file to execute

and this is not found at the right place in the classpath.

Fix: check the documentation for dependencies.

Fix: declare the task.

– The task is an Ant optional task and the JAR file and/or libraries

implementing the functionality were not found at the time you

yourself built your installation of Ant from the Ant sources.

Fix: Look in the ANT_HOME/lib for the ‘ant-‘ JAR corresponding to the

task and make sure it contains more than merely a META-INF/MANIFEST.MF.

If all it contains is the manifest, then rebuild Ant with the needed

libraries present in ${ant.home}/lib/optional/ , or alternatively,

download a pre-built release version from apache.org

– The build file was written for a later version of Ant

Fix: upgrade to at least the latest release version of Ant

– The task is not an Ant core or optional task

and needs to be declared using <taskdef>.

– You are attempting to use a task defined using

<presetdef> or <macrodef> but have spelt wrong or not

defined it at the point of use

Jadi kayaknya si ant tidak mengenali task “junit”. Ada dua kemungkinan memang versi antnya tidak mendukung yang kedua task junit membutuhkan library yang tidak ada.

Untuk yang pertama di komputer saya tidak mungkin karena sebelum di coba di eclipse, saya telah coba dari konsol dan berhasil. Kemnugkinan yang kedua saya buka opsi konfigurasi ant pada eclipse. Yaitu di

Run–>External Tools–>External Tools

Tampil Dialog, pilih file build xml project saya, lihat tab classpath dan memang tidak ada library junit.jar. Trus saya kopi file junit.jar ke folder WEB-INF/lib. Trus saya buka kembali dialog yang tadi.

Ke Tab classpath. Pilih User Entries. Klik tombol Add Jars, trus pilih file junit.jar dan OK, klik Apply, dan Run

(Success)

Spring-Tag-Error

Cek validitas DTD(Document Type Definition ) di file file konfigurasi xml

Hibernate Query By Example

pada Hibernate Query By Example. Primary key akan diabaikan

Riba Dan Jual Beli

Secara sederhana riba adalah tambahan uang atau barang untuk suatu transaksi yang disyaratkan sejak awal. Dari pengertian ini maka bisa disimpulkan bahwa riba sama dengan bunga. Islam tidak membedakan kedua jenis istilah ini, tetapi menurut ilmu ekonomi barat kedua istilah ini berbeda. Menurut mereka riba adalah tambahan uang yang berlipat ganda sedang bunga adalah tambahan uang yang lebih sedikit dari riba. Untuk riba yang berlipat ganda hampir semua peradaban menentangnya, tapi tidak dengan bunga.

Di dalam islam riba dalam bentuk apapun diharamkan sedang jual beli dihalalkan mengapa demikian, karena pada jual beli “barang” yang diterima penjual dan pembeli senilai sedang pada riba tidak. Misal antara seorang penjual bakso dengan pembelinya. penjual bakso membeli bahan bahan untuk membuat bakso katakanlah seharga 200 lalu ia menjualnya kepada pembeli seharga 300. ini tidak dikatakan riba walaupun ada tambahan yang disyaratkan. Karena harga bahan bakso + pengolahan = harga jual bakso. Sedang pada riba jelas uang yang dipinjamkan > uang yang dikembalikan.

Selain itu pada Jual Beli penjual memiliki resiko kerugian jika barang yang ia bayarkan tidak laku. Tidak dengan bunga dimana rugi atau untung jumlah uang yang dibayarkan akan tetap sama.

Pada saat riba dan bunga diperlakukan sebenarnya akan terjadi penggalian jurang yang lebih lebar antara golongan miskin dengan kaya. Bayangkan saat seorang kaya yang mendepositokan uangnya ke bank lalu bank akan meminjamkan uangnya pada seorang miskin yang sedang membangun sebuah perusahaan. Si kaya hanya santai santai di rumah sedang si miskin harus bekerja keras. Apapun yang terjadi pada usaha si miskin untung atau rugi ia harus tetap membayarkan bunga pada bank yang akan di berikan pada si kaya. Hal ini tentunya keterlaluan padahal apa yang dimasukkan si kaya ke bank adalah merupakan kekayaan yang lebih dari kebutuhan pokoknya. Untuk kebutuhan produktif saja yang masih mungkin memberikan keuntungan bunga sudah keliahatan salahnya, apalagi untuk kebutuhan konsumtif. Contoh yang jelas bantuan dari negara negara kaya ke negara negara miskin seperti Indonesia. Bagaimana bisa negara yang untuk kebutuhan sehari harinya saja minjam, bisa membayar utang yang sangat besar. Hasilnya bisa dilihat negara miskin makin miskin negara kaya makin kaya.

Eclipse Problem

Dua hari yang lalu saya coba make Fedora Eclipse dengan Java Virtual Machine Sun Java sangat cepat memang, tapi sayang proprietary jadi saya coba ganti pakai yang free. Pertama coba SableVM(http://www.sablevm.org) tapi sangat lambat trus coba punyanya GNU, GIJ lebih cepat dari SableVM tapi tetap lebih lambat dari Sun Java. Tapi waktu windownya sudah terbuka jadi hang kenapa ya..? trus coba coba liat di lognya ndak ada apa apa.

Coba buka Eclipse pake root, ternyata sama aja tetap saja hang. Ingat ingat beberapa hari yang lalu sempat install plugin webtools. Coba hapus semua plugin baru yang kuinstall, akhirnya Eclipse ku jalanyya lancar. Tapi masih penasaran masak pake Sablevm bisa lancar tapi pake GIJ tidak lancar. Liat liat opsionnya java ada opsion verbose:class. Jadi aku coba jalanin Eclipse dengan Sablevm dan GIJ dengan opsion verbose ini. ternyata kalau kita jalanin Eclipse pake GIJ itu yang diload library Java yang native sedang kalo pake GIJ tidak native pantas dengan GIJ Eclipse lebih cepat dari GIJ.

BenchMark Java dan Mono

Hari ini lagi pengen benchmark jva virtual machine dengan mono(.NET virtual machine). Untuk benchmark ini saya cuma pake algoritma mergesort. Supaya perbandingannya kelihatan data yang dipake random dari 400 data sampai 409600 data

Benchmark ini dilakukan di AMD Athlon Xp 2000+, RAM 512MB, pada OS Fedora Core 5

Hasil:

Lihat Grafik Benchmark

Ternyata Sun Java masih unggul unggul sedikit dari mono, sedang untuk Java yang dicompile native ada diperingkat tiga cuma untuk yang satu ini cepat di data data yang sedikit tapi kalo datanya makin banyak tidak efisien. Jamvm di peringkat ke empat punya keunggulan hemat memori dan kecil tapi tidak bisa jalanin fedora eclipse. selanjutnya ditempati sablevm sedikit lebih boros dari JamVM tapi bisa untuk jalanin fedora eclipse walaupun lebih lambat dari Sun. Yang paling buruk GIJ javanya GNU tapi buat saya ini punya nilai lebih soalnya ini satu satunya JVM yang bisa jalanin Fedora Eclipse dengan cepat lebih cepat dari SableVM walaupun sedikit lebih lambat dari Sun Java

Jadi Astronom Tanpa Teleskop

Jadi Astronom tanpa teleskop Bisa ndak yaaa, bisa pake Kstar nya KDE, bisa liat liat bintang, planet, ngukur jarak tahun cahaya antar planet atau bintang , dan banyak perhitungan perhitungan lain yang saya nggak ngerti(bukan astronom soalnya).jadi yang cita cita jadi Neil Armstrong, Yuri Gagarin, Bruce Wiliis di armageddon tapi ndak kesampaian bisa make ini

Untuk bisa make KStars ini harus milih dulu kita akan make stasiun yang mana, pilihan stasiunnya sangat sangat lengkap mulai dari stasiun di Amerika sampai stasiun jatiluhurnya Indonesia di Bandung juga ada(keren kan), nah setelah itu kita bisa liat bintang dari perspektifnya teleskop stasiun yang kita pilih. trus ada fitur konek ke ‘real’teleskop, jadi kalo kita punya teleskop bisa disambungin langsung ke Kstars. Ada juga fitur navigasi otomatis, untuk pake yang ini tinggal pilih objek yang pengen kita liat misal pengen liat andromeda tinggal pilih Andromeda nanti layarnya akan bergerak langsung ke galaksi Andromeda.

Tapi kelemahannya ada juga sih, gambarnya belum terlalu bagus dan fasilitas zoomingnya masih payah tapi lumayanlah untuk komputer kelas low-end. Tapi karena ini proyek open source kita bisa liat sourcenya trus bisa dikembangin sama sama, kalau blum bisa kontribusi kode, bisa kontribusi laporan bug aja, atw request fitur juga bisa, pokoknya hidup open source lah.

Port nefprox ke Java

Beberapa bulan yang lalu saya berhasil memport nfident, nefprox(algoritma neurofuzzy) yang diimplementasikan dengan C ke bahasa favoritku Java. Sebenarnya proyek pribadiku ini hampir ku tunda atau bahkan batal, akibat satu dan lain hal. Tapi karena saya pindah kos dari kos-kosan keluarga dengan fasilitas lengkap ke kos yang sekarang, saya jadi kehilangan tv. Hilangnya tv ini membuat saya tidak memiliki pengisi waktu lagi sepulang kuliah, jadi terpaksalah saya melanjutkan proyek porting ini.
Sebenarnya proyek ini hanya memport nfident bagian nefprox saja tidak keseluruhan kode nfident soalnya terlalu panjang dan sangat sangat rumit , jadi proyek ini lebih tepat jika dikatakan implementasi Nefprox pada Java dengan meniru nfident.

Hasil porting nefprox saya beri lisensi GPL, nah tentang lisensi ini juga saya sempat bingung apakah software yang diporting dari GPL licensed harus GPL juga. Setelah mencari, browsing, surfing, dll ternyata tentang porting ini tidak disebutkan dalam draft GPL. Jadi kesimpulannya saya bisa melisensikan software saya itu dengan lisensi apa saja. Awalnya mo komersil, trus turun ke LGPL.

Setelah sempat didistribusikan ke seorang teman, saya jadi tidak enak soal lisensi tadi. Masak iya software yang telah susah susah dibuat algoritmanya dibuat setengah mati, eh setelah diporting bahkan ucapan terima kasihpun tidak diberikan. Jadi saya melakukan ijtihad akhirnya software hasil prting tadi kubuat jadi GPL. Kalau pingin liat liat software hasil portingku ini, bisa email ke fuadkiki@yahoo.com, soalnya belum ku upload. Tapi mungkin beberapa hari lagi akan ku taruh ke kleq.web.ugm.ac.id di menu download. Kode itu sudah beberapa kali mengalami refactoring(mengubah kode tanpa mempengaruhi interfacenya dengan dunia luar) sekarang sudah lebih terstruktur dan sudah ada dokumentasinya. Sekarang saya lagi berencana membuat GUI intefacenya sekarang sudah jadi 10%, kalu yang ini niru <strong>nefclassj</strong> saya menamakannya JNefprox. Tapi kayaknya bakal ditunda lagi pengambangannnya soalnya sibuk. kalo ada yang mo bantu silahkan

Untuk Source code dan program bisa download di kleq.web.ugm.ac.id

Wiser & Spring Framework Integration

As Java lightweight framework, Spring is widely used in Java world. it is because Spring is simple, light, and easy to integrate with other frameworks. Widget Server Framework, as one of Xml Gui Implementation with Java, gives us a great solution, that is when we make an application, we can use it as a standalone, Thin Client ,and web based app without changing the code.

The main idea when we want to integrate this two frameworks (using Widget Server at Presentation Layer and Spring at Bussines Layer) is we have to make Widget Server call Spring Application Context/Bean Factory(i.e file applicationContext.xml) when Widget Server Servlet is initialized by Servlet Container.

First thing we should do is creating Widget Server mandatory directory in spring project directory

for example at Spring “DistroSystem” Project i have war/ and src/ directory

DistroSystem
        |—-src
           |
        |—war–
            |
            |–WEB-INF
            |
            |—lib
            |
            |—classes

Widget Server Mandatory directory is

|
        |–*.xml
        |—start
        |     |
        |     |–src
        |
        |–WEB-INF
              |
              |—lib
              |
              |—classes

Next, move Widget Server’s “start” directory to Spring’s “war” directory, After that move all file (not directory just file) under to “war” directory. Move all Widget Server library under “lib” to Spring’s “lib”. For Widget Server “src” directory, move all its content to spring’s “src” directory.

After that directory structure must like this:

DistroSystem
    |
    |—-src
    |     |
    |     |–Wiser Java Source
    |     |–Old Bussines and/
    |                  or persistence Java source
    |—war–
        |
        |–start
        |
        |–WEB-INF
            |
            |—lib
            |       |–Spring And Wiser library
            |                 dependency
            |
            |—classes

Step 2 is modifying piccolo.jar, theWiser library dependency. Extract piccolo.jar . Remove all piccolo’s xml parsers package(folder javax). and compress piccolo again. So in this new piccolo.jar only exist “com” and “META-INF” folder. After this you can write your web.xml.

Step 3 is developing your presentation layer and Listener code. In order to make Listener code get bean from Spring, We must make parent listener for all listeners which we want it to call Spring bean code. Here is my code
package Listeners;

import de.ug2t.unifiedGui.service.UnBasicServlet;
import de.ug2t.kernel.KeRegisteredObject;
import javax.servlet.*;
import javax.servlet.http.*;

import org.springframework.web.context.*;
import org.springframework.web.context.support.*;

public abstract class BasicListener{
  private WebApplicationContext wac ;

public BasicListener()
  {
    ServletConfig sg=
    (ServletConfig)KeRegisteredObject.pcmf_getGlobalObjByName
    (UnBasicServlet.SERVLET_CONFIG);
    ServletContext sc =sg.getServletContext();
    wac = WebApplicationContextUtils.getWebApplicationContext(sc);
  }

public WebApplicationContext getWebApplicationContext()
  {
      return wac;
   }
}

This is one of my Widget Server listener code which use Spring’s Bean

package Listeners;

import de.ug2t.kernel.*;
import de.ug2t.unifiedGui.*;
import de.ug2t.unifiedGui.interfaces.*;
import de.ug2t.unifiedGui.loader.*;

import java.util.*;
import DistroSystem.Stock.DAO.*;
import DistroSystem.Stock.Logic.*;
import DistroSystem.*;

import org.springframework.web.context.*;

public class BarangGetAll_li extends BasicListener implements IUnGuiEventListener
{

private BukuManager buku_man;

public void pcmf_execListener(UnComponent xParam) throws Exception
  {
    WebApplicationContext wac = getWebApplicationContext();
    buku_man=(BukuManager)wac.getBean("bukuManager");
    // get all relevant widgets from the registry
    IUnTable l_table = (IUnTable) KeRegisteredObject.pcmf_getObjByName("atable");
    UnTableLoader l_load = (UnTableLoader)  KeRegisteredObject.pcmf_getObjByName("tableLoader");

List list = buku_man.getAll();

// insert row
    ((BukuTableModel) l_load.pcmf_getModel()).setBuku(list);
    l_table.pcmf_repaint();

return;
 }
}

When we want to get beans’s Spring we just must extend BasicListener class. To get a bean first call super method getWebApplicationContext(), this method will return “WebApplicationContext” object. With this object you can get all beans from Spring’s Application Context