You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(22) |
Nov
(308) |
Dec
(131) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(369) |
Feb
(171) |
Mar
(236) |
Apr
(187) |
May
(218) |
Jun
(217) |
Jul
(127) |
Aug
(448) |
Sep
(270) |
Oct
(231) |
Nov
(422) |
Dec
(255) |
2004 |
Jan
(111) |
Feb
(73) |
Mar
(338) |
Apr
(351) |
May
(349) |
Jun
(495) |
Jul
(394) |
Aug
(1048) |
Sep
(499) |
Oct
(142) |
Nov
(269) |
Dec
(638) |
2005 |
Jan
(825) |
Feb
(1272) |
Mar
(593) |
Apr
(690) |
May
(950) |
Jun
(958) |
Jul
(767) |
Aug
(839) |
Sep
(525) |
Oct
(449) |
Nov
(585) |
Dec
(455) |
2006 |
Jan
(603) |
Feb
(656) |
Mar
(195) |
Apr
(114) |
May
(136) |
Jun
(100) |
Jul
(128) |
Aug
(68) |
Sep
(7) |
Oct
(1) |
Nov
(1) |
Dec
(8) |
2007 |
Jan
(4) |
Feb
(3) |
Mar
(8) |
Apr
(16) |
May
(5) |
Jun
(4) |
Jul
(6) |
Aug
(23) |
Sep
(15) |
Oct
(5) |
Nov
(7) |
Dec
(5) |
2008 |
Jan
(5) |
Feb
(1) |
Mar
(1) |
Apr
(5) |
May
(1) |
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2012 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
(1) |
Jul
(1) |
Aug
(1) |
Sep
|
Oct
(2) |
Nov
(3) |
Dec
(2) |
2013 |
Jan
(1) |
Feb
|
Mar
(2) |
Apr
(1) |
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
(2) |
Jun
(1) |
Jul
|
Aug
(1) |
Sep
(1) |
Oct
|
Nov
(1) |
Dec
|
2015 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2017 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <one...@us...> - 2003-02-02 04:19:55
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/type In directory sc8-pr-cvs1:/tmp/cvs-serv29352/sf/hibernate/type Modified Files: AbstractType.java ComponentType.java DynaBeanType.java EntityType.java OneToOneType.java PersistentCollectionType.java Type.java TypeFactory.java Log Message: smarter dirty-checking for EntityType Index: AbstractType.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/type/AbstractType.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** AbstractType.java 27 Jan 2003 12:12:41 -0000 1.4 --- AbstractType.java 2 Feb 2003 04:19:52 -0000 1.5 *************** *** 7,11 **** import net.sf.hibernate.HibernateException; - import net.sf.hibernate.engine.SessionFactoryImplementor; import net.sf.hibernate.engine.SessionImplementor; --- 7,10 ---- *************** *** 52,56 **** } ! public boolean isDirty(Object old, Object current, Object owner,SessionFactoryImplementor pc) throws HibernateException { return !equals(old, current); } --- 51,55 ---- } ! public boolean isDirty(Object old, Object current, SessionImplementor session) throws HibernateException { return !equals(old, current); } Index: ComponentType.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/type/ComponentType.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** ComponentType.java 31 Jan 2003 08:26:38 -0000 1.5 --- ComponentType.java 2 Feb 2003 04:19:52 -0000 1.6 *************** *** 103,111 **** } ! public boolean isDirty(Object x, Object y, Object owner, SessionFactoryImplementor factory) throws HibernateException { if (x==y) return false; if (x==null || y==null) return true; for ( int i=0; i<getters.length; i++ ) { ! if ( types[i].isDirty( getters[i].get(x), getters[i].get(y), owner, factory ) ) return true; } return false; --- 103,111 ---- } ! public boolean isDirty(Object x, Object y, SessionImplementor session) throws HibernateException { if (x==y) return false; if (x==null || y==null) return true; for ( int i=0; i<getters.length; i++ ) { ! if ( types[i].isDirty( getters[i].get(x), getters[i].get(y), session ) ) return true; } return false; Index: DynaBeanType.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/type/DynaBeanType.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** DynaBeanType.java 19 Jan 2003 11:48:39 -0000 1.1 --- DynaBeanType.java 2 Feb 2003 04:19:52 -0000 1.2 *************** *** 144,147 **** --- 144,158 ---- } + public boolean isDirty(Object x, Object y, SessionImplementor session) throws HibernateException { + if (x==y) return false; + if (x==null || y==null) return true; + DynaBean xbean = (DynaBean) x; + DynaBean ybean = (DynaBean) y; + for ( int i=0; i<propertySpan; i++ ) { + if ( propertyTypes[i].isDirty( xbean.get( propertyNames[i] ), ybean.get( propertyNames[i] ), session ) ) return true; + } + return false; + } + /** * @see net.sf.hibernate.type.Type#getColumnSpan(net.sf.hibernate.engine.Mapping) Index: EntityType.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/type/EntityType.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** EntityType.java 19 Jan 2003 11:47:08 -0000 1.4 --- EntityType.java 2 Feb 2003 04:19:52 -0000 1.5 *************** *** 63,70 **** } catch (HibernateException he) { ! throw new HibernateException( ! "object references a transient instance - save the transient instance first" ! ); } } return id; --- 63,71 ---- } catch (HibernateException he) { ! // transient instance with no identifier property } + if (id==null) throw new HibernateException( + "object references a transient instance - save the transient instance first" + ); } return id; *************** *** 124,128 **** --- 125,139 ---- throws HibernateException, SQLException; + public boolean isDirty(Object old, Object current, SessionImplementor session) throws HibernateException { + + if ( equals(old, current) ) return false; + + Serializable oldid = getIdentifier(old, session); + Serializable newid = getIdentifier(current, session); + return !session.getFactory().getIdentifierType(persistentClass).equals(oldid, newid); + } + + } Index: OneToOneType.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/type/OneToOneType.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** OneToOneType.java 27 Jan 2003 07:12:04 -0000 1.4 --- OneToOneType.java 2 Feb 2003 04:19:52 -0000 1.5 *************** *** 10,14 **** import net.sf.hibernate.MappingException; import net.sf.hibernate.engine.Mapping; - import net.sf.hibernate.engine.SessionFactoryImplementor; import net.sf.hibernate.engine.SessionImplementor; --- 10,13 ---- *************** *** 45,49 **** ! public boolean isDirty(Object old, Object current, Object owner, SessionFactoryImplementor pc) throws HibernateException { return false; } --- 44,48 ---- ! public boolean isDirty(Object old, Object current, SessionImplementor session) throws HibernateException { return false; } Index: PersistentCollectionType.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/type/PersistentCollectionType.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** PersistentCollectionType.java 19 Jan 2003 11:47:08 -0000 1.5 --- PersistentCollectionType.java 2 Feb 2003 04:19:52 -0000 1.6 *************** *** 114,126 **** } ! public boolean isDirty(Object old, Object current, Object owner, SessionFactoryImplementor factory) throws HibernateException { ! if ( !factory.getPersister( owner.getClass() ).isVersioned() ) { ! //nested collections don't dirty the unversioned parent entity return false; } else { ! return super.isDirty(old, current, owner, factory); } } --- 114,130 ---- } ! public boolean isDirty(Object old, Object current, SessionImplementor session) throws HibernateException { ! ! Class ownerClass = session.getFactory().getCollectionPersister(role).getOwnerClass(); ! ! if ( !session.getFactory().getPersister(ownerClass).isVersioned() ) { ! // collections don't dirty an unversioned parent entity return false; } else { ! return super.isDirty(old, current, session); } + } Index: Type.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/type/Type.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Type.java 26 Jan 2003 03:16:32 -0000 1.5 --- Type.java 2 Feb 2003 04:19:52 -0000 1.6 *************** *** 91,99 **** * @param old the old value * @param current the current value ! * @param owner the parent entity ! * @param factory * @return true if the field is dirty */ ! public boolean isDirty(Object old, Object current, Object owner, SessionFactoryImplementor factory) throws HibernateException; /** --- 91,98 ---- * @param old the old value * @param current the current value ! * @param session * @return true if the field is dirty */ ! public boolean isDirty(Object old, Object current, SessionImplementor session) throws HibernateException; /** Index: TypeFactory.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/type/TypeFactory.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** TypeFactory.java 24 Jan 2003 16:16:03 -0000 1.5 --- TypeFactory.java 2 Feb 2003 04:19:52 -0000 1.6 *************** *** 22,26 **** import net.sf.hibernate.PersistentEnum; import net.sf.hibernate.UserType; ! import net.sf.hibernate.engine.SessionFactoryImplementor; import net.sf.hibernate.util.ReflectHelper; --- 22,26 ---- import net.sf.hibernate.PersistentEnum; import net.sf.hibernate.UserType; ! import net.sf.hibernate.engine.SessionImplementor; import net.sf.hibernate.util.ReflectHelper; *************** *** 194,202 **** * the dirty fields or <tt>null</tt> if no fields are dirty. */ ! public static int[] findDirty(Type[] types, Object[] x, Object[] y, boolean[] check, Object owner, SessionFactoryImplementor factory) throws HibernateException { int[] results = null; int count = 0; for (int i=0; i<types.length; i++) { ! if ( check[i] && types[i].isDirty( x[i], y[i], owner, factory ) ) { if (results==null) results = new int[ types.length ]; results[count++]=i; --- 194,202 ---- * the dirty fields or <tt>null</tt> if no fields are dirty. */ ! public static int[] findDirty(Type[] types, Object[] x, Object[] y, boolean[] check, SessionImplementor session) throws HibernateException { int[] results = null; int count = 0; for (int i=0; i<types.length; i++) { ! if ( check[i] && types[i].isDirty( x[i], y[i], session ) ) { if (results==null) results = new int[ types.length ]; results[count++]=i; |
From: <one...@us...> - 2003-02-02 04:19:55
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/impl In directory sc8-pr-cvs1:/tmp/cvs-serv29352/sf/hibernate/impl Modified Files: ScheduledCollectionAction.java ScheduledCollectionRecreate.java ScheduledCollectionRemove.java ScheduledCollectionUpdate.java ScheduledDeletion.java ScheduledEntityAction.java ScheduledInsertion.java ScheduledUpdate.java SessionImpl.java Log Message: smarter dirty-checking for EntityType Index: ScheduledCollectionAction.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/impl/ScheduledCollectionAction.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ScheduledCollectionAction.java 5 Jan 2003 02:11:21 -0000 1.4 --- ScheduledCollectionAction.java 2 Feb 2003 04:19:51 -0000 1.5 *************** *** 5,10 **** import net.sf.hibernate.cache.CacheException; ! import net.sf.hibernate.collection.*; ! import net.sf.hibernate.engine.*; import net.sf.hibernate.impl.SessionImpl.Executable; --- 5,10 ---- import net.sf.hibernate.cache.CacheException; ! import net.sf.hibernate.collection.CollectionPersister; ! import net.sf.hibernate.engine.SessionImplementor; import net.sf.hibernate.impl.SessionImpl.Executable; Index: ScheduledCollectionRecreate.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/impl/ScheduledCollectionRecreate.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ScheduledCollectionRecreate.java 5 Jan 2003 02:11:21 -0000 1.4 --- ScheduledCollectionRecreate.java 2 Feb 2003 04:19:51 -0000 1.5 *************** *** 4,11 **** import java.io.Serializable; import java.sql.SQLException; ! import net.sf.hibernate.*; ! import net.sf.hibernate.collection.*; import net.sf.hibernate.collection.PersistentCollection; ! import net.sf.hibernate.engine.*; final class ScheduledCollectionRecreate extends ScheduledCollectionAction implements SessionImpl.Executable { --- 4,12 ---- import java.io.Serializable; import java.sql.SQLException; ! ! import net.sf.hibernate.HibernateException; ! import net.sf.hibernate.collection.CollectionPersister; import net.sf.hibernate.collection.PersistentCollection; ! import net.sf.hibernate.engine.SessionImplementor; final class ScheduledCollectionRecreate extends ScheduledCollectionAction implements SessionImpl.Executable { Index: ScheduledCollectionRemove.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/impl/ScheduledCollectionRemove.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ScheduledCollectionRemove.java 5 Jan 2003 02:11:21 -0000 1.4 --- ScheduledCollectionRemove.java 2 Feb 2003 04:19:51 -0000 1.5 *************** *** 4,10 **** import java.io.Serializable; import java.sql.SQLException; ! import net.sf.hibernate.*; ! import net.sf.hibernate.collection.*; ! import net.sf.hibernate.engine.*; final class ScheduledCollectionRemove extends ScheduledCollectionAction implements SessionImpl.Executable { --- 4,11 ---- import java.io.Serializable; import java.sql.SQLException; ! ! import net.sf.hibernate.HibernateException; ! import net.sf.hibernate.collection.CollectionPersister; ! import net.sf.hibernate.engine.SessionImplementor; final class ScheduledCollectionRemove extends ScheduledCollectionAction implements SessionImpl.Executable { Index: ScheduledCollectionUpdate.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/impl/ScheduledCollectionUpdate.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ScheduledCollectionUpdate.java 5 Jan 2003 02:11:21 -0000 1.4 --- ScheduledCollectionUpdate.java 2 Feb 2003 04:19:51 -0000 1.5 *************** *** 4,11 **** import java.io.Serializable; import java.sql.SQLException; ! import net.sf.hibernate.*; ! import net.sf.hibernate.collection.*; import net.sf.hibernate.collection.PersistentCollection; ! import net.sf.hibernate.engine.*; final class ScheduledCollectionUpdate extends ScheduledCollectionAction implements SessionImpl.Executable { --- 4,12 ---- import java.io.Serializable; import java.sql.SQLException; ! ! import net.sf.hibernate.HibernateException; ! import net.sf.hibernate.collection.CollectionPersister; import net.sf.hibernate.collection.PersistentCollection; ! import net.sf.hibernate.engine.SessionImplementor; final class ScheduledCollectionUpdate extends ScheduledCollectionAction implements SessionImpl.Executable { Index: ScheduledDeletion.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/impl/ScheduledDeletion.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ScheduledDeletion.java 5 Jan 2003 02:11:21 -0000 1.3 --- ScheduledDeletion.java 2 Feb 2003 04:19:51 -0000 1.4 *************** *** 2,11 **** package net.sf.hibernate.impl; - import net.sf.hibernate.*; - import net.sf.hibernate.cache.CacheException; - import net.sf.hibernate.engine.*; - import net.sf.hibernate.persister.*; - import java.io.Serializable; final class ScheduledDeletion extends ScheduledEntityAction implements SessionImpl.Executable { --- 2,11 ---- package net.sf.hibernate.impl; import java.io.Serializable; + + import net.sf.hibernate.HibernateException; + import net.sf.hibernate.cache.CacheException; + import net.sf.hibernate.engine.SessionImplementor; + import net.sf.hibernate.persister.ClassPersister; final class ScheduledDeletion extends ScheduledEntityAction implements SessionImpl.Executable { Index: ScheduledEntityAction.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/impl/ScheduledEntityAction.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ScheduledEntityAction.java 5 Jan 2003 02:11:21 -0000 1.3 --- ScheduledEntityAction.java 2 Feb 2003 04:19:51 -0000 1.4 *************** *** 4,10 **** import java.io.Serializable; ! import net.sf.hibernate.engine.*; import net.sf.hibernate.impl.SessionImpl.Executable; ! import net.sf.hibernate.persister.*; --- 4,10 ---- import java.io.Serializable; ! import net.sf.hibernate.engine.SessionImplementor; import net.sf.hibernate.impl.SessionImpl.Executable; ! import net.sf.hibernate.persister.ClassPersister; Index: ScheduledInsertion.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/impl/ScheduledInsertion.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ScheduledInsertion.java 5 Jan 2003 02:11:21 -0000 1.3 --- ScheduledInsertion.java 2 Feb 2003 04:19:51 -0000 1.4 *************** *** 2,11 **** package net.sf.hibernate.impl; - import net.sf.hibernate.HibernateException; - import net.sf.hibernate.engine.*; - import net.sf.hibernate.persister.*; - import java.io.Serializable; import java.sql.SQLException; final class ScheduledInsertion extends ScheduledEntityAction implements SessionImpl.Executable{ --- 2,11 ---- package net.sf.hibernate.impl; import java.io.Serializable; import java.sql.SQLException; + + import net.sf.hibernate.HibernateException; + import net.sf.hibernate.engine.SessionImplementor; + import net.sf.hibernate.persister.ClassPersister; final class ScheduledInsertion extends ScheduledEntityAction implements SessionImpl.Executable{ Index: ScheduledUpdate.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/impl/ScheduledUpdate.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ScheduledUpdate.java 5 Jan 2003 02:11:21 -0000 1.3 --- ScheduledUpdate.java 2 Feb 2003 04:19:51 -0000 1.4 *************** *** 2,12 **** package net.sf.hibernate.impl; - import net.sf.hibernate.HibernateException; - import net.sf.hibernate.cache.CacheException; - import net.sf.hibernate.engine.*; - import net.sf.hibernate.persister.*; - import java.io.Serializable; import java.sql.SQLException; final class ScheduledUpdate extends ScheduledEntityAction implements SessionImpl.Executable { --- 2,12 ---- package net.sf.hibernate.impl; import java.io.Serializable; import java.sql.SQLException; + + import net.sf.hibernate.HibernateException; + import net.sf.hibernate.cache.CacheException; + import net.sf.hibernate.engine.SessionImplementor; + import net.sf.hibernate.persister.ClassPersister; final class ScheduledUpdate extends ScheduledEntityAction implements SessionImpl.Executable { Index: SessionImpl.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/impl/SessionImpl.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** SessionImpl.java 30 Jan 2003 13:02:30 -0000 1.15 --- SessionImpl.java 2 Feb 2003 04:19:51 -0000 1.16 *************** *** 2183,2186 **** --- 2183,2188 ---- else if ( obj.getClass().isArray() ) { + // TODO: we could really re-use the existing ArrayHolder + // for this new array (if it exists) ArrayHolder ah = getArrayHolder(obj); if (ah==null) { |
From: <one...@us...> - 2003-02-02 04:19:54
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/persister In directory sc8-pr-cvs1:/tmp/cvs-serv29352/sf/hibernate/persister Modified Files: AbstractEntityPersister.java Log Message: smarter dirty-checking for EntityType Index: AbstractEntityPersister.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/persister/AbstractEntityPersister.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** AbstractEntityPersister.java 28 Jan 2003 10:22:20 -0000 1.11 --- AbstractEntityPersister.java 2 Feb 2003 04:19:51 -0000 1.12 *************** *** 242,247 **** * Determine if the given field values are dirty */ ! public int[] findDirty(Object[] x, Object[] y, Object owner, SessionImplementor session) throws HibernateException { ! int[] props = TypeFactory.findDirty( propertyTypes, x, y, propertyUpdateability, owner, session.getFactory() ); if ( props==null) { return null; --- 242,247 ---- * Determine if the given field values are dirty */ ! public int[] findDirty(Object[] x, Object[] y, Object object, SessionImplementor session) throws HibernateException { ! int[] props = TypeFactory.findDirty(propertyTypes, x, y, propertyUpdateability, session); if ( props==null) { return null; |
From: <one...@us...> - 2003-02-02 04:19:54
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/collection In directory sc8-pr-cvs1:/tmp/cvs-serv29352/sf/hibernate/collection Modified Files: ArrayHolder.java List.java Map.java Log Message: smarter dirty-checking for EntityType Index: ArrayHolder.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/collection/ArrayHolder.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** ArrayHolder.java 28 Jan 2003 10:22:19 -0000 1.5 --- ArrayHolder.java 2 Feb 2003 04:19:51 -0000 1.6 *************** *** 66,70 **** if ( xlen!= Array.getLength(array) ) return false; for ( int i=0; i<xlen; i++) { ! if ( !elementType.equals( Array.get(snapshot, i), Array.get(array, i) ) ) return false; } return true; --- 66,70 ---- if ( xlen!= Array.getLength(array) ) return false; for ( int i=0; i<xlen; i++) { ! if ( elementType.isDirty( Array.get(snapshot, i), Array.get(array, i), session ) ) return false; } return true; *************** *** 216,220 **** public boolean needsUpdating(Object entry, int i, Type elemType) throws HibernateException { Serializable snapshot = getSnapshot(); ! return i<Array.getLength(snapshot) && !elemType.equals( Array.get(array, i), Array.get(snapshot, i) ); } /** --- 216,220 ---- public boolean needsUpdating(Object entry, int i, Type elemType) throws HibernateException { Serializable snapshot = getSnapshot(); ! return i<Array.getLength(snapshot) && elemType.isDirty( Array.get(array, i), Array.get(snapshot, i), session ); } /** Index: List.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/collection/List.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** List.java 5 Jan 2003 02:11:20 -0000 1.5 --- List.java 2 Feb 2003 04:19:51 -0000 1.6 *************** *** 42,46 **** Iterator sniter = sn.iterator(); while ( iter.hasNext() ) { ! if ( !elementType.equals( iter.next(), sniter.next() ) ) return false; } return true; --- 42,46 ---- Iterator sniter = sn.iterator(); while ( iter.hasNext() ) { ! if ( elementType.isDirty( iter.next(), sniter.next(), session ) ) return false; } return true; *************** *** 353,357 **** public boolean needsUpdating(Object entry, int i, Type elemType) throws HibernateException { final java.util.List sn = (java.util.List) getSnapshot(); ! return i<sn.size() && !elemType.equals( list.get(i), sn.get(i) ); } --- 353,357 ---- public boolean needsUpdating(Object entry, int i, Type elemType) throws HibernateException { final java.util.List sn = (java.util.List) getSnapshot(); ! return i<sn.size() && elemType.isDirty( list.get(i), sn.get(i), session ); } Index: Map.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/collection/Map.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Map.java 5 Jan 2003 02:11:20 -0000 1.5 --- Map.java 2 Feb 2003 04:19:51 -0000 1.6 *************** *** 42,46 **** while ( iter.hasNext() ) { java.util.Map.Entry entry = (java.util.Map.Entry) iter.next(); ! if ( !elementType.equals( entry.getValue(), xmap.get( entry.getKey() ) ) ) return false; } return true; --- 42,46 ---- while ( iter.hasNext() ) { java.util.Map.Entry entry = (java.util.Map.Entry) iter.next(); ! if ( elementType.isDirty( entry.getValue(), xmap.get( entry.getKey() ), session ) ) return false; } return true; *************** *** 359,363 **** final java.util.Map sn = (java.util.Map) getSnapshot(); java.util.Map.Entry e = (java.util.Map.Entry) entry; ! return sn.containsKey( e.getKey() ) && !elemType.equals( e.getValue(), sn.get( e.getKey() ) ); } --- 359,363 ---- final java.util.Map sn = (java.util.Map) getSnapshot(); java.util.Map.Entry e = (java.util.Map.Entry) entry; ! return sn.containsKey( e.getKey() ) && elemType.isDirty( e.getValue(), sn.get( e.getKey() ), session ); } |
From: <one...@us...> - 2003-02-02 00:30:39
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/cache In directory sc8-pr-cvs1:/tmp/cvs-serv19405/net/sf/hibernate/cache Removed Files: HashBelt.java Log Message: removed obsolete file --- HashBelt.java DELETED --- |
From: <one...@us...> - 2003-02-02 00:29:10
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/cfg In directory sc8-pr-cvs1:/tmp/cvs-serv18747/net/sf/hibernate/cfg Modified Files: Binder.java Configuration.java Mappings.java Log Message: added support for configuring caching in .cfg.xml much saner collection role naming improved logging during startup Index: Binder.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/cfg/Binder.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Binder.java 28 Jan 2003 10:22:19 -0000 1.4 --- Binder.java 2 Feb 2003 00:29:06 -0000 1.5 *************** *** 103,106 **** --- 103,108 ---- model.setTable( model.getSuperclass().getTable() ); + + log.info("Mapping subclass: " + model.getName() + " -> " + model.getTable().getName() ); // properties *************** *** 129,132 **** --- 131,136 ---- model.setTable(mytable); + log.info("Mapping joined-subclass: " + model.getName() + " -> " + model.getTable().getName() ); + NodeList subnodes = node.getChildNodes(); for ( int i=0; i<subnodes.getLength(); i++ ) { *************** *** 134,138 **** Value key = new Value(mytable); model.setKey(key); ! bindValue( subnodes.item(i), key, false, Mappings.ROOT_ROLE_NAME ); } } --- 138,142 ---- Value key = new Value(mytable); model.setKey(key); ! bindValue( subnodes.item(i), key, false, model.getName() ); } } *************** *** 165,168 **** --- 169,174 ---- model.setTable(table); + log.info("Mapping class: " + model.getName() + " -> " + model.getTable().getName() ); + //PERSISTER Node persisterNode = atts.getNamedItem("persister"); *************** *** 192,196 **** Node subnode = list.item(i); String name = subnode.getNodeName(); ! String propertyName = Property.getPropertyName(subnode); if ( "id".equals(name) ) { --- 198,202 ---- Node subnode = list.item(i); String name = subnode.getNodeName(); ! String propertyName = getPropertyName(subnode); if ( "id".equals(name) ) { *************** *** 218,222 **** model.setIdentifier(id); if (propertyName==null) { ! bindComponent(subnode, id, null, null, false, mappings); model.setEmbeddedIdentifier( id.isEmbedded() ); model.setIdentifierProperty(null); --- 224,228 ---- model.setIdentifier(id); if (propertyName==null) { ! bindComponent(subnode, id, null, model.getName() + ".id", false, mappings); model.setEmbeddedIdentifier( id.isEmbedded() ); model.setIdentifierProperty(null); *************** *** 224,228 **** else { Class reflectedClass = ReflectHelper.getGetter( model.getPersistentClass(), propertyName ).getReturnType(); ! bindComponent(subnode, id, reflectedClass, null, false, mappings); Property prop = new Property(id); bindProperty(subnode, prop, mappings); --- 230,234 ---- else { Class reflectedClass = ReflectHelper.getGetter( model.getPersistentClass(), propertyName ).getReturnType(); ! bindComponent(subnode, id, reflectedClass, model.getName() + StringHelper.DOT + propertyName, false, mappings); Property prop = new Property(id); bindProperty(subnode, prop, mappings); *************** *** 253,257 **** } else if ( "jcs-cache".equals(name) ) { ! model.setCache( mappings.createJCSCache( subnode.getAttributes().getNamedItem("usage").getNodeValue(), model.getPersistentClass().getName(), --- 259,263 ---- } else if ( "jcs-cache".equals(name) ) { ! model.setCache( Configuration.createJCSCache( subnode.getAttributes().getNamedItem("usage").getNodeValue(), model.getPersistentClass().getName(), *************** *** 334,338 **** public static void bindProperty(Node node, Property model, Mappings mappings) throws MappingException { ! model.setName( Property.getPropertyName(node) ); Type type = model.getValue().getType(); if (type==null) throw new MappingException( "Could not determine a property type for: " + model.getName() ); --- 340,344 ---- public static void bindProperty(Node node, Property model, Mappings mappings) throws MappingException { ! model.setName( getPropertyName(node) ); Type type = model.getValue().getType(); if (type==null) throw new MappingException( "Could not determine a property type for: " + model.getName() ); *************** *** 361,367 **** NamedNodeMap atts = node.getAttributes(); //ROLENAME ! Node roleAtt = atts.getNamedItem("name"); ! String barerole = roleAtt.getNodeValue(); ! model.setRole( prefix + Mappings.ROLE_SEPERATOR + barerole ); Node inverseNode = atts.getNamedItem("inverse"); --- 367,373 ---- NamedNodeMap atts = node.getAttributes(); //ROLENAME ! Node nameAtt = atts.getNamedItem("name"); ! String propertyName = nameAtt.getNodeValue(); ! model.setRole( prefix + StringHelper.DOT + propertyName ); Node inverseNode = atts.getNamedItem("inverse"); *************** *** 398,406 **** } else { ! tableName = barerole; } Node schemaNode = atts.getNamedItem("schema"); String schema = schemaNode==null ? mappings.getSchemaName() : schemaNode.getNodeValue(); model.setTable( mappings.addTable(schema, tableName) ); } //LAZINESS --- 404,414 ---- } else { ! tableName = propertyName; } Node schemaNode = atts.getNamedItem("schema"); String schema = schemaNode==null ? mappings.getSchemaName() : schemaNode.getNodeValue(); model.setTable( mappings.addTable(schema, tableName) ); + + log.info("Mapping collection: " + model.getRole() + " -> " + model.getTable().getName() ); } //LAZINESS *************** *** 600,606 **** } - //component path - path += Mappings.ROLE_SEPERATOR + StringHelper.unqualify(className); - NodeList list = node.getChildNodes(); for ( int i=0; i<list.getLength(); i++ ) { --- 608,611 ---- *************** *** 608,612 **** Node subnode = list.item(i); String name = subnode.getNodeName(); ! String propertyName = Property.getPropertyName(subnode); CollectionType collectType = CollectionType.collectionTypeFromString(name); --- 613,618 ---- Node subnode = list.item(i); String name = subnode.getNodeName(); ! String propertyName = getPropertyName(subnode); ! String subpath = path + StringHelper.DOT + propertyName; CollectionType collectType = CollectionType.collectionTypeFromString(name); *************** *** 638,642 **** new Component( model.getOwner() ) : // a class component new Component( model.getTable() ); // a composite element ! bindComponent(subnode, (Component) value, subreflectedClass, path, isNullable, mappings); } else if ( "parent".equals(name) ) { --- 644,648 ---- new Component( model.getOwner() ) : // a class component new Component( model.getTable() ); // a composite element ! bindComponent(subnode, (Component) value, subreflectedClass, subpath, isNullable, mappings); } else if ( "parent".equals(name) ) { *************** *** 750,754 **** NodeList list = node.getChildNodes(); ! String path = StringHelper.unqualify( model.getName() ); Table table = model.getTable(); for ( int i=0; i<list.getLength(); i++ ) { --- 756,760 ---- NodeList list = node.getChildNodes(); ! String path = model.getName(); Table table = model.getTable(); for ( int i=0; i<list.getLength(); i++ ) { *************** *** 756,760 **** Node subnode = list.item(i); String name = subnode.getNodeName(); ! String propertyName = Property.getPropertyName(subnode); CollectionType collectType = CollectionType.collectionTypeFromString(name); --- 762,766 ---- Node subnode = list.item(i); String name = subnode.getNodeName(); ! String propertyName = getPropertyName(subnode); CollectionType collectType = CollectionType.collectionTypeFromString(name); *************** *** 780,786 **** } else if ( "component".equals(name) || "dynabean".equals(name) ) { Class reflectedClass = ReflectHelper.getGetter( model.getPersistentClass(), propertyName ).getReturnType(); value = new Component(model); ! bindComponent(subnode, (Component) value, reflectedClass, path, true, mappings); } else if ( "subclass".equals(name) ) { --- 786,793 ---- } else if ( "component".equals(name) || "dynabean".equals(name) ) { + String subpath = path + StringHelper.DOT + propertyName; Class reflectedClass = ReflectHelper.getGetter( model.getPersistentClass(), propertyName ).getReturnType(); value = new Component(model); ! bindComponent(subnode, (Component) value, reflectedClass, subpath, true, mappings); } else if ( "subclass".equals(name) ) { *************** *** 862,866 **** else if ( "composite-index".equals(name) ) { Component component = new Component( model.getTable() ); ! bindComponent(subnode, component, null, Mappings.ROOT_ROLE_NAME, model.isOneToMany(), mappings); model.setIndex(component); } --- 869,873 ---- else if ( "composite-index".equals(name) ) { Component component = new Component( model.getTable() ); ! bindComponent(subnode, component, null, model.getRole() + ".index", model.isOneToMany(), mappings); model.setIndex(component); } *************** *** 884,887 **** --- 891,896 ---- ); model.setTable( persistentClass.getTable() ); + + log.info("Mapping collection: " + model.getRole() + " -> " + model.getTable().getName() ); } *************** *** 913,920 **** Component element = new Component( model.getTable() ); model.setElement(element); ! bindComponent(subnode, element, null, Mappings.ROOT_ROLE_NAME, true, mappings); } else if ( "jcs-cache".equals(name) ) { ! model.setCache( mappings.createJCSCache( subnode.getAttributes().getNamedItem("usage").getNodeValue(), model.getRole(), --- 922,929 ---- Component element = new Component( model.getTable() ); model.setElement(element); ! bindComponent(subnode, element, null, model.getRole() + ".element", true, mappings); } else if ( "jcs-cache".equals(name) ) { ! model.setCache( Configuration.createJCSCache( subnode.getAttributes().getNamedItem("usage").getNodeValue(), model.getRole(), *************** *** 951,955 **** RootClass rootclass = new RootClass(); Binder.bindRootClass(n, rootclass, model); - log.debug("Mapping class: " + rootclass.getName() + " -> " + rootclass.getTable().getName() ); model.addClass(rootclass); } --- 960,963 ---- *************** *** 963,966 **** --- 971,981 ---- } + } + + private static String getPropertyName(Node node) { + NamedNodeMap atts = node.getAttributes(); + if (atts==null) return null; + Node propertyNameNode = atts.getNamedItem("name"); + return (propertyNameNode==null) ? null : propertyNameNode.getNodeValue(); } Index: Configuration.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/cfg/Configuration.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** Configuration.java 31 Jan 2003 23:48:35 -0000 1.12 --- Configuration.java 2 Feb 2003 00:29:06 -0000 1.13 *************** *** 22,25 **** --- 22,26 ---- import net.sf.hibernate.util.ArrayHelper; + import net.sf.hibernate.util.ReflectHelper; import net.sf.hibernate.util.StringHelper; import net.sf.hibernate.util.XMLHelper; *************** *** 34,41 **** --- 35,50 ---- import net.sf.hibernate.id.PersistentIdentifierGenerator; import net.sf.hibernate.impl.SessionFactoryImpl; + import net.sf.hibernate.mapping.Collection; import net.sf.hibernate.mapping.ForeignKey; import net.sf.hibernate.mapping.Index; import net.sf.hibernate.mapping.PersistentClass; + import net.sf.hibernate.mapping.RootClass; import net.sf.hibernate.mapping.Table; + import net.sf.hibernate.cache.Cache; + import net.sf.hibernate.cache.CacheConcurrencyStrategy; + import net.sf.hibernate.cache.CacheException; + import net.sf.hibernate.cache.JCSCache; + import net.sf.hibernate.cache.ReadOnlyCache; + import net.sf.hibernate.cache.ReadWriteCache; import net.sf.hibernate.dialect.Dialect; import net.sf.hibernate.engine.Mapping; *************** *** 105,108 **** --- 114,126 ---- /** + * Get the mapping for a particular collection role + * @param role a collection role + * @return Collection + */ + public Collection getCollectionMapping(String role) { + return (Collection) collections.get(role); + } + + /** * Read mappings from a particular XML file * @param xmlFile a path to a file *************** *** 652,657 **** for ( int j=0; j<mapElements.getLength(); j++ ) { Node mapElement = mapElements.item(j); ! if ( mapElement.getNodeName().equals("mapping") ) { ! NamedNodeMap atts = mapElement.getAttributes(); Node rsrc = atts.getNamedItem("resource"); Node file = atts.getNamedItem("file"); --- 670,675 ---- for ( int j=0; j<mapElements.getLength(); j++ ) { Node mapElement = mapElements.item(j); ! NamedNodeMap atts = mapElement.getAttributes(); ! if ( "mapping".equals( mapElement.getNodeName() ) ) { Node rsrc = atts.getNamedItem("resource"); Node file = atts.getNamedItem("file"); *************** *** 671,679 **** } else { ! if (file==null) throw new HibernateException("<mapping> element in configuration specifies no attributes"); log.debug(name + "<-" + file); addFile( file.getNodeValue() ); } } } --- 689,726 ---- } else { ! if (file==null) throw new MappingException("<mapping> element in configuration specifies no attributes"); log.debug(name + "<-" + file); addFile( file.getNodeValue() ); } } + else if ( "jcs-class-cache".equals( mapElement.getNodeName() ) ) { + String className = atts.getNamedItem("class").getNodeValue(); + final Class clazz; + try { + clazz = ReflectHelper.classForName(className); + } + catch (ClassNotFoundException cnfe) { + throw new MappingException("Could not find class: " + className, cnfe); + } + RootClass pc; + try { + pc = (RootClass) getClassMapping(clazz); + } + catch (ClassCastException cce) { + throw new MappingException("You may only specify a cache for root <class> mappings"); + } + Node regionNode = atts.getNamedItem("region"); + String region = className; + if (regionNode!=null) region = regionNode.getNodeValue(); + pc.setCache( createJCSCache( atts.getNamedItem("usage").getNodeValue(), region, pc ) ); + } + else if ( "jcs-ccollection-cache".equals( mapElement.getNodeName() ) ) { + String role = atts.getNamedItem("collection").getNodeValue(); + Collection c = (Collection) getCollectionMapping(role); + Node regionNode = atts.getNamedItem("region"); + String region = role; + if (regionNode!=null) region = regionNode.getNodeValue(); + c.setCache( createJCSCache( atts.getNamedItem("usage").getNodeValue(), region, c.getOwner() ) ); + } } *************** *** 683,686 **** --- 730,764 ---- return this; + } + + static CacheConcurrencyStrategy createJCSCache(String usage, String name, PersistentClass owner) throws MappingException { + + log.info("creating JCS cache region: " + name + ", usage: " + usage); + + final Cache jcs; + try { + jcs = new JCSCache(); + } + catch (NoClassDefFoundError ncf) { + log.warn( "Could not instantiate cache - probably the JCS jar is missing", ncf ); + // continue with no cache + return null; + } + try { + jcs.setRegion(name); + } + catch (CacheException ce) { + throw new MappingException("Could not instantiate JCS",ce); + } + if ( usage.equals("read-only") ) { + if ( owner.isMutable() ) log.warn( "read-only cache configured for mutable: " + name ); + return new ReadOnlyCache(jcs); + } + else if ( usage.equals("read-write") ) { + return new ReadWriteCache(jcs); + } + else { + throw new MappingException("jcs-cache usage attribute should be read-write or read-only"); + } } Index: Mappings.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/cfg/Mappings.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Mappings.java 27 Jan 2003 12:39:34 -0000 1.2 --- Mappings.java 2 Feb 2003 00:29:06 -0000 1.3 *************** *** 9,22 **** import net.sf.hibernate.MappingException; - import net.sf.hibernate.cache.Cache; - import net.sf.hibernate.cache.CacheConcurrencyStrategy; - import net.sf.hibernate.cache.CacheException; - import net.sf.hibernate.cache.JCSCache; - import net.sf.hibernate.cache.ReadOnlyCache; - import net.sf.hibernate.cache.ReadWriteCache; import net.sf.hibernate.mapping.Collection; import net.sf.hibernate.mapping.PersistentClass; import net.sf.hibernate.mapping.Table; - import net.sf.hibernate.util.StringHelper; /** --- 9,15 ---- *************** *** 27,33 **** public class Mappings { - public static final String ROOT_ROLE_NAME = StringHelper.EMPTY_STRING; - public static final char ROLE_SEPERATOR = '/'; - private static final Log log = LogFactory.getLog(Mappings.class); --- 20,23 ---- *************** *** 89,120 **** public String getDefaultCascade() { return defaultCascade; - } - - public CacheConcurrencyStrategy createJCSCache(String usage, String name, PersistentClass owner) throws MappingException { - final Cache jcs; - try { - jcs = new JCSCache(); - } - catch (NoClassDefFoundError ncf) { - log.warn( "Could not instantiate cache - probably the JCS jar is missing", ncf ); - // continue with no cache - return null; - } - try { - jcs.setClass(name); - } - catch (CacheException ce) { - throw new MappingException("Could not instantiate JCS",ce); - } - if ( usage.equals("read-only") ) { - if ( owner.isMutable() ) log.warn( "read-only cache configured for mutable: " + name ); - return new ReadOnlyCache(jcs); - } - else if ( usage.equals("read-write") ) { - return new ReadWriteCache(jcs); - } - else { - throw new MappingException("jcs-cache usage attribute should be read-write or read-only"); - } } --- 79,82 ---- |
From: <one...@us...> - 2003-02-02 00:29:10
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/test In directory sc8-pr-cvs1:/tmp/cvs-serv18747/net/sf/hibernate/test Modified Files: Baz.hbm.xml FooBar.hbm.xml Log Message: added support for configuring caching in .cfg.xml much saner collection role naming improved logging during startup Index: Baz.hbm.xml =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/test/Baz.hbm.xml,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** Baz.hbm.xml 1 Feb 2003 10:42:29 -0000 1.8 --- Baz.hbm.xml 2 Feb 2003 00:29:06 -0000 1.9 *************** *** 109,113 **** <bag name="fooBag" lazy="true" table="baz_foo" cascade="all"> <key column="baz" /> ! <many-to-many class="net.sf.hibernate.test.Foo" column="foo" length="36" outer-join="true"/> </bag> --- 109,113 ---- <bag name="fooBag" lazy="true" table="baz_foo" cascade="all"> <key column="baz" /> ! <many-to-many class="net.sf.hibernate.test.Foo" column="foo" outer-join="true"/> </bag> Index: FooBar.hbm.xml =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/test/FooBar.hbm.xml,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** FooBar.hbm.xml 25 Jan 2003 00:13:56 -0000 1.5 --- FooBar.hbm.xml 2 Feb 2003 00:29:06 -0000 1.6 *************** *** 11,15 **** dynamic-update="true"> ! <!--<jcs-cache usage="read-write"/>--> <id name="key" type="string"> --- 11,15 ---- dynamic-update="true"> ! <jcs-cache usage="read-write"/> <id name="key" type="string"> *************** *** 76,80 **** <property name="count" column="subcount"/> <property name="name" column="subname"/> ! <array name="ImportantDates" table="foo_times"> <key column="foo_id"/> <index column="i"/> --- 76,80 ---- <property name="count" column="subcount"/> <property name="name" column="subname"/> ! <array name="importantDates" table="foo_times"> <key column="foo_id"/> <index column="i"/> |
From: <one...@us...> - 2003-02-02 00:29:09
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/cache In directory sc8-pr-cvs1:/tmp/cvs-serv18747/net/sf/hibernate/cache Modified Files: Cache.java CacheTest.java JCSCache.java Log Message: added support for configuring caching in .cfg.xml much saner collection role naming improved logging during startup Index: Cache.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/cache/Cache.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Cache.java 5 Jan 2003 02:11:20 -0000 1.3 --- Cache.java 2 Feb 2003 00:29:06 -0000 1.4 *************** *** 28,36 **** public void setTimeout(int timeout); /** ! * Set the persistent class to be cached ! * @param clazz * @throws CacheException */ ! public void setClass(String clazz) throws CacheException; } --- 28,36 ---- public void setTimeout(int timeout); /** ! * Set the cache region name ! * @param regionName * @throws CacheException */ ! public void setRegion(String regionName) throws CacheException; } Index: CacheTest.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/cache/CacheTest.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** CacheTest.java 27 Jan 2003 13:20:16 -0000 1.4 --- CacheTest.java 2 Feb 2003 00:29:06 -0000 1.5 *************** *** 12,16 **** public void testCaches() throws Exception { doTestCache( new JCSCache() ); - doTestCache( new HashBelt() ); } --- 12,15 ---- *************** *** 25,29 **** Thread.sleep(15); ! cache.setClass( String.class.getName() ); cache.setTimeout(1000); CacheConcurrencyStrategy ccs = new ReadWriteCache(cache); --- 24,28 ---- Thread.sleep(15); ! cache.setRegion( String.class.getName() ); cache.setTimeout(1000); CacheConcurrencyStrategy ccs = new ReadWriteCache(cache); *************** *** 125,135 **** assertTrue( ccs.get("foo", longLongAfter).equals("baz") ); - - if ( cache instanceof HashBelt ) { - Thread.sleep(2000); - assertTrue( ccs.get("foo", longLongAfter)==null ); } - - } } --- 124,128 ---- Index: JCSCache.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/cache/JCSCache.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** JCSCache.java 5 Jan 2003 02:11:20 -0000 1.3 --- JCSCache.java 2 Feb 2003 00:29:06 -0000 1.4 *************** *** 17,24 **** public JCSCache() {} ! public void setClass(String clazz) throws CacheException { try { ! region = JCS.getInstance(clazz); } catch (org.apache.jcs.access.exception.CacheException e) { --- 17,24 ---- public JCSCache() {} ! public void setRegion(String regionName) throws CacheException { try { ! region = JCS.getInstance(regionName); } catch (org.apache.jcs.access.exception.CacheException e) { |
From: <one...@us...> - 2003-02-02 00:29:09
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/mapping In directory sc8-pr-cvs1:/tmp/cvs-serv18747/net/sf/hibernate/mapping Modified Files: Property.java Log Message: added support for configuring caching in .cfg.xml much saner collection role naming improved logging during startup Index: Property.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/mapping/Property.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** Property.java 28 Jan 2003 10:22:20 -0000 1.8 --- Property.java 2 Feb 2003 00:29:06 -0000 1.9 *************** *** 10,16 **** import net.sf.hibernate.util.Stringable; - import org.w3c.dom.NamedNodeMap; - import org.w3c.dom.Node; - public class Property extends Stringable { --- 10,13 ---- *************** *** 47,58 **** public Value getValue() { return value; - } - - public static String getPropertyName(Node node) { - NamedNodeMap atts = node.getAttributes(); - if (atts==null) return null; - Node propertyName = atts.getNamedItem("name"); - if (propertyName==null) propertyName = atts.getNamedItem("role"); - return (propertyName==null) ? null : propertyName.getNodeValue(); } --- 44,47 ---- |
From: <one...@us...> - 2003-02-02 00:29:09
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate In directory sc8-pr-cvs1:/tmp/cvs-serv18747/net/sf/hibernate Modified Files: hibernate-configuration-2.0.dtd Log Message: added support for configuring caching in .cfg.xml much saner collection role naming improved logging during startup Index: hibernate-configuration-2.0.dtd =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/hibernate-configuration-2.0.dtd,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** hibernate-configuration-2.0.dtd 31 Jan 2003 08:49:49 -0000 1.2 --- hibernate-configuration-2.0.dtd 2 Feb 2003 00:29:06 -0000 1.3 *************** *** 21,24 **** <!ATTLIST mapping jar CDATA #IMPLIED> ! <!ELEMENT session-factory (property*, mapping+)> <!ATTLIST session-factory name CDATA #REQUIRED> <!-- the JNDI name --> --- 21,34 ---- <!ATTLIST mapping jar CDATA #IMPLIED> ! <!ELEMENT jcs-class-cache EMPTY> ! <!ATTLIST jcs-class-cache class CDATA #REQUIRED> ! <!ATTLIST jcs-class-cache region CDATA #IMPLIED> ! <!ATTLIST jcs-class-cache usage CDATA #REQUIRED> ! ! <!ELEMENT jcs-collection-cache EMPTY> ! <!ATTLIST jcs-collection-cache collection CDATA #REQUIRED> ! <!ATTLIST jcs-collection-cache region CDATA #IMPLIED> ! <!ATTLIST jcs-collection-cache usage CDATA #REQUIRED> ! ! <!ELEMENT session-factory (property*, mapping+, (jcs-class-cache|jcs-collection-cache)*)> <!ATTLIST session-factory name CDATA #REQUIRED> <!-- the JNDI name --> |
From: <one...@us...> - 2003-02-01 13:25:12
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/tool/hbm2java In directory sc8-pr-cvs1:/tmp/cvs-serv3780 Modified Files: BasicRenderer.java Log Message: applied Max Andersen's patch for private get/set pair problem Index: BasicRenderer.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/tool/hbm2java/BasicRenderer.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** BasicRenderer.java 24 Jan 2003 13:30:19 -0000 1.6 --- BasicRenderer.java 1 Feb 2003 13:25:08 -0000 1.7 *************** *** 122,126 **** Field field = (Field) fields.next(); ! String fieldScope = getFieldScope(field, "scope-field"); writer.println( " /** " + --- 122,126 ---- Field field = (Field) fields.next(); ! String fieldScope = getFieldScope(field, "scope-field", "private"); writer.println( " /** " + *************** *** 278,282 **** // getter ! String getAccessScope = getFieldScope(field, "scope-get"); String getterType = ( field.getType().toLowerCase().equals("boolean") ) ? " is" : " get"; --- 278,282 ---- // getter ! String getAccessScope = getFieldScope(field, "scope-get", "public"); String getterType = ( field.getType().toLowerCase().equals("boolean") ) ? " is" : " get"; *************** *** 290,294 **** // setter ! String setAccessScope = getFieldScope(field, "scope-set"); writer.println(" " + setAccessScope + " void set" + field.getAsSuffix() + StringHelper.OPEN_PAREN + getTrueTypeName(field, class2classmap) + " " + field.getName() + ") {"); writer.println(" this." + field.getName() + " = " + field.getName() + ";"); --- 290,294 ---- // setter ! String setAccessScope = getFieldScope(field, "scope-set", "public"); writer.println(" " + setAccessScope + " void set" + field.getAsSuffix() + StringHelper.OPEN_PAREN + getTrueTypeName(field, class2classmap) + " " + field.getName() + ") {"); writer.println(" this." + field.getName() + " = " + field.getName() + ";"); *************** *** 349,354 **** } ! public String getFieldScope(Field field, String localScopeName) { ! return ( field.getMeta(localScopeName)==null )? "private" : field.getMetaAsString(localScopeName); } --- 349,355 ---- } ! public String getFieldScope(Field field, String localScopeName, String defaultScope) { ! if (defaultScope==null) defaultScope = "private"; ! return ( field.getMeta(localScopeName)==null )? defaultScope : field.getMetaAsString(localScopeName); } |
From: <one...@us...> - 2003-02-01 12:24:09
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/sql In directory sc8-pr-cvs1:/tmp/cvs-serv30705/src/net/sf/hibernate/sql Added Files: ANSICaseFragment.java DecodeCaseFragment.java Log Message: applied decode support patch by Simon Harris --- NEW FILE: ANSICaseFragment.java --- //$Id: ANSICaseFragment.java,v 1.1 2003/02/01 12:24:07 oneovthafew Exp $ package net.sf.hibernate.sql; import java.util.Iterator; import java.util.Map; import net.sf.hibernate.util.StringHelper; import org.apache.commons.collections.SequencedHashMap; /** * Represents an SQL <tt>case when .... then .... end as ...</tt> */ public class ANSICaseFragment extends CaseFragment { private String returnColumnName; private Map cases = new SequencedHashMap(); public CaseFragment setReturnColumnName(String returnColumnName) { this.returnColumnName = returnColumnName; return this; } public CaseFragment setReturnColumnName(String returnColumnName, String suffix) { return setReturnColumnName( StringHelper.suffix(returnColumnName, suffix) ); } public CaseFragment addWhenColumnNotNull(String alias, String columnName, String value) { cases.put( alias + StringHelper.DOT + columnName + " is not null", value ); return this; } public String toFragmentString() { StringBuffer buf = new StringBuffer( cases.size() * 15 + 10 ); buf.append("case"); Iterator iter = cases.entrySet().iterator(); while ( iter.hasNext() ) { Map.Entry me = (Map.Entry) iter.next(); buf.append(" when ") .append( me.getKey() ) .append(" then ") .append( me.getValue() ); } return buf.append(" end as ") .append(returnColumnName) .toString(); } } --- NEW FILE: DecodeCaseFragment.java --- //$Id: DecodeCaseFragment.java,v 1.1 2003/02/01 12:24:07 oneovthafew Exp $ package net.sf.hibernate.sql; import java.util.Iterator; import java.util.Map; import net.sf.hibernate.util.StringHelper; import org.apache.commons.collections.SequencedHashMap; /** * Represents an SQL <tt>decode( pkvalue, key1, 1, key2, 2, ..., 0)</tt> */ public class DecodeCaseFragment extends CaseFragment { private String returnColumnName; private Map cases = new SequencedHashMap(); public CaseFragment setReturnColumnName(String returnColumnName) { this.returnColumnName = returnColumnName; return this; } public CaseFragment setReturnColumnName(String returnColumnName, String suffix) { return setReturnColumnName( StringHelper.suffix(returnColumnName, suffix) ); } public CaseFragment addWhenColumnNotNull(String alias, String columnName, String value) { cases.put( alias + StringHelper.DOT + columnName, value ); return this; } public String toFragmentString() { StringBuffer buf = new StringBuffer( cases.size() * 15 + 10 ); Iterator iter = cases.entrySet().iterator(); while ( iter.hasNext() ) { Map.Entry me = (Map.Entry) iter.next(); if (me.getValue().equals("0")) { buf.insert(0, me.getKey()); } else { buf.append(", ") .append( me.getKey() ) .append(", ") .append( me.getValue() ); } } return buf.insert(0, "decode (").append(",0 ) as ") .append(returnColumnName) .toString(); } } |
From: <one...@us...> - 2003-02-01 12:24:09
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/dialect In directory sc8-pr-cvs1:/tmp/cvs-serv30705/src/net/sf/hibernate/dialect Added Files: Oracle9Dialect.java Log Message: applied decode support patch by Simon Harris --- NEW FILE: Oracle9Dialect.java --- //$Id: Oracle9Dialect.java,v 1.1 2003/02/01 12:24:06 oneovthafew Exp $ package net.sf.hibernate.dialect; import java.sql.Types; import net.sf.hibernate.cfg.Environment; /** * An SQL dialect for Oracle 9 (uses ANSI-style syntax where possible). */ public class Oracle9Dialect extends Dialect { public Oracle9Dialect() { super(); register( Types.BIT, "NUMBER(1,0)" ); register( Types.BIGINT, "NUMBER(19,0)" ); register( Types.SMALLINT, "NUMBER(5,0)" ); register( Types.TINYINT, "NUMBER(3,0)" ); register( Types.INTEGER, "NUMBER(10,0)" ); register( Types.CHAR, "CHAR(1)" ); register( Types.VARCHAR, "VARCHAR2($l)" ); register( Types.FLOAT, "FLOAT" ); register( Types.DOUBLE, "DOUBLE PRECISION" ); register( Types.DATE, "DATE" ); register( Types.TIME, "DATE" ); register( Types.TIMESTAMP, "DATE" ); register( Types.VARBINARY, "RAW($l)" ); register( Types.NUMERIC, "NUMBER(19, $l)" ); register( Types.BLOB, "BLOB" ); register( Types.CLOB, "CLOB" ); getDefaultProperties().setProperty(Environment.USE_STREAMS_FOR_BINARY, "true"); getDefaultProperties().setProperty(Environment.STATEMENT_BATCH_SIZE, DEFAULT_BATCH_SIZE); getDefaultProperties().setProperty(Environment.OUTER_JOIN, "true"); } public String getAddColumnString() { return "add"; } public String getSequenceNextValString(String sequenceName) { return "select " + sequenceName + ".nextval from dual"; } public String getCreateSequenceString(String sequenceName) { return "create sequence " + sequenceName; } public String getDropSequenceString(String sequenceName) { return "drop sequence " + sequenceName; } public String getCascadeConstraintsString() { return " cascade constraints"; } public boolean supportsForUpdateNowait() { return true; } public boolean supportsSequences() { return true; } } |
From: <one...@us...> - 2003-02-01 12:22:38
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/sql In directory sc8-pr-cvs1:/tmp/cvs-serv29855/src/net/sf/hibernate/sql Modified Files: CaseFragment.java Log Message: applied decode support patch by Simon Harris Index: CaseFragment.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/sql/CaseFragment.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** CaseFragment.java 20 Jan 2003 18:45:18 -0000 1.1 --- CaseFragment.java 1 Feb 2003 12:22:35 -0000 1.2 *************** *** 1,48 **** //$Id$ ! package net.sf.hibernate.sql; ! ! import java.util.Iterator; ! import java.util.Map; ! ! import net.sf.hibernate.util.StringHelper; ! ! import org.apache.commons.collections.SequencedHashMap; ! /** * Represents an SQL <tt>case when .... then .... end as ...</tt> */ ! public class CaseFragment { ! private String returnColumnName; ! private Map cases = new SequencedHashMap(); ! ! public CaseFragment setReturnColumnName(String returnColumnName) { ! this.returnColumnName = returnColumnName; ! return this; ! } ! ! public CaseFragment setReturnColumnName(String returnColumnName, String suffix) { ! return setReturnColumnName( StringHelper.suffix(returnColumnName, suffix) ); ! } ! ! public CaseFragment addWhenColumnNotNull(String alias, String columnName, String value) { ! cases.put( alias + StringHelper.DOT + columnName + " is not null", value ); ! return this; ! } ! ! public String toFragmentString() { ! StringBuffer buf = new StringBuffer( cases.size() * 15 + 10 ); ! buf.append("case"); ! Iterator iter = cases.entrySet().iterator(); ! while ( iter.hasNext() ) { ! Map.Entry me = (Map.Entry) iter.next(); ! buf.append(" when ") ! .append( me.getKey() ) ! .append(" then ") ! .append( me.getValue() ); ! } ! return buf.append(" end as ") ! .append(returnColumnName) ! .toString(); ! ! } ! } --- 1,11 ---- //$Id$ ! package net.sf.hibernate.sql; /** * Represents an SQL <tt>case when .... then .... end as ...</tt> */ ! public abstract class CaseFragment { ! public abstract CaseFragment setReturnColumnName(String returnColumnName); ! public abstract CaseFragment setReturnColumnName(String returnColumnName, String suffix); ! public abstract CaseFragment addWhenColumnNotNull(String alias, String columnName, String value); ! public abstract String toFragmentString(); ! } |
From: <one...@us...> - 2003-02-01 12:22:38
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/dialect In directory sc8-pr-cvs1:/tmp/cvs-serv29855/src/net/sf/hibernate/dialect Modified Files: Dialect.java OracleDialect.java SAPDBDialect.java Log Message: applied decode support patch by Simon Harris Index: Dialect.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/dialect/Dialect.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Dialect.java 26 Jan 2003 01:33:35 -0000 1.6 --- Dialect.java 1 Feb 2003 12:22:35 -0000 1.7 *************** *** 8,12 **** --- 8,14 ---- import net.sf.hibernate.cfg.Environment; + import net.sf.hibernate.sql.ANSICaseFragment; import net.sf.hibernate.sql.ANSIOuterJoinFragment; + import net.sf.hibernate.sql.CaseFragment; import net.sf.hibernate.sql.OuterJoinFragment; import net.sf.hibernate.util.ReflectHelper; *************** *** 318,326 **** /** ! * Get the <tt>OuterJoinGenerator</tt> need to implement outer joins for this dialect. * @return OuterJoinGenerator */ public OuterJoinFragment createOuterJoinFragment() { return new ANSIOuterJoinFragment(); } --- 320,336 ---- /** ! * Create an <tt>OuterJoinGenerator</tt> for this dialect. * @return OuterJoinGenerator */ public OuterJoinFragment createOuterJoinFragment() { return new ANSIOuterJoinFragment(); + } + + /** + * Create a <tt>CaseFragment</tt> for this dialect. + * @return OuterJoinGenerator + */ + public CaseFragment createCaseFragment() { + return new ANSICaseFragment(); } Index: OracleDialect.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/dialect/OracleDialect.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** OracleDialect.java 26 Jan 2003 01:33:35 -0000 1.6 --- OracleDialect.java 1 Feb 2003 12:22:35 -0000 1.7 *************** *** 2,69 **** package net.sf.hibernate.dialect; ! import java.sql.Types; ! ! import net.sf.hibernate.cfg.Environment; import net.sf.hibernate.sql.OracleOuterJoinFragment; import net.sf.hibernate.sql.OuterJoinFragment; /** ! * An SQL dialect for Oracle. */ ! ! public class OracleDialect extends Dialect { public OracleDialect() { super(); ! register( Types.BIT, "NUMBER(1,0)" ); ! register( Types.BIGINT, "NUMBER(19,0)" ); ! register( Types.SMALLINT, "NUMBER(5,0)" ); ! register( Types.TINYINT, "NUMBER(3,0)" ); ! register( Types.INTEGER, "NUMBER(10,0)" ); ! register( Types.CHAR, "CHAR(1)" ); ! register( Types.VARCHAR, "VARCHAR2($l)" ); ! register( Types.FLOAT, "FLOAT" ); ! register( Types.DOUBLE, "DOUBLE PRECISION" ); ! register( Types.DATE, "DATE" ); ! register( Types.TIME, "DATE" ); ! register( Types.TIMESTAMP, "DATE" ); ! register( Types.VARBINARY, "RAW($l)" ); ! register( Types.NUMERIC, "NUMBER(19, $l)" ); ! register( Types.BLOB, "BLOB" ); ! register( Types.CLOB, "CLOB" ); ! ! getDefaultProperties().setProperty(Environment.USE_STREAMS_FOR_BINARY, "true"); ! getDefaultProperties().setProperty(Environment.STATEMENT_BATCH_SIZE, DEFAULT_BATCH_SIZE); ! getDefaultProperties().setProperty(Environment.OUTER_JOIN, "true"); ! } ! ! public String getAddColumnString() { ! return "add"; ! } ! ! public String getSequenceNextValString(String sequenceName) { ! return "select " + sequenceName + ".nextval from dual"; ! } ! public String getCreateSequenceString(String sequenceName) { ! return "create sequence " + sequenceName; ! } ! public String getDropSequenceString(String sequenceName) { ! return "drop sequence " + sequenceName; ! } ! ! public String getCascadeConstraintsString() { ! return " cascade constraints"; ! } ! public OuterJoinFragment createOuterJoinFragment() { return new OracleOuterJoinFragment(); } ! ! public boolean supportsForUpdateNowait() { ! return true; ! } ! ! public boolean supportsSequences() { ! return true; } --- 2,23 ---- package net.sf.hibernate.dialect; ! import net.sf.hibernate.sql.CaseFragment; ! import net.sf.hibernate.sql.DecodeCaseFragment; import net.sf.hibernate.sql.OracleOuterJoinFragment; import net.sf.hibernate.sql.OuterJoinFragment; /** ! * An SQL dialect for Oracle, compatible with Oracle 8. */ ! public class OracleDialect extends Oracle9Dialect { public OracleDialect() { super(); ! } public OuterJoinFragment createOuterJoinFragment() { return new OracleOuterJoinFragment(); } ! public CaseFragment createCaseFragment() { ! return new DecodeCaseFragment(); } Index: SAPDBDialect.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/dialect/SAPDBDialect.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** SAPDBDialect.java 26 Jan 2003 01:33:35 -0000 1.6 --- SAPDBDialect.java 1 Feb 2003 12:22:35 -0000 1.7 *************** *** 6,9 **** --- 6,11 ---- import net.sf.hibernate.cfg.Environment; + import net.sf.hibernate.sql.CaseFragment; + import net.sf.hibernate.sql.DecodeCaseFragment; import net.sf.hibernate.sql.OracleOuterJoinFragment; import net.sf.hibernate.sql.OuterJoinFragment; *************** *** 97,100 **** --- 99,106 ---- public boolean supportsSequences() { return true; + } + + public CaseFragment createCaseFragment() { + return new DecodeCaseFragment(); } |
From: <one...@us...> - 2003-02-01 12:22:38
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/loader In directory sc8-pr-cvs1:/tmp/cvs-serv29855/src/net/sf/hibernate/loader Modified Files: CollectionLoader.java EntityLoader.java OneToManyLoader.java Log Message: applied decode support patch by Simon Harris Index: CollectionLoader.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/loader/CollectionLoader.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** CollectionLoader.java 1 Feb 2003 00:17:17 -0000 1.7 --- CollectionLoader.java 1 Feb 2003 12:22:35 -0000 1.8 *************** *** 42,46 **** int joins=associations.size(); suffixes = new String[joins]; ! for ( int i=0; i<joins; i++ ) suffixes[i] = Integer.toString(i) + '_'; OuterJoinFragment ojf = outerJoins(associations); --- 42,46 ---- int joins=associations.size(); suffixes = new String[joins]; ! for ( int i=0; i<joins; i++ ) suffixes[i] = Integer.toString(i) + StringHelper.UNDERSCORE; OuterJoinFragment ojf = outerJoins(associations); Index: EntityLoader.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/loader/EntityLoader.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** EntityLoader.java 1 Feb 2003 00:17:17 -0000 1.9 --- EntityLoader.java 1 Feb 2003 12:22:35 -0000 1.10 *************** *** 39,43 **** int joins=associations.size(); suffixes = new String[joins+1]; ! for ( int i=0; i<=joins; i++ ) suffixes[i] = (joins==0) ? StringHelper.EMPTY_STRING : Integer.toString(i) + '_'; OuterJoinFragment ojf = outerJoins(associations); --- 39,43 ---- int joins=associations.size(); suffixes = new String[joins+1]; ! for ( int i=0; i<=joins; i++ ) suffixes[i] = (joins==0) ? StringHelper.EMPTY_STRING : Integer.toString(i) + StringHelper.UNDERSCORE; OuterJoinFragment ojf = outerJoins(associations); Index: OneToManyLoader.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/loader/OneToManyLoader.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** OneToManyLoader.java 1 Feb 2003 00:17:17 -0000 1.8 --- OneToManyLoader.java 1 Feb 2003 12:22:35 -0000 1.9 *************** *** 50,54 **** int joins=associations.size(); suffixes = new String[joins+1]; ! for ( int i=0; i<=joins; i++ ) suffixes[i] = (joins==0) ? StringHelper.EMPTY_STRING : Integer.toString(i) + '_'; OuterJoinFragment ojf = outerJoins(associations); --- 50,54 ---- int joins=associations.size(); suffixes = new String[joins+1]; ! for ( int i=0; i<=joins; i++ ) suffixes[i] = (joins==0) ? StringHelper.EMPTY_STRING : Integer.toString(i) + StringHelper.UNDERSCORE; OuterJoinFragment ojf = outerJoins(associations); |
From: <one...@us...> - 2003-02-01 12:22:38
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/persister In directory sc8-pr-cvs1:/tmp/cvs-serv29855/src/net/sf/hibernate/persister Modified Files: NormalizedEntityPersister.java Log Message: applied decode support patch by Simon Harris Index: NormalizedEntityPersister.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/persister/NormalizedEntityPersister.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** NormalizedEntityPersister.java 28 Jan 2003 10:22:20 -0000 1.6 --- NormalizedEntityPersister.java 1 Feb 2003 12:22:35 -0000 1.7 *************** *** 1013,1017 **** if ( hasSubclasses() ) { ! CaseFragment cases = new CaseFragment() .setReturnColumnName( getDiscriminatorColumnName(), suffix ); --- 1013,1017 ---- if ( hasSubclasses() ) { ! CaseFragment cases = dialect.createCaseFragment() .setReturnColumnName( getDiscriminatorColumnName(), suffix ); |
From: <one...@us...> - 2003-02-01 12:22:37
|
Update of /cvsroot/hibernate/Hibernate2/src In directory sc8-pr-cvs1:/tmp/cvs-serv29855/src Modified Files: hibernate.properties Log Message: applied decode support patch by Simon Harris Index: hibernate.properties =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/hibernate.properties,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** hibernate.properties 17 Jan 2003 10:27:41 -0000 1.12 --- hibernate.properties 1 Feb 2003 12:22:34 -0000 1.13 *************** *** 36,54 **** ## DB2 ! hibernate.dialect net.sf.hibernate.dialect.DB2Dialect ! hibernate.connection.driver_class COM.ibm.db2.jdbc.app.DB2Driver ! hibernate.connection.url jdbc:db2:test ! hibernate.connection.username db2 ! hibernate.connection.password db2 ## MySQL ! #hibernate.dialect net.sf.hibernate.dialect.MySQLDialect ! #hibernate.connection.driver_class org.gjt.mm.mysql.Driver ! #hibernate.connection.driver_class com.mysql.jdbc.Driver ! #hibernate.connection.url jdbc:mysql:///test ! #hibernate.connection.username root ! #hibernate.connection.password --- 36,54 ---- ## DB2 ! #hibernate.dialect net.sf.hibernate.dialect.DB2Dialect ! #hibernate.connection.driver_class COM.ibm.db2.jdbc.app.DB2Driver ! #hibernate.connection.url jdbc:db2:test ! #hibernate.connection.username db2 ! #hibernate.connection.password db2 ## MySQL ! hibernate.dialect net.sf.hibernate.dialect.MySQLDialect ! hibernate.connection.driver_class org.gjt.mm.mysql.Driver ! hibernate.connection.driver_class com.mysql.jdbc.Driver ! hibernate.connection.url jdbc:mysql:///test ! hibernate.connection.username root ! hibernate.connection.password *************** *** 110,114 **** #hibernate.connection.driver_class com.jnetdirect.jsql.JSQLDriver ! #hibernate.connection.url jdbc:JSQLConnect://CO3061835-A:1433 ## JTURBO Driver --- 110,114 ---- #hibernate.connection.driver_class com.jnetdirect.jsql.JSQLDriver ! #hibernate.connection.url jdbc:JSQLConnect://WL99LCX27 ## JTURBO Driver *************** *** 161,166 **** ################################# ! hibernate.connection.pool_size 2 ! hibernate.statement_cache.size 100 --- 161,166 ---- ################################# ! hibernate.connection.pool_size 0 ! hibernate.statement_cache.size 0 |
From: <one...@us...> - 2003-02-01 12:22:37
|
Update of /cvsroot/hibernate/Hibernate2 In directory sc8-pr-cvs1:/tmp/cvs-serv29855 Modified Files: indent.py Log Message: applied decode support patch by Simon Harris Index: indent.py =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/indent.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** indent.py 5 Jan 2003 02:11:19 -0000 1.2 --- indent.py 1 Feb 2003 12:22:34 -0000 1.3 *************** *** 18,22 **** tabcount -= begincb ! tabs = '\t' * tabcount if clen>5 and code[0:6] == '} else': --- 18,26 ---- tabcount -= begincb ! extratab = extratab or code[0]=='.' ! ! tabs = '\t' * (tabcount + extratab) ! ! extratab = code[clen-1]==':' or code[clen-1]=='?' if clen>5 and code[0:6] == '} else': |
From: <one...@us...> - 2003-02-01 12:22:37
|
Update of /cvsroot/hibernate/Hibernate2/doc/reference/src In directory sc8-pr-cvs1:/tmp/cvs-serv29855/doc/reference/src Modified Files: session_configuration.xml Log Message: applied decode support patch by Simon Harris Index: session_configuration.xml =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/doc/reference/src/session_configuration.xml,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** session_configuration.xml 1 Feb 2003 00:35:05 -0000 1.4 --- session_configuration.xml 1 Feb 2003 12:22:34 -0000 1.5 *************** *** 423,427 **** <member>MySQL</member> <member><literal>net.sf.hibernate.dialect.MySQLDialect</literal></member> <member>SAP DB</member> <member><literal>net.sf.hibernate.dialect.SAPDBDialect</literal></member> ! <member>Oracle</member> <member><literal>net.sf.hibernate.dialect.OracleDialect</literal></member> <member>Sybase</member> <member><literal>net.sf.hibernate.dialect.SybaseDialect</literal></member> <member>Progress</member> <member><literal>net.sf.hibernate.dialect.ProgressDialect</literal></member> --- 423,428 ---- <member>MySQL</member> <member><literal>net.sf.hibernate.dialect.MySQLDialect</literal></member> <member>SAP DB</member> <member><literal>net.sf.hibernate.dialect.SAPDBDialect</literal></member> ! <member>Oracle (any version)</member> <member><literal>net.sf.hibernate.dialect.OracleDialect</literal></member> ! <member>Oracle 9</member> <member><literal>net.sf.hibernate.dialect.Oracle9Dialect</literal></member> <member>Sybase</member> <member><literal>net.sf.hibernate.dialect.SybaseDialect</literal></member> <member>Progress</member> <member><literal>net.sf.hibernate.dialect.ProgressDialect</literal></member> |
From: <one...@us...> - 2003-02-01 10:42:32
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/test In directory sc8-pr-cvs1:/tmp/cvs-serv578/test Modified Files: Baz.hbm.xml Baz.java FooBarTest.java Log Message: added tests for proxies in collections Index: Baz.hbm.xml =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/test/Baz.hbm.xml,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Baz.hbm.xml 1 Feb 2003 00:17:17 -0000 1.7 --- Baz.hbm.xml 1 Feb 2003 10:42:29 -0000 1.8 *************** *** 107,110 **** --- 107,115 ---- </array> + <bag name="fooBag" lazy="true" table="baz_foo" cascade="all"> + <key column="baz" /> + <many-to-many class="net.sf.hibernate.test.Foo" column="foo" length="36" outer-join="true"/> + </bag> + <array name="stringArray"> <key column="id_" /> Index: Baz.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/test/Baz.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Baz.java 20 Jan 2003 18:45:18 -0000 1.4 --- Baz.java 1 Feb 2003 10:42:29 -0000 1.5 *************** *** 28,31 **** --- 28,32 ---- private Map glarchToFoo; private List fees; + private Collection fooBag; Baz() {} *************** *** 235,238 **** --- 236,247 ---- public void setFees(List fees) { this.fees = fees; + } + + public Collection getFooBag() { + return fooBag; + } + + public void setFooBag(Collection fooBag) { + this.fooBag = fooBag; } Index: FooBarTest.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/test/FooBarTest.java,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** FooBarTest.java 31 Jan 2003 08:49:50 -0000 1.17 --- FooBarTest.java 1 Feb 2003 10:42:29 -0000 1.18 *************** *** 45,48 **** --- 45,49 ---- import net.sf.hibernate.dialect.SAPDBDialect; import net.sf.hibernate.dialect.SybaseDialect; + import net.sf.hibernate.proxy.HibernateProxy; import net.sf.hibernate.type.DateType; import net.sf.hibernate.type.EntityType; *************** *** 2887,2890 **** --- 2888,2935 ---- t.commit(); s.close(); + } + + public void testProxiesInCollections() throws Exception { + Session s = sessions.openSession(); + Baz baz = new Baz(); + Bar bar = new Bar(); + Bar bar2 = new Bar(); + s.save(bar); + Serializable bar2id = s.save(bar2); + baz.setFooArray( new Foo[] { bar, bar2 } ); + HashSet set = new HashSet(); + bar = new Bar(); + s.save(bar); + set.add(bar); + baz.setFooSet(set); + set = new HashSet(); + set.add( new Bar() ); + set.add( new Bar() ); + baz.setCascadingBars(set); + ArrayList list = new ArrayList(); + list.add( new Foo() ); + baz.setFooBag(list); + Serializable id = s.save(baz); + Serializable bid = ( (Bar) baz.getCascadingBars().iterator().next() ).getKey(); + s.flush(); + s.connection().commit(); + + s = sessions.openSession(); + BarProxy barprox = (BarProxy) s.load(Bar.class, bid); + BarProxy bar2prox = (BarProxy) s.load(Bar.class, bar2id); + assertTrue(bar2prox instanceof HibernateProxy); + assertTrue(barprox instanceof HibernateProxy); + baz = (Baz) s.load(Baz.class, id); + Iterator i = baz.getCascadingBars().iterator(); + BarProxy b1 = (BarProxy) i.next(); + BarProxy b2 = (BarProxy) i.next(); + assertTrue( ( b1==barprox && !(b2 instanceof HibernateProxy) ) || ( b2==barprox && !(b1 instanceof HibernateProxy) ) ); //one-to-many + assertTrue( baz.getFooArray()[0] instanceof HibernateProxy ); //many-to-many + assertTrue( baz.getFooArray()[1]==bar2prox ); + assertTrue( !(baz.getFooBag().iterator().next() instanceof HibernateProxy) ); //many-to-many outer-join="true" + assertTrue( !(baz.getFooSet().iterator().next() instanceof HibernateProxy) ); //one-to-many + s.delete("from o in class java.lang.Object"); + s.flush(); + s.connection().commit(); } |
From: <one...@us...> - 2003-02-01 00:35:08
|
Update of /cvsroot/hibernate/Hibernate2/doc/reference/src In directory sc8-pr-cvs1:/tmp/cvs-serv704/reference/src Modified Files: basic_or_mapping.xml session_configuration.xml Log Message: fixed the dialect package naming Index: basic_or_mapping.xml =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/doc/reference/src/basic_or_mapping.xml,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** basic_or_mapping.xml 28 Jan 2003 13:03:00 -0000 1.6 --- basic_or_mapping.xml 1 Feb 2003 00:35:05 -0000 1.7 *************** *** 529,533 **** column="version_column" name="propertyName" ! type="typename"/>/>]]></programlisting> <para> --- 529,533 ---- column="version_column" name="propertyName" ! type="typename"/>]]></programlisting> <para> Index: session_configuration.xml =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/doc/reference/src/session_configuration.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** session_configuration.xml 28 Jan 2003 13:03:01 -0000 1.3 --- session_configuration.xml 1 Feb 2003 00:35:05 -0000 1.4 *************** *** 420,435 **** <simplelist type="horiz" columns="2"> ! <member>DB2</member> <member><literal>net.sf.hibernate.sql.DB2Dialect</literal></member> ! <member>MySQL</member> <member><literal>net.sf.hibernate.sql.MySQLDialect</literal></member> ! <member>SAP DB</member> <member><literal>net.sf.hibernate.sql.SAPDBDialect</literal></member> ! <member>Oracle</member> <member><literal>net.sf.hibernate.sql.OracleDialect</literal></member> ! <member>Sybase</member> <member><literal>net.sf.hibernate.sql.SybaseDialect</literal></member> ! <member>Progress</member> <member><literal>net.sf.hibernate.sql.ProgressDialect</literal></member> ! <member>Mckoi SQL</member> <member><literal>net.sf.hibernate.sql.McKoiDialect</literal></member> ! <member>Interbase</member> <member><literal>net.sf.hibernate.sql.InterbaseDialect</literal></member> ! <member>Pointbase</member> <member><literal>net.sf.hibernate.sql.PointbaseDialect</literal></member> ! <member>PostgreSQL</member> <member><literal>net.sf.hibernate.sql.PostgreSQLDialect</literal></member> ! <member>HypersonicSQL</member> <member><literal>net.sf.hibernate.sql.HSQLDialect</literal></member> ! <member>Microsoft SQL Server</member> <member><literal>net.sf.hibernate.sql.SybaseDialect</literal></member> </simplelist> --- 420,435 ---- <simplelist type="horiz" columns="2"> ! <member>DB2</member> <member><literal>net.sf.hibernate.dialect.DB2Dialect</literal></member> ! <member>MySQL</member> <member><literal>net.sf.hibernate.dialect.MySQLDialect</literal></member> ! <member>SAP DB</member> <member><literal>net.sf.hibernate.dialect.SAPDBDialect</literal></member> ! <member>Oracle</member> <member><literal>net.sf.hibernate.dialect.OracleDialect</literal></member> ! <member>Sybase</member> <member><literal>net.sf.hibernate.dialect.SybaseDialect</literal></member> ! <member>Progress</member> <member><literal>net.sf.hibernate.dialect.ProgressDialect</literal></member> ! <member>Mckoi SQL</member> <member><literal>net.sf.hibernate.dialect.McKoiDialect</literal></member> ! <member>Interbase</member> <member><literal>net.sf.hibernate.dialect.InterbaseDialect</literal></member> ! <member>Pointbase</member> <member><literal>net.sf.hibernate.dialect.PointbaseDialect</literal></member> ! <member>PostgreSQL</member> <member><literal>net.sf.hibernate.dialect.PostgreSQLDialect</literal></member> ! <member>HypersonicSQL</member> <member><literal>net.sf.hibernate.dialect.HSQLDialect</literal></member> ! <member>Microsoft SQL Server</member> <member><literal>net.sf.hibernate.dialect.SybaseDialect</literal></member> </simplelist> |
From: <one...@us...> - 2003-02-01 00:33:41
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate In directory sc8-pr-cvs1:/tmp/cvs-serv514 Modified Files: JDBCException.java Log Message: initialize the wrapped exception in the constructor Index: JDBCException.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/JDBCException.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** JDBCException.java 14 Jan 2003 13:43:59 -0000 1.1 --- JDBCException.java 1 Feb 2003 00:33:38 -0000 1.2 *************** *** 33,36 **** --- 33,37 ---- public JDBCException(String string, SQLException root) { super(string, root); + sqle=root; LogFactory.getLog(JDBCExceptionReporter.class).error(string, root); } |
From: <one...@us...> - 2003-02-01 00:17:19
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/test In directory sc8-pr-cvs1:/tmp/cvs-serv28255/sf/hibernate/test Modified Files: Baz.hbm.xml Log Message: fixed a problem outerjoin loading many-to-manys with a repeated column name Index: Baz.hbm.xml =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/test/Baz.hbm.xml,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Baz.hbm.xml 22 Jan 2003 13:09:20 -0000 1.6 --- Baz.hbm.xml 1 Feb 2003 00:17:17 -0000 1.7 *************** *** 76,80 **** <key-property name="count" column="count_"/> </composite-index> ! <many-to-many column="foo_id" class="net.sf.hibernate.test.Foo"/> </map> <map name="glarchToFoo"> --- 76,80 ---- <key-property name="count" column="count_"/> </composite-index> ! <many-to-many column="foo_id" class="net.sf.hibernate.test.Foo" outer-join="true"/> </map> <map name="glarchToFoo"> |
From: <one...@us...> - 2003-02-01 00:17:19
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/loader In directory sc8-pr-cvs1:/tmp/cvs-serv28255/sf/hibernate/loader Modified Files: CollectionLoader.java EntityLoader.java OneToManyLoader.java Log Message: fixed a problem outerjoin loading many-to-manys with a repeated column name Index: CollectionLoader.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/loader/CollectionLoader.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** CollectionLoader.java 20 Jan 2003 12:48:12 -0000 1.6 --- CollectionLoader.java 1 Feb 2003 00:17:17 -0000 1.7 *************** *** 42,51 **** int joins=associations.size(); suffixes = new String[joins]; ! for ( int i=0; i<joins; i++ ) suffixes[i] = (joins==1) ? StringHelper.EMPTY_STRING : Integer.toString(i); OuterJoinFragment ojf = outerJoins(associations); Select select = new Select() .setSelectClause( ! persister.selectClauseFragment(alias) + ( joins==0 ? StringHelper.EMPTY_STRING : ", " + selectString(associations) ) ) .setFromClause( persister.getQualifiedTableName(), alias ) --- 42,52 ---- int joins=associations.size(); suffixes = new String[joins]; ! for ( int i=0; i<joins; i++ ) suffixes[i] = Integer.toString(i) + '_'; OuterJoinFragment ojf = outerJoins(associations); Select select = new Select() .setSelectClause( ! persister.selectClauseFragment(alias) + ! ( joins==0 ? StringHelper.EMPTY_STRING : ", " + selectString(associations) ) ) .setFromClause( persister.getQualifiedTableName(), alias ) Index: EntityLoader.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/loader/EntityLoader.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** EntityLoader.java 24 Jan 2003 13:07:17 -0000 1.8 --- EntityLoader.java 1 Feb 2003 00:17:17 -0000 1.9 *************** *** 39,43 **** int joins=associations.size(); suffixes = new String[joins+1]; ! for ( int i=0; i<=joins; i++ ) suffixes[i] = (joins==0) ? StringHelper.EMPTY_STRING : Integer.toString(i); OuterJoinFragment ojf = outerJoins(associations); --- 39,43 ---- int joins=associations.size(); suffixes = new String[joins+1]; ! for ( int i=0; i<=joins; i++ ) suffixes[i] = (joins==0) ? StringHelper.EMPTY_STRING : Integer.toString(i) + '_'; OuterJoinFragment ojf = outerJoins(associations); Index: OneToManyLoader.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/loader/OneToManyLoader.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** OneToManyLoader.java 24 Jan 2003 13:07:17 -0000 1.7 --- OneToManyLoader.java 1 Feb 2003 00:17:17 -0000 1.8 *************** *** 50,54 **** int joins=associations.size(); suffixes = new String[joins+1]; ! for ( int i=0; i<=joins; i++ ) suffixes[i] = (joins==0) ? StringHelper.EMPTY_STRING : Integer.toString(i); OuterJoinFragment ojf = outerJoins(associations); --- 50,54 ---- int joins=associations.size(); suffixes = new String[joins+1]; ! for ( int i=0; i<=joins; i++ ) suffixes[i] = (joins==0) ? StringHelper.EMPTY_STRING : Integer.toString(i) + '_'; OuterJoinFragment ojf = outerJoins(associations); |