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/04/10 06:21:48 UTC
svn commit: r527015 -
/incubator/tuscany/java/sca/modules/implementation-java-xml/src/main/java/org/apache/tuscany/implementation/java/xml/JavaImplementationProcessor.java
Author: rfeng
Date: Mon Apr 9 21:21:46 2007
New Revision: 527015
URL: http://svn.apache.org/viewvc?view=rev&rev=527015
Log:
Implement resolve() to hook with IntrospectionRegistry
Modified:
incubator/tuscany/java/sca/modules/implementation-java-xml/src/main/java/org/apache/tuscany/implementation/java/xml/JavaImplementationProcessor.java
Modified: incubator/tuscany/java/sca/modules/implementation-java-xml/src/main/java/org/apache/tuscany/implementation/java/xml/JavaImplementationProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-xml/src/main/java/org/apache/tuscany/implementation/java/xml/JavaImplementationProcessor.java?view=diff&rev=527015&r1=527014&r2=527015
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-xml/src/main/java/org/apache/tuscany/implementation/java/xml/JavaImplementationProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-xml/src/main/java/org/apache/tuscany/implementation/java/xml/JavaImplementationProcessor.java Mon Apr 9 21:21:46 2007
@@ -31,6 +31,8 @@
import org.apache.tuscany.implementation.java.JavaImplementation;
import org.apache.tuscany.implementation.java.JavaImplementationFactory;
import org.apache.tuscany.implementation.java.impl.DefaultJavaImplementationFactory;
+import org.apache.tuscany.implementation.java.impl.JavaImplementationDefinition;
+import org.apache.tuscany.implementation.java.introspection.IntrospectionRegistry;
import org.apache.tuscany.services.spi.contribution.ArtifactResolver;
import org.apache.tuscany.services.spi.contribution.ContributionReadException;
import org.apache.tuscany.services.spi.contribution.ContributionResolveException;
@@ -38,9 +40,11 @@
import org.apache.tuscany.services.spi.contribution.ContributionWriteException;
import org.apache.tuscany.services.spi.contribution.StAXArtifactProcessor;
-public class JavaImplementationProcessor implements StAXArtifactProcessor<JavaImplementation>, JavaImplementationConstants {
+public class JavaImplementationProcessor implements StAXArtifactProcessor<JavaImplementation>,
+ JavaImplementationConstants {
private JavaImplementationFactory javaFactory;
+ private IntrospectionRegistry introspectionRegistry;
public JavaImplementationProcessor(JavaImplementationFactory javaFactory) {
this.javaFactory = javaFactory;
@@ -53,12 +57,12 @@
public JavaImplementation read(XMLStreamReader reader) throws ContributionReadException {
try {
-
+
// Read an <interface.java>
JavaImplementation javaImplementation = javaFactory.createJavaImplementation();
javaImplementation.setUnresolved(true);
javaImplementation.setName(reader.getAttributeValue(null, CLASS));
-
+
// Skip to end element
while (reader.hasNext()) {
if (reader.next() == END_ELEMENT && IMPLEMENTATION_JAVA_QNAME.equals(reader.getName())) {
@@ -66,12 +70,12 @@
}
}
return javaImplementation;
-
+
} catch (XMLStreamException e) {
throw new ContributionReadException(e);
}
}
-
+
public void write(JavaImplementation javaImplementation, XMLStreamWriter writer) throws ContributionWriteException {
try {
// Write an <interface.java>
@@ -80,25 +84,47 @@
writer.writeAttribute(CLASS, javaImplementation.getName());
}
writer.writeEndElement();
-
+
} catch (XMLStreamException e) {
throw new ContributionWriteException(e);
}
}
-
+
public void resolve(JavaImplementation model, ArtifactResolver resolver) throws ContributionResolveException {
- // TODO Auto-generated method stub
+ try {
+ Class javaClass = Class.forName(model.getName(), true, Thread.currentThread().getContextClassLoader());
+ model.setJavaClass(javaClass);
+ introspectionRegistry.introspect(model.getJavaClass(), (JavaImplementationDefinition)model);
+ model.setUnresolved(false);
+ resolver.add(model);
+ } catch (Exception e) {
+ throw new ContributionResolveException(e);
+ }
}
-
+
public void wire(JavaImplementation model) throws ContributionWireException {
// TODO Auto-generated method stub
}
-
+
public QName getArtifactType() {
return IMPLEMENTATION_JAVA_QNAME;
}
-
+
public Class<JavaImplementation> getModelType() {
return JavaImplementation.class;
+ }
+
+ /**
+ * @param introspectionRegistry the introspectionRegistry to set
+ */
+ public void setIntrospectionRegistry(IntrospectionRegistry introspectionRegistry) {
+ this.introspectionRegistry = introspectionRegistry;
+ }
+
+ /**
+ * @param javaFactory the javaFactory to set
+ */
+ public void setJavaFactory(JavaImplementationFactory javaFactory) {
+ this.javaFactory = javaFactory;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org