You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jm...@apache.org on 2007/01/15 12:50:34 UTC

svn commit: r496286 - in /incubator/tuscany/java/sca: kernel/core/src/main/java/org/apache/tuscany/core/databinding/impl/ kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/ kernel/core/src/main/java/org/apache/tuscany/core/implement...

Author: jmarino
Date: Mon Jan 15 03:50:32 2007
New Revision: 496286

URL: http://svn.apache.org/viewvc?view=rev&rev=496286
Log:
clean up code tangles an refactor larger methods into smaller, more manageable ones

Added:
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/WrapperInfo.java   (contents, props changed)
      - copied, changed from r495985, incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/WrapperInfo.java
Removed:
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/WrapperInfo.java
Modified:
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/impl/Input2InputTransformer.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/impl/Output2OutputTransformer.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.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/util/JavaIntrospectionHelper.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/databinding/impl/IDLTransformerTestCase.java
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/event/AbstractEventPublisher.java
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Operation.java
    incubator/tuscany/java/sca/services/idl/wsdl/src/main/java/org/apache/tuscany/idl/wsdl/WSDLOperation.java

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/impl/Input2InputTransformer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/impl/Input2InputTransformer.java?view=diff&rev=496286&r1=496285&r2=496286
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/impl/Input2InputTransformer.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/impl/Input2InputTransformer.java Mon Jan 15 03:50:32 2007
@@ -34,9 +34,10 @@
 import org.apache.tuscany.spi.databinding.WrapperHandler;
 import org.apache.tuscany.spi.databinding.extension.TransformerExtension;
 import org.apache.tuscany.spi.idl.ElementInfo;
-import org.apache.tuscany.spi.idl.WrapperInfo;
+import org.apache.tuscany.spi.model.WrapperInfo;
 import org.apache.tuscany.spi.model.DataType;
 import org.apache.tuscany.spi.model.Operation;
+
 import org.osoa.sca.annotations.Service;
 
 /**

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/impl/Output2OutputTransformer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/impl/Output2OutputTransformer.java?view=diff&rev=496286&r1=496285&r2=496286
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/impl/Output2OutputTransformer.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/impl/Output2OutputTransformer.java Mon Jan 15 03:50:32 2007
@@ -34,7 +34,7 @@
 import org.apache.tuscany.spi.databinding.WrapperHandler;
 import org.apache.tuscany.spi.databinding.extension.TransformerExtension;
 import org.apache.tuscany.spi.idl.ElementInfo;
-import org.apache.tuscany.spi.idl.WrapperInfo;
+import org.apache.tuscany.spi.model.WrapperInfo;
 import org.apache.tuscany.spi.model.DataType;
 import org.apache.tuscany.spi.model.Operation;
 import org.osoa.sca.annotations.Service;

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.java?view=diff&rev=496286&r1=496285&r2=496286
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.java Mon Jan 15 03:50:32 2007
@@ -38,7 +38,6 @@
 import org.apache.tuscany.spi.implementation.java.Resource;
 import org.apache.tuscany.spi.model.ComponentDefinition;
 import org.apache.tuscany.spi.model.PropertyValue;
-import org.apache.tuscany.spi.model.Scope;
 
 import org.apache.tuscany.core.implementation.PojoConfiguration;
 import org.apache.tuscany.core.injection.MethodEventInvoker;
@@ -68,7 +67,6 @@
 
         PojoConfiguration configuration = new PojoConfiguration();
         configuration.setParent(parent);
-        Scope scope = componentType.getImplementationScope();
         if (definition.getInitLevel() != null) {
             configuration.setInitLevel(definition.getInitLevel());
         } else {
@@ -129,14 +127,40 @@
         JavaAtomicComponent component = new JavaAtomicComponent(configuration);
 
         // handle properties
-        for (PropertyValue<?> property : definition.getPropertyValues().values()) {
-            ObjectFactory<?> factory = property.getValueFactory();
-            if (factory != null) {
-                component.addPropertyFactory(property.getName(), factory);
+        handleProperties(definition, component);
+
+        // handle resources
+        handleResources(componentType, component, parent);
+
+        handleCallbackSites(componentType, configuration);
+
+        // FIXME JFM  this should be refactored to be by operation
+        component.setAllowsPassByReference(componentType.isAllowsPassByReference());
+
+        if (componentType.getConversationIDMember() != null) {
+            component.addConversationIDFactory(componentType.getConversationIDMember());
+        }
+
+        return component;
+    }
+
+    private void handleCallbackSites(
+        PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> componentType,
+        PojoConfiguration configuration) {
+        for (JavaMappedService service : componentType.getServices().values()) {
+            // setup callback injection sites
+            if (service.getCallbackReferenceName() != null) {
+                // Only if there is a callback reference in the service
+                configuration.addCallbackSite(service.getCallbackReferenceName(), service.getCallbackMember());
             }
         }
+    }
 
-        // handle resources
+    @SuppressWarnings({"unchecked"})
+    private void handleResources(
+        PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> componentType,
+        JavaAtomicComponent component,
+        CompositeComponent parent) {
         for (Resource resource : componentType.getResources().values()) {
             ObjectFactory<?> objectFactory = resource.getObjectFactory();
             if (objectFactory != null) {
@@ -156,22 +180,15 @@
                 component.addResourceFactory(name, factory);
             }
         }
+    }
 
-        for (JavaMappedService service : componentType.getServices().values()) {
-            // setup callback injection sites
-            if (service.getCallbackReferenceName() != null) {
-                // Only if there is a callback reference in the service
-                configuration.addCallbackSite(service.getCallbackReferenceName(), service.getCallbackMember());
+    private void handleProperties(ComponentDefinition<JavaImplementation> definition, JavaAtomicComponent component) {
+        for (PropertyValue<?> property : definition.getPropertyValues().values()) {
+            ObjectFactory<?> factory = property.getValueFactory();
+            if (factory != null) {
+                component.addPropertyFactory(property.getName(), factory);
             }
         }
-
-        component.setAllowsPassByReference(componentType.isAllowsPassByReference());
-
-        if (componentType.getConversationIDMember() != null) {
-            component.addConversationIDFactory(componentType.getConversationIDMember());
-        }
-
-        return component;
     }
 
     protected Class<JavaImplementation> getImplementationType() {

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=496286&r1=496285&r2=496286
==============================================================================
--- 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 Mon Jan 15 03:50:32 2007
@@ -117,7 +117,14 @@
             evaluateConstructor(type, clazz);
             return;
         }
+        calcPropRefs(methods, services, type, clazz);
+        evaluateConstructor(type, clazz);
+    }
 
+    private <T> void calcPropRefs(Set<Method> methods,
+                                  Map<String, JavaMappedService> services,
+                                  PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type,
+                                  Class<T> clazz) throws ProcessingException {
         // heuristically determine the properties references
         // make a first pass through all public methods with one param
         for (Method method : methods) {
@@ -167,7 +174,6 @@
                 type.add(createProperty(field.getName(), field, paramType));
             }
         }
-        evaluateConstructor(type, clazz);
     }
 
     /**
@@ -254,26 +260,43 @@
             }
             boolean empty = props.size() + refs.size() == 0;
             if (!empty) {
-                // the constructor param types must unambiguously match defined reference or property types
-                for (Class param : params) {
-                    String name = findReferenceOrProperty(param, props, refs);
-                    if (name == null) {
-                        throw new AmbiguousConstructorException(param.getName());
-                    }
-                    paramNames.add(name);
-                }
+                calcParamNames(params, props, refs, paramNames);
             } else {
-                // heuristically determine refs and props from the parameter types
-                for (Class<?> param : params) {
-                    String name = getBaseName(param).toLowerCase();
-                    if (isReferenceType(param)) {
-                        refs.put(name, createReference(name, null, param));
-                    } else {
-                        props.put(name, createProperty(name, null, param));
-                    }
-                    paramNames.add(name);
-                }
+                heuristicParamNames(params, refs, props, paramNames);
+
+            }
+        }
+    }
+
+    private void calcParamNames(Class[] params,
+                                Map<String, JavaMappedProperty<?>> props,
+                                Map<String, JavaMappedReference> refs,
+                                List<String> paramNames)
+        throws AmbiguousConstructorException {
+        // the constructor param types must unambiguously match defined reference or property types
+        for (Class param : params) {
+            String name = findReferenceOrProperty(param, props, refs);
+            if (name == null) {
+                throw new AmbiguousConstructorException(param.getName());
+            }
+            paramNames.add(name);
+        }
+    }
+
+    private void heuristicParamNames(Class[] params,
+                                     Map<String, JavaMappedReference> refs,
+                                     Map<String, JavaMappedProperty<?>> props,
+                                     List<String> paramNames)
+        throws ProcessingException {
+        // heuristically determine refs and props from the parameter types
+        for (Class<?> param : params) {
+            String name = getBaseName(param).toLowerCase();
+            if (isReferenceType(param)) {
+                refs.put(name, createReference(name, null, param));
+            } else {
+                props.put(name, createProperty(name, null, param));
             }
+            paramNames.add(name);
         }
     }
 

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/util/JavaIntrospectionHelper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/util/JavaIntrospectionHelper.java?view=diff&rev=496286&r1=496285&r2=496286
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/util/JavaIntrospectionHelper.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/util/JavaIntrospectionHelper.java Mon Jan 15 03:50:32 2007
@@ -263,7 +263,7 @@
     }
 
     public static <T> Constructor<T> getDefaultConstructor(Class<T> clazz) throws NoSuchMethodException {
-        return clazz.getConstructor((Class[])null);
+        return clazz.getConstructor((Class[]) null);
     }
 
     /**
@@ -279,7 +279,7 @@
     /**
      * Returns the simple name of a class - i.e. the class name devoid of its package qualifier
      *
-     * @param implClass
+     * @param implClass the implmentation class
      */
     public static String getBaseName(Class<?> implClass) {
         String baseName = implClass.getName();

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/databinding/impl/IDLTransformerTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/databinding/impl/IDLTransformerTestCase.java?view=diff&rev=496286&r1=496285&r2=496286
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/databinding/impl/IDLTransformerTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/databinding/impl/IDLTransformerTestCase.java Mon Jan 15 03:50:32 2007
@@ -36,7 +36,7 @@
 import org.apache.tuscany.spi.databinding.extension.SimpleTypeMapperExtension;
 import org.apache.tuscany.spi.idl.ElementInfo;
 import org.apache.tuscany.spi.idl.TypeInfo;
-import org.apache.tuscany.spi.idl.WrapperInfo;
+import org.apache.tuscany.spi.model.WrapperInfo;
 import org.apache.tuscany.spi.model.DataType;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;

Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/event/AbstractEventPublisher.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/event/AbstractEventPublisher.java?view=diff&rev=496286&r1=496285&r2=496286
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/event/AbstractEventPublisher.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/event/AbstractEventPublisher.java Mon Jan 15 03:50:32 2007
@@ -23,8 +23,6 @@
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.CopyOnWriteArrayList;
 
-import org.apache.tuscany.spi.component.PrepareException;
-
 /**
  * Base implementation of an <code>EventPublisher</code>
  *
@@ -80,10 +78,6 @@
             listeners = new ConcurrentHashMap<EventFilter, List<RuntimeEventListener>>();
         }
         return listeners;
-    }
-
-    public void prepare() throws PrepareException {
-
     }
 
 }

Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Operation.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Operation.java?view=diff&rev=496286&r1=496285&r2=496286
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Operation.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Operation.java Mon Jan 15 03:50:32 2007
@@ -24,8 +24,6 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.tuscany.spi.idl.WrapperInfo;
-
 /**
  * Represents an operation that is part of a service contract. The type paramter of this operation identifies the
  * logical type system for all data types.

Copied: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/WrapperInfo.java (from r495985, incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/WrapperInfo.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/WrapperInfo.java?view=diff&rev=496286&p1=incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/WrapperInfo.java&r1=495985&p2=incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/WrapperInfo.java&r2=496286
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/idl/WrapperInfo.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/WrapperInfo.java Mon Jan 15 03:50:32 2007
@@ -17,12 +17,12 @@
  * under the License.    
  */
 
-package org.apache.tuscany.spi.idl;
+package org.apache.tuscany.spi.model;
 
 import java.util.List;
 import javax.xml.namespace.QName;
 
-import org.apache.tuscany.spi.model.DataType;
+import org.apache.tuscany.spi.idl.ElementInfo;
 
 /**
  * The "Wrapper Style" WSDL operation is defined by The Java API for XML-Based Web Services (JAX-WS) 2.0 specification,
@@ -36,6 +36,8 @@
  * The wrapper elements only contain child elements, they must not contain other structures such as wildcards (element
  * or attribute), xsd:choice, substitution groups (element references are not permitted) or attributes; furthermore,
  * they must not be nillable. </ul>
+ *
+ * @version $Rev$ $Date$
  */
 public class WrapperInfo {
     private ElementInfo inputWrapperElement;
@@ -50,14 +52,6 @@
 
     private DataType<QName> unwrappedOutputType;
 
-    /**
-     * @param inputWrapperElement
-     * @param outputWrapperElement
-     * @param inputElements
-     * @param outputElements
-     * @param unwrappedInputType
-     * @param unwrappedOutputType
-     */
     public WrapperInfo(ElementInfo inputWrapperElement,
                        ElementInfo outputWrapperElement,
                        List<ElementInfo> inputElements,

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

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

Modified: incubator/tuscany/java/sca/services/idl/wsdl/src/main/java/org/apache/tuscany/idl/wsdl/WSDLOperation.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/idl/wsdl/src/main/java/org/apache/tuscany/idl/wsdl/WSDLOperation.java?view=diff&rev=496286&r1=496285&r2=496286
==============================================================================
--- incubator/tuscany/java/sca/services/idl/wsdl/src/main/java/org/apache/tuscany/idl/wsdl/WSDLOperation.java (original)
+++ incubator/tuscany/java/sca/services/idl/wsdl/src/main/java/org/apache/tuscany/idl/wsdl/WSDLOperation.java Mon Jan 15 03:50:32 2007
@@ -34,7 +34,7 @@
 import org.apache.tuscany.spi.idl.ElementInfo;
 import org.apache.tuscany.spi.idl.InvalidServiceContractException;
 import org.apache.tuscany.spi.idl.TypeInfo;
-import org.apache.tuscany.spi.idl.WrapperInfo;
+import org.apache.tuscany.spi.model.WrapperInfo;
 import org.apache.tuscany.spi.model.DataType;
 
 import org.apache.ws.commons.schema.XmlSchemaComplexType;



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org