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 @ 989

History | View | Annotate | Download (2.19 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.PluginsLocator;
6
import org.gvsig.andami.PluginsManager;
7
import org.gvsig.installer.lib.api.InstallerLocator;
8
import org.gvsig.installer.lib.api.InstallerManager;
9
import org.gvsig.installer.lib.spi.InstallerProviderLocator;
10
import org.gvsig.scripting.ScriptingLocator;
11
import org.gvsig.scripting.ScriptingManager;
12
import org.gvsig.tools.service.spi.ProviderFactory;
13
import org.gvsig.tools.service.spi.ProviderManager;
14
import org.gvsig.tools.util.Invocable;
15
import org.slf4j.Logger;
16
import org.slf4j.LoggerFactory;
17

    
18
public class ScriptsInstallerInitializer implements Invocable {
19

    
20
    private static final Logger LOG = LoggerFactory.getLogger(ScriptsInstallerInitializer.class);
21
   
22
    @Override
23
    public Object call(Object... args) {
24
        try {
25
            String pluginName = (String) args[0];
26
            
27
            ProviderManager providerManager = InstallerProviderLocator.getProviderManager();            
28
            PluginsManager pluginManager = PluginsLocator.getManager();
29
            ScriptingManager manager = ScriptingLocator.getManager();
30
            InstallerManager installerManager = InstallerLocator.getInstallerManager();
31
            
32
            String gvsigversion = pluginManager.getApplicationVersion().format("%M.%m.%r") ;
33
            File home = FileUtils.getFile(pluginManager.getPlugin(this).getPluginHomeFolder(), gvsigversion) ;
34
            
35
            manager.setHomeFolder(home);
36
            manager.setPackagesFolder(pluginManager.getInstallFolder());
37
            
38
            File localAddonRepositoryFolder = new File(manager.getRootUserFolder(), "addons");
39
            
40
            ProviderFactory factory = manager.getInstallerFactory();
41
            providerManager.addProviderFactory(factory);
42
            
43
            installerManager.setDefaultLocalAddonRepository(
44
                    localAddonRepositoryFolder,
45
                    factory.getName()
46
            );
47
            
48
            return true;
49
            
50
        } catch (Exception ex) {
51
            LOG.warn("Problems initializing scripts installer.",ex);
52
            return false;
53
        }
54
    }
55

    
56
}