Ignore:
Timestamp:
2018-05-12T14:18:57+02:00 (6 years ago)
Author:
wiktorn
Message:

Imagery definition refactor

Extend imagery definitions by:

  • allowing setting default layers for WMS_ENDPOINT and WMTS
  • allowing setting minimum expires time for tile for this imagery
  • allowing setting custom headers that will be sent for all requests

(get map, get capabilities) for this imagery

Additional changes in code:

  • use TileJobOptions to pass miscellaneous options to loaders
  • refactor WMSImagery to use SAX parser

See: #15981, #7953, #16224, #15940, #16249

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/imagery/CachedTileLoaderFactory.java

    r13647 r13733  
    4444                    TileLoaderListener.class,
    4545                    ICacheAccess.class,
    46                     int.class,
    47                     int.class,
    48                     Map.class);
     46                    TileJobOptions.class
     47                    );
    4948        } catch (NoSuchMethodException | SecurityException e) {
    5049            Logging.log(Logging.LEVEL_WARN, "Unable to initialize cache tile loader factory", e);
     
    6463
    6564    @Override
    66     public TileLoader makeTileLoader(TileLoaderListener listener, Map<String, String> inputHeaders) {
     65    public TileLoader makeTileLoader(TileLoaderListener listener, Map<String, String> inputHeaders, long minimumExpiryTime) {
    6766        Map<String, String> headers = new ConcurrentHashMap<>();
    6867        headers.put("User-Agent", Version.getInstance().getFullAgentString());
     
    7271
    7372        return getLoader(listener, cache,
    74                 (int) TimeUnit.SECONDS.toMillis(Config.getPref().getInt("socket.timeout.connect", 15)),
    75                 (int) TimeUnit.SECONDS.toMillis(Config.getPref().getInt("socket.timeout.read", 30)),
    76                 headers);
     73                new TileJobOptions(
     74                        (int) TimeUnit.SECONDS.toMillis(Config.getPref().getInt("socket.timeout.connect", 15)),
     75                        (int) TimeUnit.SECONDS.toMillis(Config.getPref().getInt("socket.timeout.read", 30)),
     76                        headers,
     77                        minimumExpiryTime
     78                        )
     79                );
    7780    }
    7881
    7982    protected TileLoader getLoader(TileLoaderListener listener, ICacheAccess<String, BufferedImageCacheEntry> cache,
    80             int connectTimeout, int readTimeout, Map<String, String> headers) {
     83            TileJobOptions options) {
    8184        try {
    8285            return tileLoaderConstructor.newInstance(
    8386                    listener,
    8487                    cache,
    85                     connectTimeout,
    86                     readTimeout,
    87                     headers);
     88                    options
     89                    );
    8890        } catch (IllegalArgumentException e) {
    8991            Logging.warn(e);
Note: See TracChangeset for help on using the changeset viewer.