commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gnue appserver/src/_featuretest/GEDI.py appserv...


From: Jan Ischebeck
Subject: gnue appserver/src/_featuretest/GEDI.py appserv...
Date: Wed, 19 Jun 2002 16:42:17 -0400

CVSROOT:        /cvsroot/gnue
Module name:    gnue
Changes by:     Jan Ischebeck <address@hidden>  02/06/19 16:42:17

Modified files:
        appserver/src/_featuretest: GEDI.py README atest.py 
                                    geasConnectionPool.py 
                                    geasMetaObject.py 
                                    geasObjectServer.py 
        common/src     : GTest.py 

Log message:
        add very very basic introspection support and enhanced the atest file
        add an option for _featuretest to gtestcvs

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/appserver/src/_featuretest/GEDI.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/appserver/src/_featuretest/README.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/appserver/src/_featuretest/atest.py.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/appserver/src/_featuretest/geasConnectionPool.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/appserver/src/_featuretest/geasMetaObject.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/appserver/src/_featuretest/geasObjectServer.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/common/src/GTest.py.diff?tr1=1.4&tr2=1.5&r1=text&r2=text

Patches:
Index: gnue/appserver/src/_featuretest/GEDI.py
diff -c gnue/appserver/src/_featuretest/GEDI.py:1.3 
gnue/appserver/src/_featuretest/GEDI.py:1.4
*** gnue/appserver/src/_featuretest/GEDI.py:1.3 Wed Jun 19 09:15:46 2002
--- gnue/appserver/src/_featuretest/GEDI.py     Wed Jun 19 16:42:17 2002
***************
*** 19,25 ****
  # write to the Free Software Foundation, Inc., 59 Temple Place 
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
! # $Id: GEDI.py,v 1.3 2002/06/19 13:15:46 siesel Exp $
  
  # 
=============================================================================
  # Basic class
--- 19,25 ----
  # write to the Free Software Foundation, Inc., 59 Temple Place 
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
! # $Id: GEDI.py,v 1.4 2002/06/19 20:42:17 siesel Exp $
  
  # 
=============================================================================
  # Basic class
***************
*** 27,33 ****
  
  import geasObject
  
! from gnue.common import GDataSource
  
  
  class GEDI:
--- 27,33 ----
  
  import geasObject
  
! from gnue.common import GDataSource,GConditions
  
  
  class GEDI:
***************
*** 42,87 ****
      self.OID_hint_cache={}
      # load OID_hint_cache from database
  
!   def addStorage(self,storage):
!     self._storage.append[storage]
! 
!   #
!   # a) this function returns an object stored at any place just out of the OID
!   # passed, if you know which class you need you should use the getInstances
!   # function of the class which should be much faster
!   # b) this function don't look into the cache, if an object with that OID is
!   # already loaded
!   #
! 
!   def getObjectData (self,GOID, tablename, indexrow, fieldList ):
!     return self.storage[0].getObjectData (GOID, tablename,indexrow, fieldList)
!     
!   def getObjectByOID(self,OID,hint=None,classOID=None):
!     # 1. check OID lookup cache (if OID in cache, go directly to datasource X)
!     # 2. check Datastore a,b,c,d, until OID is found
!     # 2b. check on all other remote appserver instances for that OID
!     #                 ( if found on remote and used often here, think about
!     #                   transfering it here)
!     # 3. write OID into datasource lookup cache
!     if classOID!=None:
!       # check if class contains hint, and use then use that hint
!       pass
!     if hint!=None:
!       pass # check datasource 'hint'
!     
!     # if not found:
!     #        for all dataStorage check for that OID
! 
!     if classOID!=None:
!       # MetaObj=getObjectByOID(classOID)
!       # MetaObj.loadInstanceFrom(OID,datasource)
!       pass
!     else:
!       # try out all classes for one that fits.    
!       pass
      
!   def requestStorageAdapter(self,info1,info2):
!     return databaseStorageAdapter()
    
  class basicStorageAdapter:
    pass
--- 42,52 ----
      self.OID_hint_cache={}
      # load OID_hint_cache from database
  
