You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by lb...@apache.org on 2019/10/05 10:05:14 UTC
[camel-quarkus] 05/06: inline BeanManagerHelper in
RuntimeBeanRepository #9
This is an automated email from the ASF dual-hosted git repository.
lburgazzoli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
commit c23864cbcedafe8ad7260de65e65ef0fa07d01aa
Author: lburgazzoli <lb...@gmail.com>
AuthorDate: Sat Oct 5 09:16:50 2019 +0200
inline BeanManagerHelper in RuntimeBeanRepository #9
---
.../camel/quarkus/core/BeanManagerHelper.java | 95 ----------------------
.../camel/quarkus/core/RuntimeBeanRepository.java | 62 +++++++++++++-
2 files changed, 59 insertions(+), 98 deletions(-)
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/BeanManagerHelper.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/BeanManagerHelper.java
deleted file mode 100644
index 89d87e8..0000000
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/BeanManagerHelper.java
+++ /dev/null
@@ -1,95 +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.camel.quarkus.core;
-
-import java.lang.annotation.Annotation;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Optional;
-import java.util.Set;
-import javax.enterprise.inject.Vetoed;
-import javax.enterprise.inject.spi.Bean;
-import javax.enterprise.inject.spi.BeanManager;
-
-import io.quarkus.arc.Arc;
-import io.quarkus.arc.ArcContainer;
-
-/**
- * Helper methods to retrieve beans from the {@link Arc} container.
- */
-@Vetoed
-final class BeanManagerHelper {
-
- private BeanManagerHelper() {
- }
-
- static <T> Set<T> getReferencesByType(Class<T> type, Annotation... qualifiers) {
- final ArcContainer container = Arc.container();
- final BeanManager manager = container.beanManager();
-
- return getReferencesByType(manager, type, qualifiers);
- }
-
- static <T> Optional<T> getReferenceByName(String name, Class<T> type) {
- final ArcContainer container = Arc.container();
- final BeanManager manager = container.beanManager();
-
- return getReferenceByName(manager, name, type);
- }
-
- static <T> Map<String, T> getReferencesByTypeWithName(Class<T> type, Annotation... qualifiers) {
- final ArcContainer container = Arc.container();
- final BeanManager manager = container.beanManager();
-
- return getReferencesByTypeWithName(manager, type, qualifiers);
- }
-
- static <T> Set<T> getReferencesByType(BeanManager manager, Class<T> type, Annotation... qualifiers) {
- Set<T> answer = new HashSet<>();
-
- for (Bean<?> bean: manager.getBeans(type, qualifiers)) {
- T ref = getReference(manager, type, bean);
- if (ref != null) {
- answer.add(ref);
- }
- }
-
- return answer;
- }
-
- static <T> Optional<T> getReferenceByName(BeanManager manager, String name, Class<T> type) {
- return Optional.ofNullable(manager.resolve(manager.getBeans(name))).map(bean -> getReference(manager, type, bean));
- }
-
- static <T> T getReference(BeanManager manager, Class<T> type, Bean<?> bean) {
- return type.cast(manager.getReference(bean, type, manager.createCreationalContext(bean)));
- }
-
- static <T> Map<String, T> getReferencesByTypeWithName(BeanManager manager, Class<T> type, Annotation... qualifiers) {
- Map<String, T> answer = new HashMap<>();
-
- for (Bean<?> bean: manager.getBeans(type, qualifiers)) {
- T ref = getReference(manager, type, bean);
- if (ref != null) {
- answer.put(bean.getName(), ref);
- }
- }
-
- return answer;
- }
-}
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/RuntimeBeanRepository.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/RuntimeBeanRepository.java
index 61d5e80..d7dc274 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/RuntimeBeanRepository.java
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/RuntimeBeanRepository.java
@@ -16,9 +16,18 @@
*/
package org.apache.camel.quarkus.core;
+import java.lang.annotation.Annotation;
+import java.util.HashMap;
+import java.util.HashSet;
import java.util.Map;
+import java.util.Optional;
import java.util.Set;
+import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.BeanManager;
+
+import io.quarkus.arc.Arc;
+import io.quarkus.arc.ArcContainer;
import org.apache.camel.spi.BeanRepository;
public final class RuntimeBeanRepository implements BeanRepository {
@@ -29,16 +38,63 @@ public final class RuntimeBeanRepository implements BeanRepository {
@Override
public <T> T lookupByNameAndType(String name, Class<T> type) {
- return BeanManagerHelper.getReferenceByName(name, type).orElse(null);
+ final ArcContainer container = Arc.container();
+ final BeanManager manager = container.beanManager();
+
+ return getReferenceByName(manager, name, type).orElse(null);
}
@Override
public <T> Map<String, T> findByTypeWithName(Class<T> type) {
- return BeanManagerHelper.getReferencesByTypeWithName(type);
+ return getReferencesByTypeWithName(type);
}
@Override
public <T> Set<T> findByType(Class<T> type) {
- return BeanManagerHelper.getReferencesByType(type);
+ final ArcContainer container = Arc.container();
+ final BeanManager manager = container.beanManager();
+
+ return getReferencesByType(manager, type);
+ }
+
+ private static <T> Map<String, T> getReferencesByTypeWithName(Class<T> type, Annotation... qualifiers) {
+ final ArcContainer container = Arc.container();
+ final BeanManager manager = container.beanManager();
+
+ return getReferencesByTypeWithName(manager, type, qualifiers);
+ }
+
+ private static <T> Set<T> getReferencesByType(BeanManager manager, Class<T> type, Annotation... qualifiers) {
+ Set<T> answer = new HashSet<>();
+
+ for (Bean<?> bean: manager.getBeans(type, qualifiers)) {
+ T ref = getReference(manager, type, bean);
+ if (ref != null) {
+ answer.add(ref);
+ }
+ }
+
+ return answer;
+ }
+
+ private static <T> Optional<T> getReferenceByName(BeanManager manager, String name, Class<T> type) {
+ return Optional.ofNullable(manager.resolve(manager.getBeans(name))).map(bean -> getReference(manager, type, bean));
+ }
+
+ private static <T> T getReference(BeanManager manager, Class<T> type, Bean<?> bean) {
+ return type.cast(manager.getReference(bean, type, manager.createCreationalContext(bean)));
+ }
+
+ private static <T> Map<String, T> getReferencesByTypeWithName(BeanManager manager, Class<T> type, Annotation... qualifiers) {
+ Map<String, T> answer = new HashMap<>();
+
+ for (Bean<?> bean: manager.getBeans(type, qualifiers)) {
+ T ref = getReference(manager, type, bean);
+ if (ref != null) {
+ answer.put(bean.getName(), ref);
+ }
+ }
+
+ return answer;
}
}