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