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";
/**
* [EMAIL PROTECTED]
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" +