You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by fl...@apache.org on 2003/01/28 22:42:54 UTC

cvs commit: jakarta-ojb/src/java/org/apache/ojb/tools/mapping/reversedb DBCatalog.java DBColumn.java DBFKRelation.java DBMeta.java DBSchema.java DBTable.java

florianbruckner    2003/01/28 13:42:54

  Modified:    src/java/org/apache/ojb/tools/mapping/reversedb
                        DBCatalog.java DBColumn.java DBFKRelation.java
                        DBMeta.java DBSchema.java DBTable.java
  Log:
  update XML generation
  
  Revision  Changes    Path
  1.4       +17 -2     jakarta-ojb/src/java/org/apache/ojb/tools/mapping/reversedb/DBCatalog.java
  
  Index: DBCatalog.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ojb/src/java/org/apache/ojb/tools/mapping/reversedb/DBCatalog.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DBCatalog.java	28 Jan 2003 19:59:14 -0000	1.3
  +++ DBCatalog.java	28 Jan 2003 21:42:53 -0000	1.4
  @@ -139,7 +139,19 @@
         String strSchemaName = rs.getString("TABLE_SCHEM");
         // Fix for IBM Informix JDBC 2.21JC2; Schema is padded with spaces, needs to be trimmed
         strSchemaName = strSchemaName.trim();
  -      this.hmSchemas.put(strSchemaName, new DBSchema(dbMeta, this, strSchemaName));
  +      try
  +      {
  +        if (new org.apache.regexp.RE(this.getDBMeta().getSchemaPattern()).match(strSchemaName))
  +        {
  +          this.hmSchemas.put(strSchemaName, new DBSchema(dbMeta, this, strSchemaName));
  +        }
  +      }
  +      catch (org.apache.regexp.RESyntaxException ex)
  +      {
  +        // This expception should be reported, but this does not fit currently.
  +        ex.printStackTrace();
  +      }
  +      
       }
       // Fix for MySQL: Create an empty schema
       if (count == 0)
  @@ -271,6 +283,9 @@
   
   /***************************** Changelog *****************************
    * // $Log$
  + * // Revision 1.4  2003/01/28 21:42:53  florianbruckner
  + * // update XML generation
  + * //
    * // Revision 1.3  2003/01/28 19:59:14  florianbruckner
    * // some updates to schema reading to make it a bit more compatible
    * //
  
  
  
  1.4       +11 -8     jakarta-ojb/src/java/org/apache/ojb/tools/mapping/reversedb/DBColumn.java
  
  Index: DBColumn.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ojb/src/java/org/apache/ojb/tools/mapping/reversedb/DBColumn.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DBColumn.java	28 Jan 2003 19:59:14 -0000	1.3
  +++ DBColumn.java	28 Jan 2003 21:42:53 -0000	1.4
  @@ -250,16 +250,16 @@
       if (this.isTreeEnabled())
       {
         String strReturn =  
  -          "  <FieldDescriptor id=\"" + this.id + "\">" + System.getProperty("line.separator")
  -       +  "    <field.name>" + this.strJavaFieldName + "</field.name>" + System.getProperty("line.separator")
  -       +  "    <column.name>" + this.strColumnName + "</column.name>" + System.getProperty("line.separator")
  -       +  "    <jdbc_type>" + Utilities.hmJDBCTypeToName.get(new Integer(this.iColumnType)) + "</jdbc_type>" + System.getProperty("line.separator");
  +          "  <field-descriptor id=\"" + this.id + "\"" + System.getProperty("line.separator")
  +       +  "    name=\"" + this.strJavaFieldName + "\"" + System.getProperty("line.separator")
  +       +  "    column=\"" + this.strColumnName + "\"" + System.getProperty("line.separator")
  +       +  "    jdbc-type=\"" + Utilities.hmJDBCTypeToName.get(new Integer(this.iColumnType)) + "\"" + System.getProperty("line.separator");
         if (this.isPrimaryKeyPart())
  -          strReturn += "    <PrimaryKey>true</PrimaryKey>" + System.getProperty("line.separator");
  +          strReturn += "    primarykey=\"true\"" + System.getProperty("line.separator");
         if (this.getAutoIncrement())
             strReturn += "    <autoincrement>true</autoincrement>" + System.getProperty("line.separator");
  -      strReturn += "  </FieldDescriptor>";
  -      return strReturn;
  +      strReturn += "  />";
  +      return strReturn;      
       }
       else return "";
     }  
  @@ -313,6 +313,9 @@
   
   /***************************** Changelog *****************************
   // $Log$
  +// Revision 1.4  2003/01/28 21:42:53  florianbruckner
  +// update XML generation
  +//
   // Revision 1.3  2003/01/28 19:59:14  florianbruckner
   // some updates to schema reading to make it a bit more compatible
   //
  
  
  
  1.3       +31 -20    jakarta-ojb/src/java/org/apache/ojb/tools/mapping/reversedb/DBFKRelation.java
  
  Index: DBFKRelation.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ojb/src/java/org/apache/ojb/tools/mapping/reversedb/DBFKRelation.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- DBFKRelation.java	17 Jun 2002 19:34:33 -0000	1.2
  +++ DBFKRelation.java	28 Jan 2003 21:42:53 -0000	1.3
  @@ -311,34 +311,38 @@
     private String getXMLReference()
     {
       String strReturn = "";
  -    strReturn += "  <ReferenceDescriptor id=\"" + this.id + "\">" + System.getProperty("line.separator");    
  -    strReturn += "    <rdfield.name>" + this.getFieldName() + "</rdfield.name>" + System.getProperty("line.separator");
  -    strReturn += "    <referenced.class>" + this.getPKTable().getFQClassName() + "</referenced.class>" + System.getProperty("line.separator");
  -    strReturn += "    <fk_descriptor_ids>";
  +    strReturn += "  <reference-descriptor" + System.getProperty("line.separator");    
  +    strReturn += "    name=\"" + this.getFieldName() + "\"" + System.getProperty("line.separator");
  +    strReturn += "    class-ref=\"" + this.getPKTable().getFQClassName() + "\"" + System.getProperty("line.separator");
  +    strReturn += "    auto-retrieve=\"" + this.getAutoRetrieve() + "\"" + System.getProperty("line.separator");    
  +    strReturn += "    auto-update=\"" + this.getAutoUpdate() + "\"" + System.getProperty("line.separator");    
  +    strReturn += "    auto-delete=\"" + this.getAutoDelete() + "\">" + System.getProperty("line.separator");
  +
  +    strReturn += "<foreignkey field-id-ref=\"";
       java.util.Iterator it = this.getColumnPairIterator();
  -    while (it.hasNext()) strReturn += ((DBColumn)((Object[])it.next())[1]).getId() + " ";
  -    strReturn += "    </fk_descriptor_ids>" + System.getProperty("line.separator");
  -    strReturn += "    <auto.retrieve>" + this.getAutoRetrieve() + "</auto.retrieve>" + System.getProperty("line.separator");    
  -    strReturn += "    <auto.update>" + this.getAutoUpdate() + "</auto.update>" + System.getProperty("line.separator");    
  -    strReturn += "    <auto.delete>" + this.getAutoDelete() + "</auto.delete>" + System.getProperty("line.separator");        
  -    strReturn += "  </ReferenceDescriptor>" + System.getProperty("line.separator");    
  +    // TODO: dtd dictate one refid
  +    // while (it.hasNext()) strReturn += ((DBColumn)((Object[])it.next())[1]).getId() + " ";
  +    if (it.hasNext()) strReturn += ((DBColumn)((Object[])it.next())[1]).getId() ;
  +    strReturn += "\" />" + System.getProperty("line.separator");
  +
  +    strReturn += "  </reference-descriptor>" + System.getProperty("line.separator");
       return strReturn;
     }
     
     private String getXMLCollection()
     {
       String strReturn = "";
  -    strReturn += "  <CollectionDescriptor id=\"" + this.id + "\">" + System.getProperty("line.separator");    
  -    strReturn += "    <cdfield.name>" + this.getFieldName() + "</cdfield.name>" + System.getProperty("line.separator");    
  -    strReturn += "    <items.class>" + this.getFKTable().getFQClassName() + "</items.class>" + System.getProperty("line.separator");
  -    strReturn += "    <inverse_fk_descriptor_ids>";
  +    strReturn += "  <collection-descriptor" + System.getProperty("line.separator");    
  +    strReturn += "    name=\"" + this.getFieldName() + "\"" + System.getProperty("line.separator");    
  +    strReturn += "    element-class-ref=\"" + this.getFKTable().getFQClassName() + "\"" + System.getProperty("line.separator");
  +    strReturn += "    auto-retrieve=\"" + this.getAutoRetrieve() + "\"" + System.getProperty("line.separator");    
  +    strReturn += "    auto-update=\"" + this.getAutoUpdate() + "\"" + System.getProperty("line.separator");    
  +    strReturn += "    auto-delete=\"" + this.getAutoDelete() + "\">" + System.getProperty("line.separator");    
  +    strReturn += "    <inverse-foreignkey field-id-ref=\"";
       java.util.Iterator it = this.getColumnPairIterator();
       while (it.hasNext()) strReturn += ((DBColumn)((Object[])it.next())[1]).getId() + " ";
  -    strReturn += "    </inverse_fk_descriptor_ids>" + System.getProperty("line.separator");
  -    strReturn += "    <auto.retrieve>" + this.getAutoRetrieve() + "</auto.retrieve>" + System.getProperty("line.separator");    
  -    strReturn += "    <auto.update>" + this.getAutoUpdate() + "</auto.update>" + System.getProperty("line.separator");    
  -    strReturn += "    <auto.delete>" + this.getAutoDelete() + "</auto.delete>" + System.getProperty("line.separator");    
  -    strReturn += "  </CollectionDescriptor>" + System.getProperty("line.separator");
  +    strReturn += "\"    />" + System.getProperty("line.separator");
  +    strReturn += "  </collection-descriptor>" + System.getProperty("line.separator");
       return strReturn;
     }
     
  @@ -408,6 +412,9 @@
   
   /***************************** Changelog *****************************
   // $Log$
  +// Revision 1.3  2003/01/28 21:42:53  florianbruckner
  +// update XML generation
  +//
   // Revision 1.2  2002/06/17 19:34:33  jvanzyl
   // Correcting all the package references.
   // PR:
  
  
  
  1.4       +40 -17    jakarta-ojb/src/java/org/apache/ojb/tools/mapping/reversedb/DBMeta.java
  
  Index: DBMeta.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ojb/src/java/org/apache/ojb/tools/mapping/reversedb/DBMeta.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DBMeta.java	28 Jan 2003 19:59:14 -0000	1.3
  +++ DBMeta.java	28 Jan 2003 21:42:53 -0000	1.4
  @@ -102,6 +102,11 @@
         this(null, null, pDbMeta);
     }
     
  +  public String getSchemaPattern()
  +  {
  +    return this.schemaPattern;
  +  }
  +  
     public boolean isEnabled()
     {
       return this.enabled;
  @@ -193,8 +198,19 @@
       {
           count++;
           String strCatalogName = rs.getString("TABLE_CAT");
  -        DBCatalog aDBCatalog = new DBCatalog(dbMeta, this, strCatalogName);
  -        this.hmCatalogs.put(strCatalogName, aDBCatalog);
  +        try
  +        {
  +          if (new org.apache.regexp.RE(this.catalogPattern).match(strCatalogName))
  +          {
  +            DBCatalog aDBCatalog = new DBCatalog(dbMeta, this, strCatalogName);
  +            this.hmCatalogs.put(strCatalogName, aDBCatalog);
  +          }
  +        }
  +        catch (org.apache.regexp.RESyntaxException ex)
  +        {
  +          // This expception should be reported, but this does not fit currently.
  +          ex.printStackTrace();
  +        }
       }
       rs.close();
       if (count==0)
  @@ -270,25 +286,29 @@
   
     public String getXML()
     {
  -    String strReturn = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + System.getProperty("line.separator");
  -    strReturn += "<!DOCTYPE MappingRepository SYSTEM \"repository.dtd\">" + System.getProperty("line.separator");
  -    strReturn += "<MappingRepository>" + System.getProperty("line.separator");
  -    strReturn += "  <JdbcConnectionDescriptor id =\"default\">" + System.getProperty("line.separator");
  -    strReturn += "    <dbms.name>XXXX</dbms.name>" + System.getProperty("line.separator");
  -    strReturn += "    <driver.name>XXX</driver.name>" + System.getProperty("line.separator");
  -    strReturn += "    <url.protocol>XXX</url.protocol>" + System.getProperty("line.separator");
  -    strReturn += "    <url.subprotocol>XXX</url.subprotocol>" + System.getProperty("line.separator");
  -    strReturn += "    <url.dbalias>XXX</url.dbalias>" + System.getProperty("line.separator");
  -    strReturn += "    <user.name>XXX</user.name>" + System.getProperty("line.separator");
  -    strReturn += "    <user.passwd>XXX</user.passwd>" + System.getProperty("line.separator");
  -    strReturn += "  </JdbcConnectionDescriptor>" + System.getProperty("line.separator");
  -
  +    String strReturn = "";
  +    strReturn = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + System.getProperty("line.separator");
  +    strReturn += "<!DOCTYPE descriptor-repository SYSTEM \"repository.dtd\">" + System.getProperty("line.separator");
  +    strReturn += "<descriptor-repository version=\"0.9.9\">" + System.getProperty("line.separator");
  +    strReturn += "  <jdbc-connection-descriptor" + System.getProperty("line.separator");
  +    strReturn += "    jcd-alias=\"default\"" + System.getProperty("line.separator");
  +    strReturn += "    default-connection=\"true\"" + System.getProperty("line.separator");
  +    strReturn += "    platform=\"XXXX\"" + System.getProperty("line.separator");
  +    strReturn += "    jdbc-level=\"1.0\"" + System.getProperty("line.separator");
  +    strReturn += "    driver=\"XXX\"" + System.getProperty("line.separator");
  +    strReturn += "    protocol=\"XXX\"" + System.getProperty("line.separator");
  +    strReturn += "    subprotocol=\"XXX\"" + System.getProperty("line.separator");
  +    strReturn += "    dbalias=\"XXX\"" + System.getProperty("line.separator");
  +    strReturn += "    username=\"XXX\"" + System.getProperty("line.separator");
  +    strReturn += "    password=\"XXX\">" + System.getProperty("line.separator");
  +    strReturn += "  </jdbc-connection-descriptor>" + System.getProperty("line.separator");
  +    
       Iterator i = this.hmCatalogs.values().iterator();
       while (i.hasNext())
       {
         strReturn += ((DBCatalog)i.next()).getXML() + System.getProperty("line.separator");
       }
  -    return strReturn + "</MappingRepository>";
  +    return strReturn + "</descriptor-repository>";
     }
     
     public void generateJava (java.io.File aFile, String strHeader, String strFooter) throws java.io.IOException, java.io.FileNotFoundException
  @@ -314,6 +334,9 @@
   
   /***************************** Changelog *****************************
   // $Log$
  +// Revision 1.4  2003/01/28 21:42:53  florianbruckner
  +// update XML generation
  +//
   // Revision 1.3  2003/01/28 19:59:14  florianbruckner
   // some updates to schema reading to make it a bit more compatible
   //
  
  
  
  1.4       +6 -2      jakarta-ojb/src/java/org/apache/ojb/tools/mapping/reversedb/DBSchema.java
  
  Index: DBSchema.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ojb/src/java/org/apache/ojb/tools/mapping/reversedb/DBSchema.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DBSchema.java	28 Jan 2003 19:59:14 -0000	1.3
  +++ DBSchema.java	28 Jan 2003 21:42:53 -0000	1.4
  @@ -121,11 +121,12 @@
         String strSchemaName = rs.getString("TABLE_SCHEM");
         String strTableName = rs.getString("TABLE_NAME");
         String strTableType = rs.getString("TABLE_TYPE");
  -      if (
  +      if (   
                (strTableCat == null && this.getDBCatalog().getCatalogName() == null || strTableCat.equals(this.getDBCatalog().getCatalogName()))
              &&(strSchemaName == null && this.getSchemaName() == null || strSchemaName.equals(this.getSchemaName()))
            )
           this.addTable(strTableName, strTableType);
  +      
       }
       rs.close();
       
  @@ -271,6 +272,9 @@
   
   /***************************** Changelog *****************************
   // $Log$
  +// Revision 1.4  2003/01/28 21:42:53  florianbruckner
  +// update XML generation
  +//
   // Revision 1.3  2003/01/28 19:59:14  florianbruckner
   // some updates to schema reading to make it a bit more compatible
   //
  
  
  
  1.4       +9 -12     jakarta-ojb/src/java/org/apache/ojb/tools/mapping/reversedb/DBTable.java
  
  Index: DBTable.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ojb/src/java/org/apache/ojb/tools/mapping/reversedb/DBTable.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DBTable.java	28 Jan 2003 19:59:14 -0000	1.3
  +++ DBTable.java	28 Jan 2003 21:42:53 -0000	1.4
  @@ -91,7 +91,6 @@
       id = IdGeneratorSingleton.getId(this.getClass().getName(), this.getClass().getName());
       aSchema = paSchema;
       dbMeta = pdbMeta;
  -    System.err.println(System.currentTimeMillis() + ": >> New Table " + this.getDBSchema().getDBCatalog().getCatalogName() + ":" + this.getDBSchema().getSchemaName() + ":" + this.getTableName());    
     }
     
     public boolean hasDynamicProxy()
  @@ -487,20 +486,15 @@
       if (this.isTreeEnabled())
       {
         java.util.Iterator it = tmColumns.values().iterator();
  -      int colCount = 0;
  -      while (it.hasNext())
  -      {
  -        if (((DBColumn)it.next()).isTreeEnabled()) colCount++;
  -      }
  -      if (colCount > 0)
  +      if (it.hasNext())     
         {
           // Generate the class descriptor
           strReturn +=
  -          "<ClassDescriptor id=\"" + this.id + "\">" + System.getProperty("line.separator");
  +          "<class-descriptor " + System.getProperty("line.separator");
           strReturn +=
  -          "  <class.name>" + this.getFQClassName() + "</class.name>" + System.getProperty("line.separator");
  +          "  class=\"" + this.getFQClassName() + "\"" + System.getProperty("line.separator");
           strReturn +=
  -          "  <table.name>" + this.getFQTableName() + "</table.name>" + System.getProperty("line.separator");
  +          "  table=\"" + this.getFQTableName() + "\">" + System.getProperty("line.separator");
           if (this.hasDynamicProxy())
             strReturn += "  <class.proxy>dynamic</class.proxy>" + System.getProperty("line.separator");
           if (this.getConversionStrategyClass () != null 
  @@ -527,7 +521,7 @@
           {
             strReturn += ((DBFKRelation)it.next()).getXML() + System.getProperty("line.separator");
           }        
  -        strReturn += "</ClassDescriptor>" + System.getProperty("line.separator");        
  +        strReturn += "</class-descriptor>" + System.getProperty("line.separator");        
         }
       }
       return strReturn;
  @@ -626,6 +620,9 @@
   
   /***************************** Changelog *****************************
   // $Log$
  +// Revision 1.4  2003/01/28 21:42:53  florianbruckner
  +// update XML generation
  +//
   // Revision 1.3  2003/01/28 19:59:14  florianbruckner
   // some updates to schema reading to make it a bit more compatible
   //