Skip to content

Commit f050f41

Browse files
authored
refactor: remove commons-lang3 dependency
* test: add JUnit 5 and register src/test/java as test source directory - Add junit-jupiter 5.14.3 for Java unit tests alongside existing Spock specs - Add build-helper-maven-plugin 3.6.1 to register src/test/java so maven-compiler-plugin picks it up in addition to the Groovy sources compiled by gmavenplus * refactor: remove commons-lang3 dependency Replace all commons-lang3 usages with project-owned utility classes: - StringUtils: leftPad, strip, deleteWhitespace, lowerCase, capitalize, uncapitalize, endsWith, removeEnd, replaceChars, left, latinize, escapeNonAscii, split, joinWithSpace - RandomUtils: randomNumeric, randomAlphabetic, randomAlphanumeric - ValidateUtils: notNull, isTrue Also remove TextUtils (methods migrated to StringUtils) and add package-info.java for the util package.
1 parent f5b21a1 commit f050f41

42 files changed

Lines changed: 1205 additions & 173 deletions

Some content is hidden

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

pom.xml

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -86,12 +86,6 @@
8686
<artifactId>snakeyaml-engine</artifactId>
8787
<version>2.3</version>
8888
</dependency>
89-
<dependency>
90-
<groupId>org.apache.commons</groupId>
91-
<artifactId>commons-lang3</artifactId>
92-
<version>3.18.0</version>
93-
</dependency>
94-
9589
<dependency>
9690
<groupId>org.jspecify</groupId>
9791
<artifactId>jspecify</artifactId>
@@ -143,8 +137,12 @@
143137
<version>3.4</version>
144138
<scope>test</scope>
145139
</dependency>
146-
147-
140+
<dependency>
141+
<groupId>org.junit.jupiter</groupId>
142+
<artifactId>junit-jupiter</artifactId>
143+
<version>5.14.3</version>
144+
<scope>test</scope>
145+
</dependency>
148146
</dependencies>
149147

150148

@@ -155,6 +153,25 @@
155153
<artifactId>maven-resources-plugin</artifactId>
156154
<version>3.3.1</version>
157155
</plugin>
156+
<plugin>
157+
<groupId>org.codehaus.mojo</groupId>
158+
<artifactId>build-helper-maven-plugin</artifactId>
159+
<version>3.6.1</version>
160+
<executions>
161+
<execution>
162+
<id>add-test-source</id>
163+
<phase>generate-test-sources</phase>
164+
<goals>
165+
<goal>add-test-source</goal>
166+
</goals>
167+
<configuration>
168+
<sources>
169+
<source>${project.basedir}/src/test/java</source>
170+
</sources>
171+
</configuration>
172+
</execution>
173+
</executions>
174+
</plugin>
158175
<plugin>
159176
<groupId>org.apache.maven.plugins</groupId>
160177
<artifactId>maven-compiler-plugin</artifactId>

src/main/java/com/devskiller/jfairy/data/MapBasedDataMaster.java

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@
1212
import java.util.List;
1313
import java.util.Map;
1414

15-
import org.apache.commons.lang3.EnumUtils;
16-
import org.apache.commons.lang3.Validate;
1715
import org.snakeyaml.engine.v2.api.Load;
1816
import org.snakeyaml.engine.v2.api.LoadSettings;
17+
1918
import com.devskiller.jfairy.producer.BaseProducer;
2019
import com.devskiller.jfairy.producer.util.LanguageCode;
20+
import com.devskiller.jfairy.producer.util.ValidateUtils;
2121

2222

