Mercurial > repos > ganjoo > webservice_toolsuite
comparison WebServiceToolWorkflow/getMethods.py @ 0:d5cd409b8a18 default tip
Migrated tool version 1.0.0 from old tool shed archive to new tool shed repository
author | ganjoo |
---|---|
date | Tue, 07 Jun 2011 18:00:50 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:d5cd409b8a18 |
---|---|
1 import warnings | |
2 | |
3 with warnings.catch_warnings(): | |
4 warnings.simplefilter("ignore") | |
5 import platform | |
6 | |
7 from jpype._jpackage import JPackage | |
8 from jpype import * | |
9 import os.path | |
10 import sys | |
11 | |
12 class Document(object): | |
13 | |
14 #invoked to get methods described in a WADL document | |
15 def getWADLMethods(self, wadlUrl, outputFileUrl ): | |
16 | |
17 #get environment variables JAVA_HOME and GALAXY_HOME | |
18 javahome = os.environ.get('JAVA_HOME') | |
19 galaxyhome=os.environ.get('GALAXY_HOME') | |
20 | |
21 #classpath, jarpath are variables pointing to the java libraries required to parse a WADL document | |
22 classpath= galaxyhome + '/tools/WebServiceToolWorkflow/ParserForWADL/bin' | |
23 jarpath = galaxyhome + '/tools/WebServiceToolWorkflow/ParserForWADL/lib/' | |
24 | |
25 #start JVM depending on the machine. The location of libjvm.so is assumed to be standard. | |
26 #you can replace lines 28 to 35, with startJVM("LOCATION OF YOUR LIBJVM.SO","-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath) | |
27 machine = platform.machine() | |
28 if machine == 'x86_64' : | |
29 startJVM("%s/jre/lib/amd64/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath) | |
30 elif machine == 'i686' : | |
31 startJVM("%s/jre/lib/i386/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath) | |
32 elif machine == 'sun4u' : | |
33 startJVM("%s/jre/lib/sparc/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath) | |
34 else : | |
35 System.exit("Could not identify machine, please specify path to libjvm.so") | |
36 | |
37 #tell JPYPE that the package name is lsdis | |
38 pkg=JPackage('lsdis') | |
39 | |
40 urlToPass=java.net.URL(wadlUrl) | |
41 | |
42 #convert __tilda__ to ~ | |
43 if(wadlUrl.find('__tilda__')>-1): | |
44 ulist = wadlUrl.split('__tilda__') | |
45 urlToPass = java.net.URL('~'.join(ulist)) | |
46 | |
47 | |
48 outputfile=open(outputFileUrl,'w') | |
49 outputfile.seek(0,0) | |
50 | |
51 urls = [] | |
52 methods = [] | |
53 | |
54 #using JPYPE call appropriate Java classes and methods to parse the WADL document and get a list of methods defined in it | |
55 WADLParserDriver=pkg.WADLParserDriver | |
56 wPD=WADLParserDriver() | |
57 wPD.parse(urlToPass) | |
58 urls = wPD.getUrl() | |
59 methods = wPD.getCompleteMethodList() | |
60 | |
61 #write the url of the WADL and the list of methods to the output in a tabular format, for the Step 2 tool to read from. | |
62 i=0 | |
63 for url in urls: | |
64 outputfile.write(wadlUrl+"\t") | |
65 outputfile.write(str(methods[i].getId())+"\t") | |
66 outputfile.write(str(url)+"\n") | |
67 i=i+1 | |
68 | |
69 | |
70 | |
71 #invoked to get REST methods described in a WSDL 2.0 document. Steps are similar to getWADLMethods except the library to parse WSDL 2.0 is used. | |
72 def getWSDLMethods(self, wsdlUrl, outputFileUrl ): | |
73 javahome = os.environ.get('JAVA_HOME') | |
74 galaxyhome=os.environ.get('GALAXY_HOME') | |
75 classpath= galaxyhome + '/tools/restClientWSDL/WodenWSDLParser/bin' | |
76 jarpath = galaxyhome + '/tools/restClientWSDL/WodenWSDLParser/lib/' | |
77 machine = platform.machine() | |
78 | |
79 #start JVM depending on the machine. The location of libjvm.so is assumed to be standard. | |
80 #you can replace lines 81 to 88, with startJVM("LOCATION OF YOUR LIBJVM.SO","-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath) | |
81 if machine == 'x86_64' : | |
82 startJVM("%s/jre/lib/amd64/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath) | |
83 elif machine == 'i686' : | |
84 startJVM("%s/jre/lib/i386/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath) | |
85 elif machine == 'sun4u' : | |
86 startJVM("%s/jre/lib/sparc/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath) | |
87 else : | |
88 System.exit("Could not identify machine, please specify path to libjvm.so") | |
89 | |
90 pkg=JPackage('lsdis') | |
91 | |
92 outputfile=open(outputFileUrl,'w') | |
93 outputfile.seek(0,0) | |
94 length=(len(sys.argv)) | |
95 | |
96 urls = [] | |
97 methods = [] | |
98 | |
99 if(wsdlUrl.find('__tilda__')>-1): | |
100 ulist = wsdlUrl.split('__tilda__') | |
101 urlToPass = '~'.join(ulist) | |
102 | |
103 WSDLParserDriver=pkg.WSDLParserDriver | |
104 wPD=WSDLParserDriver() | |
105 wPD.parse(urlToPass) | |
106 urls = wPD.getUrl() | |
107 methods = wPD.getCompleteMethodList() | |
108 | |
109 i=0 | |
110 for url in urls: | |
111 outputfile.write(wsdlUrl+"\t") | |
112 outputfile.write(str(methods[i].getName().getLocalPart())+"\t") | |
113 outputfile.write(str(url)+"\n") | |
114 i=i+1 | |
115 | |
116 | |
117 # invoked to get methods described in a SAWADL document | |
118 def getSAWADLMethods(self, sawadlUrl, outputFileUrl ): | |
119 javahome = os.environ.get('JAVA_HOME') | |
120 galaxyhome=os.environ.get('GALAXY_HOME') | |
121 classpath= galaxyhome + '/tools/restclientSAWADL/lib/SAWADLParser/bin' | |
122 machine = platform.machine() | |
123 | |
124 #start JVM depending on the machine. The location of libjvm.so is assumed to be standard. | |
125 #you can replace lines 126 to 133, with startJVM("LOCATION OF YOUR LIBJVM.SO","-ea", "-Djava.class.path=%s" % classpath,"-Djava.ext.dirs=%s" % jarpath) | |
126 if machine == 'x86_64' : | |
127 startJVM("%s/jre/lib/amd64/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath) | |
128 elif machine == 'i686' : | |
129 startJVM("%s/jre/lib/i386/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath) | |
130 elif machine == 'sun4u' : | |
131 startJVM("%s/jre/lib/sparc/server/libjvm.so" % javahome,"-ea", "-Djava.class.path=%s" % classpath) | |
132 else : | |
133 System.exit("Could not identify machine, please specify path to libjvm.so") | |
134 | |
135 pkg=JPackage('edu.uga.cs.lsdis.meteors.wadls') | |
136 | |
137 | |
138 | |
139 outputfile=open(outputFileUrl,'w') | |
140 outputfile.seek(0,0) | |
141 | |
142 if(sawadlUrl.find('__tilda__')>-1): | |
143 ulist = sawadlUrl.split('__tilda__') | |
144 urlToPass = '~'.join(ulist) | |
145 | |
146 urls = [] | |
147 methods = [] | |
148 | |
149 | |
150 SAWADLParserDriver=pkg.SAWADLParserDriver | |
151 sawPD=SAWADLParserDriver() | |
152 sawPD.parse(urlToPass) | |
153 urls = sawPD.getUrl() | |
154 methods = sawPD.getCompleteMethodList() | |
155 | |
156 i=0 | |
157 for url in urls: | |
158 outputfile.write(sawadlUrl+"\t") | |
159 outputfile.write(str(methods[i].getName())+"\t") | |
160 outputfile.write(str(url)+"\n") | |
161 i=i+1 | |
162 | |
163 | |
164 | |
165 | |
166 |