!   def addStorageType(self,storage):
!     self._storagetypes.append[storage]  
      
!   def requestStorageAdapter(self,info):
!     return databaseStorageAdapter(self._connections)
    
  class basicStorageAdapter:
    pass
***************
*** 95,124 ****
    def __init__ (self, connections):
      self._connections = connections
  
!   # 
---------------------------------------------------------------------------
!   # getObjectbyOID
!   #  from which this is a child object.
!   #  (just the geasSuperObject has no OID
!   # 
---------------------------------------------------------------------------
! 
!   def returnOIDRange(self):
!     pass
!   
!   def setOIDRange(self):
!     pass
!   
!   def storeObject( self,Object ):
!     pass
! 
!   def getObject( self,OID ):     
!     return OID
! 
!   def getObjectData (self, GOID, tablename, indexrow, fieldList ):
!     self._conditions = []
!     self._sort = ["zip"]
      
      self._datasource = GDataSource.GDataSource ()
-     # TODO: get the table name from the class name
      self._datasource.buildObject (name = "",
                                  database = "gnue",
                                  table = tablename)
--- 60,70 ----
    def __init__ (self, connections):
      self._connections = connections
  
!   def setTableName(self,tablename):
!     # 1. cleanup old datasources
!     # 2. build new _datasource
      
      self._datasource = GDataSource.GDataSource ()
      self._datasource.buildObject (name = "",
                                  database = "gnue",
                                  table = tablename)
***************
*** 128,139 ****
      self._datasource._datasourceDictionary={}
  
      self._datasource.phaseInit ()
      
      for field in fieldList:
        self._datasource.referenceField (field)
      self._datasource.referenceField (indexrow)
      
!     self._resultset = self._datasource.createResultSet ()
      
      moreRecords=self._resultset.firstRecord ()
      data=[]
--- 74,101 ----
      self._datasource._datasourceDictionary={}
  
      self._datasource.phaseInit ()
+ 
+   def returnOIDRange(self):
+     pass
+   
+   def setOIDRange(self):
+     pass
+   
+   def getIndexedRowData (self, GOID, tablename, indexrow, fieldList ):
+     
+     self.setTableName( tablename)
      
      for field in fieldList:
        self._datasource.referenceField (field)
      self._datasource.referenceField (indexrow)
+ 
+     # build indexrow==GOID condition
+     condition=GConditions.GCondition()
+     _h=GConditions.GCeq(condition)
+     GConditions.GCField(_h,indexrow)
+     GConditions.GCConst(_h,GOID)
      
!     self._resultset = self._datasource.createResultSet (condition)
      
      moreRecords=self._resultset.firstRecord ()
      data=[]
***************
*** 147,153 ****
--- 109,140 ----
        moreRecords=self._resultset.nextRecord ()
        if len(newdr)>0:
          data.append(newdr)
+ 
+     del(self._resultset)
+     
+     return data
+ 
+   def getWholeRowData (self, tablename, fieldList ):
        
+     self.setTableName( tablename)
+     
+     for field in fieldList:
+       self._datasource.referenceField (field)
+     
+     self._resultset = self._datasource.createResultSet ()
+     
+     moreRecords=self._resultset.firstRecord ()
+     data=[]
+     while (moreRecords==1):
+       newdr={}
+       record=self._resultset.current
+       for field in fieldList:
+         newdr[field] = record.getField(field)
+       data.append(newdr)
+       moreRecords=self._resultset.nextRecord ()
+ 
+     del(self._resultset)
+     
      return data
  
    def getObjectbyOID (self,OID):
Index: gnue/appserver/src/_featuretest/README
diff -c gnue/appserver/src/_featuretest/README:1.2 
gnue/appserver/src/_featuretest/README:1.3
*** gnue/appserver/src/_featuretest/README:1.2  Wed Jun 19 09:15:46 2002
--- gnue/appserver/src/_featuretest/README      Wed Jun 19 16:42:17 2002
***************
*** 24,36 ****
  HOW TO TEST
  ============
  
