gvsig-scripting / org.gvsig.scripting / trunk / org.gvsig.scripting / org.gvsig.scripting.app / org.gvsig.scripting.app.mainplugin / src / main / java / org / gvsig / scripting / app / extension / ScriptsInstallerInitializer.java @ 1063
History | View | Annotate | Download (2.6 KB)
1 |
package org.gvsig.scripting.app.extension; |
---|---|
2 |
|
3 |
import java.io.File; |
4 |
import org.apache.commons.io.FileUtils; |
5 |
import org.gvsig.andami.PluginServices; |
6 |
import org.gvsig.andami.PluginsLocator; |
7 |
import org.gvsig.andami.PluginsManager; |
8 |
import org.gvsig.installer.lib.api.InstallerLocator; |
9 |
import org.gvsig.installer.lib.api.InstallerManager; |
10 |
import org.gvsig.installer.lib.spi.InstallerProviderLocator; |
11 |
import org.gvsig.scripting.ScriptingLocator; |
12 |
import org.gvsig.scripting.ScriptingManager; |
13 |
import org.gvsig.tools.service.spi.ProviderFactory; |
14 |
import org.gvsig.tools.service.spi.ProviderManager; |
15 |
import org.gvsig.tools.util.Invocable; |
16 |
import org.slf4j.Logger; |
17 |
import org.slf4j.LoggerFactory; |
18 |
|
19 |
public class ScriptsInstallerInitializer implements Invocable { |
20 |
|
21 |
public static final String VERSION_FORMAT = "%M.%m.%r"; |
22 |
|
23 |
private static final Logger LOG = LoggerFactory.getLogger(ScriptsInstallerInitializer.class); |
24 |
|
25 |
@Override
|
26 |
public Object call(Object... args) { |
27 |
// Cuando se hace la llamada a este metodo, aun no esta inicializado gvSIG.
|
28 |
// Los servicios que ofrece el PluginsManager no son completos, solo algunos
|
29 |
// de ellos estan disponibles. La lista de plugins aun no se ha cargado.
|
30 |
try {
|
31 |
String pluginName = (String) args[0]; |
32 |
|
33 |
ProviderManager providerManager = InstallerProviderLocator.getProviderManager(); |
34 |
PluginsManager pluginManager = PluginsLocator.getManager(); |
35 |
ScriptingManager manager = ScriptingLocator.getManager(); |
36 |
InstallerManager installerManager = InstallerLocator.getInstallerManager(); |
37 |
File pluginHomeFolder = pluginManager.getPluginHomeFolder(pluginName);
|
38 |
|
39 |
String gvsigversion = pluginManager.getApplicationVersion().format(VERSION_FORMAT) ;
|
40 |
File home = ScriptingUtils.getScriptsHomeFolder(pluginHomeFolder, gvsigversion);
|
41 |
|
42 |
manager.setHomeFolder(home); |
43 |
manager.setPackagesFolder(pluginManager.getInstallFolder()); |
44 |
|
45 |
File localAddonRepositoryFolder = new File(manager.getRootUserFolder(), "addons"); |
46 |
|
47 |
ProviderFactory factory = manager.getInstallerFactory(); |
48 |
providerManager.addProviderFactory(factory); |
49 |
|
50 |
installerManager.setDefaultLocalAddonRepository( |
51 |
localAddonRepositoryFolder, |
52 |
factory.getName() |
53 |
); |
54 |
|
55 |
return true; |
56 |
|
57 |
} catch (Exception ex) { |
58 |
LOG.warn("Problems initializing scripts installer.",ex);
|
59 |
return false; |
60 |
} |
61 |
} |
62 |
|
63 |
} |