Revision 37822 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
30 30
import java.io.File;
31 31
import java.net.URL;
32 32
import java.text.MessageFormat;
33
import java.util.ArrayList;
34
import java.util.List;
33 35

  
34 36
import org.gvsig.installer.lib.api.DependenciesCalculator;
35 37
import org.gvsig.installer.lib.api.Dependency;
......
67 69
			.getExtensionPointManager();
68 70

  
69 71
	private String packageSetNameFormat = "gvSIG-desktop-{0}-{1}-{2}-{4}-{5}-{6}-{7}.gvspks";
70

  
71 72
	private String packageNameFormat = "gvSIG-desktop-{0}-{1}-{2}-{4}-{5}-{6}-{7}.gvspkg";
72

  
73 73
	private String packageIndexNameFormat = "gvSIG-desktop-{0}-{1}-{2}-{4}-{5}-{6}-{7}.gvspki";
74 74

  
75 75
	private URL BaseDownloadURL = null;
76 76
	private String version = null;
77
	private List<File> repositoriesPathsList = null;
78
	private File defaultAddonRepository = null;
77 79

  
78 80
	public DefaultInstallerManager() {
79 81
		super(new DefaultInstallerProviderManager());
82
		repositoriesPathsList = new ArrayList<File>();
80 83
	}
81 84

  
82 85
	public String getPackageSetNameFormat() {
......
103 106
		this.packageIndexNameFormat = packageIndexNameFormat;
104 107
	}
105 108

  
106
	public MakePluginPackageService getMakePluginPackageService(
107
			File pluginsDirectory) throws MakePluginPackageServiceException {
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
	public MakePluginPackageService getMakePluginPackageService()
125
			throws MakePluginPackageServiceException {
108 126
		ExtensionPoint ep = extensionPoints
109 127
				.add(INSTALLER_MANAGER_EXTENSION_POINT);
110 128
		try {
111
			Object[] args = new Object[] { this, pluginsDirectory };
129
			Object[] args = new Object[] { this };
112 130
			return (MakePluginPackageService) ep.create(
113 131
					INSTALLER_CREATION_SERVICE_NAME, args);
114 132
		} catch (Exception e) {
......
196 214

  
197 215
	public PackageInfo[] getInstalledPackages(File pluginsDirectory)
198 216
			throws MakePluginPackageServiceException {
199
		MakePluginPackageService service = getMakePluginPackageService(pluginsDirectory);
217
		MakePluginPackageService service = getMakePluginPackageService();
200 218
		return service.getInstalledPackages();
201 219
	}
202 220

  
221
	public PackageInfo[] getInstalledPackages()
222
			throws MakePluginPackageServiceException {
223
		MakePluginPackageService service = getMakePluginPackageService();
224
		return service.getInstalledPackages();
225
	}
226

  
203 227
	public String getDefaultPackageFileExtension() {
204 228
		return "gvspkg";
205 229
	}
......
287 311
		this.version = version;
288 312
	}
289 313

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

  
320
	public List<File> getAddonRepositories() {
321
		return repositoriesPathsList;
322
	}
323

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

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

  
333
				// recorrer los directorios que haya dentro
334
				for (int j = 0; j < folderRepoList.length; j++) {
335
					File addonFolder = folderRepoList[j];
336
					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
							}
346
						}
347
					}
348

  
349
				}
350
			}
351
		}
352

  
353
		return addonFoldersList;
354
	}
355

  
356
	public File getAddonFolder(String code) {
357
		List<File> pluginPaths = this.getAddonFolders();
358
		for (int i = 0; i < pluginPaths.size(); i++) {
359
			if (pluginPaths.get(i).getName().equals(code)) {
360
				return pluginPaths.get(i);
361
			}
362
		}
363
		return null;
364
	}
365

  
366
	public File getDefaultAddonRepository() {
367
		return defaultAddonRepository;
368
	}
369

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

  
290 374
}

Also available in: Unified diff