! To try out this version just call "python atest.py" in this directory.
! You have to set the INSTALL_PREFIX and possibly add an --connections command 
! line option to your call. gnue.common has to be in your PYTHON_PATH
  
  The programm opens a database defined as "gnue" in your connection file.
  This database has to be setup with the file "create_tables.sql"
  At the moment just postgres is working.
  
  Jan Ischebeck <address@hidden>
  
--- 24,44 ----
  HOW TO TEST
  ============
  
! 1. setup your database:
  
  The programm opens a database defined as "gnue" in your connection file.
  This database has to be setup with the file "create_tables.sql"
  At the moment just postgres is working.
+ 
+ 2. call the program:
+ 
+ a) new method:
+    just call gtestcvs and choose option 4 or directly write 'gtestcvs 4'
+ 
+ b) old method:
+    To try out this version just call "python atest.py" in this directory.
+    You have to set the INSTALL_PREFIX and possibly add an --connections 
+    command line option to your call. gnue.common has to be in your PYTHON_PATH
  
  Jan Ischebeck <address@hidden>
  
Index: gnue/appserver/src/_featuretest/atest.py
diff -c gnue/appserver/src/_featuretest/atest.py:1.2 
gnue/appserver/src/_featuretest/atest.py:1.3
*** gnue/appserver/src/_featuretest/atest.py:1.2        Wed Jun 19 09:15:46 2002
--- gnue/appserver/src/_featuretest/atest.py    Wed Jun 19 16:42:17 2002
***************
*** 19,36 ****
  # write to the Free Software Foundation, Inc., 59 Temple Place 
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
! # $Id: atest.py,v 1.2 2002/06/19 13:15:46 siesel Exp $
  
  import os
  from gnue.common import GClientApp
  from gnue.common import GLoginHandler
- #import geasSession
- #import geasSuperObject
- #import geasNameSpace
  import geasObjectServer
  import GEDI
  import geasConnectionPool
  
  # 
=============================================================================
  # Test application
  # 
=============================================================================
--- 19,54 ----
  # write to the Free Software Foundation, Inc., 59 Temple Place 
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
! # $Id: atest.py,v 1.3 2002/06/19 20:42:17 siesel Exp $
  
  import os
  from gnue.common import GClientApp
  from gnue.common import GLoginHandler
  import geasObjectServer
  import GEDI
  import geasConnectionPool
  
+ import sys, string, os
+ 
+ def getInput(message, default, responseSet=None):
+   print ""
+   while 1:
+     if default != None:
+       print "%s [%s] " % (message, default),
+     else:
+       print "%s " % (message),
+ 
+     val = string.strip(sys.stdin.readline())
+     print ""
+ 
+     if not len(val) and default != None:
+       return default
+     elif responseSet and string.upper(val) in (responseSet):
+       return string.upper(val)
+     elif not responseSet:
+       return val
+ 
+ 
  # 
=============================================================================
  # Test application
  # 
=============================================================================
***************
*** 45,60 ****
      self.connections.setLoginHandler (testLoginHandler ())
  
      print "Server initalisation..."
!     server=geasObjectServer.geasObjectServer()
!     server.gedi=GEDI.GEDI(self.connections)
!     cp=geasConnectionPool.geasConnectionPool(server)  # get connection pool
      cp.loadConfiguration('/etc/gnue/appserver.conf')
      
      print "New Session"
!     sess=cp.getSession()
!     
      print "\nNew Instance"
!     instance=sess.Address.newInstance()
      instance.name="_a_name_"
      instance.street="_a_street_"
      instance.city="_a_city_"
--- 63,80 ----
      self.connections.setLoginHandler (testLoginHandler ())
  
      print "Server initalisation..."
!     self._server=geasObjectServer.geasObjectServer()
!     self._server.gedi=GEDI.GEDI(self.connections)
!     cp=geasConnectionPool.geasConnectionPool(self._server)# get connection 
pool
      cp.loadConfiguration('/etc/gnue/appserver.conf')
      
      print "New Session"
!     self.sess=cp.getSession()
!     self.classbrowsing()
! 
!   def basictest(self):
      print "\nNew Instance"
