Changeset 1623 in josm


Ignore:
Timestamp:
May 28, 2009 5:45:04 PM (4 years ago)
Author:
stoecker
Message:

closed #2596 - wrong texts in plugin information

Location:
trunk/src/org/openstreetmap/josm/plugins
Files:
2 edited

Legend:

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

    r1588 r1623  
    2929 */ 
    3030public class PluginInformation { 
    31  
    32     public final File file; 
    33     public final String name; 
    34     public final String mainversion; 
    35     public final String className; 
    36     public final String requires; 
    37     public final String link; 
    38     public final String description; 
    39     public final boolean early; 
    40     public final String author; 
    41     public final int stage; 
    42     public final String version; 
     31    public File file = null; 
     32    public String name = null; 
     33    public String mainversion = null; 
     34    public String className = null; 
     35    public String requires = null; 
     36    public String link = null; 
     37    public String description = null; 
     38    public boolean early = false; 
     39    public String author = null; 
     40    public int stage = 50; 
     41    public String version = null; 
    4342    public String downloadlink = null; 
    44     public final List<URL> libraries = new LinkedList<URL>(); 
     43    public List<URL> libraries = new LinkedList<URL>(); 
    4544 
    4645    public final Map<String, String> attr = new TreeMap<String, String>(); 
     
    5958     */ 
    6059    public PluginInformation(File file) { 
    61         this(file, file.getName().substring(0, file.getName().length()-4), null); 
    62     } 
    63  
    64     public PluginInformation(File file, String name, InputStream manifestStream) { 
     60        this(file, file.getName().substring(0, file.getName().length()-4)); 
     61    } 
     62 
     63    public PluginInformation(File file, String name) { 
    6564        this.name = name; 
    6665        this.file = file; 
    6766        try { 
    68             Manifest manifest; 
    69             JarInputStream jar = null; 
    70             if (file != null) { 
    71                 jar = new JarInputStream(new FileInputStream(file)); 
    72                 manifest = jar.getManifest(); 
    73                 if (manifest == null) 
    74                     throw new IOException(file+" contains no manifest."); 
    75             } else { 
    76                 manifest = new Manifest(); 
    77                 manifest.read(manifestStream); 
     67            JarInputStream jar = new JarInputStream(new FileInputStream(file)); 
     68            Manifest manifest = jar.getManifest(); 
     69            if (manifest == null) 
     70                throw new IOException(file+" contains no manifest."); 
     71            scanManifest(manifest); 
     72            libraries.add(0, fileToURL(file)); 
     73            jar.close(); 
     74        } catch (IOException e) { 
     75            throw new PluginException(null, name, e); 
     76        } 
     77    } 
     78 
     79    public PluginInformation(InputStream manifestStream, String name) { 
     80        this.name = name; 
     81        try { 
     82            Manifest manifest = new Manifest(); 
     83            manifest.read(manifestStream); 
     84            scanManifest(manifest); 
     85        } catch (IOException e) { 
     86            throw new PluginException(null, name, e); 
     87        } 
     88    } 
     89 
     90    private void scanManifest(Manifest manifest) 
     91    { 
     92        String lang = Main.getLanguageCode()+"_"; 
     93        Attributes attr = manifest.getMainAttributes(); 
     94        className = attr.getValue("Plugin-Class"); 
     95        String s = attr.getValue(lang+"Plugin-Link"); 
     96        if(s == null) 
     97            s = attr.getValue("Plugin-Link"); 
     98        link = s; 
     99        requires = attr.getValue("Plugin-Requires"); 
     100        s = attr.getValue(lang+"Plugin-Description"); 
     101        if(s == null) 
     102        { 
     103            s = attr.getValue("Plugin-Description"); 
     104            if(s != null) 
     105                s = tr(s); 
     106        } 
     107        description = s; 
     108        early = Boolean.parseBoolean(attr.getValue("Plugin-Early")); 
     109        String stageStr = attr.getValue("Plugin-Stage"); 
     110        stage = stageStr == null ? 50 : Integer.parseInt(stageStr); 
     111        version = attr.getValue("Plugin-Version"); 
     112        mainversion = attr.getValue("Plugin-Mainversion"); 
     113        author = attr.getValue("Author"); 
     114 
     115        String classPath = attr.getValue(Attributes.Name.CLASS_PATH); 
     116        if (classPath != null) { 
     117            for (String entry : classPath.split(" ")) { 
     118                File entryFile; 
     119                if (new File(entry).isAbsolute()) 
     120                    entryFile = new File(entry); 
     121                else 
     122                    entryFile = new File(file.getParent(), entry); 
     123 
     124                libraries.add(fileToURL(entryFile)); 
    78125            } 
    79             if (manifest != null) { 
    80                 String s; 
    81                 String lang = Main.getLanguageCode()+"_"; 
    82                 Attributes attr = manifest.getMainAttributes(); 
    83                 className = attr.getValue("Plugin-Class"); 
    84                 s = attr.getValue(lang+"Plugin-Link"); 
    85                 if(s == null) 
    86                     s = attr.getValue("Plugin-Link"); 
    87                 link = s; 
    88                 requires = attr.getValue("Plugin-Requires"); 
    89                 s = attr.getValue(lang+"Plugin-Description"); 
    90                 if(s == null) 
    91                 { 
    92                     s = attr.getValue("Plugin-Description"); 
    93                     if(s != null) 
    94                         s = tr(s); 
    95                 } 
    96                 description = s; 
    97                 early = Boolean.parseBoolean(attr.getValue("Plugin-Early")); 
    98                 String stageStr = attr.getValue("Plugin-Stage"); 
    99                 stage = stageStr == null ? 50 : Integer.parseInt(stageStr); 
    100                 version = attr.getValue("Plugin-Version"); 
    101                 mainversion = attr.getValue("Plugin-Mainversion"); 
    102                 author = attr.getValue("Author"); 
    103  
    104                 String classPath = attr.getValue(Attributes.Name.CLASS_PATH); 
    105                 if (classPath != null) { 
    106                     for (String entry : classPath.split(" ")) { 
    107                         File entryFile; 
    108                         if (new File(entry).isAbsolute()) { 
    109                             entryFile = new File(entry); 
    110                         } else { 
    111                             entryFile = new File(file.getParent(), entry); 
    112                         } 
    113  
    114                         libraries.add(fileToURL(entryFile)); 
    115                     } 
    116                 } 
    117                 for (Object o : attr.keySet()) 
    118                     this.attr.put(o.toString(), attr.getValue(o.toString())); 
    119             } else { 
    120                 // resource-only plugin 
    121                 className = null; 
    122                 mainversion = null; 
    123                 description = null; 
    124                 early = false; 
    125                 stage = 50; 
    126                 requires = null; 
    127                 link = null; 
    128                 version = null; 
    129                 author = null; 
    130             } 
    131             if (file != null) 
    132                 libraries.add(0, fileToURL(file)); 
    133  
    134             if (jar != null) 
    135                 jar.close(); 
    136         } catch (IOException e) { 
    137             throw new PluginException(null, name, e); 
    138         } 
     126        } 
     127        for (Object o : attr.keySet()) 
     128            this.attr.put(o.toString(), attr.getValue(o.toString())); 
    139129    } 
    140130 
     
    221211        InputStream manifestStream = PluginInformation.class.getResourceAsStream("/org/openstreetmap/josm/plugins/"+name+"/MANIFEST.MF"); 
    222212        if (manifestStream != null) 
    223             return new PluginInformation(null, pluginName, manifestStream); 
     213            return new PluginInformation(manifestStream, pluginName); 
    224214 
    225215        Collection<String> locations = getPluginLocations(); 
  • trunk/src/org/openstreetmap/josm/plugins/PluginSelection.java

    r1603 r1623  
    141141                if (availablePlugins.get(pname) == null) pluginsToRemove.add(pname); 
    142142            } 
    143              
     143 
    144144            for (String pname : pluginsToRemove) { 
    145145                pluginMap.remove(pname); 
     
    272272                    if (fname.endsWith(".jar")) { 
    273273                        try { 
    274                             PluginInformation info = new PluginInformation(f,fname.substring(0,fname.length()-4), null); 
     274                            PluginInformation info = new PluginInformation(f,fname.substring(0,fname.length()-4)); 
    275275                            if (!availablePlugins.containsKey(info.name)) 
    276276                                availablePlugins.put(info.name, info); 
     
    302302                                        try 
    303303                                        { 
    304                                             PluginInformation info = new PluginInformation(null, name.substring(0,name.length()-4), 
    305                                             new ByteArrayInputStream(manifest.getBytes())); 
     304                                            PluginInformation info = new PluginInformation( 
     305                                            new ByteArrayInputStream(manifest.getBytes("utf-8")), 
     306                                            name.substring(0,name.length()-4)); 
    306307                                            info.downloadlink = url; 
    307308                                            if(!availablePlugins.containsKey(info.name)) 
     
    322323                            if(name != null) 
    323324                            { 
    324                                 PluginInformation info = new PluginInformation(null, name.substring(0,name.length()-4), 
    325                                 new ByteArrayInputStream(manifest.getBytes())); 
     325                                PluginInformation info = new PluginInformation( 
     326                                new ByteArrayInputStream(manifest.getBytes("utf-8")), 
     327                                name.substring(0,name.length()-4)); 
    326328                                info.downloadlink = url; 
    327329                                if(!availablePlugins.containsKey(info.name)) 
Note: See TracChangeset for help on using the changeset viewer.