Revision 42881 trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.installer/org.gvsig.installer.lib/org.gvsig.installer.lib.impl/src/main/java/org/gvsig/installer/lib/impl/DefaultInstallerManager.java
DefaultInstallerManager.java | ||
---|---|---|
37 | 37 |
import java.util.Iterator; |
38 | 38 |
import java.util.List; |
39 | 39 |
import java.util.Map; |
40 |
import java.util.Properties; |
|
40 | 41 |
import java.util.Set; |
42 |
import org.apache.commons.io.IOUtils; |
|
41 | 43 |
import org.apache.commons.lang3.StringUtils; |
42 | 44 |
|
43 | 45 |
import org.gvsig.installer.lib.api.DependenciesCalculator; |
... | ... | |
61 | 63 |
import org.gvsig.tools.exception.BaseException; |
62 | 64 |
import org.gvsig.tools.extensionpoint.ExtensionPoint; |
63 | 65 |
import org.gvsig.tools.extensionpoint.ExtensionPointManager; |
66 |
import org.gvsig.tools.packageutils.PackageManager; |
|
64 | 67 |
import org.gvsig.tools.service.AbstractManager; |
65 | 68 |
import org.gvsig.tools.service.Service; |
66 | 69 |
import org.gvsig.tools.service.ServiceException; |
... | ... | |
189 | 192 |
private List<LocalRepositoryLocation> localRepositoriesLocation = null; |
190 | 193 |
private Map<String,File> defaultRepositoryLocation = null; |
191 | 194 |
|
195 |
private String operatingSystemName; |
|
196 |
private String operatingSystemFamily; |
|
197 |
private String operatingSystemVersion; |
|
198 |
|
|
192 | 199 |
public DefaultInstallerManager() { |
193 | 200 |
super(new DefaultInstallerProviderManager()); |
194 | 201 |
this.defaultRepositoryLocation = new HashMap<String,File>(); |
... | ... | |
333 | 340 |
public String getDefaultIndexSetFileExtension() { |
334 | 341 |
return "gvspki"; |
335 | 342 |
} |
343 |
|
|
344 |
private void loadOperatingSystemInfo() { |
|
345 |
String osname = System.getProperty("os.name"); |
|
346 |
String osversion = System.getProperty("os.version"); |
|
347 |
if (osname.toLowerCase().startsWith("linux")) { |
|
348 |
this.operatingSystemFamily = PackageManager.OS.LINUX; |
|
349 |
FileInputStream fis = null; |
|
350 |
try { |
|
351 |
Properties p = new Properties(); |
|
352 |
fis = new FileInputStream("/etc/os-release"); |
|
353 |
p.load(fis); |
|
354 |
this.operatingSystemName = p.getProperty("ID", null); |
|
355 |
this.operatingSystemVersion = p.getProperty("VERSION_ID", null); |
|
356 |
} catch(Exception ex) { |
|
336 | 357 |
|
358 |
} finally { |
|
359 |
IOUtils.closeQuietly(fis); |
|
360 |
} |
|
361 |
|
|
362 |
} else if (osname.toLowerCase().startsWith("window")) { |
|
363 |
this.operatingSystemFamily = PackageManager.OS.WINDOWS; |
|
364 |
String s = osname.replace(" ", ""); |
|
365 |
s = s.replace("_", ""); |
|
366 |
s = s.replace("-", ""); |
|
367 |
this.operatingSystemName = s; |
|
368 |
this.operatingSystemVersion = osversion; |
|
369 |
|
|
370 |
} else { |
|
371 |
String s = osname.replace(" ", ""); |
|
372 |
s = s.replace("_", ""); |
|
373 |
s = s.replace("-", ""); |
|
374 |
this.operatingSystemFamily = s; |
|
375 |
this.operatingSystemName = null; |
|
376 |
this.operatingSystemVersion = osversion; |
|
377 |
} |
|
378 |
} |
|
379 |
|
|
380 |
@Override |
|
337 | 381 |
public String getOperatingSystem() { |
338 |
String osname = System.getProperty("os.name"); |
|
339 |
if ( osname.toLowerCase().startsWith("linux") ) { |
|
340 |
return InstallerManager.OS.LINUX; |
|
382 |
if( this.operatingSystemFamily == null ) { |
|
383 |
loadOperatingSystemInfo(); |
|
341 | 384 |
} |
342 |
if ( osname.toLowerCase().startsWith("window") ) { |
|
343 |
return InstallerManager.OS.WINDOWS; |
|
385 |
StringBuilder builder = new StringBuilder(); |
|
386 |
builder.append(this.operatingSystemFamily); |
|
387 |
if( this.operatingSystemName!=null ) { |
|
388 |
builder.append("_"); |
|
389 |
builder.append(this.operatingSystemName); |
|
390 |
if( this.operatingSystemVersion!=null ) { |
|
391 |
builder.append("_"); |
|
392 |
builder.append(this.operatingSystemVersion); |
|
393 |
} |
|
344 | 394 |
} |
345 |
return osname;
|
|
395 |
return builder.toString();
|
|
346 | 396 |
} |
347 | 397 |
|
398 |
@Override |
|
399 |
public String getOperatingSystemFamily() { |
|
400 |
if( this.operatingSystemFamily == null ) { |
|
401 |
loadOperatingSystemInfo(); |
|
402 |
} |
|
403 |
return this.operatingSystemFamily; |
|
404 |
} |
|
405 |
|
|
406 |
@Override |
|
407 |
public String getOperatingSystemName() { |
|
408 |
if( this.operatingSystemFamily == null ) { |
|
409 |
loadOperatingSystemInfo(); |
|
410 |
} |
|
411 |
return this.operatingSystemName; |
|
412 |
} |
|
413 |
|
|
414 |
@Override |
|
415 |
public String getOperatingSystemVersion() { |
|
416 |
if( this.operatingSystemFamily == null ) { |
|
417 |
loadOperatingSystemInfo(); |
|
418 |
} |
|
419 |
return this.operatingSystemVersion; |
|
420 |
} |
|
421 |
|
|
422 |
@Override |
|
348 | 423 |
public String getArchitecture() { |
349 | 424 |
String osarch = System.getProperty("os.arch"); |
350 |
if ( osarch.toLowerCase().startsWith("i386") ) {
|
|
351 |
return InstallerManager.ARCH.X86;
|
|
425 |
if (osarch.toLowerCase().startsWith("i386")) {
|
|
426 |
return ARCH.X86;
|
|
352 | 427 |
} |
353 |
if ( osarch.toLowerCase().startsWith("x86") ) {
|
|
354 |
return InstallerManager.ARCH.X86;
|
|
428 |
if (osarch.toLowerCase().startsWith("i686")) {
|
|
429 |
return ARCH.X86;
|
|
355 | 430 |
} |
356 |
if ( osarch.toLowerCase().startsWith("amd64") ) {
|
|
357 |
return InstallerManager.ARCH.X86_64;
|
|
431 |
if (osarch.toLowerCase().startsWith("x86_64")) {
|
|
432 |
return ARCH.X86_64;
|
|
358 | 433 |
} |
359 |
return osarch; |
|
434 |
if (osarch.toLowerCase().startsWith("x86")) { |
|
435 |
return ARCH.X86; |
|
436 |
} |
|
437 |
if (osarch.toLowerCase().startsWith("amd64")) { |
|
438 |
return ARCH.X86_64; |
|
439 |
} |
|
440 |
return osarch; |
|
360 | 441 |
} |
361 | 442 |
|
362 | 443 |
public Dependency createDependency(PackageInfo packageInfo) { |
Also available in: Unified diff