Statistics
| Revision:

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
}