Jadi sampai kemarin pagi saya tidak tahu apa itu OSGi. OSGi hanyalah kata kunci yang saya lihat terus muncul berulang kali, jadi saya akhirnya menyisihkan waktu untuk memolesnya.
Ini sebenarnya tampak seperti hal yang cukup keren, jadi saya ingin memulai dengan menyatakan (sebagai catatan) bahwa saya sama sekali bukan anti-OSGi, juga bukan pertanyaan "OSGi-bashing".
Pada akhirnya, tampaknya OSGi telah - pada dasarnya - menangani JSR 277 pada Java Modularity, yang mengakui bahwa ada kekurangan dengan JAR
spesifikasi file yang dapat menyebabkan resolusi namespace dan masalah pemuatan kelas dalam kasus sudut tertentu. OSGi juga melakukan banyak hal lain yang sangat keren, tapi dari apa yang bisa saya pastikan, itulah hasil imbang terbesarnya (atau salah satunya).
Bagi saya - sebagai pengembang Java EE yang cukup baru (beberapa tahun sekarang), sungguh mengejutkan bahwa kita berada di tahun 2011 dan saat ini hidup di era Java 7, dan bahwa masalah pemuatan kelas ini masih ada; terutama dalam lingkungan perusahaan di mana satu server aplikasi dapat memiliki ratusan JAR di dalamnya, dengan banyak di antaranya bergantung pada versi yang berbeda satu sama lain dan semuanya berjalan (kurang lebih) secara bersamaan.
Pertanyaan saya:
Sama tertariknya dengan saya pada OSGi, dan sebanyak saya ingin mulai mempelajarinya untuk melihat di mana / apakah itu dapat berguna untuk proyek saya, saya hanya tidak punya waktu untuk duduk dan mempelajari sesuatu yang besar, setidaknya sekarang.
Jadi apa yang harus dilakukan oleh pengembang non-OSGi saat masalah ini muncul? Apa solusi Java (Oracle / Sun / JCP) yang ada saat ini, jika ada? Mengapa Jigsaw dipotong dari J7? Seberapa yakin komunitas bahwa Jigsaw akan diimplementasikan tahun depan di J8? Apakah mungkin mendapatkan Jigsaw untuk proyek Anda meskipun itu belum menjadi bagian dari platform Java?
Saya rasa yang saya tanyakan di sini adalah kombinasi dari kepanikan, intrik, dan ketenangan. Sekarang saya akhirnya mengerti apa itu OSGi, saya hanya tidak "mengerti" bagaimana sesuatu seperti Jigsaw membutuhkan waktu 20+ tahun untuk membuahkan hasil, dan kemudian bagaimana itu bisa dikalengkan dari rilis. Sepertinya fundamental.
Dan, sebagai developer, saya juga penasaran seperti apa solusi saya, sans OSGi.
Juga, Catatan : Saya tahu ini bukan pertanyaan jenis " pemrograman murni ", tetapi sebelum beberapa dari Anda membuat hidung bengkok, saya ingin menyatakan (sekali lagi, sebagai catatan) bahwa saya sengaja mengajukan pertanyaan ini BEGITU. Itu karena saya sangat menghormati sesama SOers dan saya mencari jawaban tingkat arsitektur dari beberapa "Dewa TI" yang saya lihat bersembunyi di sekitar sini setiap hari.
Namun, bagi Anda yang benar-benar bersikeras bahwa pertanyaan SO harus didukung dengan beberapa segmen kode:
int x = 9;
(Terima kasih kepada siapa saja yang dapat mempertimbangkan hal-hal OSGi / Jigsaw / classloader / namespace / JAR ini!)