Skip to content

Commit a77b866

Browse files
committed
GeoWebCache update for JAI to ImageN Rename of classes and constants
No direct API usage, apparnelty everythign is done via ImageWorker. Adapt to ImageN API changes
1 parent 2ab61f1 commit a77b866

File tree

4 files changed

+25
-14
lines changed

4 files changed

+25
-14
lines changed

RELEASE_NOTES.txt

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,26 @@
1+
GeoWebCache 1.28.0 (2025-10-01)
2+
-------------------------------
3+
4+
Initial release, this is the first release requiring a Java 17 enviornment.
5+
6+
Improvements:
7+
+++++++++++++
8+
- Update to Java 17 minimum, and apply OpenRewrite Improvements to codebase
9+
- Migrate from JAI to ImageN image processing engine
10+
- Use GeoTools ImageWorker transition to ImageN operators
11+
12+
113
GeoWebCache 1.28-M0 (2025-09-18)
214
--------------------------------
315

4-
Milestone release, GeoNetwork 1.28-M0 is the first release requiring a Java 17 environment.
16+
Milestone release, GeoWebCache 1.28-M0 is the first release requiring a Java 17 environment.
517

618
Improvements:
719
+++++++++++++
820
- Update to Java 17 minimum, and apply OpenRewrite Improvements to codebase
921
- Migrate from JAI to ImageN image processing engine
1022
- Use GeoTools ImageWorker transition to ImageN operators
1123

12-
1324
Updates:
1425
++++++++
1526

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
import javax.imageio.stream.ImageInputStream;
3434
import javax.imageio.stream.ImageOutputStream;
3535
import javax.imageio.stream.MemoryCacheImageOutputStream;
36-
import org.eclipse.imagen.JAI;
36+
import org.eclipse.imagen.ImageN;
3737
import org.eclipse.imagen.PlanarImage;
3838
import org.eclipse.imagen.RenderedOp;
3939
import org.eclipse.imagen.media.BufferedImageAdapter;
@@ -54,7 +54,7 @@ public class MetaTile implements TileResponseReceiver {
5454

5555
private static Logger log = Logging.getLogger(MetaTile.class.getName());
5656

57-
protected static final RenderingHints NO_CACHE = new RenderingHints(JAI.KEY_TILE_CACHE, null);
57+
protected static final RenderingHints NO_CACHE = new RenderingHints(ImageN.KEY_TILE_CACHE, null);
5858

5959
private static final boolean NATIVE_JAI_AVAILABLE;
6060

@@ -70,7 +70,7 @@ public class MetaTile implements TileResponseReceiver {
7070
}
7171
NATIVE_JAI_AVAILABLE = nativeJAIAvailable;
7272
if (!NATIVE_JAI_AVAILABLE) {
73-
log.config("Native JAI is not installed");
73+
log.config("Native ImageN is not installed");
7474
}
7575
}
7676

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

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
import java.util.logging.Logger;
2727
import javax.imageio.ImageWriter;
2828
import org.eclipse.imagen.ImageLayout;
29-
import org.eclipse.imagen.JAI;
29+
import org.eclipse.imagen.ImageN;
3030
import org.eclipse.imagen.media.colorindexer.ColorIndexer;
3131
import org.eclipse.imagen.media.colorindexer.Quantizer;
3232
import org.geotools.image.ImageWorker;
@@ -68,8 +68,8 @@ public RenderedImage preprocess(RenderedImage ri) {
6868
ParameterBlock pb = new ParameterBlock();
6969
pb.setSource(ri, 0);
7070
pb.set(bands, 0);
71-
final RenderingHints hints = new RenderingHints(JAI.KEY_IMAGE_LAYOUT, new ImageLayout(ri));
72-
ri = JAI.create("BandSelect", pb, hints);
71+
final RenderingHints hints = new RenderingHints(ImageN.KEY_IMAGE_LAYOUT, new ImageLayout(ri));
72+
ri = ImageN.create("BandSelect", pb, hints);
7373
}
7474
return ri;
7575
}
@@ -92,8 +92,8 @@ public RenderedImage preprocess(RenderedImage canvas) {
9292
ParameterBlock pb = new ParameterBlock();
9393
pb.setSource(canvas, 0); // The source image.
9494
pb.set(indexer, 0);
95-
canvas = JAI.create(
96-
"ColorIndexer", pb, JAI.getDefaultInstance().getRenderingHints());
95+
canvas = ImageN.create(
96+
"ColorIndexer", pb, ImageN.getDefaultInstance().getRenderingHints());
9797
}
9898
}
9999
}
@@ -261,14 +261,14 @@ boolean isBestFormatJpeg(RenderedImage renderedImage) {
261261
int numBands = renderedImage.getSampleModel().getNumBands();
262262
if (numBands == 4 || numBands == 2) {
263263
ImageWorker iw = new ImageWorker(renderedImage);
264-
iw.setRenderingHints(JAI.getDefaultInstance().getRenderingHints());
264+
iw.setRenderingHints(ImageN.getDefaultInstance().getRenderingHints());
265265
double[] mins = iw.getMinimums();
266266

267267
return mins[mins.length - 1] == 255; // fully opaque
268268
} else if (renderedImage.getColorModel() instanceof IndexColorModel) {
269269
// JPEG would still compress a bit better, but in order to figure out
270270
// if the image has transparency we'd have to expand to RGB or roll
271-
// a new JAI image op that looks for the transparent pixels. Out of scope
271+
// a new ImageN image op that looks for the transparent pixels. Out of scope
272272
// for the moment
273273
return false;
274274
} else {

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@
6969
import org.easymock.EasyMock;
7070
import org.easymock.IAnswer;
7171
import org.eclipse.imagen.ImageLayout;
72-
import org.eclipse.imagen.JAI;
72+
import org.eclipse.imagen.ImageN;
7373
import org.eclipse.imagen.RenderedOp;
7474
import org.eclipse.imagen.media.bandselect.BandSelectDescriptor;
7575
import org.geowebcache.GeoWebCacheException;
@@ -646,7 +646,7 @@ protected void makeRequest(
646646
ImageLayout il = new ImageLayout();
647647
il.setSampleModel(sm);
648648
il.setColorModel(cm);
649-
RenderingHints hints = new RenderingHints(JAI.KEY_IMAGE_LAYOUT, il);
649+
RenderingHints hints = new RenderingHints(ImageN.KEY_IMAGE_LAYOUT, il);
650650
RenderedOp grayAlpha = BandSelectDescriptor.create(baseImage, new int[] {0, 3}, hints);
651651
ByteArrayOutputStream output = new ByteArrayOutputStream();
652652
try {

0 commit comments

Comments
 (0)