Skip to content

Commit 2650275

Browse files
committed
[RELEASE] iText 7 7.2.4
2 parents bb9602a + 2b6d8b9 commit 2650275

File tree

426 files changed

+58335
-8486
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

426 files changed

+58335
-8486
lines changed

barcodes/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>com.itextpdf</groupId>
66
<artifactId>root</artifactId>
7-
<version>7.2.3</version>
7+
<version>7.2.4</version>
88
</parent>
99
<artifactId>barcodes</artifactId>
1010
<name>iText 7 - barcodes</name>

commons/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44
<parent>
55
<groupId>com.itextpdf</groupId>
66
<artifactId>root</artifactId>
7-
<version>7.2.3</version>
7+
<version>7.2.4</version>
88
</parent>
99
<artifactId>commons</artifactId>
1010
<name>iText 7 - commons</name>
1111
<url>https://itextpdf.com/</url>
1212

1313
<properties>
14-
<jackson.core.version>2.13.3</jackson.core.version>
14+
<jackson.core.version>2.13.4</jackson.core.version>
1515
</properties>
1616

1717
<dependencies>

commons/src/main/java/com/itextpdf/commons/actions/contexts/ContextManager.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -114,12 +114,12 @@ public IContext getContext(String className) {
114114

115115
String getRecognisedNamespace(String className) {
116116
if (className != null) {
117+
String normalizedClassName = normalize(className);
117118
// If both "a" and "a.b" namespaces are registered,
118119
// iText should consider the context of "a.b" for an "a.b" event,
119120
// that's why the contexts are sorted by the length of the namespace
120121
for (String namespace : contextMappings.keySet()) {
121-
//Conversion to lowercase is done to be compatible with possible changes in case of packages/namespaces
122-
if (className.toLowerCase().startsWith(namespace)) {
122+
if (normalizedClassName.startsWith(namespace)) {
123123
return namespace;
124124
}
125125
}
@@ -129,7 +129,7 @@ String getRecognisedNamespace(String className) {
129129

130130
void unregisterContext(Collection<String> namespaces) {
131131
for (String namespace : namespaces) {
132-
contextMappings.remove(namespace);
132+
contextMappings.remove(normalize(namespace));
133133
}
134134
}
135135

@@ -143,11 +143,15 @@ private IContext getNamespaceMapping(String namespace) {
143143
void registerGenericContext(Collection<String> namespaces, Collection<String> products) {
144144
final GenericContext context = new GenericContext(products);
145145
for (String namespace : namespaces) {
146-
//Conversion to lowercase is done to be compatible with possible changes in case of packages/namespaces
147-
contextMappings.put(namespace.toLowerCase(), context);
146+
contextMappings.put(normalize(namespace), context);
148147
}
149148
}
150149

150+
private static String normalize(String namespace) {
151+
// Conversion to lowercase is done to be compatible with possible changes in case of packages/namespaces
152+
return namespace.toLowerCase();
153+
}
154+
151155
private static class LengthComparator implements Comparator<String> {
152156
@Override
153157
public int compare(String o1, String o2) {

commons/src/main/java/com/itextpdf/commons/actions/data/CommonsProductData.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ This file is part of the iText (R) project.
2828
public final class CommonsProductData {
2929
static final String COMMONS_PUBLIC_PRODUCT_NAME = "Commons";
3030
static final String COMMONS_PRODUCT_NAME = "commons";
31-
static final String COMMONS_VERSION = "7.2.3";
31+
static final String COMMONS_VERSION = "7.2.4";
3232
static final int COMMONS_COPYRIGHT_SINCE = 2000;
3333
static final int COMMONS_COPYRIGHT_TO = 2022;
3434

commons/src/main/java/com/itextpdf/commons/utils/FileUtil.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,21 @@ public static boolean fileExists(String path) {
110110
return false;
111111
}
112112

113+
/**
114+
* Checks whether is provided file not empty.
115+
*
116+
* @param path the path to the file to be checked on emptiness
117+
*
118+
* @return {@code true} if such file is not empty, {@code false} otherwise
119+
*/
120+
public static boolean isFileNotEmpty(String path) {
121+
if (path != null) {
122+
File f = new File(path);
123+
return f.exists() && f.isFile() && f.length() > 0;
124+
}
125+
return false;
126+
}
127+
113128
/**
114129
* Checks whether there is a directory at the provided path.
115130
*

commons/src/main/java/com/itextpdf/commons/utils/JsonUtil.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ This file is part of the iText (R) project.
3232
import com.fasterxml.jackson.core.util.DefaultPrettyPrinter;
3333
import com.fasterxml.jackson.databind.DeserializationFeature;
3434
import com.fasterxml.jackson.databind.JavaType;
35+
import com.fasterxml.jackson.databind.JsonNode;
3536
import com.fasterxml.jackson.databind.ObjectMapper;
3637
import com.fasterxml.jackson.databind.ObjectWriter;
3738
import com.fasterxml.jackson.databind.SerializationFeature;
@@ -51,6 +52,25 @@ private JsonUtil() {
5152
// empty constructor
5253
}
5354

55+
/**
56+
* Compares two json strings without considering the order of the elements.
57+
*
58+
* @param expectedString expected json string
59+
* @param toCompare string for comparison
60+
*
61+
* @return true if two json string are equals, false otherwise
62+
*
63+
* @throws IOException if an I/O error occurs
64+
*/
65+
public static boolean areTwoJsonObjectEquals(String expectedString, String toCompare) throws IOException {
66+
final ObjectMapper mapper = new ObjectMapper();
67+
68+
JsonNode expectedObject = mapper.readTree(expectedString);
69+
JsonNode actualObject = mapper.readTree(toCompare);
70+
71+
return actualObject.equals(expectedObject);
72+
}
73+
5474
/**
5575
* Serializes passed object to provided JSON output stream.
5676
*

commons/src/main/java/com/itextpdf/commons/utils/ZipFileWriter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public ZipFileWriter(String archivePath) throws IOException {
5151
if (archivePath == null) {
5252
throw new IOException(CommonsExceptionMessageConstant.FILE_NAME_CAN_NOT_BE_NULL);
5353
}
54-
if (FileUtil.fileExists(archivePath) || FileUtil.directoryExists(archivePath)) {
54+
if (FileUtil.isFileNotEmpty(archivePath) || FileUtil.directoryExists(archivePath)) {
5555
throw new IOException(
5656
MessageFormatUtil.format(CommonsExceptionMessageConstant.FILE_NAME_ALREADY_EXIST, archivePath));
5757
}

commons/src/test/java/com/itextpdf/commons/actions/contexts/ContextManagerTest.java

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ This file is part of the iText (R) project.
4848

4949
import java.util.Arrays;
5050
import java.util.Collections;
51+
import java.util.List;
5152
import org.junit.Assert;
5253
import org.junit.Test;
5354
import org.junit.experimental.categories.Category;
@@ -95,13 +96,27 @@ public void notRegisteredNamespaceTest() {
9596
@Test
9697
public void unregisterNamespaceTest() {
9798
String testNamespace = "com.hello.world";
99+
String testNamespaceWithCapitals = "com.Bye.World";
100+
List<String> testNamespaces = Arrays.asList(
101+
testNamespace,
102+
testNamespaceWithCapitals
103+
);
104+
98105
ContextManager manager = new ContextManager();
99106
Assert.assertNull(manager.getRecognisedNamespace(testNamespace));
100-
manager.registerGenericContext(Arrays.asList(testNamespace), Arrays.asList("myProduct"));
107+
Assert.assertNull(manager.getRecognisedNamespace(testNamespaceWithCapitals));
108+
109+
manager.registerGenericContext(testNamespaces, Arrays.asList("myProduct"));
110+
101111
Assert.assertEquals(testNamespace,
102112
manager.getRecognisedNamespace(testNamespace + ".MyClass"));
103-
manager.unregisterContext(Arrays.asList(testNamespace));
113+
Assert.assertEquals(testNamespaceWithCapitals.toLowerCase(),
114+
manager.getRecognisedNamespace(testNamespaceWithCapitals + ".MyClass"));
115+
116+
manager.unregisterContext(testNamespaces);
117+
104118
Assert.assertNull(manager.getRecognisedNamespace(testNamespace));
119+
Assert.assertNull(manager.getRecognisedNamespace(testNamespaceWithCapitals));
105120
}
106121

107122
@Test

commons/src/test/java/com/itextpdf/commons/utils/JsonUtilTest.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ public void serializeInstanceWithEnumStringTest() throws IOException {
7272
String resultString = JsonUtil.serializeToString(classWithEnum);
7373

7474
String cmpString = getJsonStringFromFile(cmp);
75-
Assert.assertEquals(cmpString, resultString);
75+
Assert.assertTrue(JsonUtil.areTwoJsonObjectEquals(cmpString, resultString));
7676
}
7777

7878
@Test
@@ -97,7 +97,7 @@ public void serializeToMinimalInstanceWithEnumStringTest() throws IOException {
9797
String resultString = JsonUtil.serializeToMinimalString(classWithEnum);
9898

9999
String compareString = getJsonStringFromFile(cmp);
100-
Assert.assertEquals(compareString, resultString);
100+
Assert.assertTrue(JsonUtil.areTwoJsonObjectEquals(compareString, resultString));
101101
}
102102

103103
@Test
@@ -122,7 +122,7 @@ public void serializeStringWithLineBreakStringTest() throws IOException {
122122
String resultString = JsonUtil.serializeToString(stringsForSerialization);
123123

124124
String cmpString = getJsonStringFromFile(cmp);
125-
Assert.assertEquals(cmpString, resultString);
125+
Assert.assertEquals(cmpString,resultString);
126126
}
127127

128128
@Test
@@ -146,7 +146,7 @@ public void serializeToMinimalStringWithLineBreakStringTest() throws IOException
146146
String resultString = JsonUtil.serializeToMinimalString(stringsForSerialization);
147147

148148
String cmpString = getJsonStringFromFile(cmp);
149-
Assert.assertEquals(cmpString, resultString);
149+
Assert.assertEquals(cmpString,resultString);
150150
}
151151

152152
@Test
@@ -170,7 +170,7 @@ public void serializeComplexStructureStringTest() throws IOException {
170170
String resultString = JsonUtil.serializeToString(complexStructure);
171171

172172
String compareString = getJsonStringFromFile(cmp);
173-
Assert.assertEquals(compareString, resultString);
173+
Assert.assertTrue(JsonUtil.areTwoJsonObjectEquals(compareString, resultString));
174174
}
175175

176176
@Test
@@ -195,7 +195,7 @@ public void serializeToMinimalComplexStructureStringTest() throws IOException {
195195
String resultString = JsonUtil.serializeToMinimalString(complexStructure);
196196

197197
String compareString = getJsonStringFromFile(cmp);
198-
Assert.assertEquals(compareString, resultString);
198+
Assert.assertTrue(JsonUtil.areTwoJsonObjectEquals(compareString, resultString));
199199
}
200200

201201
@Test
@@ -221,7 +221,7 @@ public void serializeWithNullFieldsStringTest() throws IOException {
221221
String resultString = JsonUtil.serializeToString(complexStructure);
222222

223223
String compareString = getJsonStringFromFile(cmp);
224-
Assert.assertEquals(compareString, resultString);
224+
Assert.assertTrue(JsonUtil.areTwoJsonObjectEquals(compareString, resultString));
225225
}
226226

227227
@Test
@@ -247,7 +247,7 @@ public void serializeToMinimalWithNullFieldsStringTest() throws IOException {
247247
String resultString = JsonUtil.serializeToMinimalString(complexStructure);
248248

249249
String compareString = getJsonStringFromFile(cmp);
250-
Assert.assertEquals(compareString, resultString);
250+
Assert.assertTrue(JsonUtil.areTwoJsonObjectEquals(compareString, resultString));
251251
}
252252

253253
@Test

font-asian/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>com.itextpdf</groupId>
66
<artifactId>root</artifactId>
7-
<version>7.2.3</version>
7+
<version>7.2.4</version>
88
</parent>
99
<artifactId>font-asian</artifactId>
1010
<name>iText 7 - Asian fonts</name>

0 commit comments

Comments
 (0)