Skip to content

Commit 56fc4e3

Browse files
authored
Migrate GeoWebCache to ImageN
Merge pull request #1428 from GeoWebCache/imagen
2 parents a5dc6b8 + 91255f8 commit 56fc4e3

15 files changed

Lines changed: 127 additions & 407 deletions

File tree

geowebcache/core/pom.xml

Lines changed: 14 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -122,40 +122,23 @@
122122

123123
<!-- Java Advanced Imaging (JAI) -->
124124
<dependency>
125-
<groupId>javax.media</groupId>
126-
<artifactId>jai_core</artifactId>
125+
<groupId>org.eclipse.imagen</groupId>
126+
<artifactId>imagen-core</artifactId>
127127
</dependency>
128128

129129
<dependency>
130-
<groupId>javax.media</groupId>
131-
<artifactId>jai_codec</artifactId>
130+
<groupId>org.eclipse.imagen</groupId>
131+
<artifactId>utilities</artifactId>
132132
</dependency>
133133

134134
<dependency>
135-
<groupId>javax.media</groupId>
136-
<artifactId>jai_imageio</artifactId>
135+
<groupId>org.eclipse.imagen</groupId>
136+
<artifactId>colorindexer</artifactId>
137137
</dependency>
138138

139139
<dependency>
140-
<groupId>it.geosolutions.jaiext.utilities</groupId>
141-
<artifactId>jt-utilities</artifactId>
142-
<exclusions>
143-
<exclusion>
144-
<artifactId>jts-core</artifactId>
145-
<groupId>org.locationtech.jts</groupId>
146-
</exclusion>
147-
</exclusions>
148-
</dependency>
149-
150-
<dependency>
151-
<groupId>it.geosolutions.jaiext.colorindexer</groupId>
152-
<artifactId>jt-colorindexer</artifactId>
153-
<exclusions>
154-
<exclusion>
155-
<artifactId>jts-core</artifactId>
156-
<groupId>org.locationtech.jts</groupId>
157-
</exclusion>
158-
</exclusions>
140+
<groupId>org.eclipse.imagen</groupId>
141+
<artifactId>crop</artifactId>
159142
</dependency>
160143

161144
<dependency>
@@ -215,6 +198,12 @@
215198
<version>1.3.1</version>
216199
</dependency>
217200

201+
<dependency>
202+
<groupId>org.eclipse.imagen</groupId>
203+
<artifactId>bandselect</artifactId>
204+
<scope>test</scope>
205+
</dependency>
206+
218207
</dependencies>
219208

220209
<build>

geowebcache/core/src/main/java/org/geowebcache/layer/MetaTile.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
*/
1414
package org.geowebcache.layer;
1515

