You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jb...@apache.org on 2006/08/12 23:57:14 UTC
svn commit: r431095 - in /incubator/tuscany/java/sca:
commands/launcher/src/main/resources/META-INF/tuscany/
core/src/main/java/org/apache/tuscany/core/bootstrap/
core/src/main/java/org/apache/tuscany/core/idl/java/
test/src/main/resources/META-INF/tus...
Author: jboynes
Date: Sat Aug 12 14:57:13 2006
New Revision: 431095
URL: http://svn.apache.org/viewvc?rev=431095&view=rev
Log:
refactor InterfaceJavaLoader to use introspector
refactor launcher and test scdls to start an introspector
Added:
incubator/tuscany/java/sca/commands/launcher/src/main/resources/META-INF/tuscany/interfaceJava.scdl (with props)
incubator/tuscany/java/sca/test/src/main/resources/META-INF/tuscany/interfaceJava.scdl (with props)
Modified:
incubator/tuscany/java/sca/commands/launcher/src/main/resources/META-INF/tuscany/system.scdl
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/idl/java/InterfaceJavaLoader.java
incubator/tuscany/java/sca/test/src/main/resources/META-INF/tuscany/loader.scdl
incubator/tuscany/java/sca/test/src/main/resources/META-INF/tuscany/system.scdl
Added: incubator/tuscany/java/sca/commands/launcher/src/main/resources/META-INF/tuscany/interfaceJava.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/commands/launcher/src/main/resources/META-INF/tuscany/interfaceJava.scdl?rev=431095&view=auto
==============================================================================
--- incubator/tuscany/java/sca/commands/launcher/src/main/resources/META-INF/tuscany/interfaceJava.scdl (added)
+++ incubator/tuscany/java/sca/commands/launcher/src/main/resources/META-INF/tuscany/interfaceJava.scdl Sat Aug 12 14:57:13 2006
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<!--
+ Configuration for Java IDL support.
+
+ $Rev$ $Date$
+-->
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:system="http://tuscany.apache.org/xmlns/system/1.0-SNAPSHOT"
+ name="org.apache.tuscany.launcher.InterfaceJava">
+
+ <component name="interfaceJava.introspector">
+ <system:implementation.system class="org.apache.tuscany.core.idl.java.InterfaceJavaIntrospectorImpl"/>
+ </component>
+ <component name="interfaceJava.loader">
+ <system:implementation.system class="org.apache.tuscany.core.idl.java.InterfaceJavaLoader"/>
+ </component>
+</composite>
Propchange: incubator/tuscany/java/sca/commands/launcher/src/main/resources/META-INF/tuscany/interfaceJava.scdl
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/commands/launcher/src/main/resources/META-INF/tuscany/interfaceJava.scdl
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/commands/launcher/src/main/resources/META-INF/tuscany/system.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/commands/launcher/src/main/resources/META-INF/tuscany/system.scdl?rev=431095&r1=431094&r2=431095&view=diff
==============================================================================
--- incubator/tuscany/java/sca/commands/launcher/src/main/resources/META-INF/tuscany/system.scdl (original)
+++ incubator/tuscany/java/sca/commands/launcher/src/main/resources/META-INF/tuscany/system.scdl Sat Aug 12 14:57:13 2006
@@ -80,6 +80,9 @@
<!-- include implementation processor configuration -->
<include name="org.apache.tuscany.launcher.Implementation" scdlLocation="implementation.scdl"/>
+ <!-- Java interface definition language -->
+ <include name="org.apache.tuscany.launcher.InterfaceJava" scdlLocation="interfaceJava.scdl"/>
+
<!-- include omposite implementation type -->
<include name="org.apache.tuscany.launcher.Composite" scdlLocation="composite.scdl"/>
Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java?rev=431095&r1=431094&r2=431095&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java Sat Aug 12 14:57:13 2006
@@ -69,6 +69,7 @@
import org.apache.tuscany.core.loader.ComponentTypeElementLoader;
import org.apache.tuscany.core.loader.IncludeLoader;
import org.apache.tuscany.core.idl.java.InterfaceJavaLoader;
+import org.apache.tuscany.core.idl.java.InterfaceJavaIntrospectorImpl;
import org.apache.tuscany.core.loader.LoaderRegistryImpl;
import org.apache.tuscany.core.loader.PropertyLoader;
import org.apache.tuscany.core.loader.ReferenceLoader;
@@ -191,7 +192,7 @@
registerLoader(loaderRegistry, new ComponentTypeElementLoader(loaderRegistry));
registerLoader(loaderRegistry, new CompositeLoader(loaderRegistry, null));
registerLoader(loaderRegistry, new IncludeLoader(loaderRegistry));
- registerLoader(loaderRegistry, new InterfaceJavaLoader(loaderRegistry));
+ registerLoader(loaderRegistry, new InterfaceJavaLoader(loaderRegistry, new InterfaceJavaIntrospectorImpl()));
registerLoader(loaderRegistry, new PropertyLoader(loaderRegistry));
registerLoader(loaderRegistry, new ReferenceLoader(loaderRegistry));
registerLoader(loaderRegistry, new ServiceLoader(loaderRegistry));
Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/idl/java/InterfaceJavaLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/idl/java/InterfaceJavaLoader.java?rev=431095&r1=431094&r2=431095&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/idl/java/InterfaceJavaLoader.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/idl/java/InterfaceJavaLoader.java Sat Aug 12 14:57:13 2006
@@ -25,54 +25,69 @@
import static org.osoa.sca.Version.XML_NAMESPACE_1_0;
import org.osoa.sca.annotations.Constructor;
+import org.apache.tuscany.core.loader.StAXUtil;
import org.apache.tuscany.spi.annotation.Autowire;
import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.deployer.DeploymentContext;
import org.apache.tuscany.spi.extension.LoaderExtension;
+import org.apache.tuscany.spi.idl.InvalidServiceContractException;
+import org.apache.tuscany.spi.loader.InvalidValueException;
import org.apache.tuscany.spi.loader.LoaderException;
import org.apache.tuscany.spi.loader.LoaderRegistry;
import org.apache.tuscany.spi.loader.LoaderUtil;
-import org.apache.tuscany.spi.model.ServiceContract;
-
-import org.apache.tuscany.core.loader.StAXUtil;
+import org.apache.tuscany.spi.model.InteractionScope;
/**
* Loads a Java interface definition from an XML-based assembly file
*
* @version $Rev$ $Date$
*/
-public class InterfaceJavaLoader extends LoaderExtension<ServiceContract> {
+public class InterfaceJavaLoader extends LoaderExtension<JavaServiceContract> {
public static final QName INTERFACE_JAVA = new QName(XML_NAMESPACE_1_0, "interface.java");
- @Constructor({"registry"})
- public InterfaceJavaLoader(@Autowire LoaderRegistry registry) {
+ private final InterfaceJavaIntrospector introspector;
+
+ @Constructor({"registry", "introspector"})
+ public InterfaceJavaLoader(@Autowire LoaderRegistry registry,
+ @Autowire InterfaceJavaIntrospector introspector) {
super(registry);
+ this.introspector = introspector;
}
public QName getXMLType() {
return INTERFACE_JAVA;
}
- public ServiceContract load(CompositeComponent parent, XMLStreamReader reader, DeploymentContext deploymentContext)
+ public JavaServiceContract load(CompositeComponent parent,
+ XMLStreamReader reader,
+ DeploymentContext deploymentContext)
throws XMLStreamException, LoaderException {
assert INTERFACE_JAVA.equals(reader.getName());
- ServiceContract serviceContract = new JavaServiceContract();
- serviceContract.setInteractionScope(StAXUtil.interactionScope(reader.getAttributeValue(null, "scope")));
+ InteractionScope interactionScope = StAXUtil.interactionScope(reader.getAttributeValue(null, "scope"));
String name = reader.getAttributeValue(null, "interface");
if (name == null) {
// allow "class" as well as seems to be a common mistake
name = reader.getAttributeValue(null, "class");
}
- serviceContract.setInterfaceName(name);
- serviceContract.setInterfaceClass(LoaderUtil.loadClass(name, deploymentContext.getClassLoader()));
+ if (name == null) {
+ throw new InvalidValueException("interface name not supplied");
+ }
+ Class<?> interfaceClass = LoaderUtil.loadClass(name, deploymentContext.getClassLoader());
name = reader.getAttributeValue(null, "callbackInterface");
- serviceContract.setCallbackName(name);
- if (name != null) {
- serviceContract.setCallbackClass(LoaderUtil.loadClass(name, deploymentContext.getClassLoader()));
- }
+ Class<?> callbackClass = (name != null) ? LoaderUtil.loadClass(name, deploymentContext.getClassLoader()) : null;
LoaderUtil.skipToEndElement(reader);
+
+ JavaServiceContract serviceContract;
+ try {
+ serviceContract = introspector.introspect(interfaceClass, callbackClass);
+ } catch (InvalidServiceContractException e) {
+ LoaderException le = new LoaderException(e);
+ le.setIdentifier(interfaceClass.getName());
+ throw le;
+ }
+ serviceContract.setInteractionScope(interactionScope);
return serviceContract;
}
}
Added: incubator/tuscany/java/sca/test/src/main/resources/META-INF/tuscany/interfaceJava.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/test/src/main/resources/META-INF/tuscany/interfaceJava.scdl?rev=431095&view=auto
==============================================================================
--- incubator/tuscany/java/sca/test/src/main/resources/META-INF/tuscany/interfaceJava.scdl (added)
+++ incubator/tuscany/java/sca/test/src/main/resources/META-INF/tuscany/interfaceJava.scdl Sat Aug 12 14:57:13 2006
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<!--
+ Configuration for Java IDL support.
+
+ $Rev$ $Date$
+-->
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:system="http://tuscany.apache.org/xmlns/system/1.0-SNAPSHOT"
+ name="org.apache.tuscany.test.InterfaceJava">
+
+ <component name="interfaceJava.introspector">
+ <system:implementation.system class="org.apache.tuscany.core.idl.java.InterfaceJavaIntrospectorImpl"/>
+ </component>
+ <component name="interfaceJava.loader">
+ <system:implementation.system class="org.apache.tuscany.core.idl.java.InterfaceJavaLoader"/>
+ </component>
+</composite>
Propchange: incubator/tuscany/java/sca/test/src/main/resources/META-INF/tuscany/interfaceJava.scdl
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/test/src/main/resources/META-INF/tuscany/interfaceJava.scdl
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/test/src/main/resources/META-INF/tuscany/loader.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/test/src/main/resources/META-INF/tuscany/loader.scdl?rev=431095&r1=431094&r2=431095&view=diff
==============================================================================
--- incubator/tuscany/java/sca/test/src/main/resources/META-INF/tuscany/loader.scdl (original)
+++ incubator/tuscany/java/sca/test/src/main/resources/META-INF/tuscany/loader.scdl Sat Aug 12 14:57:13 2006
@@ -36,9 +36,6 @@
<component name="elementLoader.include">
<system:implementation.system class="org.apache.tuscany.core.loader.IncludeLoader"/>
</component>
- <component name="elementLoader.interface.java">
- <system:implementation.system class="org.apache.tuscany.core.idl.java.InterfaceJavaLoader"/>
- </component>
<component name="elementLoader.property">
<system:implementation.system class="org.apache.tuscany.core.loader.PropertyLoader"/>
</component>
Modified: incubator/tuscany/java/sca/test/src/main/resources/META-INF/tuscany/system.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/test/src/main/resources/META-INF/tuscany/system.scdl?rev=431095&r1=431094&r2=431095&view=diff
==============================================================================
--- incubator/tuscany/java/sca/test/src/main/resources/META-INF/tuscany/system.scdl (original)
+++ incubator/tuscany/java/sca/test/src/main/resources/META-INF/tuscany/system.scdl Sat Aug 12 14:57:13 2006
@@ -80,6 +80,9 @@
<!-- include implementation processor configuration -->
<include name="org.apache.tuscany.test.Implementation" scdlLocation="implementation.scdl"/>
+ <!-- Java interface definition language -->
+ <include name="org.apache.tuscany.launcher.InterfaceJava" scdlLocation="interfaceJava.scdl"/>
+
<!-- include omposite implementation type -->
<include name="org.apache.tuscany.test.Composite" scdlLocation="composite.scdl"/>
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org