You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by cs...@apache.org on 2015/03/17 11:57:50 UTC
svn commit: r1667259 - in /aries/trunk/blueprint/blueprint-maven-plugin: ./
src/main/java/org/apache/aries/blueprint/plugin/
src/main/java/org/apache/aries/blueprint/plugin/model/
src/test/java/org/apache/aries/blueprint/plugin/model/ src/test/java/org...
Author: cschneider
Date: Tue Mar 17 10:57:49 2015
New Revision: 1667259
URL: http://svn.apache.org/r1667259
Log:
[ARIES-1306] Support @Produces annotation in blueprint-maven-plugin
Added:
aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/BeanRef.java
aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/OsgiServiceRef.java
- copied, changed from r1667047, aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/OsgiServiceBean.java
aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/ProducedBean.java
aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyFactoryBean.java
aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyProduced.java
Removed:
aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/OsgiServiceBean.java
Modified:
aries/trunk/blueprint/blueprint-maven-plugin/pom.xml
aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/Generator.java
aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Bean.java
aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Context.java
aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Matcher.java
aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Property.java
aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/model/BeanTest.java
aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/model/ContextTest.java
aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/model/PropertyTest.java
aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyBean3.java
Modified: aries/trunk/blueprint/blueprint-maven-plugin/pom.xml
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-maven-plugin/pom.xml?rev=1667259&r1=1667258&r2=1667259&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-maven-plugin/pom.xml (original)
+++ aries/trunk/blueprint/blueprint-maven-plugin/pom.xml Tue Mar 17 10:57:49 2015
@@ -31,7 +31,7 @@
<groupId>org.apache.aries.blueprint</groupId>
<artifactId>blueprint-maven-plugin</artifactId>
<packaging>maven-plugin</packaging>
- <version>1.1.1-SNAPSHOT</version>
+ <version>1.2.0-SNAPSHOT</version>
<name>Apache Aries Blueprint Maven Plugin</name>
<description>
Maven plugin to create blueprint files from annotations
@@ -52,7 +52,6 @@
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
- <version>3.1</version>
<configuration>
<target>1.7</target>
<source>1.7</source>
@@ -108,6 +107,11 @@
<version>1.2</version>
</dependency>
<dependency>
+ <groupId>javax.enterprise</groupId>
+ <artifactId>cdi-api</artifactId>
+ <version>1.2</version>
+ </dependency>
+ <dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
<version>1.0.2</version>
Modified: aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/Generator.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/Generator.java?rev=1667259&r1=1667258&r2=1667259&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/Generator.java (original)
+++ aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/Generator.java Tue Mar 17 10:57:49 2015
@@ -29,7 +29,8 @@ import javax.xml.stream.XMLStreamWriter;
import org.apache.aries.blueprint.plugin.model.Bean;
import org.apache.aries.blueprint.plugin.model.Context;
-import org.apache.aries.blueprint.plugin.model.OsgiServiceBean;
+import org.apache.aries.blueprint.plugin.model.OsgiServiceRef;
+import org.apache.aries.blueprint.plugin.model.ProducedBean;
import org.apache.aries.blueprint.plugin.model.Property;
import org.apache.aries.blueprint.plugin.model.PropertyWriter;
import org.apache.aries.blueprint.plugin.model.TransactionalDef;
@@ -89,6 +90,9 @@ public class Generator implements Proper
writer.writeAttribute("id", bean.id);
writer.writeAttribute("class", bean.clazz.getName());
writer.writeAttribute("ext", NS_EXT, "field-injection", "true");
+ if (bean instanceof ProducedBean) {
+ writeFactory((ProducedBean)bean);
+ }
if (bean.initMethod != null) {
writer.writeAttribute("init-method", bean.initMethod);
}
@@ -101,6 +105,11 @@ public class Generator implements Proper
writePersistenceFields(bean.persistenceFields);
}
+ private void writeFactory(ProducedBean bean) throws XMLStreamException {
+ writer.writeAttribute("factory-ref", bean.factoryBeanId);
+ writer.writeAttribute("factory-method", bean.factoryMethod);
+ }
+
private void writeTransactional(TransactionalDef transactionDef)
throws XMLStreamException {
if (transactionDef != null) {
@@ -139,12 +148,12 @@ public class Generator implements Proper
}
private void writeServiceRefs() throws XMLStreamException {
- for (OsgiServiceBean serviceBean : context.getServiceRefs()) {
+ for (OsgiServiceRef serviceBean : context.getServiceRefs()) {
writeServiceRef(serviceBean);
}
}
- private void writeServiceRef(OsgiServiceBean serviceBean) throws XMLStreamException {
+ private void writeServiceRef(OsgiServiceRef serviceBean) throws XMLStreamException {
writer.writeEmptyElement("reference");
writer.writeAttribute("id", serviceBean.id);
writer.writeAttribute("interface", serviceBean.clazz.getName());
Modified: aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Bean.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Bean.java?rev=1667259&r1=1667258&r2=1667259&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Bean.java (original)
+++ aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Bean.java Tue Mar 17 10:57:49 2015
@@ -28,24 +28,19 @@ import java.util.TreeSet;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
-import javax.inject.Named;
import javax.persistence.PersistenceContext;
import javax.persistence.PersistenceUnit;
-import org.springframework.stereotype.Component;
-
-public class Bean implements Comparable<Bean>{
- public String id;
- public Class<?> clazz;
+public class Bean extends BeanRef {
public String initMethod;
public String destroyMethod;
public SortedSet<Property> properties;
public Field[] persistenceFields;
- public TransactionalDef transactionDef;
-
+ public TransactionalDef transactionDef;
+
public Bean(Class<?> clazz) {
- this.clazz = clazz;
- this.id = getBeanName(clazz);
+ super(clazz);
+
for (Method method : clazz.getDeclaredMethods()) {
PostConstruct postConstruct = getEffectiveAnnotation(method, PostConstruct.class);
if (postConstruct != null) {
@@ -94,23 +89,6 @@ public class Bean implements Comparable<
}
}
- public static String getBeanName(Class<?> clazz) {
- Component component = clazz.getAnnotation(Component.class);
- Named named = clazz.getAnnotation(Named.class);
- if (component != null && !"".equals(component.value())) {
- return component.value();
- } else if (named != null && !"".equals(named.value())) {
- return named.value();
- } else {
- String name = clazz.getSimpleName();
- return getBeanNameFromSimpleName(name);
- }
- }
-
- private static String getBeanNameFromSimpleName(String name) {
- return name.substring(0, 1).toLowerCase() + name.substring(1, name.length());
- }
-
private static <T extends Annotation> T getEffectiveAnnotation(Method method, Class<T> annotationClass) {
final Class<?> methodClass = method.getDeclaringClass();
final String name = method.getName();
@@ -149,17 +127,7 @@ public class Bean implements Comparable<
return null;
}
}
-
- public boolean matches(Class<?> destType, String destId) {
- boolean assignable = destType.isAssignableFrom(this.clazz);
- return assignable && ((destId == null) || id.equals(destId));
- }
-
- @Override
- public int compareTo(Bean other) {
- return this.clazz.getName().compareTo(other.clazz.getName());
- }
@Override
public int hashCode() {
Added: aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/BeanRef.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/BeanRef.java?rev=1667259&view=auto
==============================================================================
--- aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/BeanRef.java (added)
+++ aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/BeanRef.java Tue Mar 17 10:57:49 2015
@@ -0,0 +1,70 @@
+package org.apache.aries.blueprint.plugin.model;
+
+import java.lang.reflect.Field;
+
+import javax.inject.Named;
+
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+
+public class BeanRef implements Comparable<BeanRef> {
+ public String id;
+ public Class<?> clazz;
+
+ /**
+ *
+ * @param clazz interface or implementation class
+ */
+ public BeanRef(Class<?> clazz) {
+ this.clazz = clazz;
+ this.id = getBeanName(clazz);
+ }
+
+ public BeanRef(Class<?> type, String id) {
+ this.clazz = type;
+ this.id = id;
+ }
+
+ public BeanRef(Field field) {
+ this(field.getType(), getDestinationId(field));
+ }
+
+ private static String getDestinationId(Field field) {
+ Named named = field.getAnnotation(Named.class);
+ if (named != null) {
+ return named.value();
+ }
+ Qualifier qualifier = field.getAnnotation(Qualifier.class);
+ if (qualifier != null) {
+ return qualifier.value();
+ }
+ return null;
+ }
+
+ public static String getBeanName(Class<?> clazz) {
+ Component component = clazz.getAnnotation(Component.class);
+ Named named = clazz.getAnnotation(Named.class);
+ if (component != null && !"".equals(component.value())) {
+ return component.value();
+ } else if (named != null && !"".equals(named.value())) {
+ return named.value();
+ } else {
+ String name = clazz.getSimpleName();
+ return getBeanNameFromSimpleName(name);
+ }
+ }
+
+ private static String getBeanNameFromSimpleName(String name) {
+ return name.substring(0, 1).toLowerCase() + name.substring(1, name.length());
+ }
+
+ public boolean matches(BeanRef template) {
+ boolean assignable = template.clazz.isAssignableFrom(this.clazz);
+ return assignable && ((template.id == null) || id.equals(template.id));
+ }
+
+ @Override
+ public int compareTo(BeanRef other) {
+ return this.id.compareTo(other.id);
+ }
+}
Modified: aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Context.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Context.java?rev=1667259&r1=1667258&r2=1667259&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Context.java (original)
+++ aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Context.java Tue Mar 17 10:57:49 2015
@@ -19,11 +19,13 @@
package org.apache.aries.blueprint.plugin.model;
import java.lang.reflect.Field;
+import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.Collection;
import java.util.SortedSet;
import java.util.TreeSet;
+import javax.enterprise.inject.Produces;
import javax.inject.Named;
import org.ops4j.pax.cdi.api.OsgiService;
@@ -32,15 +34,15 @@ import org.springframework.beans.factory
public class Context implements Matcher {
SortedSet<Bean> beans;
- SortedSet<OsgiServiceBean> serviceRefs;
-
+ SortedSet<OsgiServiceRef> serviceRefs;
+
public Context(Class<?>... beanClasses) {
this(Arrays.asList(beanClasses));
}
public Context(Collection<Class<?>> beanClasses) {
this.beans = new TreeSet<Bean>();
- this.serviceRefs = new TreeSet<OsgiServiceBean>();
+ this.serviceRefs = new TreeSet<OsgiServiceRef>();
addBeans(beanClasses);
}
@@ -49,6 +51,18 @@ public class Context implements Matcher
Bean bean = new Bean(clazz);
beans.add(bean);
addServiceRefs(clazz);
+ addProducedBeans(clazz, bean.id);
+ }
+ }
+
+ private void addProducedBeans(Class<?> clazz, String factoryBeanId) {
+ for (Method method : clazz.getMethods()) {
+ Produces produces = method.getAnnotation(Produces.class);
+ if (produces != null) {
+ Class<?> producedClass = method.getReturnType();
+ ProducedBean producedBean = new ProducedBean(producedClass, factoryBeanId, method.getName());
+ beans.add(producedBean);
+ }
}
}
@@ -56,52 +70,37 @@ public class Context implements Matcher
for (Field field : clazz.getDeclaredFields()) {
OsgiService osgiService = field.getAnnotation(OsgiService.class);
if (osgiService != null) {
- serviceRefs.add(new OsgiServiceBean(field.getType(), osgiService));
+ serviceRefs.add(new OsgiServiceRef(field.getType(), osgiService));
}
}
}
-
+
public void resolve() {
for (Bean bean : beans) {
bean.resolve(this);
}
}
- public Bean getMatching(Field field) {
- String destId = getDestinationId(field);
- // TODO Replace loop by lookup
+ public BeanRef getMatching(BeanRef template) {
for (Bean bean : beans) {
- if (bean.matches(field.getType(), destId)) {
+ if (bean.matches(template)) {
return bean;
}
}
- for (Bean bean : serviceRefs) {
- if (bean.matches(field.getType(), destId)) {
+ for (BeanRef bean : serviceRefs) {
+ if (bean.matches(template)) {
return bean;
}
}
return null;
}
- private String getDestinationId(Field field) {
- Named named = field.getAnnotation(Named.class);
- if (named != null) {
- return named.value();
- }
- Qualifier qualifier = field.getAnnotation(Qualifier.class);
- if (qualifier != null) {
- return qualifier.value();
- }
- return null;
- }
-
public SortedSet<Bean> getBeans() {
return beans;
}
-
- public SortedSet<OsgiServiceBean> getServiceRefs() {
+
+ public SortedSet<OsgiServiceRef> getServiceRefs() {
return serviceRefs;
}
-
}
Modified: aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Matcher.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Matcher.java?rev=1667259&r1=1667258&r2=1667259&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Matcher.java (original)
+++ aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Matcher.java Tue Mar 17 10:57:49 2015
@@ -18,9 +18,8 @@
*/
package org.apache.aries.blueprint.plugin.model;
-import java.lang.reflect.Field;
public interface Matcher {
- Bean getMatching(Field field);
+ BeanRef getMatching(BeanRef template);
}
Copied: aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/OsgiServiceRef.java (from r1667047, aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/OsgiServiceBean.java)
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/OsgiServiceRef.java?p2=aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/OsgiServiceRef.java&p1=aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/OsgiServiceBean.java&r1=1667047&r2=1667259&rev=1667259&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/OsgiServiceBean.java (original)
+++ aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/OsgiServiceRef.java Tue Mar 17 10:57:49 2015
@@ -23,11 +23,11 @@ import org.ops4j.pax.cdi.api.OsgiService
/**
* Synthetic bean that refers to an OSGi service
*/
-public class OsgiServiceBean extends Bean {
+public class OsgiServiceRef extends BeanRef {
public String filter;
- public OsgiServiceBean(Class<?> clazz, OsgiService osgiService) {
+ public OsgiServiceRef(Class<?> clazz, OsgiService osgiService) {
super(clazz);
filter = osgiService.filter();
}
Added: aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/ProducedBean.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/ProducedBean.java?rev=1667259&view=auto
==============================================================================
--- aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/ProducedBean.java (added)
+++ aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/ProducedBean.java Tue Mar 17 10:57:49 2015
@@ -0,0 +1,14 @@
+package org.apache.aries.blueprint.plugin.model;
+
+
+public class ProducedBean extends Bean {
+ public String factoryMethod;
+ public String factoryBeanId;
+
+ public ProducedBean(Class<?> clazz, String factoryBeanId, String factoryMethod) {
+ super(clazz);
+ this.factoryBeanId = factoryBeanId;
+ this.factoryMethod = factoryMethod;
+ }
+
+}
Modified: aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Property.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Property.java?rev=1667259&r1=1667258&r2=1667259&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Property.java (original)
+++ aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Property.java Tue Mar 17 10:57:49 2015
@@ -41,7 +41,7 @@ public class Property implements Compara
public static Property create(Matcher matcher, Field field) {
Value value = field.getAnnotation(Value.class);
if (needsInject(field)) {
- Bean matching = matcher.getMatching(field);
+ BeanRef matching = matcher.getMatching(new BeanRef(field));
String ref = (matching == null) ? getRefName(field) : matching.id;
return new Property(field.getName(), ref, null);
} else if (value != null){
Modified: aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/model/BeanTest.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/model/BeanTest.java?rev=1667259&r1=1667258&r2=1667259&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/model/BeanTest.java (original)
+++ aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/model/BeanTest.java Tue Mar 17 10:57:49 2015
@@ -62,7 +62,7 @@ public class BeanTest {
assertEquals("There should be no persistence fields", 0, bean.persistenceFields.length);
assertEquals("*", bean.transactionDef.getMethod());
assertEquals("RequiresNew", bean.transactionDef.getType());
- assertEquals(3, bean.properties.size());
+ assertEquals(4, bean.properties.size());
}
@Test
Modified: aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/model/ContextTest.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/model/ContextTest.java?rev=1667259&r1=1667258&r2=1667259&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/model/ContextTest.java (original)
+++ aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/model/ContextTest.java Tue Mar 17 10:57:49 2015
@@ -18,12 +18,9 @@
*/
package org.apache.aries.blueprint.plugin.model;
-import java.lang.reflect.Field;
-
-import org.apache.aries.blueprint.plugin.model.Bean;
-import org.apache.aries.blueprint.plugin.model.Context;
-import org.apache.aries.blueprint.plugin.model.OsgiServiceBean;
import org.apache.aries.blueprint.plugin.test.MyBean3;
+import org.apache.aries.blueprint.plugin.test.MyFactoryBean;
+import org.apache.aries.blueprint.plugin.test.MyProduced;
import org.apache.aries.blueprint.plugin.test.ServiceB;
import org.apache.aries.blueprint.plugin.test.ServiceReferences;
import org.junit.Assert;
@@ -48,10 +45,20 @@ public class ContextTest {
@Test
public void testMatching() throws NoSuchFieldException, SecurityException {
Context context = new Context(ServiceReferences.class);
- Field field = ServiceReferences.class.getDeclaredFields()[0];
- Bean matching = context.getMatching(field);
- Assert.assertEquals(OsgiServiceBean.class, matching.getClass());
+ BeanRef matching = context.getMatching(new BeanRef(ServiceB.class));
+ Assert.assertEquals(OsgiServiceRef.class, matching.getClass());
Assert.assertEquals(ServiceB.class, matching.clazz);
Assert.assertEquals("serviceB", matching.id);
}
+
+ @Test
+ public void testProduced() throws NoSuchFieldException, SecurityException {
+ Context context = new Context(MyFactoryBean.class);
+
+ ProducedBean matching = (ProducedBean)context.getMatching(new BeanRef(MyProduced.class));
+ Assert.assertEquals(MyProduced.class, matching.clazz);
+ Assert.assertEquals("myFactoryBean", matching.factoryBeanId);
+ Assert.assertEquals("create", matching.factoryMethod);
+ }
+
}
Modified: aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/model/PropertyTest.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/model/PropertyTest.java?rev=1667259&r1=1667258&r2=1667259&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/model/PropertyTest.java (original)
+++ aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/model/PropertyTest.java Tue Mar 17 10:57:49 2015
@@ -34,7 +34,7 @@ public class PropertyTest {
public void testRefInject() throws XMLStreamException {
Field field = TestBeanForRef.class.getDeclaredFields()[0];
Matcher matcher = new Matcher() {
- public Bean getMatching(Field field) {
+ public Bean getMatching(BeanRef template) {
return new Bean(ServiceAImpl1.class);
}
};
@@ -48,7 +48,7 @@ public class PropertyTest {
public void testRefAutowired() throws XMLStreamException {
Field field = TestBeanForRef.class.getDeclaredFields()[1];
Matcher matcher = new Matcher() {
- public Bean getMatching(Field field) {
+ public Bean getMatching(BeanRef template) {
return null;
}
};
Modified: aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyBean3.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyBean3.java?rev=1667259&r1=1667258&r2=1667259&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyBean3.java (original)
+++ aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyBean3.java Tue Mar 17 10:57:49 2015
@@ -40,4 +40,7 @@ public class MyBean3 {
@Inject
ServiceB serviceB;
+
+ @Inject
+ MyProduced myProduced;
}
Added: aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyFactoryBean.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyFactoryBean.java?rev=1667259&view=auto
==============================================================================
--- aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyFactoryBean.java (added)
+++ aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyFactoryBean.java Tue Mar 17 10:57:49 2015
@@ -0,0 +1,17 @@
+package org.apache.aries.blueprint.plugin.test;
+
+import javax.enterprise.inject.Produces;
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
+@Singleton
+public class MyFactoryBean {
+
+ @Inject
+ ServiceB serviceB;
+
+ @Produces
+ public MyProduced create() {
+ return new MyProduced("My message");
+ }
+}
Added: aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyProduced.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyProduced.java?rev=1667259&view=auto
==============================================================================
--- aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyProduced.java (added)
+++ aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyProduced.java Tue Mar 17 10:57:49 2015
@@ -0,0 +1,18 @@
+package org.apache.aries.blueprint.plugin.test;
+
+import javax.inject.Inject;
+
+public class MyProduced {
+ private String message;
+
+ @Inject
+ ServiceA serviceA;
+
+ public MyProduced(String message) {
+ this.message = message;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+}