objectbridge-users Mailing List for ObJectRelationalBridge (Page 6)
Brought to you by:
thma
You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
(32) |
May
(86) |
Jun
(53) |
Jul
|
Aug
(3) |
Sep
|
Oct
|
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: David R. <cas...@fr...> - 2002-05-09 15:18:07
|
hi all i'm new to ObjectBridge but it seems quite an impressive piece of work! i just met some confusing behaviour so i'm asking to see if it's because i missed something : i'm trying to add an 'order by' clause to my request but the result never gets ordered i tried both persistentBroker layer and ODMG layer they both behave in the same way here is what i wrote : PersistenceBroker pb = PersistenceBrokerFactory.createPersistenceBroker("repository.xml"); Criteria criteria = new Criteria(); criteria.addOrderBy("id", false); Query query = new QueryByCriteria(test.DVDObject.class, criteria); java.util.Iterator iter = pb.getCollectionByQuery(query).iterator(); while (iter.hasNext()) { System.out.println(iter.next()); } and i get this on the standard output (the 'id' is the value between parenthesis) : test.DVDObjectImpl (68)[Superman II] test.DVDObjectImpl (36)[Men in Black] test.DVDObjectImpl (48)[Ninja Scroll] test.DVDObjectImpl (16)[Cybersix - vol. 1] test.DVDObjectImpl (28)[Evil Cult] test.DVDObjectImpl (102)[Ghost in the Shell] test.DVDObjectImpl (9)[Anastasia] not really sorted so what am i doing wrong ?? i'm using v0.8.400 with sun jdk1.4 thank you for your help David |
From: Ebersole, S. <ste...@vi...> - 2002-05-08 12:09:44
|
Below is the exception I get. I appears that the exception occurs when trying to resolve the reference to parent company when that fk column is null. If I remove that reference descriptor, everything works. Query from class com.vignette.it.apps.dbapi.domain.CompanyDO where comp_id= ? [DEFAULT] WARN: Please define a public constructor for class com.vignette.it.apps.dbapi.domain.CompanyDO with the following signature: (java.lang.Integer, java.lang.String, java.lang.Integer). It must initialize the classes persistent attributes. This is recommended to increase performance but it's not mandatory! [ojb.broker.singlevm.PersistenceBrokerImpl] ERROR: expected type: class com.vignette.it.apps.dbapi.domain.CompanyDO [ojb.broker.accesslayer.RsIterator] ERROR: null java.lang.ArrayIndexOutOfBoundsException at ojb.broker.metadata.ClassDescriptor.getFieldDescriptorByIndex(ClassDescripto r.java:263) at ojb.broker.metadata.ObjectReferenceDescriptor.getForeignKeyFieldDescriptors( ObjectReferenceDescriptor.java:242) at ojb.broker.metadata.ObjectReferenceDescriptor.getForeignKeyValues(ObjectRefe renceDescriptor.java:264) at ojb.broker.singlevm.PersistenceBrokerImpl.getReferencedObject(PersistenceBro kerImpl.java:700) at ojb.broker.singlevm.PersistenceBrokerImpl.retrieveReferences(PersistenceBrok erImpl.java:517) at ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(RsIterator.java:263 ) at ojb.broker.accesslayer.RsIterator.next(RsIterator.java:145) at ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBr okerImpl.java:900) at ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBr okerImpl.java:966) at ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBr okerImpl.java:1054) at ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBr okerImpl.java:1041) at TestOJBInstall.execute(TestOJBInstall.java:66) at TestOJBInstall.main(TestOJBInstall.java:53) java.util.NoSuchElementException at ojb.broker.accesslayer.RsIterator.next(RsIterator.java:154) at ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBr okerImpl.java:900) at ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBr okerImpl.java:966) at ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBr okerImpl.java:1054) at ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(PersistenceBr okerImpl.java:1041) at TestOJBInstall.execute(TestOJBInstall.java:66) at TestOJBInstall.main(TestOJBIError occurred : java.util.NoSuchElementException nstall.java:53) ******************************************** Steve Ebersole IT Integration Engineer Vignette Corporation 512.741.4195 Visit http://www.vignette.com ******************************************** -----Original Message----- From: Thomas Mahler [mailto:tho...@ho...] Sent: Friday, May 03, 2002 12:11 AM To: Ebersole, Steven Subject: Re: [ojb-users] references Hi Steven, Ebersole, Steven wrote: > I am looking at switching from Castor over to OJB as it looks really > promising in terms of its functionality (I especially love the use of > virtual proxies here). I did have two questions come up from my initial > trials of OJB. > > 1) Is it necessary to have both the foreign key and the foreign reference > mapped and present on the object? depends on the navigibility between your persistent classes. If you want to navigate from the 1-side to the n-side only, you just need a foreign key (and a ForeignKeyDescriptor). If you want navigation from the n-side to the 1-side too, you'll also need a reference attribute (and a ReferenceDecsriptor too). In the examples, the relation between > Article and ProductGroup is the example From which I was working. There, > Article has two attributes dealing with its relation to a ProductGroup, Yes, because we have navigation from ProductGroup to all its Articles and from an Article to its associated ProductGroup. > productGroupId (which is the DB fk field) and productGroup (which is an > instance of the ProductGroup object to which productGroupId referes). Is it > necessary to do this, or is there a way to have the Product object only know > about its related ProductGroup? No, because ProductGroup and Article have a 1:n relation the table representaing Article entities *must* have a foreign key to identify the associated ProductGroup. > > 2) I mapped a relationship, uing my classes, similiar to the above > relationship (it is a company -> parent company relationship). However, I > get exceptions if a particular company did not have a parent company (its > PRTN_COMP_ID column on the DB is NULL). Is there something additional I > have to set up in the mapping to define that side of the relationship as > optional? Below is the mapping I have for this: > > > <ClassDescriptor id="2"> > <class.name>com.vignette.it.apps.dbapi.domain.CompanyDO</class.name> > <table.name>COMPANY</table.name> > <FieldDescriptor id="1"> > <field.name>id</field.name> > <column.name>COMP_ID</column.name> > <jdbc_type>INTEGER</jdbc_type> > <PrimaryKey>true</PrimaryKey> > </FieldDescriptor> > ... > <FieldDescriptor id="5"> > <field.name>parentCompanyId</field.name> > <column.name>PRNT_COMP_ID</column.name> > <jdbc_type>INTEGER</jdbc_type> > </FieldDescriptor> > <ReferenceDescriptor id="1"> > <rdfield.name>parentCompany</rdfield.name> > > <referenced.class>com.vignette.it.apps.dbapi.domain.CompanyDO</referenced.cl > ass> > <fk_descriptor_ids>5</fk_descriptor_ids> > </ReferenceDescriptor> > </ClassDescriptor> > Your mapping seems OK. This must be an OJB bug! Can you provide me with a full stacktrace ? thanks, Thomas > > Thanks > > > > > ******************************************** > Steve Ebersole > IT Integration Engineer > Vignette Corporation > 512.741.4195 > > Visit http://www.vignette.com > > ******************************************** > > _______________________________________________________________ > > Have big pipes? SourceForge.net is looking for download mirrors. We supply > the hardware. You get the recognition. Email Us: ban...@so... > _______________________________________________ > Objectbridge-users mailing list > Obj...@li... > https://lists.sourceforge.net/lists/listinfo/objectbridge-users > > > > |
From: Jason M. <mc...@na...> - 2002-05-07 17:39:23
|
Anyone know how I can use a different JDBC Connection than the one defined in repository.xml? Repository.xml says, if a Class does not specifiy it's own connection then it uses default. How do I specify connection in the class? Traditional JDBC/JNDI? If so, then how do I usethe broker interface in conjunction with that? Thanks, Newt |
From: Thomas M. <tho...@ho...> - 2002-05-03 22:45:43
|
Hi all, I assembled a temporary release (0.8.400) tonight and published it at SourceForge. I hope it causes less trouble than the last release. If you don't receive emails from me next week, it's not because I'm in a bad mood... I'm just on a vacation for a few days and will be offline till next weekend. cheers, Thomas |
From: Weaver, S. <Sw...@ri...> - 2002-05-03 12:37:53
|
> So I believe this is going to happen ! Great!!! > Yes, Jason van Zyl posted a proposal to make OJB a top-level > subproject > of jakarta: I'm a big Turbine user, and that's were I heard the news. > Martin Poeschl summarized the votings of the Jakarta Project That's who I had heard it from. scott > -----Original Message----- > From: Thomas Mahler [mailto:tho...@ho...] > Sent: Thursday, May 02, 2002 5:19 PM > To: Weaver, Scott > Cc: obj...@li... > Subject: Re: [ojb-users] OJB becoming a Jakarta project? > > > Hi Scott, > > Weaver, Scott wrote: > > > Is it true that OJB is under consideration to become a > top-level Jakarta > > project? > > > Yes, Jason van Zyl posted a proposal to make OJB a top-level > subproject > of jakarta: > http://www.mail-archive.com/general%40jakarta.apache.org/msg04882.html > > Martin Poeschl summarized the votings of the Jakarta Project > Management > committee as follows: > http://www.mail-archive.com/general%40jakarta.apache.org/msg05046.html > > So I believe this is going to happen ! > > > > > > Just curious, 'cause I've heard things on a certain Jakarta > mail group. > > IMOHO, this would really help give OJB higher visibility in > the Java > > community. > > > + better reputation > + more developers actively working, > > The thing I like most is that the Jakarta developers want to > have OJB in > their portfolio. They want to integrate it into frameworks > like Turbine etc. > > Behind the scenes we are already preparing the move (etc. > using MAVEN as > a build tool) build it will take some time to finish all > organizational > stuff. > > cu, > > Thomas > > > > > > > > Scott > > > > > > _______________________________________________________________ > > Have big pipes? SourceForge.net is looking for download > mirrors. We supply > the hardware. You get the recognition. Email Us: > ban...@so... > _______________________________________________ > Objectbridge-users mailing list > Obj...@li... > https://lists.sourceforge.net/lists/listinfo/objectbridge-users > |
From: Thomas M. <tho...@ho...> - 2002-05-02 21:19:10
|
Hi Scott, Weaver, Scott wrote: > Is it true that OJB is under consideration to become a top-level Jakarta > project? Yes, Jason van Zyl posted a proposal to make OJB a top-level subproject of jakarta: http://www.mail-archive.com/general%40jakarta.apache.org/msg04882.html Martin Poeschl summarized the votings of the Jakarta Project Management committee as follows: http://www.mail-archive.com/general%40jakarta.apache.org/msg05046.html So I believe this is going to happen ! > > Just curious, 'cause I've heard things on a certain Jakarta mail group. > IMOHO, this would really help give OJB higher visibility in the Java > community. + better reputation + more developers actively working, The thing I like most is that the Jakarta developers want to have OJB in their portfolio. They want to integrate it into frameworks like Turbine etc. Behind the scenes we are already preparing the move (etc. using MAVEN as a build tool) build it will take some time to finish all organizational stuff. cu, Thomas > > > Scott > |
From: Thomas M. <tho...@ho...> - 2002-05-02 21:19:05
|
Hi again Jiri, Jiri Luzny wrote: > Thomas, > > On Thu, 02 May 2002 19:56:06 +0200, you wrote: > >>Hi Jiri, >> >>If optimistic locking is sufficient for you, you might also use the >>PersistenceBroker API directly. The PB is also thread-safe. >> > > My question was based on the info in FAQ: "The PB has no means to > check whether objects are used by concurrent threads" > yes, no pessimistic locking ! > > >>The ODMG level provides object transaction (similar to TopLinks >>Unit-of-work) that you don't have on the PB level. >> > > I see... I'm familiar with the concept ;-) > > > >>If you need those things (object transations, persistence aware >>collections etc.) you should go for ODMG. >> >>If not: use the PB. >> > > Is it possible to combine these two APIs (in one transaction)? I'm > missing the QueryByExample way of work in the ODMG API. > Yes ! that's supported. I don't like OQL. that's why I build everything in way that allows to use the PB queries within ODMG transactions. (Once the S.O.D.A implementation is finished you will also be able to use S.O.D.A queries withing ODMG). There is only one important note: All objects returned by a query must be locked to the current transaction. please have a look at the method ojb.odmg.oql.OQLQueryImpl.excute() to see how this is done within the ODMG implementation itself. > >>my ejb sample is rather old. Its also not about session beans, but about >>using OJB in BMP entity beans. >> > > There is a JTA example using a session bean: > test.ojb.jta.SampleSessionBean > right, I forgot about it ;-) > > >>We are currently working on JTA and JCA integration. Once we have >>finished this, we will also provide some documentation about usage in >>J2EE containers. >> > > I thought JTA integration is already done... see history.html > I use PersistenceBrokerJ2EEImpl and it seems to work. I'm going to do > thorough tests soon. Right, JTA support is there. but it's only a first step implementation. Matthew and Jesper are working on a improved version. > Could you just outline what would be the proper way of using ODMG/PB > objects within session bean? Are there any differences comparing to > the "normal" usage described in tutorial2? > Apart from integration into Appserver transaction demarcation I don't see much differences. But personally I have not that much experience with OJB in SessionBeans (mostly doing servlet stuff). > >>That's intended! Can you imagine how shocked the TOPLink guys are about >>this ;-) >> > > Yes, I can. :-) > BTW I was also disapointed by their constant ignorance of the > existence of JBoss. The combination of JBoss + OJB is gonna be the > killer middleware ;-) > Yes, that's why we are pushing towards a complete JCA integration ! cheers, Thomas > Jiri. > > > > > |
From: Weaver, S. <Sw...@ri...> - 2002-05-02 19:32:12
|
Is it true that OJB is under consideration to become a top-level Jakarta project? Just curious, 'cause I've heard things on a certain Jakarta mail group. IMOHO, this would really help give OJB higher visibility in the Java community. Scott |
From: Jiri L. <jir...@ho...> - 2002-05-02 19:05:48
|
Thomas, On Thu, 02 May 2002 19:56:06 +0200, you wrote: >Hi Jiri, > >If optimistic locking is sufficient for you, you might also use the=20 >PersistenceBroker API directly. The PB is also thread-safe. My question was based on the info in FAQ: "The PB has no means to check whether objects are used by concurrent threads" > >The ODMG level provides object transaction (similar to TopLinks=20 >Unit-of-work) that you don't have on the PB level. I see... I'm familiar with the concept ;-) >If you need those things (object transations, persistence aware=20 >collections etc.) you should go for ODMG. > >If not: use the PB. Is it possible to combine these two APIs (in one transaction)? I'm missing the QueryByExample way of work in the ODMG API. >my ejb sample is rather old. Its also not about session beans, but about= =20 >using OJB in BMP entity beans. There is a JTA example using a session bean: test.ojb.jta.SampleSessionBean >We are currently working on JTA and JCA integration. Once we have=20 >finished this, we will also provide some documentation about usage in=20 >J2EE containers. I thought JTA integration is already done... see history.html I use PersistenceBrokerJ2EEImpl and it seems to work. I'm going to do thorough tests soon. Could you just outline what would be the proper way of using ODMG/PB objects within session bean? Are there any differences comparing to the "normal" usage described in tutorial2? >That's intended! Can you imagine how shocked the TOPLink guys are about=20 >this ;-) Yes, I can. :-) BTW I was also disapointed by their constant ignorance of the existence of JBoss. The combination of JBoss + OJB is gonna be the killer middleware ;-) Jiri. |
From: Thomas M. <tho...@ho...> - 2002-05-02 17:56:14
|
Hi Jiri, Jiri Luzny wrote: > Hi, > > we are just evaluating OJB to use it as the persistence engine for our > project where we consider this scenario: Pure Java Persistent Classes > within Stateless Session Beans (JBoss). > After reading the docs and test samples I'm little bit confused what > API I should actually use. > J2EE is an environment where concurrent threads will access the same > persistent object so the ODMG API's locking and transaction > capabilities should be used here. If optimistic locking is sufficient for you, you might also use the PersistenceBroker API directly. The PB is also thread-safe. The ODMG level provides object transaction (similar to TopLinks Unit-of-work) that you don't have on the PB level. The faq.html mentions some other things that are not possible on the PB level. If you need those things (object transations, persistence aware collections etc.) you should go for ODMG. If not: use the PB. > However all EJB examples in OJB use > PersistenceBroker directly!? > Can you clarify it? my ejb sample is rather old. Its also not about session beans, but about using OJB in BMP entity beans. > It would be nice to have an up-to-date guide or examples of usage OJB > within JE22 app servers. > There is some documentation on this (at least about usage in a web-container) in the deployment.html. There is also a sample for using OJB within a Struts application in the contribution download package. We are currently working on JTA and JCA integration. Once we have finished this, we will also provide some documentation about usage in J2EE containers. > Thank you, > Jiri. > > BTW: I used to work with Toplink in my previous project. The current > project has smaller budget so we have started looking around for a > replacement. > I was kind of shocked when I figured out that OJB provides almost the > same functionality and it is open-source! :-) That's intended! Can you imagine how shocked the TOPLink guys are about this ;-) > Keep up the excellent work! > thanks, Thomas > > _______________________________________________________________ > > Have big pipes? SourceForge.net is looking for download mirrors. We supply > the hardware. You get the recognition. Email Us: ban...@so... > _______________________________________________ > Objectbridge-users mailing list > Obj...@li... > https://lists.sourceforge.net/lists/listinfo/objectbridge-users > > > > |
From: Juergen L. <jli...@un...> - 2002-05-02 15:52:49
|
Hi,=20 I've got a problem with the n:m mapping. I've got a quiet simple objetcmode= l with two classes with the n:m relationship. Einrichtung contains a Vector gruppen, a name and a id Gruppe contains a Vector einrichtungen a name and a id Im trying to create a Gruppe and a Einrichtung with a relationship. public void newElements(String name) { Gruppe g =3D new Gruppe(); Einrichtung e =3D new Einrichtung(); g.setName(name); =20 e.setName("AA" + name); =20 =20 g.addEinrichtung(e); e.addGruppe(g); =20 try { broker.beginTransaction(); broker.store(g); broker.store(e); broker.commitTransaction(); } ... After this I have got a Einrichtung in its table and a Gruppe in its = table.=20 The Relation-table 'eigr' is empty. The program seems to be in an endless = loop. Does someone knows a solution to work with n:m mapping? [ojb.broker.accesslayer.SqlGenerator] DEBUG: SQL: SELECT OJB_HL_SEQ.CLASSNA= ME,OJB_HL_SEQ.FIELDNAME,OJB_HL_SEQ.MAX_KEY,OJB_HL_SEQ.GRAB_SIZE FROM = OJB_HL_SEQ WHERE (OJB_HL_SEQ.CLASSNAME =3D ?) AND (OJB_HL_SEQ.FIELDNAME = =3D ?) [ojb.broker.accesslayer.JdbcAccess] DEBUG: executeInsert: ojb.broker.util.s= equence.HighLowSequence@d7ad1c [ojb.broker.accesslayer.SqlGenerator] DEBUG: SQL: INSERT INTO OJB_HL_SEQ = (CLASSNAME,FIELDNAME,MAX_KEY,GRAB_SIZE) VALUES (?,?,?,?) [ojb.broker.accesslayer.SqlGenerator] DEBUG: SQL: SELECT .gruppe.id,.gruppe= .name FROM .gruppe WHERE (.gruppe.id =3D ?) [ojb.broker.accesslayer.JdbcAccess] DEBUG: executeInsert: aaa [ojb.broker.accesslayer.SqlGenerator] DEBUG: SQL: INSERT INTO .gruppe = (id,name) VALUES (?,?) [ojb.broker.accesslayer.JdbcAccess] DEBUG: executeInsert: ojb.broker.util.s= equence.HighLowSequence@91cee [ojb.broker.accesslayer.SqlGenerator] DEBUG: SQL: INSERT INTO eigr = (grId,eiId) VALUES (1,1) [ojb.broker.accesslayer.JdbcAccess] DEBUG: executeUpdateSQL: INSERT INTO = eigr (grId,eiId) VALUES (1,1) [ojb.broker.accesslayer.SqlGenerator] DEBUG: SQL: SELECT .einrichtung.id,.e= inrichtung.name FROM .einrichtung WHERE (.einrichtung.id =3D ?) [ojb.broker.accesslayer.JdbcAccess] DEBUG: executeInsert: AAaaa [ojb.broker.accesslayer.SqlGenerator] DEBUG: SQL: INSERT INTO .einrichtung = (id,name) VALUES (?,?) [ojb.broker.accesslayer.SqlGenerator] DEBUG: SQL: INSERT INTO eigr = (eiId,grId) VALUES (1,1) [ojb.broker.accesslayer.JdbcAccess] DEBUG: executeUpdateSQL: INSERT INTO = eigr (eiId,grId) VALUES (1,1) [ojb.broker.accesslayer.JdbcAccess] DEBUG: executeUpdate: aaa [ojb.broker.accesslayer.SqlGenerator] DEBUG: SQL: UPDATE .gruppe SET = name=3D? WHERE (.gruppe.id =3D ?) [ojb.broker.accesslayer.SqlGenerator] DEBUG: SQL: INSERT INTO eigr = (grId,eiId) VALUES (1,1) [ojb.broker.accesslayer.JdbcAccess] DEBUG: executeUpdateSQL: INSERT INTO = eigr (grId,eiId) VALUES (1,1) [ojb.broker.accesslayer.JdbcAccess] DEBUG: executeUpdate: AAaaa [ojb.broker.accesslayer.SqlGenerator] DEBUG: SQL: UPDATE .einrichtung SET = name=3D? WHERE (.einrichtung.id =3D ?) [ojb.broker.accesslayer.SqlGenerator] DEBUG: SQL: INSERT INTO eigr = (eiId,grId) VALUES (1,1) [ojb.broker.accesslayer.JdbcAccess] DEBUG: executeUpdateSQL: INSERT INTO = eigr (eiId,grId) VALUES (1,1) [ojb.broker.accesslayer.JdbcAccess] DEBUG: executeUpdate: aaa [ojb.broker.accesslayer.SqlGenerator] DEBUG: SQL: INSERT INTO eigr = (grId,eiId) VALUES (1,1) [ojb.broker.accesslayer.JdbcAccess] DEBUG: executeUpdateSQL: INSERT INTO = eigr (grId,eiId) VALUES (1,1) [ojb.broker.accesslayer.JdbcAccess] DEBUG: executeUpdate: AAaaa [ojb.broker.accesslayer.SqlGenerator] DEBUG: SQL: INSERT INTO eigr = (eiId,grId) VALUES (1,1) [ojb.broker.accesslayer.JdbcAccess] DEBUG: executeUpdateSQL: INSERT INTO = eigr (eiId,grId) VALUES (1,1) [ojb.broker.accesslayer.JdbcAccess] DEBUG: executeUpdate: aaa [ojb.broker.accesslayer.SqlGenerator] DEBUG: SQL: INSERT INTO eigr = (grId,eiId) VALUES (1,1) [ojb.broker.accesslayer.JdbcAccess] DEBUG: executeUpdateSQL: INSERT INTO = eigr (grId,eiId) VALUES (1,1) [ojb.broker.accesslayer.JdbcAccess] DEBUG: executeUpdate: AAaaa [ojb.broker.accesslayer.SqlGenerator] DEBUG: SQL: INSERT INTO eigr = (eiId,grId) VALUES (1,1) [ojb.broker.accesslayer.JdbcAccess] DEBUG: executeUpdateSQL: INSERT INTO = eigr (eiId,grId) VALUES (1,1) [ojb.broker.accesslayer.JdbcAccess] DEBUG: executeUpdate: aaa [ojb.broker.accesslayer.SqlGenerator] DEBUG: SQL: INSERT INTO eigr = (grId,eiId) VALUES (1,1) [ojb.broker.accesslayer.JdbcAccess] DEBUG: executeUpdateSQL: INSERT INTO = eigr (grId,eiId) VALUES (1,1) [ojb.broker.accesslayer.JdbcAccess] DEBUG: executeUpdate: AAaaa [ojb.broker.accesslayer.SqlGenerator] DEBUG: SQL: INSERT INTO eigr = (eiId,grId) VALUES (1,1) [ojb.broker.accesslayer.JdbcAccess] DEBUG: executeUpdateSQL: INSERT INTO = eigr (eiId,grId) VALUES (1,1) [ojb.broker.accesslayer.JdbcAccess] DEBUG: executeUpdate: aaa [ojb.broker.accesslayer.SqlGenerator] DEBUG: SQL: INSERT INTO eigr = (grId,eiId) VALUES (1,1) [ojb.broker.accesslayer.JdbcAccess] DEBUG: executeUpdateSQL: INSERT INTO = eigr (grId,eiId) VALUES (1,1) [ojb.broker.accesslayer.JdbcAccess] DEBUG: executeUpdate: AAaaa [ojb.broker.accesslayer.SqlGenerato Here is the small xml-repositoryfile for this problem <!-- Mapping of User defined classes starts here --> <!-- Please keep user defined mappings in this file only, to avoid mixing user defined and system mappings. --> =20 <ClassDescriptor id=3D"0"> <class.name>com.ojbtest.Einrichtung</class.name> <class.proxy>dynamic</class.proxy> <table.name>.einrichtung</table.name> <FieldDescriptor id=3D"1"> <field.name>id</field.name> <column.name>id</column.name> <jdbc_type>INTEGER</jdbc_type> <PrimaryKey>true</PrimaryKey> <autoincrement>true</autoincrement> </FieldDescriptor> <FieldDescriptor id=3D"2"> <field.name>name</field.name> <column.name>name</column.name> <jdbc_type>VARCHAR</jdbc_type> </FieldDescriptor> <CollectionDescriptor id=3D"1"> <cdfield.name>gruppen</cdfield.name> <items.class>com.ojbtest.Gruppe</items.class> <inverse_fk_descriptor_ids>999</inverse_fk_descriptor_ids> <indirection_table>eigr</indirection_table> <fks_pointing_to_this_class>eiId</fks_pointing_to_this_class> <fks_pointing_to_items_class>grId</fks_pointing_to_items_class> <auto.retrieve>true</auto.retrieve> <auto.update>true</auto.update> </CollectionDescriptor> </ClassDescriptor> <ClassDescriptor id=3D"1"> <class.name>com.ojbtest.Gruppe</class.name> <class.proxy>dynamic</class.proxy> <table.name>.gruppe</table.name> <FieldDescriptor id=3D"1"> <field.name>id</field.name> <column.name>id</column.name> <jdbc_type>INTEGER</jdbc_type> <PrimaryKey>true</PrimaryKey> <autoincrement>true</autoincrement> </FieldDescriptor> <FieldDescriptor id=3D"2"> <field.name>name</field.name> <column.name>name</column.name> <jdbc_type>VARCHAR</jdbc_type> </FieldDescriptor> =09 <CollectionDescriptor id=3D"1"> <cdfield.name>einrichtungen</cdfield.name> <items.class>com.ojbtest.Einrichtung</items.class> <inverse_fk_descriptor_ids>999</inverse_fk_descriptor_ids> <indirection_table>eigr</indirection_table> <fks_pointing_to_this_class>grId</fks_pointing_to_this_class> <fks_pointing_to_items_class>eiId</fks_pointing_to_items_class> <auto.retrieve>true</auto.retrieve> <auto.update>true</auto.update> </CollectionDescriptor> </ClassDescriptor> |
From: Ebersole, S. <ste...@vi...> - 2002-05-02 13:53:55
|
I am looking at switching from Castor over to OJB as it looks really promising in terms of its functionality (I especially love the use of virtual proxies here). I did have two questions come up from my initial trials of OJB. 1) Is it necessary to have both the foreign key and the foreign reference mapped and present on the object? In the examples, the relation between Article and ProductGroup is the example From which I was working. There, Article has two attributes dealing with its relation to a ProductGroup, productGroupId (which is the DB fk field) and productGroup (which is an instance of the ProductGroup object to which productGroupId referes). Is it necessary to do this, or is there a way to have the Product object only know about its related ProductGroup? 2) I mapped a relationship, uing my classes, similiar to the above relationship (it is a company -> parent company relationship). However, I get exceptions if a particular company did not have a parent company (its PRTN_COMP_ID column on the DB is NULL). Is there something additional I have to set up in the mapping to define that side of the relationship as optional? Below is the mapping I have for this: <ClassDescriptor id="2"> <class.name>com.vignette.it.apps.dbapi.domain.CompanyDO</class.name> <table.name>COMPANY</table.name> <FieldDescriptor id="1"> <field.name>id</field.name> <column.name>COMP_ID</column.name> <jdbc_type>INTEGER</jdbc_type> <PrimaryKey>true</PrimaryKey> </FieldDescriptor> ... <FieldDescriptor id="5"> <field.name>parentCompanyId</field.name> <column.name>PRNT_COMP_ID</column.name> <jdbc_type>INTEGER</jdbc_type> </FieldDescriptor> <ReferenceDescriptor id="1"> <rdfield.name>parentCompany</rdfield.name> <referenced.class>com.vignette.it.apps.dbapi.domain.CompanyDO</referenced.cl ass> <fk_descriptor_ids>5</fk_descriptor_ids> </ReferenceDescriptor> </ClassDescriptor> Thanks ******************************************** Steve Ebersole IT Integration Engineer Vignette Corporation 512.741.4195 Visit http://www.vignette.com ******************************************** |
From: Jiri L. <jir...@ho...> - 2002-05-02 08:02:27
|
Hi, we are just evaluating OJB to use it as the persistence engine for our project where we consider this scenario: Pure Java Persistent Classes within Stateless Session Beans (JBoss). After reading the docs and test samples I'm little bit confused what API I should actually use. J2EE is an environment where concurrent threads will access the same persistent object so the ODMG API's locking and transaction capabilities should be used here. However all EJB examples in OJB use PersistenceBroker directly!? Can you clarify it? It would be nice to have an up-to-date guide or examples of usage OJB within JE22 app servers. Thank you, Jiri. BTW: I used to work with Toplink in my previous project. The current project has smaller budget so we have started looking around for a replacement.=20 I was kind of shocked when I figured out that OJB provides almost the same functionality and it is open-source! :-) Keep up the excellent work! |
From: Weaver, S. <Sw...@ri...> - 2002-04-26 19:52:38
|
Thanks Thomas, I had originally come to that conclusion, but was getting weird query results. The issue ended up being that I had forgot to add the <PrimaryKey>true</PrimaryKey> to one of the 3 FieldDescriptors that were PK's. After fixing that, everything worked fine. Thanks again, Scott > -----Original Message----- > From: Thomas Mahler [mailto:tho...@ho...] > Sent: Friday, April 26, 2002 2:27 PM > To: Weaver, Scott > Cc: obj...@li... > Subject: Re: [ojb-users] How define composite keys using OJB. > > > Hi Scott, > > Weaver, Scott wrote: > > > I'm accessing legacy data that has some of it's tables > using composite > > (multiple) primary keys. How is this accomplished in OJB? > > > That's quite easy: > For each attribute in your persistent class representing a > Primary key > column in your DB add a <primaryKey>true</primaryKey> > elements to their > respective FieldDescriptors in the Repository. > > That's all! > > Details for Reference- and CollectionDescriptors are mentioned in > tutorial 3. > > HTH, > > Thomas > > > > > > Thanks, > > Scott > > > > > > _______________________________________________ > Objectbridge-users mailing list > Obj...@li... > https://lists.sourceforge.net/lists/listinfo/objectbridge-users > |
From: Thomas M. <tho...@ho...> - 2002-04-26 17:26:56
|
Hi Scott, Weaver, Scott wrote: > I'm accessing legacy data that has some of it's tables using composite > (multiple) primary keys. How is this accomplished in OJB? That's quite easy: For each attribute in your persistent class representing a Primary key column in your DB add a <primaryKey>true</primaryKey> elements to their respective FieldDescriptors in the Repository. That's all! Details for Reference- and CollectionDescriptors are mentioned in tutorial 3. HTH, Thomas > > Thanks, > Scott > |
From: Stephane F. <sf...@un...> - 2002-04-25 18:06:18
|
Hi, I am back with this NoSuchElementException.I could not fix this problem.Bu= t=20 I can describe more on what is happening: I have 2 tables and I am doing a m:n association with manual decomposition = so I have 3 tables: einrichtung, personal and personal einrichtung I am trying to create all the einrichtung objects.And heres what happen: 1.Einrichtung objets are created 2.personal_einrichtung objet are also created 3.Error: OJB wants to create the Personal objects (that s ok!) but it cant and the ERROR returned is: [ojb.broker.singlevm.PersistenceBrokerImpl] ERROR: expected type: class = model.Personal normally here the .PersistenceBrokerImpl line ~520 performs this log: logger.error("actual type: " + getReferencedObject(newObj, rds, = mif).getClass()); But it cant perform it. I found what was the actual type of the object and it is personal_einrichtu= ng I thing something may be wrong with my configuration so I put the = repository here (interesting parts). Thanx for helping St=E9phane <ClassDescriptor id=3D"0"> <class.name>com.unilog.iubs.kita.model.Einrichtung</class.name> <table.name>.einrichtung</table.name> =20 <FieldDescriptor id=3D"1"> <field.name>id</field.name> <column.name>id</column.name> <jdbc_type>INTEGER</jdbc_type> <PrimaryKey>true</PrimaryKey> </FieldDescriptor> =20 <FieldDescriptor id=3D"2"> <field.name>name</field.name> <column.name>name</column.name> <jdbc_type>VARCHAR</jdbc_type> </FieldDescriptor> =20 <cdfield.name>personalEinrichtung</cdfield.name> <items.class>com.unilog.iubs.kita.model.Personal_einrichtung</items.cla= ss> <inverse_fk_descriptor_ids>1</inverse_fk_descriptor_ids> </CollectionDescriptor> =20 </ClassDescriptor> <ClassDescriptor id=3D"5"> <class.name>com.unilog.iubs.kita.model.Personal</class.name> <table.name>.personal</table.name> <FieldDescriptor id=3D"0"> <field.name>id</field.name> <column.name>id</column.name> <jdbc_type>INTEGER</jdbc_type> <PrimaryKey>true</PrimaryKey> </FieldDescriptor> <FieldDescriptor id=3D"1"> <field.name>name</field.name> <column.name>name</column.name> <jdbc_type>VARCHAR</jdbc_type> </FieldDescriptor> <FieldDescriptor id=3D"2"> <field.name>vorname</field.name> <column.name>vorname</column.name> <jdbc_type>VARCHAR</jdbc_type> </FieldDescriptor> =20 <CollectionDescriptor id=3D"2"> <cdfield.name>einrichtungen</cdfield.name> <items.class>com.unilog.iubs.kita.model.Personal_einrichtung</items.cla= ss> <inverse_fk_descriptor_ids>0</inverse_fk_descriptor_ids> </CollectionDescriptor> </ClassDescriptor> <ClassDescriptor id=3D"6"> <class.name>com.unilog.iubs.kita.model.Personal_einrichtung</class.name> <table.name>.personal_einrichtung</table.name> <FieldDescriptor id=3D"1"> <field.name>einrichtungId</field.name> <column.name>einrichtungId</column.name> <jdbc_type>INTEGER</jdbc_type> <PrimaryKey>true</PrimaryKey> </FieldDescriptor> <FieldDescriptor id=3D"2"> <field.name>leitung</field.name> <column.name>leitung</column.name> <jdbc_type>TINYINT</jdbc_type> </FieldDescriptor> <FieldDescriptor id=3D"0"> <field.name>personalId</field.name> <column.name>personalId</column.name> <jdbc_type>INTEGER</jdbc_type> <PrimaryKey>true</PrimaryKey> </FieldDescriptor> <ReferenceDescriptor id=3D"1"> <rdfield.name>personal</rdfield.name> <referenced.class>com.unilog.iubs.kita.model.Personal</referenced.class= > <fk_descriptor_ids>0</fk_descriptor_ids> </ReferenceDescriptor> <ReferenceDescriptor id=3D"2"> <rdfield.name>einrichtung</rdfield.name> <referenced.class>com.unilog.iubs.kita.model.Einrichtung</referenced.cl= ass> <fk_descriptor_ids>1</fk_descriptor_ids> </ReferenceDescriptor> </ClassDescriptor> |
From: Weaver, S. <Sw...@ri...> - 2002-04-24 18:35:06
|
I'm accessing legacy data that has some of it's tables using composite (multiple) primary keys. How is this accomplished in OJB? Thanks, Scott |
From: Weaver, S. <Sw...@ri...> - 2002-04-24 17:26:23
|
Scratch that last post. The reason I was getting that exception was due = to corrupted data in a DECIMAL column in my DB not the constructor. = Sorry. =20 =20 Scott -----Original Message----- From: Weaver, Scott [mailto:Sw...@ri...] Sent: Wednesday, April 24, 2002 12:21 PM To: 'Stephane Felten'; obj...@li... Subject: RE: [ojb-users] NoSuchElementException Hi St=E9phane,=20 This may or may not have any connection to your issue. I noticed that = if I had a default constructor that was setting default values for some of = my object's properties, specifically ones marked as PK's in my = repository.xml, I received similar errors to yours. As soon as I removed the lines = that initialized those properties, everything worked fine. Example:=20 This caused the errors:=20 public TscWarehouse()=20 {=20 super();=20 _recordCode =3D "WN";=20 companyNumber=3D new BigDecimal(0); //PK property in repository.xml = applicationId =3D "IA"; //PK property in repository.xml=20 }=20 this fixed it:=20 public TscWarehouse()=20 {=20 super();=20 }=20 hth,=20 Scott=20 > -----Original Message-----=20 > From: Stephane Felten [ mailto:sf...@un... <mailto:sf...@un...> ]=20 > Sent: Wednesday, April 24, 2002 10:41 AM=20 > To: obj...@li...=20 > Subject: [ojb-users] NoSuchElementException=20 >=20 >=20 > hi,=20 > I am trying to use OJB; I make only simple query and I get in=20 > one case a =3D=20 > no suchElementException:=20 > java.util.NoSuchElementException at=20 > ojb.broker.accesslayer.RsIterator.next(=3D=20 > RsIterator.java:154) at=20 > ojb.broker.singlevm.PersistenceBrokerImpl.getCollec=3D=20 > tionByQuery(PersistenceBrokerImpl.java:900) at=3D20=20 >=20 > I do not receive this Exception when there are no elements on=20 > this table.=20 > I could not find why I receive this error; maybe it is a=20 > typical error can =3D=20 > you give me some hints to find my mistakes?=20 >=20 > St=E9phane FELTEN=20 >=20 >=20 >=20 > _______________________________________________=20 > Objectbridge-users mailing list=20 > Obj...@li...=20 > https://lists.sourceforge.net/lists/listinfo/objectbridge-users <https://lists.sourceforge.net/lists/listinfo/objectbridge-users> =20 >=20 |
From: Weaver, S. <Sw...@ri...> - 2002-04-24 16:22:58
|
Hi St=E9phane, This may or may not have any connection to your issue. I noticed that = if I had a default constructor that was setting default values for some of = my object's properties, specifically ones marked as PK's in my = repository.xml, I received similar errors to yours. As soon as I removed the lines = that initialized those properties, everything worked fine. Example: This caused the errors: public TscWarehouse() { super(); _recordCode =3D "WN"; companyNumber=3D new BigDecimal(0); //PK property in repository.xml applicationId =3D "IA"; //PK property in repository.xml } this fixed it: public TscWarehouse() { super(); } hth, Scott > -----Original Message----- > From: Stephane Felten [mailto:sf...@un...] > Sent: Wednesday, April 24, 2002 10:41 AM > To: obj...@li... > Subject: [ojb-users] NoSuchElementException >=20 >=20 > hi, > I am trying to use OJB; I make only simple query and I get in=20 > one case a =3D > no suchElementException: > java.util.NoSuchElementException at=20 > ojb.broker.accesslayer.RsIterator.next(=3D > RsIterator.java:154) at=20 > ojb.broker.singlevm.PersistenceBrokerImpl.getCollec=3D > tionByQuery(PersistenceBrokerImpl.java:900) at=3D20 >=20 > I do not receive this Exception when there are no elements on=20 > this table. > I could not find why I receive this error; maybe it is a=20 > typical error can =3D > you give me some hints to find my mistakes? >=20 > St=E9phane FELTEN >=20 >=20 >=20 > _______________________________________________ > Objectbridge-users mailing list > Obj...@li... > https://lists.sourceforge.net/lists/listinfo/objectbridge-users >=20 |
From: Stephane F. <sf...@un...> - 2002-04-24 14:41:34
|
hi, I am trying to use OJB; I make only simple query and I get in one case a = =3D no suchElementException: java.util.NoSuchElementException at ojb.broker.accesslayer.RsIterator.next(= =3D RsIterator.java:154) at ojb.broker.singlevm.PersistenceBrokerImpl.getCollec= =3D tionByQuery(PersistenceBrokerImpl.java:900) at=3D20 I do not receive this Exception when there are no elements on this table. I could not find why I receive this error; maybe it is a typical error can = =3D you give me some hints to find my mistakes? St=E9phane FELTEN |
From: Thomas M. <tho...@ho...> - 2002-04-23 19:07:33
|
Hi Charles, Charles Anthony wrote: > Hi all, > > >>>Has anyone been able to have a quick look at this yet ? >>> >>Not yet. I added it to my ever growing todo list... In fact I want to spend some time on this issue (and some other pending bugs) this week. cu, Thomas >> > > Where has it reached in the ever-growing-todo list ? I hope I don't come > across as a nagging mother or something, but I think this is a pretty big > bug - and it actually means we can't use OJB for anything involving > relationships/object graphs - and that is one of OJBs most important > features (well for us, anyway). > > Toodleoo, > > Charles. > > > This email and any attachments are strictly confidential and are intended > solely for the addressee. If you are not the intended recipient you must > not disclose, forward, copy or take any action in reliance on this message > or its attachments. If you have received this email in error please notify > the sender as soon as possible and delete it from your computer systems. > Any views or opinions presented are solely those of the author and do not > necessarily reflect those of HPD Software Limited or its affiliates. > > At present the integrity of email across the internet cannot be guaranteed > and messages sent via this medium are potentially at risk. All liability > is excluded to the extent permitted by law for any claims arising as a re- > sult of the use of this medium to transmit information by or to > HPD Software Limited or its affiliates. > > > > _______________________________________________ > Objectbridge-users mailing list > Obj...@li... > https://lists.sourceforge.net/lists/listinfo/objectbridge-users > > > > |
From: Charles A. <cha...@hp...> - 2002-04-23 07:32:20
|
Hi all, > > Has anyone been able to have a quick look at this yet ? > > Not yet. I added it to my ever growing todo list... Where has it reached in the ever-growing-todo list ? I hope I don't come across as a nagging mother or something, but I think this is a pretty big bug - and it actually means we can't use OJB for anything involving relationships/object graphs - and that is one of OJBs most important features (well for us, anyway). Toodleoo, Charles. This email and any attachments are strictly confidential and are intended solely for the addressee. If you are not the intended recipient you must not disclose, forward, copy or take any action in reliance on this message or its attachments. If you have received this email in error please notify the sender as soon as possible and delete it from your computer systems. Any views or opinions presented are solely those of the author and do not necessarily reflect those of HPD Software Limited or its affiliates. At present the integrity of email across the internet cannot be guaranteed and messages sent via this medium are potentially at risk. All liability is excluded to the extent permitted by law for any claims arising as a re- sult of the use of this medium to transmit information by or to HPD Software Limited or its affiliates. |
From: Weaver, S. <Sw...@ri...> - 2002-04-22 17:14:33
|
> Another question is can I diasable ObjectCache all together? > I use JCS as my caching system so the ObjectCache is redundant > for me in many cases. We'll, I posted to soon. The soultion as quite simple after a little digging ;-) in OJB properties change the ObjectCacheClass to use ojb.broker.cache.MetaObjectCacheImpl: ObjectCacheClass=ojb.broker.cache.MetaObjectCacheImpl the code: <snip> try { MetaObjectCacheImpl ojbCache = (MetaObjectCacheImpl) ObjectCacheFactory.getObjectCache(); // Turn of caching for TscPrice ojbCache.setClassCache(TscPrice.class, null); } catch (ClassCastException cce) { String msg = "TscPricingService should only use the ojb.broker.cache.MetaObjectCacheImpl." + " This is due to the fact that caching MUST be turned off in OJB for the TscPrice class" + " in order for pricing to work correctly"; logger.error(msg); throw new InitializationException(msg); } </snip> preliminary test show that this is working. Regards, Scott |
From: Weaver, S. <Sw...@ri...> - 2002-04-22 16:12:01
|
How long does the ObjectCache keep objects cached? I ask this because my application retreives pricing information from a legacy database that may get updated by legacy apps without informing objectbridge. Another question is can I diasable ObjectCache all together? I use JCS as my caching system so the ObjectCache is redundant for me in many cases. Thanks, Scott |
From: Corey K. <Co...@kl...> - 2002-04-19 14:23:38
|
Ok, I've done a some more digging, and it looks like I'm going to need to do some work. I receive a "Driver not capable" error for any setXXX() parameter binding call. This means, I will need to plug in a StatementsForClass that uses custom PreparedStatement implementation which handles the object binding and finally passes the query to a vanilla statement to execute the resultant SQL. There are many ways to go about this, but I think it makes sense to add a getStatementsForClassInstance() method to the Platform interface. Then, instead of: ... StatementsForClass sfc = (StatementsForClass) statementTable.get(cds); if (sfc == null) { sfc = new StatementsForClass(cds, broker); statementTable.put(cds, sfc); } return sfc; ... do this: ... StatementsForClass sfc = (StatementsForClass) statementTable.get(cds); if (sfc == null) { sfc = pf.getStatementsForClass(cds, broker); statementTable.put(cds, sfc); } return sfc; ... Then, an ojb.broker.jdbc.PreparedStatementImpl would need to be implemented. This would give full on flexibility for brain-dead ODBC and/or JDBC implementations such as my own. Does that sound like a reasonable approach? Corey Yes this is clearly a driver related issue. Parameter binding is a common place for problems with all kind of drivers. in the method ojb.broker.accesslayer.StatementManager.bindUpdate(...) we solved this by delegating the binding to a Driver specific Platform. The exact behaviour is thus delegated to a Driver specific class. For ojb.broker.accesslayer.StatementManager.bindSelect(...), that causes the problem in your case, this is not yet implemented, but could be refactored quite easily. But: I don't have access to your Jdbc driver. SO try to fix this bug on your own, send in the patch, an we will refactor the Platform interface to work for bindSelect(...) too. > Corey > > -----Original Message----- > From: Corey Klaasmeyer [mailto:Co...@kl...] > Sent: Wednesday, April 17, 2002 8:51 AM > To: 'Obj...@li...' > Subject: [ojb-users] Modifications to Work Around Lame ODBC Drivers... > > > Since I am working with a legacy ODBC driver from Simba, I have had to work > around exceptions which propogate up from that level. It would be great if I > could get some feedback on the implications of these changes -- all in > accesslayer. > > 1.) In ConnectionFactoryDefaultImpl, I commented out > conn.setAutoCommit(!broker.isInTransaction()). > That's OK. In fact this been moved to the PlatFormDefaultImpl.initializeJdbcConnection(...) method to allow different behaviour for certain Platforms. It's already in CVS ! > I'm assuming autocommit can remain in its default state of true if > transactions are not being used. > ACK > 2.) In StatementsForClass I commented out > result.setEscapeProcessing(ESCAPEPROCESSING); > With my latest changes it is also possible to set the ESCAPEPROCESSING value at runtime from a PlatformImpl. Thus it won't be necessary to comment out anything.... We just need a PlatformSimbaImpl doing all the special Simba things... cu, Thomas > It doesn't look like this should have any effect. This is the javadoc for > setEscapeProcessing(): > Sets escape processing on or off. If escape scanning is on (the default), > the driver will do escape substitution before sending the SQL statement to > the database. Note: Since prepared statements have usually been parsed prior > to making this call, disabling escape processing for PreparedStatements > objects will have no effect. > > Finally, these are obviously not general solutions. I think you will need to > catch exceptions and react in some rational way. This may be a better mail > for the developers list... > > With these changes, OJB is now reading some simple records from our > lumbering accounting system. > > Corey > > > > _______________________________________________ > Objectbridge-users mailing list > Obj...@li... > https://lists.sourceforge.net/lists/listinfo/objectbridge-users > > _______________________________________________ > Objectbridge-users mailing list > Obj...@li... > https://lists.sourceforge.net/lists/listinfo/objectbridge-users > > > > _______________________________________________ Objectbridge-users mailing list Obj...@li... https://lists.sourceforge.net/lists/listinfo/objectbridge-users |