You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by lr...@apache.org on 2007/07/22 19:09:36 UTC
svn commit: r558512 - in /incubator/tuscany/java/sca/modules:
interface-wsdl-runtime/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/module/
interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/
Author: lresende
Date: Sun Jul 22 10:09:33 2007
New Revision: 558512
URL: http://svn.apache.org/viewvc?view=rev&rev=558512
Log:
Updates to ModelReseolver extensibility
- Adding XSDModelResolver
Added:
incubator/tuscany/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/XSDModelResolver.java
Modified:
incubator/tuscany/java/sca/modules/interface-wsdl-runtime/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/module/WSDLInterfaceRuntimeModuleActivator.java
Modified: incubator/tuscany/java/sca/modules/interface-wsdl-runtime/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/module/WSDLInterfaceRuntimeModuleActivator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface-wsdl-runtime/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/module/WSDLInterfaceRuntimeModuleActivator.java?view=diff&rev=558512&r1=558511&r2=558512
==============================================================================
--- incubator/tuscany/java/sca/modules/interface-wsdl-runtime/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/module/WSDLInterfaceRuntimeModuleActivator.java (original)
+++ incubator/tuscany/java/sca/modules/interface-wsdl-runtime/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/module/WSDLInterfaceRuntimeModuleActivator.java Sun Jul 22 10:09:33 2007
@@ -28,11 +28,14 @@
import org.apache.tuscany.sca.interfacedef.wsdl.DefaultWSDLFactory;
import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition;
import org.apache.tuscany.sca.interfacedef.wsdl.WSDLFactory;
+import org.apache.tuscany.sca.interfacedef.wsdl.XSDefinition;
import org.apache.tuscany.sca.interfacedef.wsdl.introspect.DefaultWSDLInterfaceIntrospector;
import org.apache.tuscany.sca.interfacedef.wsdl.introspect.WSDLInterfaceIntrospector;
import org.apache.tuscany.sca.interfacedef.wsdl.xml.WSDLDocumentProcessor;
import org.apache.tuscany.sca.interfacedef.wsdl.xml.WSDLInterfaceProcessor;
import org.apache.tuscany.sca.interfacedef.wsdl.xml.WSDLModelResolver;
+import org.apache.tuscany.sca.interfacedef.wsdl.xml.XSDDocumentProcessor;
+import org.apache.tuscany.sca.interfacedef.wsdl.xml.XSDModelResolver;
/**
* @version $Rev$ $Date$
@@ -55,12 +58,14 @@
WSDLInterfaceIntrospector interfaceIntrospector = new DefaultWSDLInterfaceIntrospector(wsdlFactory);
processors.addArtifactProcessor(new WSDLInterfaceProcessor(wsdlFactory, interfaceIntrospector));
- // Register .wsdl document processor
+ // Register .wsdl document processor and .xsd document processor
URLArtifactProcessorExtensionPoint documentProcessors = registry.getExtensionPoint(URLArtifactProcessorExtensionPoint.class);
documentProcessors.addArtifactProcessor(new WSDLDocumentProcessor(wsdlFactory, null));
+ //documentProcessors.addArtifactProcessor(new XSDDocumentProcessor(wsdlFactory));
ModelResolverExtensionPoint resolvers = registry.getExtensionPoint(ModelResolverExtensionPoint.class);
resolvers.addResolver(WSDLDefinition.class, WSDLModelResolver.class);
+ resolvers.addResolver(XSDefinition.class, XSDModelResolver.class);
}
public void stop(ExtensionPointRegistry registry) {
Added: incubator/tuscany/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/XSDModelResolver.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/XSDModelResolver.java?view=auto&rev=558512
==============================================================================
--- incubator/tuscany/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/XSDModelResolver.java (added)
+++ incubator/tuscany/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/XSDModelResolver.java Sun Jul 22 10:09:33 2007
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tuscany.sca.interfacedef.wsdl.xml;
+
+import org.apache.tuscany.sca.contribution.Contribution;
+import org.apache.tuscany.sca.contribution.ContributionImport;
+import org.apache.tuscany.sca.contribution.resolver.DefaultModelResolver;
+import org.apache.tuscany.sca.interfacedef.wsdl.XSDefinition;
+
+/**
+ * An Model Resolver for WSDL artifact types.
+ *
+ * @version $Rev: 557916 $ $Date: 2007-07-20 01:04:40 -0700 (Fri, 20 Jul 2007) $
+ */
+public class XSDModelResolver extends DefaultModelResolver {
+
+ public XSDModelResolver(ClassLoader cl, Contribution contribution) {
+ super(cl,contribution);
+ }
+
+ private XSDefinition resolveImportedModel(XSDefinition unresolved) {
+ XSDefinition resolved = unresolved;
+ String namespace = unresolved.getNamespace();
+ if (namespace != null && namespace.length() > 0) {
+ for (ContributionImport contributionImport : this.contribution.getImports()) {
+ if (contributionImport.getNamespace().equals(namespace)) {
+
+ // Delegate the resolution to the import resolver
+ resolved = contributionImport.getModelResolver().resolveModel(XSDefinition.class, unresolved);
+
+ // If resolved... then we are done
+ if(unresolved.isUnresolved() == false) {
+ break;
+ }
+ }
+ }
+ }
+ return resolved;
+ }
+
+ @Override
+ public <T> T resolveModel(Class<T> modelClass, T unresolved) {
+ XSDefinition resolved = (XSDefinition) super.resolveModel(modelClass, unresolved);
+
+ if (resolved.isUnresolved()) {
+ resolved = resolveImportedModel(resolved);
+ }
+
+ return (T)resolved;
+ }
+
+
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org