Changeset 3232 in josm


Ignore:
Timestamp:
11.05.2010 09:25:21 (21 months ago)
Author:
jttt
Message:

Fix #2297 JOSM Webstart fails at loading plugins, cleanup puwg projection

Location:
trunk/src/org/openstreetmap/josm
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/projection/Puwg.java

    r3083 r3232  
    123123    public Collection<String> getPreferencesFromCode(String code) 
    124124    { 
    125         for (Projection p : Puwg.Zones) 
     125        for (PuwgData p : Puwg.Zones) 
    126126        { 
    127127            if(code.equals(p.toCode())) 
     
    151151} 
    152152 
    153 interface PuwgData extends Projection { 
    154     public double getPuwgCentralMeridianDeg(); 
    155     public double getPuwgCentralMeridian(); 
    156     public double getPuwgFalseEasting(); 
    157     public double getPuwgFalseNorthing(); 
    158     public double getPuwgScaleFactor(); 
     153interface PuwgData { 
     154    double getPuwgCentralMeridianDeg(); 
     155    double getPuwgCentralMeridian(); 
     156    double getPuwgFalseEasting(); 
     157    double getPuwgFalseNorthing(); 
     158    double getPuwgScaleFactor(); 
     159 
     160    // Projection methods 
     161    String toCode(); 
     162    String getCacheDirectoryName(); 
     163    Bounds getWorldBoundsLatLon(); 
    159164} 
    160165 
     
    165170    private static final double Epsg2180ScaleFactor = 0.9993; 
    166171    private static final double Epsg2180CentralMeridian = 19.0; 
    167     private static DecimalFormat decFormatter = new DecimalFormat("###0"); 
    168172 
    169173    @Override public String toString() { 
     
    185189                new LatLon(54.84, 24.15)); 
    186190    } 
    187  
    188     /* These two MUST NOT be used. Use Puwg implementation instead. */ 
    189     public EastNorth latlon2eastNorth(LatLon p) { return null; } 
    190     public LatLon eastNorth2latlon(EastNorth p) { return null; } 
    191191 
    192192    public double getPuwgCentralMeridianDeg() { return Epsg2180CentralMeridian; } 
     
    195195    public double getPuwgFalseNorthing() { return Epsg2180FalseNorthing; } 
    196196    public double getPuwgScaleFactor() { return Epsg2180ScaleFactor; } 
    197  
    198     public double getDefaultZoomInPPD() { 
    199         // This will set the scale bar to about 100 km 
    200         return 0.009; 
    201     } 
    202  
    203     public String eastToString(EastNorth p) { 
    204         return decFormatter.format(p.east()); 
    205     } 
    206  
    207     public String northToString(EastNorth p) { 
    208         return decFormatter.format(p.north()); 
    209     } 
    210197} 
    211198 
     
    218205    final private String[] Puwg2000Code = { "EPSG:2176",  "EPSG:2177", "EPSG:2178", "EPSG:2179"}; 
    219206    final private String[] Puwg2000CDName = { "epsg2176",  "epsg2177", "epsg2178", "epsg2179"}; 
    220     private static DecimalFormat decFormatter = new DecimalFormat("###0.00"); 
    221207 
    222208    @Override public String toString() { 
     
    238224                new LatLon(54.84, (3 * getZone()) + 1.5)); 
    239225    } 
    240  
    241     /* These two MUST NOT be used. Use Puwg implementation instead. */ 
    242     public EastNorth latlon2eastNorth(LatLon p) { return null; } 
    243     public LatLon eastNorth2latlon(EastNorth p) { return null; } 
    244226 
    245227    public double getPuwgCentralMeridianDeg() { return getZone() * 3.0; } 
     
    252234    public int getZoneIndex() { return getZone() - 5; } 
    253235 
    254     public double getDefaultZoomInPPD() { 
    255         // This will set the scale bar to about 100 km 
    256         return 0.009; 
    257     } 
    258  
    259     public String eastToString(EastNorth p) { 
    260         return Integer.toString(getZone()) + decFormatter.format(p.east()); 
    261     } 
    262  
    263     public String northToString(EastNorth p) { 
    264         return decFormatter.format(p.north()); 
    265     } 
    266  
    267 } 
    268  
    269 class Epsg2176 extends Puwg2000 implements Projection { 
     236} 
     237 
     238class Epsg2176 extends Puwg2000 { 
    270239    private static final int PuwgZone = 5; 
    271240 
     
    274243} 
    275244 
    276 class Epsg2177 extends Puwg2000 implements Projection { 
     245class Epsg2177 extends Puwg2000 { 
    277246    private static final int PuwgZone = 6; 
    278247 
     
    281250} 
    282251 
    283 class Epsg2178 extends Puwg2000 implements Projection { 
     252class Epsg2178 extends Puwg2000 { 
    284253    private static final int PuwgZone = 7; 
    285254 
     
    288257} 
    289258 
    290 class Epsg2179 extends Puwg2000 implements Projection { 
     259class Epsg2179 extends Puwg2000 { 
    291260    private static final int PuwgZone = 8; 
    292261 
  • trunk/src/org/openstreetmap/josm/gui/MainApplication.java

    r3098 r3232  
    1111import java.net.Authenticator; 
    1212import java.net.ProxySelector; 
     13import java.security.AllPermission; 
     14import java.security.CodeSource; 
     15import java.security.PermissionCollection; 
     16import java.security.Permissions; 
     17import java.security.Policy; 
    1318import java.util.Collection; 
    1419import java.util.HashMap; 
     
    130135        I18n.init(); 
    131136 
     137        Policy.setPolicy(new Policy() { 
     138            // Permissions for plug-ins loaded when josm is started via webstart 
     139            private PermissionCollection pc; 
     140 
     141            { 
     142                pc = new Permissions(); 
     143                pc.add(new AllPermission()); 
     144            } 
     145 
     146            @Override 
     147            public void refresh() { } 
     148 
     149            @Override 
     150            public PermissionCollection getPermissions(CodeSource codesource) { 
     151                return pc; 
     152            } 
     153        }); 
     154 
    132155        Thread.setDefaultUncaughtExceptionHandler(new BugReportExceptionHandler()); 
    133156        // http://stuffthathappens.com/blog/2007/10/15/one-more-note-on-uncaught-exception-handlers/ 
  • trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java

    r3131 r3232  
    6363 * PluginHandler is basically a collection of static utility functions used to bootstrap 
    6464 * and manage the loaded plugins. 
    65  *  
     65 * 
    6666 */ 
    6767public class PluginHandler { 
     
    8484     * Removes deprecated plugins from a collection of plugins. Modifies the 
    8585     * collection <code>plugins</code>. 
    86      *  
     86     * 
    8787     * Also notifies the user about removed deprecated plugins 
    88      *  
     88     * 
    8989     * @param plugins the collection of plugins 
    9090     */ 
     
    128128     * collection <code>plugins</code>. Also removes the plugin from the list 
    129129     * of plugins in the preferences, if necessary. 
    130      *  
     130     * 
    131131     * Asks the user for every unmaintained plugin whether it should be removed. 
    132      *  
     132     * 
    133133     * @param plugins the collection of plugins 
    134134     */ 
     
    153153     * JOSM was updated to a new version since the last plugin updates or 
    154154     * if the plugins were last updated a long time ago. 
    155      *  
     155     * 
    156156     * @param parent the parent window relative to which the confirmation dialog 
    157157     * is to be displayed 
     
    261261    /** 
    262262     * Alerts the user if a plugin required by another plugin is missing 
    263      *  
     263     * 
    264264     * @param plugin the the plugin 
    265265     * @param missingRequiredPlugin the missing required plugin 
     
    304304     * current JOSM version must be compatible with the plugin and no other plugins this plugin 
    305305     * depends on should be missing. 
    306      *  
     306     * 
    307307     * @param plugins the collection of all loaded plugins 
    308308     * @param plugin the plugin for which preconditions are checked 
     
    342342    /** 
    343343     * Creates a class loader for loading plugin code. 
    344      *  
     344     * 
    345345     * @param plugins the collection of plugins which are going to be loaded with this 
    346346     * class loader 
     
    371371     * Loads and instantiates the plugin described by <code>plugin</code> using 
    372372     * the class loader <code>pluginClassLoader</code>. 
    373      *  
     373     * 
    374374     * @param plugin the plugin 
    375375     * @param pluginClassLoader the plugin class loader 
     
    383383            } 
    384384        } catch(PluginException e) { 
     385            e.printStackTrace(); 
    385386            if (e.getCause() instanceof ClassNotFoundException) { 
    386                 e.printStackTrace(); 
    387387                String msg = tr("<html>Could not load plugin {0} because the plugin<br>main class ''{1}'' was not found.<br>" 
    388388                        + "Delete from preferences?", plugin.name, plugin.className); 
     
    403403     * Loads the plugin in <code>plugins</code> from locally available jar files into 
    404404     * memory. 
    405      *  
     405     * 
    406406     * @param plugins the list of plugins 
    407407     * @param monitor the progress monitor. Defaults to {@see NullProgressMonitor#INSTANCE} if null. 
     
    452452     * Loads plugins from <code>plugins</code> which have the flag {@see PluginInformation#early} 
    453453     * set to true. 
    454      *  
     454     * 
    455455     * @param plugins the collection of plugins 
    456456     * @param monitor the progress monitor. Defaults to {@see NullProgressMonitor#INSTANCE} if null. 
     
    469469     * Loads plugins from <code>plugins</code> which have the flag {@see PluginInformation#early} 
    470470     * set to false. 
    471      *  
     471     * 
    472472     * @param plugins the collection of plugins 
    473473     * @param monitor the progress monitor. Defaults to {@see NullProgressMonitor#INSTANCE} if null. 
     
    489489     * @param monitor the progress monitor. Defaults to {@see NullProgressMonitor#INSTANCE} if null. 
    490490     * @return the list of locally available plugin information 
    491      *  
     491     * 
    492492     */ 
    493493    private static Map<String, PluginInformation> loadLocallyAvailablePluginInformation(ProgressMonitor monitor) { 
     
    614614    /** 
    615615     * Updates the plugins in <code>plugins</code>. 
    616      *  
     616     * 
    617617     * @param parent the parent window for message boxes 
    618618     * @param plugins the collection of plugins to update. Must not be null. 
     
    696696    /** 
    697697     * Ask the user for confirmation that a plugin shall be disabled. 
    698      *  
     698     * 
    699699     * @param reason the reason for disabling the plugin 
    700700     * @param name the plugin name 
     
    731731    /** 
    732732     * Notified loaded plugins about a new map frame 
    733      *  
     733     * 
    734734     * @param old the old map frame 
    735735     * @param map the new map frame 
     
    763763     * Installs downloaded plugins. Moves files with the suffix ".jar.new" to the corresponding 
    764764     * ".jar" files. 
    765      *  
     765     * 
    766766     * If {@code dowarn} is true, this methods emits warning messages on the console if a downloaded 
    767767     * but not yet installed plugin .jar can't be be installed. If {@code dowarn} is false, the 
    768768     * installation of the respective plugin is sillently skipped. 
    769      *  
     769     * 
    770770     * @param dowarn if true, warning messages are displayed; false otherwise 
    771771     */ 
     
    843843    /** 
    844844     * Replies the plugin which most likely threw the exception <code>ex</code>. 
    845      *  
     845     * 
    846846     * @param ex the exception 
    847847     * @return the plugin; null, if the exception proably wasn't thrown from a plugin 
     
    864864     * Checks whether the exception <code>e</code> was thrown by a plugin. If so, 
    865865     * conditionally deactivates the plugin, but asks the user first. 
    866      *  
     866     * 
    867867     * @param e the exception 
    868868     */ 
     
    914914            String version = pp.getPluginInformation().localversion; 
    915915            text += version != null && !version.equals("") ? " (Version: " + version + ")\n" 
    916                         : "\n"; 
     916                    : "\n"; 
    917917        } 
    918918        return text; 
Note: See TracChangeset for help on using the changeset viewer.