Author: lresende
Date: Thu Jan 29 01:02:16 2009
New Revision: 738689
URL: http://svn.apache.org/viewvc?rev=738689&view=rev
Log:
Adding support for extended attributes to java implementation
Modified:
tuscany/branches/sca-java-1.x/modules/binding-ws-xml/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java
tuscany/branches/sca-java-1.x/modules/implementation-java-xml/pom.xml
tuscany/branches/sca-java-1.x/modules/implementation-java-xml/src/main/java/org/apache/tuscany/sca/implementation/java/xml/JavaImplementationProcessor.java
Modified:
tuscany/branches/sca-java-1.x/modules/binding-ws-xml/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java
URL:
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/binding-ws-xml/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java?rev=738689&r1=738688&r2=738689&view=diff
==============================================================================
---
tuscany/branches/sca-java-1.x/modules/binding-ws-xml/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java
(original)
+++
tuscany/branches/sca-java-1.x/modules/binding-ws-xml/src/main/java/org/apache/tuscany/sca/binding/ws/xml/WebServiceBindingProcessor.java
Thu Jan 29 01:02:16 2009
@@ -86,7 +86,7 @@
private StAXAttributeProcessor<Object> extensionAttributeProcessor;
private Monitor monitor;
- public WebServiceBindingProcessor(ExtensionPointRegistry extensionPoints) {
+ public WebServiceBindingProcessor(ExtensionPointRegistry extensionPoints,
Monitor monitor) {
this.extensionPoints = extensionPoints;
ModelFactoryExtensionPoint modelFactories =
extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class);
@@ -96,11 +96,7 @@
this.extensionFactory =
modelFactories.getFactory(ExtensionFactory.class);
this.policyProcessor = new PolicyAttachPointProcessor(policyFactory);
this.intentAttachPointTypeFactory =
modelFactories.getFactory(IntentAttachPointTypeFactory.class);
- UtilityExtensionPoint utilities =
extensionPoints.getExtensionPoint(UtilityExtensionPoint.class);
- MonitorFactory monitorFactory =
utilities.getUtility(MonitorFactory.class);
- if (monitorFactory != null) {
- this.monitor = monitorFactory.createMonitor();
- }
+ this.monitor = monitor;
this.configuredOperationProcessor = new
ConfiguredOperationProcessor(modelFactories, this.monitor);
this.extensionAttributeProcessor =
extensionPoints.getExtensionPoint(ExtensibleStAXAttributeProcessor.class);
}
@@ -351,6 +347,7 @@
writer.writeAttribute(WSDLI_NS, WSDL_LOCATION,
wsBinding.getLocation());
}
+ // Write extended attributes
for(Extension extension : wsBinding.getAttributeExtensions()) {
if(extension.isAttribute()) {
extensionAttributeProcessor.write(extension, writer);
Modified: tuscany/branches/sca-java-1.x/modules/implementation-java-xml/pom.xml
URL:
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/implementation-java-xml/pom.xml?rev=738689&r1=738688&r2=738689&view=diff
==============================================================================
--- tuscany/branches/sca-java-1.x/modules/implementation-java-xml/pom.xml
(original)
+++ tuscany/branches/sca-java-1.x/modules/implementation-java-xml/pom.xml Thu
Jan 29 01:02:16 2009
@@ -33,7 +33,7 @@
<dependency>
<groupId>org.apache.tuscany.sca</groupId>
<artifactId>tuscany-assembly-xml</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>${version}</version>
</dependency>
<dependency>
Modified:
tuscany/branches/sca-java-1.x/modules/implementation-java-xml/src/main/java/org/apache/tuscany/sca/implementation/java/xml/JavaImplementationProcessor.java
URL:
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/implementation-java-xml/src/main/java/org/apache/tuscany/sca/implementation/java/xml/JavaImplementationProcessor.java?rev=738689&r1=738688&r2=738689&view=diff
==============================================================================
---
tuscany/branches/sca-java-1.x/modules/implementation-java-xml/src/main/java/org/apache/tuscany/sca/implementation/java/xml/JavaImplementationProcessor.java
(original)
+++
tuscany/branches/sca-java-1.x/modules/implementation-java-xml/src/main/java/org/apache/tuscany/sca/implementation/java/xml/JavaImplementationProcessor.java
Thu Jan 29 01:02:16 2009
@@ -36,6 +36,8 @@
import org.apache.tuscany.sca.assembly.AssemblyFactory;
import org.apache.tuscany.sca.assembly.ComponentType;
import org.apache.tuscany.sca.assembly.ConfiguredOperation;
+import org.apache.tuscany.sca.assembly.Extension;
+import org.apache.tuscany.sca.assembly.ExtensionFactory;
import org.apache.tuscany.sca.assembly.OperationsConfigurator;
import org.apache.tuscany.sca.assembly.Property;
import org.apache.tuscany.sca.assembly.Reference;
@@ -46,6 +48,7 @@
import org.apache.tuscany.sca.assembly.xml.PolicyAttachPointProcessor;
import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
+import org.apache.tuscany.sca.contribution.processor.StAXAttributeProcessor;
import org.apache.tuscany.sca.contribution.resolver.ClassReference;
import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
import org.apache.tuscany.sca.contribution.service.ContributionReadException;
@@ -71,22 +74,29 @@
public class JavaImplementationProcessor implements
StAXArtifactProcessor<JavaImplementation>,
JavaImplementationConstants {
- private JavaImplementationFactory javaFactory;
private AssemblyFactory assemblyFactory;
private PolicyFactory policyFactory;
+ private ExtensionFactory extensionFactory;
+ private JavaImplementationFactory javaFactory;
private PolicyAttachPointProcessor policyProcessor;
private IntentAttachPointTypeFactory intentAttachPointTypeFactory;
private ConfiguredOperationProcessor configuredOperationProcessor;
+ private StAXAttributeProcessor<Object> extensionAttributeProcessor;
private Monitor monitor;
- public JavaImplementationProcessor(ModelFactoryExtensionPoint
modelFactories, Monitor monitor) {
+ public JavaImplementationProcessor(ModelFactoryExtensionPoint
modelFactories,
+ StAXArtifactProcessor
extensionProcessor,
+ StAXAttributeProcessor
extensionAttributeProcessor,
+ Monitor monitor) {
this.assemblyFactory =
modelFactories.getFactory(AssemblyFactory.class);
this.policyFactory = modelFactories.getFactory(PolicyFactory.class);
+ this.extensionFactory =
modelFactories.getFactory(ExtensionFactory.class);
this.javaFactory =
modelFactories.getFactory(JavaImplementationFactory.class);
this.policyProcessor = new PolicyAttachPointProcessor(policyFactory);
this.intentAttachPointTypeFactory =
modelFactories.getFactory(IntentAttachPointTypeFactory.class);
this.monitor = monitor;
this.configuredOperationProcessor = new
ConfiguredOperationProcessor(modelFactories, this.monitor);
+ this.extensionAttributeProcessor = extensionAttributeProcessor;
}
/**
@@ -134,6 +144,26 @@
// Read policies
policyProcessor.readPolicies(javaImplementation, reader);
+
+ // Handle extended attributes
+ for (int a = 0; a < reader.getAttributeCount(); a++) {
+ QName attributeName = reader.getAttributeName(a);
+ if( attributeName.getNamespaceURI() != null &&
attributeName.getNamespaceURI().length() > 0) {
+ if( (!
Constants.SCA10_NS.equals(attributeName.getNamespaceURI()) &&
+ (!
Constants.SCA10_TUSCANY_NS.equals(attributeName.getNamespaceURI()) ))) {
+ Object attributeValue =
extensionAttributeProcessor.read(attributeName, reader);
+ Extension attributeExtension;
+ if (attributeValue instanceof Extension) {
+ attributeExtension = (Extension) attributeValue;
+ } else {
+ attributeExtension =
extensionFactory.createExtension(attributeName, attributeValue, true);
+ }
+
javaImplementation.getAttributeExtensions().add(attributeExtension);
+ }
+ }
+ }
+
+
// read operation elements if exists or skip unto end element
int event;
@@ -171,6 +201,13 @@
writer.writeAttribute(CLASS, javaImplementation.getName());
}
+ // Write extended attributes
+ for(Extension extension : javaImplementation.getAttributeExtensions())
{
+ if(extension.isAttribute()) {
+ extensionAttributeProcessor.write(extension, writer);
+ }
+ }
+
writer.writeEndElement();
}