Revision 37857 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/DefaultInstallerManager.java

View differences:

DefaultInstallerManager.java
28 28
package org.gvsig.installer.lib.impl;
29 29

  
30 30
import java.io.File;
31
import java.io.IOException;
32
import java.io.InputStream;
31 33
import java.net.URL;
32 34
import java.text.MessageFormat;
33 35
import java.util.ArrayList;
36
import java.util.HashSet;
34 37
import java.util.List;
38
import java.util.Set;
35 39

  
36 40
import org.gvsig.installer.lib.api.DependenciesCalculator;
37 41
import org.gvsig.installer.lib.api.Dependency;
......
74 78

  
75 79
	private URL BaseDownloadURL = null;
76 80
	private String version = null;
77
	private List<File> repositoriesPathsList = null;
78
	private File defaultAddonRepository = null;
81
	private Set<File> repositoriesPaths = null;
82
	private File defaultRepositoriesPath = null;
79 83

  
80 84
	public DefaultInstallerManager() {
81 85
		super(new DefaultInstallerProviderManager());
82
		repositoriesPathsList = new ArrayList<File>();
86
		repositoriesPaths = new HashSet<File>();
83 87
	}
84 88

  
85 89
	public String getPackageSetNameFormat() {
......
106 110
		this.packageIndexNameFormat = packageIndexNameFormat;
107 111
	}
108 112

  
109
	// public MakePluginPackageService getMakePluginPackageService(
110
	// File pluginsDirectory) throws MakePluginPackageServiceException {
111
	// ExtensionPoint ep = extensionPoints
112
	// .add(INSTALLER_MANAGER_EXTENSION_POINT);
113
	// try {
114
	// Object[] args = new Object[] { this, pluginsDirectory };
115
	// return (MakePluginPackageService) ep.create(
116
	// INSTALLER_CREATION_SERVICE_NAME, args);
117
	// } catch (Exception e) {
118
	// throw new MakePluginPackageServiceException(
119
	// "Exception creating the installer service to create installers",
120
	// e);
121
	// }
122
	// }
123

  
124 113
	public MakePluginPackageService getMakePluginPackageService()
125 114
			throws MakePluginPackageServiceException {
126 115
		ExtensionPoint ep = extensionPoints
......
311 300
		this.version = version;
312 301
	}
313 302

  
303
	public File getDefaultLocalAddonRepository() {
304
		return this.defaultRepositoriesPath;
305
	}
306

  
307
	public void setDefaultLocalAddonRepository(File defaultAddonsRepository) {
308
		this.defaultRepositoriesPath = defaultAddonsRepository;
309
		this.repositoriesPaths.add(defaultAddonsRepository);
310
	}
311

  
314 312
	public void addLocalAddonRepository(File path) {
315
		if (path.isDirectory() && path.exists()) {
316
			repositoriesPathsList.add(path);
317
		}
313
		repositoriesPaths.add(path);
318 314
	}
319 315

  
320 316
	public List<File> getLocalAddonRepositories() {
321
		return repositoriesPathsList;
317
		List<File> l = new ArrayList<File>();
318
		l.addAll(repositoriesPaths);
319
		return l;
322 320
	}
323 321

  
324 322
	public List<File> getAddonFolders() {
325
		List<File> addonFoldersList = new ArrayList<File>();
323
		List<File> addonFolders = new ArrayList<File>();
326 324

  
327 325
		// Para cada directorio en repositoriesPathsList
328
		for (int i = 0; i < repositoriesPathsList.size(); i++) {
329
			File repoPath = repositoriesPathsList.get(i);
326
		List<File> localAddonRepositories = this.getLocalAddonRepositories();
327
		for (int i = 0; i < localAddonRepositories.size(); i++) {
328
			File repoPath = localAddonRepositories.get(i);
330 329
			if (repoPath.isDirectory() && repoPath.exists()) {
331 330
				File[] folderRepoList = repoPath.listFiles();
332 331

  
......
334 333
				for (int j = 0; j < folderRepoList.length; j++) {
335 334
					File addonFolder = folderRepoList[j];
336 335
					if (addonFolder.isDirectory()) {
337
						File[] fileList = addonFolder.listFiles();
338

  
339
						for (int k = 0; k < fileList.length; k++) {
340
							File file = fileList[k];
341
							// si tiene un package.info dentro
342
							if (file.getName().equals("package.info")) {
343
								addonFoldersList.add(addonFolder);
344
								break;
345
							}
336
						File pkginfofile = new File(addonFolder, "package.info");
337
						if (pkginfofile.exists()) {
338
							addonFolders.add(addonFolder);
339
							break;
346 340
						}
347 341
					}
348 342

  
......
350 344
			}
351 345
		}
352 346

  
353
		return addonFoldersList;
347
		return addonFolders;
354 348
	}
355 349

  
356 350
	public File getAddonFolder(String code) {
......
363 357
		return null;
364 358
	}
365 359

  
366
	public File getDefaultLocalAddonRepository() {
367
		return defaultAddonRepository;
360
	public List<byte[]> getPublicKeys() {
361
		byte[] rawkey;
362
		try {
363
			InputStream is = this.getClass().getResourceAsStream("/org/gvsig/installer/lib/keys/key.public");
364
			rawkey = new byte[is.available()];
365
			is.read(rawkey);
366
			is.close();
367
		} catch (IOException e) {
368
			return null;
369
		}
370
		List<byte[]> keys = new ArrayList<byte[]>();
371
		keys.add(rawkey);
372
		return keys;
368 373
	}
369 374

  
370
	public void setDefaultLocalAddonRepository(File defaultAddonsRepository) {
371
		this.defaultAddonRepository = defaultAddonsRepository;
372
	}
373

  
374
	public List getPublicKeys() {
375
		// TODO Auto-generated method stub
376
		return null;
377
	}
378

  
379 375
}

Also available in: Unified diff