[JBoss-dev] CVS update: jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc JDBCLoadEntityCommand.java JDBCStoreEntityCommand.java JDBCStoreManager.java JDBCUtil.java ReadAheadCache.java SQLUtil.java

2002-02-26 Thread Dain Sundstrom

  User: dsundstrom
  Date: 02/02/26 16:07:59

  Modified:src/main/org/jboss/ejb/plugins/cmp/jdbc
JDBCLoadEntityCommand.java
JDBCStoreEntityCommand.java JDBCStoreManager.java
JDBCUtil.java ReadAheadCache.java SQLUtil.java
  Log:
  Moved extraneous log messages to trace level.
  
  Wrapped log messages with isEnabled checks.
  
  Revision  ChangesPath
  1.17  +7 -3  
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCLoadEntityCommand.java
  
  Index: JDBCLoadEntityCommand.java
  ===
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCLoadEntityCommand.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- JDBCLoadEntityCommand.java16 Feb 2002 10:37:54 -  1.16
  +++ JDBCLoadEntityCommand.java27 Feb 2002 00:07:58 -  1.17
  @@ -40,7 +40,7 @@
* @author a href=mailto:[EMAIL PROTECTED];Justin Forder/a
* @author a href=mailto:[EMAIL PROTECTED];Dirk Zimmermann/a
* @author a href=mailto:[EMAIL PROTECTED];danch (Dan Christopherson)/a
  - * @version $Revision: 1.16 $
  + * @version $Revision: 1.17 $
