done. :-)
Stefan Steiniger schrieb:
> Hei Sascha,
>
> thanx a lot.
> are you going to commit it the openjump cvs repository?
> would be nice :o)
>
> stefan
>
> Sascha L. Teichmann schrieb:
>> Hi together,
>>
>> I'm currently hunting down some timing bugs in the Print/Layout plug-in.
>> If WMS layers are used they are not always imported correctly into
>> the layout sheet.
>>
>> On my trip down the rendering path I found out that WMS layers
>> do not cache the resulting images of there requests.
>>
>> I've written a patch (see attachment) against WMSLayer [1] that stores
>> the result of the last request using a pair of java.net.URL and
>> java.lang.ref.SoftReference (java.awt.Image).
>> If the next WMS request URL equals the last one the stored
>> image is used and so expensive traffic is avoid.
>>
>> This does not solve my timing problem but it improves it a bit.
>> IMHO this little tweak improves WMS performance in general
>> by removing redundant HTTP traffic.
>>
>> Kind regards,
>> Sascha
>>
>> [1] com.vividsolutions.jump.workbench.model.WMSLayer
>>
>>
>> ------------------------------------------------------------------------
>>
>> Index: src/com/vividsolutions/jump/workbench/model/WMSLayer.java
>> ===================================================================
>> RCS file:
>> /cvsroot/jump-pilot/openjump/src/com/vividsolutions/jump/workbench/model/WMSLayer.java,v
>> retrieving revision 1.2
>> diff -u -w -r1.2 WMSLayer.java
>> --- src/com/vividsolutions/jump/workbench/model/WMSLayer.java 24 Jun
>> 2005 09:01:57 -0000 1.2
>> +++ src/com/vividsolutions/jump/workbench/model/WMSLayer.java 22 May
>> 2007 16:16:43 -0000
>> @@ -51,6 +51,11 @@
>> import com.vividsolutions.wms.MapRequest;
>> import com.vividsolutions.wms.WMService;
>>
>> +import java.net.URL;
>> +
>> +import java.lang.ref.Reference;
>> +import java.lang.ref.SoftReference;
>> +
>> /**
>> * A Layerable that retrieves images from a Web Map Server.
>> */
>> @@ -66,6 +71,10 @@
>> private WMService service;
>>
>> private String wmsVersion = WMService.WMS_1_0_0;
>> +
>> + protected Reference oldImage;
>> + protected URL oldURL;
>> +
>> /**
>> * Called by Java2XML
>> */
>> @@ -121,7 +130,20 @@
>> }
>>
>> public Image createImage(LayerViewPanel panel) throws IOException {
>> - Image image = createRequest(panel).getImage();
>> +
>> + MapRequest request = createRequest(panel);
>> + URL newURL = request.getURL();
>> +
>> + Image image;
>> +
>> + // look if last request equals new one.
>> + // if it does take the image from the cache.
>> + if (oldURL == null
>> + || !newURL.equals(oldURL)
>> + || oldImage == null
>> + || (image = (Image)oldImage.get()) == null
>> + ) {
>> + image = request.getImage();
>> MediaTracker mt = new MediaTracker(new JButton());
>> mt.addImage(image, 0);
>>
>> @@ -130,6 +152,9 @@
>> } catch (InterruptedException e) {
>> Assert.shouldNeverReachHere();
>> }
>> + oldImage = new SoftReference(image);
>> + oldURL = newURL;
>> + }
>>
>> return image;
>> }
>>
>>
>> ------------------------------------------------------------------------
>>
>> -------------------------------------------------------------------------
>> This SF.net email is sponsored by DB2 Express
>> Download DB2 Express C - the FREE version of DB2 express and take
>> control of your XML. No limits. Just data. Click to get it now.
>> http://sourceforge.net/powerbar/db2/
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Jump-pilot-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Jump-pilot-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Jump-pilot-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel