Author: rfeng
Date: Wed Jun 23 21:08:28 2010
New Revision: 957348
URL: http://svn.apache.org/viewvc?rev=957348&view=rev
Log:
Fix the pacakge scoped field injection
Modified:
tuscany/sca-java-2.x/trunk/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/JavaIntrospectionHelper.java
tuscany/sca-java-2.x/trunk/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicPojoProcessor.java
Modified:
tuscany/sca-java-2.x/trunk/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/JavaIntrospectionHelper.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/JavaIntrospectionHelper.java?rev=957348&r1=957347&r2=957348&view=diff
==============================================================================
---
tuscany/sca-java-2.x/trunk/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/JavaIntrospectionHelper.java
(original)
+++
tuscany/sca-java-2.x/trunk/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/JavaIntrospectionHelper.java
Wed Jun 23 21:08:28 2010
@@ -107,16 +107,17 @@ public final class JavaIntrospectionHelp
}
/**
- * Returns a collection of injectable fields (neither final or static)
declared by a class
+ * Returns a collection of injectable fields declared by a class
* or one of its supertypes
+ *
+ * For now we will include final or static fields so that validation
problems can be reported
*/
public static Set<Field> getInjectableFields(Class<?> clazz, boolean
validating) {
return getInjectableFields(clazz, new HashSet<Field>(), validating);
}
/**
- * Recursively evaluates the type hierarchy to return all fields that are
- * not static or final
+ * Recursively evaluates the type hierarchy to return all fields
*/
private static Set<Field> getInjectableFields(Class<?> clazz, Set<Field>
fields, boolean validating) {
if (clazz == null || clazz.isArray() || Object.class.equals(clazz)) {
@@ -127,7 +128,10 @@ public final class JavaIntrospectionHelp
for (final Field field : declaredFields) {
int modifiers = field.getModifiers();
// The field should be non-final and non-static
- if (!Modifier.isStatic(modifiers) && !Modifier.isFinal(modifiers))
{
+ if (!Modifier.isStatic(modifiers)
+ // && !Modifier.isFinal(modifiers)
+ ) {
+
// Allow privileged access to set accessibility. Requires
ReflectPermission
// in security policy.
AccessController.doPrivileged(new PrivilegedAction<Object>() {
Modified:
tuscany/sca-java-2.x/trunk/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicPojoProcessor.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicPojoProcessor.java?rev=957348&r1=957347&r2=957348&view=diff
==============================================================================
---
tuscany/sca-java-2.x/trunk/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicPojoProcessor.java
(original)
+++
tuscany/sca-java-2.x/trunk/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicPojoProcessor.java
Wed Jun 23 21:08:28 2010
@@ -113,8 +113,7 @@ public class HeuristicPojoProcessor exte
addService(type, clazz);
}
}
- Set<Method> methods = getAllUniquePublicProtectedMethods(clazz, false);
- if (!type.getReferenceMembers().isEmpty() ||
!type.getPropertyMembers().isEmpty()) {
+ if (!(type.getReferenceMembers().isEmpty() &&
type.getPropertyMembers().isEmpty())) {
// references and properties have been explicitly defined
// if (type.getServices().isEmpty()) {
// calculateServiceInterface(clazz, type, methods);
@@ -125,6 +124,8 @@ public class HeuristicPojoProcessor exte
evaluateConstructor(type, clazz);
return;
}
+ Set<Method> methods = getAllUniquePublicProtectedMethods(clazz, false);
+
calcPropRefs(methods, services, type, clazz);
evaluateConstructor(type, clazz);
}