!     instance=self.sess.Address.newInstance()
      instance.name="_a_name_"
      instance.street="_a_street_"
      instance.city="_a_city_"
***************
*** 69,82 ****
      instance.do("nothing", "in the sun", "working","on the edge")
  
      print "\nCall showAddress for all Instances:\n"
!     list=sess.Address.getAllInstances()    
      instance=list.firstInstance ()
      while instance!=None:
        print instance.formatAddress()
        instance=list.nextInstance ()
      
      print "Thank you for playing!"
! 
  # 
=============================================================================
  # Login Handler
  # 
=============================================================================
--- 89,155 ----
      instance.do("nothing", "in the sun", "working","on the edge")
  
      print "\nCall showAddress for all Instances:\n"
!     list=self.sess.Address.getAllInstances()    
      instance=list.firstInstance ()
      while instance!=None:
        print instance.formatAddress()
        instance=list.nextInstance ()
      
      print "Thank you for playing!"
!     
!   def execMenu(self,menu,default):
!     print
!     keys=menu.keys()
!     keys.sort()
!     for i in keys:
!       print "%s -> %s \n" % (i,menu[i])
!     return getInput('Your choice:',default,keys)
!   
!   def classbrowsing(self):
!     res=0
!     while res!='9':
!       menu = {'0':'Show all classes','1':'show object server cache',
!               '2':'basic test run',
!               '9':'end'}
!       res=self.execMenu(menu,'2')
!       if res=='0':
!         classes=self.sess.classManager.getAllChildren()        
!         keys=classes.keys()
!         keys.sort()
!         print 'Registered Classes'
!         print '-' * 40
!         print '|     OID | linked to table | number of instances'
!         print '-' * 40        
!         for i in keys:
!           instance_count=0
!           list=classes[i].getAllInstances()
!           inst=list.firstInstance()
!           while inst!=None:
!             instance_count=instance_count+1
!             inst=list.nextInstance()
!             
!           print '| %7d | %s | %s |' % \
!                 (i,classes[i]._classAttribs["_tablename"],\
!                  instance_count)
!         print '-' * 40
!           
!       elif res=='1':
!         # print self._server._object_cache
!         cachetoshow= self._server._object_cache
!         keys=cachetoshow.keys()
!         keys.sort()
!         print 'Object Server Cache'
!         print '-' * 40
!         for i in keys:
!           name="%s" % cachetoshow[i]
!           print '| %7d | ..%s' % (i,name[24:])
!           
!         print '-' * 40
!       elif res=='2':
!         self.basictest()
!       
!       
!     
  # 
=============================================================================
  # Login Handler
  # 
=============================================================================
***************
*** 87,94 ****
      username = os.environ ["LOGNAME"]
      return {"_username": username, "_password": "(none)"}
  
  # 
=============================================================================
  # Let it rock
  # 
=============================================================================
  
! (testApp ()).run ()
--- 160,170 ----
      username = os.environ ["LOGNAME"]
      return {"_username": username, "_password": "(none)"}
  
+ def run():
+   testApp().run()
  # 
=============================================================================
  # Let it rock
  # 
=============================================================================
  
! if __name__ == "__main__":
!   run ()
Index: gnue/appserver/src/_featuretest/geasConnectionPool.py
diff -c gnue/appserver/src/_featuretest/geasConnectionPool.py:1.1 
gnue/appserver/src/_featuretest/geasConnectionPool.py:1.2
*** gnue/appserver/src/_featuretest/geasConnectionPool.py:1.1   Wed Jun 19 
09:15:46 2002
--- gnue/appserver/src/_featuretest/geasConnectionPool.py       Wed Jun 19 
16:42:17 2002
***************
*** 19,25 ****
  # write to the Free Software Foundation, Inc., 59 Temple Place 
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
! # $Id: geasConnectionPool.py,v 1.1 2002/06/19 13:15:46 siesel Exp $
  
  from gnue.common import GDataSource
  import geasObject
