Author: challngr
Date: Tue Feb 26 18:18:14 2013
New Revision: 1450329

URL: http://svn.apache.org/r1450329
Log:
UIMA-2594
Test script to create stand-alone service to test Implicit service.

Added:
    uima/sandbox/uima-ducc/trunk/uima-ducc-examples/src/main/scripts/service.py 
  (with props)

Added: 
uima/sandbox/uima-ducc/trunk/uima-ducc-examples/src/main/scripts/service.py
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-examples/src/main/scripts/service.py?rev=1450329&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-examples/src/main/scripts/service.py 
(added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-examples/src/main/scripts/service.py 
Tue Feb 26 18:18:14 2013
@@ -0,0 +1,125 @@
+#!/usr/bin/env python
+
+import os
+import sys
+import getopt
+import string
+import time
+import subprocess
+import shutil
+import signal
+from threading import *
+import Queue
+
+if ( not os.environ.has_key('DUCC_HOME') ):    
+    me = os.path.abspath(sys.argv[0])
+
+    print "ME:", me
+    ndx = me.rindex('/')
+    ndx = me.rindex('/', 0, ndx)
+    ndx = me.rindex('/', 0, ndx)
+
+    DUCC_HOME=me[:ndx]
+    os.environ['DUCC_HOME'] = DUCC_HOME
+    print 'Environment variable DUCC_HOME is missing, using default', DUCC_HOME
+else:
+    DUCC_HOME = os.environ['DUCC_HOME']
+
+print 'Using', os.environ['DUCC_HOME']
+sys.path.append(DUCC_HOME + '/admin')
+
+from ducc_util import DuccUtil
+from ducc_util import DuccProperties
+from ducc      import Ducc
+
+service = None
+def handler(signal, frame):
+    global service
+    print 'Caught signal', signal
+    service.terminate()
+
+class DuccService(DuccUtil):
+
+
+    def format_cp(self, cp):
+        for i in cp.split(':'):
+            print i
+
+    def terminate(self):
+        self.terminated = True
+        service.send_signal(2)
+
+    def start_uima_as_service(self, instance):
+        global service
+        self.terminated = False
+
+        service_cp = os.environ['CLASSPATH'] + ':' + self.DUCC_HOME + 
'/examples/lib/uima-ducc-examples.jar'
+        service_cp = service_cp              + ':' + self.DUCC_HOME + 
'/lib/uima/*'
+        #self.format_cp(service_cp)
+
+       print 'broker:', self.broker_url
+
+        CMD = ['java']
+        CMD.append("-DSERVICE_ID=" + instance)
+        CMD.append("-DdefaultBrokerURL='" + self.broker_url + "'")
+        CMD.append('-DJAVA_HOME=/share/jdk1.6')
+        CMD.append('-classpath ' + service_cp)
+        CMD.append('org.apache.uima.ducc.test.service.UIMA_Service')
+        CMD.append('-saxonURL file:' + DUCC_HOME + '/lib/saxon/saxon8.jar')
+        CMD.append('-xslt ' + DUCC_HOME + '/resources/dd2spring.xsl')
+        CMD.append('-dd ' + DUCC_HOME + 
'/examples/simple/resources/Service_FixedSleep_' + instance + '.xml')
+        #CMD.append('-b')
+        os.environ['AE_INIT_TIME'] = '5'
+        os.environ['AE_INIT_RANGE'] = '5'
+
+        service = subprocess.Popen(' '.join(CMD), bufsize=0, 
stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)
+        p = service.stdout
+        while 1:
+            line = p.readline().strip()
+            if ( not line ):
+                return
+
+            print '[]',line
+
+        print '------------------------- UIMA_AS Service Pid', self.service_pid
+    
+    def usage(self, *msg):
+        print msg
+        if ( msg[0] != None ):
+            print ' '.join(msg)
+
+        print 'Usage:'
+        print '   service.py [optons]'
+        print ''
+        print 'Where options are'
+        print '   -i instance_number'
+        print ''
+        print 'We run with DUCC_HOME set to', os.environ['DUCC_HOME']
+        sys.exit(1)
+    
+    def main(self, argv):
+        global DUCC_HOME
+        global DUCC_TOP
+
+        self.instance = None
+        opts, args  = getopt.getopt(argv, 'i::?h', ['instance='])
+    
+        for ( o, a ) in opts:
+            if o in ('-i', '--instance'):
+                self.instance = a        
+    
+        if ( self.instance == None ):
+            self.usage(None)
+
+        self.start_uima_as_service(self.instance)
+
+# 
--------------------------------------------------------------------------------
+if __name__ == "__main__":
+
+    signal.signal(signal.SIGTERM, handler)
+    signal.signal(signal.SIGINT, handler)
+    signal.signal(signal.SIGQUIT, handler)
+    svc = DuccService()
+
+    svc.set_classpath()
+    svc.main(sys.argv[1:])

Propchange: 
uima/sandbox/uima-ducc/trunk/uima-ducc-examples/src/main/scripts/service.py
------------------------------------------------------------------------------
    svn:executable = *


Reply via email to