Author: jmarino
Date: Tue Oct  3 00:27:46 2006
New Revision: 452328

URL: http://svn.apache.org/viewvc?view=rev&rev=452328
Log:
move AbstractPropertyProcessor to spi so it may be used by extensions; add 
testcases for abstract property processor

Added:
    
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/AbstractPropertyProcessor.java
   (contents, props changed)
      - copied, changed from r452283, 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/AbstractPropertyProcessor.java
    
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/DuplicatePropertyException.java
   (contents, props changed)
      - copied, changed from r452283, 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/DuplicatePropertyException.java
    
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/IllegalPropertyException.java
   (contents, props changed)
      - copied, changed from r452283, 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/IllegalPropertyException.java
    
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessorService.java
   (contents, props changed)
      - copied, changed from r452283, 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ImplementationProcessorService.java
    
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/implementation/
    
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/implementation/java/
    
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/implementation/java/AbstractPropertyProcessorTestCase.java
   (with props)
Removed:
    
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/AbstractPropertyProcessor.java
    
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/DuplicatePropertyException.java
    
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/IllegalPropertyException.java
    
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ImplementationProcessorService.java
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/ConstructorProcessor.java
    
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/HeuristicPojoProcessor.java
    
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ImplementationProcessorServiceImpl.java
    
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/MonitorProcessor.java
    
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/PropertyProcessor.java
    
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ServiceProcessor.java
    
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/ConstructorPropertyTestCase.java
    
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/ImplementationProcessorServiceTestCase.java
    
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/ImplementationProcessorServiceUniqueTestCase.java
    
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/MonitorProcessorTestCase.java
    
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/PropertyProcessorTestCase.java
    
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/loader/SystemComponentTypeLoaderTestCase.java
    
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/IntrospectionRegistryIntegrationTestCase.java

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=452328&r1=452327&r2=452328
==============================================================================
--- 
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
 Tue Oct  3 00:27:46 2006
@@ -32,6 +32,7 @@
 import org.apache.tuscany.spi.extension.LoaderExtension;
 import org.apache.tuscany.spi.idl.java.JavaInterfaceProcessorRegistry;
 import org.apache.tuscany.spi.implementation.java.Introspector;
+import 
org.apache.tuscany.spi.implementation.java.ImplementationProcessorService;
 import org.apache.tuscany.spi.loader.LoaderRegistry;
 import org.apache.tuscany.spi.loader.StAXPropertyFactory;
 
@@ -49,7 +50,6 @@
 import org.apache.tuscany.core.implementation.processor.ConstructorProcessor;
 import org.apache.tuscany.core.implementation.processor.DestroyProcessor;
 import org.apache.tuscany.core.implementation.processor.HeuristicPojoProcessor;
-import 
org.apache.tuscany.core.implementation.processor.ImplementationProcessorService;
 import 
org.apache.tuscany.core.implementation.processor.ImplementationProcessorServiceImpl;
 import org.apache.tuscany.core.implementation.processor.InitProcessor;
 import org.apache.tuscany.core.implementation.processor.MonitorProcessor;

Modified: 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ConstructorProcessor.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ConstructorProcessor.java?view=diff&rev=452328&r1=452327&r2=452328
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ConstructorProcessor.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ConstructorProcessor.java
 Tue Oct  3 00:27:46 2006
@@ -27,6 +27,7 @@
 import org.apache.tuscany.spi.deployer.DeploymentContext;
 import org.apache.tuscany.spi.implementation.java.ConstructorDefinition;
 import 
org.apache.tuscany.spi.implementation.java.ImplementationProcessorExtension;
+import 
org.apache.tuscany.spi.implementation.java.ImplementationProcessorService;
 import org.apache.tuscany.spi.implementation.java.JavaMappedProperty;
 import org.apache.tuscany.spi.implementation.java.JavaMappedReference;
 import org.apache.tuscany.spi.implementation.java.JavaMappedService;
