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 @ 1086
History | View | Annotate | Download (2.6 KB)
1 | 821 | jjdelcerro | package org.gvsig.scripting.app.extension; |
---|---|---|---|
2 | |||
3 | import java.io.File; |
||
4 | import org.apache.commons.io.FileUtils; |
||
5 | 998 | jjdelcerro | import org.gvsig.andami.PluginServices; |
6 | 821 | jjdelcerro | 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 | 1063 | jjdelcerro | public static final String VERSION_FORMAT = "%M.%m.%r"; |
22 | |||
23 | 821 | jjdelcerro | private static final Logger LOG = LoggerFactory.getLogger(ScriptsInstallerInitializer.class); |
24 | |||
25 | @Override
|
||
26 | public Object call(Object... args) { |
||
27 | 998 | jjdelcerro | // 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 | 821 | jjdelcerro | 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 | 998 | jjdelcerro | File pluginHomeFolder = pluginManager.getPluginHomeFolder(pluginName);
|
38 | 821 | jjdelcerro | |
39 | 1063 | jjdelcerro | String gvsigversion = pluginManager.getApplicationVersion().format(VERSION_FORMAT) ;
|
40 | File home = ScriptingUtils.getScriptsHomeFolder(pluginHomeFolder, gvsigversion);
|
||
41 | 821 | jjdelcerro | |
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 | } |