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);
     }


Reply via email to