2323
public class MapBasedDataMaster implements DataMaster {
@@ -72,17 +72,23 @@ public String getRandomValue(String key) {
7272

7373
@Override
7474
public LanguageCode getLanguage() {
75-
return EnumUtils.getEnum(LanguageCode.class, getString(LANGUAGE_TAG).toUpperCase());
75+
String tag = getString(LANGUAGE_TAG).toUpperCase();
76+
try {
77+
return LanguageCode.valueOf(tag);
78+
} catch (IllegalArgumentException ex) {
79+
throw new IllegalArgumentException("Unknown language tag: " + tag, ex);
80+
}
7681
}
7782

78-
@SuppressWarnings({"unchecked", "ConstantConditions"}) // checked by Validate
83+
@SuppressWarnings({"unchecked", "ConstantConditions"})
7984
<T> T getData(String key, Class<T> type) {
80-
Validate.notNull(key, "key cannot be null");
81-
Validate.notNull(type, "type cannot be null");
85+
ValidateUtils.notNull(key, "key cannot be null");
86+
ValidateUtils.notNull(type, "type cannot be null");
8287

8388
Object element = dataSource.get(key);
84-
Validate.isTrue(element != null, "No such key: %s", key);
85-
Validate.isTrue(type.isAssignableFrom(element.getClass()),
89+
90+
ValidateUtils.isTrue(element != null, "No such key: %s", key);
91+
ValidateUtils.isTrue(type.isAssignableFrom(element.getClass()),
8692
"Element under desired key has incorrect type - should be %s", type.getSimpleName());
8793

8894
return (T) element;

src/main/java/com/devskiller/jfairy/producer/DateProducer.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import java.time.Period;
1212
import java.time.ZoneOffset;
1313

14-
import org.apache.commons.lang3.Validate;
14+
import com.devskiller.jfairy.producer.util.ValidateUtils;
1515

1616
import static java.time.temporal.TemporalAdjusters.firstDayOfYear;
1717
import static java.time.temporal.TemporalAdjusters.lastDayOfYear;
@@ -30,7 +30,7 @@ public DateProducer(BaseProducer baseProducer, TimeProvider timeProvider) {
3030
}
3131

3232
public LocalDateTime randomDateInThePast(int maxYearsEarlier) {
33-
Validate.isTrue(maxYearsEarlier >= 0, "%d has to be >= 0", maxYearsEarlier);
33+
ValidateUtils.isTrue(maxYearsEarlier >= 0, "%d has to be >= 0", maxYearsEarlier);
3434
LocalDateTime currentDate = timeProvider.getCurrentTime();
3535
LocalDateTime latestDateInThePast = currentDate.minusSeconds(SECONDS_BEFORE_TO_BE_IN_THE_PAST);
3636
LocalDateTime maxYearsEarlierDate = currentDate.minusYears(maxYearsEarlier);
@@ -54,7 +54,7 @@ public LocalDateTime randomDateBetweenTwoDates(LocalDateTime from, LocalDateTime
5454
}
5555

5656
public LocalDateTime randomDateBetweenYears(int fromYear, int toYear) {
57-
Validate.isTrue(fromYear <= toYear, "%d has to be <= %d", fromYear, toYear);
57+
ValidateUtils.isTrue(fromYear <= toYear, "%d has to be <= %d", fromYear, toYear);
5858
LocalDateTime fromDate = getDateForFirstDayForGivenYear(fromYear);
5959
LocalDateTime toDate = getDateForLastDayForGivenYear(toYear);
6060
return randomDateBetweenTwoDates(fromDate, toDate);

src/main/java/com/devskiller/jfairy/producer/company/DefaultCompanyProvider.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
package com.devskiller.jfairy.producer.company;
22

33

4-
import org.apache.commons.lang3.StringUtils;
5-
64
import com.devskiller.jfairy.data.DataMaster;
75
import com.devskiller.jfairy.producer.BaseProducer;
86
import com.devskiller.jfairy.producer.VATIdentificationNumberProvider;
9-
import com.devskiller.jfairy.producer.util.TextUtils;
7+
8+
import static com.devskiller.jfairy.producer.util.StringUtils.deleteWhitespace;
9+
import static com.devskiller.jfairy.producer.util.StringUtils.escapeNonAscii;
10+
import static com.devskiller.jfairy.producer.util.StringUtils.strip;
11+
import static com.devskiller.jfairy.producer.util.StringUtils.latinize;
1012

1113
public class DefaultCompanyProvider implements CompanyProvider {
1214

@@ -70,9 +72,9 @@ public void generateDomain() {
7072
return;
7173
}
7274

73-
String host = TextUtils.stripAccents(StringUtils.strip(StringUtils.deleteWhitespace(name.toLowerCase()), ".").replace("/", ""));
75+
String host = latinize(strip(deleteWhitespace(name.toLowerCase()), ".").replace("/", ""));
7476
int len1 = host.length();
75-
host = TextUtils.escapeNonAscii(host).replaceAll("\\\\u", "");
77+
host = escapeNonAscii(host).replaceAll("\\\\u", "");
7678
int len2 = host.length();
7779
if (len2 > len1 && len2 > 10)
7880
host = host.substring(0, 10);

src/main/java/com/devskiller/jfairy/producer/company/locale/de/DeVATIdentificationNumberProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import com.devskiller.jfairy.producer.VATIdentificationNumberProvider;
44

5-
import static org.apache.commons.lang3.RandomStringUtils.randomNumeric;
5+
import static com.devskiller.jfairy.producer.util.RandomUtils.randomNumeric;
66

77
/**
88
* German VAT identification number (Umsatzsteuer-Identifikationsnummer or USt-IdNr.)

src/main/java/com/devskiller/jfairy/producer/company/locale/en/EnVATIdentificationNumberProvider.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77

88
import static java.lang.String.valueOf;
99
import static java.lang.System.arraycopy;
10-
import static org.apache.commons.lang3.StringUtils.leftPad;
10+
11+
import static com.devskiller.jfairy.producer.util.StringUtils.leftPad;
1112

1213
/**
1314
* American VAT Identification Number (known as Employer Identification Number or EIN in the United States)

src/main/java/com/devskiller/jfairy/producer/company/locale/es/EsVATIdentificationNumberProvider.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44

55
import com.devskiller.jfairy.producer.VATIdentificationNumberProvider;
66

7-
import static org.apache.commons.lang3.RandomStringUtils.randomAlphabetic;
8-
import static org.apache.commons.lang3.RandomStringUtils.randomAlphanumeric;
9-
import static org.apache.commons.lang3.RandomStringUtils.randomNumeric;
7+
import static com.devskiller.jfairy.producer.util.RandomUtils.randomAlphabetic;
8+
import static com.devskiller.jfairy.producer.util.RandomUtils.randomAlphanumeric;
9+
import static com.devskiller.jfairy.producer.util.RandomUtils.randomNumeric;
1010

1111
/**
1212
* Spanish VAT Identification Number (known as Número de Identificación Fiscal (for freelancers) or Código de Identificación Fiscal (for companies) in Spain)

src/main/java/com/devskiller/jfairy/producer/company/locale/pl/PlVATIdentificationNumberProvider.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99

1010
import static java.lang.String.format;
1111
import static java.lang.String.valueOf;
12-
import static org.apache.commons.lang3.StringUtils.leftPad;
12+
13+
import static com.devskiller.jfairy.producer.util.StringUtils.leftPad;
1314

1415
/**
1516
* Polish VAT Identification Number (known as NIP Numer Identyfikacji Podatkowej in Poland)

src/main/java/com/devskiller/jfairy/producer/company/locale/sk/SkVATIdentificationNumberProvider.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88

99
import static java.lang.String.format;
1010
import static java.lang.String.valueOf;
11-
import static org.apache.commons.lang3.StringUtils.leftPad;
11+
12+
import static com.devskiller.jfairy.producer.util.StringUtils.leftPad;
1213

1314
/**
1415
* Slovak VAT Identification Number (known as NIP)

src/main/java/com/devskiller/jfairy/producer/company/locale/sv/SvVATIdentificationNumberProvider.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,12 @@
88
import com.devskiller.jfairy.producer.person.NationalIdentificationNumberFactory;
99
import com.devskiller.jfairy.producer.person.NationalIdentificationNumberProvider;
1010

11+
import static java.lang.String.valueOf;
12+
1113
import static com.devskiller.jfairy.producer.person.NationalIdentificationNumberProperties.dateOfBirth;
1214
import static com.devskiller.jfairy.producer.person.locale.sv.SvNationalIdentificationNumberProvider.calculateChecksum;
13-
import static java.lang.String.valueOf;
14-
import static org.apache.commons.lang3.RandomStringUtils.randomNumeric;
15-
import static org.apache.commons.lang3.StringUtils.leftPad;
15+
import static com.devskiller.jfairy.producer.util.RandomUtils.randomNumeric;
16+
import static com.devskiller.jfairy.producer.util.StringUtils.leftPad;
1617

1718
/**
1819
* Swedish VAT Identification Number (known as Momsnummer in Sweden)

0 commit comments

Comments
 (0)