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
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