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

View differences:

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