diff options
Diffstat (limited to 'sca-java-2.x/tags/2.0-Beta3-RC1/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/service')
5 files changed, 0 insertions, 402 deletions
diff --git a/sca-java-2.x/tags/2.0-Beta3-RC1/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/service/ComponentInvocationProxy.java b/sca-java-2.x/tags/2.0-Beta3-RC1/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/service/ComponentInvocationProxy.java deleted file mode 100644 index 923f9d7a7e..0000000000 --- a/sca-java-2.x/tags/2.0-Beta3-RC1/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/service/ComponentInvocationProxy.java +++ /dev/null @@ -1,125 +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 org.apache.tuscany.sca.binding.corba.provider.service; - -import java.lang.annotation.Annotation; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.apache.tuscany.sca.binding.corba.provider.exceptions.RequestConfigurationException; -import org.apache.tuscany.sca.binding.corba.provider.types.TypeTree; -import org.apache.tuscany.sca.binding.corba.provider.types.TypeTreeCreator; -import org.apache.tuscany.sca.binding.corba.provider.util.OperationMapper; -import org.apache.tuscany.sca.interfacedef.DataType; -import org.apache.tuscany.sca.interfacedef.Interface; -import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.runtime.Invocable; -import org.apache.tuscany.sca.runtime.RuntimeEndpoint; - -/** - * @version $Rev$ $Date$ - * Invocation proxy for SCA components - */ -public class ComponentInvocationProxy implements InvocationProxy { - - private Invocable wire; - private Map<Method, Operation> methodOperationMapping; - private Map<Operation, Method> operationMethodMapping; - private Map<String, Method> operationsMap; - private Map<Operation, OperationTypes> operationsCache = new HashMap<Operation, OperationTypes>(); - - public ComponentInvocationProxy(RuntimeEndpoint wire, Class javaClass) - throws RequestConfigurationException { - this.wire = wire; - Interface interfaze = wire.getComponentTypeServiceInterfaceContract().getInterface(); - operationsMap = OperationMapper.mapOperationNameToMethod(javaClass); - operationMethodMapping = OperationMapper.mapOperationToMethod(interfaze.getOperations(), javaClass); - methodOperationMapping = OperationMapper.mapMethodToOperation(interfaze.getOperations(), javaClass); - cacheOperationTypes(interfaze.getOperations()); - } - - /** - * Caches TypeTree for every operation in backed component - * - * @param operations - * @throws RequestConfigurationException - */ - private void cacheOperationTypes(List<Operation> operations) throws RequestConfigurationException { - for (Operation operation : operations) { - try { - OperationTypes operationTypes = new OperationTypes(); - List<TypeTree> inputInstances = new ArrayList<TypeTree>(); - // cache output type tree - if (operation.getOutputType() != null) { - // Should only be one output, since this was created when we only supported one output. - DataType returnType = operation.getOutputType().getLogical().get(0); - Class<?> returnClass = returnType.getPhysical(); - if (returnClass != null && !returnClass.equals(void.class)) { - Annotation[] notes = operationMethodMapping.get(operation).getAnnotations(); - TypeTree outputType = - TypeTreeCreator.createTypeTree(returnClass, notes); - operationTypes.setOutputType(outputType); - } - } - // cache input types trees - if (operation.getInputType() != null) { - Method method = operationMethodMapping.get(operation); - Annotation[][] notes = method.getParameterAnnotations(); - int i = 0; - for (DataType<List<DataType<?>>> type : operation.getInputType().getLogical()) { - Class<?> forClass = type.getPhysical(); - TypeTree inputType = TypeTreeCreator.createTypeTree(forClass, notes[i]); - inputInstances.add(inputType); - i++; - } - } - operationTypes.setInputType(inputInstances); - operationsCache.put(operation, operationTypes); - } catch (RequestConfigurationException e) { - throw e; - } - } - } - - private Operation getOperation4Name(String operationName) { - Method method = operationsMap.get(operationName); - return methodOperationMapping.get(method); - } - - public OperationTypes getOperationTypes(String operationName) { - return operationsCache.get(getOperation4Name(operationName)); - } - - public Object invoke(String operationName, List<Object> arguments) throws InvocationException { - Object result = null; - try { - result = wire.invoke(getOperation4Name(operationName), arguments.toArray()); - } catch (InvocationTargetException e) { - InvocationException exception = new InvocationException(e.getCause()); - throw exception; - } - return result; - } - -} diff --git a/sca-java-2.x/tags/2.0-Beta3-RC1/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/service/DynaCorbaServant.java b/sca-java-2.x/tags/2.0-Beta3-RC1/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/service/DynaCorbaServant.java deleted file mode 100644 index d8524eaee9..0000000000 --- a/sca-java-2.x/tags/2.0-Beta3-RC1/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/service/DynaCorbaServant.java +++ /dev/null @@ -1,137 +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 org.apache.tuscany.sca.binding.corba.provider.service; - -import java.util.ArrayList; -import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; - -import org.apache.tuscany.sca.binding.corba.provider.exceptions.RequestConfigurationException; -import org.apache.tuscany.sca.binding.corba.provider.types.TypeTree; -import org.apache.tuscany.sca.binding.corba.provider.types.TypeTreeCreator; -import org.apache.tuscany.sca.binding.corba.provider.types.util.TypeHelpersProxy; -import org.apache.tuscany.sca.binding.corba.provider.types.util.Utils; -import org.omg.CORBA.MARSHAL; -import org.omg.CORBA.portable.InputStream; -import org.omg.CORBA.portable.InvokeHandler; -import org.omg.CORBA.portable.ObjectImpl; -import org.omg.CORBA.portable.OutputStream; -import org.omg.CORBA.portable.ResponseHandler; - -/** - * @version $Rev$ $Date$ - * General servant which provides target component implementation via CORBA - */ -public class DynaCorbaServant extends ObjectImpl implements InvokeHandler { - - private static final Logger logger = Logger.getLogger(DynaCorbaServant.class.getName()); - - private String[] ids; - private InvocationProxy invocationProxy; - private String typeId; - - /** - * Creates servant object - * @param invocationProxy - * @param typeId - * @throws RequestConfigurationException - */ - public DynaCorbaServant(InvocationProxy invocationProxy, String typeId) throws RequestConfigurationException { - this.invocationProxy = invocationProxy; - this.typeId = typeId; - setDefaultIds(); - } - - /** - * Sets CORBA object ID - * @param ids - */ - public void setIds(String[] ids) { - for (int i = 0; i < ids.length; i++) { - if (ids[i] == null || ids[i].length() == 0) { - // if invalid id was passed then set to default - setDefaultIds(); - return; - } - } - this.ids = ids; - } - - public OutputStream _invoke(String operationName, InputStream in, ResponseHandler rh) { - OperationTypes types = invocationProxy.getOperationTypes(operationName); - if (types == null) { - // operation wasn't found - throw new org.omg.CORBA.BAD_OPERATION(0, org.omg.CORBA.CompletionStatus.COMPLETED_MAYBE); - } else { - List<Object> inputInstances = new ArrayList<Object>(); - try { - // retrieving in arguments - for (TypeTree tree : types.getInputType()) { - Object o = TypeHelpersProxy.read(tree.getRootNode(), in); - inputInstances.add(o); - } - } catch (MARSHAL e) { - // parameter passed by user was not compatible with Java to - // Corba mapping - throw new org.omg.CORBA.BAD_PARAM(0, org.omg.CORBA.CompletionStatus.COMPLETED_MAYBE); - } - try { - // invocation and sending result - Object result = invocationProxy.invoke(operationName, inputInstances); - OutputStream out = rh.createReply(); - if (types.getOutputType() != null) { - TypeTree tree = types.getOutputType(); - TypeHelpersProxy.write(tree.getRootNode(), out, result); - } - return out; - } catch (InvocationException ie) { - // handling user exception - try { - OutputStream out = rh.createExceptionReply(); - Class<?> exceptionClass = ie.getTargetException().getClass(); - TypeTree tree = TypeTreeCreator.createTypeTree(exceptionClass, null); - String exceptionId = Utils.getTypeId(exceptionClass); - out.write_string(exceptionId); - TypeHelpersProxy.write(tree.getRootNode(), out, ie.getTargetException()); - return out; - } catch (Exception e) { - logger.log(Level.WARNING, "Exception during handling invocation exception", e); - } - } catch (Exception e) { - logger.log(Level.WARNING, "Unexpected exception during sending CORBA result to client", e); - } - } - return null; - } - - @Override - public String[] _ids() { - return ids; - } - - /** - * Sets servant ID to default, based on Java class name - */ - private void setDefaultIds() { - this.ids = new String[] {typeId}; - } - -} diff --git a/sca-java-2.x/tags/2.0-Beta3-RC1/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/service/InvocationException.java b/sca-java-2.x/tags/2.0-Beta3-RC1/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/service/InvocationException.java deleted file mode 100644 index 57e2fae9f4..0000000000 --- a/sca-java-2.x/tags/2.0-Beta3-RC1/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/service/InvocationException.java +++ /dev/null @@ -1,43 +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 org.apache.tuscany.sca.binding.corba.provider.service; - -/** - * @version $Rev$ $Date$ - * Wrapper for exception thrown during target invocation - */ -public class InvocationException extends Exception { - - private static final long serialVersionUID = 1L; - private Throwable targetException; - - public InvocationException(Throwable targetException) { - this.targetException = targetException; - } - - public Throwable getTargetException() { - return targetException; - } - - public void setTargetException(Throwable target) { - this.targetException = target; - } - -} diff --git a/sca-java-2.x/tags/2.0-Beta3-RC1/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/service/InvocationProxy.java b/sca-java-2.x/tags/2.0-Beta3-RC1/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/service/InvocationProxy.java deleted file mode 100644 index 2e2066802a..0000000000 --- a/sca-java-2.x/tags/2.0-Beta3-RC1/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/service/InvocationProxy.java +++ /dev/null @@ -1,46 +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 org.apache.tuscany.sca.binding.corba.provider.service; - -import java.util.List; - -/** - * @version $Rev$ $Date$ - * Target proxy interface for service bindings - */ -public interface InvocationProxy { - - /** - * Gets operations types for target - * @param operationName - * @return - */ - public OperationTypes getOperationTypes(String operationName); - - /** - * Invokes target operation - * @param operationName - * @param arguments - * @return - * @throws InvocationException - */ - public Object invoke(String operationName, List<Object> arguments) throws InvocationException; - -} diff --git a/sca-java-2.x/tags/2.0-Beta3-RC1/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/service/OperationTypes.java b/sca-java-2.x/tags/2.0-Beta3-RC1/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/service/OperationTypes.java deleted file mode 100644 index 766048ac64..0000000000 --- a/sca-java-2.x/tags/2.0-Beta3-RC1/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/service/OperationTypes.java +++ /dev/null @@ -1,51 +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 org.apache.tuscany.sca.binding.corba.provider.service; - -import java.util.List; - -import org.apache.tuscany.sca.binding.corba.provider.types.TypeTree; - -/** - * @version $Rev$ $Date$ - * Holder for Java type trees for one method - */ -public class OperationTypes { - - private TypeTree outputType; - private List<TypeTree> inputType; - - public TypeTree getOutputType() { - return outputType; - } - - public void setOutputType(TypeTree outputType) { - this.outputType = outputType; - } - - public List<TypeTree> getInputType() { - return inputType; - } - - public void setInputType(List<TypeTree> inputType) { - this.inputType = inputType; - } - -} |