docs: public static void writeTraceBeanMetaData(BeanMetaData bmd,
                                                int dtdVersion)
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
          {
              StringBuffer sbuf = new StringBuffer();
  
              sbuf
                              .append(BMD_Type_Str).append(DataDelimiter)
                              .append(BMD_Type).append(DataDelimiter)
                              .append(dtdVersion).append(DataDelimiter)
                              .append(bmd.j2eeName).append(DataDelimiter)
                              .append(bmd.simpleJndiBindingName).append(DataDelimiter);
  
              if (bmd.type == InternalConstants.TYPE_STATELESS_SESSION) {
  
                  sbuf
                                  .append("Stateless")
                                  .append(" Session Bean").append(DataDelimiter);
                  if (bmd.usesBeanManagedTx) {
                      sbuf.append("BMT").append(DataDelimiter);
                  } else {
                      sbuf.append("CMT").append(DataDelimiter);
                  }
                  sbuf.append("N/A").append(DataDelimiter); // dxxxxxx
  
              } else if (bmd.type == InternalConstants.TYPE_STATEFUL_SESSION) {
  
                  sbuf
                                  .append("Stateful")
                                  .append(" Session Bean").append(DataDelimiter);
                  if (bmd.usesBeanManagedTx) {
                      sbuf.append("BMT").append(DataDelimiter);
                  } else {
                      sbuf.append("CMT").append(DataDelimiter);
                  }
                  sbuf.append("N/A").append(DataDelimiter);
  
              } else if (bmd.type == InternalConstants.TYPE_SINGLETON_SESSION) { //F743-508.CodRev
  
                  sbuf
                                  .append("Singleton")
                                  .append(" Session Bean").append(DataDelimiter);
                  if (bmd.usesBeanManagedTx) {
                      sbuf.append("BMT").append(DataDelimiter);
                  } else {
                      sbuf.append("CMT").append(DataDelimiter);
                  }
                  sbuf.append("N/A").append(DataDelimiter);
  
              } else if (bmd.type == InternalConstants.TYPE_BEAN_MANAGED_ENTITY) {
  
                  sbuf
                                  .append("BMP")
                                  .append(" Entity Bean").append(DataDelimiter)
                                  .append("CMT").append(DataDelimiter)
                                  .append("N/A").append(DataDelimiter);
  
              } else if (bmd.type == InternalConstants.TYPE_CONTAINER_MANAGED_ENTITY) {
  
                  sbuf
                                  .append("CMP")
                                  .append(" Entity Bean").append(DataDelimiter)
                                  .append("CMT").append(DataDelimiter);
                  int cmpV = bmd.getCMPVersion();
                  sbuf.append(cmpV).append(".x").append(DataDelimiter);
  
              } else if (bmd.type == InternalConstants.TYPE_MESSAGE_DRIVEN) {
                  sbuf.append("Message Driven Bean").append(DataDelimiter);
                  if (bmd.usesBeanManagedTx) {
                      sbuf.append("BMT").append(DataDelimiter);
                  } else {
                      sbuf.append("CMT").append(DataDelimiter);
                  }
                  sbuf.append("N/A").append(DataDelimiter);
              }
  
              sbuf
                              .append(turnNullClass2EmptyString(bmd.homeInterfaceClass)).append(DataDelimiter)
                              .append(turnNullClass2EmptyString(bmd.remoteInterfaceClass)).append(DataDelimiter)
                              .append(turnNullClass2EmptyString(bmd.remoteImplClass)).append(DataDelimiter)
                              .append(turnNullClass2EmptyString(bmd.homeRemoteImplClass)).append(DataDelimiter)
  
                              .append(turnNullClass2EmptyString(bmd.localHomeInterfaceClass)).append(DataDelimiter)
                              .append(turnNullClass2EmptyString(bmd.localInterfaceClass)).append(DataDelimiter)
                              .append(turnNullClass2EmptyString(bmd.localImplClass)).append(DataDelimiter)
                              .append(turnNullClass2EmptyString(bmd.homeLocalImplClass)).append(DataDelimiter);
  
              sbuf
                              .append(turnNullClass2EmptyString(bmd.homeBeanClass)).append(DataDelimiter)
                              .append(turnNullClass2EmptyString(bmd.enterpriseBeanClass)).append(DataDelimiter)
                              .append(turnNullClass2EmptyString(bmd.enterpriseBeanAbstractClass)).append(DataDelimiter)
  
                              .append(turnNullClass2EmptyString(bmd.pKeyClass)).append(DataDelimiter)
  
                              .append(bmd.minPoolSize).append(DataDelimiter)
                              .append(bmd.maxPoolSize).append(DataDelimiter)
                              .append(bmd.reentrant).append(DataDelimiter)
                              .append(bmd.sessionTimeout).append(DataDelimiter)
                              .append(bmd.isPreFindFlushEnabled).append(DataDelimiter)
                              .append(bmd.optionACommitOption ? "A"
                                              : bmd.optionBCommitOption ? "B"
                                                              : bmd.optionCCommitOption ? "C"
                                                                              : "Unknown").append(DataDelimiter);
  
              writeMethodInfo(sbuf, bmd.methodInfos);
              writeMethodInfo(sbuf, bmd.localMethodInfos);
              writeMethodInfo(sbuf, bmd.homeMethodInfos);
              writeMethodInfo(sbuf, bmd.localHomeMethodInfos);
  
              ResourceRefConfigList resRefList = bmd._resourceRefList;
              int resourcesDefined = resRefList.size();
              sbuf.append(resourcesDefined).append(DataDelimiter);
              for (int i = 0; i < resourcesDefined; ++i)
              {
                  ResourceRefConfig resRef = resRefList.getResourceRefConfig(i);
                  sbuf
                                  .append(turnNullString2EmptyString(resRef.getName())).append(DataDelimiter)
                                  .append(turnNullString2EmptyString(resRef.getDescription())).append(DataDelimiter)
                                  .append(turnNullString2EmptyString(resRef.getJNDIName())).append(DataDelimiter)
                                  .append(turnNullString2EmptyString(resRef.getType())).append(DataDelimiter)
                                  .append(resRef.getIsolationLevel()).append(DataDelimiter)
                                  .append(resRef.getSharingScope()).append(DataDelimiter)
                                  .append(resRef.getAuth()).append(DataDelimiter);
              }
              // d214462 Begins
              // EJB 2.1 - TimedObject           d174057.3
              sbuf.append((dtdVersion >= BeanMetaData.J2EE_EJB_VERSION_2_1 && bmd.isTimedObject)).append(DataDelimiter);
  
              // MDB 2.0/2.1 and greater ActivationSpec/MessageDestination    LI2110-46
              sbuf
                              .append(turnNullString2EmptyString(bmd.ivActivationSpecJndiName)).append(DataDelimiter)
                              .append(turnNullString2EmptyString(bmd.ivMessageDestinationJndiName)).append(DataDelimiter);
  
              writeMethodInfo(sbuf, bmd.timedMethodInfos);
              writeMethodInfo(sbuf, bmd.wsEndpointMethodInfos);
  
              // EJB 2.1 - WebService Endpoint Interface / Wrapper       d174057.3
              sbuf.append(turnNullClass2EmptyString(bmd.webserviceEndpointInterfaceClass)).append(DataDelimiter);
  
              /**** N O T E S ****/
              // All new metadata MUST append to the sbuf to maintain backward compatibility
  
              //          sbuf.append( turnNullClass2EmptyString( bmd.webserviceWrapperClass ) ).append( DataDelimiter )
  
              // d214462 Ends
              Tr.debug(tc, sbuf.toString());
          }
      }