You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ddlutils-dev@db.apache.org by to...@apache.org on 2006/12/01 05:53:49 UTC

svn commit: r481151 - in /db/ddlutils/trunk/src: java/org/apache/ddlutils/io/DatabaseIO.java java/org/apache/ddlutils/io/LocalEntityResolver.java test/org/apache/ddlutils/io/TestDatabaseIO.java

Author: tomdz
Date: Thu Nov 30 20:53:48 2006
New Revision: 481151

URL: http://svn.apache.org/viewvc?view=rev&rev=481151
Log:
Fix for DDLUTILS-136

Modified:
    db/ddlutils/trunk/src/java/org/apache/ddlutils/io/DatabaseIO.java
    db/ddlutils/trunk/src/java/org/apache/ddlutils/io/LocalEntityResolver.java
    db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestDatabaseIO.java

Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/io/DatabaseIO.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/io/DatabaseIO.java?view=diff&rev=481151&r1=481150&r2=481151
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/io/DatabaseIO.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/io/DatabaseIO.java Thu Nov 30 20:53:48 2006
@@ -132,18 +132,25 @@
      * @param output The target output writer
      * @return The writer
      */
-    protected BeanWriter getWriter(Writer output) throws IntrospectionException, SAXException, IOException
+    protected BeanWriter getWriter(Writer output) throws DdlUtilsException
     {
-        BeanWriter writer = new BeanWriter(output);
-
-        writer.getXMLIntrospector().register(getBetwixtMapping());
-        writer.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(true);
-        writer.getXMLIntrospector().getConfiguration().setWrapCollectionsInElement(false);
-        writer.getXMLIntrospector().getConfiguration().setElementNameMapper(new HyphenatedNameMapper());
-        writer.getBindingConfiguration().setMapIDs(false);
-        writer.enablePrettyPrint();
-
-        return writer;
+        try
+        {
+            BeanWriter writer = new BeanWriter(output);
+    
+            writer.getXMLIntrospector().register(getBetwixtMapping());
+            writer.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(true);
+            writer.getXMLIntrospector().getConfiguration().setWrapCollectionsInElement(false);
+            writer.getXMLIntrospector().getConfiguration().setElementNameMapper(new HyphenatedNameMapper());
+            writer.getBindingConfiguration().setMapIDs(false);
+            writer.enablePrettyPrint();
+    
+            return writer;
+        }
+        catch (Exception ex)
+        {
+            throw new DdlUtilsException(ex);
+        }
     }
 
     /**
@@ -233,6 +240,7 @@
         model.initialize();
         return model;
     }
+
     /**
      * Writes the database model to the specified file.
      * 
@@ -249,7 +257,7 @@
             {
                 writer = new BufferedWriter(new FileWriter(filename));
     
-                getWriter(writer).write(model);
+                write(model, writer);
                 writer.flush();
             }
             finally
@@ -275,14 +283,7 @@
      */
     public void write(Database model, OutputStream output) throws DdlUtilsException
     {
-        try
-        {
-            getWriter(new OutputStreamWriter(output)).write(model);
-        }
-        catch (Exception ex)
-        {
-            throw new DdlUtilsException(ex);
-        }
+        write(model, getWriter(new OutputStreamWriter(output)));
     }
 
     /**
@@ -294,9 +295,21 @@
      */
     public void write(Database model, Writer output) throws DdlUtilsException
     {
+        write(model, getWriter(output));
+    }
+
+    /**
+     * Internal method that writes the database model using the given bean writer.
+     * 
+     * @param model  The database model
+     * @param writer The bean writer
+     */
+    private void write(Database model, BeanWriter writer) throws DdlUtilsException
+    {
         try
         {
-            getWriter(output).write(model);
+            writer.writeXmlDeclaration("<?xml version=\"1.0\"?>\n<!DOCTYPE database SYSTEM \"" + LocalEntityResolver.DTD_PREFIX + "\">");
+            writer.write(model);
         }
         catch (Exception ex)
         {

Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/io/LocalEntityResolver.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/io/LocalEntityResolver.java?view=diff&rev=481151&r1=481150&r2=481151
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/io/LocalEntityResolver.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/io/LocalEntityResolver.java Thu Nov 30 20:53:48 2006
@@ -36,7 +36,7 @@
 public class LocalEntityResolver implements EntityResolver
 {
     /** The default DTD. */
-    private static final String DTD_PREFIX = "http://db.apache.org/torque/dtd/database";
+    public static final String DTD_PREFIX = "http://db.apache.org/torque/dtd/database";
 
     /**
      * {@inheritDoc}

Modified: db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestDatabaseIO.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestDatabaseIO.java?view=diff&rev=481151&r1=481150&r2=481151
==============================================================================
--- db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestDatabaseIO.java (original)
+++ db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestDatabaseIO.java Thu Nov 30 20:53:48 2006
@@ -130,6 +130,7 @@
                      column.getDescription());
         assertEquals("javaId", column.getJavaName());
         assertEquals(
+            "<?xml version=\"1.0\"?>\n<!DOCTYPE database SYSTEM \"" + LocalEntityResolver.DTD_PREFIX + "\">\n" +
             "  <database name=\"test\">\n" +
             "    <table name=\"SomeTable\" description=\"Some table\">\n" +
             "      <column name=\"ID\" primaryKey=\"true\" required=\"true\" type=\"INTEGER\" autoIncrement=\"false\" description=\"The primary key\" javaName=\"javaId\"/>\n" +
@@ -254,6 +255,7 @@
                      ref.getForeignColumnName());
 
         assertEquals(
+            "<?xml version=\"1.0\"?>\n<!DOCTYPE database SYSTEM \"" + LocalEntityResolver.DTD_PREFIX + "\">\n" +
             "  <database name=\"test\">\n" +
             "    <table name=\"SomeTable\" description=\"Some table\">\n" +
             "      <column name=\"ID\" primaryKey=\"true\" required=\"true\" type=\"VARCHAR\" size=\"16\" autoIncrement=\"false\" description=\"The primary key\"/>\n" +
@@ -392,6 +394,7 @@
         assertNull(indexColumn.getSize());
 
         assertEquals(
+            "<?xml version=\"1.0\"?>\n<!DOCTYPE database SYSTEM \"" + LocalEntityResolver.DTD_PREFIX + "\">\n" +
             "  <database name=\"test\">\n" +
             "    <table name=\"TableWidthIndex\">\n" +
             "      <column name=\"id\" primaryKey=\"true\" required=\"true\" type=\"DOUBLE\" autoIncrement=\"false\"/>\n" +
@@ -510,6 +513,7 @@
         assertNull(indexColumn.getSize());
 
         assertEquals(
+            "<?xml version=\"1.0\"?>\n<!DOCTYPE database SYSTEM \"" + LocalEntityResolver.DTD_PREFIX + "\">\n" +
             "  <database name=\"test\">\n" +
             "    <table name=\"TableWidthIndices\">\n" +
             "      <column name=\"id\" primaryKey=\"false\" required=\"true\" type=\"SMALLINT\" autoIncrement=\"true\"/>\n" +
@@ -914,6 +918,7 @@
         assertNull(indexColumn.getSize());
 
         assertEquals(
+            "<?xml version=\"1.0\"?>\n<!DOCTYPE database SYSTEM \"" + LocalEntityResolver.DTD_PREFIX + "\">\n" +
             "  <database name=\"test\">\n" +
             "    <table name=\"A\" description=\"Table A\">\n" +
             "      <column name=\"id\" primaryKey=\"true\" required=\"true\" type=\"INTEGER\" autoIncrement=\"true\" description=\"The primary key of table A\"/>\n" +
@@ -1333,6 +1338,7 @@
         assertNull(column.getDescription());
 
         assertEquals(
+            "<?xml version=\"1.0\"?>\n<!DOCTYPE database SYSTEM \"" + LocalEntityResolver.DTD_PREFIX + "\">\n" +
             "  <database name=\"test\">\n" +
             "    <table name=\"SomeTable\">\n" +
             "      <column name=\"intField\" primaryKey=\"false\" required=\"false\" type=\"TINYINT\" autoIncrement=\"false\"/>\n" +