Changeset 772 for TI07-MOLES


Ignore:
Timestamp:
07/04/06 17:13:21 (13 years ago)
Author:
lawrence
Message:

This version calls documents from exist, loads and transforms them
using xalan.
To-do:

(1) results are not yet acceptable,
(2) need to get and parse the security metadata
(3) need to connect to Phil's security code.

Location:
TI07-MOLES/trunk/StubB/XSLT/browse/portal/cgi
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • TI07-MOLES/trunk/StubB/XSLT/browse/portal/cgi/browseCGI.py

    r765 r772  
    3333                #try: 
    3434                self.xml=insecureGetDoc(uri) 
     35                #self.xml=uri 
    3536                #except: 
    3637                #       raise 'NotFound' 
     
    4950         
    5051        def toHTML(self): 
    51                 return doXSLT(self.xml,self.xsltMethod) 
    52                  
     52                x=doXSLT(self.xml,xsltMethod=self.xsltMethod) 
     53                #return '<p>%s</p>'%x 
     54                return x 
     55         
    5356class CGIcontroller: 
    5457        ''' Currently holds the cgi environment and controls ''' 
  • TI07-MOLES/trunk/StubB/XSLT/browse/portal/cgi/insecure.py

    r769 r772  
    88# 
    99 
    10 import os, os.path, tmpfile 
     10import os 
     11import os.path 
     12import tempfile 
    1113 
    1214def jarLoc(jar): 
    1315        #don't want the jar in the cgi directory ... not quite sure why, but  
    14         #it seems wrong ... 
     16        #it seems wrong ... having made that decision, we have to bugger 
     17        #around with relative paths depending on whether this is test code  
     18        #(outside the cgi environment) or in the cgi environment 
    1519        cwd=os.getcwd() 
    1620        return os.path.normpath(os.path.join(cwd,jar)) 
    1721 
    18 def insecureGetDoc(uri): 
     22def osCommand(cmd): 
     23        stdin,stdout,stderr=os.popen3(cmd) 
     24        error=stderr.readlines() 
     25        if error !=[]: 
     26                return 1,error 
     27        else: 
     28                s='' 
     29                for i in stdout.readlines():s+=i 
     30                return 0,s 
     31 
     32def insecureGetDoc(uri,jar='./returnmoles.jar'): 
    1933        ''' Use Kevin's code to get the document from exist ''' 
    2034        #we assume the URI is of the form repository/localid 
     
    2539                return 'Invalid URI' 
    2640        else: 
    27                 returnMolesJar=jarLoc('./returnmoles.jar') 
     41                returnMolesJar=jarLoc(jar) 
    2842                cmd='java -jar %s %s %s xmldb:exist://glue.badc.rl.ac.uk:8080/exist/xmlrpc'%( 
    2943                returnMolesJar,repPath,localID) 
    30                 try: 
    31                         stdin,stdout,stderr=os.popen3(cmd) 
    32                 except: 
    33                         return 'Unable to Obtain Document' 
    34                 error=stderr.readlines() 
    35                 if error!=[]: 
    36                         #return returnMolesJar 
    37                         return error 
    38                 else: 
    39                         return stdout.readlines() 
     44                status,result=osCommand(cmd) 
     45                return result 
    4046         
    41 def doXSLT (document,xsltMethod): 
     47def doXSLT (document,jar='./xalan-j_2_7_0/xalan.jar',xsltMethod=None): 
    4248        ''' Handle a possibly external transformation to produce an html page ''' 
    43          
    4449        #use temporary files for the moment, ugly, but it will work. 
    4550        # consider using pyana or some other way of doing this later ... 
    4651        #try: 
    47         fn=tmpfile('ndg-xml') 
     52        #return 'done' 
     53        fn=tempfile.mktemp('.ndg-xml') 
    4854        f=file(fn,'wb') 
    4955        f.write(document) 
    5056        f.close() 
    51         on=tmpfile('ndg-xml') 
    52         xalanjar=jarLoc('./xalan=j_2_7_0/xalan.jar') 
    53         xslt=jarLoc('./xslt') 
    54         cmd='java -cp %s -IN %s -XSL %s -OUT %s'%(xalanjar,fn,xslt,on) 
    55          
     57        on=tempfile.mktemp('.ndg-xml') 
     58        xalanjar=jarLoc(jar) 
     59        xslt=jarLoc('./xslt/stubb_2_browse.xsl') 
     60        cmd='java -cp %s org.apache.xalan.xslt.Process -IN %s -XSL %s -OUT %s'%(xalanjar,fn,xslt,on) 
     61        status,result=osCommand(cmd) 
     62        if status: 
     63                return result 
     64        else: 
     65                f=file(on,'r') 
     66                result='' 
     67                for i in f.readlines(): result+=i 
     68                f.close() 
     69                r=os.remove(fn) 
     70                r=os.remove(on) 
     71                return result 
    5672         
    5773if __name__=="__main__": 
    58         print insecureGetDoc('badc.nerc.ac.uk/dataent13') 
     74        d= insecureGetDoc('badc.nerc.ac.uk/dataent13',jar='../returnmoles.jar') 
     75        #print d 
     76        dd=doXSLT(d,jar='../xalan-j_2_7_0/xalan.jar') 
     77        print dd 
Note: See TracChangeset for help on using the changeset viewer.