--- 19,25 ----
  # write to the Free Software Foundation, Inc., 59 Temple Place 
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
! # $Id: geasConnectionPool.py,v 1.2 2002/06/19 20:42:17 siesel Exp $
  
  from gnue.common import GDataSource
  import geasObject
***************
*** 50,67 ****
      ## (this function should moved to the real server object later)
  
      #  [geasNameSpace] ->
!     
!     nsfactory=geasMetaObject.geasSimpleObjectFactory(3,1,self.objserv.gedi,
                                                       "geas_name_space",
!                                                   geasNameSpace.geasNameSpace,
                                                       'goid',
                                                       ["name", "ref_OID"],
                                                       'registerObject')
-  #   nsfactory=geasNameSpace.geasNameSpaceFactory(3,1,self.objserv.gedi)
      self.objserv.registerObject(nsfactory)
  
      #  [classfactory]
!     #  factory=geasMultipleRowOneTableFactory
      #  tablename='geas_classes'
      #  classname='geasClass'
      #  populatefunction=addAttribute
--- 50,68 ----
      ## (this function should moved to the real server object later)
  
      #  [geasNameSpace] ->
! 
!     nsdatastore=self.objserv.gedi.requestStorageAdapter('database:gnue')    
!     nsfactory=geasMetaObject.geasSimpleObjectFactory(3,1,nsdatastore,
                                                       "geas_name_space",
!                                                    
geasNameSpace.geasNameSpace,
                                                       'goid',
                                                       ["name", "ref_OID"],
                                                       'registerObject')
      self.objserv.registerObject(nsfactory)
  
      #  [classfactory]
!     #  factory=geasSimpleObjectFactory
!     #  datastore=database:gnue
      #  tablename='geas_classes'
      #  classname='geasClass'
      #  populatefunction=addAttribute
***************
*** 69,86 ****
      #  row1='name'
      #  row2='type'
      #  row3='default'   ->
! 
!     clfactory=geasMetaObject.geasSimpleObjectFactory(4,1,self.objserv.gedi,
                                                       "geas_meta_object",
                                                       geasMetaObject.geasClass,
                                                       'goid',
                                                       ["name", "type", 
"value"],
                                                       'addAttribute')
      self.objserv.registerObject(clfactory)
!     
      #  globalNameSpace=2 ->
      
      self.globalnamespace = getObject(2)
                             
  
    def getSession(self):
--- 70,93 ----
      #  row1='name'
      #  row2='type'
      #  row3='default'   ->
!     
!     cldatastore=self.objserv.gedi.requestStorageAdapter('database:gnue')    
!     # nsdatastore=self.objserv.gedi.getDataStore('gfdfile:../packages')
!     clfactory=geasMetaObject.geasSimpleObjectFactory(4,1,cldatastore,
                                                       "geas_meta_object",
                                                       geasMetaObject.geasClass,
                                                       'goid',
                                                       ["name", "type", 
"value"],
                                                       'addAttribute')
      self.objserv.registerObject(clfactory)
!         
      #  globalNameSpace=2 ->
      
      self.globalnamespace = getObject(2)
+ 
+     # add clfactory to namespace (to make introspection work now)
+     self.globalnamespace.registerObject('classManager',4)
+ 
                             
  
    def getSession(self):
Index: gnue/appserver/src/_featuretest/geasMetaObject.py
diff -c gnue/appserver/src/_featuretest/geasMetaObject.py:1.3 
gnue/appserver/src/_featuretest/geasMetaObject.py:1.4
*** gnue/appserver/src/_featuretest/geasMetaObject.py:1.3       Wed Jun 19 
09:26:11 2002
--- gnue/appserver/src/_featuretest/geasMetaObject.py   Wed Jun 19 16:42:17 2002
***************
*** 19,25 ****
  # write to the Free Software Foundation, Inc., 59 Temple Place 
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
! # $Id: geasMetaObject.py,v 1.3 2002/06/19 13:26:11 siesel Exp $
  
  from gnue.common import GDebug
  import geasObject
