This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openwebbeans-meecrowave.git
The following commit(s) were added to refs/heads/master by this push: new 72425a1 merge 72425a1 is described below commit 72425a161789c4b46f49c62082aa7b2c93c0e469 Author: Romain Manni-Bucau <rmannibu...@gmail.com> AuthorDate: Sat Jun 5 18:03:47 2021 +0200 merge --- .../main/java/org/apache/meecrowave/cxf/Cxfs.java | 57 ---------------------- .../openwebbeans/MeecrowaveLoaderService.java | 53 -------------------- .../META-INF/openwebbeans/openwebbeans.properties | 1 - pom.xml | 4 +- 4 files changed, 2 insertions(+), 113 deletions(-) diff --git a/meecrowave-core/src/main/java/org/apache/meecrowave/cxf/Cxfs.java b/meecrowave-core/src/main/java/org/apache/meecrowave/cxf/Cxfs.java index f944acb..73db8b8 100644 --- a/meecrowave-core/src/main/java/org/apache/meecrowave/cxf/Cxfs.java +++ b/meecrowave-core/src/main/java/org/apache/meecrowave/cxf/Cxfs.java @@ -18,15 +18,6 @@ */ package org.apache.meecrowave.cxf; -import java.lang.reflect.Field; -import java.util.List; - -import javax.enterprise.event.Observes; -import javax.enterprise.inject.spi.AnnotatedType; -import javax.enterprise.inject.spi.Extension; -import javax.enterprise.inject.spi.ProcessBean; -import javax.ws.rs.Path; - public class Cxfs { public static final boolean IS_PRESENT; @@ -54,52 +45,4 @@ public class Cxfs { org.apache.cxf.BusFactory.setDefaultBus(null); } } - - public static Extension mapCdiExtensionIfNeeded(final Extension extension) { - if ("org.apache.cxf.cdi.JAXRSCdiResourceExtension".equals(extension.getClass().getName())) { - final Field serviceBeans; - try { - serviceBeans = org.apache.cxf.cdi.JAXRSCdiResourceExtension.class - .getDeclaredField("serviceBeans"); - } catch (final NoSuchFieldException e) { - new org.apache.meecrowave.logging.tomcat.LogFacade(Cxfs.class.getName()).warn(e.getMessage(), e); - return extension; - } - if (!serviceBeans.isAccessible()) { - serviceBeans.setAccessible(true); - } - return new ContractFriendlyJAXRSCdiResourceExtension(serviceBeans); - } - return extension; - } - - // to drop when we will have a cxf version with https://issues.apache.org/jira/browse/CXF-7921 - private static class ContractFriendlyJAXRSCdiResourceExtension extends org.apache.cxf.cdi.JAXRSCdiResourceExtension { - private final Field serviceBeans; - - private ContractFriendlyJAXRSCdiResourceExtension(final Field serviceBeans) { - this.serviceBeans = serviceBeans; - } - - @Override - public <T> void collect(@Observes final ProcessBean<T> event) { - if (!event.getAnnotated().isAnnotationPresent(Path.class) && AnnotatedType.class.isInstance(event.getAnnotated())) { - final AnnotatedType<?> type = AnnotatedType.class.cast(event.getAnnotated()); - // note: should we use Annotated for interfaces as well? - if (type.getTypeClosure().stream() - .filter(it -> Class.class.isInstance(it) && Class.class.cast(it).isInterface()) - .map(Class.class::cast) - .anyMatch(c -> c.isAnnotationPresent(Path.class))) { - try { - List.class.cast(serviceBeans.get(this)).add(event.getBean()); - return; - } catch (final IllegalAccessException e) { - new org.apache.meecrowave.logging.tomcat.LogFacade(Cxfs.class.getName()) - .error(e.getMessage(), e); - } - } - } - super.collect(event); - } - } } diff --git a/meecrowave-core/src/main/java/org/apache/meecrowave/openwebbeans/MeecrowaveLoaderService.java b/meecrowave-core/src/main/java/org/apache/meecrowave/openwebbeans/MeecrowaveLoaderService.java deleted file mode 100644 index e850787..0000000 --- a/meecrowave-core/src/main/java/org/apache/meecrowave/openwebbeans/MeecrowaveLoaderService.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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 - * - * http://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 org.apache.meecrowave.openwebbeans; - -import static java.util.stream.Collectors.toList; - -import java.util.List; -import java.util.ServiceLoader; -import java.util.stream.Stream; -import java.util.stream.StreamSupport; - -import javax.enterprise.inject.spi.Extension; - -import org.apache.meecrowave.cxf.Cxfs; -import org.apache.webbeans.spi.LoaderService; - -public class MeecrowaveLoaderService implements LoaderService { - @Override - public <T> List<T> load(final Class<T> serviceType) { - return load(serviceType, Thread.currentThread().getContextClassLoader()); - } - - @Override - public <T> List<T> load(final Class<T> serviceType, final ClassLoader classLoader) { - if (Extension.class == serviceType) { - return doLoad(serviceType, classLoader) - .map(e -> serviceType.cast(Cxfs.mapCdiExtensionIfNeeded(Extension.class.cast(e)))) - .collect(toList()); - } - return doLoad(serviceType, classLoader) - .collect(toList()); - } - - private <T> Stream<T> doLoad(final Class<T> serviceType, final ClassLoader classLoader) { - return StreamSupport.stream(ServiceLoader.load(serviceType, classLoader).spliterator(), false); - } -} diff --git a/meecrowave-core/src/main/resources/META-INF/openwebbeans/openwebbeans.properties b/meecrowave-core/src/main/resources/META-INF/openwebbeans/openwebbeans.properties index d60fb98..d66f9fa 100644 --- a/meecrowave-core/src/main/resources/META-INF/openwebbeans/openwebbeans.properties +++ b/meecrowave-core/src/main/resources/META-INF/openwebbeans/openwebbeans.properties @@ -18,4 +18,3 @@ configuration.ordinal=1000 org.apache.xbean.finder.filter.Filter=org.apache.meecrowave.openwebbeans.KnownClassesFilter org.apache.webbeans.spi.ScannerService=org.apache.meecrowave.openwebbeans.OWBTomcatWebScannerService org.apache.webbeans.spi.SecurityService=org.apache.meecrowave.openwebbeans.MeecrowaveSecurityService -org.apache.webbeans.spi.LoaderService=org.apache.meecrowave.openwebbeans.MeecrowaveLoaderService diff --git a/pom.xml b/pom.xml index 6d329d1..f09db27 100644 --- a/pom.xml +++ b/pom.xml @@ -52,8 +52,8 @@ <junit.version>4.13.1</junit.version> <tomcat.version>9.0.46</tomcat.version> - <openwebbeans.version>2.0.22</openwebbeans.version> - <cxf.version>3.4.3</cxf.version> + <openwebbeans.version>2.0.23</openwebbeans.version> + <cxf.version>3.4.4</cxf.version> <johnzon.version>1.2.12</johnzon.version> <log4j2.version>2.14.1</log4j2.version> <deltaspike.version>1.8.2</deltaspike.version>