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