16-
import it.geosolutions.jaiext.BufferedImageAdapter;
1716
import java.awt.Rectangle;
1817
import java.awt.RenderingHints;
1918
import java.awt.image.BufferedImage;
@@ -34,10 +33,11 @@
3433
import javax.imageio.stream.ImageInputStream;
3534
import javax.imageio.stream.ImageOutputStream;
3635
import javax.imageio.stream.MemoryCacheImageOutputStream;
37-
import javax.media.jai.JAI;
38-
import javax.media.jai.PlanarImage;
39-
import javax.media.jai.RenderedOp;
40-
import javax.media.jai.operator.CropDescriptor;
36+
import org.eclipse.imagen.JAI;
37+
import org.eclipse.imagen.PlanarImage;
38+
import org.eclipse.imagen.RenderedOp;
39+
import org.eclipse.imagen.media.BufferedImageAdapter;
40+
import org.eclipse.imagen.media.crop.CropDescriptor;
4141
import org.geotools.util.logging.Logging;
4242
import org.geowebcache.GeoWebCacheException;
4343
import org.geowebcache.grid.BoundingBox;
@@ -319,6 +319,9 @@ public RenderedImage createTile(final int minX, final int minY, final int tileWi
319319
Float.valueOf(minY),
320320
Float.valueOf(tileWidth),
321321
Float.valueOf(tileHeight),
322+
null,
323+
null,
324+
null,
322325
NO_CACHE);
323326
if (nativeAccelAvailable()) {
324327
log.finer("created cropped tile");

geowebcache/core/src/main/java/org/geowebcache/mime/ImageMime.java

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,6 @@
1313
*/
1414
package org.geowebcache.mime;
1515

16-
import it.geosolutions.jaiext.JAIExt;
17-
import it.geosolutions.jaiext.colorindexer.ColorIndexer;
18-
import it.geosolutions.jaiext.colorindexer.Quantizer;
1916
import java.awt.RenderingHints;
2017
import java.awt.image.ComponentColorModel;
2118
import java.awt.image.DataBuffer;
@@ -28,10 +25,12 @@
2825
import java.util.logging.Level;
2926
import java.util.logging.Logger;
3027
import javax.imageio.ImageWriter;
31-
import javax.media.jai.ImageLayout;
32-
import javax.media.jai.JAI;
33-
import javax.media.jai.RenderedOp;
34-
import javax.media.jai.operator.ExtremaDescriptor;
28+
import org.eclipse.imagen.ImageLayout;
29+
import org.eclipse.imagen.JAI;
30+
import org.eclipse.imagen.RenderedOp;
31+
import org.eclipse.imagen.media.colorindexer.ColorIndexer;
32+
import org.eclipse.imagen.media.colorindexer.Quantizer;
33+
import org.eclipse.imagen.operator.ExtremaDescriptor;
3534
import org.geotools.util.logging.Logging;
3635

3736
public class ImageMime extends MimeType {
@@ -45,11 +44,6 @@ public class ImageMime extends MimeType {
4544

4645
boolean supportsAlphaBit;
4746

48-
static {
49-
// register the custom JAIExt operations, without forcing replacement of JAI own
50-
JAIExt.initJAIEXT(false, false);
51-
}
52-
5347
public static final ImageMime png = new ImageMime("image/png", "png", "png", "image/png", true, true, true) {
5448

5549
/** Any response mime starting with image/png will do */

geowebcache/core/src/test/java/org/geowebcache/layer/wms/MetaTileTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import java.util.List;
1212
import java.util.Map;
1313
import java.util.Random;
14-
import javax.media.jai.PlanarImage;
14+
import org.eclipse.imagen.PlanarImage;
1515
import org.geowebcache.config.DefaultGridsets;
1616
import org.geowebcache.grid.BoundingBox;
1717
import org.geowebcache.grid.GridSetBroker;

geowebcache/core/src/test/java/org/geowebcache/layer/wms/WMSLayerTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,6 @@
5656
import java.util.concurrent.Future;
5757
import java.util.concurrent.atomic.AtomicInteger;
5858
import javax.imageio.ImageIO;
59-
import javax.media.jai.ImageLayout;
60-
import javax.media.jai.JAI;
61-
import javax.media.jai.RenderedOp;
62-
import javax.media.jai.operator.BandSelectDescriptor;
6359
import javax.servlet.http.HttpServletRequest;
6460
import javax.servlet.http.HttpServletResponse;
6561
import org.apache.http.Header;
@@ -72,6 +68,10 @@
7268
import org.easymock.CaptureType;
7369
import org.easymock.EasyMock;
7470
import org.easymock.IAnswer;
71+
import org.eclipse.imagen.ImageLayout;
72+
import org.eclipse.imagen.JAI;
73+
import org.eclipse.imagen.RenderedOp;
74+
import org.eclipse.imagen.media.bandselect.BandSelectDescriptor;
7575
import org.geowebcache.GeoWebCacheException;
7676
import org.geowebcache.TestHelpers;
7777
import org.geowebcache.config.DefaultGridsets;

geowebcache/web/src/main/webapp/WEB-INF/geowebcache-wmsservice-context.xml

Lines changed: 3 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -31,31 +31,18 @@
3131

3232
<bean id="wmsUtilities" class="org.geowebcache.service.wms.WMSUtilities"/>
3333

34-
<bean id="ioInitializer" class="org.geowebcache.io.codec.ImageIOInitializer" factory-method="getInstance">
35-
<constructor-arg index="0">
36-
<list></list>
37-
</constructor-arg>
38-
</bean>
39-
4034
<!--Encoders -->
4135

4236
<bean id="PNGEncoder" class="org.geowebcache.io.codec.PNGImageEncoder">
4337
<constructor-arg index="0" value="false" />
4438
<constructor-arg index="1" value="0.25" />
4539
<constructor-arg index="2">
46-
<list>
47-
<value>com.sun.media.imageioimpl.plugins.png.CLibPNGImageWriterSpi</value>
48-
<value>com.sun.imageio.plugins.png.PNGImageWriterSpi</value>
49-
</list>
50-
</constructor-arg>
51-
<constructor-arg>
5240
<map>
5341
<entry key="COMPRESSION" value="FILTERED" />
5442
<entry key="COMPRESSION_RATE" value="0.75" />
5543
</map>
5644
</constructor-arg>
57-
<constructor-arg index="4" value="false" />
58-
<constructor-arg ref="ioInitializer" />
45+
<constructor-arg index="3" value="false" />
5946
</bean>
6047

6148
<bean id="GIFEncoder" class="org.geowebcache.io.codec.ImageEncoderImpl">
@@ -65,19 +52,12 @@
6552
<value>image/gif</value>
6653
</list>
6754
</constructor-arg>
68-
<constructor-arg>
69-
<list>
70-
<value>com.sun.media.imageioimpl.plugins.gif.GIFImageWriterSpi</value>
71-
<value>com.sun.media.imageio.plugins.gif.GIFImageWriterSpi</value>
72-
</list>
73-
</constructor-arg>
7455
<constructor-arg>
7556
<map>
7657
<entry key="COMPRESSION" value="NULL" />
7758
<entry key="COMPRESSION_RATE" value="NULL" />
7859
</map>
7960
</constructor-arg>
80-
<constructor-arg ref="ioInitializer" />
8161
</bean>
8262

8363
<bean id="JPEGEncoder" class="org.geowebcache.io.codec.ImageEncoderImpl">
@@ -87,19 +67,12 @@
8767
<value>image/jpeg</value>
8868
</list>
8969
</constructor-arg>
90-
<constructor-arg>
91-
<list>
92-
<value>com.sun.media.imageioimpl.plugins.jpeg.CLibJPEGImageWriterSpi</value>
93-
<value>com.sun.imageio.plugins.jpeg.JPEGImageWriterSpi</value>
94-
</list>
95-
</constructor-arg>
9670
<constructor-arg>
9771
<map>
9872
<entry key="COMPRESSION" value="JPEG" />
9973
<entry key="COMPRESSION_RATE" value="0.75" />
10074
</map>
10175
</constructor-arg>
102-
<constructor-arg ref="ioInitializer" />
10376
</bean>
10477

10578
<bean id="TIFFEncoder" class="org.geowebcache.io.codec.ImageEncoderImpl">
@@ -109,19 +82,13 @@
10982
<value>image/tiff</value>
11083
</list>
11184
</constructor-arg>
112-
<constructor-arg>
113-
<list>
114-
<value>it.geosolutions.imageioimpl.plugins.tiff.TIFFImageWriterSpi</value>
115-
<value>com.sun.media.imageioimpl.plugins.tiff.TIFFImageWriterSpi</value>
116-
</list>
117-
</constructor-arg>
11885
<constructor-arg>
11986
<map>
12087
<entry key="COMPRESSION" value="Deflate" />
12188
<entry key="COMPRESSION_RATE" value="0.75" />
12289
</map>
12390
</constructor-arg>
124-
<constructor-arg ref="ioInitializer" />
91+
<constructor-arg value="it.geosolutions.imageioimpl.plugins.tiff.TIFFImageWriterSpi"/>
12592
</bean>
12693

12794
<bean id="BMPEncoder" class="org.geowebcache.io.codec.ImageEncoderImpl">
@@ -131,19 +98,12 @@
13198
<value>image/bmp</value>
13299
</list>
133100
</constructor-arg>
134-
<constructor-arg>
135-
<list>
136-
<value>com.sun.media.imageioimpl.plugins.bmp.BMPImageWriterSpi</value>
137-
<value>com.sun.imageio.plugins.bmp.BMPImageWriterSpi</value>
138-
</list>
139-
</constructor-arg>
140101
<constructor-arg>
141102
<map>
142103
<entry key="COMPRESSION" value="NULL" />
143104
<entry key="COMPRESSION_RATE" value="NULL" />
144105
</map>
145106
</constructor-arg>
146-
<constructor-arg ref="ioInitializer" />
147107
</bean>
148108

149109
<!--Decoders -->
@@ -156,13 +116,6 @@
156116
<value>image/png; mode=24bit</value>
157117
</list>
158118
</constructor-arg>
159-
<constructor-arg>
160-
<list>
161-
<value>com.sun.media.imageioimpl.plugins.png.CLibPNGImageReaderSpi</value>
162-
<value>com.sun.imageio.plugins.png.PNGImageReaderSpi</value>
163-
</list>
164-
</constructor-arg>
165-
<constructor-arg ref="ioInitializer" />
166119
</bean>
167120

168121
<bean id="GIFDecoder" class="org.geowebcache.io.codec.ImageDecoderImpl">
@@ -172,12 +125,6 @@
172125
<value>image/gif</value>
173126
</list>
174127
</constructor-arg>
175-
<constructor-arg>
176-
<list>
177-
<value>com.sun.imageio.plugins.gif.GIFImageReaderSpi</value>
178-
</list>
179-
</constructor-arg>
180-
<constructor-arg ref="ioInitializer" />
181128
</bean>
182129

183130
<bean id="JPEGDecoder" class="org.geowebcache.io.codec.ImageDecoderImpl">
@@ -187,13 +134,6 @@
187134
<value>image/jpeg</value>
188135
</list>
189136
</constructor-arg>
190-
<constructor-arg>
191-
<list>
192-
<value>com.sun.media.imageioimpl.plugins.jpeg.CLibJPEGImageReaderSpi</value>
193-
<value>com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi</value>
194-
</list>
195-
</constructor-arg>
196-
<constructor-arg ref="ioInitializer" />
197137
</bean>
198138

199139
<bean id="TIFFDecoder" class="org.geowebcache.io.codec.ImageDecoderImpl">
@@ -203,13 +143,7 @@
203143
<value>image/tiff</value>
204144
</list>
205145
</constructor-arg>
206-
<constructor-arg>
207-
<list>
208-
<value>it.geosolutions.imageioimpl.plugins.tiff.TIFFImageReaderSpi</value>
209-
<value>com.sun.media.imageioimpl.plugins.tiff.TIFFImageReaderSpi</value>
210-
</list>
211-
</constructor-arg>
212-
<constructor-arg ref="ioInitializer" />
146+
<constructor-arg value="it.geosolutions.imageioimpl.plugins.tiff.TIFFImageReaderSpi"/>
213147
</bean>
214148

215149
<bean id="BMPDecoder" class="org.geowebcache.io.codec.ImageDecoderImpl">
@@ -219,13 +153,6 @@
219153
<value>image/bmp</value>
220154
</list>
221155
</constructor-arg>
222-
<constructor-arg>
223-
<list>
224-
<value>com.sun.media.imageioimpl.plugins.bmp.BMPImageReaderSpi</value>
225-
<value>com.sun.imageio.plugins.bmp.BMPImageReaderSpi</value>
226-
</list>
227-
</constructor-arg>
228-
<constructor-arg ref="ioInitializer" />
229156
</bean>
230157

231158
<bean id="decoderContainer" class="org.geowebcache.io.codec.ImageDecoderContainer" />

0 commit comments

Comments
 (0)