diff --git a/ext/mp-rest-client/pom.xml b/ext/mp-rest-client/pom.xml index dc35e9ebd6..d48d1a3022 100644 --- a/ext/mp-rest-client/pom.xml +++ b/ext/mp-rest-client/pom.xml @@ -40,21 +40,19 @@ 1.3 - io.helidon.microprofile.config - helidon-microprofile-config-cdi - 1.0.1 + org.glassfish.jersey.core + jersey-client + ${project.version} org.glassfish.jersey.core - jersey-client + jersey-server ${project.version} - compile jakarta.json jakarta.json-api 1.1.5 - compile org.glassfish.jersey.inject @@ -71,6 +69,15 @@ weld-se-core 3.0.3.Final + + org.glassfish + jsonp-jaxrs + + + org.glassfish.jersey.media + jersey-media-json-binding + ${project.version} + org.glassfish.jersey.test-framework jersey-test-framework-core @@ -85,15 +92,9 @@ test - io.helidon.microprofile.server - helidon-microprofile-server - 1.0.1 - test - - - io.helidon.microprofile.tests - helidon-arquillian - 1.0.1-SNAPSHOT + io.smallrye + smallrye-config + 1.3.5 test @@ -105,7 +106,6 @@ org.testng testng - 6.13.1 test @@ -117,13 +117,19 @@ org.jboss.arquillian.testng arquillian-testng-container - 1.4.0.Final + 1.4.1.Final test org.jboss.arquillian.container arquillian-container-test-spi - 1.4.0.Final + 1.4.1.Final + test + + + org.jboss.arquillian.container + arquillian-weld-embedded + 2.0.1.Final test @@ -132,15 +138,6 @@ 0.30.0 test - - org.glassfish - jsonp-jaxrs - - - org.glassfish.jersey.media - jersey-media-json-binding - ${project.version} - diff --git a/ext/mp-rest-client/src/main/java/org/glassfish/jersey/restclient/BeanClassModel.java b/ext/mp-rest-client/src/main/java/org/glassfish/jersey/restclient/BeanClassModel.java index d2a5296265..a7ec975b9a 100644 --- a/ext/mp-rest-client/src/main/java/org/glassfish/jersey/restclient/BeanClassModel.java +++ b/ext/mp-rest-client/src/main/java/org/glassfish/jersey/restclient/BeanClassModel.java @@ -215,7 +215,7 @@ private Object resolveValueFromField(Field field, Object instance) { } } - private static class Builder implements io.helidon.common.Builder { + private static class Builder { private final InterfaceModel interfaceModel; private final Class beanClass; @@ -286,8 +286,12 @@ Builder processMatrixFields() { return this; } - @Override - public BeanClassModel build() { + /** + * Creates new BeanClassModel instance. + * + * @return new instance + */ + BeanClassModel build() { return new BeanClassModel(this); } } diff --git a/ext/mp-rest-client/src/main/java/org/glassfish/jersey/restclient/InterfaceModel.java b/ext/mp-rest-client/src/main/java/org/glassfish/jersey/restclient/InterfaceModel.java index 225d010255..5a0c615e91 100644 --- a/ext/mp-rest-client/src/main/java/org/glassfish/jersey/restclient/InterfaceModel.java +++ b/ext/mp-rest-client/src/main/java/org/glassfish/jersey/restclient/InterfaceModel.java @@ -220,7 +220,7 @@ Object resolveParamValue(Object arg, Type type, Annotation[] annotations) { return arg; } - private static class Builder implements io.helidon.common.Builder { + private static class Builder { private final Class restClientClass; @@ -321,8 +321,12 @@ Builder clientHeadersFactory(RegisterClientHeaders registerClientHeaders) { return this; } - @Override - public InterfaceModel build() { + /** + * Creates new InterfaceModel instance. + * + * @return new instance + */ + InterfaceModel build() { validateHeaderDuplicityNames(); return new InterfaceModel(this); } diff --git a/ext/mp-rest-client/src/main/java/org/glassfish/jersey/restclient/MethodModel.java b/ext/mp-rest-client/src/main/java/org/glassfish/jersey/restclient/MethodModel.java index 0a8da5feb7..cb9793496e 100644 --- a/ext/mp-rest-client/src/main/java/org/glassfish/jersey/restclient/MethodModel.java +++ b/ext/mp-rest-client/src/main/java/org/glassfish/jersey/restclient/MethodModel.java @@ -27,6 +27,7 @@ import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -66,8 +67,6 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.UriBuilder; -import io.helidon.common.CollectionsHelper; - import org.eclipse.microprofile.rest.client.RestClientDefinitionException; import org.eclipse.microprofile.rest.client.annotation.ClientHeaderParam; import org.eclipse.microprofile.rest.client.ext.ResponseExceptionMapper; @@ -407,7 +406,7 @@ private static List createList(Object value) { return Arrays.asList(array); } String s = (String) value; - return CollectionsHelper.listOf(s); + return Collections.singletonList(s); } /** @@ -468,7 +467,7 @@ private static List parameterModels(InterfaceModel classModel, Metho return parameterModels; } - private static class Builder implements io.helidon.common.Builder { + private static class Builder { private final InterfaceModel interfaceModel; private final Method method; @@ -609,11 +608,14 @@ Builder clientHeaders(ClientHeaderParam[] clientHeaderParams) { return this; } - @Override - public MethodModel build() { + /** + * Creates new MethodModel instance. + * + * @return new instance + */ + MethodModel build() { validateParameters(); validateHeaderDuplicityNames(); - //TODO uklidit Optional entity = parameterModels.stream() .filter(ParamModel::isEntity) .findFirst(); diff --git a/ext/mp-rest-client/src/main/java/org/glassfish/jersey/restclient/ParamModel.java b/ext/mp-rest-client/src/main/java/org/glassfish/jersey/restclient/ParamModel.java index cb0b589d6a..23b34a095f 100644 --- a/ext/mp-rest-client/src/main/java/org/glassfish/jersey/restclient/ParamModel.java +++ b/ext/mp-rest-client/src/main/java/org/glassfish/jersey/restclient/ParamModel.java @@ -120,7 +120,7 @@ boolean isEntity() { */ abstract boolean handles(Class annotation); - protected static class Builder implements io.helidon.common.Builder { + protected static class Builder { private InterfaceModel interfaceModel; private Type type; @@ -263,8 +263,12 @@ String formParamName() { return matrixParamName; } - @Override - public ParamModel build() { + /** + * Creates new ParamModel instance. + * + * @return new instance + */ + ParamModel build() { if (pathParamName != null) { return new PathParamModel(this); } else if (headerParamName != null) { diff --git a/ext/mp-rest-client/src/main/java/org/glassfish/jersey/restclient/RestClientBuilderImpl.java b/ext/mp-rest-client/src/main/java/org/glassfish/jersey/restclient/RestClientBuilderImpl.java index d1017aff20..877a20cf23 100644 --- a/ext/mp-rest-client/src/main/java/org/glassfish/jersey/restclient/RestClientBuilderImpl.java +++ b/ext/mp-rest-client/src/main/java/org/glassfish/jersey/restclient/RestClientBuilderImpl.java @@ -50,6 +50,7 @@ import org.eclipse.microprofile.rest.client.ext.ResponseExceptionMapper; import org.eclipse.microprofile.rest.client.spi.RestClientListener; import org.glassfish.jersey.client.JerseyClientBuilder; +import org.glassfish.jersey.server.model.Resource; /** * Rest client builder implementation. Creates proxy instance of requested interface. @@ -158,6 +159,9 @@ public T build(Class interfaceClass) throws IllegalStateException, RestCl responseExceptionMappers, paramConverterProviders, asyncInterceptorFactories); + + Resource resource = Resource.from(interfaceClass); + //AsyncInterceptors initialization List asyncInterceptors = asyncInterceptorFactories.stream() .map(AsyncInvocationInterceptorFactory::newInterceptor) @@ -249,7 +253,7 @@ public RestClientBuilder register(Class aClass, Map, Integer> map) { if (isSupportedCustomProvider(aClass)) { register(ReflectionUtil.createInstance(aClass), map); } else { - jerseyClientBuilder.register(aClass, new HashMap<>(map)); + jerseyClientBuilder.register(aClass, map); } return this; } @@ -294,7 +298,7 @@ public RestClientBuilder register(Object o, Map, Integer> map) { registerCustomProvider(o, map.get(ParamConverterProvider.class)); } } - jerseyClientBuilder.register(o, new HashMap<>(map)); + jerseyClientBuilder.register(o, map); return this; } diff --git a/ext/mp-rest-client/src/main/java/org/glassfish/jersey/restclient/RestClientModel.java b/ext/mp-rest-client/src/main/java/org/glassfish/jersey/restclient/RestClientModel.java index a5a44236c2..ff24d5e76b 100644 --- a/ext/mp-rest-client/src/main/java/org/glassfish/jersey/restclient/RestClientModel.java +++ b/ext/mp-rest-client/src/main/java/org/glassfish/jersey/restclient/RestClientModel.java @@ -57,7 +57,7 @@ static RestClientModel from(Class restClientClass, paramConverterProviders, interceptorFactories); return new Builder() - .classModel(interfaceModel) + .interfaceModel(interfaceModel) .methodModels(parseMethodModels(interfaceModel)) .build(); } @@ -94,7 +94,7 @@ private static Map parseMethodModels(InterfaceModel classMo return methodMap; } - private static class Builder implements io.helidon.common.Builder { + private static class Builder { private InterfaceModel classModel; private Map methodModels; @@ -108,7 +108,7 @@ private Builder() { * @param classModel {@link InterfaceModel} instance * @return Updated Builder instance */ - Builder classModel(InterfaceModel classModel) { + Builder interfaceModel(InterfaceModel classModel) { this.classModel = classModel; return this; } @@ -124,7 +124,11 @@ Builder methodModels(Map methodModels) { return this; } - @Override + /** + * Creates new RestClientModel instance. + * + * @return new instance + */ public RestClientModel build() { return new RestClientModel(this); } diff --git a/ext/mp-rest-client/src/main/java/org/glassfish/jersey/restclient/RestClientProducer.java b/ext/mp-rest-client/src/main/java/org/glassfish/jersey/restclient/RestClientProducer.java index 0fc70ae545..54e1ddc9ff 100644 --- a/ext/mp-rest-client/src/main/java/org/glassfish/jersey/restclient/RestClientProducer.java +++ b/ext/mp-rest-client/src/main/java/org/glassfish/jersey/restclient/RestClientProducer.java @@ -21,7 +21,10 @@ import java.net.MalformedURLException; import java.net.URL; import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; import java.util.List; +import java.util.Optional; import java.util.Set; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -35,9 +38,6 @@ import javax.enterprise.inject.spi.InjectionPoint; import javax.enterprise.inject.spi.PassivationCapable; -import io.helidon.common.CollectionsHelper; -import io.helidon.common.OptionalHelper; - import org.eclipse.microprofile.config.Config; import org.eclipse.microprofile.config.ConfigProvider; import org.eclipse.microprofile.rest.client.RestClientBuilder; @@ -70,9 +70,9 @@ class RestClientProducer implements Bean, PassivationCapable { /** * Creates new instance of RestClientProducer. * - * @param qualifier qualifier which defines rest client interface + * @param qualifier qualifier which defines rest client interface * @param interfaceType rest client interface - * @param beanManager bean manager + * @param beanManager bean manager */ RestClientProducer(RestClientExtension.MpRestClientQualifier qualifier, Class interfaceType, @@ -86,16 +86,16 @@ class RestClientProducer implements Bean, PassivationCapable { } private String getBaseUrl(Class interfaceType) { - return OptionalHelper.from(config.getOptionalValue(interfaceType.getName() + CONFIG_URI, String.class)) - .or(() -> config.getOptionalValue(interfaceType.getName() + CONFIG_URL, String.class)) - .asOptional() - .orElseGet(() -> { + Optional uri = config.getOptionalValue(interfaceType.getName() + CONFIG_URI, String.class); + return uri.orElse(config.getOptionalValue(interfaceType.getName() + CONFIG_URL, String.class).orElseGet( + () -> { RegisterRestClient registerRestClient = interfaceType.getAnnotation(RegisterRestClient.class); if (registerRestClient != null) { return registerRestClient.baseUri(); } throw new DeploymentException("This interface has to be annotated with @RegisterRestClient annotation."); - }); + } + )); } @Override @@ -105,7 +105,7 @@ public Class getBeanClass() { @Override public Set getInjectionPoints() { - return CollectionsHelper.setOf(); + return Collections.emptySet(); } @Override @@ -133,15 +133,18 @@ public void destroy(Object instance, CreationalContext creationalContext @Override public Set getTypes() { - return CollectionsHelper.setOf(interfaceType); + return Collections.singleton(interfaceType); } @Override public Set getQualifiers() { if (qualifier == null) { - return CollectionsHelper.setOf(Default.Literal.INSTANCE); + return Collections.singleton(Default.Literal.INSTANCE); } - return CollectionsHelper.setOf(qualifier, RestClient.LITERAL); + Set annotations = new HashSet<>(); + annotations.add(qualifier); + annotations.add(RestClient.LITERAL); + return annotations; } @Override @@ -159,7 +162,7 @@ public String getName() { @Override public Set> getStereotypes() { - return CollectionsHelper.setOf(); + return Collections.emptySet(); } @Override