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

View differences:

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