Home > Java > JNLP API – PersistenceService example

JNLP API – PersistenceService example


PersistenceService menyediakan metode untuk menyimpan data secara lokal pada sistem klien, bahkan untuk aplikasi yang berjalan di lingkungan eksekusi untrusted. Layanan ini agak mirip dengan yang mekanisme cookie menyediakan untuk aplikasi berbasis HTML.

Permohonan hanya diperbolehkan untuk mengakses data yang tersimpan dengan URL yang didasarkan pada basis kode nya. Sebagai contoh, mengingat basis kode http://www.mysite.com/apps/App1/, aplikasi akan diizinkan untuk mengakses data di URL yang terkait:

http://www.mysite.com/apps/App1/
http://www.mysite.com/apps/
http://www.mysite.com/
Skema ini memungkinkan berbagi data di antara aplikasi yang berbeda dari host yang sama. Misalnya, jika aplikasi lain terletak di http://www.mysite.com/apps/App2/, maka mereka dapat berbagi data di antara mereka dalam http://www.mysite.com/ dan http://www. mysite.com / apps / direktori.

Seorang klien JNLP harus melacak jumlah penyimpanan bahwa menggunakan aplikasi tertentu. Implementasi yang PersistenceService menyediakan metode untuk mendapatkan penggunaan penyimpanan saat ini dan batas-batas dan meminta lebih banyak penyimpanan. Penyimpanan dialokasikan untuk setiap file, namun JNLP Klien biasanya akan memberikan atau menolak permintaan tersebut berdasarkan total penyimpanan digunakan oleh aplikasi.

Data yang disimpan menggunakan mekanisme ini dimaksudkan untuk menjadi salinan setempat dari data yang tersimpan di server jauh. Entri individu dapat dinilai sebagai baik-cache, berarti server memiliki salinan up-to-date, kotor, berarti server tidak memiliki salinan up-to-date, atau sementara, yang berarti bahwa file tersebut selalu dapat diciptakan kembali.

public static void main(String[] args) {
try {
            URL url = new URL("file:/I:/My%20Experiment/jnlp/mylib-client/dist/");
            PersistenceService ps = (PersistenceService) ServiceManager.lookup("javax.jnlp.PersistenceService");
            String[] muffins = ps.getNames(url);
            if (muffins == null) {
                JOptionPane.showMessageDialog(null, "Muffin empty");
            } else {
                JOptionPane.showMessageDialog(null, "Muffin not empty, " + muffins.length);
                FileContents fc = ps.get(url);
// 
//                byte[] buf = new byte[1024];
//                InputStream is = fc.getInputStream();
//                int pos = 0;
//                String data = "";
//                while ((pos = is.read(buf, pos, buf.length - pos)) > 0) {
//                    // just loop
//                    String temp = new String(buf);
//                    data += temp;
//                }
//                JOptionPane.showMessageDialog(null, "url data :" + data.trim());
//                is.close();// 
                Properties p = new Properties();
                InputStream is = fc.getInputStream();
                p.load(is);
                is.close();
                JOptionPane.showMessageDialog(null, p.getProperty("server")
                        + "\n" + p.getProperty("database"));
//                fc = ps.get(url);

//               
                //data = JOptionPane.showInputDialog("Data to save ?");
//                if (data == null) {
//                    return;
//                }
//                if (!data.isEmpty()) {
//                    OutputStream os = fc.getOutputStream(true);
//                    os.write(data.getBytes());
//                    os.close();
//                }// 
                Properties properties = new Properties();
                properties.put("server", "127.0.8.1");
                properties.put("database", "smartmanagement");
                OutputStream os = fc.getOutputStream(true);
                properties.store(os, "by ratno");
                os.close();

            }
        } catch (IOException ex) {
            JOptionPane.showMessageDialog(null, "IOException :" + ex.getMessage());
        } catch (UnavailableServiceException ex) {
            JOptionPane.showMessageDialog(null, "UnavailableServiceException :" + ex.getMessage());
        }
}
Categories: Java
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: