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