1 package es.caib.signatura.impl;
2
3 import java.net.URL;
4 import java.net.URLEncoder;
5
6 import es.caib.signatura.api.SignerFactory;
7
8
9
10
11
12
13 public class SigUtil
14 {
15
16
17 public static String OS_UNAVAILABLE = "No disponible";
18
19 public static String OS_UNKNOWN = "Desconocido";
20
21 public static String OS_WINDOWS = "windows";
22
23 public static String OS_LINUX = "Linux";
24
25 public static String OS_MAC = "Mac";
26
27 public static String OS_REGEXP_WINDOWS = "\\A(?i:win).*\\z";
28
29
30
31 public static String OS_REGEXP_LINUX = "\\A(?i:linux).*\\z";
32
33
34
35 public static String OS_REGEXP_MAC = "\\A(?i:mac).*\\z";
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 public static String getCurrentOs()
53 {
54
55 String currentOsName = null;
56 try {
57 currentOsName = System.getProperty("os.name");
58 } catch (Throwable t) {
59 currentOsName = null;
60
61 t.printStackTrace();
62 }
63
64 if (currentOsName == null || currentOsName.length() == 0) {
65
66 return OS_UNAVAILABLE;
67 }
68
69 if (currentOsName != null) {
70
71 if (currentOsName.matches(OS_REGEXP_WINDOWS)) {
72
73 return OS_WINDOWS;
74 } else if (currentOsName.matches(OS_REGEXP_LINUX)) {
75
76 return OS_LINUX;
77 } else if (currentOsName.matches(OS_REGEXP_MAC)) {
78
79 return OS_MAC;
80 }
81 }
82
83 return OS_UNKNOWN;
84 }
85
86
87
88
89
90
91 public static String getCurrentJVMPath()
92 {
93 try {
94 return System.getProperty("java.home");
95 } catch (Throwable t) {
96 t.printStackTrace();
97 }
98
99 return null;
100 }
101
102
103
104
105
106
107 public static URL getUpgradeUrl()
108 {
109 try {
110 SignerFactory sf = new SignerFactory();
111 String updateSite = sf.getUpdateSite().toString();
112 if ( updateSite != null && !updateSite.equals("")) {
113 String installUrl = updateSite + "/install.jnlp";
114
115 String surl = installUrl + "?os=" + URLEncoder.encode(getCurrentOs(), "UTF-8");
116 String jvm = getCurrentJVMPath();
117 if (jvm != null && jvm.length() > 0) {
118 surl += "&jvm=" + URLEncoder.encode(jvm, "UTF-8");
119 }
120 URL url = new URL(surl);
121
122 return url;
123 }
124 } catch (Exception e) {
125 e.printStackTrace();
126 }
127 return null;
128 }
129 }