Revision 1092 org.gvsig.scripting/trunk/org.gvsig.scripting/org.gvsig.scripting.app/org.gvsig.scripting.app.mainplugin/src/main/java/org/gvsig/scripting/app/extension/ScriptingExtension.java

View differences:

ScriptingExtension.java
21 21
 */
22 22
package org.gvsig.scripting.app.extension;
23 23

  
24
import java.io.File;
24 25
import java.io.InputStream;
26
import java.net.MalformedURLException;
27
import java.net.URL;
25 28
import java.util.List;
26 29
import org.apache.commons.io.IOUtils;
27 30
import org.apache.commons.lang3.StringUtils;
......
31 34
import org.gvsig.andami.PluginsLocator;
32 35
import org.gvsig.andami.PluginsManager;
33 36
import org.gvsig.andami.plugins.Extension;
37
import org.gvsig.andami.plugins.PluginClassLoader;
34 38
import org.gvsig.scripting.ScriptingLocator;
35 39
import org.gvsig.scripting.ScriptingManager;
36 40
import org.gvsig.scripting.swing.api.ScriptingSwingLocator;
......
179 183
        return true;
180 184
    }
181 185

  
186
    public static void add_classpath(URL url) {
187
        if( url==null ) {
188
            LOGGER.warn("Can't add to the plugin classloader a null URL.");
189
            return;
190
        }
191
        try {
192
            PluginsManager manager = PluginsLocator.getManager();
193
            PluginServices thePlugin = manager.getPlugin(ScriptingExtension.class);
194
            PluginClassLoader loader = thePlugin.getClassLoader();
195
            loader.addURL(url);
196
        } catch(Throwable th) {
197
            LOGGER.warn("Can't add the url '"+url.toString()+"' to the plugin classloader.",th);
198
        }
199
    }
200
    
201
    public static void add_classpath(File path) {
202
        if( path==null ) {
203
            LOGGER.warn("Can't create a url from a null file.");
204
            return;
205
        }
206
        try {
207
            URL url = path.toURI().toURL();
208
            add_classpath(url);
209
        } catch (MalformedURLException ex) {
210
            LOGGER.warn("Can't create a url from the path '"+path+"'.", ex);
211
        }
212
    }
213
    
214
    public static void add_classpath(String path) {
215
        if( path==null ) {
216
            LOGGER.warn("Can't create a url from a null path.");
217
            return;
218
        }
219
        File f = new File(path);
220
        add_classpath(f);
221
    }
222

  
182 223
    @Override
183 224
    public PluginServices getPlugin() {
184 225
        PluginServices thePlugin = super.getPlugin();
......
189 230
        return thePlugin;
190 231
    }
191 232
    
192

  
193 233
}

Also available in: Unified diff