Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/jdk/javax/imageio/spi/DeregisterAllSpiTest.java
51315 views
1
/*
2
* Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation.
8
*
9
* This code is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
* version 2 for more details (a copy is included in the LICENSE file that
13
* accompanied this code).
14
*
15
* You should have received a copy of the GNU General Public License version
16
* 2 along with this work; if not, write to the Free Software Foundation,
17
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18
*
19
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20
* or visit www.oracle.com if you need additional information or have any
21
* questions.
22
*/
23
24
/*
25
* @test
26
* @bug 4835841
27
* @summary This test verifies that we will able to register new SPI after
28
* deregistration all previously registered SPIs by using
29
* deregisterAll() method
30
*/
31
32
import java.io.IOException;
33
import java.util.Locale;
34
35
import javax.imageio.ImageIO;
36
import javax.imageio.ImageReader;
37
import javax.imageio.spi.IIORegistry;
38
import javax.imageio.spi.ImageReaderSpi;
39
import javax.imageio.spi.ServiceRegistry;
40
import javax.imageio.stream.ImageInputStream;
41
42
public class DeregisterAllSpiTest {
43
44
public DeregisterAllSpiTest() throws Exception {
45
ImageReaderSpi BMPSpi = new BMPImageReaderSPI();
46
IIORegistry.getDefaultInstance().registerServiceProvider(BMPSpi);
47
48
System.out.println("Reader Format Names available in the registry");
49
String formatNames[] = ImageIO.getReaderFormatNames();
50
if( formatNames == null || formatNames.length <= 0) {
51
throw new RuntimeException("No registered ImageReaders!");
52
}
53
for (int x=0; x < formatNames.length; x++) {
54
System.out.println("format "+formatNames[x]);
55
}
56
57
IIORegistry.getDefaultInstance().deregisterAll();
58
59
System.out.println("\nReader Format Names after deregistering all SPIs");
60
formatNames = ImageIO.getReaderFormatNames();
61
if(formatNames.length == 0) {
62
System.out.println("No readers available\n");
63
} else {
64
throw new RuntimeException("Some providers was not deregistered!");
65
}
66
67
IIORegistry.getDefaultInstance().registerServiceProvider(BMPSpi);
68
System.out.println("Reader Format Names after re-register of BMP Plugin");
69
formatNames = ImageIO.getReaderFormatNames();
70
if(formatNames.length == 0) {
71
throw new RuntimeException("Unable to register new SPI after deregisterAll()!");
72
}
73
}
74
75
76
public static void main(String args[]) throws Exception{
77
DeregisterAllSpiTest regis = new DeregisterAllSpiTest();
78
}
79
80
81
public static class BMPImageReaderSPI extends javax.imageio.spi.ImageReaderSpi{
82
83
private static final String vendorName = "Javasoft";
84
85
private static final String version = "2.0";
86
87
private static final String[] names = { "bmp" };
88
89
private static final String[] suffixes = { "bmp" };
90
91
private static final String[] MIMETypes = { "image/x-bmp"};
92
93
private static final String readerClassName =
94
"com.sun.imageio.plugins.png.PNGImageReader";
95
96
private static final String[] writerSpiNames = {
97
"com.sun.imageio.plugins.png.PNGImageWriterSpi"
98
};
99
100
public BMPImageReaderSPI() {
101
super(vendorName,
102
version,
103
names,
104
suffixes,
105
MIMETypes,
106
readerClassName,
107
STANDARD_INPUT_TYPE,
108
writerSpiNames,
109
false,
110
null, null,
111
null, null,
112
true,
113
"BMP Native Metadata",
114
"com.sun.imageio.plugins.png.PNGMetadataFormat",
115
null, null
116
);
117
}
118
119
public String getDescription(Locale locale) {
120
return "Standard BMP image reader";
121
}
122
123
public boolean canDecodeInput(Object input) throws IOException {
124
if (!(input instanceof ImageInputStream)) {
125
return false;
126
}
127
128
ImageInputStream stream = (ImageInputStream)input;
129
byte[] b = new byte[8];
130
stream.mark();
131
stream.readFully(b);
132
stream.reset();
133
134
return (b[0] == (byte)137 &&
135
b[1] == (byte)80 &&
136
b[2] == (byte)78 &&
137
b[3] == (byte)71 &&
138
b[4] == (byte)13 &&
139
b[5] == (byte)10 &&
140
b[6] == (byte)26 &&
141
b[7] == (byte)10);
142
}
143
144
public ImageReader createReaderInstance(Object extension) {
145
//return new PNGImageReader(this);
146
return null;
147
}
148
public void onRegistration(ServiceRegistry sr, Class<?> category) {
149
System.out.println("\nfrom OnRegistration: BMP plugin Registered\n");
150
super.onRegistration(sr, category);
151
}
152
153
public void onDeregistration(ServiceRegistry sr, Class<?> category) {
154
System.out.println("\nfrom OnDeregistration: BMP plugin De-Registered\n");
155
//super.onRegistration(sr, category);
156
}
157
}
158
}
159
160