Revision 1431
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/installer/lib/api/PackageInfo.java | ||
---|---|---|
123 | 123 |
* @see OS |
124 | 124 |
*/ |
125 | 125 |
public void setOperatingSystem(String operatingSystem); |
126 |
|
|
127 |
public String getOperatingSystemFamily(); |
|
126 | 128 |
|
129 |
public String getOperatingSystemName(); |
|
130 |
|
|
131 |
public String getOperatingSystemVersion(); |
|
132 |
|
|
133 |
public void setOperatingSystemFamily(String operatingSystemFamily); |
|
134 |
|
|
135 |
public void setOperatingSystemName(String operatingSystemName); |
|
136 |
|
|
137 |
public void setOperatingSystemVersion(String operatingSystemVersion); |
|
127 | 138 |
/** |
128 | 139 |
* Returns the supported hardware architecture. |
129 | 140 |
* |
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/tools/packageutils/PackageManager.java | ||
---|---|---|
139 | 139 |
*/ |
140 | 140 |
public String getOperatingSystem(); |
141 | 141 |
|
142 |
public String getOperatingSystemFamily(); |
|
143 |
public String getOperatingSystemName(); |
|
144 |
public String getOperatingSystemVersion(); |
|
145 |
|
|
146 |
|
|
142 | 147 |
/** |
143 | 148 |
* Returns the Architecture code of the system |
144 | 149 |
* |
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/tools/packageutils/PackageInfo.java | ||
---|---|---|
115 | 115 |
* the supported operating system |
116 | 116 |
* @see OS |
117 | 117 |
*/ |
118 |
@Override |
|
118 | 119 |
public void setOperatingSystem(String operatingSystem); |
120 |
|
|
121 |
@Override |
|
122 |
public String getOperatingSystemFamily(); |
|
119 | 123 |
|
124 |
@Override |
|
125 |
public String getOperatingSystemName(); |
|
126 |
|
|
127 |
@Override |
|
128 |
public String getOperatingSystemVersion(); |
|
129 |
|
|
130 |
@Override |
|
131 |
public void setOperatingSystemFamily(String operatingSystemFamily); |
|
132 |
|
|
133 |
@Override |
|
134 |
public void setOperatingSystemName(String operatingSystemName); |
|
135 |
|
|
136 |
@Override |
|
137 |
public void setOperatingSystemVersion(String operatingSystemVersion); |
|
138 |
|
|
120 | 139 |
/** |
121 | 140 |
* Returns the supported hardware architecture. |
122 | 141 |
* |
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/tools/packageutils/impl/DefaultPackageManager.java | ||
---|---|---|
24 | 24 |
package org.gvsig.tools.packageutils.impl; |
25 | 25 |
|
26 | 26 |
import java.io.File; |
27 |
import java.io.FileInputStream; |
|
27 | 28 |
import java.io.IOException; |
28 | 29 |
import java.io.InputStream; |
29 | 30 |
import java.io.OutputStream; |
31 |
import java.util.Properties; |
|
32 |
import org.apache.commons.io.IOUtils; |
|
33 |
import org.apache.commons.lang3.StringUtils; |
|
30 | 34 |
|
31 | 35 |
import org.gvsig.tools.exception.BaseException; |
32 | 36 |
import org.gvsig.tools.packageutils.Dependencies; |
... | ... | |
36 | 40 |
import org.gvsig.tools.packageutils.Version; |
37 | 41 |
|
38 | 42 |
public class DefaultPackageManager implements PackageManager { |
43 |
private String operatingSystemName; |
|
44 |
private String operatingSystemFamily; |
|
45 |
private String operatingSystemVersion; |
|
39 | 46 |
|
40 | 47 |
@Override |
41 | 48 |
public Version createVersion() { |
... | ... | |
94 | 101 |
return new DefaultDependencies(); |
95 | 102 |
} |
96 | 103 |
|
104 |
private void loadOperatingSystemInfo() { |
|
105 |
String osname = System.getProperty("os.name"); |
|
106 |
String osversion = System.getProperty("os.version"); |
|
107 |
if (osname.toLowerCase().startsWith("linux")) { |
|
108 |
this.operatingSystemFamily = OS.LINUX; |
|
109 |
FileInputStream fis = null; |
|
110 |
try { |
|
111 |
Properties p = new Properties(); |
|
112 |
fis = new FileInputStream("/etc/os-release"); |
|
113 |
p.load(fis); |
|
114 |
this.operatingSystemName = p.getProperty("ID", null); |
|
115 |
this.operatingSystemVersion = p.getProperty("VERSION_ID", null); |
|
116 |
|
|
117 |
this.operatingSystemName = StringUtils.removeEnd(this.operatingSystemName,"\""); |
|
118 |
this.operatingSystemName = StringUtils.removeStart(this.operatingSystemName,"\""); |
|
119 |
this.operatingSystemName = StringUtils.trimToNull(this.operatingSystemName); |
|
120 |
this.operatingSystemVersion = StringUtils.removeEnd(this.operatingSystemVersion,"\""); |
|
121 |
this.operatingSystemVersion = StringUtils.removeStart(this.operatingSystemVersion,"\""); |
|
122 |
this.operatingSystemVersion = StringUtils.trimToNull(this.operatingSystemVersion); |
|
123 |
} catch(Exception ex) { |
|
124 |
|
|
125 |
} finally { |
|
126 |
IOUtils.closeQuietly(fis); |
|
127 |
} |
|
128 |
|
|
129 |
} else if (osname.toLowerCase().startsWith("window")) { |
|
130 |
this.operatingSystemFamily = OS.WINDOWS; |
|
131 |
String s = osname.replace(" ", ""); |
|
132 |
s = s.replace("_", ""); |
|
133 |
s = s.replace("-", ""); |
|
134 |
this.operatingSystemName = s; |
|
135 |
this.operatingSystemVersion = osversion; |
|
136 |
|
|
137 |
} else { |
|
138 |
String s = osname.replace(" ", ""); |
|
139 |
s = s.replace("_", ""); |
|
140 |
s = s.replace("-", ""); |
|
141 |
this.operatingSystemFamily = s; |
|
142 |
this.operatingSystemName = null; |
|
143 |
this.operatingSystemVersion = osversion; |
|
144 |
} |
|
145 |
} |
|
146 |
|
|
97 | 147 |
@Override |
98 | 148 |
public String getOperatingSystem() { |
99 |
String osname = System.getProperty("os.name"); |
|
100 |
if (osname.toLowerCase().startsWith("linux")) { |
|
101 |
return OS.LINUX; |
|
102 |
} |
|
103 |
if (osname.toLowerCase().startsWith("window")) { |
|
104 |
return OS.WINDOWS; |
|
105 |
} |
|
106 |
return osname; |
|
107 |
} |
|
149 |
if( this.operatingSystemFamily == null ) { |
|
150 |
loadOperatingSystemInfo(); |
|
151 |
} |
|
152 |
StringBuilder builder = new StringBuilder(); |
|
153 |
builder.append(this.operatingSystemFamily); |
|
154 |
if( this.operatingSystemName!=null ) { |
|
155 |
builder.append("_"); |
|
156 |
builder.append(this.operatingSystemName); |
|
157 |
if( this.operatingSystemVersion!=null ) { |
|
158 |
builder.append("_"); |
|
159 |
builder.append(this.operatingSystemVersion); |
|
160 |
} |
|
161 |
} |
|
162 |
return builder.toString(); |
|
163 |
} |
|
164 |
|
|
165 |
@Override |
|
166 |
public String getOperatingSystemFamily() { |
|
167 |
if( this.operatingSystemFamily == null ) { |
|
168 |
loadOperatingSystemInfo(); |
|
169 |
} |
|
170 |
return this.operatingSystemFamily; |
|
171 |
} |
|
172 |
|
|
173 |
@Override |
|
174 |
public String getOperatingSystemName() { |
|
175 |
if( this.operatingSystemFamily == null ) { |
|
176 |
loadOperatingSystemInfo(); |
|
177 |
} |
|
178 |
return this.operatingSystemName; |
|
179 |
} |
|
108 | 180 |
|
109 | 181 |
@Override |
182 |
public String getOperatingSystemVersion() { |
|
183 |
if( this.operatingSystemFamily == null ) { |
|
184 |
loadOperatingSystemInfo(); |
|
185 |
} |
|
186 |
return this.operatingSystemVersion; |
|
187 |
} |
|
188 |
|
|
189 |
@Override |
|
110 | 190 |
public String getArchitecture() { |
111 | 191 |
String osarch = System.getProperty("os.arch"); |
112 | 192 |
if (osarch.toLowerCase().startsWith("i386")) { |
113 | 193 |
return ARCH.X86; |
114 | 194 |
} |
195 |
if (osarch.toLowerCase().startsWith("i686")) { |
|
196 |
return ARCH.X86; |
|
197 |
} |
|
198 |
if (osarch.toLowerCase().startsWith("x86_64")) { |
|
199 |
return ARCH.X86_64; |
|
200 |
} |
|
115 | 201 |
if (osarch.toLowerCase().startsWith("x86")) { |
116 | 202 |
return ARCH.X86; |
117 | 203 |
} |
118 | 204 |
if (osarch.toLowerCase().startsWith("amd64")) { |
119 | 205 |
return ARCH.X86_64; |
120 | 206 |
} |
121 |
return osarch; } |
|
207 |
return osarch; |
|
208 |
} |
|
122 | 209 |
|
123 | 210 |
@Override |
124 | 211 |
public void writePacakgeInfo(PackageInfo packageInfo, File file) |
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/tools/packageutils/impl/DefaultPackageInfo.java | ||
---|---|---|
38 | 38 |
import java.util.Iterator; |
39 | 39 |
import java.util.List; |
40 | 40 |
import java.util.Map; |
41 |
import org.apache.commons.lang3.StringUtils; |
|
41 | 42 |
|
42 | 43 |
import org.gvsig.installer.lib.api.Dependencies; |
43 | 44 |
import org.gvsig.installer.lib.api.Version; |
... | ... | |
88 | 89 |
private boolean broken = false; |
89 | 90 |
|
90 | 91 |
private String state = STATE.DEVEL; |
91 |
private String operatingSystem = OS.ALL; |
|
92 |
// private String operatingSystem = OS.ALL; |
|
93 |
private String operatingSystemFamily = OS.ALL; |
|
94 |
private String operatingSystemName = null; |
|
95 |
private String operatingSystemVersion = null; |
|
92 | 96 |
private String architecture = ARCH.ALL; |
93 | 97 |
private String javaVM = JVM.J1_5; |
94 | 98 |
|
... | ... | |
236 | 240 |
this.official = official; |
237 | 241 |
} |
238 | 242 |
|
243 |
@Override |
|
239 | 244 |
public String getOperatingSystem() { |
240 |
return operatingSystem; |
|
245 |
StringBuilder operatingSystem = new StringBuilder(); |
|
246 |
operatingSystem.append(this.operatingSystemFamily); |
|
247 |
if( !StringUtils.isEmpty(this.operatingSystemName) ) { |
|
248 |
operatingSystem.append("_"); |
|
249 |
operatingSystem.append(this.operatingSystemName); |
|
250 |
if( !StringUtils.isEmpty(this.operatingSystemVersion) ) { |
|
251 |
operatingSystem.append("_"); |
|
252 |
operatingSystem.append(this.operatingSystemVersion); |
|
253 |
} |
|
254 |
} |
|
255 |
return operatingSystem.toString(); |
|
241 | 256 |
} |
242 | 257 |
|
258 |
@Override |
|
243 | 259 |
public void setOperatingSystem(String operatingSystem) { |
244 | 260 |
if( isEmptyString(operatingSystem) ) { |
245 |
this.operatingSystem = OS.ALL; |
|
261 |
this.operatingSystemFamily = OS.ALL; |
|
262 |
this.operatingSystemName = null; |
|
263 |
this.operatingSystemVersion = null; |
|
246 | 264 |
} else { |
247 |
this.operatingSystem = operatingSystem; |
|
265 |
if( operatingSystem.contains("_") ) { |
|
266 |
String s[] = operatingSystem.split("_"); |
|
267 |
switch(s.length) { |
|
268 |
case 2: |
|
269 |
this.operatingSystemFamily = s[0]; |
|
270 |
this.operatingSystemName = s[1]; |
|
271 |
break; |
|
272 |
case 3: |
|
273 |
this.operatingSystemFamily = s[0]; |
|
274 |
this.operatingSystemName = s[1]; |
|
275 |
this.operatingSystemVersion = s[2]; |
|
276 |
break; |
|
277 |
default: |
|
278 |
throw new IllegalArgumentException("Can't parse OS '"+operatingSystem+"'."); |
|
279 |
} |
|
280 |
} else { |
|
281 |
this.operatingSystemFamily = operatingSystem; |
|
282 |
} |
|
248 | 283 |
} |
249 | 284 |
} |
285 |
|
|
286 |
@Override |
|
287 |
public String getOperatingSystemFamily() { |
|
288 |
return this.operatingSystemFamily; |
|
289 |
} |
|
290 |
|
|
291 |
@Override |
|
292 |
public String getOperatingSystemName() { |
|
293 |
return this.operatingSystemName; |
|
294 |
} |
|
295 |
|
|
296 |
@Override |
|
297 |
public String getOperatingSystemVersion() { |
|
298 |
return this.operatingSystemVersion; |
|
299 |
} |
|
250 | 300 |
|
301 |
public void setOperatingSystemFamily(String operatingSystemFamily) { |
|
302 |
this.operatingSystemFamily = operatingSystemFamily; |
|
303 |
} |
|
304 |
|
|
305 |
public void setOperatingSystemName(String operatingSystemName) { |
|
306 |
this.operatingSystemName = operatingSystemName; |
|
307 |
} |
|
308 |
|
|
309 |
public void setOperatingSystemVersion(String operatingSystemVersion) { |
|
310 |
this.operatingSystemVersion = operatingSystemVersion; |
|
311 |
} |
|
312 |
|
|
251 | 313 |
public String getArchitecture() { |
252 | 314 |
return architecture; |
253 | 315 |
} |
... | ... | |
409 | 471 |
s.append(" "); |
410 | 472 |
s.append(strformat(this.state,-5,-5)); |
411 | 473 |
s.append(" "); |
412 |
s.append(strformat(this.operatingSystem,-5,-5));
|
|
474 |
s.append(strformat(this.getOperatingSystem(),-5,-5));
|
|
413 | 475 |
s.append(" "); |
414 | 476 |
s.append(strformat(this.architecture,-6,-6)); |
415 | 477 |
s.append(" "); |
... | ... | |
585 | 647 |
} |
586 | 648 |
} |
587 | 649 |
|
650 |
@Override |
|
588 | 651 |
public boolean equals(Object obj) { |
589 | 652 |
PackageInfo other; |
590 | 653 |
try { |
... | ... | |
598 | 661 |
if (!version.check("=", other.getVersion())) { |
599 | 662 |
return false; |
600 | 663 |
} |
601 |
if (!operatingSystem.equalsIgnoreCase(other.getOperatingSystem())) {
|
|
664 |
if (!getOperatingSystem().equalsIgnoreCase(other.getOperatingSystem())) {
|
|
602 | 665 |
return false; |
603 | 666 |
} |
604 | 667 |
if (!applicationVersion.equals(other.getApplicationVersion())) { |
Also available in: Unified diff