Author: jmarino
Date: Thu Jan  4 13:21:58 2007
New Revision: 492749

URL: http://svn.apache.org/viewvc?view=rev&rev=492749
Log:
add eager init processor

Added:
    
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/EagerInitProcessor.java
   (with props)
    
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/EagerInitProcessorTestCase.java
   (with props)
Modified:
    
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java
    
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ScopeProcessor.java
    
incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/implementation.scdl

Modified: 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java?view=diff&rev=492749&r1=492748&r2=492749
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java
 Thu Jan  4 13:21:58 2007
@@ -58,6 +58,7 @@
 import org.apache.tuscany.core.implementation.processor.ResourceProcessor;
 import org.apache.tuscany.core.implementation.processor.ScopeProcessor;
 import org.apache.tuscany.core.implementation.processor.ServiceProcessor;
+import org.apache.tuscany.core.implementation.processor.EagerInitProcessor;
 import 
org.apache.tuscany.core.implementation.system.builder.SystemBindingBuilder;
 import 
org.apache.tuscany.core.implementation.system.builder.SystemComponentBuilder;
 import 
org.apache.tuscany.core.implementation.system.builder.SystemCompositeBuilder;
@@ -202,6 +203,7 @@
         introspectionRegistry.registerProcessor(new 
ConstructorProcessor(service));
         introspectionRegistry.registerProcessor(new DestroyProcessor());
         introspectionRegistry.registerProcessor(new InitProcessor());
+        introspectionRegistry.registerProcessor(new EagerInitProcessor());
         introspectionRegistry.registerProcessor(new ScopeProcessor());
         introspectionRegistry.registerProcessor(new 
PropertyProcessor(service));
         introspectionRegistry.registerProcessor(new 
ReferenceProcessor(registry));

Added: 
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=auto&rev=492749
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/EagerInitProcessor.java
 (added)
+++ 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/EagerInitProcessor.java
 Thu Jan  4 13:21:58 2007
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * 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
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.core.implementation.processor;
+
+import org.osoa.sca.annotations.EagerInit;
+
+import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.deployer.DeploymentContext;
+import 
org.apache.tuscany.spi.implementation.java.ImplementationProcessorExtension;
+import org.apache.tuscany.spi.implementation.java.JavaMappedProperty;
+import org.apache.tuscany.spi.implementation.java.JavaMappedReference;
+import org.apache.tuscany.spi.implementation.java.JavaMappedService;
+import org.apache.tuscany.spi.implementation.java.PojoComponentType;
+import org.apache.tuscany.spi.implementation.java.ProcessingException;
+
+/**
+ * Handles processing of [EMAIL PROTECTED] org.osoa.sca.annotations.EagerInit}
+ *
+ * @version $Rev$ $Date$
+ */
+public class EagerInitProcessor extends ImplementationProcessorExtension {
+
+    public <T> void visitClass(CompositeComponent parent, Class<T> clazz,
+                               PojoComponentType<JavaMappedService, 
JavaMappedReference, JavaMappedProperty<?>> type,
+                               DeploymentContext context) throws 
ProcessingException {
+        super.visitClass(parent, clazz, type, context);
+        EagerInit annotation = clazz.getAnnotation(EagerInit.class);
+        if (annotation == null) {
+            return;
+        }
+        type.setInitLevel(annotation.level());
+    }
+}

Propchange: 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/EagerInitProcessor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/EagerInitProcessor.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ScopeProcessor.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ScopeProcessor.java?view=diff&rev=492749&r1=492748&r2=492749
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ScopeProcessor.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ScopeProcessor.java
 Thu Jan  4 13:21:58 2007
@@ -44,7 +44,6 @@
             type.setImplementationScope(Scope.STATELESS);
             return;
         }
-        //FIXME deal with eager init
         String name = annotation.value();
         Scope scope;
         if ("COMPOSITE".equals(name)) {

Modified: 
incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/implementation.scdl
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/implementation.scdl?view=diff&rev=492749&r1=492748&r2=492749
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/implementation.scdl
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/implementation.scdl
 Thu Jan  4 13:21:58 2007
@@ -39,6 +39,9 @@
     <component name="implementation.Init">
         <system:implementation.system 
class="org.apache.tuscany.core.implementation.processor.InitProcessor"/>
     </component>
+    <component name="implementation.EagerInit">
+        <system:implementation.system 
class="org.apache.tuscany.core.implementation.processor.EagerInitProcessor"/>
+    </component>
     <component name="implementation.Scope">
         <system:implementation.system 
class="org.apache.tuscany.core.implementation.processor.ScopeProcessor"/>
     </component>

Added: 
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=auto&rev=492749
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/EagerInitProcessorTestCase.java
 (added)
+++ 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/EagerInitProcessorTestCase.java
 Thu Jan  4 13:21:58 2007
@@ -0,0 +1,43 @@
+package org.apache.tuscany.core.implementation.processor;
+
+import org.osoa.sca.annotations.EagerInit;
+
+import org.apache.tuscany.spi.implementation.java.JavaMappedProperty;
+import org.apache.tuscany.spi.implementation.java.JavaMappedReference;
+import org.apache.tuscany.spi.implementation.java.JavaMappedService;
+import org.apache.tuscany.spi.implementation.java.PojoComponentType;
+import org.apache.tuscany.spi.implementation.java.ProcessingException;
+
+import junit.framework.TestCase;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class EagerInitProcessorTestCase extends TestCase {
+
+    public void testNoLevel() throws ProcessingException {
+        EagerInitProcessor processor = new EagerInitProcessor();
+        PojoComponentType<JavaMappedService, JavaMappedReference, 
JavaMappedProperty<?>> type =
+            new PojoComponentType<JavaMappedService, JavaMappedReference, 
JavaMappedProperty<?>>();
+        processor.visitClass(null, NoLevel.class, type, null);
+        assertEquals(50, type.getInitLevel());
+    }
+
+    public void testLevel() throws ProcessingException {
+        EagerInitProcessor processor = new EagerInitProcessor();
+        PojoComponentType<JavaMappedService, JavaMappedReference, 
JavaMappedProperty<?>> type =
+            new PojoComponentType<JavaMappedService, JavaMappedReference, 
JavaMappedProperty<?>>();
+        processor.visitClass(null, Level.class, type, null);
+        assertEquals(1, type.getInitLevel());
+    }
+
+    @EagerInit
+    private class NoLevel {
+    }
+
+    @EagerInit(level = 1)
+    private class Level {
+    }
+
+
+}

Propchange: 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/EagerInitProcessorTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/EagerInitProcessorTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date



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

Reply via email to