Revision 33743 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/execution/DefaultInstallPackageService.java

View differences:

DefaultInstallPackageService.java
31 31
import java.io.FileInputStream;
32 32
import java.io.FileNotFoundException;
33 33
import java.io.InputStream;
34
import java.net.URI;
35 34
import java.util.ArrayList;
36 35
import java.util.HashMap;
37 36
import java.util.List;
......
56 55
 */
57 56
public class DefaultInstallPackageService implements InstallPackageService {
58 57

  
59
    private Map<PackageInfo, URI> packageInfoUriMap = null;
58
    private Map<PackageInfo, File> packageInfoFileMap = null;
60 59
    private Map<PackageInfo, String> zipEntriesMap = null;
61 60
    private List<PackageInfo> packageInfos = null;
62 61
    private Manager manager;
......
67 66
    public DefaultInstallPackageService(DefaultInstallerManager manager) {
68 67
        super();
69 68
        this.manager = manager;
70
        packageInfoUriMap = new HashMap<PackageInfo, URI>();
69
        packageInfoFileMap = new HashMap<PackageInfo, File>();
71 70
        packageInfos = new ArrayList<PackageInfo>();
72 71
        zipEntriesMap = new HashMap<PackageInfo, String>();
73 72
        installerProviderServices =
......
81 80
            throw new InstallPackageServiceException(
82 81
                "application_directory_not_found");
83 82
        }
84
        if (!packageInfoUriMap.containsKey(packageInfo)) {
83
        if (!packageInfoFileMap.containsKey(packageInfo)) {
85 84
            throw new InstallPackageServiceException("package_not_found");
86 85
        }
87 86

  
88 87
        InputStream bundleStream = null;
89 88

  
90 89
        try {
91
            File file = new File(packageInfoUriMap.get(packageInfo));
90
            File file = packageInfoFileMap.get(packageInfo);
92 91
            bundleStream = new FileInputStream(file);
93 92
        } catch (FileNotFoundException e) {
94 93
            throw new InstallPackageServiceException("not_uri_selected");
......
144 143
        return null;
145 144
    }
146 145

  
147
    public void addBundle(URI inputURI) throws InstallPackageServiceException {
148
        File file = new File(inputURI);
149
        if (!file.exists()) {
146
    public void addBundle(File bundle) throws InstallPackageServiceException {
147
        if (!bundle.exists()) {
150 148
            throw new InstallPackageServiceException(
151
                "Only URI form existing file is supported");
149
                "Only an existing file is supported");
152 150
        }
153 151
        try {
154 152
            int packageInfoCount = packageInfos.size();
155
            installerProviderServices.readPackageInfo(
156
                new FileInputStream(file), packageInfos, zipEntriesMap);
153
            installerProviderServices.readPackageInfo(new FileInputStream(
154
                bundle), packageInfos, zipEntriesMap);
157 155
            for (int i = packageInfoCount; i < packageInfos.size(); i++) {
158
                packageInfoUriMap.put(packageInfos.get(i), inputURI);
156
                packageInfoFileMap.put(packageInfos.get(i), bundle);
159 157
            }
160 158
        } catch (FileNotFoundException e) {
161 159
            logger.error("File not found", e);
......
170 168
        }
171 169
        File[] files = directory.listFiles();
172 170
        for (int i = 0; i < files.length; i++) {
173
            addBundle(files[i].toURI());
171
            if (files[i].isFile()) {
172
                addBundle(files[i]);
173
            }
174 174
        }
175 175
    }
176 176

  

Also available in: Unified diff