diff options
Diffstat (limited to 'sca-java-2.x/tags/2.0-Beta2-RC1/samples/extending-tuscany/implementation-sample/src/main/java/sample/impl/SampleProvider.java')
-rw-r--r-- | sca-java-2.x/tags/2.0-Beta2-RC1/samples/extending-tuscany/implementation-sample/src/main/java/sample/impl/SampleProvider.java | 114 |
1 files changed, 0 insertions, 114 deletions
diff --git a/sca-java-2.x/tags/2.0-Beta2-RC1/samples/extending-tuscany/implementation-sample/src/main/java/sample/impl/SampleProvider.java b/sca-java-2.x/tags/2.0-Beta2-RC1/samples/extending-tuscany/implementation-sample/src/main/java/sample/impl/SampleProvider.java deleted file mode 100644 index 7186c0a0d2..0000000000 --- a/sca-java-2.x/tags/2.0-Beta2-RC1/samples/extending-tuscany/implementation-sample/src/main/java/sample/impl/SampleProvider.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * 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 sample.impl; - -import java.lang.reflect.Field; -import java.util.HashMap; -import java.util.Map; - -import org.apache.tuscany.sca.assembly.ComponentReference; -import org.apache.tuscany.sca.core.ExtensionPointRegistry; -import org.apache.tuscany.sca.core.invocation.ProxyFactory; -import org.apache.tuscany.sca.interfacedef.Interface; -import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.interfacedef.java.JavaInterface; -import org.apache.tuscany.sca.interfacedef.java.JavaOperation; -import org.apache.tuscany.sca.interfacedef.wsdl.WSDLOperation; -import org.apache.tuscany.sca.invocation.Invoker; -import org.apache.tuscany.sca.invocation.InvokerAsyncRequest; -import org.apache.tuscany.sca.invocation.InvokerAsyncResponse; -import org.apache.tuscany.sca.provider.ImplementationAsyncProvider; -import org.apache.tuscany.sca.runtime.RuntimeComponent; -import org.apache.tuscany.sca.runtime.RuntimeComponentService; - -/** - * Implementation provider for Sample component implementations. - * - * @version $Rev$ $Date$ - */ -class SampleProvider implements ImplementationAsyncProvider { - final RuntimeComponent comp; - final SampleImplementation impl; - final ProxyFactory pxf; - final ExtensionPointRegistry ep; - Object instance; - - // make this static rather than worrying about persistence on the reference side - static Map<String, Object> asyncMessageMap = new HashMap<String, Object>(); - - SampleProvider(final RuntimeComponent comp, final SampleImplementation impl, ProxyFactory pf, ExtensionPointRegistry ep) { - this.comp = comp; - this.impl = impl; - this.pxf = pf; - this.ep = ep; - } - - public void start() { - // Construct implementation instance and inject reference proxies - try { - instance = impl.clazz.newInstance(); - - for(ComponentReference r: comp.getReferences()) { - final Field f = impl.clazz.getDeclaredField(r.getName()); - f.setAccessible(true); - // Inject a Java or WSDLReference proxy - final Interface i = r.getInterfaceContract().getInterface(); - if(i instanceof JavaInterface) - f.set(instance, pxf.createProxy(comp.getComponentContext().getServiceReference(f.getType(), r.getName()))); - else - f.set(instance, new SampleWSDLProxy(asyncMessageMap, r.getEndpointReferences().get(0), i, ep)); - } - } catch(Exception e) { - throw new RuntimeException(e); - } - } - - public void stop() { - instance = null; - } - - public boolean supportsOneWayInvocation() { - return false; - } - - public Invoker createInvoker(final RuntimeComponentService s, final Operation op) { - try { - // Creating an invoker for a Java or WSDL-typed implementation - if(op instanceof JavaOperation) - return new SampleJavaInvoker((JavaOperation)op, impl.clazz, instance); - return new SampleWSDLInvoker((WSDLOperation)op, impl.clazz, instance); - } catch(Exception e) { - throw new RuntimeException(e); - } - } - - public InvokerAsyncRequest createAsyncInvoker(RuntimeComponentService service, Operation operation) { - // Only providing Async support through WSDL interfaces in this test - try { - return new SampleWSDLInvoker((WSDLOperation)operation, impl.clazz, instance); - } catch(Exception e) { - throw new RuntimeException(e); - } - } - - public InvokerAsyncResponse createAsyncResponseInvoker(Operation operation) { - return new SampleAsyncResponseInvoker(asyncMessageMap, operation, impl.clazz, instance); - } -} |