@@ -49,8 +50,8 @@
     }
 
     public <T>  void visitClass(CompositeComponent parent, Class<T> clazz,
-                           PojoComponentType<JavaMappedService, 
JavaMappedReference, JavaMappedProperty<?>> type,
-                           DeploymentContext context) throws 
ProcessingException {
+                                PojoComponentType<JavaMappedService, 
JavaMappedReference, JavaMappedProperty<?>> type,
+                                DeploymentContext context) throws 
ProcessingException {
         Constructor[] ctors = clazz.getConstructors();
         boolean found = false;
         for (Constructor constructor : ctors) {
@@ -67,8 +68,9 @@
     }
 
     public <T> void visitConstructor(CompositeComponent parent, Constructor<T> 
constructor,
-                                 PojoComponentType<JavaMappedService, 
JavaMappedReference, JavaMappedProperty<?>> type,
-                                 DeploymentContext context) throws 
ProcessingException {
+                                     PojoComponentType<JavaMappedService, 
JavaMappedReference,
+                                     JavaMappedProperty<?>> type,
+                                     DeploymentContext context) throws 
ProcessingException {
         org.osoa.sca.annotations.Constructor annotation =
             
constructor.getAnnotation(org.osoa.sca.annotations.Constructor.class);
         if (annotation == null) {

Modified: 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/HeuristicPojoProcessor.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/HeuristicPojoProcessor.java?view=diff&rev=452328&r1=452327&r2=452328
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/HeuristicPojoProcessor.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/HeuristicPojoProcessor.java
 Tue Oct  3 00:27:46 2006
@@ -46,6 +46,7 @@
 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 
org.apache.tuscany.spi.implementation.java.ImplementationProcessorService;
 
 import static 
org.apache.tuscany.core.util.JavaIntrospectionHelper.getAllInterfaces;
 import static 
org.apache.tuscany.core.util.JavaIntrospectionHelper.getAllPublicAndProtectedFields;

Modified: 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ImplementationProcessorServiceImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ImplementationProcessorServiceImpl.java?view=diff&rev=452328&r1=452327&r2=452328
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ImplementationProcessorServiceImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ImplementationProcessorServiceImpl.java
 Tue Oct  3 00:27:46 2006
@@ -34,6 +34,8 @@
 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 org.apache.tuscany.spi.implementation.java.DuplicatePropertyException;
+import 
org.apache.tuscany.spi.implementation.java.ImplementationProcessorService;
 import org.apache.tuscany.spi.model.ServiceContract;
 
 import org.apache.tuscany.core.idl.java.IllegalCallbackException;

Modified: 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/MonitorProcessor.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/MonitorProcessor.java?view=diff&rev=452328&r1=452327&r2=452328
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/MonitorProcessor.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/MonitorProcessor.java
 Tue Oct  3 00:27:46 2006
@@ -21,6 +21,8 @@
 import org.apache.tuscany.spi.annotation.Autowire;
 import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.deployer.DeploymentContext;
+import org.apache.tuscany.spi.implementation.java.AbstractPropertyProcessor;
+import 
org.apache.tuscany.spi.implementation.java.ImplementationProcessorService;
 import org.apache.tuscany.spi.implementation.java.JavaMappedProperty;
 
 import org.apache.tuscany.api.annotation.Monitor;

Modified: 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/PropertyProcessor.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/PropertyProcessor.java?view=diff&rev=452328&r1=452327&r2=452328
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/PropertyProcessor.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/PropertyProcessor.java
 Tue Oct  3 00:27:46 2006
@@ -30,6 +30,8 @@
 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 org.apache.tuscany.spi.implementation.java.AbstractPropertyProcessor;
+import 
org.apache.tuscany.spi.implementation.java.ImplementationProcessorService;
 
 /**
  * Processes an [EMAIL PROTECTED] @Property} annotation, updating the 
component type with corresponding [EMAIL PROTECTED] JavaMappedProperty}

Modified: 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ServiceProcessor.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ServiceProcessor.java?view=diff&rev=452328&r1=452327&r2=452328
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ServiceProcessor.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ServiceProcessor.java
 Tue Oct  3 00:27:46 2006
@@ -35,6 +35,7 @@
 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 
org.apache.tuscany.spi.implementation.java.ImplementationProcessorService;
 import org.apache.tuscany.spi.model.ServiceContract;
 
 import static 
org.apache.tuscany.core.util.JavaIntrospectionHelper.getAllInterfaces;

Modified: 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/ConstructorPropertyTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/ConstructorPropertyTestCase.java?view=diff&rev=452328&r1=452327&r2=452328
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/ConstructorPropertyTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/ConstructorPropertyTestCase.java
 Tue Oct  3 00:27:46 2006
@@ -23,6 +23,7 @@
 
 import org.osoa.sca.annotations.Property;
 
+import org.apache.tuscany.spi.implementation.java.DuplicatePropertyException;
 import org.apache.tuscany.spi.implementation.java.JavaMappedProperty;
 import org.apache.tuscany.spi.implementation.java.JavaMappedReference;
 import org.apache.tuscany.spi.implementation.java.JavaMappedService;

Modified: 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/ImplementationProcessorServiceTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/ImplementationProcessorServiceTestCase.java?view=diff&rev=452328&r1=452327&r2=452328
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/ImplementationProcessorServiceTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/ImplementationProcessorServiceTestCase.java
 Tue Oct  3 00:27:46 2006
@@ -23,6 +23,7 @@
 import org.osoa.sca.annotations.Scope;
 
 import org.apache.tuscany.spi.implementation.java.JavaMappedService;
+import 
org.apache.tuscany.spi.implementation.java.ImplementationProcessorService;
 import org.apache.tuscany.spi.model.InteractionScope;
 import org.apache.tuscany.spi.model.ServiceContract;
 

Modified: 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/ImplementationProcessorServiceUniqueTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/ImplementationProcessorServiceUniqueTestCase.java?view=diff&rev=452328&r1=452327&r2=452328
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/ImplementationProcessorServiceUniqueTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/ImplementationProcessorServiceUniqueTestCase.java
 Tue Oct  3 00:27:46 2006
@@ -18,6 +18,8 @@
  */
 package org.apache.tuscany.core.implementation.processor;
 
+import 
org.apache.tuscany.spi.implementation.java.ImplementationProcessorService;
+
 import junit.framework.TestCase;
 import org.apache.tuscany.core.idl.java.JavaInterfaceProcessorRegistryImpl;
 

Modified: 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/MonitorProcessorTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/MonitorProcessorTestCase.java?view=diff&rev=452328&r1=452327&r2=452328
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/MonitorProcessorTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/MonitorProcessorTestCase.java
 Tue Oct  3 00:27:46 2006
@@ -28,6 +28,7 @@
 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.IllegalPropertyException;
 
 import junit.framework.TestCase;
 import org.apache.tuscany.api.annotation.Monitor;

Modified: 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/PropertyProcessorTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/PropertyProcessorTestCase.java?view=diff&rev=452328&r1=452327&r2=452328
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/PropertyProcessorTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/PropertyProcessorTestCase.java
 Tue Oct  3 00:27:46 2006
@@ -24,6 +24,8 @@
 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.IllegalPropertyException;
+import org.apache.tuscany.spi.implementation.java.DuplicatePropertyException;
 
 import junit.framework.TestCase;
 import org.apache.tuscany.core.idl.java.JavaInterfaceProcessorRegistryImpl;

Modified: 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/loader/SystemComponentTypeLoaderTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/loader/SystemComponentTypeLoaderTestCase.java?view=diff&rev=452328&r1=452327&r2=452328
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/loader/SystemComponentTypeLoaderTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/loader/SystemComponentTypeLoaderTestCase.java
 Tue Oct  3 00:27:46 2006
@@ -31,7 +31,7 @@
 import org.apache.tuscany.core.implementation.processor.ConstructorProcessor;
 import org.apache.tuscany.core.implementation.processor.DestroyProcessor;
 import org.apache.tuscany.core.implementation.processor.HeuristicPojoProcessor;
-import 
org.apache.tuscany.core.implementation.processor.ImplementationProcessorService;
+import 
org.apache.tuscany.spi.implementation.java.ImplementationProcessorService;
 import 
org.apache.tuscany.core.implementation.processor.ImplementationProcessorServiceImpl;
 import org.apache.tuscany.core.implementation.processor.InitProcessor;
 import org.apache.tuscany.core.implementation.processor.PropertyProcessor;

Modified: 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/IntrospectionRegistryIntegrationTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/IntrospectionRegistryIntegrationTestCase.java?view=diff&rev=452328&r1=452327&r2=452328
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/IntrospectionRegistryIntegrationTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/IntrospectionRegistryIntegrationTestCase.java
 Tue Oct  3 00:27:46 2006
@@ -28,13 +28,13 @@
 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.ImplementationProcessorService;
 import static org.apache.tuscany.spi.model.Scope.MODULE;
 
 import junit.framework.TestCase;
 import org.apache.tuscany.core.idl.java.JavaInterfaceProcessorRegistryImpl;
 import org.apache.tuscany.core.implementation.IntrospectionRegistryImpl;
 import org.apache.tuscany.core.implementation.processor.DestroyProcessor;
-import 
org.apache.tuscany.core.implementation.processor.ImplementationProcessorService;
 import 
org.apache.tuscany.core.implementation.processor.ImplementationProcessorServiceImpl;
 import org.apache.tuscany.core.implementation.processor.InitProcessor;
 import org.apache.tuscany.core.implementation.processor.PropertyProcessor;

Copied: 
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/AbstractPropertyProcessor.java
 (from r452283, 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/AbstractPropertyProcessor.java)
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/AbstractPropertyProcessor.java?view=diff&rev=452328&p1=incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/AbstractPropertyProcessor.java&r1=452283&p2=incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/AbstractPropertyProcessor.java&r2=452328
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/AbstractPropertyProcessor.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/AbstractPropertyProcessor.java
 Tue Oct  3 00:27:46 2006
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.    
  */
-package org.apache.tuscany.core.implementation.processor;
+package org.apache.tuscany.spi.implementation.java;
 
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Constructor;
@@ -27,18 +27,6 @@
 
 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.ConstructorDefinition;
-import org.apache.tuscany.spi.implementation.java.JavaMappedService;
-
-import org.apache.tuscany.spi.implementation.java.JavaMappedProperty;
-import org.apache.tuscany.spi.implementation.java.JavaMappedReference;
-import org.apache.tuscany.spi.implementation.java.ProcessingException;
-
-import org.apache.tuscany.spi.implementation.java.PojoComponentType;
-
-import org.apache.tuscany.core.util.JavaIntrospectionHelper;
 
 /**
  * Base class for ImplementationProcessors that handle annotations that add 
Properties.
@@ -80,7 +68,7 @@
         if (name == null || name.length() == 0) {
             name = method.getName();
             if (name.startsWith("set")) {
-                name = 
JavaIntrospectionHelper.toPropertyName(method.getName());
+                name = toPropertyName(method.getName());
             }
         }
 
@@ -121,8 +109,8 @@
     }
 
     public <T> void visitConstructor(CompositeComponent parent, Constructor<T> 
constructor,
-                                 PojoComponentType<JavaMappedService, 
JavaMappedReference, JavaMappedProperty<?>> type,
-                                 DeploymentContext context) throws 
ProcessingException {
+                                     PojoComponentType<JavaMappedService, 
JavaMappedReference, JavaMappedProperty<?>> type,
+                                     DeploymentContext context) throws 
ProcessingException {
 
         ConstructorDefinition<?> definition = type.getConstructorDefinition();
         Class[] params = constructor.getParameterTypes();
@@ -156,10 +144,19 @@
     protected <T> void initProperty(JavaMappedProperty<T> property,
                                     A annotation,
                                     CompositeComponent parent,
-                                    DeploymentContext context) {
+                                    DeploymentContext context) throws 
ProcessingException {
     }
 
-    protected <T> JavaMappedProperty<T> createProperty(String name, Class<T> 
javaType, Member member) {
+    protected <T> JavaMappedProperty<T> createProperty(String name, Class<T> 
javaType, Member member)
+        throws ProcessingException {
         return new JavaMappedProperty<T>(name, null, javaType, member);
+    }
+
+
+    public static String toPropertyName(String name) {
+        if (!name.startsWith("set")) {
+            return name;
+        }
+        return Character.toLowerCase(name.charAt(3)) + name.substring(4);
     }
 }

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

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

Copied: 
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/DuplicatePropertyException.java
 (from r452283, 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/DuplicatePropertyException.java)
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/DuplicatePropertyException.java?view=diff&rev=452328&p1=incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/DuplicatePropertyException.java&r1=452283&p2=incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/DuplicatePropertyException.java&r2=452328
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/DuplicatePropertyException.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/DuplicatePropertyException.java
 Tue Oct  3 00:27:46 2006
@@ -16,9 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.    
  */
-package org.apache.tuscany.core.implementation.processor;
-
-import org.apache.tuscany.spi.implementation.java.ProcessingException;
+package org.apache.tuscany.spi.implementation.java;
 
 /**
  * Thrown when an implementation has more than one property injection site 
with the same name

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

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

Copied: 
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/IllegalPropertyException.java
 (from r452283, 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/IllegalPropertyException.java)
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/IllegalPropertyException.java?view=diff&rev=452328&p1=incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/IllegalPropertyException.java&r1=452283&p2=incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/IllegalPropertyException.java&r2=452328
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/IllegalPropertyException.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/IllegalPropertyException.java
 Tue Oct  3 00:27:46 2006
@@ -16,9 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.    
  */
-package org.apache.tuscany.core.implementation.processor;
-
-import org.apache.tuscany.spi.implementation.java.ProcessingException;
+package org.apache.tuscany.spi.implementation.java;
 
 /**
  * Denotes an illegal property definition in a component type

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

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

Copied: 
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessorService.java
 (from r452283, 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ImplementationProcessorService.java)
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessorService.java?view=diff&rev=452328&p1=incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ImplementationProcessorService.java&r1=452283&p2=incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessorService.java&r2=452328
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ImplementationProcessorService.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessorService.java
 Tue Oct  3 00:27:46 2006
@@ -16,24 +16,18 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.tuscany.core.implementation.processor;
+package org.apache.tuscany.spi.implementation.java;
 
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Member;
 import java.util.List;
 
-import org.apache.tuscany.core.idl.java.IllegalCallbackException;
 import org.apache.tuscany.spi.idl.InvalidServiceContractException;
-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 org.apache.tuscany.spi.model.ServiceContract;
 
 /**
  * Provides utility methods for Java implementation processing
- * 
+ *
  * @version $Rev$ $Date$
  */
 public interface ImplementationProcessorService {
@@ -41,23 +35,24 @@
     /**
      * Introspects the given interface to produce a mapped service
      */
-    JavaMappedService createService(Class<?> interfaze) throws 
IllegalCallbackException,
-            InvalidServiceContractException;
+    JavaMappedService createService(Class<?> interfaze) throws 
InvalidServiceContractException,
+                                                               
InvalidServiceContractException;
 
     JavaMappedReference createReference(String name, Member member, Class<?> 
paramType) throws ProcessingException;
 
     /**
      * Processes the callback contract for a given interface type
-     * 
+     *
      * @param interfaze the interface type to examine
-     * @param contract the service contract the callback is associated wth
-     * @throws org.apache.tuscany.core.idl.java.IllegalCallbackException
+     * @param contract  the service contract the callback is associated wth
+     * @throws InvalidServiceContractException
+     *
      */
-    void processCallback(Class<?> interfaze, ServiceContract<?> contract) 
throws IllegalCallbackException;
+    void processCallback(Class<?> interfaze, ServiceContract<?> contract) 
throws InvalidServiceContractException;
 
     /**
      * Determines if all the members of a collection have unique types
-     * 
+     *
      * @param collection the collection to analyze
      * @return true if the types are unique
      */
@@ -70,24 +65,22 @@
 
     /**
      * Processes a constructor parameter by introspecting its annotations
-     * 
-     * @param param the parameter to process
+     *
+     * @param param            the parameter to process
      * @param paramAnnotations the parameter annotations
      * @param constructorNames the array of constructorNames specified by
-     * @Constructor
-     * @param pos the declaration position of the constructor parameter
-     * @param type the component type associated with implementation being 
reflected
-     * @param injectionNames the list of parameter constructorNames specified 
on parameter annotations
-     * @throws org.apache.tuscany.spi.implementation.java.ProcessingException
-     * 
+     * @param pos              the declaration position of the constructor 
parameter
+     * @param type             the component type associated with 
implementation being reflected
+     * @param injectionNames   the list of parameter constructorNames 
specified on parameter annotations
+     * @throws ProcessingException
      */
     boolean processParam(
-            Class<?> param,
-            Annotation[] paramAnnotations,
-            String[] constructorNames,
-            int pos,
-            PojoComponentType<JavaMappedService, JavaMappedReference, 
JavaMappedProperty<?>> type,
-            List<String> injectionNames) throws ProcessingException;
+        Class<?> param,
+        Annotation[] paramAnnotations,
+        String[] constructorNames,
+        int pos,
+        PojoComponentType<JavaMappedService, JavaMappedReference, 
JavaMappedProperty<?>> type,
+        List<String> injectionNames) throws ProcessingException;
 
     /**
      * Returns true if [EMAIL PROTECTED] @Autowire}, [EMAIL PROTECTED] 
@Property}, or [EMAIL PROTECTED] @Reference} are present in the given array

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

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

Added: 
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/implementation/java/AbstractPropertyProcessorTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/implementation/java/AbstractPropertyProcessorTestCase.java?view=auto&rev=452328
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/implementation/java/AbstractPropertyProcessorTestCase.java
 (added)
+++ 
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/implementation/java/AbstractPropertyProcessorTestCase.java
 Tue Oct  3 00:27:46 2006
@@ -0,0 +1,176 @@
+/*
+ * 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.spi.implementation.java;
+
+import java.lang.annotation.Retention;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.List;
+
+import org.apache.tuscany.spi.ObjectFactory;
+import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.deployer.DeploymentContext;
+
+import junit.framework.TestCase;
+import org.easymock.EasyMock;
+import org.easymock.IAnswer;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class AbstractPropertyProcessorTestCase extends TestCase {
+
+    private ImplementationProcessor processor;
+
+
+    public void testVisitMethod() throws Exception {
+        Method method = Foo.class.getMethod("setBar", String.class);
+        PojoComponentType<JavaMappedService, JavaMappedReference, 
JavaMappedProperty<?>> type =
+            new PojoComponentType<JavaMappedService, JavaMappedReference, 
JavaMappedProperty<?>>();
+        processor.visitMethod(null, method, type, null);
+        JavaMappedProperty<?> prop = type.getProperties().get("test");
+        assertNotNull(prop.getDefaultValueFactory());
+    }
+
+    public void testVisitNoParamsMethod() throws Exception {
+        Method method = Foo.class.getMethod("setNoParamsBar");
+        PojoComponentType<JavaMappedService, JavaMappedReference, 
JavaMappedProperty<?>> type =
+            new PojoComponentType<JavaMappedService, JavaMappedReference, 
JavaMappedProperty<?>>();
+        try {
+            processor.visitMethod(null, method, type, null);
+            fail();
+        } catch (IllegalPropertyException e) {
+            //expected
+        }
+    }
+
+    public void testVisitNonVoidMethod() throws Exception {
+        Method method = Foo.class.getMethod("setBadBar", String.class);
+        PojoComponentType<JavaMappedService, JavaMappedReference, 
JavaMappedProperty<?>> type =
+            new PojoComponentType<JavaMappedService, JavaMappedReference, 
JavaMappedProperty<?>>();
+        try {
+            processor.visitMethod(null, method, type, null);
+            fail();
+        } catch (IllegalPropertyException e) {
+            //expected
+        }
+    }
+
+    public void testDuplicateMethod() throws Exception {
+        Method method = Foo.class.getMethod("setBar", String.class);
+        PojoComponentType<JavaMappedService, JavaMappedReference, 
JavaMappedProperty<?>> type =
+            new PojoComponentType<JavaMappedService, JavaMappedReference, 
JavaMappedProperty<?>>();
+        processor.visitMethod(null, method, type, null);
+        try {
+            processor.visitMethod(null, method, type, null);
+            fail();
+        } catch (DuplicatePropertyException e) {
+            //expected
+        }
+    }
+
+    public void testVisitField() throws Exception {
+        Field field = Foo.class.getDeclaredField("d");
+        PojoComponentType<JavaMappedService, JavaMappedReference, 
JavaMappedProperty<?>> type =
+            new PojoComponentType<JavaMappedService, JavaMappedReference, 
JavaMappedProperty<?>>();
+        processor.visitField(null, field, type, null);
+        JavaMappedProperty<?> prop = type.getProperties().get("test");
+        assertNotNull(prop.getDefaultValueFactory());
+    }
+
+    public void testVisitConstructor() throws Exception {
+        Constructor<Foo> ctor = Foo.class.getConstructor(String.class);
+        PojoComponentType<JavaMappedService, JavaMappedReference, 
JavaMappedProperty<?>> type =
+            new PojoComponentType<JavaMappedService, JavaMappedReference, 
JavaMappedProperty<?>>();
+        processor.visitConstructor(null, ctor, type, null);
+        ConstructorDefinition def = type.getConstructorDefinition();
+        assertEquals("test", def.getInjectionNames().get(0));
+        assertNotNull(type.getProperties().get("test"));
+    }
+
+    @SuppressWarnings("unchecked")
+    protected void setUp() throws Exception {
+        super.setUp();
+        ImplementationProcessorService service = 
EasyMock.createMock(ImplementationProcessorService.class);
+        service.addName(EasyMock.isA(List.class), EasyMock.eq(0), 
EasyMock.eq("test"));
+        EasyMock.expectLastCall().andStubAnswer(new IAnswer() {
+            public Object answer() throws Throwable {
+                ((List<Object>) EasyMock.getCurrentArguments()[0]).add("test");
+                return null;
+            }
+        });
+        EasyMock.replay(service);
+        processor = new TestProcessor(service);
+    }
+
+    @Retention(RUNTIME)
+    private @interface Bar {
+
+    }
+
+    private class TestProcessor extends AbstractPropertyProcessor<Bar> {
+
+        public TestProcessor(ImplementationProcessorService service) {
+            super(Bar.class, service);
+        }
+
+        @SuppressWarnings("unchecked")
+        protected <T> void initProperty(JavaMappedProperty<T> property,
+                                        Bar annotation,
+                                        CompositeComponent parent,
+                                        DeploymentContext context) {
+            
property.setDefaultValueFactory(EasyMock.createMock(ObjectFactory.class));
+            property.setName("test");
+        }
+
+        protected String getName(Bar annotation) {
+            return "test";
+        }
+    }
+
+
+    private static class Foo {
+
+        @Bar
+        protected String d;
+
+        public Foo(String a, @Bar String b) {
+        }
+        
+        public Foo(@Bar String d) {
+            this.d = d;
+        }
+
+        @Bar
+        public void setBar(String d) {
+            this.d = d;
+        }
+
+        @Bar
+        public void setNoParamsBar() {
+        }
+
+        @Bar
+        public String setBadBar(String d) {
+            return null;
+        }
+    }
+}

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

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



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

Reply via email to