--- 19,25 ----
  # write to the Free Software Foundation, Inc., 59 Temple Place 
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
! # $Id: geasMetaObject.py,v 1.4 2002/06/19 20:42:17 siesel Exp $
  
  from gnue.common import GDebug
  import geasObject
***************
*** 36,41 ****
--- 36,51 ----
    def getChildByOID(self,OID):
      return None
  
+   def getAllChildren(self):
+     return None
+ 
+   def newChild(self):
+     pass
+ 
+   def _saveChild(self, c):
+     pass
+   # write child c back to db
+ 
  class geasSimpleObjectFactory(geasMetaObject):
    # this class is a factory which loads and stores namespaces, class objects 
    # etc., which could be described in a config file by this settings:
***************
*** 69,77 ****
  
      
    def getChildByOID(self,OID):
!     # self._oidrow should also be send to datasource
!     # at the moment it defaults to "goid"
!     data=self._datasource.getObjectData(OID,self._tablename,
                                          self._oidrow,self._rownames)
      if data and len(data)>0:
        # build new object
--- 79,85 ----
  
      
    def getChildByOID(self,OID):
!     data=self._datasource.getIndexedRowData(OID,self._tablename,
                                          self._oidrow,self._rownames)
      if data and len(data)>0:
        # build new object
***************
*** 85,96 ****
          
        # save object into cache        
        registerObject(o)
!       
        # return new object
        return o
      else:
        return None
  
  
  # 
=============================================================================
  # Basic class
--- 93,140 ----
          
        # save object into cache        
        registerObject(o)
! 
        # return new object
        return o
      else:
        return None
  
+   def getAllChildren(self):
+     # load all possible children / attention, there is no search in the cache
+     # at the moment
+     objects={}
+     data=self._datasource.getWholeRowData(self._tablename,
+                                           self._rownames+[self._oidrow])
+     if data:
+       for record in data:
+     
+         OID=record[self._oidrow]
+         if not objects.has_key(OID):
+           # build new object
+           objects[OID] = self._objclass(OID,self._OID)
+           # save object into cache        
+           registerObject(objects[OID])
+           # print "Create object with OID %s" % OID
+           
+         populate = getattr(objects[OID],self._populatefunction)
+         params=[]
+         for i in self._rownames:
+           params.append(record[i])        
+         populate(*params)
+         
+ 
+ 
+     return objects
+     
+     
+ 
+   def newChild(self):
+     pass
+ 
+   def _saveChild(self, c):
+     pass
+   # write child c back to db
+ 
  
  # 
=============================================================================
  # Basic class
***************
*** 146,152 ****
        im=self._instanceMethods[i]      
        im.setAssociatedObject(instance)
        instance.__dict__.update({i:im})
!       
      return instance
  
    def buildInstance(self,data):
--- 190,197 ----
        im=self._instanceMethods[i]      
        im.setAssociatedObject(instance)
        instance.__dict__.update({i:im})
! 
!     registerObject(instance)
      return instance
  
    def buildInstance(self,data):
***************
*** 171,177 ****
        im=copy.copy(self._instanceMethods[i])
        im.setAssociatedObject(instance)
        instance.__dict__.update({i:im})
!       
      return instance
  
    def storeInstance(self, instance):    
--- 216,223 ----
        im=copy.copy(self._instanceMethods[i])
        im.setAssociatedObject(instance)
        instance.__dict__.update({i:im})
! 
!     registerObject(instance)
      return instance
  
    def storeInstance(self, instance):    
***************
*** 190,196 ****
        raise AttributeError, "Object description (OID=%s) has no tablename" % \
              self._OID
  
!     list.setPrefetch (self._instanceAttribs.keys())
      list.setConditions ([])
      parent=getObject(self._parent_OID)
      self._connections=parent._datasource._connections
--- 236,242 ----
        raise AttributeError, "Object description (OID=%s) has no tablename" % \
              self._OID
  
!     list.setPrefetch (self._instanceAttribs.keys()+['_OID'])
      list.setConditions ([])
      parent=getObject(self._parent_OID)
      self._connections=parent._datasource._connections
