Revision 34974 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/creation/DefaultMakePluginPackageService.java
DefaultMakePluginPackageService.java | ||
---|---|---|
35 | 35 |
import java.io.FileReader; |
36 | 36 |
import java.io.IOException; |
37 | 37 |
import java.io.InputStream; |
38 |
import java.io.InputStreamReader; |
|
38 | 39 |
import java.io.OutputStream; |
40 |
import java.net.URL; |
|
41 |
import java.net.URLConnection; |
|
39 | 42 |
import java.util.ArrayList; |
40 | 43 |
import java.util.HashMap; |
41 | 44 |
import java.util.List; |
... | ... | |
118 | 121 |
File antFile = getAntFile(pluginDirectoryFile); |
119 | 122 |
if (antFile.exists()) { |
120 | 123 |
try { |
121 |
packageInfo.setAnScript(readFileAsString(antFile |
|
124 |
packageInfo.setAntScript(readFileAsString(antFile
|
|
122 | 125 |
.getAbsolutePath())); |
123 | 126 |
} catch (IOException e) { |
124 | 127 |
logger.error("Not possible to read the ant file"); |
... | ... | |
157 | 160 |
.getParentFile().getAbsolutePath() |
158 | 161 |
+ pluginFileName); |
159 | 162 |
|
160 |
packageInfo.addFileToCopy(pluginFile);
|
|
163 |
packageInfo.getAuxFiles().add(pluginFile);
|
|
161 | 164 |
} |
162 | 165 |
} |
163 | 166 |
|
... | ... | |
225 | 228 |
installerProviderServices.writePackageInfoForIndex(folder, packageInfo); |
226 | 229 |
} |
227 | 230 |
|
231 |
private void createInstallDirInPluginDir(PackageInfo packageInfo) throws MakePluginPackageServiceException { |
|
232 |
File pluginDirectory; |
|
233 |
pluginDirectory = getAbsolutePluginPackageDirectory(packageInfo); |
|
234 |
File installdir = new File(pluginDirectory, "install"); |
|
235 |
installdir.mkdir(); |
|
236 |
|
|
237 |
} |
|
238 |
|
|
228 | 239 |
private void writeAntFile(PackageInfo packageInfo) |
229 | 240 |
throws MakePluginPackageServiceException { |
230 | 241 |
try { |
242 |
createInstallDirInPluginDir(packageInfo); |
|
231 | 243 |
ByteArrayInputStream in = new ByteArrayInputStream(packageInfo |
232 | 244 |
.getAntScript().getBytes()); |
233 | 245 |
OutputStream out = new FileOutputStream( |
... | ... | |
251 | 263 |
private void writeSelectedFiles(PackageInfo packageInfo) |
252 | 264 |
throws MakePluginPackageServiceException { |
253 | 265 |
try { |
266 |
createInstallDirInPluginDir(packageInfo); |
|
254 | 267 |
String copiedFilesDirectoryName = getAbsoulteCopiedFilesDirectoryName(packageInfo); |
255 | 268 |
|
256 | 269 |
// Deleting the previous files folder |
... | ... | |
262 | 275 |
String applicationDirectory = pluginsDirectory.getParentFile() |
263 | 276 |
.getParent(); |
264 | 277 |
|
265 |
for (int i = 0; i < packageInfo.getFileToCopySize(); i++) {
|
|
266 |
String sourceFile = packageInfo.getFileToCopyAt(i)
|
|
267 |
.getAbsolutePath();
|
|
278 |
List<File> files = packageInfo.getAuxFiles();
|
|
279 |
for (int i = 0; i < files.size(); i++) {
|
|
280 |
String sourceFile = files.get(i).getAbsolutePath();
|
|
268 | 281 |
|
269 | 282 |
// Create the final path |
270 | 283 |
String destFile = sourceFile.substring( |
... | ... | |
326 | 339 |
return directories.get(packageInfo); |
327 | 340 |
} |
328 | 341 |
|
329 |
private String getCopiedFilesDirectoryName(PackageInfo packageInfo) |
|
330 |
throws MakePluginPackageServiceException { |
|
331 |
return getPluginPackageDirectory(packageInfo) + File.separator
|
|
332 |
+ COPIED_FILES_DIRECTORY_NAME; |
|
333 |
} |
|
342 |
// private String getCopiedFilesDirectoryName(PackageInfo packageInfo)
|
|
343 |
// throws MakePluginPackageServiceException {
|
|
344 |
// return getPluginPackageDirectory(packageInfo) + File.separator + "install" + File.separator
|
|
345 |
// + COPIED_FILES_DIRECTORY_NAME;
|
|
346 |
// }
|
|
334 | 347 |
|
335 | 348 |
private File getCopiedFilesDirectory(File pluginDirectory) |
336 | 349 |
throws MakePluginPackageServiceException { |
337 |
return new File(pluginDirectory.getAbsolutePath() + File.separator |
|
350 |
return new File(pluginDirectory.getAbsolutePath() + File.separator + "install" + File.separator
|
|
338 | 351 |
+ COPIED_FILES_DIRECTORY_NAME); |
339 | 352 |
} |
340 | 353 |
|
341 | 354 |
private String getAbsoulteCopiedFilesDirectoryName(PackageInfo packageInfo) |
342 | 355 |
throws MakePluginPackageServiceException { |
343 | 356 |
return getAbsolutePluginPackageDirectory(packageInfo).getAbsolutePath() |
344 |
+ File.separator + COPIED_FILES_DIRECTORY_NAME;
|
|
357 |
+ File.separator + "install" + File.separator + COPIED_FILES_DIRECTORY_NAME;
|
|
345 | 358 |
} |
346 | 359 |
|
347 | 360 |
private String getAntFileName(PackageInfo packageInfo) |
348 | 361 |
throws MakePluginPackageServiceException { |
349 |
return getPluginPackageDirectory(packageInfo) + File.separator |
|
362 |
return getPluginPackageDirectory(packageInfo) + File.separator + "install" + File.separator
|
|
350 | 363 |
+ ANT_FILE_NAME; |
351 | 364 |
} |
352 | 365 |
|
353 | 366 |
private File getAntFile(File pluginDirectory) |
354 | 367 |
throws MakePluginPackageServiceException { |
355 |
return new File(pluginDirectory.getAbsolutePath() + File.separator |
|
368 |
return new File(pluginDirectory.getAbsolutePath() + File.separator + "install" + File.separator
|
|
356 | 369 |
+ ANT_FILE_NAME); |
357 | 370 |
} |
358 | 371 |
|
359 | 372 |
private File getAbsoluteAntFile(PackageInfo packageInfo) |
360 | 373 |
throws MakePluginPackageServiceException { |
361 |
return new File(pluginsDirectory.getAbsolutePath() + File.separator |
|
374 |
return new File(pluginsDirectory.getAbsolutePath() + File.separator
|
|
362 | 375 |
+ getAntFileName(packageInfo)); |
363 | 376 |
} |
364 | 377 |
|
365 | 378 |
private File getAbsolutePluginPackageDirectory(PackageInfo packageInfo) |
366 | 379 |
throws MakePluginPackageServiceException { |
380 |
|
|
367 | 381 |
return new File(pluginsDirectory.getAbsolutePath() + File.separator |
368 | 382 |
+ getPluginPackageDirectory(packageInfo)); |
369 | 383 |
} |
... | ... | |
404 | 418 |
public String getDefaultAntScript() |
405 | 419 |
throws MakePluginPackageServiceException { |
406 | 420 |
try { |
407 |
return readFileAsString(getClass().getClassLoader()
|
|
408 |
.getResource(ANT_FILE_NAME).getFile());
|
|
421 |
URL resource = getClass().getResource(ANT_FILE_NAME);
|
|
422 |
return readUrlAsString(resource);
|
|
409 | 423 |
} catch (IOException e) { |
410 | 424 |
throw new MakePluginPackageServiceException( |
411 | 425 |
"Impossible to read the default ant file", e); |
412 | 426 |
} |
413 | 427 |
} |
414 | 428 |
|
415 |
private String readFileAsString(String filePath) throws java.io.IOException {
|
|
416 |
StringBuffer fileData = new StringBuffer(1000);
|
|
417 |
BufferedReader reader = new BufferedReader(new FileReader(filePath));
|
|
418 |
char[] buf = new char[1024];
|
|
419 |
int numRead = 0;
|
|
420 |
while ((numRead = reader.read(buf)) != -1) {
|
|
421 |
String readData = String.valueOf(buf, 0, numRead);
|
|
422 |
fileData.append(readData);
|
|
423 |
buf = new char[1024];
|
|
424 |
}
|
|
425 |
reader.close();
|
|
426 |
return fileData.toString();
|
|
427 |
}
|
|
429 |
private String readUrlAsString(URL url) throws java.io.IOException {
|
|
430 |
URLConnection urlConnection = url.openConnection();
|
|
431 |
InputStream inputStream = urlConnection.getInputStream();
|
|
432 |
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
|
|
433 |
StringBuffer fileData = new StringBuffer(1000);
|
|
434 |
String line = bufferedReader.readLine();
|
|
435 |
while (line != null) {
|
|
436 |
fileData.append(line+"\n");
|
|
437 |
line = bufferedReader.readLine();
|
|
438 |
}
|
|
439 |
bufferedReader.close();
|
|
440 |
return fileData.toString();
|
|
441 |
}
|
|
428 | 442 |
|
443 |
private String readFileAsString(String filePath) throws java.io.IOException { |
|
444 |
StringBuffer fileData = new StringBuffer(1000); |
|
445 |
BufferedReader reader = new BufferedReader(new FileReader(filePath)); |
|
446 |
char[] buf = new char[1024]; |
|
447 |
int numRead = 0; |
|
448 |
while ((numRead = reader.read(buf)) != -1) { |
|
449 |
String readData = String.valueOf(buf, 0, numRead); |
|
450 |
fileData.append(readData); |
|
451 |
buf = new char[1024]; |
|
452 |
} |
|
453 |
reader.close(); |
|
454 |
return fileData.toString(); |
|
455 |
} |
|
456 |
|
|
429 | 457 |
public File getPluginsDirectory() { |
430 | 458 |
return pluginsDirectory; |
431 | 459 |
} |
Also available in: Unified diff