You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by al...@apache.org on 2017/09/30 16:29:03 UTC
svn commit: r1810223 - in /aries/trunk/blueprint/plugin:
blueprint-maven-plugin-itest/src/it/produced-bean-by-method-name/
blueprint-maven-plugin-itest/src/it/produced-bean-by-method-name/src/
blueprint-maven-plugin-itest/src/it/produced-bean-by-method...
Author: alien11689
Date: Sat Sep 30 16:29:03 2017
New Revision: 1810223
URL: http://svn.apache.org/viewvc?rev=1810223&view=rev
Log:
[ARIES-1745] Name beans from factories after method name
Added:
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/produced-bean-by-method-name/
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/produced-bean-by-method-name/pom.xml
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/produced-bean-by-method-name/src/
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/produced-bean-by-method-name/src/main/
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/produced-bean-by-method-name/src/main/java/
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/produced-bean-by-method-name/src/main/java/p1/
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/produced-bean-by-method-name/src/main/java/p1/T1.java
aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/produced-bean-by-method-name/verify.groovy
Modified:
aries/trunk/blueprint/plugin/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/BeanFromFactory.java
Added: aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/produced-bean-by-method-name/pom.xml
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/produced-bean-by-method-name/pom.xml?rev=1810223&view=auto
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/produced-bean-by-method-name/pom.xml (added)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/produced-bean-by-method-name/pom.xml Sat Sep 30 16:29:03 2017
@@ -0,0 +1,64 @@
+<!--
+ 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>org.apache.aries.blueprint.plugin.itest</groupId>
+ <artifactId>simple-project</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <packaging>jar</packaging>
+
+ <dependencies>
+ <dependency>
+ <groupId>javax.inject</groupId>
+ <artifactId>javax.inject</artifactId>
+ <version>1</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.enterprise</groupId>
+ <artifactId>cdi-api</artifactId>
+ <version>1.2</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.aries.blueprint</groupId>
+ <artifactId>blueprint-maven-plugin</artifactId>
+ <version>@blueprint-maven-plugin.version@</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>add-resource-dir</goal>
+ <goal>blueprint-generate</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <customParameters>
+ <blueprint.beanFromFactory.name>fromFactoryMethodName</blueprint.beanFromFactory.name>
+ </customParameters>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
\ No newline at end of file
Added: aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/produced-bean-by-method-name/src/main/java/p1/T1.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/produced-bean-by-method-name/src/main/java/p1/T1.java?rev=1810223&view=auto
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/produced-bean-by-method-name/src/main/java/p1/T1.java (added)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/produced-bean-by-method-name/src/main/java/p1/T1.java Sat Sep 30 16:29:03 2017
@@ -0,0 +1,36 @@
+/**
+ * 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 p1;
+
+import javax.enterprise.inject.Produces;
+import javax.inject.Singleton;
+
+@Singleton
+public class T1 {
+
+ @Produces
+ public String bla1() {
+ return null;
+ }
+
+ @Produces
+ public String bla2() {
+ return null;
+ }
+}
\ No newline at end of file
Added: aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/produced-bean-by-method-name/verify.groovy
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/produced-bean-by-method-name/verify.groovy?rev=1810223&view=auto
==============================================================================
--- aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/produced-bean-by-method-name/verify.groovy (added)
+++ aries/trunk/blueprint/plugin/blueprint-maven-plugin-itest/src/it/produced-bean-by-method-name/verify.groovy Sat Sep 30 16:29:03 2017
@@ -0,0 +1,30 @@
+/*
+ * 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.
+ */
+
+def file = new File(basedir, 'target/generated-sources/blueprint/OSGI-INF/blueprint/autowire.xml')
+assert file.exists()
+def xml = new groovy.util.XmlSlurper().parse(file)
+assert xml.name() == 'blueprint'
+assert xml.bean.find{ it.@class == 'p1.T1'}.@id == 't1'
+assert xml.bean.find{ it.@id == 'bla1'}.'@class' == 'java.lang.String'
+assert xml.bean.find{ it.@id == 'bla1'}.'@factory-ref' == 't1'
+assert xml.bean.find{ it.@id == 'bla1'}.'@factory-method' == 'bla1'
+assert xml.bean.find{ it.@id == 'bla2'}.'@class' == 'java.lang.String'
+assert xml.bean.find{ it.@id == 'bla2'}.'@factory-ref' == 't1'
+assert xml.bean.find{ it.@id == 'bla2'}.'@factory-method' == 'bla2'
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=1810223&r1=1810222&r2=1810223&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 Sat Sep 30 16:29:03 2017
@@ -26,6 +26,8 @@ import org.apache.aries.blueprint.plugin
import java.lang.reflect.Method;
class BeanFromFactory extends Bean {
+ private static final String BLUEPRINT_BEAN_FROM_FACTORY_NAME_PROPERTY = "blueprint.beanFromFactory.name";
+ private static final String BLUEPRINT_BEAN_FROM_FACTORY_NAME_PROPERTY_VALUE = "fromFactoryMethodName";
private final Method producingMethod;
BeanFromFactory(Bean factoryBean, Method factoryMethod, ContextEnricher contextEnricher) {
@@ -34,9 +36,9 @@ class BeanFromFactory extends Bean {
if (forcedId != null) {
this.id = forcedId;
}
-// if (forcedId == null && shouldGetBeanNameFromMethodName(contextEnricher)) {
-// this.id = factoryMethod.getName();
-// }
+ if (forcedId == null && shouldGetBeanNameFromMethodName(contextEnricher)) {
+ this.id = factoryMethod.getName();
+ }
this.producingMethod = factoryMethod;
setScope(factoryMethod);
handleCustomBeanAnnotations();
@@ -45,8 +47,8 @@ class BeanFromFactory extends Bean {
}
private boolean shouldGetBeanNameFromMethodName(ContextEnricher contextEnricher) {
- String beanFromFactoryName = contextEnricher.getBlueprintConfiguration().getCustomParameters().get("beanFromFactory.name");
- return "fromFactoryMethodName".equals(beanFromFactoryName);
+ String beanFromFactoryName = contextEnricher.getBlueprintConfiguration().getCustomParameters().get(BLUEPRINT_BEAN_FROM_FACTORY_NAME_PROPERTY);
+ return BLUEPRINT_BEAN_FROM_FACTORY_NAME_PROPERTY_VALUE.equals(beanFromFactoryName);
}
private void setScope(Method factoryMethod) {