|
20 | 20 | import java.util.LinkedList; |
21 | 21 | import java.util.List; |
22 | 22 |
|
| 23 | +import org.eclipse.persistence.internal.helper.JavaVersion; |
| 24 | +import org.glassfish.grizzly.utils.ArrayUtils; |
| 25 | +import org.glassfish.jersey.internal.util.PropertiesHelper; |
23 | 26 | import org.glassfish.jersey.tests.e2e.json.entity.AnotherArrayTestBean; |
24 | 27 | import org.glassfish.jersey.tests.e2e.json.entity.AttrAndCharDataBean; |
25 | 28 | import org.glassfish.jersey.tests.e2e.json.entity.ComplexBeanWithAttributes; |
@@ -95,12 +98,32 @@ public JaxbTest(final JsonTestSetup jsonTestSetup) throws Exception { |
95 | 98 | super(jsonTestSetup); |
96 | 99 | } |
97 | 100 |
|
| 101 | + /** |
| 102 | + * check if the current JVM is supported by this test. |
| 103 | + * |
| 104 | + * @return true if all tests can be run, false if some tests shall be excluded due to JRE bug |
| 105 | + */ |
| 106 | + private static boolean isJavaVersionSupported() { |
| 107 | + final String javaVersion = PropertiesHelper.getSystemProperty("java.version").run(); |
| 108 | + if (javaVersion != null) { |
| 109 | + int pos = javaVersion.lastIndexOf("_"); |
| 110 | + if (pos > -1) { |
| 111 | + final Integer minorVersion = Integer.valueOf(javaVersion.substring(pos+1)); |
| 112 | + return minorVersion < 160 || minorVersion > 172; //only those between 161 and 172 minor |
| 113 | + // releases are not supported |
| 114 | + } |
| 115 | + } |
| 116 | + return true; |
| 117 | + } |
| 118 | + |
98 | 119 | @Parameterized.Parameters() |
99 | 120 | public static Collection<JsonTestSetup[]> getJsonProviders() throws Exception { |
| 121 | + final Class<?>[] |
| 122 | + filteredClasses = (isJavaVersionSupported()) ? CLASSES : ArrayUtils.remove(CLASSES, EncodedContentBean.class); |
100 | 123 | final List<JsonTestSetup[]> jsonTestSetups = new LinkedList<>(); |
101 | 124 |
|
102 | 125 | for (final JsonTestProvider jsonProvider : JsonTestProvider.JAXB_PROVIDERS) { |
103 | | - for (final Class<?> entityClass : CLASSES) { |
| 126 | + for (final Class<?> entityClass : filteredClasses) { |
104 | 127 | // TODO - remove the condition after jsonb polymorphic adapter is implemented |
105 | 128 | if (!(jsonProvider instanceof JsonTestProvider.JsonbTestProvider)) { |
106 | 129 | jsonTestSetups.add(new JsonTestSetup[]{new JsonTestSetup(entityClass, jsonProvider)}); |
|
0 commit comments