svn commit: r1746854 - in /aries/trunk/blueprint/blueprint-maven-plugin/src: main/java/org/apache/aries/blueprint/plugin/model/ test/java/org/apache/aries/blueprint/plugin/
Author: alien11689 Date: Sat Jun 4 22:05:02 2016 New Revision: 1746854 URL: http://svn.apache.org/viewvc?rev=1746854=rev Log: [ARIES-1562] Refactor after change Modified: 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/BeanRef.java aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/OsgiServiceRef.java aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/GeneratorTest.java 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=1746854=1746853=1746854=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 Sat Jun 4 22:05:02 2016 @@ -43,7 +43,7 @@ import java.util.SortedSet; import java.util.TreeSet; public class Bean extends BeanRef { -public String initMethod; +public final String initMethod; public String destroyMethod; public SortedSet properties = new TreeSet<>(); public List constructorArguments = new ArrayList<>(); @@ -57,45 +57,65 @@ public class Bean extends BeanRef { super(clazz, BeanRef.getBeanName(clazz)); Introspector introspector = new Introspector(clazz); -// Init method -Method initMethod = introspector.methodWith(PostConstruct.class); -if (initMethod != null) { -this.initMethod = initMethod.getName(); -} +initMethod = findMethodAnnotatedWith(introspector, PostConstruct.class); +destroyMethod = findMethodAnnotatedWith(introspector, PreDestroy.class); -// Destroy method -Method destroyMethod = introspector.methodWith(PreDestroy.class); -if (destroyMethod != null) { -this.destroyMethod = destroyMethod.getName(); -} +interpretTransactionalMethods(clazz); -// Transactional methods -transactionDefs.addAll(new JavaxTransactionFactory().create(clazz)); -transactionDefs.addAll(new SpringTransactionFactory().create(clazz)); this.isPrototype = isPrototype(clazz); -this.persistenceFields = introspector.fieldsWith(PersistenceContext.class, PersistenceUnit.class); +this.persistenceFields = findPersistenceFields(introspector); + setQualifiersFromAnnotations(clazz.getAnnotations()); +interpretServiceProvider(); +} + +private void interpretServiceProvider() { ServiceProvider serviceProvider = ServiceProvider.fromBean(this); -if(serviceProvider != null){ +if (serviceProvider != null) { serviceProviders.add(serviceProvider); } } +private List findPersistenceFields(Introspector introspector) { +return introspector.fieldsWith(PersistenceContext.class, PersistenceUnit.class); +} + +private void interpretTransactionalMethods(Class clazz) { +transactionDefs.addAll(new JavaxTransactionFactory().create(clazz)); +transactionDefs.addAll(new SpringTransactionFactory().create(clazz)); +} + +private String findMethodAnnotatedWith(Introspector introspector, Class annotation) { +Method initMethod = introspector.methodWith(annotation); +if (initMethod == null) { +return null; +} +return initMethod.getName(); +} + private boolean isPrototype(Class clazz) { return clazz.getAnnotation(Singleton.class) == null && clazz.getAnnotation(Component.class) == null; } public void resolve(Matcher matcher) { resolveArguments(matcher); -for (Field field : new Introspector(clazz).fieldsWith(Value.class, Autowired.class, Inject.class)) { -Property prop = Property.create(matcher, field); +resolveFiields(matcher); +resolveMethods(matcher); +} + +private void resolveMethods(Matcher matcher) { +for (Method method : new Introspector(clazz).methodsWith(Value.class, Autowired.class, Inject.class)) { +Property prop = Property.create(matcher, method); if (prop != null) { properties.add(prop); } } -for (Method method : new Introspector(clazz).methodsWith(Value.class, Autowired.class, Inject.class)) { -Property prop = Property.create(matcher, method); +} + +private void resolveFiields(Matcher matcher) { +for (Field field : new
svn commit: r1746848 - in /aries/trunk/blueprint/blueprint-maven-plugin/src: main/java/org/apache/aries/blueprint/plugin/model/ test/java/org/apache/aries/blueprint/plugin/ test/java/org/apache/aries/
Author: alien11689 Date: Sat Jun 4 19:46:45 2016 New Revision: 1746848 URL: http://svn.apache.org/viewvc?rev=1746848=rev Log: [ARIES-1562] Allow for setter injection Added: aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/BeanWithSetters.java Modified: 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/BeanRef.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/Introspector.java aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/OsgiServiceRef.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/GeneratorTest.java 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=1746848=1746847=1746848=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 Sat Jun 4 19:46:45 2016 @@ -94,6 +94,12 @@ public class Bean extends BeanRef { properties.add(prop); } } +for (Method method : new Introspector(clazz).methodsWith(Value.class, Autowired.class, Inject.class)) { +Property prop = Property.create(matcher, method); +if (prop != null) { +properties.add(prop); +} +} } protected void resolveArguments(Matcher matcher) { Modified: 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=1746848=1746847=1746848=diff == --- aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/BeanRef.java (original) +++ aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/BeanRef.java Sat Jun 4 19:46:45 2016 @@ -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 - * + * * 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 @@ -24,6 +24,7 @@ import javax.inject.Named; import javax.inject.Qualifier; import java.lang.annotation.Annotation; import java.lang.reflect.Field; +import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map; @@ -50,6 +51,16 @@ public class BeanRef implements Comparab setQualifiersFromAnnotations(annotations); } +public BeanRef(Method method) { +this(method.getParameterTypes()[0]); +Annotation[] annotations = method.getAnnotations(); +setQualifiersFromAnnotations(annotations); +Named named = method.getAnnotation(Named.class); +if (named != null) { +id = named.value(); +} +} + protected void setQualifiersFromAnnotations(Annotation[] annotations) { for (Annotation ann : annotations) { if (isQualifier(ann) != null) { @@ -81,6 +92,9 @@ public class BeanRef implements Comparab public boolean matches(BeanRef template) { boolean assignable = template.clazz.isAssignableFrom(this.clazz); +if (template.id != null) { +return template.id.equals(id); +} return assignable && qualifiers.values().containsAll(template.qualifiers.values()); } 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=1746848=1746847=1746848=diff == ---