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  Changes    Path
  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.java        16 Feb 2002 10:37:54 -0000      1.16
  +++ JDBCLoadEntityCommand.java        27 Feb 2002 00:07:58 -0000      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 -0000      1.11
  +++ JDBCStoreEntityCommand.java       27 Feb 2002 00:07:58 -0000      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 -0000      1.27
  +++ JDBCStoreManager.java     27 Feb 2002 00:07:58 -0000      1.28
  @@ -31,6 +31,7 @@
   import org.jboss.ejb.EntityPersistenceStore;
   import org.jboss.ejb.EntityEnterpriseContext;
   import org.jboss.ejb.ListCacheKey;
  +import org.jboss.ejb.plugins.cmp.ejbql.Catalog;
   import org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMPFieldBridge;
   import org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMRFieldBridge;
   import org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCEntityBridge;
  @@ -58,7 +59,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Dain Sundstrom</a>
    * @see org.jboss.ejb.EntityPersistenceStore
  - * @version $Revision: 1.27 $
  + * @version $Revision: 1.28 $
    */
   public class JDBCStoreManager implements EntityPersistenceStore {
   
  @@ -103,24 +104,11 @@
      private JDBCPassivateEntityCommand passivateEntityCommand;
   
      // commands
  -//   private JDBCFindByForeignKeyCommand findByForeignKeyCommand;
      private JDBCLoadRelationCommand loadRelationCommand;
      private JDBCDeleteRelationsCommand deleteRelationsCommand;
      private JDBCInsertRelationsCommand insertRelationsCommand;
   
      /**
  -    * A map of data preloaded within some transaction for some entity. This map
  -    * is keyed by Transaction, entityKey and CMP field name
  -    * and the data is Object containing the field value.
  -    */
  -//   private Map preloadedData = new HashMap();
  -
  -   /**
  -    * A set of transactions for which data was preloaded.
  -    */
  -//   private Set transactions = new HashSet();
  -
  -   /**
       * A Transaction manager so that we can link preloaded data to a transaction
       */
      private TransactionManager tm;
  @@ -287,6 +275,14 @@
         // create the bridge between java land and this engine (sql land)
         entityBridge = new JDBCEntityBridge(metaData, this);
   
  +      // add the entity bridge to the catalog
  +      Catalog catalog = (Catalog)getApplicationData("CATALOG");
  +      if(catalog == null) {
  +         catalog = new Catalog();
  +         putApplicationData("CATALOG", catalog);
  +      }
  +      catalog.addEntity(entityBridge);
  +
         // create the read ahead cache
         readAheadCache = new ReadAheadCache(this);
         readAheadCache.create();
  @@ -402,7 +398,9 @@
      public void loadEntity(EntityEnterpriseContext ctx) {
         // is any on the data already in the entity valid
         if(!ctx.isValid()) {
  -         log.debug("RESET PERSISTENCE CONTEXT: id="+ctx.getId());
  +         if(log.isTraceEnabled()) {
  +            log.trace("RESET PERSISTENCE CONTEXT: id="+ctx.getId());
  +         }
            entityBridge.resetPersistenceContext(ctx);
         }
   
  @@ -462,13 +460,6 @@
      //
      // Relationship Commands
      //
  -//   public Collection findByForeignKey(
  -//         Object foreignKey, 
  -//         JDBCCMRFieldBridge cmrField) {
  -//
  -//      return findByForeignKeyCommand.execute(foreignKey, cmrField);
  -//   }
  -
      public Collection loadRelation(JDBCCMRFieldBridge cmrField, Object pk) {
         return loadRelationCommand.execute(cmrField, pk);
      }
  
  
  
  1.9       +9 -9      jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCUtil.java
  
  Index: JDBCUtil.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCUtil.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- JDBCUtil.java     24 Nov 2001 21:39:10 -0000      1.8
  +++ JDBCUtil.java     27 Feb 2002 00:07:59 -0000      1.9
  @@ -43,7 +43,7 @@
    * parameters and loading query results.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Dain Sundstrom</a>
  - * @version $Revision: 1.8 $
  + * @version $Revision: 1.9 $
    */
   public class JDBCUtil
   {
  @@ -132,8 +132,8 @@
       */
      public static void setParameter(Logger log, PreparedStatement ps, int index, int 
jdbcType, Object value) throws SQLException
      {
  -      if(log.isDebugEnabled()) {
  -         log.debug("Set parameter: " +
  +      if(log.isTraceEnabled()) {
  +         log.trace("Set parameter: " +
                  "index=" + index + ", " +
                  "jdbcType=" + getJDBCTypeName(jdbcType) + ", " +
                  "value=" + ((value == null) ? "NULL" : value));
  @@ -193,24 +193,24 @@
         Object[] returnValue = new Object[1];
         if(getNonBinaryResult(rs, index, destination, returnValue))
         {
  -         if(log.isDebugEnabled()) {
  -            log.debug("Get result: index=" + index + 
  +         if(log.isTraceEnabled()) {
  +            log.trace("Get result: index=" + index + 
                     ", javaType=" + destination.getName() + 
                     ", Simple, value=" + returnValue[0]);
            }
            return returnValue[0];
         } else if(getObjectResult(rs, index, destination, returnValue))
         {
  -         if(log.isDebugEnabled()) {
  -            log.debug("Get result: index=" + index + 
  +         if(log.isTraceEnabled()) {
  +            log.trace("Get result: index=" + index + 
                     ", javaType=" + destination.getName() + 
                     ", Object, value=" + returnValue[0]);
            }
            return returnValue[0];
         } else if(getBinaryResult(rs, index, destination, returnValue))
         {
  -         if(log.isDebugEnabled()) {
  -            log.debug("Get result: index=" + index + 
  +         if(log.isTraceEnabled()) {
  +            log.trace("Get result: index=" + index + 
                     ", javaType=" + destination.getName() + 
                     ", Binary, value=" + returnValue[0]);
            }
  
  
  
  1.4       +40 -23    
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/ReadAheadCache.java
  
  Index: ReadAheadCache.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/ReadAheadCache.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ReadAheadCache.java       16 Feb 2002 10:37:54 -0000      1.3
  +++ ReadAheadCache.java       27 Feb 2002 00:07:59 -0000      1.4
  @@ -31,7 +31,7 @@
    * basis. The read ahead data for each entity is stored with a soft reference.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Dain Sundstrom</a>
  - * @version $Revision: 1.3 $
  + * @version $Revision: 1.4 $
    */
   public class ReadAheadCache {
      /**
  @@ -141,7 +141,9 @@
         iter = dereferencedResults.iterator();
         while(iter.hasNext()) {
            Object obj = iter.next();
  -         log.debug("Removing dereferenced finder results: "+obj);
  +         if(log.isTraceEnabled()) {
  +            log.trace("Removing dereferenced finder results: " + obj);
  +         }
            listCache.remove(obj);
         }
      }
  @@ -192,17 +194,21 @@
       * @param ctx the context that will be loaded
       */
      public void load(EntityEnterpriseContext ctx) {
  -      log.debug("load data:" +
  -            " entity="+manager.getEntityBridge().getEntityName()+
  -            " pk="+ctx.getId());
  +      if(log.isTraceEnabled()) {
  +         log.trace("load data:" +
  +               " entity="+manager.getEntityBridge().getEntityName()+
  +               " pk="+ctx.getId());
  +      }
   
         // get the preload data map
         Map preloadDataMap = getPreloadDataMap(ctx.getId(), false);
         if(preloadDataMap == null) {
            // no preloaded data for this entity
  -         log.debug("No preload data found:"+
  -               " entity="+manager.getEntityBridge().getEntityName()+
  -               " pk="+ctx.getId());
  +         if(log.isTraceEnabled()) {
  +            log.trace("No preload data found:"+
  +                  " entity="+manager.getEntityBridge().getEntityName()+
  +                  " pk="+ctx.getId());
  +         }
            return;
         }
   
  @@ -241,10 +247,12 @@
               JDBCCMRFieldBridge cmrField = (JDBCCMRFieldBridge)field;
   
               if(!cmrField.isLoaded(ctx)) {
  -               log.debug("Preloading data:" +
  -                     " entity="+manager.getEntityBridge().getEntityName()+
  -                     " pk="+ctx.getId()+
  -                     " cmrField="+cmrField.getFieldName());
  +               if(log.isTraceEnabled()) {
  +                  log.trace("Preloading data:" +
  +                        " entity="+manager.getEntityBridge().getEntityName()+
  +                        " pk="+ctx.getId()+
  +                        " cmrField="+cmrField.getFieldName());
  +               }
        
                  // set the value
                  cmrField.loadPreloadedValue(ctx, (List)value);
  @@ -257,10 +265,12 @@
                  relatedReadAheadCache.addFinderResult(new FinderResults(
                        (List)value, cmrField.getReadAhead(), null, null));
               } else {
  -               log.debug("CMRField already loaded:" +
  -                     " entity="+manager.getEntityBridge().getEntityName()+
  -                     " pk="+ctx.getId()+
  -                     " cmrField="+cmrField.getFieldName());
  +               if(log.isTraceEnabled()) {
  +                  log.trace("CMRField already loaded:" +
  +                        " entity="+manager.getEntityBridge().getEntityName()+
  +                        " pk="+ctx.getId()+
  +                        " cmrField="+cmrField.getFieldName());
  +               }
               } 
            }
         }
  @@ -285,10 +295,12 @@
            }
         }
   
  -      log.debug("Add preload data:" +
  -            " entity="+manager.getEntityBridge().getEntityName()+
  -            " pk="+entityPrimaryKey+
  -            " field="+field.getFieldName());
  +      if(log.isTraceEnabled()) {
  +         log.trace("Add preload data:" +
  +               " entity="+manager.getEntityBridge().getEntityName()+
  +               " pk="+entityPrimaryKey+
  +               " field="+field.getFieldName());
  +      }
   
         // convert null values to a null value standing object
         if(fieldValue == null) {
  @@ -300,8 +312,10 @@
      }
   
      public synchronized void removeCachedData(Object primaryKey) {
  -      log.debug("Removing cached data for "+primaryKey);
  -      
  +      if(log.isTraceEnabled()) {
  +         log.trace("Removing cached data for "+primaryKey);
  +      }
  +         
         // remove the preloaded data
         manager.removeEntityTxData(new PreloadKey(primaryKey));
   
  @@ -324,7 +338,10 @@
         }
   
         // a reference to the old finder set was not found so remove it
  -      log.debug("Removing dereferenced finder results: "+oldInfo.finderResults);
  +      if(log.isTraceEnabled()) {
  +         log.trace("Removing dereferenced finder results: " + 
  +               oldInfo.finderResults);
  +      }
         listCache.remove(oldInfo.finderResults);
      }
   
  
  
  
  1.7       +167 -1    jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/SQLUtil.java
  
  Index: SQLUtil.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/SQLUtil.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- SQLUtil.java      12 Feb 2002 06:17:15 -0000      1.6
  +++ SQLUtil.java      27 Feb 2002 00:07:59 -0000      1.7
  @@ -12,13 +12,16 @@
   import java.util.Iterator;
   import java.util.List;
   
  +import org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCEntityBridge;
  +import org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMPFieldBridge;
  +import org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMRFieldBridge;
   import org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCFieldBridge;
   
   /**
    * SQLUtil helps with building sql statements.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Dain Sundstrom</a>
  - * @version $Revision: 1.6 $
  + * @version $Revision: 1.7 $
    */
   public class SQLUtil {
      // =======================================================================
  @@ -303,6 +306,162 @@
         return buf.toString();
      }   
   
  +
  +   // =======================================================================
  +   //  Is [Not] Null Clause
  +   //    columnName0 IS [NOT] NULL [AND columnName1 IS [NOT] NULL [...]]
  +   // =======================================================================
  +   
  +   /**
  +    * Returns identifier.columnName0 IS [NOT] NULL 
  +    *    [AND identifier.columnName1 IS [NOT] NULL 
  +    *    [AND identifier.columnName2 IS [NOT] NULL [...]]] 
  +    */
  +   public static String getIsNullClause(
  +         boolean not, List fields, String identifier) {
  +
  +      StringBuffer buf = new StringBuffer();
  +
  +      List types = getJDBCTypes(fields);
  +      for(Iterator iter = types.iterator(); iter.hasNext();) {
  +         JDBCType type = (JDBCType)iter.next();
  +         buf.append(getIsNullClause(not, type, identifier));
  +         if(iter.hasNext()) {
  +            buf.append(" AND ");
  +         }
  +      }
  +      return buf.toString();
  +   }   
  + 
  +   /**
  +    * Returns identifier.columnName0 IS [NOT] NULL 
  +    *    [AND identifier.columnName1 IS [NOT] NULL 
  +    *    [AND identifier.columnName2 IS [NOT] NULL [...]]] 
  +    */
  +   public static String getIsNullClause(
  +         boolean not, JDBCFieldBridge field, String identifier) {
  +
  +      return getIsNullClause(not, field.getJDBCType(), identifier);
  +   }
  +
  +   /**
  +    * Returns identifier.columnName0 IS [NOT] NULL 
  +    *    [AND identifier.columnName1 IS [NOT] NULL 
  +    *    [AND identifier.columnName2 IS [NOT] NULL [...]]] 
  +    */
  +   public static String getIsNullClause(
  +         boolean not, JDBCType type, String identifier) {
  +
  +      if(identifier.length() > 0) {
  +         identifier += ".";
  +      }
  +
  +      String[] columnNames = type.getColumnNames();
  +
  +      StringBuffer buf = new StringBuffer();
  +      for(int i=0; i<columnNames.length; i++) {
  +         if(i!=0) {
  +            buf.append(" AND ");
  +         }
  +         buf.append(identifier).append(columnNames[i]);
  +         buf.append(" IS");
  +         if(not) {
  +            buf.append(" NOT");
  +         }
  +         buf.append(" NULL");
  +      }
  +      return buf.toString();
  +   }   
  +
  +   // =======================================================================
  +   //  Join Clause
  +   //    parent.pkColumnName0=child.fkColumnName0 
  +   //    [AND parent.pkColumnName1=child.fkColumnName1 
  +   //    [AND parent.pkColumnName2=child.fkColumnName2 [...]]] 
  +   // =======================================================================
  +
  +   public static String getJoinClause(
  +         JDBCCMRFieldBridge cmrField,
  +         String parentAlias,
  +         String childAlias) {
  +
  +      StringBuffer buf = new StringBuffer();
  +
  +      JDBCEntityBridge parentEntity = cmrField.getEntity();
  +      JDBCEntityBridge childEntity = 
  +            (JDBCEntityBridge)cmrField.getRelatedEntity();
  +
  +      JDBCCMPFieldBridge parentField;
  +      JDBCCMPFieldBridge childField;
  +      
  +      if(cmrField.hasForeignKey()) {            
  +
  +         // parent has the foreign keys
  +         List parentFkFields = cmrField.getForeignKeyFields();
  +         for(Iterator iter = parentFkFields.iterator(); iter.hasNext(); ) {
  +
  +            parentField = (JDBCCMPFieldBridge)iter.next();
  +            childField = childEntity.getCMPFieldByName(
  +                  parentField.getFieldName());
  +
  +            buf.append(getJoinClause(
  +                     parentField, parentAlias, childField, childAlias));
  +
  +            if(iter.hasNext()) {
  +               buf.append(" AND ");
  +            }
  +         }   
  +      } else {
  +
  +         // child has the foreign keys
  +         List childFkFields = 
  +               cmrField.getRelatedCMRField().getForeignKeyFields();
  +         for(Iterator iter = childFkFields.iterator(); iter.hasNext(); ) {
  +
  +            childField = (JDBCCMPFieldBridge)iter.next();
  +            parentField = parentEntity.getCMPFieldByName(
  +                  childField.getFieldName());
  +
  +            // add the sql
  +            buf.append(SQLUtil.getJoinClause(
  +                  parentField, parentAlias, childField, childAlias));
  +            if(iter.hasNext()) {
  +               buf.append(" AND ");
  +            }
  +         }   
  +      }
  +      return buf.toString();
  +   }
  +
  +   public static String getRelationTableJoinClause(
  +         JDBCCMRFieldBridge cmrField,
  +         String parentAlias,
  +         String relationTableAlias) {
  +
  +      StringBuffer buf = new StringBuffer();
  +
  +      JDBCEntityBridge parentEntity = cmrField.getEntity();
  +      JDBCCMPFieldBridge parentField;
  +      JDBCCMPFieldBridge relationField;
  +      
  +      // parent to relation table join
  +      List parentFields = cmrField.getTableKeyFields();
  +      for(Iterator iter = parentFields.iterator(); iter.hasNext(); ) {
  +         
  +         relationField = (JDBCCMPFieldBridge)iter.next();
  +         parentField = parentEntity.getCMPFieldByName(
  +               relationField.getFieldName());
  +         
  +         buf.append(SQLUtil.getJoinClause(
  +               parentField, parentAlias, relationField, relationTableAlias));
  +         
  +         if(iter.hasNext()) {
  +            buf.append(" AND ");
  +         }
  +      }   
  +      return buf.toString();
  +   }
  +
      /**
       * Returns parent.pkColumnName0=child.fkColumnName0 
       *    [AND parent.pkColumnName1=child.fkColumnName1 
  @@ -376,6 +535,13 @@
         }
         return buf.toString();
      }   
  +
  +   // =======================================================================
  +   //  Self Compare Where Clause
  +   //    fromIdentifier.pkColumnName0=toIdentifier.fkColumnName0 
  +   //    [AND fromIdentifier.pkColumnName1=toIdentifier.fkColumnName1 
  +   //    [AND fromIdentifier.pkColumnName2=toIdentifier.fkColumnName2 [...]]] 
  +   // =======================================================================
   
      public static String getSelfCompareWhereClause(
            List fields, String fromIdentifier, String toIdentifier) {
  
  
  

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

Reply via email to