This is an automated email from the ASF dual-hosted git repository. alien11689 pushed a commit to branch ARIES-2172-support-jakarta-inject-in-blueprint-maven-plugin in repository https://gitbox.apache.org/repos/asf/aries.git
commit 9d784ffc3f15ca2f2f305cd7afa3d97e474994fa Author: Dominik Przybysz <[email protected]> AuthorDate: Sat Mar 8 07:47:17 2025 +0100 ARIES-2172: Support jakarta.inject in blueprint-maven-plugin --- .../blueprint-maven-plugin/pom.xml | 6 ++ .../handlers/{javax => jakarta}/InjectHandler.java | 11 +-- .../{javax => jakarta}/NamedBeanFinder.java | 10 +- .../handlers/{javax => jakarta}/NamedHandler.java | 18 ++-- .../{javax => jakarta}/QualifierHandler.java | 11 +-- .../{javax => jakarta}/SingletonBeanFinder.java | 8 +- .../plugin/handlers/javax/InjectHandler.java | 10 +- .../plugin/handlers/javax/NamedBeanFinder.java | 10 +- .../plugin/handlers/javax/NamedHandler.java | 14 +-- .../plugin/handlers/javax/ProducesHandler.java | 10 +- .../plugin/handlers/javax/QualifierHandler.java | 10 +- .../plugin/handlers/javax/SingletonBeanFinder.java | 10 +- ...rg.apache.aries.blueprint.plugin.spi.BeanFinder | 6 +- ...he.aries.blueprint.plugin.spi.InjectLikeHandler | 3 +- ...che.aries.blueprint.plugin.spi.NamedLikeHandler | 1 + ....blueprint.plugin.spi.QualifingAnnotationFinder | 3 +- .../blueprint/plugin/BlueprintFileWriterTest.java | 101 +++++++++++++++------ .../NamedJakartaBean.java} | 11 +-- .../SimpleJakartaBean.java} | 11 +-- .../SimpleJakartaBeanUsage.java} | 37 +++++--- .../SimpleJakartaBeanUsageViaField.java} | 18 ++-- .../UnnamedJakartaBean.java} | 11 +-- .../test/qualifiers/{TestConsumer.java => A3.java} | 12 +-- .../plugin/test/qualifiers/MyFactory.java | 7 ++ .../plugin/test/qualifiers/TestConsumer.java | 2 +- 25 files changed, 208 insertions(+), 143 deletions(-) diff --git a/blueprint-maven-plugin/blueprint-maven-plugin/pom.xml b/blueprint-maven-plugin/blueprint-maven-plugin/pom.xml index ad0350219..a92d87b61 100644 --- a/blueprint-maven-plugin/blueprint-maven-plugin/pom.xml +++ b/blueprint-maven-plugin/blueprint-maven-plugin/pom.xml @@ -42,6 +42,7 @@ <blueprint-maven-plugin-pax-cdi-handlers.version>1.0.0</blueprint-maven-plugin-pax-cdi-handlers.version> <blueprint-maven-plugin-spi.version>1.1.0</blueprint-maven-plugin-spi.version> <blueprint-maven-plugin-spring-handlers.version>1.0.0</blueprint-maven-plugin-spring-handlers.version> + <jakarta.inject.version>2.0.1</jakarta.inject.version> <javax.enterprise.cdi-api.version>2.0.SP1</javax.enterprise.cdi-api.version> <javax.annotation-api.version>1.3.2</javax.annotation-api.version> <javax.inject.version>1</javax.inject.version> @@ -139,6 +140,11 @@ <artifactId>javax.inject</artifactId> <version>${javax.inject.version}</version> </dependency> + <dependency> + <groupId>jakarta.inject</groupId> + <artifactId>jakarta.inject-api</artifactId> + <version>${jakarta.inject.version}</version> + </dependency> <dependency> <groupId>javax.transaction</groupId> <artifactId>javax.transaction-api</artifactId> diff --git a/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/InjectHandler.java b/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/jakarta/InjectHandler.java similarity index 86% copy from blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/InjectHandler.java copy to blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/jakarta/InjectHandler.java index af32f42e7..12ca3546f 100644 --- a/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/InjectHandler.java +++ b/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/jakarta/InjectHandler.java @@ -6,9 +6,9 @@ * 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 - * + * <p> + * http://www.apache.org/licenses/LICENSE-2.0 + * <p> * 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 @@ -16,12 +16,11 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.aries.blueprint.plugin.handlers.javax; +package org.apache.aries.blueprint.plugin.handlers.jakarta; +import jakarta.inject.Inject; import org.apache.aries.blueprint.plugin.spi.InjectLikeHandler; -import javax.inject.Inject; - public class InjectHandler implements InjectLikeHandler<Inject> { @Override public Class<Inject> getAnnotation() { diff --git a/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/NamedBeanFinder.java b/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/jakarta/NamedBeanFinder.java similarity index 87% copy from blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/NamedBeanFinder.java copy to blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/jakarta/NamedBeanFinder.java index 350690cf5..9a46722ad 100644 --- a/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/NamedBeanFinder.java +++ b/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/jakarta/NamedBeanFinder.java @@ -6,9 +6,9 @@ * 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 - * + * <p> + * http://www.apache.org/licenses/LICENSE-2.0 + * <p> * 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 @@ -16,9 +16,9 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.aries.blueprint.plugin.handlers.javax; +package org.apache.aries.blueprint.plugin.handlers.jakarta; -import javax.inject.Named; +import jakarta.inject.Named; public class NamedBeanFinder implements org.apache.aries.blueprint.plugin.spi.BeanFinder<Named> { @Override diff --git a/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/NamedHandler.java b/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/jakarta/NamedHandler.java similarity index 85% copy from blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/NamedHandler.java copy to blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/jakarta/NamedHandler.java index 9bfcfd44a..7e66a63c3 100644 --- a/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/NamedHandler.java +++ b/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/jakarta/NamedHandler.java @@ -6,9 +6,9 @@ * 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 - * + * <p> + * http://www.apache.org/licenses/LICENSE-2.0 + * <p> * 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 @@ -16,16 +16,16 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.aries.blueprint.plugin.handlers.javax; +package org.apache.aries.blueprint.plugin.handlers.jakarta; -import org.apache.aries.blueprint.plugin.spi.NamedLikeHandler; - -import javax.inject.Named; import java.lang.reflect.AnnotatedElement; -public class NamedHandler implements NamedLikeHandler { +import jakarta.inject.Named; +import org.apache.aries.blueprint.plugin.spi.NamedLikeHandler; + +public class NamedHandler implements NamedLikeHandler<Named> { @Override - public Class getAnnotation() { + public Class<Named> getAnnotation() { return Named.class; } diff --git a/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/QualifierHandler.java b/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/jakarta/QualifierHandler.java similarity index 86% copy from blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/QualifierHandler.java copy to blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/jakarta/QualifierHandler.java index 14bb3d2bf..c59eca4e0 100644 --- a/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/QualifierHandler.java +++ b/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/jakarta/QualifierHandler.java @@ -6,9 +6,9 @@ * 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 - * + * <p> + * http://www.apache.org/licenses/LICENSE-2.0 + * <p> * 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 @@ -16,12 +16,11 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.aries.blueprint.plugin.handlers.javax; +package org.apache.aries.blueprint.plugin.handlers.jakarta; +import jakarta.inject.Qualifier; import org.apache.aries.blueprint.plugin.spi.QualifingAnnotationFinder; -import javax.inject.Qualifier; - public class QualifierHandler implements QualifingAnnotationFinder<Qualifier> { @Override public Class<Qualifier> getAnnotation() { diff --git a/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/SingletonBeanFinder.java b/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/jakarta/SingletonBeanFinder.java similarity index 81% copy from blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/SingletonBeanFinder.java copy to blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/jakarta/SingletonBeanFinder.java index eb078bc80..c908dab7d 100644 --- a/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/SingletonBeanFinder.java +++ b/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/jakarta/SingletonBeanFinder.java @@ -16,11 +16,13 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.aries.blueprint.plugin.handlers.javax; +package org.apache.aries.blueprint.plugin.handlers.jakarta; -import javax.inject.Singleton; +import org.apache.aries.blueprint.plugin.spi.BeanFinder; -public class SingletonBeanFinder implements org.apache.aries.blueprint.plugin.spi.BeanFinder<Singleton> { +import jakarta.inject.Singleton; + +public class SingletonBeanFinder implements BeanFinder<Singleton> { @Override public Class<Singleton> getAnnotation() { return Singleton.class; diff --git a/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/InjectHandler.java b/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/InjectHandler.java index af32f42e7..776f88287 100644 --- a/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/InjectHandler.java +++ b/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/InjectHandler.java @@ -6,9 +6,9 @@ * 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 - * + * <p> + * http://www.apache.org/licenses/LICENSE-2.0 + * <p> * 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 @@ -18,10 +18,10 @@ */ package org.apache.aries.blueprint.plugin.handlers.javax; -import org.apache.aries.blueprint.plugin.spi.InjectLikeHandler; - import javax.inject.Inject; +import org.apache.aries.blueprint.plugin.spi.InjectLikeHandler; + public class InjectHandler implements InjectLikeHandler<Inject> { @Override public Class<Inject> getAnnotation() { diff --git a/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/NamedBeanFinder.java b/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/NamedBeanFinder.java index 350690cf5..f2e9d613b 100644 --- a/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/NamedBeanFinder.java +++ b/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/NamedBeanFinder.java @@ -6,9 +6,9 @@ * 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 - * + * <p> + * http://www.apache.org/licenses/LICENSE-2.0 + * <p> * 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 @@ -20,7 +20,9 @@ package org.apache.aries.blueprint.plugin.handlers.javax; import javax.inject.Named; -public class NamedBeanFinder implements org.apache.aries.blueprint.plugin.spi.BeanFinder<Named> { +import org.apache.aries.blueprint.plugin.spi.BeanFinder; + +public class NamedBeanFinder implements BeanFinder<Named> { @Override public Class<Named> getAnnotation() { return Named.class; diff --git a/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/NamedHandler.java b/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/NamedHandler.java index 9bfcfd44a..534061be1 100644 --- a/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/NamedHandler.java +++ b/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/NamedHandler.java @@ -6,9 +6,9 @@ * 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 - * + * <p> + * http://www.apache.org/licenses/LICENSE-2.0 + * <p> * 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 @@ -18,14 +18,14 @@ */ package org.apache.aries.blueprint.plugin.handlers.javax; -import org.apache.aries.blueprint.plugin.spi.NamedLikeHandler; - import javax.inject.Named; import java.lang.reflect.AnnotatedElement; -public class NamedHandler implements NamedLikeHandler { +import org.apache.aries.blueprint.plugin.spi.NamedLikeHandler; + +public class NamedHandler implements NamedLikeHandler<Named> { @Override - public Class getAnnotation() { + public Class<Named> getAnnotation() { return Named.class; } diff --git a/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/ProducesHandler.java b/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/ProducesHandler.java index 9ac888018..bf4a40b0c 100644 --- a/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/ProducesHandler.java +++ b/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/ProducesHandler.java @@ -6,9 +6,9 @@ * 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 - * + * <p> + * http://www.apache.org/licenses/LICENSE-2.0 + * <p> * 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 @@ -18,10 +18,10 @@ */ package org.apache.aries.blueprint.plugin.handlers.javax; -import org.apache.aries.blueprint.plugin.spi.FactoryMethodFinder; - import javax.enterprise.inject.Produces; +import org.apache.aries.blueprint.plugin.spi.FactoryMethodFinder; + public class ProducesHandler implements FactoryMethodFinder<Produces> { @Override public Class<Produces> getAnnotation() { diff --git a/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/QualifierHandler.java b/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/QualifierHandler.java index 14bb3d2bf..9ddbc8a44 100644 --- a/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/QualifierHandler.java +++ b/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/QualifierHandler.java @@ -6,9 +6,9 @@ * 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 - * + * <p> + * http://www.apache.org/licenses/LICENSE-2.0 + * <p> * 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 @@ -18,10 +18,10 @@ */ package org.apache.aries.blueprint.plugin.handlers.javax; -import org.apache.aries.blueprint.plugin.spi.QualifingAnnotationFinder; - import javax.inject.Qualifier; +import org.apache.aries.blueprint.plugin.spi.QualifingAnnotationFinder; + public class QualifierHandler implements QualifingAnnotationFinder<Qualifier> { @Override public Class<Qualifier> getAnnotation() { diff --git a/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/SingletonBeanFinder.java b/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/SingletonBeanFinder.java index eb078bc80..a3720a9ac 100644 --- a/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/SingletonBeanFinder.java +++ b/blueprint-maven-plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/handlers/javax/SingletonBeanFinder.java @@ -6,9 +6,9 @@ * 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 - * + * <p> + * http://www.apache.org/licenses/LICENSE-2.0 + * <p> * 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 @@ -20,7 +20,9 @@ package org.apache.aries.blueprint.plugin.handlers.javax; import javax.inject.Singleton; -public class SingletonBeanFinder implements org.apache.aries.blueprint.plugin.spi.BeanFinder<Singleton> { +import org.apache.aries.blueprint.plugin.spi.BeanFinder; + +public class SingletonBeanFinder implements BeanFinder<Singleton> { @Override public Class<Singleton> getAnnotation() { return Singleton.class; diff --git a/blueprint-maven-plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.BeanFinder b/blueprint-maven-plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.BeanFinder index d3c355137..e6514cae2 100644 --- a/blueprint-maven-plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.BeanFinder +++ b/blueprint-maven-plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.BeanFinder @@ -15,6 +15,8 @@ # limitations under the License. # -org.apache.aries.blueprint.plugin.handlers.javax.SingletonBeanFinder +org.apache.aries.blueprint.plugin.handlers.blueprint.bean.BeanHandler +org.apache.aries.blueprint.plugin.handlers.jakarta.NamedBeanFinder +org.apache.aries.blueprint.plugin.handlers.jakarta.SingletonBeanFinder org.apache.aries.blueprint.plugin.handlers.javax.NamedBeanFinder -org.apache.aries.blueprint.plugin.handlers.blueprint.bean.BeanHandler \ No newline at end of file +org.apache.aries.blueprint.plugin.handlers.javax.SingletonBeanFinder diff --git a/blueprint-maven-plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.InjectLikeHandler b/blueprint-maven-plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.InjectLikeHandler index 8fef1e702..b286a7f5e 100644 --- a/blueprint-maven-plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.InjectLikeHandler +++ b/blueprint-maven-plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.InjectLikeHandler @@ -15,4 +15,5 @@ # limitations under the License. # -org.apache.aries.blueprint.plugin.handlers.javax.InjectHandler \ No newline at end of file +org.apache.aries.blueprint.plugin.handlers.jakarta.InjectHandler +org.apache.aries.blueprint.plugin.handlers.javax.InjectHandler diff --git a/blueprint-maven-plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.NamedLikeHandler b/blueprint-maven-plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.NamedLikeHandler index 9bcd56a20..06e486c99 100644 --- a/blueprint-maven-plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.NamedLikeHandler +++ b/blueprint-maven-plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.NamedLikeHandler @@ -15,5 +15,6 @@ # limitations under the License. # +org.apache.aries.blueprint.plugin.handlers.jakarta.NamedHandler org.apache.aries.blueprint.plugin.handlers.javax.NamedHandler org.apache.aries.blueprint.plugin.handlers.blueprint.bean.BeanHandler \ No newline at end of file diff --git a/blueprint-maven-plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.QualifingAnnotationFinder b/blueprint-maven-plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.QualifingAnnotationFinder index 15f6164ee..63bbf96e0 100644 --- a/blueprint-maven-plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.QualifingAnnotationFinder +++ b/blueprint-maven-plugin/blueprint-maven-plugin/src/main/resources/META-INF/services/org.apache.aries.blueprint.plugin.spi.QualifingAnnotationFinder @@ -15,4 +15,5 @@ # limitations under the License. # -org.apache.aries.blueprint.plugin.handlers.javax.QualifierHandler \ No newline at end of file +org.apache.aries.blueprint.plugin.handlers.jakarta.QualifierHandler +org.apache.aries.blueprint.plugin.handlers.javax.QualifierHandler diff --git a/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/BlueprintFileWriterTest.java b/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/BlueprintFileWriterTest.java index ba732df0e..8beef909c 100644 --- a/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/BlueprintFileWriterTest.java +++ b/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/BlueprintFileWriterTest.java @@ -18,19 +18,53 @@ */ package org.apache.aries.blueprint.plugin; +import javax.xml.XMLConstants; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.Source; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamSource; +import javax.xml.validation.Schema; +import javax.xml.validation.SchemaFactory; +import javax.xml.validation.Validator; +import javax.xml.xpath.XPath; +import javax.xml.xpath.XPathConstants; +import javax.xml.xpath.XPathExpressionException; +import javax.xml.xpath.XPathFactory; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import static org.apache.aries.blueprint.plugin.FilteredClassFinder.findClasses; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + import com.google.common.collect.Sets; +import org.apache.aries.blueprint.plugin.jakarta.NamedJakartaBean; +import org.apache.aries.blueprint.plugin.jakarta.SimpleJakartaBean; +import org.apache.aries.blueprint.plugin.jakarta.SimpleJakartaBeanUsage; +import org.apache.aries.blueprint.plugin.jakarta.SimpleJakartaBeanUsageViaField; +import org.apache.aries.blueprint.plugin.jakarta.UnnamedJakartaBean; import org.apache.aries.blueprint.plugin.model.Blueprint; import org.apache.aries.blueprint.plugin.model.TransactionalDef; import org.apache.aries.blueprint.plugin.test.MyBean1; import org.apache.aries.blueprint.plugin.test.MyBean5; import org.apache.aries.blueprint.plugin.test.MyProduced; -import org.apache.aries.blueprint.plugin.test.interfaces.ServiceA; -import org.apache.aries.blueprint.plugin.test.interfaces.ServiceB; -import org.apache.aries.blueprint.plugin.test.interfaces.ServiceD; import org.apache.aries.blueprint.plugin.test.bean.BasicBean; import org.apache.aries.blueprint.plugin.test.bean.BeanWithCallbackMethods; import org.apache.aries.blueprint.plugin.test.bean.NamedBean; import org.apache.aries.blueprint.plugin.test.bean.SimpleProducedBean; +import org.apache.aries.blueprint.plugin.test.interfaces.ServiceA; +import org.apache.aries.blueprint.plugin.test.interfaces.ServiceB; +import org.apache.aries.blueprint.plugin.test.interfaces.ServiceD; import org.apache.aries.blueprint.plugin.test.reference.BeanWithReferences; import org.apache.aries.blueprint.plugin.test.reference.Ref1; import org.apache.aries.blueprint.plugin.test.reference.Ref2; @@ -48,31 +82,6 @@ import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; -import javax.xml.XMLConstants; -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.transform.Source; -import javax.xml.transform.dom.DOMSource; -import javax.xml.transform.stream.StreamSource; -import javax.xml.validation.Schema; -import javax.xml.validation.SchemaFactory; -import javax.xml.validation.Validator; -import javax.xml.xpath.XPath; -import javax.xml.xpath.XPathConstants; -import javax.xml.xpath.XPathExpressionException; -import javax.xml.xpath.XPathFactory; -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.*; -import java.util.stream.Stream; -import java.util.stream.StreamSupport; - -import static org.apache.aries.blueprint.plugin.FilteredClassFinder.findClasses; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - public class BlueprintFileWriterTest { private static final String NS_JPA = "http://aries.apache.org/xmlns/jpa/v1.1.0"; @@ -89,7 +98,8 @@ public class BlueprintFileWriterTest { Set<Class<?>> beanClasses = findClasses(classFinder, Arrays.asList( MyBean1.class.getPackage().getName(), ReferenceListenerToProduceWithoutAnnotation.class.getPackage().getName(), - BeanWithReferences.class.getPackage().getName() + BeanWithReferences.class.getPackage().getName(), + SimpleJakartaBean.class.getPackage().getName() )); Set<String> namespaces = new HashSet<>(Arrays.asList(NS_JPA, NS_TX1)); Map<String, String> customParameters = new HashMap<>(); @@ -110,7 +120,7 @@ public class BlueprintFileWriterTest { } @Test - public void testGenerateBeanWithInitDestroyAndfieldInjection() throws Exception { + public void testGenerateBeanWithInitDestroyAndFieldInjection() throws Exception { Node bean1 = getBeanById("myBean1"); assertXpathEquals(bean1, "@class", MyBean1.class.getName()); @@ -798,9 +808,13 @@ public class BlueprintFileWriterTest { Node bean2 = getBeanById("testBean2"); assertXpathEquals(bean2, "@factory-method", "create2"); + Node bean3 = getBeanById("testBean3"); + assertXpathEquals(bean3, "@factory-method", "create3"); + Node consumer = getBeanById("testConsumer"); assertXpathEquals(consumer, "argument[1]/@ref", "testBean1"); assertXpathEquals(consumer, "argument[2]/@ref", "testBean2"); + assertXpathEquals(consumer, "argument[3]/@ref", "testBean3"); } @Test @@ -1387,6 +1401,33 @@ public class BlueprintFileWriterTest { Node ref1ForCons = getReferenceListById("ref3ListForProduces"); assertXpathEquals(ref1ForCons, "@interface", Ref3.class.getName()); } + + @Test + public void testGenerateBeanWithJakartaAnnotatedBeans() throws Exception { + Node simpleJakartaBean = getBeanById("simpleJakartaBean"); + assertXpathEquals(simpleJakartaBean, "@class", SimpleJakartaBean.class.getName()); + + Node unnamedJakartaBean = getBeanById("unnamedJakartaBean"); + assertXpathEquals(unnamedJakartaBean, "@class", UnnamedJakartaBean.class.getName()); + + Node namedJakartaBean = getBeanById("test-named-jakarta-bean"); + assertXpathEquals(namedJakartaBean, "@class", NamedJakartaBean.class.getName()); + + Node injectingBean = getBeanById("simpleJakartaBeanUsage"); + assertXpathEquals(injectingBean, "@class", SimpleJakartaBeanUsage.class.getName()); + assertXpathDoesNotExist(injectingBean, "@field-injection"); + assertXpathEquals(injectingBean, "argument[1]/@ref", "simpleJakartaBean"); + assertXpathEquals(injectingBean, "property[@name='b']/@ref", "unnamedJakartaBean"); + assertXpathEquals(injectingBean, "property[@name='c']/@ref", "test-named-jakarta-bean"); + + Node injectingBeanViaFields = getBeanById("simpleJakartaBeanUsageViaField"); + assertXpathEquals(injectingBeanViaFields, "@class", SimpleJakartaBeanUsageViaField.class.getName()); + assertXpathEquals(injectingBeanViaFields, "@field-injection", "true"); + assertXpathEquals(injectingBeanViaFields, "property[@name='a']/@ref", "simpleJakartaBean"); + assertXpathEquals(injectingBeanViaFields, "property[@name='b']/@ref", "unnamedJakartaBean"); + assertXpathEquals(injectingBeanViaFields, "property[@name='c']/@ref", "test-named-jakarta-bean"); + } + private void assertXpathDoesNotExist(Node node, String xpathExpression) throws XPathExpressionException { assertXpathEquals(node, "count(" + xpathExpression + ")", "0"); } diff --git a/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/TestConsumer.java b/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/jakarta/NamedJakartaBean.java similarity index 79% copy from blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/TestConsumer.java copy to blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/jakarta/NamedJakartaBean.java index 6e96d8996..b42f86c34 100644 --- a/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/TestConsumer.java +++ b/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/jakarta/NamedJakartaBean.java @@ -16,13 +16,10 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.aries.blueprint.plugin.test.qualifiers; +package org.apache.aries.blueprint.plugin.jakarta; -import org.apache.aries.blueprint.annotation.bean.Bean; +import jakarta.inject.Named; -@Bean -public class TestConsumer { - public TestConsumer(@A1 TestBean t1, @A2 TestBean t2) { - - } +@Named("test-named-jakarta-bean") +public class NamedJakartaBean { } diff --git a/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/TestConsumer.java b/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/jakarta/SimpleJakartaBean.java similarity index 79% copy from blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/TestConsumer.java copy to blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/jakarta/SimpleJakartaBean.java index 6e96d8996..54c63ae86 100644 --- a/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/TestConsumer.java +++ b/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/jakarta/SimpleJakartaBean.java @@ -16,13 +16,10 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.aries.blueprint.plugin.test.qualifiers; +package org.apache.aries.blueprint.plugin.jakarta; -import org.apache.aries.blueprint.annotation.bean.Bean; +import jakarta.inject.Singleton; -@Bean -public class TestConsumer { - public TestConsumer(@A1 TestBean t1, @A2 TestBean t2) { - - } +@Singleton +public class SimpleJakartaBean { } diff --git a/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/MyFactory.java b/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/jakarta/SimpleJakartaBeanUsage.java similarity index 60% copy from blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/MyFactory.java copy to blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/jakarta/SimpleJakartaBeanUsage.java index 8d4eb81b3..4a5a66c75 100644 --- a/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/MyFactory.java +++ b/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/jakarta/SimpleJakartaBeanUsage.java @@ -16,26 +16,33 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.aries.blueprint.plugin.test.qualifiers; +package org.apache.aries.blueprint.plugin.jakarta; -import org.apache.aries.blueprint.annotation.bean.Bean; +import jakarta.inject.Inject; +import jakarta.inject.Singleton; -import javax.inject.Named; +@Singleton +public class SimpleJakartaBeanUsage { -@Bean -public class MyFactory { + private SimpleJakartaBean a; + private UnnamedJakartaBean b; + private NamedJakartaBean c; - @Bean - @Named("testBean1") - @A1 - public TestBean create1() { - return null; + public SimpleJakartaBeanUsage() { } - @Bean - @Named("testBean2") - @A2 - public TestBean create2() { - return null; + @Inject + public SimpleJakartaBeanUsage(SimpleJakartaBean a) { + this.a = a; + } + + @Inject + public void setB(UnnamedJakartaBean b) { + this.b = b; + } + + @Inject + public void setC(NamedJakartaBean c) { + this.c = c; } } diff --git a/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/TestConsumer.java b/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/jakarta/SimpleJakartaBeanUsageViaField.java similarity index 72% copy from blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/TestConsumer.java copy to blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/jakarta/SimpleJakartaBeanUsageViaField.java index 6e96d8996..9075fd75e 100644 --- a/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/TestConsumer.java +++ b/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/jakarta/SimpleJakartaBeanUsageViaField.java @@ -16,13 +16,17 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.aries.blueprint.plugin.test.qualifiers; +package org.apache.aries.blueprint.plugin.jakarta; -import org.apache.aries.blueprint.annotation.bean.Bean; +import jakarta.inject.Inject; +import jakarta.inject.Singleton; -@Bean -public class TestConsumer { - public TestConsumer(@A1 TestBean t1, @A2 TestBean t2) { - - } +@Singleton +public class SimpleJakartaBeanUsageViaField { + @Inject + private SimpleJakartaBean a; + @Inject + private UnnamedJakartaBean b; + @Inject + private NamedJakartaBean c; } diff --git a/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/TestConsumer.java b/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/jakarta/UnnamedJakartaBean.java similarity index 79% copy from blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/TestConsumer.java copy to blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/jakarta/UnnamedJakartaBean.java index 6e96d8996..2634ba307 100644 --- a/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/TestConsumer.java +++ b/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/jakarta/UnnamedJakartaBean.java @@ -16,13 +16,10 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.aries.blueprint.plugin.test.qualifiers; +package org.apache.aries.blueprint.plugin.jakarta; -import org.apache.aries.blueprint.annotation.bean.Bean; +import jakarta.inject.Named; -@Bean -public class TestConsumer { - public TestConsumer(@A1 TestBean t1, @A2 TestBean t2) { - - } +@Named +public class UnnamedJakartaBean { } diff --git a/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/TestConsumer.java b/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/A3.java similarity index 82% copy from blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/TestConsumer.java copy to blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/A3.java index 6e96d8996..59363299c 100644 --- a/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/TestConsumer.java +++ b/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/A3.java @@ -18,11 +18,11 @@ */ package org.apache.aries.blueprint.plugin.test.qualifiers; -import org.apache.aries.blueprint.annotation.bean.Bean; +import jakarta.inject.Qualifier; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; -@Bean -public class TestConsumer { - public TestConsumer(@A1 TestBean t1, @A2 TestBean t2) { - - } +@Retention(RetentionPolicy.RUNTIME) +@Qualifier +public @interface A3 { } diff --git a/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/MyFactory.java b/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/MyFactory.java index 8d4eb81b3..36e0ebd28 100644 --- a/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/MyFactory.java +++ b/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/MyFactory.java @@ -38,4 +38,11 @@ public class MyFactory { public TestBean create2() { return null; } + + @Bean + @jakarta.inject.Named("testBean3") + @A3 + public TestBean create3() { + return null; + } } diff --git a/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/TestConsumer.java b/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/TestConsumer.java index 6e96d8996..514142703 100644 --- a/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/TestConsumer.java +++ b/blueprint-maven-plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/TestConsumer.java @@ -22,7 +22,7 @@ import org.apache.aries.blueprint.annotation.bean.Bean; @Bean public class TestConsumer { - public TestConsumer(@A1 TestBean t1, @A2 TestBean t2) { + public TestConsumer(@A1 TestBean t1, @A2 TestBean t2, @A3 TestBean t3) { } }
