From f1f1e9eec76630eeaa72c24203e17b27de0f3ad6 Mon Sep 17 00:00:00 2001 From: Konstantin Korotkov Date: Tue, 6 Feb 2024 17:41:55 +0100 Subject: [PATCH 01/12] Upgrade to Jakarta 10 --- .../domain/entity/BaseEntity.java | 13 +----- .../domain/entity/impl/BaseEntityImpl.java | 44 +++++-------------- .../domain/entity/impl/CountryImpl.java | 15 +++---- .../domain/entity/impl/LicenseImpl.java | 14 +++--- .../entity/impl/LicenseTemplateImpl.java | 20 ++++----- .../domain/entity/impl/NotificationImpl.java | 17 ++++--- .../domain/entity/impl/ProductImpl.java | 22 ++++------ .../domain/entity/impl/ProductModuleImpl.java | 10 ++--- .../domain/entity/impl/TokenImpl.java | 12 +++-- .../domain/entity/impl/TransactionImpl.java | 16 +++---- .../exception/ServiceException.java | 6 +-- .../provider/RestProviderJersey.java | 20 ++++----- .../netlicensing/provider/RestResponse.java | 4 +- .../netlicensing/service/LicenseService.java | 7 +-- .../service/LicenseTemplateService.java | 7 +-- .../netlicensing/service/LicenseeService.java | 7 +-- .../service/NetLicensingService.java | 6 +-- .../service/NotificationService.java | 6 ++- .../service/PaymentMethodService.java | 3 +- .../service/ProductModuleService.java | 7 +-- .../netlicensing/service/ProductService.java | 5 ++- .../netlicensing/service/TokenService.java | 3 +- .../service/TransactionService.java | 5 ++- .../service/ValidationService.java | 4 +- .../netlicensing/util/FormConverter.java | 28 ++++++++++++ .../netlicensing/service/BaseServiceTest.java | 24 +++++----- .../service/LicenseServiceTest.java | 8 ++-- .../service/LicenseTemplateServiceTest.java | 8 ++-- .../service/LicenseeServiceTest.java | 14 +++--- .../service/NetLicensingServiceTest.java | 8 ++-- .../service/NotificationServiceTest.java | 8 ++-- .../service/PaymentMethodServiceTest.java | 6 +-- .../service/ProductModuleServiceTest.java | 8 ++-- .../service/ProductServiceTest.java | 8 ++-- .../netlicensing/service/SecurityTest.java | 10 ++--- .../service/TokenServiceTest.java | 8 ++-- .../service/TransactionServiceTest.java | 6 +-- .../service/UtilityServiceTest.java | 6 +-- pom.xml | 6 +-- 39 files changed, 210 insertions(+), 219 deletions(-) create mode 100644 NetLicensingClient/src/main/java/com/labs64/netlicensing/util/FormConverter.java diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/BaseEntity.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/BaseEntity.java index 38518be1..ffc1fb42 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/BaseEntity.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/BaseEntity.java @@ -15,8 +15,6 @@ import java.io.Serializable; import java.util.Map; -import javax.ws.rs.core.Form; - /** * Defines properties common to all (or most) of other entities. */ @@ -39,13 +37,6 @@ public interface BaseEntity extends Serializable { void addProperty(String property, String value); void removeProperty(final String property); - - /** - * Converts properties of the entity to the body of POST request - * - * @return object that represents HTML form data request encoded using the "application/x-www-form-urlencoded" - * content type - */ - Form asRequestForm(); - + + Map asMap(); } diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/BaseEntityImpl.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/BaseEntityImpl.java index d39722df..1c5db3ed 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/BaseEntityImpl.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/BaseEntityImpl.java @@ -13,15 +13,9 @@ package com.labs64.netlicensing.domain.entity.impl; import java.util.ArrayList; -import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Map.Entry; - -import javax.ws.rs.core.Form; -import javax.ws.rs.core.MultivaluedHashMap; -import javax.ws.rs.core.MultivaluedMap; import com.labs64.netlicensing.domain.Constants; import com.labs64.netlicensing.domain.entity.BaseEntity; @@ -95,51 +89,35 @@ public void removeProperty(final String property) { @Override public String toString() { - return toString(asPropertiesMap()); + return toString(asMap()); } - + @Override - public Form asRequestForm() { - final Form form = new Form(); - for (final Entry> prop : asPropertiesMap().entrySet()) { - for (final Object value : prop.getValue()) { - if (value != null) { - form.param(prop.getKey(), value.toString()); - } - } - } - return form; - } - - protected MultivaluedMap asPropertiesMap() { - final MultivaluedMap map = new MultivaluedHashMap<>(); - map.add(Constants.NUMBER, getNumber()); - map.add(Constants.ACTIVE, getActive()); + public Map asMap() { + final Map map = new HashMap<>(); + map.put(Constants.NUMBER, getNumber()); + map.put(Constants.ACTIVE, getActive()); if (properties != null) { for (final Map.Entry lp : properties.entrySet()) { - map.add(lp.getKey(), lp.getValue()); + map.put(lp.getKey(), lp.getValue()); } } return map; } - protected String toString(final MultivaluedMap propMap) { + protected String toString(final Map propMap) { final StringBuilder builder = new StringBuilder(this.getClass().getSimpleName()); builder.append(" ["); boolean firstProp = true; for (final String propKey : propMap.keySet()) { final Object propValue = propMap.get(propKey); - if ((propValue != null) && (!(propValue instanceof Collection) || (((Collection) propValue).size() > 0))) { + if (propValue != null) { builder.append(firstProp ? "" : ", "); firstProp = false; builder.append(propKey).append("="); - if (propValue instanceof Collection) { - builder.append(propValue.toString()); - } else { - final String propValueStr = String.valueOf(propValue); - builder.append(propValueStr.length() > 50 ? propValueStr.substring(0, 50) : propValue); - } + final String propValueStr = String.valueOf(propValue); + builder.append(propValueStr.length() > 50 ? propValueStr.substring(0, 50) : propValue); } } return builder.append("]").toString(); diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/CountryImpl.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/CountryImpl.java index f8673016..d47540a4 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/CountryImpl.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/CountryImpl.java @@ -13,8 +13,7 @@ package com.labs64.netlicensing.domain.entity.impl; import java.math.BigDecimal; - -import javax.ws.rs.core.MultivaluedMap; +import java.util.Map; import com.labs64.netlicensing.domain.Constants; import com.labs64.netlicensing.domain.entity.Country; @@ -75,12 +74,12 @@ public boolean getIsEu() { } @Override - protected MultivaluedMap asPropertiesMap() { - final MultivaluedMap map = super.asPropertiesMap(); - map.add(Constants.Country.CODE, getCode()); - map.add(Constants.Country.NAME, getName()); - map.add(Constants.Country.VAT_PERCENT, getVatPercent()); - map.add(Constants.Country.IS_EU, getIsEu()); + public Map asMap() { + final Map map = super.asMap(); + map.put(Constants.Country.CODE, getCode()); + map.put(Constants.Country.NAME, getName()); + map.put(Constants.Country.VAT_PERCENT, getVatPercent()); + map.put(Constants.Country.IS_EU, getIsEu()); return map; } diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/LicenseImpl.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/LicenseImpl.java index c2355cfd..20acb31d 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/LicenseImpl.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/LicenseImpl.java @@ -16,8 +16,6 @@ import java.util.List; import java.util.Map; -import javax.ws.rs.core.MultivaluedMap; - import com.labs64.netlicensing.domain.Constants; import com.labs64.netlicensing.domain.entity.License; import com.labs64.netlicensing.domain.entity.LicenseTemplate; @@ -129,12 +127,12 @@ public Map getLicenseProperties() { } @Override - protected MultivaluedMap asPropertiesMap() { - final MultivaluedMap map = super.asPropertiesMap(); - map.add(Constants.NAME, getName()); - map.add(Constants.PRICE, getPrice()); - map.add(Constants.CURRENCY, getCurrency()); - map.add(Constants.License.HIDDEN, getHidden()); + public Map asMap() { + final Map map = super.asMap(); + map.put(Constants.NAME, getName()); + map.put(Constants.PRICE, getPrice()); + map.put(Constants.CURRENCY, getCurrency()); + map.put(Constants.License.HIDDEN, getHidden()); return map; } diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/LicenseTemplateImpl.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/LicenseTemplateImpl.java index fc0d3c1e..dc28959d 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/LicenseTemplateImpl.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/LicenseTemplateImpl.java @@ -18,8 +18,6 @@ import java.util.List; import java.util.Map; -import javax.ws.rs.core.MultivaluedMap; - import com.labs64.netlicensing.domain.Constants; import com.labs64.netlicensing.domain.entity.License; import com.labs64.netlicensing.domain.entity.LicenseTemplate; @@ -171,15 +169,15 @@ public Map getLicenseTemplateProperties() { } @Override - protected MultivaluedMap asPropertiesMap() { - final MultivaluedMap map = super.asPropertiesMap(); - map.add(Constants.NAME, getName()); - map.add(Constants.LicenseTemplate.LICENSE_TYPE, getLicenseType()); - map.add(Constants.PRICE, getPrice()); - map.add(Constants.CURRENCY, getCurrency()); - map.add(Constants.LicenseTemplate.AUTOMATIC, getAutomatic()); - map.add(Constants.LicenseTemplate.HIDDEN, getHidden()); - map.add(Constants.LicenseTemplate.HIDE_LICENSES, getHideLicenses()); + public Map asMap() { + final Map map = super.asMap(); + map.put(Constants.NAME, getName()); + map.put(Constants.LicenseTemplate.LICENSE_TYPE, getLicenseType()); + map.put(Constants.PRICE, getPrice()); + map.put(Constants.CURRENCY, getCurrency()); + map.put(Constants.LicenseTemplate.AUTOMATIC, getAutomatic()); + map.put(Constants.LicenseTemplate.HIDDEN, getHidden()); + map.put(Constants.LicenseTemplate.HIDE_LICENSES, getHideLicenses()); return map; } diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/NotificationImpl.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/NotificationImpl.java index 4b9065b0..f693a0bd 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/NotificationImpl.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/NotificationImpl.java @@ -14,11 +14,10 @@ import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Set; import java.util.stream.Collectors; -import javax.ws.rs.core.MultivaluedMap; - import com.labs64.netlicensing.domain.Constants; import com.labs64.netlicensing.domain.entity.Notification; import com.labs64.netlicensing.domain.entity.Product; @@ -96,23 +95,23 @@ public static List getReservedProps() { } @Override - protected MultivaluedMap asPropertiesMap() { + public Map asMap() { final Set events = getEvents(); final NotificationProtocol protocol = getProtocol(); - final MultivaluedMap map = super.asPropertiesMap(); - map.add(Constants.NAME, getName()); - map.add(Constants.Notification.EVENTS, events.stream().map(Enum::name).collect(Collectors.joining(","))); + final Map map = super.asMap(); + map.put(Constants.NAME, getName()); + map.put(Constants.Notification.EVENTS, events.stream().map(Enum::name).collect(Collectors.joining(","))); if (protocol != null) { - map.add(Constants.Notification.PROTOCOL, protocol.name()); + map.put(Constants.Notification.PROTOCOL, protocol.name()); } if (NotificationProtocol.WEBHOOK.equals(protocol)) { - map.add(Constants.Notification.ENDPOINT, getProperties().get(Constants.Notification.ENDPOINT)); + map.put(Constants.Notification.ENDPOINT, getProperties().get(Constants.Notification.ENDPOINT)); } - map.add(Constants.Notification.PAYLOAD, getPayload()); + map.put(Constants.Notification.PAYLOAD, getPayload()); return map; } diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/ProductImpl.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/ProductImpl.java index 5fcf4c8b..8e9bed0d 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/ProductImpl.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/ProductImpl.java @@ -17,8 +17,6 @@ import java.util.List; import java.util.Map; -import javax.ws.rs.core.MultivaluedMap; - import com.labs64.netlicensing.domain.Constants; import com.labs64.netlicensing.domain.entity.Licensee; import com.labs64.netlicensing.domain.entity.Product; @@ -173,21 +171,19 @@ public Map getProductProperties() { } @Override - protected MultivaluedMap asPropertiesMap() { - final MultivaluedMap map = super.asPropertiesMap(); - map.add(Constants.NAME, getName()); - map.add(Constants.VERSION, getVersion()); - map.add(Constants.Product.LICENSEE_AUTO_CREATE, getLicenseeAutoCreate()); - map.add(Constants.Product.DESCRIPTION, getDescription()); - map.add(Constants.Product.LICENSING_INFO, getLicensingInfo()); + public Map asMap() { + final Map map = super.asMap(); + map.put(Constants.NAME, getName()); + map.put(Constants.VERSION, getVersion()); + map.put(Constants.Product.LICENSEE_AUTO_CREATE, getLicenseeAutoCreate()); + map.put(Constants.Product.DESCRIPTION, getDescription()); + map.put(Constants.Product.LICENSING_INFO, getLicensingInfo()); if (productDiscounts != null) { - for (final ProductDiscount productDiscount : productDiscounts) { - map.add(Constants.DISCOUNT, productDiscount.toString()); - } + map.put(Constants.DISCOUNT, productDiscounts); } if (map.get(Constants.DISCOUNT) == null && productDiscountsTouched) { - map.add(Constants.DISCOUNT, ""); + map.put(Constants.DISCOUNT, ""); } return map; diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/ProductModuleImpl.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/ProductModuleImpl.java index 9c62da64..1fcb9966 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/ProductModuleImpl.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/ProductModuleImpl.java @@ -17,8 +17,6 @@ import java.util.List; import java.util.Map; -import javax.ws.rs.core.MultivaluedMap; - import com.labs64.netlicensing.domain.Constants; import com.labs64.netlicensing.domain.entity.LicenseTemplate; import com.labs64.netlicensing.domain.entity.Product; @@ -100,10 +98,10 @@ public Map getProductModuleProperties() { } @Override - protected MultivaluedMap asPropertiesMap() { - final MultivaluedMap map = super.asPropertiesMap(); - map.add(Constants.NAME, getName()); - map.add(Constants.ProductModule.LICENSING_MODEL, getLicensingModel()); + public Map asMap() { + final Map map = super.asMap(); + map.put(Constants.NAME, getName()); + map.put(Constants.ProductModule.LICENSING_MODEL, getLicensingModel()); return map; } diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/TokenImpl.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/TokenImpl.java index 852c71b5..9568bee0 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/TokenImpl.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/TokenImpl.java @@ -16,8 +16,6 @@ import java.util.List; import java.util.Map; -import javax.ws.rs.core.MultivaluedMap; - import com.labs64.netlicensing.domain.Constants; import com.labs64.netlicensing.domain.entity.Token; import com.labs64.netlicensing.domain.vo.ITokenType; @@ -89,11 +87,11 @@ public Map getTokenProperties() { } @Override - protected MultivaluedMap asPropertiesMap() { - final MultivaluedMap map = super.asPropertiesMap(); - map.add(Constants.Token.EXPIRATION_TIME, getExpirationTime()); - map.add(Constants.Token.TOKEN_TYPE, getTokenType()); - map.add(Constants.Token.TOKEN_PROP_VENDORNUMBER, getVendorNumber()); + public Map asMap() { + final Map map = super.asMap(); + map.put(Constants.Token.EXPIRATION_TIME, getExpirationTime()); + map.put(Constants.Token.TOKEN_TYPE, getTokenType()); + map.put(Constants.Token.TOKEN_PROP_VENDORNUMBER, getVendorNumber()); return map; } diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/TransactionImpl.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/TransactionImpl.java index f4747041..6d5870f0 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/TransactionImpl.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/TransactionImpl.java @@ -18,8 +18,6 @@ import java.util.List; import java.util.Map; -import javax.ws.rs.core.MultivaluedMap; - import com.labs64.netlicensing.domain.Constants; import com.labs64.netlicensing.domain.entity.LicenseTransactionJoin; import com.labs64.netlicensing.domain.entity.Transaction; @@ -158,13 +156,13 @@ public Map getTransactionProperties() { } @Override - protected MultivaluedMap asPropertiesMap() { - final MultivaluedMap map = super.asPropertiesMap(); - map.add(Constants.Transaction.STATUS, getStatus()); - map.add(Constants.Transaction.SOURCE, getSource()); - map.add(Constants.Transaction.GRAND_TOTAL, getGrandTotal()); - map.add(Constants.DISCOUNT, getDiscount()); - map.add(Constants.CURRENCY, getCurrency()); + public Map asMap() { + final Map map = super.asMap(); + map.put(Constants.Transaction.STATUS, getStatus()); + map.put(Constants.Transaction.SOURCE, getSource()); + map.put(Constants.Transaction.GRAND_TOTAL, getGrandTotal()); + map.put(Constants.DISCOUNT, getDiscount()); + map.put(Constants.CURRENCY, getCurrency()); return map; } diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/exception/ServiceException.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/exception/ServiceException.java index ca608a17..7ff59748 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/exception/ServiceException.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/exception/ServiceException.java @@ -12,9 +12,9 @@ */ package com.labs64.netlicensing.exception; -import javax.ws.rs.core.MultivaluedHashMap; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.core.MultivaluedHashMap; +import jakarta.ws.rs.core.MultivaluedMap; +import jakarta.ws.rs.core.Response; import com.labs64.netlicensing.schema.SchemaFunction; import com.labs64.netlicensing.schema.context.Netlicensing; diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/RestProviderJersey.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/RestProviderJersey.java index 4168eb27..7623de44 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/RestProviderJersey.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/RestProviderJersey.java @@ -14,16 +14,16 @@ import java.util.Map; -import javax.ws.rs.ProcessingException; -import javax.ws.rs.client.Client; -import javax.ws.rs.client.ClientBuilder; -import javax.ws.rs.client.Entity; -import javax.ws.rs.client.Invocation.Builder; -import javax.ws.rs.client.WebTarget; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.NoContentException; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.ProcessingException; +import jakarta.ws.rs.client.Client; +import jakarta.ws.rs.client.ClientBuilder; +import jakarta.ws.rs.client.Entity; +import jakarta.ws.rs.client.Invocation.Builder; +import jakarta.ws.rs.client.WebTarget; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.NoContentException; +import jakarta.ws.rs.core.Response; import org.glassfish.jersey.client.ClientConfig; import org.glassfish.jersey.client.authentication.HttpAuthenticationFeature; diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/RestResponse.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/RestResponse.java index 2266a8e5..404f9946 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/RestResponse.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/RestResponse.java @@ -12,8 +12,8 @@ */ package com.labs64.netlicensing.provider; -import javax.ws.rs.core.MultivaluedHashMap; -import javax.ws.rs.core.MultivaluedMap; +import jakarta.ws.rs.core.MultivaluedHashMap; +import jakarta.ws.rs.core.MultivaluedMap; /** * Contains info about response together with response entity. diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/LicenseService.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/LicenseService.java index 735b74cc..203c56f1 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/LicenseService.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/LicenseService.java @@ -15,7 +15,7 @@ import java.util.HashMap; import java.util.Map; -import javax.ws.rs.core.Form; +import jakarta.ws.rs.core.Form; import org.apache.commons.lang3.StringUtils; @@ -25,6 +25,7 @@ import com.labs64.netlicensing.domain.vo.Page; import com.labs64.netlicensing.exception.NetLicensingException; import com.labs64.netlicensing.util.CheckUtils; +import com.labs64.netlicensing.util.FormConverter; /** * Provides license handling routines. @@ -70,7 +71,7 @@ public static License create(final Context context, final String licenseeNumber, CheckUtils.paramNotNull(license, "license"); - final Form form = license.asRequestForm(); + final Form form = FormConverter.convert(license); if (StringUtils.isNotBlank(licenseeNumber)) { form.param(Constants.Licensee.LICENSEE_NUMBER, licenseeNumber); } @@ -141,7 +142,7 @@ public static License update(final Context context, final String number, final S CheckUtils.paramNotEmpty(number, "number"); CheckUtils.paramNotNull(license, "license"); - final Form form = license.asRequestForm(); + final Form form = FormConverter.convert(license); if (StringUtils.isNotBlank(transactionNumber)) { form.param(Constants.Transaction.TRANSACTION_NUMBER, transactionNumber); } diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/LicenseTemplateService.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/LicenseTemplateService.java index 67af8833..40b0ab9a 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/LicenseTemplateService.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/LicenseTemplateService.java @@ -15,7 +15,7 @@ import java.util.HashMap; import java.util.Map; -import javax.ws.rs.core.Form; +import jakarta.ws.rs.core.Form; import org.apache.commons.lang3.StringUtils; @@ -25,6 +25,7 @@ import com.labs64.netlicensing.domain.vo.Page; import com.labs64.netlicensing.exception.NetLicensingException; import com.labs64.netlicensing.util.CheckUtils; +import com.labs64.netlicensing.util.FormConverter; /** * Provides license template handling routines. @@ -56,7 +57,7 @@ public static LicenseTemplate create(final Context context, final String product final LicenseTemplate licenseTemplate) throws NetLicensingException { CheckUtils.paramNotNull(licenseTemplate, "licenseTemplate"); - final Form form = licenseTemplate.asRequestForm(); + final Form form = FormConverter.convert(licenseTemplate); if (StringUtils.isNotBlank(productModuleNumber)) { form.param(Constants.ProductModule.PRODUCT_MODULE_NUMBER, productModuleNumber); } @@ -121,7 +122,7 @@ public static LicenseTemplate update(final Context context, final String number, CheckUtils.paramNotNull(licenseTemplate, "licenseTemplate"); return NetLicensingService.getInstance().post(context, Constants.LicenseTemplate.ENDPOINT_PATH + "/" + number, - licenseTemplate.asRequestForm(), LicenseTemplate.class); + FormConverter.convert(licenseTemplate), LicenseTemplate.class); } /** diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/LicenseeService.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/LicenseeService.java index cba7db48..607f6465 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/LicenseeService.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/LicenseeService.java @@ -15,7 +15,7 @@ import java.util.HashMap; import java.util.Map; -import javax.ws.rs.core.Form; +import jakarta.ws.rs.core.Form; import org.apache.commons.lang3.StringUtils; @@ -28,6 +28,7 @@ import com.labs64.netlicensing.domain.vo.ValidationResult; import com.labs64.netlicensing.exception.NetLicensingException; import com.labs64.netlicensing.util.CheckUtils; +import com.labs64.netlicensing.util.FormConverter; /** * Provides licensee handling routines. @@ -62,7 +63,7 @@ public static Licensee create(final Context context, final String productNumber, throws NetLicensingException { CheckUtils.paramNotNull(licensee, "licensee"); - final Form form = licensee.asRequestForm(); + final Form form = FormConverter.convert(licensee); if (StringUtils.isNotBlank(productNumber)) { form.param(Constants.Product.PRODUCT_NUMBER, productNumber); } @@ -123,7 +124,7 @@ public static Licensee update(final Context context, final String number, final CheckUtils.paramNotEmpty(number, "number"); CheckUtils.paramNotNull(licensee, "licensee"); - return NetLicensingService.getInstance().post(context, Constants.Licensee.ENDPOINT_PATH + "/" + number, licensee.asRequestForm(), + return NetLicensingService.getInstance().post(context, Constants.Licensee.ENDPOINT_PATH + "/" + number, FormConverter.convert(licensee), Licensee.class); } diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/NetLicensingService.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/NetLicensingService.java index 998269f6..f39b2e75 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/NetLicensingService.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/NetLicensingService.java @@ -15,9 +15,9 @@ import java.util.HashMap; import java.util.Map; -import javax.ws.rs.HttpMethod; -import javax.ws.rs.core.Form; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.HttpMethod; +import jakarta.ws.rs.core.Form; +import jakarta.ws.rs.core.Response; import org.apache.commons.lang3.StringUtils; diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/NotificationService.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/NotificationService.java index 7cffd067..a385fd2d 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/NotificationService.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/NotificationService.java @@ -18,6 +18,8 @@ import com.labs64.netlicensing.domain.vo.Page; import com.labs64.netlicensing.exception.NetLicensingException; import com.labs64.netlicensing.util.CheckUtils; +import com.labs64.netlicensing.util.FormConverter; + import org.apache.commons.lang3.StringUtils; import java.util.HashMap; @@ -36,7 +38,7 @@ public class NotificationService { */ public static Notification create(final Context context, final Notification notification) throws NetLicensingException { CheckUtils.paramNotNull(notification, "notification"); - return NetLicensingService.getInstance().post(context, Constants.Notification.ENDPOINT_PATH, notification.asRequestForm(), Notification.class); + return NetLicensingService.getInstance().post(context, Constants.Notification.ENDPOINT_PATH, FormConverter.convert(notification), Notification.class); } /** @@ -85,7 +87,7 @@ public static Notification update(final Context context, final String number, fi CheckUtils.paramNotEmpty(number, "number"); CheckUtils.paramNotNull(notification, "notification"); - return NetLicensingService.getInstance().post(context, Constants.Notification.ENDPOINT_PATH + "/" + number, notification.asRequestForm(), + return NetLicensingService.getInstance().post(context, Constants.Notification.ENDPOINT_PATH + "/" + number, FormConverter.convert(notification), Notification.class); } diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/PaymentMethodService.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/PaymentMethodService.java index 9187c917..724c77a2 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/PaymentMethodService.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/PaymentMethodService.java @@ -23,6 +23,7 @@ import com.labs64.netlicensing.domain.vo.Page; import com.labs64.netlicensing.exception.NetLicensingException; import com.labs64.netlicensing.util.CheckUtils; +import com.labs64.netlicensing.util.FormConverter; /** * Provides payment method entity handling routines. @@ -87,7 +88,7 @@ public static PaymentMethod update(final Context context, final String number, f CheckUtils.paramNotNull(paymentMethod, "paymentMethod"); return NetLicensingService.getInstance().post(context, Constants.PaymentMethod.ENDPOINT_PATH + "/" + number, - paymentMethod.asRequestForm(), PaymentMethod.class); + FormConverter.convert(paymentMethod), PaymentMethod.class); } } diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/ProductModuleService.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/ProductModuleService.java index 98539b36..1a31aae7 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/ProductModuleService.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/ProductModuleService.java @@ -15,7 +15,7 @@ import java.util.HashMap; import java.util.Map; -import javax.ws.rs.core.Form; +import jakarta.ws.rs.core.Form; import org.apache.commons.lang3.StringUtils; @@ -25,6 +25,7 @@ import com.labs64.netlicensing.domain.vo.Page; import com.labs64.netlicensing.exception.NetLicensingException; import com.labs64.netlicensing.util.CheckUtils; +import com.labs64.netlicensing.util.FormConverter; /** * Provides product module handling routines. @@ -55,7 +56,7 @@ public static ProductModule create(final Context context, final String productNu final ProductModule productModule) throws NetLicensingException { CheckUtils.paramNotNull(productModule, "productNumber"); - final Form form = productModule.asRequestForm(); + final Form form = FormConverter.convert(productModule); if (StringUtils.isNotBlank(productNumber)) { form.param(Constants.Product.PRODUCT_NUMBER, productNumber); } @@ -120,7 +121,7 @@ public static ProductModule update(final Context context, final String number, f CheckUtils.paramNotNull(productModule, "productModule"); return NetLicensingService.getInstance().post(context, Constants.ProductModule.ENDPOINT_PATH + "/" + number, - productModule.asRequestForm(), ProductModule.class); + FormConverter.convert(productModule), ProductModule.class); } /** diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/ProductService.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/ProductService.java index 83a2c226..5324c769 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/ProductService.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/ProductService.java @@ -23,6 +23,7 @@ import com.labs64.netlicensing.domain.vo.Page; import com.labs64.netlicensing.exception.NetLicensingException; import com.labs64.netlicensing.util.CheckUtils; +import com.labs64.netlicensing.util.FormConverter; /** * Provides product handling routines. @@ -53,7 +54,7 @@ public class ProductService { public static Product create(final Context context, final Product product) throws NetLicensingException { CheckUtils.paramNotNull(product, "product"); - return NetLicensingService.getInstance().post(context, Constants.Product.ENDPOINT_PATH, product.asRequestForm(), Product.class); + return NetLicensingService.getInstance().post(context, Constants.Product.ENDPOINT_PATH, FormConverter.convert(product), Product.class); } /** @@ -114,7 +115,7 @@ public static Product update(final Context context, final String number, final P CheckUtils.paramNotEmpty(number, "number"); CheckUtils.paramNotNull(product, "product"); - return NetLicensingService.getInstance().post(context, Constants.Product.ENDPOINT_PATH + "/" + number, product.asRequestForm(), + return NetLicensingService.getInstance().post(context, Constants.Product.ENDPOINT_PATH + "/" + number, FormConverter.convert(product), Product.class); } diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/TokenService.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/TokenService.java index 0a6c2cfb..7a5ee2e3 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/TokenService.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/TokenService.java @@ -23,6 +23,7 @@ import com.labs64.netlicensing.domain.vo.Page; import com.labs64.netlicensing.exception.NetLicensingException; import com.labs64.netlicensing.util.CheckUtils; +import com.labs64.netlicensing.util.FormConverter; /** * Provides token entity handling routines. @@ -82,7 +83,7 @@ public static Page list(final Context context, final String filter) throw public static Token create(final Context context, final Token token) throws NetLicensingException { CheckUtils.paramNotNull(token, "token"); - return NetLicensingService.getInstance().post(context, Constants.Token.ENDPOINT_PATH, token.asRequestForm(), Token.class); + return NetLicensingService.getInstance().post(context, Constants.Token.ENDPOINT_PATH, FormConverter.convert(token), Token.class); } /** diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/TransactionService.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/TransactionService.java index cbb496ba..aeba5de5 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/TransactionService.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/TransactionService.java @@ -23,6 +23,7 @@ import com.labs64.netlicensing.domain.vo.Page; import com.labs64.netlicensing.exception.NetLicensingException; import com.labs64.netlicensing.util.CheckUtils; +import com.labs64.netlicensing.util.FormConverter; /** * Provides transaction handling routines. @@ -57,7 +58,7 @@ public static Transaction create(final Context context, final Transaction transa CheckUtils.paramNotNull(transaction, "transaction"); return NetLicensingService.getInstance().post(context, Constants.Transaction.ENDPOINT_PATH, - transaction.asRequestForm(), + FormConverter.convert(transaction), Transaction.class); } @@ -129,7 +130,7 @@ public static Transaction update(final Context context, final String number, fin CheckUtils.paramNotNull(transaction, "transaction"); return NetLicensingService.getInstance().post(context, Constants.Transaction.ENDPOINT_PATH + "/" + number, - transaction.asRequestForm(), Transaction.class); + FormConverter.convert(transaction), Transaction.class); } } diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/ValidationService.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/ValidationService.java index 21628133..19ee057d 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/ValidationService.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/ValidationService.java @@ -16,8 +16,8 @@ import java.util.Map; import java.util.Map.Entry; -import javax.ws.rs.HttpMethod; -import javax.ws.rs.core.Form; +import jakarta.ws.rs.HttpMethod; +import jakarta.ws.rs.core.Form; import org.apache.commons.lang3.StringUtils; diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/util/FormConverter.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/util/FormConverter.java new file mode 100644 index 00000000..4b75a26c --- /dev/null +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/util/FormConverter.java @@ -0,0 +1,28 @@ +package com.labs64.netlicensing.util; + +import java.util.Collection; +import java.util.Map.Entry; + +import jakarta.ws.rs.core.Form; + +import com.labs64.netlicensing.domain.entity.BaseEntity; + +public class FormConverter { + + public static Form convert(BaseEntity entity) { + final Form form = new Form(); + for (final Entry prop : entity.asMap().entrySet()) { + if (prop.getValue() != null) { + if (prop.getValue() instanceof Collection) { + for (Object value: (Collection) prop.getValue()) { + form.param(prop.getKey(), value.toString()); + } + } else { + form.param(prop.getKey(), prop.getValue().toString()); + } + } + } + return form; + } + +} diff --git a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/BaseServiceTest.java b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/BaseServiceTest.java index 685710db..b7600d98 100644 --- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/BaseServiceTest.java +++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/BaseServiceTest.java @@ -18,18 +18,18 @@ import java.util.List; import java.util.Map; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.core.Application; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.UriInfo; +import jakarta.ws.rs.Consumes; +import jakarta.ws.rs.DELETE; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.POST; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.PathParam; +import jakarta.ws.rs.core.Application; +import jakarta.ws.rs.core.Context; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.MultivaluedMap; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.UriInfo; import org.apache.commons.lang3.StringUtils; import org.apache.commons.text.WordUtils; diff --git a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/LicenseServiceTest.java b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/LicenseServiceTest.java index d7f0cf01..cfa083d3 100644 --- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/LicenseServiceTest.java +++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/LicenseServiceTest.java @@ -17,10 +17,10 @@ import java.util.List; import java.util.Map; -import javax.ws.rs.Path; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.UriInfo; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.core.MultivaluedMap; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.UriInfo; import org.junit.BeforeClass; import org.junit.Test; diff --git a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/LicenseTemplateServiceTest.java b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/LicenseTemplateServiceTest.java index 37f0a0b3..0f1f2177 100644 --- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/LicenseTemplateServiceTest.java +++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/LicenseTemplateServiceTest.java @@ -16,10 +16,10 @@ import java.util.HashMap; import java.util.Map; -import javax.ws.rs.Path; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.UriInfo; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.core.MultivaluedMap; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.UriInfo; import org.junit.BeforeClass; import org.junit.Test; diff --git a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/LicenseeServiceTest.java b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/LicenseeServiceTest.java index e2d1370b..30cc92a2 100644 --- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/LicenseeServiceTest.java +++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/LicenseeServiceTest.java @@ -15,13 +15,13 @@ import java.util.HashMap; import java.util.Map; -import javax.ws.rs.FormParam; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.UriInfo; +import jakarta.ws.rs.FormParam; +import jakarta.ws.rs.POST; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.PathParam; +import jakarta.ws.rs.core.MultivaluedMap; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.UriInfo; import org.junit.BeforeClass; import org.junit.Test; diff --git a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/NetLicensingServiceTest.java b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/NetLicensingServiceTest.java index 3f58a911..738ee646 100644 --- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/NetLicensingServiceTest.java +++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/NetLicensingServiceTest.java @@ -12,10 +12,10 @@ */ package com.labs64.netlicensing.service; -import javax.ws.rs.GET; -import javax.ws.rs.HttpMethod; -import javax.ws.rs.Path; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.HttpMethod; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.core.Response; import org.junit.BeforeClass; import org.junit.Test; diff --git a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/NotificationServiceTest.java b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/NotificationServiceTest.java index f4a09d2f..6fe00b22 100644 --- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/NotificationServiceTest.java +++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/NotificationServiceTest.java @@ -18,10 +18,10 @@ import java.util.Set; import java.util.stream.Collectors; -import javax.ws.rs.Path; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.UriInfo; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.core.MultivaluedMap; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.UriInfo; import org.apache.commons.lang3.StringUtils; import org.junit.BeforeClass; diff --git a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/PaymentMethodServiceTest.java b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/PaymentMethodServiceTest.java index aeed926b..5abc5e54 100644 --- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/PaymentMethodServiceTest.java +++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/PaymentMethodServiceTest.java @@ -12,9 +12,9 @@ */ package com.labs64.netlicensing.service; -import javax.ws.rs.Path; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.core.MultivaluedMap; +import jakarta.ws.rs.core.Response; import org.junit.BeforeClass; import org.junit.Test; diff --git a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/ProductModuleServiceTest.java b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/ProductModuleServiceTest.java index 3d3c924c..2466dddd 100644 --- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/ProductModuleServiceTest.java +++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/ProductModuleServiceTest.java @@ -15,10 +15,10 @@ import java.util.HashMap; import java.util.Map; -import javax.ws.rs.Path; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.UriInfo; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.core.MultivaluedMap; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.UriInfo; import org.junit.BeforeClass; import org.junit.Test; diff --git a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/ProductServiceTest.java b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/ProductServiceTest.java index 7dc4dad9..ed3a6663 100644 --- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/ProductServiceTest.java +++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/ProductServiceTest.java @@ -15,10 +15,10 @@ import java.util.HashMap; import java.util.Map; -import javax.ws.rs.Path; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.UriInfo; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.core.MultivaluedMap; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.UriInfo; import org.junit.BeforeClass; import org.junit.Test; diff --git a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/SecurityTest.java b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/SecurityTest.java index 80a3c91f..b42ab912 100644 --- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/SecurityTest.java +++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/SecurityTest.java @@ -14,11 +14,11 @@ import java.util.Base64; -import javax.ws.rs.GET; -import javax.ws.rs.HeaderParam; -import javax.ws.rs.HttpMethod; -import javax.ws.rs.Path; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.HeaderParam; +import jakarta.ws.rs.HttpMethod; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.core.Response; import org.junit.Test; diff --git a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/TokenServiceTest.java b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/TokenServiceTest.java index 1f8fa1df..8f56759c 100644 --- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/TokenServiceTest.java +++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/TokenServiceTest.java @@ -16,10 +16,10 @@ import java.util.Map; import java.util.UUID; -import javax.ws.rs.Path; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.UriInfo; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.core.MultivaluedMap; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.UriInfo; import org.junit.BeforeClass; import org.junit.Test; diff --git a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/TransactionServiceTest.java b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/TransactionServiceTest.java index 44db4a09..9e3376c1 100644 --- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/TransactionServiceTest.java +++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/TransactionServiceTest.java @@ -16,9 +16,9 @@ import java.util.HashMap; import java.util.Map; -import javax.ws.rs.Path; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.core.MultivaluedMap; +import jakarta.ws.rs.core.Response; import org.junit.BeforeClass; import org.junit.Test; diff --git a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/UtilityServiceTest.java b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/UtilityServiceTest.java index 5ba98c05..e086c72d 100644 --- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/UtilityServiceTest.java +++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/UtilityServiceTest.java @@ -14,9 +14,9 @@ import java.math.BigDecimal; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.core.Response; import org.junit.BeforeClass; import org.junit.Test; diff --git a/pom.xml b/pom.xml index 616ebe96..841b60bd 100644 --- a/pom.xml +++ b/pom.xml @@ -77,15 +77,15 @@ OVERRIDE_REPO_URL - 3.13.0 + 3.14.0 4.4 1.16.0 - 2.15.0 + 2.15.1 1.6.0 1.11.0 2.21.1 4.13.2 - 2.33 + 3.1.5 2.3.1 2.3.2 5.0.1 From 3e63b292dc5bd56b6e726ff762d3fd779be0c147 Mon Sep 17 00:00:00 2001 From: Konstantin Korotkov Date: Tue, 6 Feb 2024 18:42:26 +0100 Subject: [PATCH 02/12] Update JAXB plugin to Jakarta spec 3.0 --- .../examples/OfflineValidation.java | 6 +-- NetLicensingClient/pom.xml | 15 +++--- .../entity/impl/ProductDiscountImpl.java | 2 +- .../labs64/netlicensing/domain/vo/Money.java | 2 +- .../converter/ItemToCountryConverter.java | 2 +- .../converter/ItemToLicenseConverter.java | 2 +- .../converter/ItemToProductConverter.java | 2 +- .../converter/ItemToTransactionConverter.java | 2 +- .../labs64/netlicensing/util/DateUtils.java | 2 +- .../labs64/netlicensing/util/JAXBUtils.java | 10 ++-- .../netlicensing/util/SignatureUtils.java | 6 +-- .../main/resources/nlic-schema-bindings.xjb | 2 +- pom.xml | 52 +++++-------------- 13 files changed, 40 insertions(+), 65 deletions(-) diff --git a/NetLicensingClient-demo/src/main/java/com/labs64/netlicensing/examples/OfflineValidation.java b/NetLicensingClient-demo/src/main/java/com/labs64/netlicensing/examples/OfflineValidation.java index 5d0131b0..35b5bb3c 100644 --- a/NetLicensingClient-demo/src/main/java/com/labs64/netlicensing/examples/OfflineValidation.java +++ b/NetLicensingClient-demo/src/main/java/com/labs64/netlicensing/examples/OfflineValidation.java @@ -3,9 +3,9 @@ import java.io.IOException; import java.io.StringReader; -import javax.xml.bind.JAXBContext; -import javax.xml.bind.JAXBException; -import javax.xml.bind.Unmarshaller; +import jakarta.xml.bind.JAXBContext; +import jakarta.xml.bind.JAXBException; +import jakarta.xml.bind.Unmarshaller; import com.labs64.netlicensing.domain.vo.Context; import com.labs64.netlicensing.domain.vo.MetaInfo; diff --git a/NetLicensingClient/pom.xml b/NetLicensingClient/pom.xml index 185566ec..27a2bb06 100644 --- a/NetLicensingClient/pom.xml +++ b/NetLicensingClient/pom.xml @@ -45,10 +45,9 @@ commons-io test - - org.glassfish.jaxb - jaxb-runtime + com.sun.xml.bind + jaxb-impl org.apache.logging.log4j @@ -95,8 +94,8 @@ - org.jvnet.jaxb2.maven2 - maven-jaxb2-plugin + org.jvnet.jaxb + jaxb-maven-plugin @@ -119,15 +118,15 @@ nlic-schema-bindings.xjb - 2.1 + 3.0 true -Xvalue-constructor - org.jvnet.jaxb2_commons - jaxb2-value-constructor + org.jvnet.jaxb + jaxb-plugins diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/ProductDiscountImpl.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/ProductDiscountImpl.java index ae4cfc17..3fe7f7d6 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/ProductDiscountImpl.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/ProductDiscountImpl.java @@ -15,7 +15,7 @@ import java.io.Serializable; import java.math.BigDecimal; -import javax.xml.bind.DatatypeConverter; +import jakarta.xml.bind.DatatypeConverter; import com.labs64.netlicensing.domain.entity.Product; import com.labs64.netlicensing.domain.entity.ProductDiscount; diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/vo/Money.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/vo/Money.java index 9261daa7..9045e48e 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/vo/Money.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/vo/Money.java @@ -14,7 +14,7 @@ import java.math.BigDecimal; -import javax.xml.bind.DatatypeConverter; +import jakarta.xml.bind.DatatypeConverter; import org.apache.commons.lang3.StringUtils; diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/schema/converter/ItemToCountryConverter.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/schema/converter/ItemToCountryConverter.java index 1bcf5960..5e5bc4fe 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/schema/converter/ItemToCountryConverter.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/schema/converter/ItemToCountryConverter.java @@ -12,7 +12,7 @@ */ package com.labs64.netlicensing.schema.converter; -import javax.xml.bind.DatatypeConverter; +import jakarta.xml.bind.DatatypeConverter; import com.labs64.netlicensing.domain.Constants; import com.labs64.netlicensing.domain.entity.Country; diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/schema/converter/ItemToLicenseConverter.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/schema/converter/ItemToLicenseConverter.java index c9b4554d..0a8b8a84 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/schema/converter/ItemToLicenseConverter.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/schema/converter/ItemToLicenseConverter.java @@ -12,7 +12,7 @@ */ package com.labs64.netlicensing.schema.converter; -import javax.xml.bind.DatatypeConverter; +import jakarta.xml.bind.DatatypeConverter; import com.labs64.netlicensing.domain.Constants; import com.labs64.netlicensing.domain.entity.License; diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/schema/converter/ItemToProductConverter.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/schema/converter/ItemToProductConverter.java index c0f4c37d..eaed4c4d 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/schema/converter/ItemToProductConverter.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/schema/converter/ItemToProductConverter.java @@ -14,7 +14,7 @@ import java.util.Collections; -import javax.xml.bind.DatatypeConverter; +import jakarta.xml.bind.DatatypeConverter; import com.labs64.netlicensing.domain.Constants; import com.labs64.netlicensing.domain.entity.Product; diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/schema/converter/ItemToTransactionConverter.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/schema/converter/ItemToTransactionConverter.java index e354e95d..0f9b3cb9 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/schema/converter/ItemToTransactionConverter.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/schema/converter/ItemToTransactionConverter.java @@ -15,7 +15,7 @@ import java.util.ArrayList; import java.util.List; -import javax.xml.bind.DatatypeConverter; +import jakarta.xml.bind.DatatypeConverter; import com.labs64.netlicensing.domain.Constants; import com.labs64.netlicensing.domain.entity.LicenseTransactionJoin; diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/util/DateUtils.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/util/DateUtils.java index 9fcc1758..bece43db 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/util/DateUtils.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/util/DateUtils.java @@ -15,7 +15,7 @@ import java.util.Calendar; import java.util.TimeZone; -import javax.xml.bind.DatatypeConverter; +import jakarta.xml.bind.DatatypeConverter; public class DateUtils { diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/util/JAXBUtils.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/util/JAXBUtils.java index a252c80b..dd6761da 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/util/JAXBUtils.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/util/JAXBUtils.java @@ -16,11 +16,11 @@ import java.io.ByteArrayOutputStream; import java.io.InputStream; -import javax.xml.bind.JAXBContext; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.JAXBException; -import javax.xml.bind.Marshaller; -import javax.xml.bind.Unmarshaller; +import jakarta.xml.bind.JAXBContext; +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.JAXBException; +import jakarta.xml.bind.Marshaller; +import jakarta.xml.bind.Unmarshaller; import javax.xml.transform.stream.StreamSource; /** diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/util/SignatureUtils.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/util/SignatureUtils.java index 50cbcee5..5c5c6759 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/util/SignatureUtils.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/util/SignatureUtils.java @@ -8,9 +8,9 @@ import java.security.spec.X509EncodedKeySpec; import java.util.Base64; -import javax.xml.bind.JAXBContext; -import javax.xml.bind.JAXBException; -import javax.xml.bind.Marshaller; +import jakarta.xml.bind.JAXBContext; +import jakarta.xml.bind.JAXBException; +import jakarta.xml.bind.Marshaller; import javax.xml.crypto.dsig.XMLSignatureException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; diff --git a/NetLicensingClient/src/main/resources/nlic-schema-bindings.xjb b/NetLicensingClient/src/main/resources/nlic-schema-bindings.xjb index 2a4d694b..8a40decb 100644 --- a/NetLicensingClient/src/main/resources/nlic-schema-bindings.xjb +++ b/NetLicensingClient/src/main/resources/nlic-schema-bindings.xjb @@ -1,6 +1,6 @@ - + diff --git a/pom.xml b/pom.xml index 841b60bd..1e8f202b 100644 --- a/pom.xml +++ b/pom.xml @@ -86,8 +86,8 @@ 2.21.1 4.13.2 3.1.5 - 2.3.1 - 2.3.2 + 4.0.0 + 4.0.3 5.0.1 @@ -99,9 +99,7 @@ 3.3.2 3.3.0 3.1.0 - - 0.14.0 - 2.3.1 + 4.0.2 3.3.0 3.2.0 3.2.2 @@ -208,40 +206,18 @@ ${maven-dependency-plugin.version} - org.jvnet.jaxb2.maven2 - maven-jaxb2-plugin - ${maven-jaxb2-plugin.version} + org.jvnet.jaxb + jaxb-maven-plugin + ${jaxb-maven-plugin.version} - org.jvnet.jaxb2_commons - jaxb2-value-constructor - 3.0 + org.jvnet.jaxb + jaxb-plugins + ${jaxb-maven-plugin.version} - - - javax.xml.bind - jaxb-api - ${jaxb.version} - - - org.glassfish.jaxb - jaxb-runtime - ${jaxb.version} - - - org.glassfish.jaxb - jaxb-xjc - ${jaxb.version} - - - com.sun.xml.bind.external - rngom - ${jaxb.version} - - org.codehaus.mojo @@ -480,14 +456,14 @@ compile - javax.xml.bind - jaxb-api + jakarta.xml.bind + jakarta.xml.bind-api ${jaxb-api.version} - org.glassfish.jaxb - jaxb-runtime - ${jaxb-runtime.version} + com.sun.xml.bind + jaxb-impl + ${jaxb-impl.version} com.helger From cc7c233bd24a140df3666ee9a5c01e02e3f061d6 Mon Sep 17 00:00:00 2001 From: Konstantin Korotkov Date: Tue, 6 Feb 2024 19:19:57 +0100 Subject: [PATCH 03/12] Update links --- NetLicensingClient/pom.xml | 5 ++--- pom.xml | 14 +++++++------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/NetLicensingClient/pom.xml b/NetLicensingClient/pom.xml index 27a2bb06..7d71db78 100644 --- a/NetLicensingClient/pom.xml +++ b/NetLicensingClient/pom.xml @@ -23,7 +23,7 @@ org.glassfish.jersey.media jersey-media-jaxb - + org.glassfish.jersey.inject jersey-hk2 @@ -92,7 +92,7 @@ - + org.jvnet.jaxb jaxb-maven-plugin @@ -113,7 +113,6 @@ Please refer to the following link for more information: https://github.com/highsource/maven-jaxb2-plugin/wiki/Catalogs-in-Strict-Mode --> false - src/main/resources nlic-schema-bindings.xjb diff --git a/pom.xml b/pom.xml index 1e8f202b..daebc2e8 100644 --- a/pom.xml +++ b/pom.xml @@ -77,17 +77,17 @@ OVERRIDE_REPO_URL - 3.14.0 + 3.14.0 4.4 1.16.0 2.15.1 1.6.0 1.11.0 2.21.1 - 4.13.2 - 3.1.5 - 4.0.0 - 4.0.3 + 4.13.2 + 3.1.5 + 4.0.0 + 4.0.3 5.0.1 @@ -99,7 +99,7 @@ 3.3.2 3.3.0 3.1.0 - 4.0.2 + 4.0.2 3.3.0 3.2.0 3.2.2 @@ -449,7 +449,7 @@ ${jersey.version} compile - + org.glassfish.jersey.inject jersey-hk2 ${jersey.version} From 188a47d936e5ad7851445f6f72d4b264f59b7b6d Mon Sep 17 00:00:00 2001 From: Konstantin Korotkov Date: Wed, 14 Feb 2024 17:19:55 +0100 Subject: [PATCH 04/12] Explicit namespace prefixes for XJC generated Netlicensing classes --- NetLicensingClient/pom.xml | 1 + .../main/resources/nlic-schema-bindings.xjb | 26 +++++++++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/NetLicensingClient/pom.xml b/NetLicensingClient/pom.xml index 7d71db78..41d91dbf 100644 --- a/NetLicensingClient/pom.xml +++ b/NetLicensingClient/pom.xml @@ -121,6 +121,7 @@ true -Xvalue-constructor + -Xnamespace-prefix diff --git a/NetLicensingClient/src/main/resources/nlic-schema-bindings.xjb b/NetLicensingClient/src/main/resources/nlic-schema-bindings.xjb index 8a40decb..1b18eafc 100644 --- a/NetLicensingClient/src/main/resources/nlic-schema-bindings.xjb +++ b/NetLicensingClient/src/main/resources/nlic-schema-bindings.xjb @@ -1,10 +1,32 @@ - + + + + + + + + + + + + + + + + + + + - From d30e2c9725e72c12d0a5db5633c93dcea2b6b2bd Mon Sep 17 00:00:00 2001 From: Konstantin Korotkov Date: Thu, 15 Feb 2024 08:43:41 +0100 Subject: [PATCH 05/12] Allow all matrix jobs to finish --- .github/workflows/netlicesning-client-ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/netlicesning-client-ci.yml b/.github/workflows/netlicesning-client-ci.yml index 4a5c30f0..39a7404e 100644 --- a/.github/workflows/netlicesning-client-ci.yml +++ b/.github/workflows/netlicesning-client-ci.yml @@ -24,11 +24,12 @@ jobs: # TODO(2K): This can be better solved by preparing a custom image for the container. MAVEN_OPTS: -Duser.home=/github/home strategy: + fail-fast: false matrix: java-version: [11, 17] include: - java-version: 11 - jdk-suffix: + jdk-suffix: "" - java-version: 17 jdk-suffix: -jdk17 From 16a73cb0d1027fec5814ea4057b261e6467f3a5c Mon Sep 17 00:00:00 2001 From: Konstantin Korotkov Date: Thu, 15 Feb 2024 13:41:11 +0100 Subject: [PATCH 06/12] Switch target java by profile --- pom.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pom.xml b/pom.xml index daebc2e8..67993d4b 100644 --- a/pom.xml +++ b/pom.xml @@ -510,6 +510,12 @@ + + java17 + + 17 + + release From d010771378e795a53510e608def429511dfdbd5d Mon Sep 17 00:00:00 2001 From: Konstantin Korotkov Date: Mon, 11 Mar 2024 11:26:54 +0100 Subject: [PATCH 07/12] Update after rebase --- .../domain/entity/impl/BundleImpl.java | 17 +++++++++-------- .../netlicensing/service/BundleService.java | 9 +++++---- .../netlicensing/service/BundleServiceTest.java | 16 ++++++++-------- 3 files changed, 22 insertions(+), 20 deletions(-) diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/BundleImpl.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/BundleImpl.java index 6e6214cc..a12cd4d4 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/BundleImpl.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/BundleImpl.java @@ -3,8 +3,9 @@ import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; +import java.util.Map; -import javax.ws.rs.core.MultivaluedMap; +import jakarta.ws.rs.core.MultivaluedMap; import com.labs64.netlicensing.domain.Constants; import com.labs64.netlicensing.domain.entity.Bundle; @@ -100,19 +101,19 @@ public static List getReservedProps() { } @Override - protected MultivaluedMap asPropertiesMap() { - final MultivaluedMap map = super.asPropertiesMap(); - map.add(Constants.NAME, getName()); + public Map asMap() { + final Map map = super.asMap(); + map.put(Constants.NAME, getName()); if (getDescription() != null) { - map.add(Constants.Bundle.DESCRIPTION, getDescription()); + map.put(Constants.Bundle.DESCRIPTION, getDescription()); } - map.add(Constants.PRICE, getPrice()); - map.add(Constants.CURRENCY, getCurrency()); + map.put(Constants.PRICE, getPrice()); + map.put(Constants.CURRENCY, getCurrency()); if (getLicenseTemplateNumbers() != null) { - map.add(Constants.Bundle.LICENSE_TEMPLATE_NUMBERS, String.join(",", getLicenseTemplateNumbers())); + map.put(Constants.Bundle.LICENSE_TEMPLATE_NUMBERS, String.join(",", getLicenseTemplateNumbers())); } return map; diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/BundleService.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/BundleService.java index 84ead7ec..6de35b6f 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/BundleService.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/BundleService.java @@ -15,8 +15,8 @@ import java.util.HashMap; import java.util.Map; -import javax.ws.rs.HttpMethod; -import javax.ws.rs.core.Form; +import jakarta.ws.rs.HttpMethod; +import jakarta.ws.rs.core.Form; import org.apache.commons.lang3.StringUtils; @@ -29,6 +29,7 @@ import com.labs64.netlicensing.exception.NetLicensingException; import com.labs64.netlicensing.schema.context.Netlicensing; import com.labs64.netlicensing.util.CheckUtils; +import com.labs64.netlicensing.util.FormConverter; public class BundleService { private static final EntityFactory entityFactory = new EntityFactory(); @@ -45,7 +46,7 @@ public class BundleService { */ public static Bundle create(final Context context, final Bundle bundle) throws NetLicensingException { CheckUtils.paramNotNull(bundle, "bundle"); - return NetLicensingService.getInstance().post(context, Constants.Bundle.ENDPOINT_PATH, bundle.asRequestForm(), Bundle.class); + return NetLicensingService.getInstance().post(context, Constants.Bundle.ENDPOINT_PATH, FormConverter.convert(bundle), Bundle.class); } /** @@ -94,7 +95,7 @@ public static Bundle update(final Context context, final String number, final Bu CheckUtils.paramNotEmpty(number, "number"); CheckUtils.paramNotNull(bundle, "bundle"); - return NetLicensingService.getInstance().post(context, Constants.Bundle.ENDPOINT_PATH + "/" + number, bundle.asRequestForm(), + return NetLicensingService.getInstance().post(context, Constants.Bundle.ENDPOINT_PATH + "/" + number, FormConverter.convert(bundle), Bundle.class); } diff --git a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/BundleServiceTest.java b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/BundleServiceTest.java index d22cadb8..cfaca101 100644 --- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/BundleServiceTest.java +++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/BundleServiceTest.java @@ -18,14 +18,14 @@ import java.util.List; import java.util.Map; -import javax.ws.rs.Consumes; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.UriInfo; +import jakarta.ws.rs.Consumes; +import jakarta.ws.rs.POST; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.PathParam; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.MultivaluedMap; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.UriInfo; import org.junit.BeforeClass; import org.junit.Test; From b1bc4e4877cd4a29eb60992caf13c8cd8e250e1b Mon Sep 17 00:00:00 2001 From: Konstantin Korotkov Date: Mon, 18 Mar 2024 09:56:44 +0100 Subject: [PATCH 08/12] Cleanup --- .../labs64/netlicensing/domain/entity/impl/BundleImpl.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/BundleImpl.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/BundleImpl.java index a12cd4d4..864c71dd 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/BundleImpl.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/domain/entity/impl/BundleImpl.java @@ -5,13 +5,14 @@ import java.util.List; import java.util.Map; -import jakarta.ws.rs.core.MultivaluedMap; - import com.labs64.netlicensing.domain.Constants; import com.labs64.netlicensing.domain.entity.Bundle; import com.labs64.netlicensing.domain.vo.Currency; public class BundleImpl extends BaseEntityImpl implements Bundle { + + private static final long serialVersionUID = -1666422065511383898L; + private String name; private String description; From 4ff5b266f94245b704200868ecdc948b25e7d5f6 Mon Sep 17 00:00:00 2001 From: Konstantin Korotkov Date: Thu, 23 May 2024 13:00:58 +0200 Subject: [PATCH 09/12] Use JDK http client and JUnit5 --- NetLicensingClient-demo/pom.xml | 18 +- .../netlicensing/examples/RunExamples.java | 2 +- NetLicensingClient/pom.xml | 53 +++-- .../exception/ServiceException.java | 26 +-- .../labs64/netlicensing/provider/Form.java | 22 +++ .../netlicensing/provider/HttpMethod.java | 7 + .../netlicensing/provider/RestProvider.java | 2 +- .../provider/RestProviderImpl.java | 151 +++++++++++++++ .../provider/RestProviderJersey.java | 183 ------------------ .../netlicensing/provider/RestResponse.java | 28 ++- .../netlicensing/service/BundleService.java | 15 +- .../netlicensing/service/LicenseService.java | 14 +- .../service/LicenseTemplateService.java | 13 +- .../netlicensing/service/LicenseeService.java | 13 +- .../service/NetLicensingService.java | 50 +++-- .../service/NotificationService.java | 11 +- .../service/PaymentMethodService.java | 6 +- .../service/ProductModuleService.java | 13 +- .../netlicensing/service/ProductService.java | 11 +- .../netlicensing/service/TokenService.java | 8 +- .../service/TransactionService.java | 8 +- .../netlicensing/service/UtilityService.java | 2 +- .../service/ValidationService.java | 4 +- .../netlicensing/util/ConvertUtils.java | 42 ++++ .../netlicensing/util/FormConverter.java | 28 --- .../labs64/netlicensing/util/JAXBUtils.java | 18 +- .../netlicensing/util/ServiceHelper.java | 96 +++++++-- .../netlicensing/service/BaseServiceTest.java | 29 ++- .../service/BundleServiceTest.java | 23 ++- .../service/LicenseServiceTest.java | 25 ++- .../service/LicenseTemplateServiceTest.java | 16 +- .../service/LicenseeServiceTest.java | 39 ++-- .../service/NetLicensingServiceTest.java | 22 ++- .../service/NotificationServiceTest.java | 14 +- .../service/PaymentMethodServiceTest.java | 16 +- .../service/ProductModuleServiceTest.java | 14 +- .../service/ProductServiceTest.java | 16 +- .../netlicensing/service/SecurityTest.java | 8 +- .../service/TokenServiceTest.java | 16 +- .../service/TransactionServiceTest.java | 16 +- .../service/UtilityServiceTest.java | 21 +- .../util/XMLDSigValidatorCustomTest.java | 12 +- pom.xml | 38 +--- 43 files changed, 639 insertions(+), 530 deletions(-) create mode 100644 NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/Form.java create mode 100644 NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/HttpMethod.java create mode 100644 NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/RestProviderImpl.java delete mode 100644 NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/RestProviderJersey.java create mode 100644 NetLicensingClient/src/main/java/com/labs64/netlicensing/util/ConvertUtils.java delete mode 100644 NetLicensingClient/src/main/java/com/labs64/netlicensing/util/FormConverter.java diff --git a/NetLicensingClient-demo/pom.xml b/NetLicensingClient-demo/pom.xml index dd58b169..8fd68e23 100644 --- a/NetLicensingClient-demo/pom.xml +++ b/NetLicensingClient-demo/pom.xml @@ -35,9 +35,9 @@ *:* module-info.class - META-INF/*.SF - META-INF/*.DSA - META-INF/*.RSA + META-INF/** + LICENSE + NOTICE @@ -69,6 +69,11 @@ netlicensing-client ${project.version} + + + org.slf4j + slf4j-nop + commons-io commons-io @@ -77,9 +82,12 @@ commons-cli commons-cli + + - junit - junit + org.junit.jupiter + junit-jupiter + test diff --git a/NetLicensingClient-demo/src/test/java/com/labs64/netlicensing/examples/RunExamples.java b/NetLicensingClient-demo/src/test/java/com/labs64/netlicensing/examples/RunExamples.java index c50dc94e..2a7daca5 100644 --- a/NetLicensingClient-demo/src/test/java/com/labs64/netlicensing/examples/RunExamples.java +++ b/NetLicensingClient-demo/src/test/java/com/labs64/netlicensing/examples/RunExamples.java @@ -1,6 +1,6 @@ package com.labs64.netlicensing.examples; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class RunExamples { diff --git a/NetLicensingClient/pom.xml b/NetLicensingClient/pom.xml index 41d91dbf..6c145843 100644 --- a/NetLicensingClient/pom.xml +++ b/NetLicensingClient/pom.xml @@ -16,16 +16,12 @@ - org.glassfish.jersey.core - jersey-client - - - org.glassfish.jersey.media - jersey-media-jaxb + com.helger + ph-xmldsig - - org.glassfish.jersey.inject - jersey-hk2 + + com.sun.xml.bind + jaxb-impl org.apache.commons @@ -35,43 +31,42 @@ org.apache.commons commons-collections4 + + - org.apache.commons - commons-text + org.junit.jupiter + junit-jupiter test - commons-io - commons-io + org.glassfish.jersey.test-framework + jersey-test-framework-core test - com.sun.xml.bind - jaxb-impl - - - org.apache.logging.log4j - log4j-api + org.glassfish.jersey.test-framework.providers + jersey-test-framework-provider-grizzly2 + test - junit - junit + org.glassfish.jersey.inject + jersey-hk2 test - com.helger - ph-xmldsig + org.apache.commons + commons-text + test - - - org.glassfish.jersey.test-framework - jersey-test-framework-core + commons-io + commons-io test + - org.glassfish.jersey.test-framework.providers - jersey-test-framework-provider-grizzly2 + org.slf4j + slf4j-nop test diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/exception/ServiceException.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/exception/ServiceException.java index 7ff59748..20666134 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/exception/ServiceException.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/exception/ServiceException.java @@ -12,9 +12,12 @@ */ package com.labs64.netlicensing.exception; -import jakarta.ws.rs.core.MultivaluedHashMap; -import jakarta.ws.rs.core.MultivaluedMap; -import jakarta.ws.rs.core.Response; +import java.util.List; +import java.util.Map; + +//import jakarta.ws.rs.core.MultivaluedHashMap; +//import jakarta.ws.rs.core.MultivaluedMap; +//import jakarta.ws.rs.core.Response; import com.labs64.netlicensing.schema.SchemaFunction; import com.labs64.netlicensing.schema.context.Netlicensing; @@ -26,8 +29,8 @@ public class ServiceException extends NetLicensingException { private static final long serialVersionUID = 5253993578845477398L; - private final Response.Status status; - private final MultivaluedMap headers; + private final int statusCode; + private final Map> headers; private final Netlicensing errorResponse; /** @@ -40,19 +43,18 @@ public class ServiceException extends NetLicensingException { * @param errorResponse * the service response containing the error info. */ - public ServiceException(final Response.Status status, final MultivaluedMap headers, final Netlicensing errorResponse) { + public ServiceException(final int statusCode, final Map> headers, final Netlicensing errorResponse) { super(SchemaFunction.infosToMessage(errorResponse)); - this.status = status; - this.headers = new MultivaluedHashMap(); - this.headers.putAll(headers); + this.statusCode = statusCode; + this.headers = headers; this.errorResponse = errorResponse; } - public Response.Status getStatus() { - return status; + public int getStatusCode() { + return statusCode; } - public MultivaluedMap getHeaders() { + public Map> getHeaders() { return headers; } diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/Form.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/Form.java new file mode 100644 index 00000000..632fb45f --- /dev/null +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/Form.java @@ -0,0 +1,22 @@ +package com.labs64.netlicensing.provider; + +import java.util.HashMap; +import java.util.Map; + +public class Form { + + private Map params; + + public Form() { + params = new HashMap<>(); + } + + public void param(String key, String value) { + params.put(key, value); + } + + public Map getParams() { + return params; + } + +} diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/HttpMethod.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/HttpMethod.java new file mode 100644 index 00000000..39097014 --- /dev/null +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/HttpMethod.java @@ -0,0 +1,7 @@ +package com.labs64.netlicensing.provider; + +public enum HttpMethod { + + GET, POST, DELETE; + +} diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/RestProvider.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/RestProvider.java index 60a07c29..78d80510 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/RestProvider.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/RestProvider.java @@ -51,7 +51,7 @@ public interface Configuration { * @return the responseType entity received from the server, or null if responseType is null. */ RestResponse call(String method, String urlTemplate, REQ request, Class responseType, - Map queryParams) throws RestException; + Map queryParams) throws RestException; /** * @param username diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/RestProviderImpl.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/RestProviderImpl.java new file mode 100644 index 00000000..fd8ee25a --- /dev/null +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/RestProviderImpl.java @@ -0,0 +1,151 @@ +/* Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.labs64.netlicensing.provider; + +import java.io.IOException; +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpClient.Redirect; +import java.net.http.HttpClient.Version; +import java.net.http.HttpRequest; +import java.net.http.HttpRequest.BodyPublishers; +import java.net.http.HttpRequest.Builder; +import java.net.http.HttpResponse; +import java.net.http.HttpResponse.BodyHandlers; +import java.util.Base64; +import java.util.HashMap; +import java.util.Map; + +import jakarta.xml.bind.JAXBException; + +import com.labs64.netlicensing.exception.RestException; +import com.labs64.netlicensing.provider.auth.Authentication; +import com.labs64.netlicensing.util.ConvertUtils; +import com.labs64.netlicensing.util.JAXBUtils; + +/** + * Low level REST client implementation. + *

+ * This will also log each request in INFO level. + */ +public class RestProviderImpl extends AbstractRestProvider { + + private final String basePath; + + private class DefaultConfig implements RestProvider.Configuration { + + @Override + public String getUserAgent() { + return "NetLicensing/Java " + System.getProperty("java.version") + " (https://netlicensing.io)"; + } + + @Override + public boolean isLoggingEnabled() { + return true; + } + + } + + /** + * @param basePath + * base provider path + */ + public RestProviderImpl(final String basePath) { + this.basePath = basePath; + configure(new DefaultConfig()); + } + + /* + * @see com.labs64.netlicensing.provider.RestProvider#call(java.lang.String, java.lang.String, java.lang.Object, + * java.lang.Class, java.util.Map) + */ + @Override + public RestResponse call(final String httpMethod, final String urlTemplate, final REQ request_arg, + final Class responseType, final Map queryParams) throws RestException { + try { + // Not using authenticator to ensure preemptive authentication + HttpClient client = HttpClient.newBuilder() + .version(Version.HTTP_1_1) + .followRedirects(Redirect.NORMAL) + .build(); + + String query; + if ((queryParams == null) || (queryParams.isEmpty())) { + query = ""; + } else { + Map castedQueryParams = new HashMap<>(); + queryParams.forEach((key, val) -> { + castedQueryParams.put(key, val.toString()); + }); + query = "?" + ConvertUtils.mapToParamString(castedQueryParams); + } + Authentication auth = getAuthentication(); + String valueToEncode = auth.getUsername() + ":" + auth.getPassword(); + String authHeader = "Basic " + Base64.getEncoder().encodeToString(valueToEncode.getBytes()); + + Builder requestBuilder = HttpRequest.newBuilder() + .uri(URI.create(this.basePath + "/" + urlTemplate + query)) + .header("Authorization", authHeader) // Preemptive + .header("User-Agent", getConfiguration().getUserAgent()); + + if (httpMethod == "POST" || httpMethod == "PUT") { + String postParams = ConvertUtils.mapToParamString(((Form)request_arg).getParams()); + requestBuilder + .header("Content-Type", "application/x-www-form-urlencoded") + .method(httpMethod, BodyPublishers.ofString(postParams)); + } else { + requestBuilder.method(httpMethod, BodyPublishers.noBody()); + } + + HttpRequest request = requestBuilder.build(); + HttpResponse response = client.send(request, BodyHandlers.ofString()); + + final RestResponse restResponse = new RestResponse<>(); + restResponse.setStatusCode(response.statusCode()); + restResponse.setHeaders(response.headers().map()); + if ((response.statusCode() != 204) || !response.body().isEmpty()) { + restResponse.setEntity(readEntity(response.body(), response.statusCode(), responseType)); + } + return restResponse; + } catch (final IOException | InterruptedException e) { + throw new RestException("Exception while calling service.", e); + } + } + + /** + * Reads entity of given type from response. Returns null when the response has a zero-length content. + * + * @param response + * service response + * @param responseType + * expected response type + * @return the response entity + * @throws RestException + */ + private RES readEntity(final String body, int statusCode, final Class responseType) throws RestException { + if ((statusCode == 204) && body.isEmpty()) { + return null; + } + + try { + return JAXBUtils.readObjectFromString(body, responseType); + } catch (final JAXBException ex) { + int statusFamily = statusCode / 100; + if ((statusFamily == 4) || (statusFamily == 5)) { // 4xx - Client Error, 5xx - Server Error + return null; // Ignore content interpretation errors if status is an error already + } + throw new RestException("Could not interpret the response body.\n" + body, ex); + } + } + +} diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/RestProviderJersey.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/RestProviderJersey.java deleted file mode 100644 index 7623de44..00000000 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/RestProviderJersey.java +++ /dev/null @@ -1,183 +0,0 @@ -/* Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.labs64.netlicensing.provider; - -import java.util.Map; - -import jakarta.ws.rs.ProcessingException; -import jakarta.ws.rs.client.Client; -import jakarta.ws.rs.client.ClientBuilder; -import jakarta.ws.rs.client.Entity; -import jakarta.ws.rs.client.Invocation.Builder; -import jakarta.ws.rs.client.WebTarget; -import jakarta.ws.rs.core.HttpHeaders; -import jakarta.ws.rs.core.MediaType; -import jakarta.ws.rs.core.NoContentException; -import jakarta.ws.rs.core.Response; - -import org.glassfish.jersey.client.ClientConfig; -import org.glassfish.jersey.client.authentication.HttpAuthenticationFeature; - -import com.labs64.netlicensing.exception.RestException; -import com.labs64.netlicensing.provider.auth.Authentication; - -/** - * Low level REST client implementation. - *

- * This will also log each request in INFO level. - */ -public class RestProviderJersey extends AbstractRestProvider { - - private static final MediaType[] DEFAULT_ACCEPT_TYPES = { MediaType.APPLICATION_XML_TYPE }; - - private static Client client; - - private final String basePath; - - private class JerseyDefaultConfig implements RestProvider.Configuration { - - @Override - public String getUserAgent() { - return "NetLicensing/Java " + System.getProperty("java.version") + " (https://netlicensing.io)"; - } - - @Override - public boolean isLoggingEnabled() { - return true; - } - - } - - /** - * @param basePath - * base provider path - */ - public RestProviderJersey(final String basePath) { - this.basePath = basePath; - configure(new JerseyDefaultConfig()); - } - - /* - * @see com.labs64.netlicensing.provider.RestProvider#call(java.lang.String, java.lang.String, java.lang.Object, - * java.lang.Class, java.util.Map) - */ - @Override - public RestResponse call(final String httpMethod, final String urlTemplate, final REQ request, - final Class responseType, - final Map queryParams) throws RestException { - try { - WebTarget target = getTarget(this.basePath); - addAuthHeaders(target, getAuthentication()); - target = target.path(urlTemplate); - if ((queryParams != null) && (queryParams.size() > 0)) { - for (final String paramKey : queryParams.keySet()) { - target = target.queryParam(paramKey, queryParams.get(paramKey)); - } - } - - final Response response; - final Builder builder = target.request(DEFAULT_ACCEPT_TYPES).header(HttpHeaders.USER_AGENT, - getConfiguration().getUserAgent()); - if ("POST".equals(httpMethod) || "PUT".equals(httpMethod)) { - final Entity requestEntity = Entity.entity(request, MediaType.APPLICATION_FORM_URLENCODED_TYPE); - response = builder.method(httpMethod, requestEntity); - } else { - response = builder.method(httpMethod); - } - - final RestResponse restResponse = new RestResponse<>(); - restResponse.setStatusCode(response.getStatus()); - restResponse.setHeaders(response.getHeaders()); - restResponse.setEntity(readEntity(response, responseType)); - return restResponse; - } catch (final RuntimeException e) { - throw new RestException("Exception while calling service.", e); - } - } - - /** - * Get static instance of RESTful client - * - * @return RESTful client - */ - private static Client getClient(final RestProvider.Configuration configuration) { - // initialize client only once since it's expensive operation - if (client == null) { - synchronized (RestProviderJersey.class) { - if (client == null) { - client = ClientBuilder.newClient(new ClientConfig()); - if (configuration.isLoggingEnabled()) { - //TODO: enable logging for jersey 2.26 - //client.register(new LoggingFilter()); - } - } - } - } - return client; - } - - /** - * Get the RESTful client target - * - * @param basePath - * base provider path - * @return RESTful client target - */ - private WebTarget getTarget(final String basePath) { - return getClient(getConfiguration()).target(basePath); - } - - /** - * @param target - * target object, to which the authentication headers will be added - * @param auth - * an object providing the authentication info - */ - private void addAuthHeaders(final WebTarget target, final Authentication auth) { - if (auth != null) { - // see also https://jersey.java.net/documentation/latest/client.html, chapter "Securing a Client" - target.register(HttpAuthenticationFeature.basic(auth.getUsername(), auth.getPassword())); - } - } - - /** - * Reads entity of given type from response. Returns null when the response has a zero-length content. - * - * @param response - * service response - * @param responseType - * expected response type - * @return the response entity - * @throws RestException - */ - private RES readEntity(final Response response, final Class responseType) throws RestException { - boolean buffered = false; - try { - buffered = response.bufferEntity(); - return response.readEntity(responseType); - } catch (final ProcessingException ex) { - if (response.getStatus() == Response.Status.NO_CONTENT.getStatusCode() || ex.getCause() instanceof NoContentException) { - return null; - } else { - if ((response.getStatusInfo().getFamily() == Response.Status.Family.CLIENT_ERROR) - || (response.getStatusInfo().getFamily() == Response.Status.Family.SERVER_ERROR)) { - return null; // Ignore content interpretation errors if status is an error already - } - final String body = buffered ? " '" + response.readEntity(String.class) + "' of type '" - + response.getMediaType() + "'" : ""; - throw new RestException("Could not interpret the response body" + body + ".", ex); - } - } - } - -} diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/RestResponse.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/RestResponse.java index 404f9946..13847c51 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/RestResponse.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/RestResponse.java @@ -12,8 +12,13 @@ */ package com.labs64.netlicensing.provider; -import jakarta.ws.rs.core.MultivaluedHashMap; -import jakarta.ws.rs.core.MultivaluedMap; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +//import jakarta.ws.rs.core.MultivaluedHashMap; +//import jakarta.ws.rs.core.MultivaluedMap; /** * Contains info about response together with response entity. @@ -25,7 +30,7 @@ public class RestResponse { private int statusCode; - private MultivaluedMap headers; + private Map> headers; private T entity; @@ -37,13 +42,22 @@ public void setStatusCode(final int statusCode) { this.statusCode = statusCode; } - public MultivaluedMap getHeaders() { + public Map> getHeaders() { return this.headers; } - public void setHeaders(MultivaluedMap headers) { - this.headers = new MultivaluedHashMap(); - this.headers.putAll(headers); + public void setHeaders(Map> headers) { + this.headers = new HashMap<>(); + headers.forEach((header, values) -> { + List this_values; + if (!this.headers.containsKey(header)) { + this_values = new ArrayList<>(); + this.headers.put(header, this_values); + } else { + this_values = this.headers.get(header); + } + values.forEach(value -> this_values.add(value)); + }); } public T getEntity() { diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/BundleService.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/BundleService.java index 6de35b6f..c8e1190c 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/BundleService.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/BundleService.java @@ -15,8 +15,8 @@ import java.util.HashMap; import java.util.Map; -import jakarta.ws.rs.HttpMethod; -import jakarta.ws.rs.core.Form; +import com.labs64.netlicensing.provider.HttpMethod; +import com.labs64.netlicensing.provider.Form; import org.apache.commons.lang3.StringUtils; @@ -29,7 +29,7 @@ import com.labs64.netlicensing.exception.NetLicensingException; import com.labs64.netlicensing.schema.context.Netlicensing; import com.labs64.netlicensing.util.CheckUtils; -import com.labs64.netlicensing.util.FormConverter; +import com.labs64.netlicensing.util.ConvertUtils; public class BundleService { private static final EntityFactory entityFactory = new EntityFactory(); @@ -46,7 +46,7 @@ public class BundleService { */ public static Bundle create(final Context context, final Bundle bundle) throws NetLicensingException { CheckUtils.paramNotNull(bundle, "bundle"); - return NetLicensingService.getInstance().post(context, Constants.Bundle.ENDPOINT_PATH, FormConverter.convert(bundle), Bundle.class); + return NetLicensingService.getInstance().post(context, Constants.Bundle.ENDPOINT_PATH, ConvertUtils.entityToForm(bundle), Bundle.class); } /** @@ -73,7 +73,7 @@ public static Bundle get(final Context context, final String number) throws NetL * corresponding service response messages. */ public static Page list(final Context context, final String filter) throws NetLicensingException { - final Map params = new HashMap(); + final Map params = new HashMap<>(); if (StringUtils.isNotBlank(filter)) { params.put(Constants.FILTER, filter); } @@ -95,7 +95,7 @@ public static Bundle update(final Context context, final String number, final Bu CheckUtils.paramNotEmpty(number, "number"); CheckUtils.paramNotNull(bundle, "bundle"); - return NetLicensingService.getInstance().post(context, Constants.Bundle.ENDPOINT_PATH + "/" + number, FormConverter.convert(bundle), + return NetLicensingService.getInstance().post(context, Constants.Bundle.ENDPOINT_PATH + "/" + number, ConvertUtils.entityToForm(bundle), Bundle.class); } @@ -111,8 +111,7 @@ public static void delete(final Context context, final String number) throws NetLicensingException { CheckUtils.paramNotEmpty(number, "number"); - final Map params = new HashMap(); - NetLicensingService.getInstance().delete(context, Constants.Bundle.ENDPOINT_PATH + "/" + number, params); + NetLicensingService.getInstance().delete(context, Constants.Bundle.ENDPOINT_PATH + "/" + number, null); } /** diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/LicenseService.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/LicenseService.java index 203c56f1..d3e00bdd 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/LicenseService.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/LicenseService.java @@ -15,7 +15,7 @@ import java.util.HashMap; import java.util.Map; -import jakarta.ws.rs.core.Form; +import com.labs64.netlicensing.provider.Form; import org.apache.commons.lang3.StringUtils; @@ -25,7 +25,7 @@ import com.labs64.netlicensing.domain.vo.Page; import com.labs64.netlicensing.exception.NetLicensingException; import com.labs64.netlicensing.util.CheckUtils; -import com.labs64.netlicensing.util.FormConverter; +import com.labs64.netlicensing.util.ConvertUtils; /** * Provides license handling routines. @@ -71,7 +71,7 @@ public static License create(final Context context, final String licenseeNumber, CheckUtils.paramNotNull(license, "license"); - final Form form = FormConverter.convert(license); + final Form form = ConvertUtils.entityToForm(license); if (StringUtils.isNotBlank(licenseeNumber)) { form.param(Constants.Licensee.LICENSEE_NUMBER, licenseeNumber); } @@ -113,7 +113,7 @@ public static License get(final Context context, final String number) throws Net * corresponding service response messages. */ public static Page list(final Context context, final String filter) throws NetLicensingException { - final Map params = new HashMap(); + final Map params = new HashMap<>(); if (StringUtils.isNotBlank(filter)) { params.put(Constants.FILTER, filter); } @@ -142,7 +142,7 @@ public static License update(final Context context, final String number, final S CheckUtils.paramNotEmpty(number, "number"); CheckUtils.paramNotNull(license, "license"); - final Form form = FormConverter.convert(license); + final Form form = ConvertUtils.entityToForm(license); if (StringUtils.isNotBlank(transactionNumber)) { form.param(Constants.Transaction.TRANSACTION_NUMBER, transactionNumber); } @@ -167,9 +167,7 @@ public static License update(final Context context, final String number, final S public static void delete(final Context context, final String number, final boolean forceCascade) throws NetLicensingException { CheckUtils.paramNotEmpty(number, "number"); - - final Map params = new HashMap(); - params.put(Constants.CASCADE, forceCascade); + Map params = Map.of(Constants.CASCADE, String.valueOf(forceCascade)); NetLicensingService.getInstance().delete(context, Constants.License.ENDPOINT_PATH + "/" + number, params); } diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/LicenseTemplateService.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/LicenseTemplateService.java index 40b0ab9a..b4454afb 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/LicenseTemplateService.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/LicenseTemplateService.java @@ -15,7 +15,7 @@ import java.util.HashMap; import java.util.Map; -import jakarta.ws.rs.core.Form; +import com.labs64.netlicensing.provider.Form; import org.apache.commons.lang3.StringUtils; @@ -25,7 +25,7 @@ import com.labs64.netlicensing.domain.vo.Page; import com.labs64.netlicensing.exception.NetLicensingException; import com.labs64.netlicensing.util.CheckUtils; -import com.labs64.netlicensing.util.FormConverter; +import com.labs64.netlicensing.util.ConvertUtils; /** * Provides license template handling routines. @@ -57,7 +57,7 @@ public static LicenseTemplate create(final Context context, final String product final LicenseTemplate licenseTemplate) throws NetLicensingException { CheckUtils.paramNotNull(licenseTemplate, "licenseTemplate"); - final Form form = FormConverter.convert(licenseTemplate); + final Form form = ConvertUtils.entityToForm(licenseTemplate); if (StringUtils.isNotBlank(productModuleNumber)) { form.param(Constants.ProductModule.PRODUCT_MODULE_NUMBER, productModuleNumber); } @@ -95,7 +95,7 @@ public static LicenseTemplate get(final Context context, final String number) th * corresponding service response messages. */ public static Page list(final Context context, final String filter) throws NetLicensingException { - final Map params = new HashMap(); + final Map params = new HashMap<>(); if (StringUtils.isNotBlank(filter)) { params.put(Constants.FILTER, filter); } @@ -122,7 +122,7 @@ public static LicenseTemplate update(final Context context, final String number, CheckUtils.paramNotNull(licenseTemplate, "licenseTemplate"); return NetLicensingService.getInstance().post(context, Constants.LicenseTemplate.ENDPOINT_PATH + "/" + number, - FormConverter.convert(licenseTemplate), LicenseTemplate.class); + ConvertUtils.entityToForm(licenseTemplate), LicenseTemplate.class); } /** @@ -142,8 +142,7 @@ public static void delete(final Context context, final String number, final bool throws NetLicensingException { CheckUtils.paramNotEmpty(number, "number"); - final Map params = new HashMap(); - params.put(Constants.CASCADE, forceCascade); + Map params = Map.of(Constants.CASCADE, String.valueOf(forceCascade)); NetLicensingService.getInstance().delete(context, Constants.LicenseTemplate.ENDPOINT_PATH + "/" + number, params); } diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/LicenseeService.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/LicenseeService.java index 607f6465..6e5e1f98 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/LicenseeService.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/LicenseeService.java @@ -15,7 +15,7 @@ import java.util.HashMap; import java.util.Map; -import jakarta.ws.rs.core.Form; +import com.labs64.netlicensing.provider.Form; import org.apache.commons.lang3.StringUtils; @@ -28,7 +28,7 @@ import com.labs64.netlicensing.domain.vo.ValidationResult; import com.labs64.netlicensing.exception.NetLicensingException; import com.labs64.netlicensing.util.CheckUtils; -import com.labs64.netlicensing.util.FormConverter; +import com.labs64.netlicensing.util.ConvertUtils; /** * Provides licensee handling routines. @@ -63,7 +63,7 @@ public static Licensee create(final Context context, final String productNumber, throws NetLicensingException { CheckUtils.paramNotNull(licensee, "licensee"); - final Form form = FormConverter.convert(licensee); + final Form form = ConvertUtils.entityToForm(licensee); if (StringUtils.isNotBlank(productNumber)) { form.param(Constants.Product.PRODUCT_NUMBER, productNumber); } @@ -99,7 +99,7 @@ public static Licensee get(final Context context, final String number) throws Ne * in case of a service error. Check subclass and message for details. */ public static Page list(final Context context, final String filter) throws NetLicensingException { - final Map params = new HashMap<>(); + final Map params = new HashMap<>(); if (StringUtils.isNotBlank(filter)) { params.put(Constants.FILTER, filter); } @@ -124,7 +124,7 @@ public static Licensee update(final Context context, final String number, final CheckUtils.paramNotEmpty(number, "number"); CheckUtils.paramNotNull(licensee, "licensee"); - return NetLicensingService.getInstance().post(context, Constants.Licensee.ENDPOINT_PATH + "/" + number, FormConverter.convert(licensee), + return NetLicensingService.getInstance().post(context, Constants.Licensee.ENDPOINT_PATH + "/" + number, ConvertUtils.entityToForm(licensee), Licensee.class); } @@ -144,8 +144,7 @@ public static void delete(final Context context, final String number, final bool throws NetLicensingException { CheckUtils.paramNotEmpty(number, "number"); - final Map params = new HashMap<>(); - params.put(Constants.CASCADE, forceCascade); + Map params = Map.of(Constants.CASCADE, String.valueOf(forceCascade)); NetLicensingService.getInstance().delete(context, Constants.Licensee.ENDPOINT_PATH + "/" + number, params); } diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/NetLicensingService.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/NetLicensingService.java index f39b2e75..ae11047c 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/NetLicensingService.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/NetLicensingService.java @@ -15,9 +15,8 @@ import java.util.HashMap; import java.util.Map; -import jakarta.ws.rs.HttpMethod; -import jakarta.ws.rs.core.Form; -import jakarta.ws.rs.core.Response; +import com.labs64.netlicensing.provider.HttpMethod; +import com.labs64.netlicensing.provider.Form; import org.apache.commons.lang3.StringUtils; @@ -30,7 +29,7 @@ import com.labs64.netlicensing.exception.RestException; import com.labs64.netlicensing.exception.ServiceException; import com.labs64.netlicensing.provider.RestProvider; -import com.labs64.netlicensing.provider.RestProviderJersey; +import com.labs64.netlicensing.provider.RestProviderImpl; import com.labs64.netlicensing.provider.RestResponse; import com.labs64.netlicensing.schema.SchemaFunction; import com.labs64.netlicensing.schema.context.Netlicensing; @@ -81,7 +80,7 @@ static NetLicensingService getInstance() { * @return first suitable item with type resultType from the response * @throws com.labs64.netlicensing.exception.NetLicensingException */ - RES get(final Context context, final String urlTemplate, final Map queryParams, + RES get(final Context context, final String urlTemplate, final Map queryParams, final Class resultType, final MetaInfo... meta) throws NetLicensingException { final Netlicensing netlicensing = request(context, HttpMethod.GET, urlTemplate, null, queryParams); return processResponse(meta, netlicensing, resultType); @@ -102,7 +101,7 @@ RES get(final Context context, final String urlTemplate, final Map Page list(final Context context, final String urlTemplate, final Map queryParams, + Page list(final Context context, final String urlTemplate, final Map queryParams, final Class resultType) throws NetLicensingException { final Netlicensing netlicensing = request(context, HttpMethod.GET, urlTemplate, null, queryParams); return entityFactory.createPage(netlicensing, resultType); @@ -146,7 +145,7 @@ RES post(final Context context, final String urlTemplate, final Form reque * The REST query parameters values. May be null if there are no parameters. * @throws NetLicensingException */ - void delete(final Context context, final String urlTemplate, final Map queryParams) + void delete(final Context context, final String urlTemplate, final Map queryParams) throws NetLicensingException { request(context, HttpMethod.DELETE, urlTemplate, null, queryParams); } @@ -168,13 +167,13 @@ void delete(final Context context, final String urlTemplate, final Map queryParams) throws NetLicensingException { + final Map queryParams) throws NetLicensingException { CheckUtils.paramNotNull(context, "context"); Form combinedRequest = request; - Map combinedQueryParams = queryParams; + Map combinedQueryParams = queryParams; if (StringUtils.isNotBlank(context.getVendorNumber())) { if (HttpMethod.POST.equals(method)) { if (combinedRequest == null) { @@ -189,31 +188,29 @@ public Netlicensing request(final Context context, final String method, final St } } - final RestProviderJersey restProvider = new RestProviderJersey(context.getBaseUrl()); + final RestProviderImpl restProvider = new RestProviderImpl(context.getBaseUrl()); configure(restProvider, context); - - final RestResponse response = restProvider.call(method, urlTemplate, combinedRequest, Netlicensing.class, + + final RestResponse response = restProvider.call(method.name(), urlTemplate, combinedRequest, Netlicensing.class, combinedQueryParams); - final Response.Status status = Response.Status.fromStatusCode(response.getStatusCode()); - if (!isErrorStatus(status)) { - switch (status) { - case OK: + if (!isErrorStatus(response.getStatusCode())) { + switch (response.getStatusCode()) { + case 200: final Netlicensing netlicensing = response.getEntity(); SignatureUtils.check(context, netlicensing); return netlicensing; - case NO_CONTENT: + case 204: return null; default: - throw new RestException(String.format("Unsupported response status code %s: %s.", - status.getStatusCode(), status.getReasonPhrase())); + throw new RestException(String.format("Unsupported response status code %s.", + response.getStatusCode())); } } else { if (SchemaFunction.hasErrorInfos(response.getEntity())) { - throw new ServiceException(status, response.getHeaders(), response.getEntity()); + throw new ServiceException(response.getStatusCode(), response.getHeaders(), response.getEntity()); } else { - throw new RestException(String.format("Unknown service error %s: %s.", status.getStatusCode(), - status.getReasonPhrase())); + throw new RestException(String.format("Unknown service error %s.", response.getStatusCode())); } } } @@ -256,9 +253,10 @@ private void configure(final RestProvider restProvider, final Context context) t * info about status * @return true if HTTP status represents client error or server error, false otherwise */ - private boolean isErrorStatus(final Response.Status status) { - return (status.getFamily() == Response.Status.Family.CLIENT_ERROR) - || (status.getFamily() == Response.Status.Family.SERVER_ERROR); + private boolean isErrorStatus(final int statusCode) { + int family = statusCode / 100; + return (family == 4) // client error 4xx + || (family == 5); // server error 5xx } protected RES processResponse(final MetaInfo[] meta, final Netlicensing netlicensing, final Class resultType) diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/NotificationService.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/NotificationService.java index a385fd2d..5eb930f1 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/NotificationService.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/NotificationService.java @@ -18,7 +18,7 @@ import com.labs64.netlicensing.domain.vo.Page; import com.labs64.netlicensing.exception.NetLicensingException; import com.labs64.netlicensing.util.CheckUtils; -import com.labs64.netlicensing.util.FormConverter; +import com.labs64.netlicensing.util.ConvertUtils; import org.apache.commons.lang3.StringUtils; @@ -38,7 +38,7 @@ public class NotificationService { */ public static Notification create(final Context context, final Notification notification) throws NetLicensingException { CheckUtils.paramNotNull(notification, "notification"); - return NetLicensingService.getInstance().post(context, Constants.Notification.ENDPOINT_PATH, FormConverter.convert(notification), Notification.class); + return NetLicensingService.getInstance().post(context, Constants.Notification.ENDPOINT_PATH, ConvertUtils.entityToForm(notification), Notification.class); } /** @@ -65,7 +65,7 @@ public static Notification get(final Context context, final String number) throw * corresponding service response messages. */ public static Page list(final Context context, final String filter) throws NetLicensingException { - final Map params = new HashMap(); + final Map params = new HashMap<>(); if (StringUtils.isNotBlank(filter)) { params.put(Constants.FILTER, filter); } @@ -87,7 +87,7 @@ public static Notification update(final Context context, final String number, fi CheckUtils.paramNotEmpty(number, "number"); CheckUtils.paramNotNull(notification, "notification"); - return NetLicensingService.getInstance().post(context, Constants.Notification.ENDPOINT_PATH + "/" + number, FormConverter.convert(notification), + return NetLicensingService.getInstance().post(context, Constants.Notification.ENDPOINT_PATH + "/" + number, ConvertUtils.entityToForm(notification), Notification.class); } @@ -103,8 +103,7 @@ public static void delete(final Context context, final String number) throws NetLicensingException { CheckUtils.paramNotEmpty(number, "number"); - final Map params = new HashMap(); - NetLicensingService.getInstance().delete(context, Constants.Notification.ENDPOINT_PATH + "/" + number, params); + NetLicensingService.getInstance().delete(context, Constants.Notification.ENDPOINT_PATH + "/" + number, null); } } diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/PaymentMethodService.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/PaymentMethodService.java index 724c77a2..2724c26b 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/PaymentMethodService.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/PaymentMethodService.java @@ -23,7 +23,7 @@ import com.labs64.netlicensing.domain.vo.Page; import com.labs64.netlicensing.exception.NetLicensingException; import com.labs64.netlicensing.util.CheckUtils; -import com.labs64.netlicensing.util.FormConverter; +import com.labs64.netlicensing.util.ConvertUtils; /** * Provides payment method entity handling routines. @@ -61,7 +61,7 @@ public static PaymentMethod get(final Context context, final String number) thro * corresponding service response messages. */ public static Page list(final Context context, final String filter) throws NetLicensingException { - final Map params = new HashMap(); + final Map params = new HashMap<>(); if (StringUtils.isNotBlank(filter)) { params.put(Constants.FILTER, filter); } @@ -88,7 +88,7 @@ public static PaymentMethod update(final Context context, final String number, f CheckUtils.paramNotNull(paymentMethod, "paymentMethod"); return NetLicensingService.getInstance().post(context, Constants.PaymentMethod.ENDPOINT_PATH + "/" + number, - FormConverter.convert(paymentMethod), PaymentMethod.class); + ConvertUtils.entityToForm(paymentMethod), PaymentMethod.class); } } diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/ProductModuleService.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/ProductModuleService.java index 1a31aae7..5ae974fa 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/ProductModuleService.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/ProductModuleService.java @@ -15,7 +15,7 @@ import java.util.HashMap; import java.util.Map; -import jakarta.ws.rs.core.Form; +import com.labs64.netlicensing.provider.Form; import org.apache.commons.lang3.StringUtils; @@ -25,7 +25,7 @@ import com.labs64.netlicensing.domain.vo.Page; import com.labs64.netlicensing.exception.NetLicensingException; import com.labs64.netlicensing.util.CheckUtils; -import com.labs64.netlicensing.util.FormConverter; +import com.labs64.netlicensing.util.ConvertUtils; /** * Provides product module handling routines. @@ -56,7 +56,7 @@ public static ProductModule create(final Context context, final String productNu final ProductModule productModule) throws NetLicensingException { CheckUtils.paramNotNull(productModule, "productNumber"); - final Form form = FormConverter.convert(productModule); + final Form form = ConvertUtils.entityToForm(productModule); if (StringUtils.isNotBlank(productNumber)) { form.param(Constants.Product.PRODUCT_NUMBER, productNumber); } @@ -94,7 +94,7 @@ public static ProductModule get(final Context context, final String number) thro * corresponding service response messages. */ public static Page list(final Context context, final String filter) throws NetLicensingException { - final Map params = new HashMap(); + final Map params = new HashMap<>(); if (StringUtils.isNotBlank(filter)) { params.put(Constants.FILTER, filter); } @@ -121,7 +121,7 @@ public static ProductModule update(final Context context, final String number, f CheckUtils.paramNotNull(productModule, "productModule"); return NetLicensingService.getInstance().post(context, Constants.ProductModule.ENDPOINT_PATH + "/" + number, - FormConverter.convert(productModule), ProductModule.class); + ConvertUtils.entityToForm(productModule), ProductModule.class); } /** @@ -141,8 +141,7 @@ public static void delete(final Context context, final String number, final bool throws NetLicensingException { CheckUtils.paramNotEmpty(number, "number"); - final Map params = new HashMap(); - params.put(Constants.CASCADE, forceCascade); + Map params = Map.of(Constants.CASCADE, String.valueOf(forceCascade)); NetLicensingService.getInstance().delete(context, Constants.ProductModule.ENDPOINT_PATH + "/" + number, params); } diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/ProductService.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/ProductService.java index 5324c769..a0eac02e 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/ProductService.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/ProductService.java @@ -23,7 +23,7 @@ import com.labs64.netlicensing.domain.vo.Page; import com.labs64.netlicensing.exception.NetLicensingException; import com.labs64.netlicensing.util.CheckUtils; -import com.labs64.netlicensing.util.FormConverter; +import com.labs64.netlicensing.util.ConvertUtils; /** * Provides product handling routines. @@ -54,7 +54,7 @@ public class ProductService { public static Product create(final Context context, final Product product) throws NetLicensingException { CheckUtils.paramNotNull(product, "product"); - return NetLicensingService.getInstance().post(context, Constants.Product.ENDPOINT_PATH, FormConverter.convert(product), Product.class); + return NetLicensingService.getInstance().post(context, Constants.Product.ENDPOINT_PATH, ConvertUtils.entityToForm(product), Product.class); } /** @@ -89,7 +89,7 @@ public static Product get(final Context context, final String number) throws Net * corresponding service response messages. */ public static Page list(final Context context, final String filter) throws NetLicensingException { - final Map params = new HashMap(); + final Map params = new HashMap<>(); if (StringUtils.isNotBlank(filter)) { params.put(Constants.FILTER, filter); } @@ -115,7 +115,7 @@ public static Product update(final Context context, final String number, final P CheckUtils.paramNotEmpty(number, "number"); CheckUtils.paramNotNull(product, "product"); - return NetLicensingService.getInstance().post(context, Constants.Product.ENDPOINT_PATH + "/" + number, FormConverter.convert(product), + return NetLicensingService.getInstance().post(context, Constants.Product.ENDPOINT_PATH + "/" + number, ConvertUtils.entityToForm(product), Product.class); } @@ -136,8 +136,7 @@ public static void delete(final Context context, final String number, final bool throws NetLicensingException { CheckUtils.paramNotEmpty(number, "number"); - final Map params = new HashMap(); - params.put(Constants.CASCADE, forceCascade); + Map params = Map.of(Constants.CASCADE, String.valueOf(forceCascade)); NetLicensingService.getInstance().delete(context, Constants.Product.ENDPOINT_PATH + "/" + number, params); } diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/TokenService.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/TokenService.java index 7a5ee2e3..40ce7af2 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/TokenService.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/TokenService.java @@ -23,13 +23,13 @@ import com.labs64.netlicensing.domain.vo.Page; import com.labs64.netlicensing.exception.NetLicensingException; import com.labs64.netlicensing.util.CheckUtils; -import com.labs64.netlicensing.util.FormConverter; +import com.labs64.netlicensing.util.ConvertUtils; /** * Provides token entity handling routines. */ public class TokenService { - + /** * Gets token by its number. * @@ -61,7 +61,7 @@ public static Token get(final Context context, final String number) throws NetLi * exceptions will be transformed to the corresponding service response messages. */ public static Page list(final Context context, final String filter) throws NetLicensingException { - final Map params = new HashMap(); + final Map params = new HashMap<>(); if (StringUtils.isNotBlank(filter)) { params.put(Constants.FILTER, filter); } @@ -83,7 +83,7 @@ public static Page list(final Context context, final String filter) throw public static Token create(final Context context, final Token token) throws NetLicensingException { CheckUtils.paramNotNull(token, "token"); - return NetLicensingService.getInstance().post(context, Constants.Token.ENDPOINT_PATH, FormConverter.convert(token), Token.class); + return NetLicensingService.getInstance().post(context, Constants.Token.ENDPOINT_PATH, ConvertUtils.entityToForm(token), Token.class); } /** diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/TransactionService.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/TransactionService.java index aeba5de5..79e50b4d 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/TransactionService.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/TransactionService.java @@ -23,7 +23,7 @@ import com.labs64.netlicensing.domain.vo.Page; import com.labs64.netlicensing.exception.NetLicensingException; import com.labs64.netlicensing.util.CheckUtils; -import com.labs64.netlicensing.util.FormConverter; +import com.labs64.netlicensing.util.ConvertUtils; /** * Provides transaction handling routines. @@ -58,7 +58,7 @@ public static Transaction create(final Context context, final Transaction transa CheckUtils.paramNotNull(transaction, "transaction"); return NetLicensingService.getInstance().post(context, Constants.Transaction.ENDPOINT_PATH, - FormConverter.convert(transaction), + ConvertUtils.entityToForm(transaction), Transaction.class); } @@ -99,7 +99,7 @@ public static Transaction get(final Context context, final String number) throws * exceptions will be transformed to the corresponding service response messages. */ public static Page list(final Context context, final String filter) throws NetLicensingException { - final Map params = new HashMap(); + final Map params = new HashMap<>(); if (StringUtils.isNotBlank(filter)) { params.put(Constants.FILTER, filter); } @@ -130,7 +130,7 @@ public static Transaction update(final Context context, final String number, fin CheckUtils.paramNotNull(transaction, "transaction"); return NetLicensingService.getInstance().post(context, Constants.Transaction.ENDPOINT_PATH + "/" + number, - FormConverter.convert(transaction), Transaction.class); + ConvertUtils.entityToForm(transaction), Transaction.class); } } diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/UtilityService.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/UtilityService.java index 97a4c152..3e3e52c1 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/UtilityService.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/UtilityService.java @@ -106,7 +106,7 @@ public String transform(final LicensingModelProperties licensingModel) { * exceptions will be transformed to the corresponding service response messages. */ public static Page listCountries(final Context context, final String filter) throws NetLicensingException { - final Map params = new HashMap(); + final Map params = new HashMap<>(); if (StringUtils.isNotBlank(filter)) { params.put(Constants.FILTER, filter); } diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/ValidationService.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/ValidationService.java index 19ee057d..04d5cdd8 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/ValidationService.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/ValidationService.java @@ -16,8 +16,8 @@ import java.util.Map; import java.util.Map.Entry; -import jakarta.ws.rs.HttpMethod; -import jakarta.ws.rs.core.Form; +import com.labs64.netlicensing.provider.HttpMethod; +import com.labs64.netlicensing.provider.Form; import org.apache.commons.lang3.StringUtils; diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/util/ConvertUtils.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/util/ConvertUtils.java new file mode 100644 index 00000000..7423397c --- /dev/null +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/util/ConvertUtils.java @@ -0,0 +1,42 @@ +package com.labs64.netlicensing.util; + +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.util.Collection; +import java.util.Map; +import java.util.Map.Entry; + +import com.labs64.netlicensing.domain.entity.BaseEntity; +import com.labs64.netlicensing.provider.Form; + +public class ConvertUtils { + + public static Form entityToForm(BaseEntity entity) { + final Form form = new Form(); + for (final Entry prop : entity.asMap().entrySet()) { + if (prop.getValue() != null) { + if (prop.getValue() instanceof Collection) { + for (Object value: (Collection) prop.getValue()) { + form.param(prop.getKey(), value.toString()); + } + } else { + form.param(prop.getKey(), prop.getValue().toString()); + } + } + } + return form; + } + + public static String mapToParamString(Map params) throws UnsupportedEncodingException { + StringBuilder paramStr = new StringBuilder(); + for (Map.Entry param : params.entrySet()) { + if (paramStr.length() != 0) + paramStr.append('&'); + paramStr.append(URLEncoder.encode(param.getKey(), "UTF-8")); + paramStr.append('='); + paramStr.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8")); + } + return paramStr.toString(); + } + +} diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/util/FormConverter.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/util/FormConverter.java deleted file mode 100644 index 4b75a26c..00000000 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/util/FormConverter.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.labs64.netlicensing.util; - -import java.util.Collection; -import java.util.Map.Entry; - -import jakarta.ws.rs.core.Form; - -import com.labs64.netlicensing.domain.entity.BaseEntity; - -public class FormConverter { - - public static Form convert(BaseEntity entity) { - final Form form = new Form(); - for (final Entry prop : entity.asMap().entrySet()) { - if (prop.getValue() != null) { - if (prop.getValue() instanceof Collection) { - for (Object value: (Collection) prop.getValue()) { - form.param(prop.getKey(), value.toString()); - } - } else { - form.param(prop.getKey(), prop.getValue().toString()); - } - } - } - return form; - } - -} diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/util/JAXBUtils.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/util/JAXBUtils.java index dd6761da..a2934fb3 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/util/JAXBUtils.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/util/JAXBUtils.java @@ -27,23 +27,19 @@ */ public final class JAXBUtils { - public static T readObject(final String resource, final Class expectedType) { + public static T readObject(final String resource, final Class expectedType) throws JAXBException { return readObjectFromInputStream(JAXBUtils.class.getClassLoader().getResourceAsStream(resource), expectedType); } - public static T readObjectFromString(final String content, final Class expectedType) { + public static T readObjectFromString(final String content, final Class expectedType) throws JAXBException { return readObjectFromInputStream(new ByteArrayInputStream(content.getBytes()), expectedType); } - public static T readObjectFromInputStream(final InputStream inputStream, final Class expectedType) { - try { - final JAXBContext jaxbContext = JAXBContext.newInstance(expectedType); - final Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); - final JAXBElement element = unmarshaller.unmarshal(new StreamSource(inputStream), expectedType); - return element.getValue(); - } catch (final JAXBException e) { - throw new RuntimeException("Cannot process resource.", e); - } + public static T readObjectFromInputStream(final InputStream inputStream, final Class expectedType) throws JAXBException { + final JAXBContext jaxbContext = JAXBContext.newInstance(expectedType); + final Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); + final JAXBElement element = unmarshaller.unmarshal(new StreamSource(inputStream), expectedType); + return element.getValue(); } public static String xmlEntityToString(final T entity) { diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/util/ServiceHelper.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/util/ServiceHelper.java index 17a0bee2..1631f688 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/util/ServiceHelper.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/util/ServiceHelper.java @@ -1,15 +1,16 @@ package com.labs64.netlicensing.util; -import java.util.AbstractMap; -import java.util.AbstractMap.SimpleEntry; +//import java.util.AbstractMap; +//import java.util.AbstractMap.SimpleEntry; import java.util.ArrayList; import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; -import java.util.stream.Stream; +//import java.util.Map; +//import java.util.stream.Collectors; +//import java.util.stream.Stream; import org.apache.commons.lang3.StringUtils; +import com.labs64.netlicensing.domain.entity.BaseEntity; import com.labs64.netlicensing.domain.entity.Country; import com.labs64.netlicensing.domain.entity.License; import com.labs64.netlicensing.domain.entity.LicenseTemplate; @@ -19,6 +20,7 @@ import com.labs64.netlicensing.domain.entity.ProductModule; import com.labs64.netlicensing.domain.entity.Token; import com.labs64.netlicensing.domain.entity.Transaction; +/* import com.labs64.netlicensing.domain.entity.impl.CountryImpl; import com.labs64.netlicensing.domain.entity.impl.LicenseImpl; import com.labs64.netlicensing.domain.entity.impl.LicenseTemplateImpl; @@ -28,6 +30,7 @@ import com.labs64.netlicensing.domain.entity.impl.ProductModuleImpl; import com.labs64.netlicensing.domain.entity.impl.TokenImpl; import com.labs64.netlicensing.domain.entity.impl.TransactionImpl; +*/ import com.labs64.netlicensing.domain.vo.Context; import com.labs64.netlicensing.domain.vo.Page; import com.labs64.netlicensing.exception.ConversionException; @@ -44,6 +47,11 @@ public class ServiceHelper { + private static String PAGE = "page"; + private static String FILTER_DELIMITER = ";"; + private static String FILTER_PAIR_DELIMITER = "="; + + /* // @formatter:off private static final Map, Visitable> entityTypeDispatch = Stream.of( new AbstractMap.SimpleEntry<>(Product.class, new ProductImpl()), @@ -65,10 +73,6 @@ private static Visitable getVisitableByType(final Class entityClass) throws C throw new ConversionException("Provided type is not applicable"); } - private static String PAGE = "page"; - private static String FILTER_DELIMITER = ";"; - private static String FILTER_PAIR_DELIMITER = "="; - public static class PageGetDispatch extends Visitor { final Context context; final String filter; @@ -151,6 +155,63 @@ public void visit(final Country e) throws NetLicensingException { processPageResult(UtilityService.listCountries(context, getFilter())); } } + */ + + public static class PageGetDispatchNoReflection { + final Context context; + final String filter; + + private int page = 0; + private boolean hasNext = false; + + public PageGetDispatchNoReflection(final Context context, final String filter) { + this.context = context; + this.filter = filter; + } + + public void setPage(final int page) { + this.page = page; + } + + public boolean hasNext() { + return hasNext; + } + + private String getFilter() { + String pageAndFilter = PAGE + FILTER_PAIR_DELIMITER + String.valueOf(page); + if (StringUtils.isNotBlank(filter)) { + pageAndFilter += FILTER_DELIMITER + filter; + } + return pageAndFilter; + } + + private List processPageResult(final Page pageResult) { + hasNext = pageResult.hasNext(); + return pageResult.getContent(); + } + + private List visit(final Class entityClass) throws NetLicensingException { + if (entityClass == Product.class) + return processPageResult(ProductService.list(context, getFilter())); + else if (entityClass == ProductModule.class) + return processPageResult(ProductModuleService.list(context, getFilter())); + else if (entityClass == LicenseTemplate.class) + return processPageResult(LicenseTemplateService.list(context, getFilter())); + else if (entityClass == Licensee.class) + return processPageResult(LicenseeService.list(context, getFilter())); + else if (entityClass == License.class) + return processPageResult(LicenseService.list(context, getFilter())); + else if (entityClass == Transaction.class) + return processPageResult(TransactionService.list(context, getFilter())); + else if (entityClass == Token.class) + return processPageResult(TokenService.list(context, getFilter())); + else if (entityClass == PaymentMethod.class) + return processPageResult(PaymentMethodService.list(context, getFilter())); + else if (entityClass == Country.class) + return processPageResult(UtilityService.listCountries(context, getFilter())); + throw new ConversionException("Provided type is not applicable"); + } + } /** * Returns all entities of specified type, automatically retrieving all pages. @@ -168,18 +229,25 @@ public void visit(final Country e) throws NetLicensingException { */ public static List listAll(final Context context, final String filter, final Class entityClass) throws NetLicensingException { - final Visitable dispatching = getVisitableByType(entityClass); - final PageGetDispatch dispatcher = new PageGetDispatch<>(context, filter); + //final Visitable dispatching = getVisitableByType(entityClass); + //final PageGetDispatch dispatcher = new PageGetDispatch<>(context, filter); + + final PageGetDispatchNoReflection dispatcher = new PageGetDispatchNoReflection(context, filter); final List list = new ArrayList<>(); int page = 0; try { do { dispatcher.setPage(page); - dispatching.accept(dispatcher); - if (dispatcher.getData() != null) { - list.addAll(dispatcher.getData()); + @SuppressWarnings("unchecked") + List data = (List) dispatcher.visit(entityClass); + if (data != null) { + list.addAll(data); } + //dispatching.accept(dispatcher); + //if (dispatcher.getData() != null) { + // list.addAll(dispatcher.getData()); + //} ++page; } while (dispatcher.hasNext()); } catch (final NetLicensingException e2) { diff --git a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/BaseServiceTest.java b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/BaseServiceTest.java index b7600d98..0dd7e3cb 100644 --- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/BaseServiceTest.java +++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/BaseServiceTest.java @@ -17,6 +17,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; import jakarta.ws.rs.Consumes; import jakarta.ws.rs.DELETE; @@ -30,6 +32,7 @@ import jakarta.ws.rs.core.MultivaluedMap; import jakarta.ws.rs.core.Response; import jakarta.ws.rs.core.UriInfo; +import jakarta.xml.bind.JAXBException; import org.apache.commons.lang3.StringUtils; import org.apache.commons.text.WordUtils; @@ -74,6 +77,9 @@ static com.labs64.netlicensing.domain.vo.Context createContext() { @Override protected final Application configure() { enable(TestProperties.LOG_TRAFFIC); + // Suppress console log noise from JerseyTest + Logger.getLogger("org.glassfish.jersey.test").setLevel(Level.WARNING); + Logger.getLogger("org.glassfish.grizzly.http").setLevel(Level.WARNING); return new ResourceConfig(getResourceClass()); } @@ -122,8 +128,12 @@ public Response create(final MultivaluedMap formParams) { public Response get(@PathParam("number") final String number) { final String xmlResourcePath = String.format("%snetlicensing-%s-get.xml", TEST_CASE_BASE, serviceId.toLowerCase()); - final Netlicensing netlicensing = JAXBUtils.readObject(xmlResourcePath, Netlicensing.class); - return Response.ok(netlicensing).build(); + try { + final Netlicensing netlicensing = JAXBUtils.readObject(xmlResourcePath, Netlicensing.class); + return Response.ok(netlicensing).build(); + } catch (JAXBException e) { + return Response.serverError().entity("Exception in mocked server: " + e.getMessage()).build(); + } } /** @@ -135,8 +145,12 @@ public Response get(@PathParam("number") final String number) { public Response list() { final String xmlResourcePath = String.format("%snetlicensing-%s-list.xml", TEST_CASE_BASE, serviceId.toLowerCase()); - final Netlicensing netlicensing = JAXBUtils.readObject(xmlResourcePath, Netlicensing.class); - return Response.ok(netlicensing).build(); + try { + final Netlicensing netlicensing = JAXBUtils.readObject(xmlResourcePath, Netlicensing.class); + return Response.ok(netlicensing).build(); + } catch (JAXBException e) { + return Response.serverError().entity("Exception in mocked server: " + e.getMessage()).build(); + } } /** @@ -152,7 +166,12 @@ public Response list() { public Response update(@PathParam("number") final String number, final MultivaluedMap formParams) { final String resourcePath = String.format("%snetlicensing-%s-update.xml", TEST_CASE_BASE, serviceId.toLowerCase()); - final Netlicensing netlicensing = JAXBUtils.readObject(resourcePath, Netlicensing.class); + Netlicensing netlicensing; + try { + netlicensing = JAXBUtils.readObject(resourcePath, Netlicensing.class); + } catch (JAXBException e) { + return Response.serverError().entity("Exception in mocked server: " + e.getMessage()).build(); + } final List properties = netlicensing.getItems().getItem().get(0).getProperty(); for (final String paramKey : formParams.keySet()) { diff --git a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/BundleServiceTest.java b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/BundleServiceTest.java index cfaca101..b1eeaf31 100644 --- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/BundleServiceTest.java +++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/BundleServiceTest.java @@ -26,9 +26,10 @@ import jakarta.ws.rs.core.MultivaluedMap; import jakarta.ws.rs.core.Response; import jakarta.ws.rs.core.UriInfo; +import jakarta.xml.bind.JAXBException; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import com.labs64.netlicensing.domain.Constants; import com.labs64.netlicensing.domain.entity.Bundle; @@ -41,10 +42,10 @@ import com.labs64.netlicensing.schema.context.Netlicensing; import com.labs64.netlicensing.util.JAXBUtils; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertThrows; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * Integration tests for {@link BundleService}. @@ -52,7 +53,7 @@ public class BundleServiceTest extends BaseServiceTest { private static Context context; - @BeforeClass + @BeforeAll public static void setup() { context = createContext(); } @@ -280,8 +281,12 @@ public Response obtain(@PathParam("number") final String number, final String xmlResourcePath = String.format("%snetlicensing-bundle-obtain.xml", TEST_CASE_BASE); - final Netlicensing netlicensing = JAXBUtils.readObject(xmlResourcePath, Netlicensing.class); - return Response.ok(netlicensing).build(); + try { + final Netlicensing netlicensing = JAXBUtils.readObject(xmlResourcePath, Netlicensing.class); + return Response.ok(netlicensing).build(); + } catch (JAXBException e) { + return Response.serverError().entity("Exception in mocked server: " + e.getMessage()).build(); + } } } } diff --git a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/LicenseServiceTest.java b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/LicenseServiceTest.java index cfa083d3..9db8dbc9 100644 --- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/LicenseServiceTest.java +++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/LicenseServiceTest.java @@ -21,9 +21,10 @@ import jakarta.ws.rs.core.MultivaluedMap; import jakarta.ws.rs.core.Response; import jakarta.ws.rs.core.UriInfo; +import jakarta.xml.bind.JAXBException; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import com.labs64.netlicensing.domain.Constants; import com.labs64.netlicensing.domain.entity.License; @@ -37,11 +38,11 @@ import com.labs64.netlicensing.schema.context.Property; import com.labs64.netlicensing.util.JAXBUtils; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertThrows; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * Integration tests for {@link LicenseService}. @@ -55,7 +56,7 @@ public class LicenseServiceTest extends BaseServiceTest { private static Context context; - @BeforeClass + @BeforeAll public static void setup() { context = createContext(); } @@ -206,7 +207,11 @@ public Response create(final MultivaluedMap formParams) { formParams.remove(Constants.CURRENCY); formParams.remove(Constants.License.HIDDEN); - return create(formParams, getDefaultPropertyValuesFromLicenseTemplate()); + try { + return create(formParams, getDefaultPropertyValuesFromLicenseTemplate()); + } catch (JAXBException e) { + return Response.serverError().entity("Exception in mocked server: " + e.getMessage()).build(); + } } @Override @@ -223,7 +228,7 @@ public Response delete(final String number, final UriInfo uriInfo) { return delete(number, "LC001-TEST", uriInfo.getQueryParameters()); } - private Map getDefaultPropertyValuesFromLicenseTemplate() { + private Map getDefaultPropertyValuesFromLicenseTemplate() throws JAXBException { final Map values = new HashMap<>(); final Netlicensing netlicensing = JAXBUtils.readObject(TEST_CASE_BASE diff --git a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/LicenseTemplateServiceTest.java b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/LicenseTemplateServiceTest.java index 0f1f2177..32c62ff8 100644 --- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/LicenseTemplateServiceTest.java +++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/LicenseTemplateServiceTest.java @@ -21,8 +21,8 @@ import jakarta.ws.rs.core.Response; import jakarta.ws.rs.core.UriInfo; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import com.labs64.netlicensing.domain.Constants; import com.labs64.netlicensing.domain.entity.LicenseTemplate; @@ -33,11 +33,11 @@ import com.labs64.netlicensing.domain.vo.Page; import com.labs64.netlicensing.exception.ServiceException; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertThrows; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * Integration tests for {@link LicenseTemplateService}. @@ -50,7 +50,7 @@ public class LicenseTemplateServiceTest extends BaseServiceTest { private static Context context; - @BeforeClass + @BeforeAll public static void setup() { context = createContext(); } diff --git a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/LicenseeServiceTest.java b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/LicenseeServiceTest.java index 30cc92a2..3b3e7a90 100644 --- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/LicenseeServiceTest.java +++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/LicenseeServiceTest.java @@ -22,9 +22,10 @@ import jakarta.ws.rs.core.MultivaluedMap; import jakarta.ws.rs.core.Response; import jakarta.ws.rs.core.UriInfo; +import jakarta.xml.bind.JAXBException; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import com.labs64.netlicensing.domain.Constants; import com.labs64.netlicensing.domain.entity.Licensee; @@ -39,11 +40,11 @@ import com.labs64.netlicensing.schema.context.Netlicensing; import com.labs64.netlicensing.util.JAXBUtils; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertThrows; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * Integration tests for {@link LicenseeService}. @@ -60,7 +61,7 @@ public class LicenseeServiceTest extends BaseServiceTest { private static Context context; - @BeforeClass + @BeforeAll public static void setup() { context = createContext(); } @@ -282,9 +283,13 @@ public Response validateLicensee(@PathParam("licenseeNumber") final String licen ? "netlicensing-licensee-validate-offline.xml" : "netlicensing-licensee-validate.xml"; - final Netlicensing netlicensing = JAXBUtils.readObject(TEST_CASE_BASE - + validationFile, Netlicensing.class); - return Response.ok(netlicensing).build(); + try { + final Netlicensing netlicensing = JAXBUtils.readObject(TEST_CASE_BASE + + validationFile, Netlicensing.class); + return Response.ok(netlicensing).build(); + } catch (JAXBException e) { + return Response.serverError().entity("Exception in mocked server: " + e.getMessage()).build(); + } } /** @@ -301,10 +306,14 @@ public Response validateLicensee(@PathParam("licenseeNumber") final String licen public Response transferLicensee(@PathParam("licenseeNumber") final String licenseeNumber, @FormParam("transfer") final String transferLicensee) { - final Netlicensing netlicensing = JAXBUtils - .readObject(TEST_CASE_BASE + "netlicensing-licensee-transfer.xml", - Netlicensing.class); - return Response.ok(netlicensing).build(); + try { + final Netlicensing netlicensing = JAXBUtils + .readObject(TEST_CASE_BASE + "netlicensing-licensee-transfer.xml", + Netlicensing.class); + return Response.ok(netlicensing).build(); + } catch (JAXBException e) { + return Response.serverError().entity("Exception in mocked server: " + e.getMessage()).build(); + } } } diff --git a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/NetLicensingServiceTest.java b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/NetLicensingServiceTest.java index 738ee646..cea503e3 100644 --- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/NetLicensingServiceTest.java +++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/NetLicensingServiceTest.java @@ -13,17 +13,19 @@ package com.labs64.netlicensing.service; import jakarta.ws.rs.GET; -import jakarta.ws.rs.HttpMethod; +import com.labs64.netlicensing.provider.HttpMethod; import jakarta.ws.rs.Path; import jakarta.ws.rs.core.Response; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import com.labs64.netlicensing.domain.vo.Context; import com.labs64.netlicensing.exception.RestException; import com.labs64.netlicensing.schema.context.ObjectFactory; +import static org.junit.jupiter.api.Assertions.assertThrows; + /** * Common integration tests for {@link NetLicensingService}. */ @@ -33,19 +35,23 @@ public class NetLicensingServiceTest extends BaseServiceTest { private static Context context; - @BeforeClass + @BeforeAll public static void setup() { context = createContext(); } - @Test(expected = RestException.class) + @Test public void testNotExistingService() throws Exception { - NetLicensingService.getInstance().request(context, HttpMethod.GET, "non-existing-service", null, null); + assertThrows(RestException.class, () -> { + NetLicensingService.getInstance().request(context, HttpMethod.GET, "non-existing-service", null, null); + }); } - @Test(expected = RestException.class) + @Test public void testUnsupportedStatusCode() throws Exception { - NetLicensingService.getInstance().request(context, HttpMethod.GET, "unsupported-status-code", null, null); + assertThrows(RestException.class, () -> { + NetLicensingService.getInstance().request(context, HttpMethod.GET, "unsupported-status-code", null, null); + }); } // *** NLIC test mock resource *** diff --git a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/NotificationServiceTest.java b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/NotificationServiceTest.java index 6fe00b22..96d0fc4f 100644 --- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/NotificationServiceTest.java +++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/NotificationServiceTest.java @@ -24,8 +24,8 @@ import jakarta.ws.rs.core.UriInfo; import org.apache.commons.lang3.StringUtils; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import com.labs64.netlicensing.domain.Constants; import com.labs64.netlicensing.domain.entity.Notification; @@ -36,10 +36,10 @@ import com.labs64.netlicensing.domain.vo.Page; import com.labs64.netlicensing.exception.ServiceException; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertThrows; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * Integration tests for {@link ProductService}. @@ -52,7 +52,7 @@ public class NotificationServiceTest extends BaseServiceTest { private static Context context; - @BeforeClass + @BeforeAll public static void setup() { context = createContext(); } diff --git a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/PaymentMethodServiceTest.java b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/PaymentMethodServiceTest.java index 5abc5e54..ea3865d3 100644 --- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/PaymentMethodServiceTest.java +++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/PaymentMethodServiceTest.java @@ -16,8 +16,8 @@ import jakarta.ws.rs.core.MultivaluedMap; import jakarta.ws.rs.core.Response; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import com.labs64.netlicensing.domain.Constants; import com.labs64.netlicensing.domain.entity.PaymentMethod; @@ -26,11 +26,11 @@ import com.labs64.netlicensing.domain.vo.Page; import com.labs64.netlicensing.exception.ServiceException; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertThrows; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * Integration tests for {@link PaymentMethodService}. @@ -44,7 +44,7 @@ public class PaymentMethodServiceTest extends BaseServiceTest { private static Context context; - @BeforeClass + @BeforeAll public static void setup() { context = createContext(); } diff --git a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/ProductModuleServiceTest.java b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/ProductModuleServiceTest.java index 2466dddd..c5ffa67d 100644 --- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/ProductModuleServiceTest.java +++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/ProductModuleServiceTest.java @@ -20,8 +20,8 @@ import jakarta.ws.rs.core.Response; import jakarta.ws.rs.core.UriInfo; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import com.labs64.netlicensing.domain.Constants; import com.labs64.netlicensing.domain.entity.ProductModule; @@ -30,10 +30,10 @@ import com.labs64.netlicensing.domain.vo.Page; import com.labs64.netlicensing.exception.ServiceException; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertThrows; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * Integration tests for {@link ProductModuleService}. @@ -44,7 +44,7 @@ public class ProductModuleServiceTest extends BaseServiceTest { private static Context context; - @BeforeClass + @BeforeAll public static void setup() { context = createContext(); } diff --git a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/ProductServiceTest.java b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/ProductServiceTest.java index ed3a6663..b96686bc 100644 --- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/ProductServiceTest.java +++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/ProductServiceTest.java @@ -20,8 +20,8 @@ import jakarta.ws.rs.core.Response; import jakarta.ws.rs.core.UriInfo; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import com.labs64.netlicensing.domain.Constants; import com.labs64.netlicensing.domain.entity.Product; @@ -30,11 +30,11 @@ import com.labs64.netlicensing.domain.vo.Page; import com.labs64.netlicensing.exception.ServiceException; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertThrows; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * Integration tests for {@link ProductService}. @@ -48,7 +48,7 @@ public class ProductServiceTest extends BaseServiceTest { private static Context context; - @BeforeClass + @BeforeAll public static void setup() { context = createContext(); } diff --git a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/SecurityTest.java b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/SecurityTest.java index b42ab912..4f3c9b40 100644 --- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/SecurityTest.java +++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/SecurityTest.java @@ -16,11 +16,11 @@ import jakarta.ws.rs.GET; import jakarta.ws.rs.HeaderParam; -import jakarta.ws.rs.HttpMethod; +import com.labs64.netlicensing.provider.HttpMethod; import jakarta.ws.rs.Path; import jakarta.ws.rs.core.Response; -import org.junit.Test; +import org.junit.jupiter.api.Test; import com.labs64.netlicensing.domain.vo.Context; import com.labs64.netlicensing.domain.vo.SecurityMode; @@ -28,8 +28,8 @@ import com.labs64.netlicensing.schema.context.Netlicensing; import com.labs64.netlicensing.schema.context.ObjectFactory; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * Tests for checking the ability to connect to services using different security modes diff --git a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/TokenServiceTest.java b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/TokenServiceTest.java index 8f56759c..ac9482e1 100644 --- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/TokenServiceTest.java +++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/TokenServiceTest.java @@ -21,8 +21,8 @@ import jakarta.ws.rs.core.Response; import jakarta.ws.rs.core.UriInfo; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import com.labs64.netlicensing.domain.Constants; import com.labs64.netlicensing.domain.entity.Token; @@ -33,11 +33,11 @@ import com.labs64.netlicensing.exception.ServiceException; import com.labs64.netlicensing.util.DateUtils; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertThrows; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * Integration tests for {@link TokenService}. @@ -48,7 +48,7 @@ public class TokenServiceTest extends BaseServiceTest { private static Context context; - @BeforeClass + @BeforeAll public static void setup() { context = createContext(); } diff --git a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/TransactionServiceTest.java b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/TransactionServiceTest.java index 9e3376c1..6107f26b 100644 --- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/TransactionServiceTest.java +++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/TransactionServiceTest.java @@ -20,8 +20,8 @@ import jakarta.ws.rs.core.MultivaluedMap; import jakarta.ws.rs.core.Response; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import com.labs64.netlicensing.domain.Constants; import com.labs64.netlicensing.domain.entity.Transaction; @@ -35,11 +35,11 @@ import com.labs64.netlicensing.schema.context.Netlicensing; import com.labs64.netlicensing.util.DateUtils; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertThrows; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * Integration tests for {@link TransactionService}. @@ -53,7 +53,7 @@ public class TransactionServiceTest extends BaseServiceTest { private static Context context; - @BeforeClass + @BeforeAll public static void setup() { context = createContext(); } diff --git a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/UtilityServiceTest.java b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/UtilityServiceTest.java index e086c72d..e640fdd3 100644 --- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/UtilityServiceTest.java +++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/UtilityServiceTest.java @@ -17,9 +17,10 @@ import jakarta.ws.rs.GET; import jakarta.ws.rs.Path; import jakarta.ws.rs.core.Response; +import jakarta.xml.bind.JAXBException; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import com.labs64.netlicensing.domain.entity.Country; import com.labs64.netlicensing.domain.vo.Context; @@ -27,9 +28,9 @@ import com.labs64.netlicensing.schema.context.Netlicensing; import com.labs64.netlicensing.util.JAXBUtils; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * Integration tests for {@link UtilityService}. @@ -40,7 +41,7 @@ public class UtilityServiceTest extends BaseServiceTest { private static Context context; - @BeforeClass + @BeforeAll public static void setup() { context = createContext(); } @@ -110,8 +111,12 @@ public Response listCountries() { private Response listFromResource(final String resourceFileName) { final String xmlResourcePath = TEST_CASE_BASE + resourceFileName; - final Netlicensing netlicensing = JAXBUtils.readObject(xmlResourcePath, Netlicensing.class); - return Response.ok(netlicensing).build(); + try { + final Netlicensing netlicensing = JAXBUtils.readObject(xmlResourcePath, Netlicensing.class); + return Response.ok(netlicensing).build(); + } catch (JAXBException e) { + return Response.serverError().entity("Exception in mocked server: " + e.getMessage()).build(); + } } } diff --git a/NetLicensingClient/src/test/java/com/labs64/netlicensing/util/XMLDSigValidatorCustomTest.java b/NetLicensingClient/src/test/java/com/labs64/netlicensing/util/XMLDSigValidatorCustomTest.java index b6910cbe..3e62e714 100644 --- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/util/XMLDSigValidatorCustomTest.java +++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/util/XMLDSigValidatorCustomTest.java @@ -20,14 +20,12 @@ import javax.xml.parsers.DocumentBuilderFactory; import org.apache.commons.io.IOUtils; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.w3c.dom.Document; -import static java.lang.System.out; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; public final class XMLDSigValidatorCustomTest { @@ -38,8 +36,6 @@ private static InputStream loadFileContent(final String fileName) { } private static Document loadXmlDocument(final String fileName) throws Exception { - out.println("Load XML file " + fileName); - final DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance(); dFactory.setNamespaceAware(true); final DocumentBuilder dBuilder = dFactory.newDocumentBuilder(); diff --git a/pom.xml b/pom.xml index 67993d4b..4fd5c9ca 100644 --- a/pom.xml +++ b/pom.xml @@ -79,16 +79,15 @@ 3.14.0 4.4 - 1.16.0 2.15.1 1.6.0 1.11.0 - 2.21.1 - 4.13.2 + 5.10.2 3.1.5 4.0.0 4.0.3 5.0.1 + 2.0.13 3.0.0 @@ -404,33 +403,21 @@ org.apache.commons commons-lang3 ${commons-lang3.version} - compile org.apache.commons commons-collections4 ${commons-collections4.version} - compile - - - commons-codec - commons-codec - ${commons-codec.version} - compile commons-io commons-io ${commons-io.version} - compile - true commons-cli commons-cli ${commons-cli.version} - compile - true org.apache.commons @@ -441,19 +428,16 @@ org.glassfish.jersey.core jersey-client ${jersey.version} - compile org.glassfish.jersey.media jersey-media-jaxb ${jersey.version} - compile org.glassfish.jersey.inject jersey-hk2 ${jersey.version} - compile jakarta.xml.bind @@ -470,30 +454,26 @@ ph-xmldsig ${ph-xmldsig.version} + - org.apache.logging.log4j - log4j-bom - ${log4j.version} - import - pom + org.slf4j + slf4j-nop + ${slf4j.version} - junit - junit - ${junit.version} - test + org.junit.jupiter + junit-jupiter + ${junit-jupiter.version} org.glassfish.jersey.test-framework jersey-test-framework-core ${jersey.version} - test org.glassfish.jersey.test-framework.providers jersey-test-framework-provider-grizzly2 ${jersey.version} - test From ea8c7ca4974e4d3de18025393809c9cace3242c2 Mon Sep 17 00:00:00 2001 From: Konstantin Korotkov Date: Thu, 23 May 2024 13:05:21 +0200 Subject: [PATCH 10/12] Cleanup --- .../com/labs64/netlicensing/provider/RestProviderImpl.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/RestProviderImpl.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/RestProviderImpl.java index fd8ee25a..0577a4de 100644 --- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/RestProviderImpl.java +++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/provider/RestProviderImpl.java @@ -35,8 +35,6 @@ /** * Low level REST client implementation. - *

- * This will also log each request in INFO level. */ public class RestProviderImpl extends AbstractRestProvider { @@ -113,9 +111,7 @@ public RestResponse call(final String httpMethod, final String u final RestResponse restResponse = new RestResponse<>(); restResponse.setStatusCode(response.statusCode()); restResponse.setHeaders(response.headers().map()); - if ((response.statusCode() != 204) || !response.body().isEmpty()) { - restResponse.setEntity(readEntity(response.body(), response.statusCode(), responseType)); - } + restResponse.setEntity(readEntity(response.body(), response.statusCode(), responseType)); return restResponse; } catch (final IOException | InterruptedException e) { throw new RestException("Exception while calling service.", e); From 56f62a777f6ba521198647ec2e943fc1d19a0af1 Mon Sep 17 00:00:00 2001 From: Konstantin Korotkov Date: Sun, 26 May 2024 20:13:32 +0200 Subject: [PATCH 11/12] Remove unused dependency --- pom.xml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/pom.xml b/pom.xml index 4fd5c9ca..7a59d670 100644 --- a/pom.xml +++ b/pom.xml @@ -429,11 +429,6 @@ jersey-client ${jersey.version} - - org.glassfish.jersey.media - jersey-media-jaxb - ${jersey.version} - org.glassfish.jersey.inject jersey-hk2 From 30986680d08d6c15b78df7336b12a7b6d8a969f7 Mon Sep 17 00:00:00 2001 From: Alexey Averikhin Date: Mon, 27 May 2024 21:42:51 +0200 Subject: [PATCH 12/12] Update ph-xmldsig version to 5.0.2 (fixing 1 critical and 4 high vulnerabilities) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7a59d670..07d2dcbb 100644 --- a/pom.xml +++ b/pom.xml @@ -86,7 +86,7 @@ 3.1.5 4.0.0 4.0.3 - 5.0.1 + 5.0.2 2.0.13