Changeset 152 in josm for src


Ignore:
Timestamp:
2006-10-07T01:57:23+02:00 (18 years ago)
Author:
imi
Message:
  • fixed (again) the plugin loader, now for Windows.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/org/openstreetmap/josm/plugins/PluginLoader.java

    r151 r152  
    2020         */
    2121        public String loadClassName(File pluginFile) throws PluginException {
    22             try {
    23                 JarInputStream jar = new JarInputStream(new FileInputStream(pluginFile));
    24                 Manifest manifest = jar.getManifest();
    25                 String pluginClass = manifest.getMainAttributes().getValue("Plugin-Class");
    26                 jar.close();
    27                 return pluginClass;
    28         } catch (IOException e) {
    29                 String name = pluginFile.getName();
    30                 if (name.endsWith(".jar"))
    31                         name = name.substring(0, name.length()-4);
    32                 throw new PluginException(null, name, e);
    33         }
    34     }
     22                try {
     23                        JarInputStream jar = new JarInputStream(new FileInputStream(pluginFile));
     24                        Manifest manifest = jar.getManifest();
     25                        String pluginClass = manifest.getMainAttributes().getValue("Plugin-Class");
     26                        jar.close();
     27                        return pluginClass;
     28                } catch (IOException e) {
     29                        String name = pluginFile.getName();
     30                        if (name.endsWith(".jar"))
     31                                name = name.substring(0, name.length()-4);
     32                        throw new PluginException(null, name, e);
     33                }
     34        }
    3535
    3636        /**
     
    4242                        name = name.substring(0, name.length()-4);
    4343                try {
     44                        String url = "file://"+pluginFile.getAbsolutePath();
     45                        url = url.replace('\\', '/');
     46
     47                        // *sic*
     48                        if (System.getProperty("os.name").startsWith("Windows"))
     49                                url = "file:/" + url.substring(7);
     50
    4451                        ClassLoader loader = URLClassLoader.newInstance(
    45                                         new URL[]{new URL("file://"+pluginFile.getAbsolutePath())},
     52                                        new URL[]{new URL(url)},
    4653                                        getClass().getClassLoader());
    4754                        Object plugin = Class.forName(pluginClass, true, loader).newInstance();
    4855                        return new PluginProxy(plugin, name);
    49         } catch (Exception e) {
    50                 throw new PluginException(null, name, e);
    51         }
     56                } catch (Exception e) {
     57                        throw new PluginException(null, name, e);
     58                }
    5259        }
    5360}
Note: See TracChangeset for help on using the changeset viewer.