Powered By

Skin Design:
Free Blogger Skins

Powered by Blogger

Cari Blog Ini

28 Juli 2011

[Update] Kenalan dengan Adempiere 360 LTS

Sudah lebih dari satu tahun kantor pake adempiere 342. Rasanya sudah saatnyau untuk update. Versi stabil terakhir adalah 360 (Laura). Ada beberapa fitur-fitur baru:
(diambil dari: http://www.adempiere.com/Release_360LTS)

Major Enhancements

  • Improved Manufacturing libero-MFG
  • Improve the visual layout of Info and InfoProduct task pane
  • Stabilization of replication
  • Translation
    • Improved German translations.
    • Swedish translations.
    • Improve Thai Language Pack
    • Translation statistics
  • Improve ADempiere Web Applications
  • Add more details to Organization
  • Documentation update
    • Better looking Help windows.
  • Replication: opening connections
  • Move Adempiere to Java 6
  • Production
    • BOM - Back to Product Window
    • Added new tab "Product Costs" to "Product" window
    • Price List Improvement:allow importing with ID's for PriceList and Version
  • Implementation of zoom to detail tab
  • Calculate Measure based on the script to PA
  • Dunning Stabilization
  • Reporting
    • Improved pdf rendering
    • Report - Storage per Product Improved
    • Added new Report Parameter: Organization
  • ChartOfAccount for Vietnam
  • Improved prcess on Create PO from RfQ
  • Improved borwser IE support
  • Zoom to child tab - Improved performance
  • Improved Credit Limit check (when Invoice BP is <> from Ship BP)
  • Adding weight to base type for tax
  • Fixed Assets Application Dictionary stabilization
  • InfoPanel performance enhancement
  • turn off alternate color row striping to improve rendering performance
  • use database paging and sorting for high volume table

Major Fixes

  • CreateFrom not calling info on zk
  • Initial Client Setup - Accounting schema - empty line
  • stop execution of event when save failed
  • Wrong name and description for DiscontinuedBy field
  • Fixed SQL script to add in Callouts to OrderLine Resource Assignment - thanks to iCyLand, Bangkok's help.
  • Fixed Tax Errors: a) Rate Parent window not working b) Handle the case when no Default Tax Rate is specified.
  • Error in context when Key field is found in different tabs.
  • Error in context when IsActive field is found in different
  • Guarantee backward compatibility with previous approach
  • Added method to get tab context variables without defaulting to window or login variable (required safety measure)
  • Some refactorings to improve reading and performance
  • Reactivate hidden tabs - and move back BOM & Formula window to manufacturing menu
  • Fix Perpetual Inventory window
  • Jasper Report in Process problem
  • Accounting Fact Summary
  • Wrong behavior of non-automatic commit VOSS Com
  • Model Validation Engine duplicate listeners
  • Database issues with Missing foreign keys and Tables without primary key

Prerequisites

  • Java 1.6
  • Oracle >= 10G or PostgresQL >= 8.2
  • To develop and integrate jasper reports use version 3.7.3

Setelah berhasil mendownload source code via svn, kemudian saya coba membukanya di eclipse. Tapi ternyata ada bebarapa error. Tapi saya bisa perbaiki karena baru ingat kalau ademepire 360 pake java 6. Setelah di ganti ke java 6 ternyata masih ada satu file yang error!
Tampilan error adempire 360 di eclipse
Error nya ada pada class CCachedRowSet, "Name clash: The method setTypeMap...has the same erasure as set TypeMap(Map)..."
Saya coba cari di internet, hanya beberapa yang menjelaskan. Salah satunya di situs compiere, dibilang bahwa itu karena masalah java version. Apa mungkin karena versi java saya yang salah? Saya cek ternyata memang benar java 6 (1.6) 
Java 6 !
Tidak mau ambil pusing, saya coba download java 6 terbaru (java 1.6.0-26) namun hasilnya tetap sama. Hmm apa mungkin ada cache yang nyantol? (Seperti kata mas wahyu). Maka saya coba rename java 5 sehingga tidak bisa diakses (jadi di komputer hanya ada java 6), ternyata tetap sama saja! Hmm apa ya?
Kemudian saya coba build dengan RUN_Build.sh, ternyata sukses! Berarti bukan masalah java yang terinstall.
Diskusi sama mas wahyu lagi, disarankan coba dibuka pake netbean. Hasilnya: sukses tanpa error seperti yang ada di eclipse! Berarti sekarang masalah ada pada eclipse! Saya putuskan download versi terakhir dari eclipse (3.7)
Di eclipse yang baru saya coba buat workspace baru dan import project Adempiere lagi. Hasilnya ternyata tetap error. Wah tambah pusing saya, apa kira-kira penyebabnya.
Iseng-iseng saya coba buat class baru pada project baru di eclipse yang mirip dengan class CCachedRowSet

public class test extends CachedRowSetImpl  implements CachedRowSet  {
        private static final long serialVersionUID = 1L;
        private test() throws SQLException
{
super ();
setSyncProvider("com.sun.rowset.providers.RIOptimisticProvider");
} // CCachedRowSet
}
Nah ternyata tidak ada pesan error! Berarti bukan karena masalah eclipsenya. Tapi masalah di project Adempeire. Akhirnya saya coba copy file-file setting project dari tempat mas Wahyu ke tempat saya. Sayang sekali tidak berhasil juga. Tetap ada error! Kemudian saya masukkan test.java itu ke dalam project Adempiere. Ternyata berhasil!! Wah kayaknya harus dipancing dulu baru bisa. Berarti hipotesa pak wahyu bener tuh. Ini pasti gara cache. Jadi masih ambil java 1.5 pada librarynya.

Tampilan setelah test.java di masukkan di project Adempiere. Error pada CCachedRowSet tidak muncul lagi!!



UPDATE

Ternyata masalah "Name clash: The method setTypeMap...has the same erasure as set TypeMap(Map)..." tidak hanya menyerang Adempire 360LTS. Setelah 360 LTS (dengan java 6 nya) sembuh, ternyata Adempiere 342-nya tertular juga. Padahal dengan java 5. Saya coba dengan cara diatas tidak bisa. Hanya saja ketika saya buat project baru dengan java 5, dan membuat class yang diturunkan dari CachedRowSetImpl dan implemen CachedRowSet hasilnya tidak ada error. Trus class itu saya copy ke Adepiere. Jadi error! Hmm, perbedaan project Adempiere dan project Test adalah pada library nya. Jika di Test hanya menggunakan default JRE, maka di Adempire menggunakan eksternal JAR juga. Maka semua eksternal JAR tersebut saya coba lihat satu-satu. Saya curiga ada class dari JRE standart yang ter-replace oleh eksternal JAR. Dan kecurigaan saya benar class javax.sql.RowSet ternyata di override oleh jbossall-client.jar

Class javax.sql.RowSet lain yang ada pada jbossall-client.jar
Nah untuk solusinya, tingal mensetting build path nya aja dan mengganti urutan library yang dipakai. 

Posisi urutan library. Terlihat JRE terletak dibawah jboss-j2ee. Maka menyebabkan RowSet yang diambil adalah dari jboss-j2ee.jar
Tampilan setelah urutan diganti. Tidak ada error lagi.

2 komentar:

Gue!Shindu mengatakan...
Komentar ini telah dihapus oleh pengarang.
Gue!Shindu mengatakan...

Tutorial yg bermanfaat bagi saya sendiri