aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJames Ahlborn <jtahlborn@yahoo.com>2007-11-02 03:48:53 +0000
committerJames Ahlborn <jtahlborn@yahoo.com>2007-11-02 03:48:53 +0000
commit07034fd3ff42e7fd5a394c5dab44dce91c186070 (patch)
tree1a0fe6220dfa2a511d30f4d0932d13887a3863be /src
parent622e957cce35487fe01676d277cde3449030a13d (diff)
downloadjackcess-07034fd3ff42e7fd5a394c5dab44dce91c186070.tar.gz
jackcess-07034fd3ff42e7fd5a394c5dab44dce91c186070.zip
move to maven2
git-svn-id: https://svn.code.sf.net/p/jackcess/code/jackcess/trunk@167 f203690c-595d-4dc9-a70b-905162fa7fd2
Diffstat (limited to 'src')
-rw-r--r--src/changes/changes.xml189
-rw-r--r--src/java/com/healthmarketscience/jackcess/Column.java2
-rw-r--r--src/site/fml/faq.fml191
-rw-r--r--src/site/site.xml29
-rw-r--r--src/site/xdoc/index.xml51
5 files changed, 461 insertions, 1 deletions
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
new file mode 100644
index 0000000..7e20dcc
--- /dev/null
+++ b/src/changes/changes.xml
@@ -0,0 +1,189 @@
+<document>
+ <properties>
+ <title>Release notes</title>
+ <author email="javajedi@users.sf.net">Tim McCune</author>
+ <author email="jahlborn@users.sf.net">James Ahlborn</author>
+ </properties>
+ <body>
+ <release version="1.1.10" date="TBD">
+ </release>
+ <release version="1.1.9" date="2007-07-12">
+ <action dev="jahlborn" type="fix" issue="1675522">
+ Add support for writing large table definitions, bug #1675522.
+ </action>
+ <action dev="jahlborn" type="fix" issue="1748827">
+ Fix handling of usage maps for large tables, bug #1748827.
+ </action>
+ <action dev="jahlborn" type="fix" issue="1672071">
+ Fixed some edge cases for reading numeric columns, bug #1672071.
+ </action>
+ </release>
+ <release version="1.1.8" date="2007-02-13">
+ <action dev="jahlborn" type="update">
+ Additional info in DataType to support better type validation
+ (scale/precision range). Add "unit size" concept.
+ </action>
+ <action dev="jahlborn" type="update">
+ Add CLOB support in JDBC handling. Add general support for large
+ types (BLOB/CLOB).
+ </action>
+ <action dev="jahlborn" type="update">
+ Enhance Database.copyTable/importReader to allow for better control
+ over column definitions and row values through the ImportFilter.
+ Change default type translation to handle large and variable length
+ types better.
+ </action>
+ </release>
+ <release version="1.1.7" date="2006-10-02">
+ <action dev="jahlborn" type="update">
+ Refactored DataType class, cleaned up a lot of "custom" data type code
+ springled throughout the codebase.
+ </action>
+ <action dev="jahlborn" type="update">
+ Added sanity checking on table creation (check column/table properties
+ for validity).
+ </action>
+ <action dev="jahlborn" type="update">
+ Clean up index reading/writing of text columns, add support for more
+ characters
+ </action>
+ <action dev="jahlborn" type="update" issue="1563654">
+ Support reading 'compressed' indexes (fix 1563654)
+ </action>
+ <action dev="jahlborn" type="update">
+ Implement "overflow" row reading.
+ </action>
+ <action dev="jahlborn" type="fix">
+ Allow multi-page long value reading.
+ </action>
+ <action dev="jahlborn" type="update">
+ Implement multi-page long value writing.
+ </action>
+ <action dev="jahlborn" type="fix">
+ Fix decimal data type writing.
+ </action>
+ <action dev="jahlborn" type="update" issue="1545857">
+ Add support for opening files read-only (fix 1545857)
+ </action>
+ </release>
+ <release version="1.1.6" date="2006-08-07">
+ <action dev="jahlborn" type="fix" issue="1530312">
+ Handle more tables with more index slots than actual indexes (fix bug
+ 1530312)
+ </action>
+ <action dev="jahlborn" type="fix" issue="1449812">
+ Clean up reading/writing 3-byte ints; long value length is 3-bytes
+ (fix bug 1449812)
+ </action>
+ <action dev="jahlborn" type="fix">
+ Fix handling of skipped rows
+ </action>
+ <action dev="jahlborn" type="fix" issue="1306970">
+ When reading multi-page table def, flip buffer before parsing (fix bug
+ 1306970)
+ </action>
+ <action dev="jahlborn" type="update">
+ Treat table names as case insensitive; use stored table names when
+ instantiating tables
+ </action>
+ <action dev="jahlborn" type="update">
+ Make Database and Table Iterable
+ </action>
+ <action dev="jahlborn" type="fix">
+ Use uppercase names when adding text columns to indexes, which fixes
+ long standing problem with table names starting with lowercase
+ characters (and other situations where tables could not be opened in
+ Access). Remove hack which forced every table name to have uppercase
+ first character.
+ </action>
+ <action dev="jahlborn" type="update">
+ Clean up compressed text handling.
+ </action>
+ <action dev="jahlborn" type="update">
+ Implement reading multi-page long binary values
+ </action>
+ </release>
+ <release version="1.1.5" date="2006-07-25">
+ <action dev="jahlborn" type="update">
+ Add support for currency columns (thanks to James Schopp).
+ </action>
+ <action dev="jahlborn" type="fix">
+ Handle tables with no variable length columns correctly.
+ </action>
+ <action dev="jahlborn" type="fix">
+ Handle reading with deleted columns.
+ </action>
+ <action dev="jahlborn" type="update">
+ Read information on primary keys and include in Index.
+ </action>
+ <action dev="jahlborn" type="fix">
+ Fix some issues around reading indexes.
+ </action>
+ <action dev="jahlborn" type="update">
+ Add write support for numeric/GUID columns.
+ </action>
+ <action dev="javajedi" type="update">
+ Added getRowCount(), getName(), updated toString() on Table.
+ </action>
+ </release>
+ <release version="1.1.4" date="2006-6-15">
+ <action dev="jahlborn" type="fix">
+ Missing break in switch condition.
+ </action>
+ <action dev="jahlborn" type="fix">
+ Fixes
+ to reading/writing MEMO/OLE columns.
+ </action>
+ <action dev="jahlborn" type="update">
+ Made exceptions thrown when opening empty or nonexistent files more
+ specific.
+ </action>
+ <action dev="jahlborn" type="fix">
+ Apply patch from Jon Iles for handilng variable length columns.
+ </action>
+ <action dev="jahlborn" type="fix">
+ Apply patch from Jon Iles for handling dates.
+ </action>
+ <action dev="jahlborn" type="fix">
+ Apply patch from Jon Iles for reading GUIDs.
+ </action>
+ </release>
+ <release version="1.1.3" date="2006-2-16">
+ <action dev="jahlborn" type="fix">
+ Fix parsing of NUMERIC type.
+ </action>
+ <action dev="javajedi" type="fix">
+ Applied Jon Iles' patch to allow large table definitions to be read.
+ </action>
+ </release>
+ <release version="1.1.2" date="2005-8-26">
+ <action dev="javajedi" type="fix" issue="1273712">
+ Fixed bug where writing null values into fixed-width columns was
+ failing.
+ </action>
+ </release>
+ <release version="1.1.1" date="2005-8-20">
+ <action dev="javajedi" type="fix" issue="1261536">
+ Fixed bug in reading index count from table definition. Skip overflow
+ rows.
+ </action>
+ </release>
+ <release version="1.1" date="2005-8-12">
+ <action dev="javajedi" type="update">
+ JDK 1.5 upgrades
+ </action>
+ <action dev="javajedi" type="update">
+ Applied Mitchell Friedman's patch for support of additional JDBC data
+ types.
+ </action>
+ <action dev="javajedi" type="update">
+ Added support for deleted rows.
+ </action>
+ </release>
+ <release version="1.0" date="2005-4-7">
+ <action dev="javajedi" type="add">
+ Initial release
+ </action>
+ </release>
+ </body>
+</document>
diff --git a/src/java/com/healthmarketscience/jackcess/Column.java b/src/java/com/healthmarketscience/jackcess/Column.java
index 8612e2c..899ba2d 100644
--- a/src/java/com/healthmarketscience/jackcess/Column.java
+++ b/src/java/com/healthmarketscience/jackcess/Column.java
@@ -275,7 +275,7 @@ public class Column implements Comparable<Column> {
/**
* Checks that this column definition is valid.
*
- * @throw IllegalArgumentException if this column definition is invalid.
+ * @throws IllegalArgumentException if this column definition is invalid.
*/
public void validate(JetFormat format) {
if(_format != format) {
diff --git a/src/site/fml/faq.fml b/src/site/fml/faq.fml
new file mode 100644
index 0000000..70c2b8c
--- /dev/null
+++ b/src/site/fml/faq.fml
@@ -0,0 +1,191 @@
+<?xml version="1.0"?>
+
+<faqs title="Frequently Asked Questions">
+
+ <part id="general">
+ <title>General</title>
+
+ <faq id="linux">
+ <question>Does this work on Linux/Unix?</question>
+ <answer>
+ <p>Yep, Jackcess is pure Java. It will work on any
+ Java Virtual Machine (1.4+).</p>
+ </answer>
+ </faq>
+
+ <faq id="formats">
+ <question>What Access formats does it support?</question>
+ <answer>
+ <p>Jackcess currently supports <i>only</i> Access 2000
+ databases. Access 2003 is not supported.</p>
+ </answer>
+ </faq>
+
+ <faq id="passwords">
+ <question>Are password protected databases supported?</question>
+ <answer>
+ <p>Basic password protection is merely software enforced, and Jackcess
+ does not do any password checking at this point. So, a password
+ protected database can be used the same as any other.</p>
+ </answer>
+ </faq>
+
+ <faq id="mdbtools">
+ <question>
+ How is this different from
+ <a href="http://mdbtools.sf.net">mdbtools</a>?
+ </question>
+ <answer>
+ <p>
+ We want to give a lot of credit to mdbtools. They have
+ been around much longer than Jackcess, and, along with
+ <a href="http://poi.apache.org/">POI</a>,
+ inspired us that a project like this could be done.
+ mdbtools is written in C. There is a Java port of it,
+ but if you've ever read or used a Java port of a C
+ library, you can appreciate the difference between such
+ a library and one written from scratch in Java.
+ </p>
+ <p>
+ At the time of this writing, mdbtools could only read
+ Access databases. Jackcess can also write to them.
+ According to their web site, "Write support is currently being
+ worked on and the first cut is expected to be included in the
+ 0.6 release." This status hasn't changed since we first
+ started work on Jackcess.
+ </p>
+ <p>
+ mdbtools supports Access 97 databases, which Jackcess does not.
+ The Java port of mdbtools also includes an implementation of
+ a small subset of the JDBC APIs. Jackcess does not currently,
+ but a pure Java JDBC driver for Access could certainly be written
+ on top of Jackcess.
+ </p>
+ </answer>
+ </faq>
+
+ <faq id="poi">
+ <question>
+ This looks like a logical addition to
+ <a href="http://poi.apache.org/">POI</a>. Why not integrate
+ with that project?
+ </question>
+ <answer>
+ <p>
+ POI is released under
+ <a href="http://www.apache.org/foundation/licence-FAQ.html">The Apache License</a>.
+ Jackcess is released under
+ <a href="http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt">The GNU Lesser General Public License</a>.
+ The Apache license allows closed-source and/or commercial forks.
+ The LGPL does not. If you change or enhance Jackcess, you must contribute
+ your changes back to the project.
+ </p>
+ </answer>
+ </faq>
+
+ <faq id="odbc">
+ <question>
+ I'm using the JDBC/ODBC bridge. Why should I try Jackcess?
+ </question>
+ <answer>
+ <p>
+ <ul>
+ <li>
+ Portability - With Jackcess, your app has one less dependency on Windows.
+ </li>
+ <li>
+ Speed - We had an app that used the ODBC bridge to write data to an
+ Access database. When we switched it over to use Jackcess, it was 5 times faster.
+ </li>
+ <li>
+ Stability - With large amounts of data, we found the ODBC brige to be
+ pretty unreliable.
+ </li>
+ <li>
+ Simplicity - With Jackcess, there is no ODBC configuration to set up.
+ </li>
+ </ul>
+ </p>
+ </answer>
+ </faq>
+
+ <faq id="jdk">
+ <question>What version of the JDK does this require?</question>
+ <answer>
+ <p>
+ Version 1.0 requires JDK 1.4 or higher. The version in CVS HEAD and future releases
+ will require JDK 1.5 or higher.
+ </p>
+ <p>
+ However, some users have contributed patches to make later versions
+ compatible with JDK 1.4. Please check the contributions/ directory
+ for any such patches. Note that any code in this directory is
+ untested and unsupported, so please use at your own risk and do not
+ file bugs based on that code.
+ </p>
+ </answer>
+ </faq>
+
+ <faq id="dependencies">
+ <question>Why do I get a NoClassDefFoundError?</question>
+ <answer>
+ <p>
+ Probably because you're missing a jar that Jackcess depends on from your
+ classpath. Take a look at the <a href="dependencies.html">dependencies list</a>. The first 3 are required for both building and running
+ and can be found either at the <a href="http://commons.apache.org/">
+ Jakarta Commons</a> or the <a href="http://www.ibiblio.org/maven">Ibiblio
+ Maven Repository</a>. The others are only required for building, in which
+ case, Maven will find them for you.
+ </p>
+ </answer>
+ </faq>
+
+ <faq id="speed">
+ <question>Why is jackcess so slow for large updates?</question>
+ <answer>
+ <p>
+ While there is much room for improvement in update speed, one factor
+ is whether or not all writes are automatically forced to disk. By
+ default, "autoSync" is enabled, which keeps the database file in a
+ more consistent state, but can be very slow for large updates.
+ Disabling "autoSync" can dramatically increase update speed, but
+ exceptions during update can leave the file in an unusable state.
+ So, modifying this option essentially trades off speed for
+ recoverability.
+ </p>
+ </answer>
+ </faq>
+
+ <faq id="hms">
+ <question>Who is Health Market Science?</question>
+ <answer>
+ <p>
+ HMS is a small company located in suburban Philadelphia.
+ Using proprietary matching and consolidation software,
+ HMS scientifically manufactures the most comprehensive
+ and accurate healthcare data sets in the market today.
+ <a href="http://www.healthmarketscience.com/company/careers.html">We're hiring!</a>
+ HMS is always looking for talented individuals.
+ </p>
+ </answer>
+ </faq>
+
+ <faq id="bugs">
+ <question>It doesn't work!</question>
+ <answer>
+ <p>
+ Ok, that wasn't a question, but we'll try to respond anyway. :)
+ Jackcess is young, and not that robust yet. As you might imagine,
+ it's kind of hard to test, simply by its nature. There are
+ bugs that we are aware of, and certainly many more that we are not.
+ If you find what looks like a bug, please
+ <a href="http://sf.net/tracker/?group_id=134943&amp;atid=731445">report it.</a>
+ Even better, fix it, and
+ <a href="http://sf.net/tracker/?group_id=134943&amp;atid=731447">submit a patch.</a>
+ </p>
+ </answer>
+ </faq>
+
+ </part>
+
+</faqs>
diff --git a/src/site/site.xml b/src/site/site.xml
new file mode 100644
index 0000000..4577efb
--- /dev/null
+++ b/src/site/site.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+
+<project name="Jackcess">
+ <bannerLeft>
+ <name>Health Market Science</name>
+ <src>http://www.healthmarketscience.com/images/HMS_logo.gif</src>
+ <href>http://www.healthmarketscience.com/</href>
+ </bannerLeft>
+ <body>
+ <menu name="Jackcess">
+ <item name="About" href="index.html"/>
+ <item name="OpenHMS" href="http://openhms.sourceforge.net/"/>
+ <item name="Downloads" href="http://sourceforge.net/project/showfiles.php?group_id=134943"/>
+ <item name="SourceForge Project" href="http://sourceforge.net/projects/jackcess/"/>
+ </menu>
+
+ <menu ref="reports"/>
+
+ </body>
+
+ <poweredBy>
+ <logo name="Works on Linux" img="http://openhms.sourceforge.net/images/worksonlinux.png"
+ href="http://www.linux.org"/>
+ <logo name="Hosted by SourceForge" img="http://sflogo.sourceforge.net/sflogo.php?group_id=185339&amp;type=1" href="http://sourceforge.net"/>
+ <logo name="Built by Maven" img="./images/logos/maven-feather.png"
+ href="http://maven.apache.org/"/>
+ </poweredBy>
+
+</project>
diff --git a/src/site/xdoc/index.xml b/src/site/xdoc/index.xml
new file mode 100644
index 0000000..854ea23
--- /dev/null
+++ b/src/site/xdoc/index.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+
+<document>
+ <properties>
+ <author email="javajedi@users.sf.net">Tim McCune</author>
+ <title>Java Library for MS Access</title>
+ </properties>
+ <body>
+ <section name="Jackcess">
+ <p>
+ Jackcess is a pure Java library for reading from and writing to MS
+ Access databases. It is part of the <a href="http://openhms.sourceforge.net/">OpenHMS</a> project from <a href="http://www.healthmarketscience.com/">Health Market Science, Inc.</a>. It is not an application. There is no GUI. It's a
+ library, intended for other developers to use to build Java
+ applications. Jackcess is licensed under the
+
+ <a href="http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt">GNU Lesser General Public License</a>.
+ Take a look
+ at our <a href="faq.html">Frequently Asked Questions</a>
+ for more info.
+ </p>
+ </section>
+ <section name="Sample code">
+ <p>
+ <ul>
+ <li>Displaying the contents of a table:
+ <pre>System.out.println(Database.open(new File("my.mdb")).getTable("MyTable").display());</pre>
+ </li>
+ <li>Creating a new table and writing data into it:
+ <pre>Database db = Database.create(new File("new.mdb"));
+Column a = new Column();
+a.setName("a");
+a.setSQLType(Types.INTEGER);
+Column b = new Column();
+b.setName("b");
+b.setSQLType(Types.VARCHAR);
+db.createTable("NewTable", Arrays.asList(a, b));
+Table newTable = db.getTable("NewTable");
+newTable.addRow(new Object[] {1, "foo"});</pre>
+ </li>
+ <li>Copying the contents of a JDBC ResultSet (e.g. from an
+external database) into a new table:
+ <pre>Database.open(new File("my.mdb")).copyTable("Imported", resultSet);</pre>
+ </li>
+ <li>Copying the contents of a CSV file into a new table:
+ <pre>Database.open(new File("my.mdb")).importFile("Imported2", new File("my.csv"), ",");</pre>
+ </li>
+ </ul>
+ </p>
+ </section>
+ </body>
+</document>