You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2007/04/27 11:01:03 UTC

svn commit: r533023 - in /incubator/tuscany/java/sca/modules: core/src/main/java/org/apache/tuscany/core/util/ implementation-java-xml/src/main/java/org/apache/tuscany/implementation/java/introspect/impl/ implementation-java-xml/src/main/java/org/apach...

Author: jsdelfino
Date: Fri Apr 27 02:01:02 2007
New Revision: 533023

URL: http://svn.apache.org/viewvc?view=rev&rev=533023
Log:
Changed the JavaImplementation and JavaInterface processors to resolve classes using the ArtifactResolver.

Modified:
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/util/JavaIntrospectionHelper.java
    incubator/tuscany/java/sca/modules/implementation-java-xml/src/main/java/org/apache/tuscany/implementation/java/introspect/impl/JavaIntrospectionHelper.java
    incubator/tuscany/java/sca/modules/implementation-java-xml/src/main/java/org/apache/tuscany/implementation/java/xml/JavaImplementationProcessor.java
    incubator/tuscany/java/sca/modules/interface-java-xml/src/main/java/org/apache/tuscany/interfacedef/java/xml/JavaInterfaceProcessor.java

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/util/JavaIntrospectionHelper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/util/JavaIntrospectionHelper.java?view=diff&rev=533023&r1=533022&r2=533023
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/util/JavaIntrospectionHelper.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/util/JavaIntrospectionHelper.java Fri Apr 27 02:01:02 2007
@@ -267,16 +267,6 @@
     }
 
     /**
-     * Loads a class corresponding to the class name using the current context class loader.
-     *
-     * @throws ClassNotFoundException if the class was not found on the classpath
-     */
-    public static Class loadClass(String pName) throws ClassNotFoundException {
-        ClassLoader loader = Thread.currentThread().getContextClassLoader();
-        return Class.forName(pName, true, loader);
-    }
-
-    /**
      * Returns the simple name of a class - i.e. the class name devoid of its package qualifier
      *
      * @param implClass the implmentation class

Modified: incubator/tuscany/java/sca/modules/implementation-java-xml/src/main/java/org/apache/tuscany/implementation/java/introspect/impl/JavaIntrospectionHelper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-xml/src/main/java/org/apache/tuscany/implementation/java/introspect/impl/JavaIntrospectionHelper.java?view=diff&rev=533023&r1=533022&r2=533023
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-xml/src/main/java/org/apache/tuscany/implementation/java/introspect/impl/JavaIntrospectionHelper.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-xml/src/main/java/org/apache/tuscany/implementation/java/introspect/impl/JavaIntrospectionHelper.java Fri Apr 27 02:01:02 2007
@@ -241,18 +241,6 @@
     }
 
     /**
-     * Loads a class corresponding to the class name using the current context
-     * class loader.
-     * 
-     * @throws ClassNotFoundException if the class was not found on the
-     *             classpath
-     */
-    public static Class loadClass(String pName) throws ClassNotFoundException {
-        ClassLoader loader = Thread.currentThread().getContextClassLoader();
-        return Class.forName(pName, true, loader);
-    }
-
-    /**
      * Returns the simple name of a class - i.e. the class name devoid of its
      * package qualifier
      * 

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=533023&r1=533022&r2=533023
==============================================================================
--- 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 Fri Apr 27 02:01:02 2007
@@ -33,6 +33,7 @@
 import org.apache.tuscany.assembly.xml.Constants;
 import org.apache.tuscany.contribution.processor.StAXArtifactProcessorExtension;
 import org.apache.tuscany.contribution.resolver.ArtifactResolver;
+import org.apache.tuscany.contribution.resolver.ClassReference;
 import org.apache.tuscany.contribution.service.ContributionReadException;
 import org.apache.tuscany.contribution.service.ContributionResolveException;
 import org.apache.tuscany.contribution.service.ContributionWireException;
@@ -42,6 +43,7 @@
 import org.apache.tuscany.implementation.java.impl.DefaultJavaImplementationFactory;
 import org.apache.tuscany.implementation.java.impl.JavaImplementationDefinition;
 import org.apache.tuscany.implementation.java.introspect.DefaultJavaClassIntrospector;
+import org.apache.tuscany.implementation.java.introspect.IntrospectionException;
 import org.apache.tuscany.implementation.java.introspect.JavaClassIntrospectorExtensionPoint;
 import org.apache.tuscany.policy.PolicyFactory;
 import org.apache.tuscany.policy.impl.DefaultPolicyFactory;
@@ -115,22 +117,28 @@
     }
 
     public void resolve(JavaImplementation javaImplementation, ArtifactResolver resolver) throws ContributionResolveException {
-        try {
-            Class javaClass = Class.forName(javaImplementation.getName(), true, Thread.currentThread().getContextClassLoader());
-            javaImplementation.setJavaClass(javaClass);
-            javaImplementation.setUnresolved(false);
-            
-            //FIXME JavaImplementationDefinition should not be mandatory 
-            if (javaImplementation instanceof JavaImplementationDefinition) {
+
+        ClassReference classReference = new ClassReference(javaImplementation.getName());
+        classReference = resolver.resolve(ClassReference.class, classReference);
+        Class javaClass = classReference.getJavaClass();
+        if (javaClass == null) {
+            throw new ContributionResolveException(new ClassNotFoundException(javaImplementation.getName()));
+        }
+        javaImplementation.setJavaClass(javaClass);
+        javaImplementation.setUnresolved(false);
+        
+        //FIXME JavaImplementationDefinition should not be mandatory 
+        if (javaImplementation instanceof JavaImplementationDefinition) {
+            try {
                 introspector.introspect(javaImplementation.getJavaClass(), (JavaImplementationDefinition)javaImplementation);
-                
-                //FIXME the introspector should always create at least one service
-                if (javaImplementation.getServices().isEmpty()) {
-                    javaImplementation.getServices().add(new ServiceImpl());
-                }
+            } catch (IntrospectionException e) {
+                throw new ContributionResolveException(e);
+            }
+            
+            //FIXME the introspector should always create at least one service
+            if (javaImplementation.getServices().isEmpty()) {
+                javaImplementation.getServices().add(new ServiceImpl());
             }
-        } catch (Exception e) {
-            throw new ContributionResolveException(e);
         }
     }
 

Modified: incubator/tuscany/java/sca/modules/interface-java-xml/src/main/java/org/apache/tuscany/interfacedef/java/xml/JavaInterfaceProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface-java-xml/src/main/java/org/apache/tuscany/interfacedef/java/xml/JavaInterfaceProcessor.java?view=diff&rev=533023&r1=533022&r2=533023
==============================================================================
--- incubator/tuscany/java/sca/modules/interface-java-xml/src/main/java/org/apache/tuscany/interfacedef/java/xml/JavaInterfaceProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/interface-java-xml/src/main/java/org/apache/tuscany/interfacedef/java/xml/JavaInterfaceProcessor.java Fri Apr 27 02:01:02 2007
@@ -29,6 +29,7 @@
 import org.apache.tuscany.assembly.xml.Constants;
 import org.apache.tuscany.contribution.processor.StAXArtifactProcessorExtension;
 import org.apache.tuscany.contribution.resolver.ArtifactResolver;
+import org.apache.tuscany.contribution.resolver.ClassReference;
 import org.apache.tuscany.contribution.service.ContributionReadException;
 import org.apache.tuscany.contribution.service.ContributionResolveException;
 import org.apache.tuscany.contribution.service.ContributionWireException;
@@ -119,20 +120,24 @@
             if (javaInterface.isUnresolved()) {
 
                 // If the Java interface has never been resolved yet, do it now
-                Class javaClass;
+                ClassReference classReference = new ClassReference(javaInterface.getName());
+                classReference = resolver.resolve(ClassReference.class, classReference);
+                Class javaClass = classReference.getJavaClass();
+                if (javaClass == null) {
+                    throw new ContributionResolveException(new ClassNotFoundException(javaInterface.getName()));
+                }
                 try {
-                    javaClass = Class.forName(javaInterface.getName(), true, Thread.currentThread().getContextClassLoader());
                         
                     // Introspect the Java interface and populate the interface and
                     // operations
                     javaInterface = introspector.introspect(javaClass);
                 
-                } catch (ClassNotFoundException e) {
-                    throw new ContributionResolveException(e);
                 } catch (InvalidInterfaceException e) {
                     throw new ContributionResolveException(e);
                 }
-                
+
+                // Cache the resolved interface
+                javaInterface.setUnresolved(false);
                 resolver.add(javaInterface);
             }
         }



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org