From carriebrown@example.net Mon Mar 01 17:29:54 2004 Return-Path: <carriebrown@example.net> Delivered-To: carriebrown@example.net Received: (qmail 76032 invoked from network); 1 Mar 2004 17:29:54 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 1 Mar 2004 17:29:54 -0000 Received: (qmail 77760 invoked by uid 500); 1 Mar 2004 17:29:46 -0000 Delivered-To: carriebrown@example.net Received: (qmail 77732 invoked by uid 500); 1 Mar 2004 17:29:46 -0000 Mailing-List: contact carriebrown@example.net; run by ezmlm Precedence: bulk List-Unsubscribe: <mailto:carriebrown@example.net> List-Subscribe: <mailto:carriebrown@example.net> List-Help: <mailto:carriebrown@example.net> List-Post: <mailto:carriebrown@example.net> List-Id: "OJB Developers List" <ojb-dev.db.apache.org> Reply-To: "OJB Developers List" <carriebrown@example.net> Delivered-To: mailing list carriebrown@example.net Received: (qmail 77717 invoked by uid 500); 1 Mar 2004 17:29:45 -0000 Received: (qmail 77713 invoked from network); 1 Mar 2004 17:29:45 -0000 Received: from unknown (HELO minotaur.apache.org) (83.161.120.155) by daedalus.apache.org with SMTP; 1 Mar 2004 17:29:45 -0000 Received: (qmail 75995 invoked by uid 1510); 1 Mar 2004 17:29:52 -0000 Date: 1 Mar 2004 17:29:52 -0000 Message-ID: <carriebrown@example.net> From: carriebrown@example.net To: carriebrown@example.net Subject: cvs commit: db-ojb project.xml X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N arminw 2004/03/01 09:29:52 Modified: xdocs project.xml . project.xml Log: - add new wiki page - remove retired committer Revision Changes Path 1.28 +6 -5 db-ojb/xdocs/project.xml Index: project.xml =================================================================== RCS file: /home/cvs/db-ojb/xdocs/project.xml,v retrieving revision 1.27 retrieving revision 1.28 diff -u -r1.27 -r1.28 --- project.xml 13 Dec 2003 17:48:54 -0000 1.27 +++ project.xml 1 Mar 2004 17:29:52 -0000 1.28 @@ -10,8 +10,8 @@ <item name="News &amp; Status" href="/status.html"/> <item name="Bug Database" href="http://issues.apache.org/scarab/servlet/scarab/"/> <item name="Features" href="/features.html"/> - <item name="Mail lists" href="/mail-lists.html"/> <item name="Mail archives" href="/mail-archives.html"/> + <item name="Mail lists" href="/mail-lists.html"/> <item name="references" href="/references.html"/> </menu> @@ -29,17 +29,18 @@ <menu name="Development"> <item name="ToDo" href="/todo.html"/> - <item name="project's Wiki" href="http://nagoya.apache.org/wiki/apachewiki.cgi?OJBProjectPages" /> + <item name="Project Wiki" href="http://wiki.apache.org/db-ojb/" /> <item name="Coding Specification" href="/code-standards.html"/> <item name="View CVS" href="http://cvs.apache.org/viewcvs/db-ojb/"/> <item name="More CVS infos" href="http://jakarta.apache.org/site/cvsindex.html"/> <item name="License" href="http://www.apache.org/LICENSE" /> </menu> - <menu name="Translated (Web)"> + <!-- arminw: Translated page is out of date, think it's better not to link --> + <!-- menu name="Translated (Web)"> <item name="Japanese" href="http://db.terra-intl.com/ojb/" /> - </menu> - + </menu --> + </body> </project> 1.45 +2 -16 db-ojb/project.xml Index: project.xml =================================================================== RCS file: /home/cvs/db-ojb/project.xml,v retrieving revision 1.44 retrieving revision 1.45 diff -u -r1.44 -r1.45 --- project.xml 31 Jan 2004 14:14:33 -0000 1.44 +++ project.xml 1 Mar 2004 17:29:52 -0000 1.45 @@ -38,13 +38,13 @@ <name>Objectbridge User List</name> <subscribe>carriebrown@example.net</subscribe> <unsubscribe>carriebrown@example.net</unsubscribe> - <!--archive>http://carriebrown@example.net</archive--> + <archive>http://carriebrown@example.net</archive> </mailingList> <mailingList> <name>Objectbridge Developer List</name> <subscribe>carriebrown@example.net</subscribe> <unsubscribe>carriebrown@example.net</unsubscribe> - <!--archive>http://carriebrown@example.net</archive--> + <archive>http://carriebrown@example.net</archive> </mailingList> </mailingLists> @@ -79,24 +79,10 @@ </developer> <developer> - <name>Florian Bruckner</name> - <id>florianbruckner</id> - <email>carriebrown@example.net</email> - <organization>citec.at software applications development</organization> - </developer> - - <developer> <name>Jason van Zyl</name> <id>jvanzyl</id> <email>carriebrown@example.net</email> <organization>Zenplex</organization> - </developer> - - <developer> - <name>Martin Poeschl</name> - <id>mpoeschl</id> - <email>carriebrown@example.net</email> - <organization>Tucana.at</organization> </developer> <developer> --------------------------------------------------------------------- To unsubscribe, e-mail: carriebrown@example.net For additional commands, e-mail: carriebrown@example.net From carriebrown@example.net Mon Mar 01 17:51:15 2004 Return-Path: <carriebrown@example.net> Delivered-To: carriebrown@example.net Received: (qmail 88598 invoked from network); 1 Mar 2004 17:51:14 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 1 Mar 2004 17:51:14 -0000 Received: (qmail 33013 invoked by uid 500); 1 Mar 2004 17:51:05 -0000 Delivered-To: carriebrown@example.net Received: (qmail 32980 invoked by uid 500); 1 Mar 2004 17:51:05 -0000 Mailing-List: contact carriebrown@example.net; run by ezmlm Precedence: bulk List-Unsubscribe: <mailto:carriebrown@example.net> List-Subscribe: <mailto:carriebrown@example.net> List-Help: <mailto:carriebrown@example.net> List-Post: <mailto:carriebrown@example.net> List-Id: "OJB Developers List" <ojb-dev.db.apache.org> Reply-To: "OJB Developers List" <carriebrown@example.net> Delivered-To: mailing list carriebrown@example.net Received: (qmail 32965 invoked from network); 1 Mar 2004 17:51:04 -0000 Received: from unknown (HELO minotaur.apache.org) (83.161.120.155) by daedalus.apache.org with SMTP; 1 Mar 2004 17:51:04 -0000 Received: (qmail 88572 invoked from network); 1 Mar 2004 17:51:11 -0000 Received: from localhost.hyperreal.org (HELO apache.org) (83.161.120.155) by localhost.hyperreal.org with SMTP; 1 Mar 2004 17:51:11 -0000 Message-ID: <carriebrown@example.net> Date: Mon, 01 Mar 2004 18:51:06 +0100 From: Armin Waibel <carriebrown@example.net> User-Agent: Mozilla Thunderbird 0.5 (Windows/20040207) X-Accept-Language: en-us, en MIME-Version: 1.0 To: OJB Developers List <carriebrown@example.net> Subject: Re: [patch] Update link to wiki and archives References: <carriebrown@example.net> In-Reply-To: <carriebrown@example.net> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Rating: localhost.hyperreal.org 1.6.2 0/1000/N X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N Hi Scott, it's done! Thanks for migration to new wiki - looks great! regards, Armin Scott Eade wrote: > Can someone please commit the two small patches below and update the ojb > site. > > BTW: In case it is not obvious I have migrated the content of the wiki > over to the new MoinMoin based wiki. > > Thanks, > > Scott > --------------------------------------------------------------------- To unsubscribe, e-mail: carriebrown@example.net For additional commands, e-mail: carriebrown@example.net From carriebrown@example.net Mon Mar 01 18:27:31 2004 Return-Path: <carriebrown@example.net> Delivered-To: carriebrown@example.net Received: (qmail 6570 invoked from network); 1 Mar 2004 18:27:31 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 1 Mar 2004 18:27:31 -0000 Received: (qmail 27829 invoked by uid 500); 1 Mar 2004 18:27:22 -0000 Delivered-To: carriebrown@example.net Received: (qmail 27744 invoked by uid 500); 1 Mar 2004 18:27:22 -0000 Mailing-List: contact carriebrown@example.net; run by ezmlm Precedence: bulk List-Unsubscribe: <mailto:carriebrown@example.net> List-Subscribe: <mailto:carriebrown@example.net> List-Help: <mailto:carriebrown@example.net> List-Post: <mailto:carriebrown@example.net> List-Id: "OJB Developers List" <ojb-dev.db.apache.org> Reply-To: "OJB Developers List" <carriebrown@example.net> Delivered-To: mailing list carriebrown@example.net Received: (qmail 27727 invoked from network); 1 Mar 2004 18:27:22 -0000 Received: from unknown (HELO mail.fridayfives.net) (83.161.120.155) by daedalus.apache.org with SMTP; 1 Mar 2004 18:27:22 -0000 Received: from kamajii.forthill.int (localhost [83.161.120.155]) by localhost (Postfix) with SMTP id D32031F428 for <carriebrown@example.net>; Mon, 1 Mar 2004 13:27:25 -0500 (EST) Received: from [83.161.120.155] (kite.forthill.int [83.161.120.155]) by mail.fridayfives.net (Postfix) with ESMTP id 9B9111F425 for <carriebrown@example.net>; Mon, 1 Mar 2004 13:27:25 -0500 (EST) Mime-Version: 1.0 (Apple Message framework v612) In-Reply-To: <carriebrown@example.net> References: <carriebrown@example.net> <carriebrown@example.net> Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: <carriebrown@example.net> Content-Transfer-Encoding: 7bit From: Brian McCallister <carriebrown@example.net> Subject: Re: [vote] 1.0 final release Date: Mon, 1 Mar 2004 13:31:04 -0500 To: "OJB Developers List" <carriebrown@example.net> X-Mailer: Apple Mail (2.612) X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N What is the status of 1.0 release vote in the PMC? -Brian On Feb 24, 2004, at 3:03 AM, Oleg Nitz wrote: > On Monday 23 February 2004 11:04, Thomas Mahler wrote: >> I propose to assemble the relase during the next weekend (28./29.2.) >> So I'd like to see your votes, please. > +1 > >> There are also 5 errors in the OTM tests. they seem to be caused by >> incosistencies in the testdata. (constraint violations). OTM >> developers: >> please have a look at those issues, can't be a big problem. > Okay, I'll take a look. > > On Monday 23 February 2004 14:34, Brian McCallister wrote: >> I have heard from Matt privately and he wants to help out, but is more >> or less insanely busy with work. I haven't heard anything from Raghu >> on >> the list in a while, and I don't know Oleg's views re JDO. > Now I don't have enough time to develop JDO implementation, but I am > ready to > support such development at the OTM level: necessary API additions and > changes, bugfixes, etc. > > --------------------------------------------------------------------- > To unsubscribe, e-mail: carriebrown@example.net > For additional commands, e-mail: carriebrown@example.net > > --------------------------------------------------------------------- To unsubscribe, e-mail: carriebrown@example.net For additional commands, e-mail: carriebrown@example.net From carriebrown@example.net Tue Mar 02 01:10:47 2004 Return-Path: <carriebrown@example.net> Delivered-To: carriebrown@example.net Received: (qmail 18527 invoked from network); 2 Mar 2004 01:10:47 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 2 Mar 2004 01:10:47 -0000 Received: (qmail 33284 invoked by uid 500); 2 Mar 2004 01:10:32 -0000 Delivered-To: carriebrown@example.net Received: (qmail 33061 invoked by uid 500); 2 Mar 2004 01:10:31 -0000 Mailing-List: contact carriebrown@example.net; run by ezmlm Precedence: bulk List-Unsubscribe: <mailto:carriebrown@example.net> List-Subscribe: <mailto:carriebrown@example.net> List-Help: <mailto:carriebrown@example.net> List-Post: <mailto:carriebrown@example.net> List-Id: "OJB Developers List" <ojb-dev.db.apache.org> Reply-To: "OJB Developers List" <carriebrown@example.net> Delivered-To: mailing list carriebrown@example.net Received: (qmail 33047 invoked from network); 2 Mar 2004 01:10:30 -0000 Received: from unknown (HELO main.gmane.org) (83.161.120.155) by daedalus.apache.org with SMTP; 2 Mar 2004 01:10:30 -0000 Received: from root by main.gmane.org with local (Exim 3.35 #1 (Debian)) id 1AxyQf-0000rs-00 for <carriebrown@example.net>; Tue, 02 Mar 2004 02:10:37 +0100 Received: from a183069.studnetz.uni-leipzig.de ([83.161.120.155]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for <carriebrown@example.net>; Tue Mar 2 01:10:37 2004 Received: from joerg.heinicke by a183069.studnetz.uni-leipzig.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for <carriebrown@example.net>; Tue Mar 2 01:10:37 2004 X-Injected-Via-Gmane: http://gmane.org/ To: carriebrown@example.net From: Joerg Heinicke <carriebrown@example.net> Subject: Re: Should be RC6 Date: Mon, 1 Mar 2004 21:17:45 +0000 (UTC) Lines: 13 Message-ID: <carriebrown@example.net> References: <carriebrown@example.net> <carriebrown@example.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Complaints-To: carriebrown@example.net X-Gmane-NNTP-Posting-Host: main.gmane.org User-Agent: Loom/3.14 (http://gmane.org/) X-Loom-IP: 83.161.120.155 (Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.6) Gecko/20040113) Sender: news <carriebrown@example.net> X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N Jakob Braeuchi <jbraeuchi <at> gmx.ch> writes: > hi robert, > > i've done lots of minor changes detected by findbugs and added keyword > expansion (-kkv) to a lot of files. imo we should deliver 1.0 pretty soon. yet > another rc6 will only defer the problem of assembling 1.0 and we'll end up > with rc7 etc. afaik there's also a 'licence deadline'... AFAIK it's to late for the license deadline, since today all Apache projects must be released with ASL 2.0. Joerg --------------------------------------------------------------------- To unsubscribe, e-mail: carriebrown@example.net For additional commands, e-mail: carriebrown@example.net From carriebrown@example.net Tue Mar 02 01:23:42 2004 Return-Path: <carriebrown@example.net> Delivered-To: carriebrown@example.net Received: (qmail 22762 invoked from network); 2 Mar 2004 01:23:42 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 2 Mar 2004 01:23:42 -0000 Received: (qmail 46037 invoked by uid 500); 2 Mar 2004 01:23:25 -0000 Delivered-To: carriebrown@example.net Received: (qmail 46005 invoked by uid 500); 2 Mar 2004 01:23:25 -0000 Mailing-List: contact carriebrown@example.net; run by ezmlm Precedence: bulk List-Unsubscribe: <mailto:carriebrown@example.net> List-Subscribe: <mailto:carriebrown@example.net> List-Help: <mailto:carriebrown@example.net> List-Post: <mailto:carriebrown@example.net> List-Id: "OJB Developers List" <ojb-dev.db.apache.org> Reply-To: "OJB Developers List" <carriebrown@example.net> Delivered-To: mailing list carriebrown@example.net Received: (qmail 45992 invoked by uid 500); 2 Mar 2004 01:23:25 -0000 Received: (qmail 45989 invoked from network); 2 Mar 2004 01:23:25 -0000 Received: from unknown (HELO minotaur.apache.org) (83.161.120.155) by daedalus.apache.org with SMTP; 2 Mar 2004 01:23:25 -0000 Received: (qmail 22750 invoked by uid 1520); 2 Mar 2004 01:23:40 -0000 Date: 2 Mar 2004 01:23:40 -0000 Message-ID: <carriebrown@example.net> From: carriebrown@example.net To: carriebrown@example.net Subject: cvs commit: db-ojb/src/test/org/apache/ojb/otm DependentTests.java X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N olegnitz 2004/03/01 17:23:40 Modified: src/test/org/apache/ojb/otm DependentTests.java Log: Test Joerg's fasion of updating object Revision Changes Path 1.4 +46 -6 db-ojb/src/test/org/apache/ojb/otm/DependentTests.java Index: DependentTests.java =================================================================== RCS file: /home/cvs/db-ojb/src/test/org/apache/ojb/otm/DependentTests.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- DependentTests.java 28 Feb 2004 21:38:38 -0000 1.3 +++ DependentTests.java 2 Mar 2004 01:23:40 -0000 1.4 @@ -44,11 +44,28 @@ Query q; Iterator it; + Transaction tx = _kit.getTransaction(_conn); + tx.begin(); + // prepare tables for the test - empty them + q = QueryFactory.newQuery(AddressDesc.class, emptyCriteria); + for (it = _conn.getIteratorByQuery(q); it.hasNext(); ) { + _conn.deletePersistent(it.next()); + } + q = QueryFactory.newQuery(Person.class, emptyCriteria); + for (it = _conn.getIteratorByQuery(q); it.hasNext(); ) { + _conn.deletePersistent(it.next()); + } + q = QueryFactory.newQuery(Address.class, emptyCriteria); + for (it = _conn.getIteratorByQuery(q); it.hasNext(); ) { + _conn.deletePersistent(it.next()); + } + tx.commit(); + person.setMainAddress(address1); person.addOtherAddress("work", address2); person.addOtherAddress("dream", address3); - Transaction tx = _kit.getTransaction(_conn); + tx = _kit.getTransaction(_conn); tx.begin(); // Cascade create _conn.makePersistent(person); @@ -132,10 +149,27 @@ Query q; Iterator it; + Transaction tx = _kit.getTransaction(_conn); + tx.begin(); + // prepare tables for the test - empty them + q = QueryFactory.newQuery(Debitor.class, emptyCriteria); + for (it = _conn.getIteratorByQuery(q); it.hasNext(); ) { + _conn.deletePersistent(it.next()); + } + q = QueryFactory.newQuery(AbstractPerson.class, emptyCriteria); + for (it = _conn.getIteratorByQuery(q); it.hasNext(); ) { + _conn.deletePersistent(it.next()); + } + q = QueryFactory.newQuery(Address2.class, emptyCriteria); + for (it = _conn.getIteratorByQuery(q); it.hasNext(); ) { + _conn.deletePersistent(it.next()); + } + tx.commit(); + person.getAddresses().add(address); debitor.setAbstractPerson(person); - Transaction tx = _kit.getTransaction(_conn); + tx = _kit.getTransaction(_conn); tx.begin(); // Cascade create _conn.makePersistent(debitor); @@ -178,15 +212,24 @@ debitor = (Debitor) _conn.getObjectByIdentity(debitorOid); person = (LegalPerson) debitor.getAbstractPerson(); assertTrue("address exists", (person.getAddresses().size() == 1)); + tx.commit(); // Change dependent reference, should delete old dependant debitor.setAbstractPerson(new NaturalPerson()); + + tx = _kit.getTransaction(_conn); + tx.begin(); + _conn.makePersistent(debitor); tx.commit(); _conn.invalidateAll(); tx = _kit.getTransaction(_conn); tx.begin(); assertTrue("old person has been deleted", (_conn.getObjectByIdentity(personOid) == null)); + q = QueryFactory.newQuery(Address2.class, emptyCriteria); + it = _conn.getIteratorByQuery(q); + assertTrue("old address has been deleted", !it.hasNext()); + assertTrue("new person has correct type", (debitor.getAbstractPerson() instanceof NaturalPerson)); // Cascade delete _conn.deletePersistent(debitor); @@ -197,12 +240,9 @@ tx.begin(); debitor = (Debitor) _conn.getObjectByIdentity(debitorOid); assertTrue("debitor doesn't exist", (debitor == null)); - q = QueryFactory.newQuery(LegalPerson.class, emptyCriteria); + q = QueryFactory.newQuery(AbstractPerson.class, emptyCriteria); it = _conn.getIteratorByQuery(q); assertTrue("persons don't exist", !it.hasNext()); - q = QueryFactory.newQuery(Address2.class, emptyCriteria); - it = _conn.getIteratorByQuery(q); - assertTrue("addresses don't exist", !it.hasNext()); tx.commit(); } } --------------------------------------------------------------------- To unsubscribe, e-mail: carriebrown@example.net For additional commands, e-mail: carriebrown@example.net From carriebrown@example.net Tue Mar 02 01:27:17 2004 Return-Path: <carriebrown@example.net> Delivered-To: carriebrown@example.net Received: (qmail 24162 invoked from network); 2 Mar 2004 01:27:17 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 2 Mar 2004 01:27:17 -0000 Received: (qmail 49852 invoked by uid 500); 2 Mar 2004 01:27:00 -0000 Delivered-To: carriebrown@example.net Received: (qmail 49816 invoked by uid 500); 2 Mar 2004 01:27:00 -0000 Mailing-List: contact carriebrown@example.net; run by ezmlm Precedence: bulk List-Unsubscribe: <mailto:carriebrown@example.net> List-Subscribe: <mailto:carriebrown@example.net> List-Help: <mailto:carriebrown@example.net> List-Post: <mailto:carriebrown@example.net> List-Id: "OJB Developers List" <ojb-dev.db.apache.org> Reply-To: "OJB Developers List" <carriebrown@example.net> Delivered-To: mailing list carriebrown@example.net Received: (qmail 49802 invoked by uid 500); 2 Mar 2004 01:27:00 -0000 Received: (qmail 49798 invoked from network); 2 Mar 2004 01:27:00 -0000 Received: from unknown (HELO minotaur.apache.org) (83.161.120.155) by daedalus.apache.org with SMTP; 2 Mar 2004 01:27:00 -0000 Received: (qmail 24145 invoked by uid 1520); 2 Mar 2004 01:27:15 -0000 Date: 2 Mar 2004 01:27:15 -0000 Message-ID: <carriebrown@example.net> From: carriebrown@example.net To: carriebrown@example.net Subject: cvs commit: db-ojb/src/java/org/apache/ojb/otm/lock/map InMemoryLockMap.java LockMap.java X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N olegnitz 2004/03/01 17:27:15 Modified: src/java/org/apache/ojb/otm/core BaseConnection.java ConcreteEditingContext.java Transaction.java src/java/org/apache/ojb/otm/lock ObjectLock.java src/java/org/apache/ojb/otm/lock/map InMemoryLockMap.java LockMap.java Log: Now makePersistent can update object with dependants, which was changed outside of the current transaction ("long transaction"). Also fixed some locking flaws and bugs. Revision Changes Path 1.32 +13 -3 db-ojb/src/java/org/apache/ojb/otm/core/BaseConnection.java Index: BaseConnection.java =================================================================== RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/otm/core/BaseConnection.java,v retrieving revision 1.31 retrieving revision 1.32 diff -u -r1.31 -r1.32 --- BaseConnection.java 27 Feb 2004 21:02:05 -0000 1.31 +++ BaseConnection.java 2 Mar 2004 01:27:15 -0000 1.32 @@ -367,7 +367,10 @@ { checkTransaction("makePersistent"); Identity oid = new Identity(object, _pb); - _editingContext.insert(oid, object, LockType.READ_LOCK); + // Assure that old object (if exists) is in the editing + // context and is write locked + getObjectByIdentity(oid, LockType.WRITE_LOCK); + _editingContext.insert(oid, object, LockType.WRITE_LOCK); } /** @@ -377,7 +380,14 @@ { checkTransaction("deletePersistent"); Identity oid = new Identity(object, _pb); - _editingContext.deletePersistent(oid, object); + // We should remove the existing object with all dependents, rigth? + // Thus we need to replace the provided object (possibly changed + // or outdated) with the current object from the editing context + object = getObjectByIdentity(oid, LockType.WRITE_LOCK); + if (object != null) + { + _editingContext.deletePersistent(oid, object); + } } public EditingContext getEditingContext() 1.38 +21 -18 db-ojb/src/java/org/apache/ojb/otm/core/ConcreteEditingContext.java Index: ConcreteEditingContext.java =================================================================== RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/otm/core/ConcreteEditingContext.java,v retrieving revision 1.37 retrieving revision 1.38 diff -u -r1.37 -r1.38 --- ConcreteEditingContext.java 29 Feb 2004 15:15:48 -0000 1.37 +++ ConcreteEditingContext.java 2 Mar 2004 01:27:15 -0000 1.38 @@ -195,35 +195,38 @@ if (entry == null) { - lockManager.ensureLock(oid, _tx, lock, _pb); Object swizzledObject = swizzlingStrategy.swizzle(newObj, null, _pb, this); entry = new ContextEntry(swizzledObject); if (entry.handler != null) { + // Assume that object exists, otherwise were the proxy came from? + _objects.put(oid, entry); + lockManager.ensureLock(oid, _tx, lock, _pb); // lock after _objects.put to avoid hanged locks entry.handler.addListener(this); } else { Object origObj = _pb.getObjectByIdentity(oid); - if (origObj == null) + if ((origObj == null) && !mainObject && !isDependent) { - if (mainObject || isDependent) - { - entry.state = State.PERSISTENT_NEW; - if (kit.isEagerInsert(newObj) - || hasBidirectionalAssociation(newObj.getClass())) - { - _pb.store(newObj, entry.state); - entry.state = State.PERSISTENT_CLEAN; - origObj = newObj; - } - } - else + // don't create the object by reachability + // just do nothing + return null; + } + + _objects.put(oid, entry); + lockManager.ensureLock(oid, _tx, lock, _pb); // lock after _objects.put to avoid hanged locks + + if ((origObj == null) && (mainObject || isDependent)) + { + entry.state = State.PERSISTENT_NEW; + if (kit.isEagerInsert(newObj) + || hasBidirectionalAssociation(newObj.getClass())) { - // don't create the object by reachability - // just do nothing - return null; + _pb.store(newObj, entry.state); + entry.state = State.PERSISTENT_CLEAN; + origObj = newObj; } } @@ -232,7 +235,6 @@ _original.put(oid, getFields(origObj, false, true)); } } - _objects.put(oid, entry); if (insertBeforeThis != null) { int insertIndex = _order.indexOf(insertBeforeThis); @@ -835,6 +837,7 @@ Identity oid = (Identity) it.next(); lockManager.releaseLock(oid, _tx); } + _tx.getKit().getLockMap().gc(); } /** 1.11 +2 -2 db-ojb/src/java/org/apache/ojb/otm/core/Transaction.java Index: Transaction.java =================================================================== RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/otm/core/Transaction.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- Transaction.java 23 Feb 2004 19:10:21 -0000 1.10 +++ Transaction.java 2 Mar 2004 01:27:15 -0000 1.11 @@ -98,9 +98,9 @@ throw new TransactionInProgressException( "Transaction already in progress, cannot restart"); } - + _isInProgress = true; - + for (Iterator iterator = _connections.iterator(); iterator.hasNext();) { BaseConnection connection = (BaseConnection) iterator.next(); 1.8 +6 -1 db-ojb/src/java/org/apache/ojb/otm/lock/ObjectLock.java Index: ObjectLock.java =================================================================== RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/otm/lock/ObjectLock.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- ObjectLock.java 27 Feb 2004 20:21:35 -0000 1.7 +++ ObjectLock.java 2 Mar 2004 01:27:15 -0000 1.8 @@ -124,7 +124,7 @@ public void readLock(Transaction tx) { - if (!isReader(tx)) + if (!isReader(tx)) { new LockEntry(tx); } @@ -161,6 +161,11 @@ OTMKit kit = tx.getKit(); LockWaitStrategy waitStrategy = kit.getLockWaitStrategy(); waitStrategy.waitForLock(this, tx); + } + + public boolean isFree() + { + return ((_writer == null) && _readers.isEmpty()); } ///////////////////////////////////////// 1.4 +23 -0 db-ojb/src/java/org/apache/ojb/otm/lock/map/InMemoryLockMap.java Index: InMemoryLockMap.java =================================================================== RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/otm/lock/map/InMemoryLockMap.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- InMemoryLockMap.java 27 Feb 2004 20:21:36 -0000 1.3 +++ InMemoryLockMap.java 2 Mar 2004 01:27:15 -0000 1.4 @@ -54,7 +54,9 @@ * <http://www.apache.org/>. */ +import java.util.Iterator; import java.util.HashMap; +import java.util.Map; import org.apache.ojb.broker.Identity; import org.apache.ojb.otm.lock.ObjectLock; @@ -96,5 +98,26 @@ } } return lock; + } + + public void gc() + { + synchronized (_locks) + { + for (Iterator it = _locks.entrySet().iterator(); it.hasNext(); ) + { + Map.Entry entry = (Map.Entry) it.next(); + ObjectLock lock = (ObjectLock) entry.getValue(); + if (lock.isFree()) + { + it.remove(); + } + } + } + } + + public String toString() + { + return _locks.toString(); } } 1.3 +12 -3 db-ojb/src/java/org/apache/ojb/otm/lock/map/LockMap.java Index: LockMap.java =================================================================== RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/otm/lock/map/LockMap.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- LockMap.java 27 Feb 2004 20:21:36 -0000 1.2 +++ LockMap.java 2 Mar 2004 01:27:15 -0000 1.3 @@ -60,11 +60,20 @@ /** * * <javadoc> - * + * * @author <a href="mailto:carriebrown@example.net">Raghu Rajah</a> - * + * */ public interface LockMap { - public ObjectLock getLock (Identity oid); + + public ObjectLock getLock(Identity oid); + + /** + * This is "garbage collection" - remove free locks from + * the map. This method is called at the end of each transaction. + * Maybe that would be better to call it by timer? + */ + public void gc(); + } --------------------------------------------------------------------- To unsubscribe, e-mail: carriebrown@example.net For additional commands, e-mail: carriebrown@example.net From carriebrown@example.net Tue Mar 02 06:35:36 2004 Return-Path: <carriebrown@example.net> Delivered-To: carriebrown@example.net Received: (qmail 69709 invoked from network); 2 Mar 2004 06:35:36 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 2 Mar 2004 06:35:36 -0000 Received: (qmail 3876 invoked by uid 500); 2 Mar 2004 06:35:14 -0000 Delivered-To: carriebrown@example.net Received: (qmail 3772 invoked by uid 500); 2 Mar 2004 06:35:13 -0000 Mailing-List: contact carriebrown@example.net; run by ezmlm Precedence: bulk List-Unsubscribe: <mailto:carriebrown@example.net> List-Subscribe: <mailto:carriebrown@example.net> List-Help: <mailto:carriebrown@example.net> List-Post: <mailto:carriebrown@example.net> List-Id: "OJB Developers List" <ojb-dev.db.apache.org> Reply-To: "OJB Developers List" <carriebrown@example.net> Delivered-To: mailing list carriebrown@example.net Received: (qmail 3758 invoked from network); 2 Mar 2004 06:35:13 -0000 Received: from unknown (HELO smtp.web.de) (83.161.120.155) by daedalus.apache.org with SMTP; 2 Mar 2004 06:35:13 -0000 Received: from p50902727.dip.t-dialin.net ([83.161.120.155] helo=web.de) by smtp.web.de with asmtp (TLSv1:RC4-MD5:128) (WEB.DE 4.99 #605) id 1Ay3Ux-0003Nq-00 for carriebrown@example.net; Tue, 02 Mar 2004 07:35:24 +0100 Message-ID: <carriebrown@example.net> Date: Tue, 02 Mar 2004 07:31:59 +0100 From: Thomas Mahler <carriebrown@example.net> Reply-To: carriebrown@example.net Organization: Apache Foundation User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030821 X-Accept-Language: en-us, en MIME-Version: 1.0 To: OJB Developers List <carriebrown@example.net> Subject: Re: [vote] 1.0 final release References: <carriebrown@example.net> <carriebrown@example.net> <carriebrown@example.net> In-Reply-To: <carriebrown@example.net> X-Enigmail-Version: 83.161.120.155 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Sender: carriebrown@example.net X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N Hi Brian, After changing the licence to ASL2.0 I'll create a 1-0 label in cvs and write proposal to the PMC to get approval to release that labeled state as OJB 1.0. I hope we do not encounter additional bureaucratic hurdles... cheers, thomas Brian McCallister wrote: > What is the status of 1.0 release vote in the PMC? > > -Brian > > On Feb 24, 2004, at 3:03 AM, Oleg Nitz wrote: > >> On Monday 23 February 2004 11:04, Thomas Mahler wrote: >> >>> I propose to assemble the relase during the next weekend (28./29.2.) >>> So I'd like to see your votes, please. >> >> +1 >> >>> There are also 5 errors in the OTM tests. they seem to be caused by >>> incosistencies in the testdata. (constraint violations). OTM developers: >>> please have a look at those issues, can't be a big problem. >> >> Okay, I'll take a look. >> >> On Monday 23 February 2004 14:34, Brian McCallister wrote: >> >>> I have heard from Matt privately and he wants to help out, but is more >>> or less insanely busy with work. I haven't heard anything from Raghu on >>> the list in a while, and I don't know Oleg's views re JDO. >> >> Now I don't have enough time to develop JDO implementation, but I am >> ready to >> support such development at the OTM level: necessary API additions and >> changes, bugfixes, etc. >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: carriebrown@example.net >> For additional commands, e-mail: carriebrown@example.net >> >> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: carriebrown@example.net > For additional commands, e-mail: carriebrown@example.net > > --------------------------------------------------------------------- To unsubscribe, e-mail: carriebrown@example.net For additional commands, e-mail: carriebrown@example.net From carriebrown@example.net Tue Mar 02 08:48:28 2004 Return-Path: <carriebrown@example.net> Delivered-To: carriebrown@example.net Received: (qmail 48647 invoked from network); 2 Mar 2004 08:48:28 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 2 Mar 2004 08:48:28 -0000 Received: (qmail 8891 invoked by uid 500); 2 Mar 2004 08:48:00 -0000 Delivered-To: carriebrown@example.net Received: (qmail 8847 invoked by uid 500); 2 Mar 2004 08:47:59 -0000 Mailing-List: contact carriebrown@example.net; run by ezmlm Precedence: bulk List-Unsubscribe: <mailto:carriebrown@example.net> List-Subscribe: <mailto:carriebrown@example.net> List-Help: <mailto:carriebrown@example.net> List-Post: <mailto:carriebrown@example.net> List-Id: "OJB Developers List" <ojb-dev.db.apache.org> Reply-To: "OJB Developers List" <carriebrown@example.net> Delivered-To: mailing list carriebrown@example.net Received: (qmail 8805 invoked from network); 2 Mar 2004 08:47:59 -0000 Received: from unknown (HELO minotaur.apache.org) (83.161.120.155) by daedalus.apache.org with SMTP; 2 Mar 2004 08:47:59 -0000 Received: (qmail 48405 invoked from network); 2 Mar 2004 08:48:21 -0000 Received: from localhost.hyperreal.org (HELO apache.org) (83.161.120.155) by localhost.hyperreal.org with SMTP; 2 Mar 2004 08:48:21 -0000 Message-ID: <carriebrown@example.net> Date: Tue, 02 Mar 2004 09:48:10 +0100 From: Armin Waibel <carriebrown@example.net> User-Agent: Mozilla Thunderbird 0.5 (Windows/20040207) X-Accept-Language: en-us, en MIME-Version: 1.0 To: OJB Developers List <carriebrown@example.net> Subject: Re: [vote] 1.0 final release References: <carriebrown@example.net> <carriebrown@example.net> <carriebrown@example.net> In-Reply-To: <carriebrown@example.net> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Rating: localhost.hyperreal.org 1.6.2 0/1000/N X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N Hi Brian, do you think it's possible to update the anonymous-key doc (to list problems/warnings using anonymous keys outside of a 1:1 reference) before final 1.0? regards, Armin Brian McCallister wrote: > What is the status of 1.0 release vote in the PMC? > > -Brian > > On Feb 24, 2004, at 3:03 AM, Oleg Nitz wrote: > >> On Monday 23 February 2004 11:04, Thomas Mahler wrote: >> >>> I propose to assemble the relase during the next weekend (28./29.2.) >>> So I'd like to see your votes, please. >> >> +1 >> >>> There are also 5 errors in the OTM tests. they seem to be caused by >>> incosistencies in the testdata. (constraint violations). OTM developers: >>> please have a look at those issues, can't be a big problem. >> >> Okay, I'll take a look. >> >> On Monday 23 February 2004 14:34, Brian McCallister wrote: >> >>> I have heard from Matt privately and he wants to help out, but is more >>> or less insanely busy with work. I haven't heard anything from Raghu on >>> the list in a while, and I don't know Oleg's views re JDO. >> >> Now I don't have enough time to develop JDO implementation, but I am >> ready to >> support such development at the OTM level: necessary API additions and >> changes, bugfixes, etc. >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: carriebrown@example.net >> For additional commands, e-mail: carriebrown@example.net >> >> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: carriebrown@example.net > For additional commands, e-mail: carriebrown@example.net > > > --------------------------------------------------------------------- To unsubscribe, e-mail: carriebrown@example.net For additional commands, e-mail: carriebrown@example.net From carriebrown@example.net Tue Mar 02 12:08:50 2004 Return-Path: <carriebrown@example.net> Delivered-To: carriebrown@example.net Received: (qmail 56657 invoked from network); 2 Mar 2004 12:08:50 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 2 Mar 2004 12:08:50 -0000 Received: (qmail 29169 invoked by uid 500); 2 Mar 2004 12:08:47 -0000 Delivered-To: carriebrown@example.net Received: (qmail 29112 invoked by uid 500); 2 Mar 2004 12:08:47 -0000 Mailing-List: contact carriebrown@example.net; run by ezmlm Precedence: bulk List-Unsubscribe: <mailto:carriebrown@example.net> List-Subscribe: <mailto:carriebrown@example.net> List-Help: <mailto:carriebrown@example.net> List-Post: <mailto:carriebrown@example.net> List-Id: "OJB Developers List" <ojb-dev.db.apache.org> Reply-To: "OJB Developers List" <carriebrown@example.net> Delivered-To: mailing list carriebrown@example.net Received: (qmail 29068 invoked from network); 2 Mar 2004 12:08:45 -0000 Received: from unknown (HELO mail.fridayfives.net) (83.161.120.155) by daedalus.apache.org with SMTP; 2 Mar 2004 12:08:45 -0000 Received: from kamajii.forthill.int (localhost [83.161.120.155]) by localhost (Postfix) with SMTP id 65E2C1F426 for <carriebrown@example.net>; Tue, 2 Mar 2004 07:08:43 -0500 (EST) Received: from [83.161.120.155] (kite.forthill.int [83.161.120.155]) by mail.fridayfives.net (Postfix) with ESMTP id 3E65E1F425 for <carriebrown@example.net>; Tue, 2 Mar 2004 07:08:43 -0500 (EST) Mime-Version: 1.0 (Apple Message framework v612) In-Reply-To: <carriebrown@example.net> References: <carriebrown@example.net> <carriebrown@example.net> <carriebrown@example.net> <carriebrown@example.net> Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: <carriebrown@example.net> Content-Transfer-Encoding: 7bit From: Brian McCallister <carriebrown@example.net> Subject: Re: [vote] 1.0 final release Date: Tue, 2 Mar 2004 07:12:23 -0500 To: "OJB Developers List" <carriebrown@example.net> X-Mailer: Apple Mail (2.612) X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N Will do so today. -Brian On Mar 2, 2004, at 3:48 AM, Armin Waibel wrote: > Hi Brian, > > do you think it's possible to update the anonymous-key doc (to list > problems/warnings using anonymous keys outside of a 1:1 reference) > before final 1.0? > > > regards, > Armin > > Brian McCallister wrote: > >> What is the status of 1.0 release vote in the PMC? >> -Brian >> On Feb 24, 2004, at 3:03 AM, Oleg Nitz wrote: >>> On Monday 23 February 2004 11:04, Thomas Mahler wrote: >>> >>>> I propose to assemble the relase during the next weekend (28./29.2.) >>>> So I'd like to see your votes, please. >>> >>> +1 >>> >>>> There are also 5 errors in the OTM tests. they seem to be caused by >>>> incosistencies in the testdata. (constraint violations). OTM >>>> developers: >>>> please have a look at those issues, can't be a big problem. >>> >>> Okay, I'll take a look. >>> >>> On Monday 23 February 2004 14:34, Brian McCallister wrote: >>> >>>> I have heard from Matt privately and he wants to help out, but is >>>> more >>>> or less insanely busy with work. I haven't heard anything from >>>> Raghu on >>>> the list in a while, and I don't know Oleg's views re JDO. >>> >>> Now I don't have enough time to develop JDO implementation, but I am >>> ready to >>> support such development at the OTM level: necessary API additions >>> and >>> changes, bugfixes, etc. >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: carriebrown@example.net >>> For additional commands, e-mail: carriebrown@example.net >>> >>> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: carriebrown@example.net >> For additional commands, e-mail: carriebrown@example.net > > --------------------------------------------------------------------- > To unsubscribe, e-mail: carriebrown@example.net > For additional commands, e-mail: carriebrown@example.net > > --------------------------------------------------------------------- To unsubscribe, e-mail: carriebrown@example.net For additional commands, e-mail: carriebrown@example.net From carriebrown@example.net Wed Mar 03 06:10:01 2004 Return-Path: <carriebrown@example.net> Delivered-To: carriebrown@example.net Received: (qmail 25291 invoked from network); 3 Mar 2004 06:10:00 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 3 Mar 2004 06:10:00 -0000 Received: (qmail 22606 invoked by uid 500); 3 Mar 2004 06:09:38 -0000 Delivered-To: carriebrown@example.net Received: (qmail 22591 invoked by uid 500); 3 Mar 2004 06:09:38 -0000 Mailing-List: contact carriebrown@example.net; run by ezmlm Precedence: bulk List-Unsubscribe: <mailto:carriebrown@example.net> List-Subscribe: <mailto:carriebrown@example.net> List-Help: <mailto:carriebrown@example.net> List-Post: <mailto:carriebrown@example.net> List-Id: "OJB Developers List" <ojb-dev.db.apache.org> Reply-To: "OJB Developers List" <carriebrown@example.net> Delivered-To: mailing list carriebrown@example.net Received: (qmail 78993 invoked by uid 500); 2 Mar 2004 20:30:41 -0000 Date: 2 Mar 2004 20:30:50 -0000 Message-ID: <carriebrown@example.net> From: carriebrown@example.net To: carriebrown@example.net Subject: cvs commit: db-ojb/xdocs howto-use-anonymous-keys.xml X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N brianm 2004/03/02 12:30:50 Modified: xdocs howto-use-anonymous-keys.xml Log: Made primary key's no longer anonymous access in the howto -- this leads to problems Revision Changes Path 1.4 +76 -72 db-ojb/xdocs/howto-use-anonymous-keys.xml Index: howto-use-anonymous-keys.xml =================================================================== RCS file: /home/cvs/db-ojb/xdocs/howto-use-anonymous-keys.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- howto-use-anonymous-keys.xml 31 Aug 2003 00:01:17 -0000 1.3 +++ howto-use-anonymous-keys.xml 2 Mar 2004 20:30:50 -0000 1.4 @@ -1,52 +1,54 @@ <?xml version="1.0"?> <document> - <properties> - <author email="carriebrown@example.net">Brian McCallister</author> - <title>ObJectRelationalBridge - HOWTO Use Anonymous Keys</title> - </properties> - -<body> - -<section name="HOWTO Use Anonymous Keys"> - <subsection name="Why Do We Need Anonymous Keys?"> - <p> - The core difference between referential integrity in Java and in an RDBMS lies in where the specific referential information is maintained. Java, and most modern OO languages, maintain referential integrity information in the runtime environment. Actual object relationships are maintained by the virtual machine so that the symbolic variable used in the application is dereferenced it will in fact provide access to the object instance which it is expected to provide access to. There is no need for a manual lookup or search across the heap for the correct object instance. Entity reference integrity is maintained and handled for the programmer by the environment. - </p> - <p> - Relational databases, on the other, purposefully place the referential integrity and lookups into the problem domain - that is the problem they are designed to solve. An RDBMS presumes you can design somehtign more efficient for your specific circumstances than the JVM does (you trust its ability to do object lookups in the heap is sufficiently efficient). As an RDBMS has a much larger heap equivalent, it is designed to not operate under that assumption (mostly). So, in an RDBMS the concept of specific foreign keys exists to maintain the referential integrity. - </p> - <p> - In crossing the object to relational entity barrier there is a mismatch between the referential integrity implementations. Java programers do not want to have to maintain both object referential integrity and key referential integrity analogous to - </p> - <source><![CDATA[ + <properties> + <author email="carriebrown@example.net">Brian McCallister</author> + <title>ObJectRelationalBridge - HOWTO Use Anonymous Keys</title> + </properties> + + <body> + + <section name="HOWTO Use Anonymous Keys"> + <subsection name="Why Do We Need Anonymous Keys?"> + <p> + The core difference between referential integrity in Java and in an RDBMS lies in where the specific + referential information is maintained. Java, and most modern OO languages, maintain referential integrity information in the runtime environment. Actual object relationships are maintained by the virtual machine so that the symbolic variable used in the application is dereferenced it will in fact provide access to the object instance which it is expected to provide access to. There is no need for a manual lookup or search across the heap for the correct object instance. Entity reference integrity is maintained and handled for the programmer by the environment. + </p> + <p> + Relational databases, on the other, purposefully place the referential integrity and lookups into the problem domain - that is the problem they are designed to solve. An RDBMS presumes you can design something more efficient for your specific circumstances than the JVM does (you trust its ability to do object lookups in the heap is sufficiently efficient). As an RDBMS has a much larger heap equivalent it is designed to not operate under that assumption (mostly). So, in an RDBMS the concept of specific foreign keys exists to maintain the referential integrity. + </p> + <p> + In crossing the object to relational entity barrier there is a mismatch between the referential integrity implementations. Java programmers do not want to have to maintain both object referential integrity and key referential integrity analogous to + </p> + <source><![CDATA[ { Foo parent = new SomeFooType(); Foo child = new SomeOtherFooType(); parent.addChild(child); child.setParentId(parent.getId()); } - ]]></source> - <p> + ]]></source> + <p> This is double the work required - you set up the object relationship, then set up the key relationship. - </p> - <p> + </p> + <p> OJB can provide transparent key relationship maintenance behind the scenes via anonymous access fields. As object relationships change, the relationships will be propogated into the key values without the Java object ever being aware of a relational key being in use. - </p> - </subsection> -</section> -<section name="Using Anonymous Keys"> - <subsection name="The Code"> - <p> + </p> + </subsection> + </section> + <section name="Using Anonymous Keys"> + <subsection name="The Code"> + <p> Take the following classes designed to model a particular problem domain. They may do it reasonably well, or may not. Presume they model it perfectly well for the problem being solved. - </p> - <source><![CDATA[ + </p> + <source><![CDATA[ public class Desk { private Finish finish; /** Contains Drawer instances */ private List drawers; private int numberOfLegs; + private Integer id; public Desk() { @@ -84,6 +86,7 @@ { /** Contains Thing instances */ private List stuffInDrawer; + private Integer id; public List getStuffInDrawer() { @@ -101,6 +104,7 @@ { private String wood; private String color; + private Integer id; public String getWood() { @@ -126,6 +130,7 @@ public class Thing { private String name; + private Integer id; public String getName() { @@ -137,16 +142,16 @@ this.name = name; } } - ]]></source> - <p> + ]]></source> + <p> A Desk will typically reference multiple drawers and one finish. - </p> - </subsection> - <subsection name="The Database"> - <p> + </p> + </subsection> + <subsection name="The Database"> + <p> When we need to store our instances in a database we use a fairly typical table per class persistance model. - </p> - <source><![CDATA[ + </p> + <source><![CDATA[ CREATE TABLE finish ( id INTEGER PRIMARY KEY, @@ -176,19 +181,20 @@ drawer_id INTEGER, FOREIGN KEY (drawer_id) REFERENCES drawer(id) ); - ]]></source> - <p> + ]]></source> + <p> At the database level the possible relationships need to be explicitely defined by teh foreign key constraints. These model all the possible object relationships according to the domain model (until generics enter the Java language for the collections API, this is technically untrue for the classes used here). - </p> - </subsection> - <subsection name="The Repository Configuration"> - <p> + </p> + </subsection> + <subsection name="The Repository Configuration"> + <p> When we go to map the classes to the database, it is almost a one-to-one property to field mapping. The exception here is the primary key on each entity. This is meaningless information in Java, so we would like to keep it out of the object model. Anonymous access keys allow us to do that. - </p> - <p> - The repository.xml must know about the database columns used for referential integrity, but OJB can maintain the foreign key relationships behind the scenes - freeing the developer to focus on more accurate modeling of her objects to the problem, instead of the the persistance mechanism. Doing this is also very simple - in the repository.xml file mark the field descriptors with a <code>access="anonymous"</code> attribute. - </p> - <source><![CDATA[ + </p> + <p> + The repository.xml must know about the database columns used for referential integrity, but OJB can maintain the foreign key relationships behind the scenes - freeing the developer to focus on more accurate modeling of her objects to the problem, instead of the the persistance mechanism. Doing this is also very simple - in the repository.xml file mark the field descriptors with a + <code>access="anonymous"</code> attribute. + </p> + <source><![CDATA[ <class-descriptor class="Desk" table="desk"> @@ -199,7 +205,6 @@ jdbc-type="INTEGER" primarykey="true" autoincrement="true" - access="anonymous" /> <field-descriptor name="numberOfLegs" @@ -236,7 +241,6 @@ jdbc-type="INTEGER" primarykey="true" autoincrement="true" - access="anonymous" /> <field-descriptor name="wood" @@ -262,7 +266,6 @@ jdbc-type="INTEGER" primarykey="true" autoincrement="true" - access="anonymous" /> <field-descriptor name="deskId" @@ -288,7 +291,6 @@ jdbc-type="INTEGER" primarykey="true" autoincrement="true" - access="anonymous" /> <field-descriptor name="name" @@ -303,26 +305,28 @@ access="anonymous" /> </class-descriptor> - ]]></source> - <p> + ]]></source> + <p> Look first at the class descriptor for the Thing class. Notice the field-descriptor with the name attribute "drawerId". This field is labeled as anonymous access. Because it is anonymous access OJB will not attempt to assign the value here to a "drawerId" field or property on the Thing class. Normally the name attribute is used as the Java name for the attribute, in this case it is not. The name is still required because it is used as an indicated for references to this anonymous field. - </p> - <p> - In the field descriptor for Drawer, look at the collection descriptor with the name "stuffInDrawer". This collection descriptor references a foreign key with the <code>field-ref="drawerId"</code>. This reference is to the anonymous field descriptor in the Thing descriptor. The field-ref matches to the name in the descriptor whether or not the name also maps to the Java attribute name. This dual use of <code>name</code> can be confusing - be careful. - </p> - <p> + </p> + <p> + In the field descriptor for Drawer, look at the collection descriptor with the name "stuffInDrawer". This collection descriptor references a foreign key with the + <code>field-ref="drawerId"</code>. This reference is to the anonymous field descriptor in the Thing descriptor. The field-ref matches to the name in the descriptor whether or not the name also maps to the Java attribute name. This dual use of + <code>name</code> can be confusing - be careful. + </p> + <p> The same type mapping that is used for the collection descriptor in the Drawer descriptor is also used for the 1:1 reference descriptor in the Desk descriptor. - </p> - </subsection> - <subsection name="Benefits and Drawbacks"> - <p> + </p> + <p> + The primary keys are populated into the objects as it is generally a good practice to not implement primary keys as anonymous access fields. Primary keys may be anonymous-access but references will get lost if the cache is cleared or the persistent object is serialized. + </p> + </subsection> + <subsection name="Benefits and Drawbacks"> + <p> There are both benefits and drawbacks to using anonymous field references for maintaining referential integrity between Java objects and database relations. The most immediate benefit is avoiding semantic code duplication. The second major benefit is avoiding cluttering class definitions with persistance mechanism artifacts. In a well layered application, the persistance mechanism will not really need to be so obvious in the object model implementation. Anonymous fields helpt o achieve this - thereby making persistence mechanisms more flexible. Moving to a different one becomes easier. - </p> - <p> - There is an indirect benefit to populating the various id type keys though, particularly in web based applications where yet another layer boundary must be crossed - to an html or html-form format where object references are again lost. If unique ids are not part of a class, they will wind up being regenerated at the object level for crossing to the next layer. While this might be a better method to a layer purist, it is considerably less efficient. - </p> - </subsection> -</section> -</body> + </p> + </subsection> + </section> + </body> </document> --------------------------------------------------------------------- To unsubscribe, e-mail: carriebrown@example.net For additional commands, e-mail: carriebrown@example.net From carriebrown@example.net Wed Mar 03 17:19:30 2004 Return-Path: <carriebrown@example.net> Delivered-To: carriebrown@example.net Received: (qmail 75420 invoked from network); 3 Mar 2004 17:19:30 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 3 Mar 2004 17:19:30 -0000 Received: (qmail 30440 invoked by uid 500); 3 Mar 2004 17:19:22 -0000 Delivered-To: carriebrown@example.net Received: (qmail 30391 invoked by uid 500); 3 Mar 2004 17:19:20 -0000 Mailing-List: contact carriebrown@example.net; run by ezmlm Precedence: bulk List-Unsubscribe: <mailto:carriebrown@example.net> List-Subscribe: <mailto:carriebrown@example.net> List-Help: <mailto:carriebrown@example.net> List-Post: <mailto:carriebrown@example.net> List-Id: "OJB Developers List" <ojb-dev.db.apache.org> Reply-To: "OJB Developers List" <carriebrown@example.net> Delivered-To: mailing list carriebrown@example.net Received: (qmail 30376 invoked by uid 500); 3 Mar 2004 17:19:20 -0000 Received: (qmail 30370 invoked from network); 3 Mar 2004 17:19:20 -0000 Received: from unknown (HELO minotaur.apache.org) (83.161.120.155) by daedalus.apache.org with SMTP; 3 Mar 2004 17:19:20 -0000 Received: (qmail 75387 invoked by uid 1513); 3 Mar 2004 17:19:26 -0000 Date: 3 Mar 2004 17:19:26 -0000 Message-ID: <carriebrown@example.net> From: carriebrown@example.net To: carriebrown@example.net Subject: cvs commit: db-ojb/src/java/org/apache/ojb/broker/accesslayer/sql SqlQueryStatement.java X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N brj 2004/03/03 09:19:26 Modified: src/java/org/apache/ojb/broker/accesslayer/sql SqlQueryStatement.java Log: fixed problem of multisegment path in setClassPath Revision Changes Path 1.66 +3 -3 db-ojb/src/java/org/apache/ojb/broker/accesslayer/sql/SqlQueryStatement.java Index: SqlQueryStatement.java =================================================================== RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/accesslayer/sql/SqlQueryStatement.java,v retrieving revision 1.65 retrieving revision 1.66 diff -u -r1.65 -r1.66 --- SqlQueryStatement.java 21 Feb 2004 21:41:45 -0000 1.65 +++ SqlQueryStatement.java 3 Mar 2004 17:19:26 -0000 1.66 @@ -1015,7 +1015,7 @@ if (ord instanceof CollectionDescriptor) { cod = (CollectionDescriptor) ord; - cld = getItemClassDescriptor(cod, attr); + cld = getItemClassDescriptor(cod, attrPath); if (!cod.isMtoNRelation()) { @@ -1047,7 +1047,7 @@ else { // must be n:1 or 1:1 - cld = getItemClassDescriptor(ord, attr); + cld = getItemClassDescriptor(ord, attrPath); prevKeys = ord.getForeignKeyFieldDescriptors(prev.cld); keys = cld.getPkFields(); --------------------------------------------------------------------- To unsubscribe, e-mail: carriebrown@example.net For additional commands, e-mail: carriebrown@example.net From carriebrown@example.net Wed Mar 03 21:03:18 2004 Return-Path: <carriebrown@example.net> Delivered-To: carriebrown@example.net Received: (qmail 24638 invoked from network); 3 Mar 2004 21:03:18 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 3 Mar 2004 21:03:18 -0000 Received: (qmail 80098 invoked by uid 500); 3 Mar 2004 21:03:06 -0000 Delivered-To: carriebrown@example.net Received: (qmail 80070 invoked by uid 500); 3 Mar 2004 21:03:06 -0000 Mailing-List: contact carriebrown@example.net; run by ezmlm Precedence: bulk List-Unsubscribe: <mailto:carriebrown@example.net> List-Subscribe: <mailto:carriebrown@example.net> List-Help: <mailto:carriebrown@example.net> List-Post: <mailto:carriebrown@example.net> List-Id: "OJB Developers List" <ojb-dev.db.apache.org> Reply-To: "OJB Developers List" <carriebrown@example.net> Delivered-To: mailing list carriebrown@example.net Received: (qmail 80057 invoked by uid 500); 3 Mar 2004 21:03:06 -0000 Received: (qmail 80052 invoked from network); 3 Mar 2004 21:03:05 -0000 Received: from unknown (HELO minotaur.apache.org) (83.161.120.155) by daedalus.apache.org with SMTP; 3 Mar 2004 21:03:05 -0000 Received: (qmail 24610 invoked by uid 1513); 3 Mar 2004 21:03:16 -0000 Date: 3 Mar 2004 21:03:16 -0000 Message-ID: <carriebrown@example.net> From: carriebrown@example.net To: carriebrown@example.net Subject: cvs commit: db-ojb/src/test/org/apache/ojb/broker NestedFieldsTest.java X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N brj 2004/03/03 13:03:16 Modified: src/test/org/apache/ojb/broker NestedFieldsTest.java Log: tried to fix intermittent failure of testDeleteNestedField Revision Changes Path 1.6 +1 -1 db-ojb/src/test/org/apache/ojb/broker/NestedFieldsTest.java Index: NestedFieldsTest.java =================================================================== RCS file: /home/cvs/db-ojb/src/test/org/apache/ojb/broker/NestedFieldsTest.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- NestedFieldsTest.java 23 Jan 2004 23:45:38 -0000 1.5 +++ NestedFieldsTest.java 3 Mar 2004 21:03:16 -0000 1.6 @@ -236,7 +236,7 @@ assertNull("Object was not deleted", nested); Criteria crit = new Criteria(); - crit.addLike("name", entryName); + crit.addEqualTo("name", entryName); Query query = QueryFactory.newQuery(NestedEntry.class, crit); Collection result = broker.getCollectionByQuery(query); assertEquals(0, result.size()); --------------------------------------------------------------------- To unsubscribe, e-mail: carriebrown@example.net For additional commands, e-mail: carriebrown@example.net From carriebrown@example.net Wed Mar 03 21:18:17 2004 Return-Path: <carriebrown@example.net> Delivered-To: carriebrown@example.net Received: (qmail 34983 invoked from network); 3 Mar 2004 21:18:17 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 3 Mar 2004 21:18:17 -0000 Received: (qmail 9014 invoked by uid 500); 3 Mar 2004 21:18:04 -0000 Delivered-To: carriebrown@example.net Received: (qmail 8981 invoked by uid 500); 3 Mar 2004 21:18:04 -0000 Mailing-List: contact carriebrown@example.net; run by ezmlm Precedence: bulk List-Unsubscribe: <mailto:carriebrown@example.net> List-Subscribe: <mailto:carriebrown@example.net> List-Help: <mailto:carriebrown@example.net> List-Post: <mailto:carriebrown@example.net> List-Id: "OJB Developers List" <ojb-dev.db.apache.org> Reply-To: "OJB Developers List" <carriebrown@example.net> Delivered-To: mailing list carriebrown@example.net Received: (qmail 8967 invoked by uid 500); 3 Mar 2004 21:18:04 -0000 Received: (qmail 8964 invoked from network); 3 Mar 2004 21:18:04 -0000 Received: from unknown (HELO minotaur.apache.org) (83.161.120.155) by daedalus.apache.org with SMTP; 3 Mar 2004 21:18:04 -0000 Received: (qmail 34964 invoked by uid 1513); 3 Mar 2004 21:18:15 -0000 Date: 3 Mar 2004 21:18:15 -0000 Message-ID: <carriebrown@example.net> From: carriebrown@example.net To: carriebrown@example.net Subject: cvs commit: db-ojb/src/test/org/apache/ojb/broker NestedFieldsTest.java X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N brj 2004/03/03 13:18:15 Modified: src/test/org/apache/ojb/broker NestedFieldsTest.java Log: tried to fix intermittent failure of testDeleteNestedField Revision Changes Path 1.7 +3 -3 db-ojb/src/test/org/apache/ojb/broker/NestedFieldsTest.java Index: NestedFieldsTest.java =================================================================== RCS file: /home/cvs/db-ojb/src/test/org/apache/ojb/broker/NestedFieldsTest.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- NestedFieldsTest.java 3 Mar 2004 21:03:16 -0000 1.6 +++ NestedFieldsTest.java 3 Mar 2004 21:18:14 -0000 1.7 @@ -56,7 +56,7 @@ long timestamp = System.currentTimeMillis(); String ddName = "second_level_detail_" + timestamp; String ddDescription = "a real detail description" + timestamp; - String entryName = "nested_entry_" + timestamp; + String entryName = "nested_entry_store_" + timestamp; NestedDetailDetail dd = new NestedDetailDetail(ddName, ddDescription); NestedDetail d = new NestedDetail(dd); @@ -158,7 +158,7 @@ long timestamp = System.currentTimeMillis(); String ddName = "second_level_detail_" + timestamp; String ddDescription = "a real detail description" + timestamp; - String entryName = "nested_entry_" + timestamp; + String entryName = "nested_entry_upd_" + timestamp; NestedDetailDetail dd = new NestedDetailDetail(ddName, ddDescription); NestedDetail d = new NestedDetail(dd); @@ -205,7 +205,7 @@ long timestamp = System.currentTimeMillis(); String ddName = "second_level_detail_" + timestamp; String ddDescription = "a real detail description" + timestamp; - String entryName = "nested_entry_" + timestamp; + String entryName = "nested_entry_del_" + timestamp; NestedDetailDetail dd = new NestedDetailDetail(ddName, ddDescription); NestedDetail d = new NestedDetail(dd); --------------------------------------------------------------------- To unsubscribe, e-mail: carriebrown@example.net For additional commands, e-mail: carriebrown@example.net From carriebrown@example.net Thu Mar 04 14:08:38 2004 Return-Path: <carriebrown@example.net> Delivered-To: carriebrown@example.net Received: (qmail 864 invoked from network); 4 Mar 2004 14:08:37 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 4 Mar 2004 14:08:37 -0000 Received: (qmail 3140 invoked by uid 500); 4 Mar 2004 14:08:31 -0000 Delivered-To: carriebrown@example.net Received: (qmail 3095 invoked by uid 500); 4 Mar 2004 14:08:30 -0000 Mailing-List: contact carriebrown@example.net; run by ezmlm Precedence: bulk List-Unsubscribe: <mailto:carriebrown@example.net> List-Subscribe: <mailto:carriebrown@example.net> List-Help: <mailto:carriebrown@example.net> List-Post: <mailto:carriebrown@example.net> List-Id: "OJB Developers List" <ojb-dev.db.apache.org> Reply-To: "OJB Developers List" <carriebrown@example.net> Delivered-To: mailing list carriebrown@example.net Received: (qmail 3046 invoked from network); 4 Mar 2004 14:08:30 -0000 Received: from unknown (HELO exchange.sun.com) (83.161.120.155) by daedalus.apache.org with SMTP; 4 Mar 2004 14:08:30 -0000 Received: (qmail 5273 invoked from network); 4 Mar 2004 14:08:59 -0000 Received: from localhost (HELO nagoya) (83.161.120.155) by nagoya.betaversion.org with SMTP; 4 Mar 2004 14:08:59 -0000 Message-ID: <726238925.1078409339154.JavaMail.apache@localhost> Date: Thu, 4 Mar 2004 06:08:59 -0800 (PST) From: Dieter Faber <carriebrown@example.net> Reply-To: Scarab System <carriebrown@example.net> To: Dieter Faber <carriebrown@example.net> Subject: [OJB] Issue #OJB247 - getIteratorByQuery fails with StringIndexOutOfBoundsExce... Cc: "carriebrown@example.net" <carriebrown@example.net> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N You can view the issue detail at the following URL: http://nagoya.apache.org/scarab/issues/id/OJB247 Type Defect Issue ID OJB247 (getIteratorByQuery fails with StringIndexOutOfBoundsException) Reported by Dieter Faber fabix9 (carriebrown@example.net) New issue details: --------------------------------------------------------- Description set to "I have switched from ojb-1.0.r..." Added file attachment "ojb_error.txt" Operating system set to "Redhat" Summary set to " getIteratorByQuery fails with..." Issue created Platform set to "All" --------------------------------------------------------- This message is automatically generated by the Scarab issue tracking system. For more information: http://scarab.tigris.org/ --------------------------------------------------------------------- To unsubscribe, e-mail: carriebrown@example.net For additional commands, e-mail: carriebrown@example.net From carriebrown@example.net Thu Mar 04 22:38:23 2004 Return-Path: <carriebrown@example.net> Delivered-To: carriebrown@example.net Received: (qmail 86007 invoked from network); 4 Mar 2004 22:38:23 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 4 Mar 2004 22:38:23 -0000 Received: (qmail 33099 invoked by uid 500); 4 Mar 2004 22:38:09 -0000 Delivered-To: carriebrown@example.net Received: (qmail 33070 invoked by uid 500); 4 Mar 2004 22:38:09 -0000 Mailing-List: contact carriebrown@example.net; run by ezmlm Precedence: bulk List-Unsubscribe: <mailto:carriebrown@example.net> List-Subscribe: <mailto:carriebrown@example.net> List-Help: <mailto:carriebrown@example.net> List-Post: <mailto:carriebrown@example.net> List-Id: "OJB Developers List" <ojb-dev.db.apache.org> Reply-To: "OJB Developers List" <carriebrown@example.net> Delivered-To: mailing list carriebrown@example.net Received: (qmail 33057 invoked by uid 500); 4 Mar 2004 22:38:09 -0000 Received: (qmail 33052 invoked from network); 4 Mar 2004 22:38:09 -0000 Received: from unknown (HELO minotaur.apache.org) (83.161.120.155) by daedalus.apache.org with SMTP; 4 Mar 2004 22:38:09 -0000 Received: (qmail 85986 invoked by uid 1520); 4 Mar 2004 22:38:21 -0000 Date: 4 Mar 2004 22:38:21 -0000 Message-ID: <carriebrown@example.net> From: carriebrown@example.net To: carriebrown@example.net Subject: cvs commit: db-ojb/src/schema ojbtest-schema.xml X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N olegnitz 2004/03/04 14:38:21 Modified: src/schema ojbtest-schema.xml Log: New test from Joerg Revision Changes Path 1.68 +4 -0 db-ojb/src/schema/ojbtest-schema.xml Index: ojbtest-schema.xml =================================================================== RCS file: /home/cvs/db-ojb/src/schema/ojbtest-schema.xml,v retrieving revision 1.67 retrieving revision 1.68 diff -u -r1.67 -r1.68 --- ojbtest-schema.xml 29 Feb 2004 15:06:34 -0000 1.67 +++ ojbtest-schema.xml 4 Mar 2004 22:38:21 -0000 1.68 @@ -1134,12 +1134,16 @@ javaName="OtmPerson2"> <column name="ID" required="true" primaryKey="true" type="INTEGER" javaName="id"/> + <column name="NAME" type="VARCHAR" size="60" + javaName="name"/> </table> <table name="OTM_PERSON3" javaName="OtmPerson2"> <column name="ID" required="true" primaryKey="true" type="INTEGER" javaName="id"/> + <column name="NAME" type="VARCHAR" size="60" + javaName="name"/> </table> <table name="OTM_ADDRESS2" --------------------------------------------------------------------- To unsubscribe, e-mail: carriebrown@example.net For additional commands, e-mail: carriebrown@example.net From carriebrown@example.net Thu Mar 04 22:39:23 2004 Return-Path: <carriebrown@example.net> Delivered-To: carriebrown@example.net Received: (qmail 91384 invoked from network); 4 Mar 2004 22:39:23 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 4 Mar 2004 22:39:23 -0000 Received: (qmail 34031 invoked by uid 500); 4 Mar 2004 22:39:09 -0000 Delivered-To: carriebrown@example.net Received: (qmail 34001 invoked by uid 500); 4 Mar 2004 22:39:08 -0000 Mailing-List: contact carriebrown@example.net; run by ezmlm Precedence: bulk List-Unsubscribe: <mailto:carriebrown@example.net> List-Subscribe: <mailto:carriebrown@example.net> List-Help: <mailto:carriebrown@example.net> List-Post: <mailto:carriebrown@example.net> List-Id: "OJB Developers List" <ojb-dev.db.apache.org> Reply-To: "OJB Developers List" <carriebrown@example.net> Delivered-To: mailing list carriebrown@example.net Received: (qmail 33988 invoked by uid 500); 4 Mar 2004 22:39:08 -0000 Received: (qmail 33985 invoked from network); 4 Mar 2004 22:39:08 -0000 Received: from unknown (HELO minotaur.apache.org) (83.161.120.155) by daedalus.apache.org with SMTP; 4
{'source': 'Apache Software Foundation Public Mail Archives'}