Revision 38191 branches/v2_0_0_prep/extensions/org.gvsig.installer/org.gvsig.installer.lib/org.gvsig.installer.lib.impl/src/main/java/org/gvsig/installer/lib/impl/DefaultPackageInfo.java

View differences:

DefaultPackageInfo.java
34 34
import java.util.ArrayList;
35 35
import java.util.List;
36 36

  
37
import org.slf4j.Logger;
38
import org.slf4j.LoggerFactory;
39

  
37 40
import org.gvsig.installer.lib.api.Dependencies;
38 41
import org.gvsig.installer.lib.api.InstallerLocator;
39 42
import org.gvsig.installer.lib.api.InstallerManager;
......
55 58
 */
56 59
public class DefaultPackageInfo implements PackageInfo {
57 60

  
61
    private static final Logger LOG = LoggerFactory
62
        .getLogger(DefaultPackageInfo.class);
63

  
58 64
    private String code = null;
59 65
    private String name = null;
60 66
    private String description = null;
......
381 387

  
382 388
    public File downloadFile(SimpleTaskStatus taskStatus)
383 389
        throws InstallPackageServiceException {
390

  
384 391
        Download download = new Download(taskStatus);
392

  
393
        // First download from the index base URL this package info has
394
        // been downloaded from. If not there, download from the URL
395
        // available in the downloadURL property.
396
        InstallerManager manager = InstallerLocator.getInstallerManager();
397
        URL baseURL = manager.getDownloadBaseURL();
398
        String relativePath =
399
            "../../pool/" + getCode() + "/" + getPackageFileName();
385 400
        try {
386
            return download.downloadFile(this.getDownloadURL(), null);
401
            URL downloadURL = new URL(baseURL, relativePath);
402
            return download.downloadFile(downloadURL, null);
387 403
        } catch (IOException e) {
388
            throw new FileDownloadException(this.getDownloadURL(), e);
404
            LOG.debug("Package " + getName()
405
                + " not found relative to the index URL: " + baseURL, e);
406
            try {
407
                return download.downloadFile(this.getDownloadURL(), null);
408
            } catch (IOException e2) {
409
                throw new FileDownloadException(this.getDownloadURL(), e);
410
            }
389 411
        }
390 412
    }
391 413

  
414
    private String getPackageFileName() {
415
        Object[] values =
416
            new Object[] { "gvSIG-desktop", getGvSIGVersion(), getCode(),
417
                getVersion(), getState(), getOperatingSystem(),
418
                getArchitecture(), getJavaVM() };
419
        StringBuffer buffer = new StringBuffer();
420
        for (int i = 0; i < values.length - 1; i++) {
421
            buffer.append(values[i]).append('-');
422
        }
423
        buffer.append(values[values.length - 1]).append(".gvspkg");
424
        return buffer.toString();
425
    }
426

  
392 427
    public void addFileToCopy(File file) {
393 428
        auxFiles.add(file);
394 429
    }

Also available in: Unified diff