You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2007/03/29 23:45:45 UTC
svn commit: r523844 - in /incubator/tuscany/java/sca/kernel: ./ core/
core/src/main/java/org/apache/tuscany/core/databinding/
core/src/main/java/org/apache/tuscany/core/implementation/
core/src/main/java/org/apache/tuscany/core/property/ core/src/main/...
Author: rfeng
Date: Thu Mar 29 14:45:40 2007
New Revision: 523844
URL: http://svn.apache.org/viewvc?view=rev&rev=523844
Log:
Integrate the core with the databinding-framework and remove databinding-related code from spi and core as now they are in submodules
Removed:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/
incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/databinding.scdl
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/databinding/
incubator/tuscany/java/sca/kernel/core/src/test/resources/org/apache/tuscany/core/databinding/
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/databinding/
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/databinding/
Modified:
incubator/tuscany/java/sca/kernel/core/pom.xml
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/IntrospectionRegistryImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/PropertyHelper.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/PropertyObjectFactoryImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/SimplePropertyObjectFactory.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/property/PropertyHelperTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/resources/org/apache/tuscany/core/deployer/boot2.scdl
incubator/tuscany/java/sca/kernel/databinding/src/main/resources/org/apache/tuscany/core/databinding.scdl
incubator/tuscany/java/sca/kernel/pom.xml
Modified: incubator/tuscany/java/sca/kernel/core/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/pom.xml?view=diff&rev=523844&r1=523843&r2=523844
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/pom.xml (original)
+++ incubator/tuscany/java/sca/kernel/core/pom.xml Thu Mar 29 14:45:40 2007
@@ -39,6 +39,13 @@
</dependency>
<dependency>
+ <groupId>org.apache.tuscany.sca.kernel</groupId>
+ <artifactId>tuscany-core-databinding</artifactId>
+ <version>${project.version}</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
<groupId>org.apache.tuscany</groupId>
<artifactId>commonj-api_r1.1</artifactId>
<version>1.0-incubator-M2</version>
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/IntrospectionRegistryImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/IntrospectionRegistryImpl.java?view=diff&rev=523844&r1=523843&r2=523844
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/IntrospectionRegistryImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/IntrospectionRegistryImpl.java Thu Mar 29 14:45:40 2007
@@ -73,8 +73,33 @@
processors.remove(processor);
}
+ /**
+ * JSR-250 PFD recommends the following guidelines for how annotations
+ * interact with inheritance in order to keep the resulting complexity in
+ * control:
+ * <ol>
+ * <li>Class-level annotations only affect the class they annotate and
+ * their members, that is, its methods and fields. They never affect a
+ * member declared by a superclass, even if it is not hidden or overridden
+ * by the class in question.
+ * <li>In addition to affecting the annotated class, class-level
+ * annotations may act as a shorthand for member-level annotations. If a
+ * member carries a specific member-level annotation, any annotations of the
+ * same type implied by a class-level annotation are ignored. In other
+ * words, explicit member-level annotations have priority over member-level
+ * annotations implied by a class-level annotation.
+ * <li>The interfaces implemented by a class never contribute annotations
+ * to the class itself or any of its members.
+ * <li>Members inherited from a superclass and which are not hidden or
+ * overridden maintain the annotations they had in the class that declared
+ * them, including member-level annotations implied by class-level ones.
+ * <li>Member-level annotations on a hidden or overridden member are always
+ * ignored.
+ * </ol>
+ */
public PojoComponentType introspect(Class<?> clazz,
- PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type,
+ PojoComponentType<JavaMappedService,
+ JavaMappedReference, JavaMappedProperty<?>> type,
DeploymentContext context) throws ProcessingException {
for (ImplementationProcessor processor : processors) {
processor.visitClass(clazz, type, context);
@@ -83,7 +108,8 @@
for (Constructor<?> constructor : clazz.getConstructors()) {
for (ImplementationProcessor processor : processors) {
processor.visitConstructor(constructor, type, context);
- // Assuming the visitClass or visitConstructor will populate the type.getConstructors
+ // Assuming the visitClass or visitConstructor will populate the
+ // type.getConstructors
ConstructorDefinition<?> definition = type.getConstructors().get(constructor);
if (definition != null) {
for (Parameter p : definition.getParameters()) {
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/PropertyHelper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/PropertyHelper.java?view=diff&rev=523844&r1=523843&r2=523844
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/PropertyHelper.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/PropertyHelper.java Thu Mar 29 14:45:40 2007
@@ -24,6 +24,7 @@
import java.net.URL;
import java.util.Iterator;
import java.util.Map;
+
import javax.xml.namespace.NamespaceContext;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.xpath.XPath;
@@ -32,9 +33,7 @@
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-
+import org.apache.tuscany.databinding.xml.InputStream2Node;
import org.apache.tuscany.spi.databinding.extension.DOMHelper;
import org.apache.tuscany.spi.deployer.DeploymentContext;
import org.apache.tuscany.spi.loader.InvalidValueException;
@@ -44,8 +43,8 @@
import org.apache.tuscany.spi.model.Implementation;
import org.apache.tuscany.spi.model.Property;
import org.apache.tuscany.spi.model.PropertyValue;
-
-import org.apache.tuscany.core.databinding.xml.InputStream2Node;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
/**
* The property factory backed by the DataBindingframework
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/PropertyObjectFactoryImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/PropertyObjectFactoryImpl.java?view=diff&rev=523844&r1=523843&r2=523844
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/PropertyObjectFactoryImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/PropertyObjectFactoryImpl.java Thu Mar 29 14:45:40 2007
@@ -21,26 +21,24 @@
import javax.xml.namespace.QName;
-import org.w3c.dom.Node;
-import org.osoa.sca.annotations.Constructor;
-import org.osoa.sca.annotations.Reference;
-import org.osoa.sca.annotations.Scope;
-import org.osoa.sca.annotations.Service;
-
+import org.apache.tuscany.databinding.xml.DOMDataBinding;
import org.apache.tuscany.spi.ObjectCreationException;
import org.apache.tuscany.spi.ObjectFactory;
-import org.apache.tuscany.spi.databinding.DataBinding;
import org.apache.tuscany.spi.databinding.DataBindingRegistry;
import org.apache.tuscany.spi.databinding.Mediator;
import org.apache.tuscany.spi.databinding.extension.SimpleTypeMapperExtension;
-import org.apache.tuscany.spi.model.ElementInfo;
-import org.apache.tuscany.spi.model.TypeInfo;
import org.apache.tuscany.spi.loader.PropertyObjectFactory;
import org.apache.tuscany.spi.model.DataType;
+import org.apache.tuscany.spi.model.ElementInfo;
import org.apache.tuscany.spi.model.Property;
import org.apache.tuscany.spi.model.PropertyValue;
-
-import org.apache.tuscany.core.databinding.xml.DOMDataBinding;
+import org.apache.tuscany.spi.model.TypeInfo;
+import org.apache.tuscany.spi.model.XMLType;
+import org.osoa.sca.annotations.Constructor;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Scope;
+import org.osoa.sca.annotations.Service;
+import org.w3c.dom.Node;
@Service(PropertyObjectFactory.class)
@Scope("COMPOSITE")
@@ -68,13 +66,14 @@
public class ObjectFactoryImpl<P> implements ObjectFactory<P> {
private Property<P> property;
private PropertyValue<P> propertyValue;
- private DataType<QName> sourceDataType;
+ private DataType<XMLType> sourceDataType;
private DataType<?> targetDataType;
public ObjectFactoryImpl(Property<P> property, PropertyValue<P> propertyValue) {
this.property = property;
this.propertyValue = propertyValue;
- sourceDataType = new DataType<QName>(DOMDataBinding.NAME, Node.class, this.property.getXmlType());
+ sourceDataType = new DataType<XMLType>(DOMDataBinding.NAME, Node.class,
+ new XMLType(null, this.property.getXmlType()));
TypeInfo typeInfo = null;
if (this.property.getXmlType() != null) {
if (SimpleTypeMapperExtension.isSimpleXSDType(this.property.getXmlType())) {
@@ -89,14 +88,12 @@
ElementInfo elementInfo = new ElementInfo(null, typeInfo);
sourceDataType.setMetadata(ElementInfo.class.getName(), elementInfo);
Class javaType = this.property.getJavaType();
- String dataBinding = (String) property.getExtensions().get(DataBinding.class.getName());
+ String dataBinding = (String) property.getExtensions().get("databinding");
if (dataBinding != null) {
targetDataType = new DataType<Class>(dataBinding, javaType, javaType);
} else {
- targetDataType = registry.introspectType(javaType);
- if (targetDataType == null) {
- targetDataType = new DataType<Class>("java.lang.Object", javaType, javaType);
- }
+ targetDataType = new DataType<Class>("java.lang.Object", javaType, javaType);
+ registry.introspectType(targetDataType, null);
}
}
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/SimplePropertyObjectFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/SimplePropertyObjectFactory.java?view=diff&rev=523844&r1=523843&r2=523844
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/SimplePropertyObjectFactory.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/SimplePropertyObjectFactory.java Thu Mar 29 14:45:40 2007
@@ -22,9 +22,8 @@
import org.apache.tuscany.spi.ObjectCreationException;
import org.apache.tuscany.spi.ObjectFactory;
import org.apache.tuscany.spi.databinding.extension.SimpleTypeMapperExtension;
-import org.apache.tuscany.spi.model.TypeInfo;
import org.apache.tuscany.spi.model.Property;
-
+import org.apache.tuscany.spi.model.TypeInfo;
import org.w3c.dom.Document;
public class SimplePropertyObjectFactory<P> implements ObjectFactory<P> {
@@ -57,7 +56,7 @@
if (xmlType == null) {
throw new IllegalArgumentException("Complex property is not supported.");
}
- instance = (P)typeMapper.toJavaObject(xmlType, text, null);
+ instance = (P)typeMapper.toJavaObject(xmlType.getQName(), text, null);
}
return instance;
}
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/property/PropertyHelperTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/property/PropertyHelperTestCase.java?view=diff&rev=523844&r1=523843&r2=523844
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/property/PropertyHelperTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/property/PropertyHelperTestCase.java Thu Mar 29 14:45:40 2007
@@ -20,16 +20,16 @@
package org.apache.tuscany.core.property;
import java.net.URL;
+
import javax.xml.namespace.NamespaceContext;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
+import junit.framework.TestCase;
+import org.apache.tuscany.databinding.xml.String2Node;
import org.apache.tuscany.spi.deployer.DeploymentContext;
-
-import junit.framework.TestCase;
-import org.apache.tuscany.core.databinding.xml.String2Node;
import org.easymock.EasyMock;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
/**
*
Modified: incubator/tuscany/java/sca/kernel/core/src/test/resources/org/apache/tuscany/core/deployer/boot2.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/resources/org/apache/tuscany/core/deployer/boot2.scdl?view=diff&rev=523844&r1=523843&r2=523844
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/resources/org/apache/tuscany/core/deployer/boot2.scdl (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/resources/org/apache/tuscany/core/deployer/boot2.scdl Thu Mar 29 14:45:40 2007
@@ -135,17 +135,17 @@
<!-- DataBinding registry -->
<component name="databinding.registry">
- <system:implementation.system class="org.apache.tuscany.core.databinding.impl.DataBindingRegistryImpl"/>
+ <system:implementation.system class="org.apache.tuscany.databinding.impl.DataBindingRegistryImpl"/>
</component>
<!-- DataBinding registry -->
<component name="databinding.mediator">
- <system:implementation.system class="org.apache.tuscany.core.databinding.impl.MediatorImpl"/>
+ <system:implementation.system class="org.apache.tuscany.databinding.impl.MediatorImpl"/>
</component>
<!-- Transformer registry -->
<component name="databinding.transformerRegistry" initLevel="90">
- <system:implementation.system class="org.apache.tuscany.core.databinding.impl.TransformerRegistryImpl"/>
+ <system:implementation.system class="org.apache.tuscany.databinding.impl.TransformerRegistryImpl"/>
</component>
<component name="propertyFactory">
Modified: incubator/tuscany/java/sca/kernel/databinding/src/main/resources/org/apache/tuscany/core/databinding.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/databinding/src/main/resources/org/apache/tuscany/core/databinding.scdl?view=diff&rev=523844&r1=523843&r2=523844
==============================================================================
--- incubator/tuscany/java/sca/kernel/databinding/src/main/resources/org/apache/tuscany/core/databinding.scdl (original)
+++ incubator/tuscany/java/sca/kernel/databinding/src/main/resources/org/apache/tuscany/core/databinding.scdl Thu Mar 29 14:45:40 2007
@@ -36,17 +36,17 @@
-->
<!-- DataBinding registry -->
- <component name="databinding.registry">
+ <component name="databinding.registry" initLevel="30">
<system:implementation.system class="org.apache.tuscany.databinding.impl.DataBindingRegistryImpl" />
</component>
- <!-- DataBinding registry -->
- <component name="databinding.mediator">
+ <!-- DataBinding Mediator -->
+ <component name="databinding.mediator" initLeve="35">
<system:implementation.system class="org.apache.tuscany.databinding.impl.MediatorImpl" />
</component>
<!-- Transformer registry -->
- <component name="databinding.transformerRegistry" initLevel="90">
+ <component name="databinding.transformerRegistry" initLevel="32">
<system:implementation.system class="org.apache.tuscany.databinding.impl.TransformerRegistryImpl" />
</component>
Modified: incubator/tuscany/java/sca/kernel/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/pom.xml?view=diff&rev=523844&r1=523843&r2=523844
==============================================================================
--- incubator/tuscany/java/sca/kernel/pom.xml (original)
+++ incubator/tuscany/java/sca/kernel/pom.xml Thu Mar 29 14:45:40 2007
@@ -139,6 +139,7 @@
<module>host-api</module>
<module>spi</module>
<module>core</module>
+ <module>databinding</module>
</modules>
<build>
<defaultGoal>install</defaultGoal>
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org