Author: alien11689 Date: Mon Feb 6 20:06:56 2017 New Revision: 1781935 URL: http://svn.apache.org/viewvc?rev=1781935&view=rev Log: [ARIES-1681] Register produced beans with method qualifiers
Added: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/A1.java - copied, changed from r1781298, aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/AnnotatedService.java aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/A2.java aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/MyFactory.java - copied, changed from r1781298, aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyFactoryBean.java aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/TestBean.java - copied, changed from r1781298, aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyBean1.java aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/TestConsumer.java Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/BeanFromFactory.java aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/BlueprintFileWriterTest.java Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/BeanFromFactory.java URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/BeanFromFactory.java?rev=1781935&r1=1781934&r2=1781935&view=diff ============================================================================== --- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/BeanFromFactory.java (original) +++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/BeanFromFactory.java Mon Feb 6 20:06:56 2017 @@ -60,4 +60,9 @@ class BeanFromFactory extends Bean { protected void resolveArguments(BlueprintRegistry matcher) { resolveArguments(matcher, producingMethod.getParameterTypes(), producingMethod.getParameterAnnotations()); } + + @Override + BeanRef toBeanRef() { + return new BeanRef(clazz, id, producingMethod.getAnnotations()); + } } Modified: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/BlueprintFileWriterTest.java URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/BlueprintFileWriterTest.java?rev=1781935&r1=1781934&r2=1781935&view=diff ============================================================================== --- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/BlueprintFileWriterTest.java (original) +++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/BlueprintFileWriterTest.java Mon Feb 6 20:06:56 2017 @@ -755,6 +755,20 @@ public class BlueprintFileWriterTest { } + @Test + public void shouldInjectDependencyByQualifierFromFactory() throws Exception { + + Node bean1 = getBeanById("testBean1"); + assertXpathEquals(bean1, "@factory-method", "create1"); + + Node bean2 = getBeanById("testBean2"); + assertXpathEquals(bean2, "@factory-method", "create2"); + + Node consumer = getBeanById("testConsumer"); + assertXpathEquals(consumer, "argument[1]/@ref", "testBean1"); + assertXpathEquals(consumer, "argument[2]/@ref", "testBean2"); + } + private void assertXpathDoesNotExist(Node node, String xpathExpression) throws XPathExpressionException { assertXpathEquals(node, "count(" + xpathExpression + ")", "0"); } Copied: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/A1.java (from r1781298, aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/AnnotatedService.java) URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/A1.java?p2=aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/A1.java&p1=aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/AnnotatedService.java&r1=1781298&r2=1781935&rev=1781935&view=diff ============================================================================== --- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/AnnotatedService.java (original) +++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/A1.java Mon Feb 6 20:06:56 2017 @@ -16,15 +16,13 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.aries.blueprint.plugin; +package org.apache.aries.blueprint.plugin.test.qualifiers; -import javax.inject.Named; import javax.inject.Qualifier; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.RUNTIME) @Qualifier -@Named("annotatedService") -public @interface AnnotatedService { +public @interface A1 { } Added: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/A2.java URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/A2.java?rev=1781935&view=auto ============================================================================== --- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/A2.java (added) +++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/A2.java Mon Feb 6 20:06:56 2017 @@ -0,0 +1,28 @@ +/** + * 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 + * <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 + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.aries.blueprint.plugin.test.qualifiers; + +import javax.inject.Qualifier; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +@Qualifier +public @interface A2 { +} Copied: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/MyFactory.java (from r1781298, aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyFactoryBean.java) URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/MyFactory.java?p2=aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/MyFactory.java&p1=aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyFactoryBean.java&r1=1781298&r2=1781935&rev=1781935&view=diff ============================================================================== --- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyFactoryBean.java (original) +++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/MyFactory.java Mon Feb 6 20:06:56 2017 @@ -16,29 +16,26 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.aries.blueprint.plugin.test; +package org.apache.aries.blueprint.plugin.test.qualifiers; -import org.ops4j.pax.cdi.api.OsgiService; -import org.springframework.beans.factory.annotation.Value; +import org.apache.aries.blueprint.annotation.bean.Bean; -import javax.enterprise.inject.Produces; -import javax.inject.Inject; import javax.inject.Named; -import javax.inject.Singleton; -@Singleton -public class MyFactoryBean { - - @Inject - ServiceB serviceB; +@Bean +public class MyFactory { - @Produces - public MyProduced create() { - return new MyProduced("My message"); + @Bean + @Named("testBean1") + @A1 + public TestBean create1() { + return null; } - @Produces - public MyProducedWithConstructor createBeanWithParameters(MyBean1 myBean1, @Value("100") int bla, @OsgiService(filter = "myRef") @Named("ser1") ServiceC myReference) { - return new MyProducedWithConstructor(null); + @Bean + @Named("testBean2") + @A2 + public TestBean create2() { + return null; } } Copied: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/TestBean.java (from r1781298, aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyBean1.java) URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/TestBean.java?p2=aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/TestBean.java&p1=aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyBean1.java&r1=1781298&r2=1781935&rev=1781935&view=diff ============================================================================== --- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyBean1.java (original) +++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/TestBean.java Mon Feb 6 20:06:56 2017 @@ -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,51 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.aries.blueprint.plugin.test; +package org.apache.aries.blueprint.plugin.test.qualifiers; -import org.springframework.context.annotation.Lazy; - -import javax.annotation.PostConstruct; -import javax.inject.Singleton; -import javax.transaction.Transactional; -import javax.transaction.Transactional.TxType; - -@Singleton -@Transactional(value=TxType.REQUIRES_NEW) -@Lazy -public class MyBean1 extends ParentBean { - - public void overridenInit() { - // By overriding the method and removing the annotation, this method has lost its - // @PostConstruct method because it isn't @Inherited - } - - @PostConstruct - public void init() { - - } - - @Transactional(TxType.NOT_SUPPORTED) - public void txNotSupported() { - } - - @Transactional(TxType.MANDATORY) - public void txMandatory() { - } - - @Transactional(TxType.NEVER) - public void txNever() { - } - - @Transactional(TxType.REQUIRED) - public void txRequired() { - } - - @Override - public void txOverridenWithoutTransactional() { - } - - @Transactional(TxType.REQUIRES_NEW) - public void txOverridenWithRequiresNew() { - } +public class TestBean { } Added: aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/TestConsumer.java URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/TestConsumer.java?rev=1781935&view=auto ============================================================================== --- aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/TestConsumer.java (added) +++ aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/qualifiers/TestConsumer.java Mon Feb 6 20:06:56 2017 @@ -0,0 +1,28 @@ +/** + * 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 + * <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 + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.aries.blueprint.plugin.test.qualifiers; + +import org.apache.aries.blueprint.annotation.bean.Bean; + +@Bean +public class TestConsumer { + public TestConsumer(@A1 TestBean t1, @A2 TestBean t2) { + + } +}