Index: gnue/appserver/src/_featuretest/geasObjectServer.py
diff -c gnue/appserver/src/_featuretest/geasObjectServer.py:1.1 
gnue/appserver/src/_featuretest/geasObjectServer.py:1.2
*** gnue/appserver/src/_featuretest/geasObjectServer.py:1.1     Wed Jun 19 
09:15:46 2002
--- gnue/appserver/src/_featuretest/geasObjectServer.py Wed Jun 19 16:42:17 2002
***************
*** 19,25 ****
  # write to the Free Software Foundation, Inc., 59 Temple Place 
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
! # $Id: geasObjectServer.py,v 1.1 2002/06/19 13:15:46 siesel Exp $
  
  from gnue.common import GDataSource
  import thread
--- 19,25 ----
  # write to the Free Software Foundation, Inc., 59 Temple Place 
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
! # $Id: geasObjectServer.py,v 1.2 2002/06/19 20:42:17 siesel Exp $
  
  from gnue.common import GDataSource
  import thread
***************
*** 55,61 ****
      # register global functions
      import __builtin__
      __builtin__.__dict__["getObject"]=self.getObject
!     __builtin__.__dict__["registerObject"]=self.getObject
      __builtin__.__dict__["getNewOID"]=self.getNewOID
  
      # =======================================================================
--- 55,61 ----
      # register global functions
      import __builtin__
      __builtin__.__dict__["getObject"]=self.getObject
!     __builtin__.__dict__["registerObject"]=self.registerObject
      __builtin__.__dict__["getNewOID"]=self.getNewOID
  
      # =======================================================================
***************
*** 76,82 ****
            return obj
      
    def registerObject(self,obj):
!     # check if object with that OID already exist.
      if self._object_cache.has_key(obj._OID):
        # if it exists and it is equal do nothing
        # if it exists and it not equal raise an error
--- 76,86 ----
            return obj
      
    def registerObject(self,obj):
!     # print "Registering %s" % obj
!     if (not hasattr(obj,'_OID')) or obj._OID==None:
!       # don't store objects without OID
!       return
!     # check if object with that OID already exist.    
      if self._object_cache.has_key(obj._OID):
        # if it exists and it is equal do nothing
        # if it exists and it not equal raise an error
Index: gnue/common/src/GTest.py
diff -c gnue/common/src/GTest.py:1.4 gnue/common/src/GTest.py:1.5
*** gnue/common/src/GTest.py:1.4        Wed Jun  5 15:58:31 2002
--- gnue/common/src/GTest.py    Wed Jun 19 16:42:17 2002
***************
*** 20,26 ****
  # write to the Free Software Foundation, Inc., 59 Temple Place 
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
! # $Id: GTest.py,v 1.4 2002/06/05 19:58:31 siesel Exp $
  
  
  import sys, string, os
--- 20,26 ----
  # write to the Free Software Foundation, Inc., 59 Temple Place 
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
! # $Id: GTest.py,v 1.5 2002/06/19 20:42:17 siesel Exp $
  
  
  import sys, string, os
***************
*** 71,81 ****
--- 71,86 ----
       please type 'gacvs' on an other console to start
       it up.)
  
+ 4)  GNU Application Server demo (feature enhanced, unofficial version)
+     (you have to setup the database first. Please read
+      gnue/appserver/src/_featuretest/README  for more information.
+      
  9)  quit
  
  """
      return getNumber("Your choice:")
  
+ 
  def runTest(x):
  
      if x=="0":
***************
*** 142,150 ****
      elif x=="3":
          from gnue.appserver import geasRpcClient
          geasRpcClient.run()
      else:
          sys.exit()
          
      
  if __name__ == "__main__":
!     runTest(chooseTest())
--- 147,163 ----
      elif x=="3":
          from gnue.appserver import geasRpcClient
          geasRpcClient.run()
+     elif x=="4":
+         from gnue.appserver._featuretest import atest
+         atest.run()
      else:
          sys.exit()
          
      
  if __name__ == "__main__":
!   if len(sys.argv)>1:
!     choice=sys.argv[1]
!   else:
!     choice=chooseTest()
!   
!   runTest(choice)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]