*/
   public class JDBCLoadEntityCommand {
  private final JDBCStoreManager manager;
  @@ -98,7 +98,9 @@
con = entity.getDataSource().getConnection();

// create the statement
  - log.debug(Executing SQL:  + sql);
  + if(log.isDebugEnabled()) {
  +log.debug(Executing SQL:  + sql);
  + }
ps = con.prepareStatement(sql);

// set the parameters
  @@ -240,7 +242,9 @@
 // get the load fields
 ArrayList loadFields = new ArrayList(entity.getFields().size());
 if(requiredField == null) {
  - log.debug(Default eager-load for entity);
  + if(log.isTraceEnabled()) {
  +log.trace(Default eager-load for entity);
  + }
loadFields.addAll(entity.getEagerLoadFields());
 } else {
loadFields.add(requiredField);
  
  
  
  1.12  +11 -5 
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCStoreEntityCommand.java
  
  Index: JDBCStoreEntityCommand.java
  ===
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCStoreEntityCommand.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- JDBCStoreEntityCommand.java   15 Jan 2002 22:27:34 -  1.11
  +++ JDBCStoreEntityCommand.java   27 Feb 2002 00:07:58 -  1.12
  @@ -29,7 +29,7 @@
* @author a href=mailto:[EMAIL PROTECTED];Joe Shevland/a
* @author a href=mailto:[EMAIL PROTECTED];Justin Forder/a
* @author a href=mailto:[EMAIL PROTECTED];Sebastien Alborini/a
  - * @version $Revision: 1.11 $
  + * @version $Revision: 1.12 $
*/
   public class JDBCStoreEntityCommand {
  private JDBCStoreManager manager;
  @@ -51,8 +51,10 @@
 List dirtyFields = entity.getDirtyFields(ctx);

 if(dirtyFields.isEmpty()) {
  - log.debug(Store command NOT executed. Entity is not dirty: pk= + 
  -   ctx.getId());
  + if(log.isTraceEnabled()) {
  +log.trace(Store command NOT executed. Entity is not dirty: pk= + 
  +  ctx.getId());
  + }
return;
 }
   
  @@ -71,7 +73,9 @@
con = entity.getDataSource().getConnection();

// create the statement
  - log.debug(Executing SQL:  + sql);
  + if(log.isDebugEnabled()) {
  +log.debug(Executing SQL:  + sql);
  + }
ps = con.prepareStatement(sql.toString());

// set the parameters
  @@ -99,7 +103,9 @@
  affected row: rowsAffected= + rowsAffected +
  id= + ctx.getId());
 }
  -  log.debug(Create: Rows affected =  + rowsAffected);
  +  if(log.isDebugEnabled()) {
  + log.debug(Create: Rows affected =  + rowsAffected);
  +  }
   
 // Mark the inserted fields as clean.
 for(Iterator iter = dirtyFields.iterator(); iter.hasNext(); ) {
  
  
  
  1.28  +13 -22
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCStoreManager.java
  
  Index: JDBCStoreManager.java
  ===
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCStoreManager.java,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- JDBCStoreManager.java 16 Feb 2002 10:37:54 -  1.27
  +++ JDBCStoreManager.java 27 Feb 2002 00:07:58 -  1.28
  @@ -31,6 +31,7 @@
   import org.jboss.ejb.EntityPersistenceStore;
   import org.jboss.ejb.EntityEnterpriseContext;
   import 

[JBoss-dev] CVS update: jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc JDBCLoadEntityCommand.java

2002-01-16 Thread Dain Sundstrom

  User: dsundstrom
  Date: 02/01/16 13:07:18

  Modified:src/main/org/jboss/ejb/plugins/cmp/jdbc
JDBCLoadEntityCommand.java
  Log:
  Fixed bug where read ahead strategy was ignored.
  Added support for lazy load groups.
  
  Revision  ChangesPath
  1.15  +23 -8 
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCLoadEntityCommand.java
  
  Index: JDBCLoadEntityCommand.java
  ===
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCLoadEntityCommand.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- JDBCLoadEntityCommand.java2002/01/15 22:33:08 1.14
  +++ JDBCLoadEntityCommand.java2002/01/16 21:07:18 1.15
  @@ -40,7 +40,7 @@
* @author a href=mailto:[EMAIL PROTECTED];Justin Forder/a
* @author a href=mailto:[EMAIL PROTECTED];Dirk Zimmermann/a
* @author a href=mailto:[EMAIL PROTECTED];danch (Dan Christopherson)/a
  - * @version $Revision: 1.14 $
  + * @version $Revision: 1.15 $
*/
   public class JDBCLoadEntityCommand {
  private final JDBCStoreManager manager;
  @@ -237,22 +237,37 @@
JDBCCMPFieldBridge requiredField,
EntityEnterpriseContext ctx) {
   
  -  ArrayList fields = new ArrayList(entity.getEagerLoadFields());
  -  if(requiredField != null  !fields.contains(requiredField)) {
  - fields.add(requiredField);
  +  // get the load fields
  +  ArrayList loadFields = new ArrayList(entity.getFields().size());
  +  if(requiredField == null) {
  + log.debug(Default eager-load for entity);
  + loadFields.addAll(entity.getEagerLoadFields());
  +  } else {
  + loadFields.add(requiredField);
  + for(Iterator groups = entity.getLazyLoadGroups(); groups.hasNext();) {
  +List group = (List)groups.next();
  +if(group.contains(requiredField)) {
  +   for(Iterator fields = group.iterator(); fields.hasNext();) {
  +  JDBCFieldBridge field = (JDBCFieldBridge)fields.next();
  +  if(!loadFields.contains(field)) {
  + loadFields.add(field);
  +  }
  +   }
  +}
  + }
 }
   
 // remove any field that is a member of the primary key
 // or has not timed out or is already loaded
  -  for(Iterator iter=fields.iterator(); iter.hasNext();) {
  - JDBCFieldBridge field = (JDBCFieldBridge)iter.next();
  +  for(Iterator fields = loadFields.iterator(); fields.hasNext();) {
  + JDBCFieldBridge field = (JDBCFieldBridge)fields.next();
if(field.isPrimaryKeyMember() ||
  !field.isReadTimedOut(ctx) ||
  field.isLoaded(ctx)) {
  -iter.remove();
  +fields.remove();
}
 }
 
  -  return fields;
  +  return loadFields;
  }
   }
  
  
  

___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development



[JBoss-dev] CVS update: jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc JDBCLoadEntityCommand.java

2002-01-15 Thread Dain Sundstrom

  User: dsundstrom
  Date: 02/01/15 14:33:08

  Modified:src/main/org/jboss/ejb/plugins/cmp/jdbc
JDBCLoadEntityCommand.java
  Log:
  Added support for  merged CMR field and CMP field interface.
  
  Added support for new ReadAheadCache.
  
  Merged functions from JDBCLoadFieldCommand and JDBCReadAheadCommand.
  
  Revision  ChangesPath
  1.14  +164 -54   
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCLoadEntityCommand.java
  
  Index: JDBCLoadEntityCommand.java
  ===
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCLoadEntityCommand.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- JDBCLoadEntityCommand.java2002/01/05 12:08:51 1.13
  +++ JDBCLoadEntityCommand.java2002/01/15 22:33:08 1.14
  @@ -11,15 +11,20 @@
   import java.sql.PreparedStatement;
   import java.sql.ResultSet;
   import java.util.ArrayList;
  +import java.util.Collections;
  +import java.util.Iterator;
  +import java.util.List;
   import javax.ejb.EJBException;
   import javax.ejb.NoSuchEntityException;
   
   import org.jboss.ejb.EntityEnterpriseContext;
  +import org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCFieldBridge;
   import org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMPFieldBridge;
   import org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCEntityBridge;
   import org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCFunctionMappingMetaData;
   import org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCTypeMappingMetaData;
   import org.jboss.logging.Logger;
  +import org.jboss.util.FinderResults;
   
   /**
* JDBCLoadEntityCommand loads the data for an instance from the table.
  @@ -28,18 +33,19 @@
* helpful for entitys with lots of data.
*
* @author a href=mailto:[EMAIL PROTECTED];Dain Sundstrom/a
  + * @author a href=mailto:[EMAIL PROTECTED];Oleg Nitz/a
* @author a href=mailto:[EMAIL PROTECTED];Rickard Öberg/a
* @author a href=mailto:[EMAIL PROTECTED];Marc Fleury/a
* @author a href=mailto:[EMAIL PROTECTED];Joe Shevland/a
* @author a href=mailto:[EMAIL PROTECTED];Justin Forder/a
* @author a href=mailto:[EMAIL PROTECTED];Dirk Zimmermann/a
* @author a href=mailto:[EMAIL PROTECTED];danch (Dan Christopherson)/a
  - * @version $Revision: 1.13 $
  + * @version $Revision: 1.14 $
*/
   public class JDBCLoadEntityCommand {
  -   private JDBCStoreManager manager;
  -   private JDBCEntityBridge entity;
  -   private Logger log;
  +   private final JDBCStoreManager manager;
  +   private final JDBCEntityBridge entity;
  +   private final Logger log;
   
  public JDBCLoadEntityCommand(JDBCStoreManager manager) {
 this.manager = manager;
  @@ -53,42 +59,37 @@
  }
   
  public void execute(EntityEnterpriseContext ctx) {
  -  // load the instance primary key fields
  +  execute(null, ctx);
  +   }
  +
  +   public void execute(
  + JDBCCMPFieldBridge requiredField, 
  + EntityEnterpriseContext ctx) {
  +
  +  // load the instance primary key fields into the context
 entity.injectPrimaryKeyIntoInstance(ctx, ctx.getId());
  +
  +  // get the read ahead cache
  +  ReadAheadCache readAheadCache = manager.getReadAheadCache();
  +
  +  // load any preloaded fields into the context
  +  readAheadCache.load(ctx);
 
 // determine the fields to load
  -  JDBCCMPFieldBridge[] loadFields = getLoadFields(ctx);
  +  List loadFields = getLoadFields(requiredField, ctx);
   
 // if no there are not load fields return
  -  if(loadFields.length == 0) {
  +  if(loadFields.size() == 0) {
return;
 }
   
  -  // generate the sql
  -  StringBuffer sql = new StringBuffer();
  -  String columnNamesClause = SQLUtil.getColumnNamesClause(loadFields);
  -  String tableName = entity.getTableName();
  -  String whereClause = SQLUtil.getWhereClause(entity.getJDBCPrimaryKeyFields());
  +  // get the finder results associated with this context, if it exists
  +  ReadAheadCache.EntityReadAheadInfo info = 
  + readAheadCache.getEntityReadAheadInfo(ctx.getId());
  +  List loadKeys = info.getLoadKeys();
   
  -  if (entity.getMetaData().hasRowLocking())
  -  {
  - JDBCFunctionMappingMetaData rowLocking = 
manager.getMetaData().getTypeMapping().getRowLockingTemplate();
  - if (rowLocking == null)
  - {
  -throw new IllegalStateException(row-locking is not allowed for this 
type of datastore);
  - }
  - else
  - {
  -String[] args = new String[] {columnNamesClause, tableName, 
whereClause};
  -sql.append(rowLocking.getFunctionSql(args));
  - }
  -  }
  -  else
  -  {
  - sql.append(SELECT ).append(columnNamesClause);
  - sql.append( FROM ).append(tableName);
  - sql.append(