Author: jmarino
Date: Fri Jan  5 03:07:39 2007
New Revision: 492979

URL: http://svn.apache.org/viewvc?view=rev&rev=492979
Log:
support for specifying @EagerInit on superclass

Modified:
    
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/EagerInitProcessor.java
    
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/EagerInitProcessorTestCase.java

Modified: 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/EagerInitProcessor.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/EagerInitProcessor.java?view=diff&rev=492979&r1=492978&r2=492979
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/EagerInitProcessor.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/EagerInitProcessor.java
 Fri Jan  5 03:07:39 2007
@@ -42,7 +42,17 @@
         super.visitClass(parent, clazz, type, context);
         EagerInit annotation = clazz.getAnnotation(EagerInit.class);
         if (annotation == null) {
-            return;
+            Class<?> superClass = clazz.getSuperclass();
+            while (!Object.class.equals(superClass)) {
+                annotation = superClass.getAnnotation(EagerInit.class);
+                if (annotation != null) {
+                    break;
+                }
+                superClass = superClass.getSuperclass();
+            }
+            if (annotation == null) {
+                return;
+            }
         }
         type.setInitLevel(annotation.value());
     }

Modified: 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/EagerInitProcessorTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/EagerInitProcessorTestCase.java?view=diff&rev=492979&r1=492978&r2=492979
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/EagerInitProcessorTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/EagerInitProcessorTestCase.java
 Fri Jan  5 03:07:39 2007
@@ -31,6 +31,14 @@
         assertEquals(1, type.getInitLevel());
     }
 
+    public void testSubclass() throws ProcessingException {
+        EagerInitProcessor processor = new EagerInitProcessor();
+        PojoComponentType<JavaMappedService, JavaMappedReference, 
JavaMappedProperty<?>> type =
+            new PojoComponentType<JavaMappedService, JavaMappedReference, 
JavaMappedProperty<?>>();
+        processor.visitClass(null, SubClass.class, type, null);
+        assertEquals(1, type.getInitLevel());
+    }
+
     @EagerInit
     private class NoLevel {
     }
@@ -39,5 +47,8 @@
     private class Level {
     }
 
+    private class SubClass extends Level {
+
+    }
 
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to