diff options
Diffstat (limited to 'java/sca/modules/implementation-java-xml')
-rw-r--r-- | java/sca/modules/implementation-java-xml/src/main/java/org/apache/tuscany/sca/implementation/java/xml/JavaImplementationProcessor.java | 60 |
1 files changed, 32 insertions, 28 deletions
diff --git a/java/sca/modules/implementation-java-xml/src/main/java/org/apache/tuscany/sca/implementation/java/xml/JavaImplementationProcessor.java b/java/sca/modules/implementation-java-xml/src/main/java/org/apache/tuscany/sca/implementation/java/xml/JavaImplementationProcessor.java index a39e387b5f..c325c871f4 100644 --- a/java/sca/modules/implementation-java-xml/src/main/java/org/apache/tuscany/sca/implementation/java/xml/JavaImplementationProcessor.java +++ b/java/sca/modules/implementation-java-xml/src/main/java/org/apache/tuscany/sca/implementation/java/xml/JavaImplementationProcessor.java @@ -167,34 +167,38 @@ public class JavaImplementationProcessor implements StAXArtifactProcessor<JavaIm public void resolve(JavaImplementation javaImplementation, ModelResolver resolver) throws ContributionResolveException { - ClassReference classReference = new ClassReference(javaImplementation.getName()); - classReference = resolver.resolveModel(ClassReference.class, classReference); - Class<?> javaClass = classReference.getJavaClass(); - if (javaClass == null) { - error("ClassNotFoundException", resolver, javaImplementation.getName()); - //throw new ContributionResolveException(new ClassNotFoundException(javaImplementation.getName())); - return; - } - - javaImplementation.setJavaClass(javaClass); - - try { - javaFactory.createJavaImplementation(javaImplementation, javaImplementation.getJavaClass()); - } catch (IntrospectionException e) { - ContributionResolveException ce = new ContributionResolveException(e); - error("ContributionResolveException", javaFactory, ce); - //throw ce; - return; - } - - javaImplementation.setUnresolved(false); - mergeComponentType(resolver, javaImplementation); - - // FIXME the introspector should always create at least one service - if (javaImplementation.getServices().isEmpty()) { - javaImplementation.getServices().add(assemblyFactory.createService()); - } - } + try { + ClassReference classReference = new ClassReference(javaImplementation.getName()); + classReference = resolver.resolveModel(ClassReference.class, classReference); + Class<?> javaClass = classReference.getJavaClass(); + if (javaClass == null) { + error("ClassNotFoundException", resolver, javaImplementation.getName()); + //throw new ContributionResolveException(new ClassNotFoundException(javaImplementation.getName())); + return; + } + + javaImplementation.setJavaClass(javaClass); + + try { + javaFactory.createJavaImplementation(javaImplementation, javaImplementation.getJavaClass()); + } catch (IntrospectionException e) { + ContributionResolveException ce = new ContributionResolveException(e); + error("ContributionResolveException", javaFactory, ce); + //throw ce; + return; + } + + javaImplementation.setUnresolved(false); + mergeComponentType(resolver, javaImplementation); + + // FIXME the introspector should always create at least one service + if (javaImplementation.getServices().isEmpty()) { + javaImplementation.getServices().add(assemblyFactory.createService()); + } + } catch (Throwable e ) { + throw new ContributionResolveException( "Resolving Java implementation: " + javaImplementation.getName(), e); + } // end try + } // end method private JavaElementImpl getMemeber(JavaImplementation impl, String name, Class<?> type) { String setter = JavaIntrospectionHelper.toSetter(name); |