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 4168eb27..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 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 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 2266a8e5..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 javax.ws.rs.core.MultivaluedHashMap;
-import javax.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/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/service/BundleService.java b/NetLicensingClient/src/main/java/com/labs64/netlicensing/service/BundleService.java
index 84ead7ec..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 javax.ws.rs.HttpMethod;
-import javax.ws.rs.core.Form;
+import com.labs64.netlicensing.provider.HttpMethod;
+import com.labs64.netlicensing.provider.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.ConvertUtils;
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, ConvertUtils.entityToForm(bundle), Bundle.class);
}
/**
@@ -72,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);
}
@@ -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, ConvertUtils.entityToForm(bundle),
Bundle.class);
}
@@ -110,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 735b74cc..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 javax.ws.rs.core.Form;
+import com.labs64.netlicensing.provider.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.ConvertUtils;
/**
* 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 = ConvertUtils.entityToForm(license);
if (StringUtils.isNotBlank(licenseeNumber)) {
form.param(Constants.Licensee.LICENSEE_NUMBER, licenseeNumber);
}
@@ -112,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);
}
@@ -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 = ConvertUtils.entityToForm(license);
if (StringUtils.isNotBlank(transactionNumber)) {
form.param(Constants.Transaction.TRANSACTION_NUMBER, transactionNumber);
}
@@ -166,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 67af8833..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 javax.ws.rs.core.Form;
+import com.labs64.netlicensing.provider.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.ConvertUtils;
/**
* 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 = ConvertUtils.entityToForm(licenseTemplate);
if (StringUtils.isNotBlank(productModuleNumber)) {
form.param(Constants.ProductModule.PRODUCT_MODULE_NUMBER, productModuleNumber);
}
@@ -94,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);
}
@@ -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);
+ ConvertUtils.entityToForm(licenseTemplate), LicenseTemplate.class);
}
/**
@@ -141,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 cba7db48..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 javax.ws.rs.core.Form;
+import com.labs64.netlicensing.provider.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.ConvertUtils;
/**
* 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 = ConvertUtils.entityToForm(licensee);
if (StringUtils.isNotBlank(productNumber)) {
form.param(Constants.Product.PRODUCT_NUMBER, productNumber);
}
@@ -98,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);
}
@@ -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, ConvertUtils.entityToForm(licensee),
Licensee.class);
}
@@ -143,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 998269f6..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 javax.ws.rs.HttpMethod;
-import javax.ws.rs.core.Form;
-import javax.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 7cffd067..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,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.ConvertUtils;
+
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, ConvertUtils.entityToForm(notification), Notification.class);
}
/**
@@ -63,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);
}
@@ -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, ConvertUtils.entityToForm(notification),
Notification.class);
}
@@ -101,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 9187c917..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,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.ConvertUtils;
/**
* Provides payment method entity handling routines.
@@ -60,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);
}
@@ -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);
+ 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 98539b36..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 javax.ws.rs.core.Form;
+import com.labs64.netlicensing.provider.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.ConvertUtils;
/**
* 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 = ConvertUtils.entityToForm(productModule);
if (StringUtils.isNotBlank(productNumber)) {
form.param(Constants.Product.PRODUCT_NUMBER, productNumber);
}
@@ -93,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);
}
@@ -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);
+ ConvertUtils.entityToForm(productModule), ProductModule.class);
}
/**
@@ -140,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 83a2c226..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,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.ConvertUtils;
/**
* 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, ConvertUtils.entityToForm(product), Product.class);
}
/**
@@ -88,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);
}
@@ -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, ConvertUtils.entityToForm(product),
Product.class);
}
@@ -135,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 0a6c2cfb..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,12 +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.ConvertUtils;
/**
* Provides token entity handling routines.
*/
public class TokenService {
-
+
/**
* Gets token by its number.
*
@@ -60,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);
}
@@ -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, 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 cbb496ba..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,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.ConvertUtils;
/**
* 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(),
+ ConvertUtils.entityToForm(transaction),
Transaction.class);
}
@@ -98,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);
}
@@ -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);
+ 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 21628133..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 javax.ws.rs.HttpMethod;
-import javax.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/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..a2934fb3 100644
--- a/NetLicensingClient/src/main/java/com/labs64/netlicensing/util/JAXBUtils.java
+++ b/NetLicensingClient/src/main/java/com/labs64/netlicensing/util/JAXBUtils.java
@@ -16,34 +16,30 @@
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;
/**
*/
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 extends BaseEntity> 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/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..1b18eafc 100644
--- a/NetLicensingClient/src/main/resources/nlic-schema-bindings.xjb
+++ b/NetLicensingClient/src/main/resources/nlic-schema-bindings.xjb
@@ -1,10 +1,32 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
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..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,19 +17,22 @@
import java.util.HashMap;
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 java.util.logging.Level;
+import java.util.logging.Logger;
+
+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 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 d22cadb8..b1eeaf31 100644
--- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/BundleServiceTest.java
+++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/BundleServiceTest.java
@@ -18,17 +18,18 @@
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 org.junit.BeforeClass;
-import org.junit.Test;
+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 jakarta.xml.bind.JAXBException;
+
+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 d7f0cf01..9db8dbc9 100644
--- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/LicenseServiceTest.java
+++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/LicenseServiceTest.java
@@ -17,13 +17,14 @@
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 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 37f0a0b3..32c62ff8 100644
--- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/LicenseTemplateServiceTest.java
+++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/LicenseTemplateServiceTest.java
@@ -16,13 +16,13 @@
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;
+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 e2d1370b..3b3e7a90 100644
--- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/LicenseeServiceTest.java
+++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/LicenseeServiceTest.java
@@ -15,16 +15,17 @@
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 org.junit.BeforeClass;
-import org.junit.Test;
+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 jakarta.xml.bind.JAXBException;
+
+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 3f58a911..cea503e3 100644
--- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/NetLicensingServiceTest.java
+++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/NetLicensingServiceTest.java
@@ -12,18 +12,20 @@
*/
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 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 f4a09d2f..96d0fc4f 100644
--- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/NotificationServiceTest.java
+++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/NotificationServiceTest.java
@@ -18,14 +18,14 @@
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;
-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 aeed926b..ea3865d3 100644
--- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/PaymentMethodServiceTest.java
+++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/PaymentMethodServiceTest.java
@@ -12,12 +12,12 @@
*/
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;
+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 3d3c924c..c5ffa67d 100644
--- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/ProductModuleServiceTest.java
+++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/ProductModuleServiceTest.java
@@ -15,13 +15,13 @@
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;
+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 7dc4dad9..b96686bc 100644
--- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/ProductServiceTest.java
+++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/ProductServiceTest.java
@@ -15,13 +15,13 @@
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;
+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 80a3c91f..4f3c9b40 100644
--- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/SecurityTest.java
+++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/SecurityTest.java
@@ -14,13 +14,13 @@
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 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 1f8fa1df..ac9482e1 100644
--- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/TokenServiceTest.java
+++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/TokenServiceTest.java
@@ -16,13 +16,13 @@
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;
+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 44db4a09..6107f26b 100644
--- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/TransactionServiceTest.java
+++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/TransactionServiceTest.java
@@ -16,12 +16,12 @@
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;
+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 5ba98c05..e640fdd3 100644
--- a/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/UtilityServiceTest.java
+++ b/NetLicensingClient/src/test/java/com/labs64/netlicensing/service/UtilityServiceTest.java
@@ -14,12 +14,13 @@
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 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 616ebe96..07d2dcbb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,18 +77,17 @@
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
- 2.3.1
- 2.3.2
- 5.0.1
+ 5.10.2
+ 3.1.5
+ 4.0.0
+ 4.0.3
+ 5.0.2
+ 2.0.13
3.0.0
@@ -99,9 +98,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 +205,18 @@
${maven-dependency-plugin.version}