summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/tags/2.0.1-RC1/modules/implementation-python-runtime/src/main/resources/invoker.py
diff options
context:
space:
mode:
authorlresende <lresende@13f79535-47bb-0310-9956-ffa450edef68>2013-10-07 22:23:21 +0000
committerlresende <lresende@13f79535-47bb-0310-9956-ffa450edef68>2013-10-07 22:23:21 +0000
commit5963a2d3d6860fe57afc138f095bf2d2eb5a7b80 (patch)
tree018d3d8c637e265b8292d34e5f7c11ca8ce11b7d /sca-java-2.x/tags/2.0.1-RC1/modules/implementation-python-runtime/src/main/resources/invoker.py
parent132aa8a77685ec92bc90c03f987650d275a7b639 (diff)
Official Tuscany 2.0.1 Release
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1530096 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x/tags/2.0.1-RC1/modules/implementation-python-runtime/src/main/resources/invoker.py')
-rw-r--r--sca-java-2.x/tags/2.0.1-RC1/modules/implementation-python-runtime/src/main/resources/invoker.py108
1 files changed, 0 insertions, 108 deletions
diff --git a/sca-java-2.x/tags/2.0.1-RC1/modules/implementation-python-runtime/src/main/resources/invoker.py b/sca-java-2.x/tags/2.0.1-RC1/modules/implementation-python-runtime/src/main/resources/invoker.py
deleted file mode 100644
index 48107671d6..0000000000
--- a/sca-java-2.x/tags/2.0.1-RC1/modules/implementation-python-runtime/src/main/resources/invoker.py
+++ /dev/null
@@ -1,108 +0,0 @@
-#!/usr/bin/python
-# 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.
-
-# Component invocation functions
-
-from sys import stderr, argv
-from util import *
-from jsonutil import *
-
-# JSON request id
-id = 1
-
-# Make a callable reference client
-class proxy:
- def __init__(self, jpx):
- self.jpx = jpx
-
- def __call__(self, func, *args):
-
- # Create a JSON-RPC request
- global id
- req = StringIO()
- writeStrings(jsonRequest(id, func, args), req)
- id = id + 1
-
- # Eval the Java proxy
- res = self.jpx.eval(req.getvalue())
-
- # Extract result from JSON-RPC response
- return jsonResultValue((res,))
-
- def __repr__(self):
- return repr((jpx,))
-
-def mkproxies(jpx):
- if isNil(jpx):
- return ()
- return cons(proxy(car(jpx)), mkproxies(cdr(jpx)))
-
-class prop:
- def __init__(self, jpy):
- self.jpy = jpy
-
- def __call__(self):
- # Eval the property
- res = self.jpy.eval()
- return res
-
-def __repr__(self):
- return repr((jpy,))
-
-def mkprops(jpy):
- if isNil(jpy):
- return ()
- return cons(prop(car(jpy)), mkprops(cdr(jpy)))
-
-# Make a callable component
-class component:
- def __init__(self, name, impl, jpx, jpy):
- self.name = name
- self.impl = impl[0:len(impl) - 3]
- self.mod = __import__(self.impl)
- self.proxies = mkproxies(jpx)
- self.props = mkprops(jpy)
-
- def __call__(self, func, *args):
- return self.mod.__getattribute__(func)(*(args + self.proxies + self.props))
-
- def __repr__(self):
- return repr((self.name, self.impl, self.mod, self.props, self.proxies))
-
-# Converts the args received in a JSON request to a list of key value pairs
-def jsonArgs(a):
- if isNil(a):
- return ((),)
- l = car(a);
- return cons(l, jsonArgs(cdr(a)))
-
-# Apply a JSON function request to a component
-def apply(jsreq, comp):
- json = elementsToValues(readJSON((jsreq,)))
- args = jsonArgs(json)
- jid = cadr(assoc("'id", args))
- func = funcName(cadr(assoc("'method", args)))
- params = cadr(assoc("'params", args))
- v = comp(func, *params)
- return jsonResult(jid, v)[0]
-
-# Make a component that can be called with a JSON function request
-def mkcomponent(name, impl, jpx, jpy):
- comp = component(name, impl, jpx, jpy)
- return lambda jsreq: apply(jsreq, comp)
-