You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-commits@db.apache.org by to...@apache.org on 2022/03/17 19:14:45 UTC

[db-jdo] branch main updated: Remove specification

This is an automated email from the ASF dual-hosted git repository.

tobous pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/db-jdo.git


The following commit(s) were added to refs/heads/main by this push:
     new 065e9a7  Remove specification
065e9a7 is described below

commit 065e9a7baf57448ae013db9a1f73fdc14d8c5699
Author: Tobias Bouschen <to...@googlemail.com>
AuthorDate: Sun Feb 27 22:27:34 2022 +0100

    Remove specification
    
    Removes the specification from the repo. It has been relocated to
    clr-apache/jdo-specification.
---
 specification/Acknowledgements.fm                  |  Bin 46080 -> 0 bytes
 specification/Appendixes.fm                        |  Bin 343040 -> 0 bytes
 specification/License.fm                           |  Bin 57344 -> 0 bytes
 specification/OOO/AppA-References.odt              |  Bin 14061 -> 0 bytes
 specification/OOO/AppB-JDOQL_BNF.odt               |  Bin 33969 -> 0 bytes
 specification/OOO/AppC-RevisionHistory.odt         |  Bin 48945 -> 0 bytes
 specification/OOO/AppD-XML_Schema_jdoconfig.odt    |  Bin 30560 -> 0 bytes
 specification/OOO/AppE-XML_Schema_jdo.odt          |  Bin 31598 -> 0 bytes
 specification/OOO/AppF-XML_Schema_jdoquery.odt     |  Bin 29354 -> 0 bytes
 specification/OOO/AppG-XML_Schema_orm.odt          |  Bin 30131 -> 0 bytes
 specification/OOO/AppH-StandardOptionNames.odt     |  Bin 28515 -> 0 bytes
 specification/OOO/Ch01-Introduction.odt            |  Bin 48144 -> 0 bytes
 specification/OOO/Ch02-Overview.odt                |  Bin 42592 -> 0 bytes
 specification/OOO/Ch03-Architecture.odt            |  Bin 31230 -> 0 bytes
 specification/OOO/Ch04-Roles_Scenarios.odt         |  Bin 40815 -> 0 bytes
 specification/OOO/Ch05-LifeCycle.odt               |  Bin 66482 -> 0 bytes
 specification/OOO/Ch05-LifeCycle.oops.odt          |  Bin 62832 -> 0 bytes
 specification/OOO/Ch06-PersistentObjectModel.odt   |  Bin 30948 -> 0 bytes
 specification/OOO/Ch07-PersistenceCapable.odt      |  Bin 30985 -> 0 bytes
 specification/OOO/Ch08-JDOHelper.odt               |  Bin 30424 -> 0 bytes
 specification/OOO/Ch09-JDOImplHelper.odt           |  Bin 26839 -> 0 bytes
 specification/OOO/Ch10-InstanceCallbacks.odt       |  Bin 24211 -> 0 bytes
 .../OOO/Ch11-PersistenceManagerFactory.odt         |  Bin 48344 -> 0 bytes
 specification/OOO/Ch12-PersistenceManager.odt      |  Bin 64792 -> 0 bytes
 .../OOO/Ch13-Transactions_Connections.odt          |  Bin 38994 -> 0 bytes
 specification/OOO/Ch14-Query.odt                   |  Bin 79182 -> 0 bytes
 specification/OOO/Ch15-ObjectRelationalMapping.odt |  Bin 35191 -> 0 bytes
 specification/OOO/Ch16-EnterpriseJavaBeans.odt     |  Bin 24958 -> 0 bytes
 specification/OOO/Ch17-JDO_Exceptions.odt          |  Bin 25875 -> 0 bytes
 specification/OOO/Ch18-XMLMetadata.odt             |  Bin 61013 -> 0 bytes
 specification/OOO/Ch19-Annotations_MetadataAPI.odt |  Bin 54200 -> 0 bytes
 specification/OOO/Ch20-JavaPersistenceAPI.odt      |  Bin 31438 -> 0 bytes
 specification/OOO/Ch21-Extent.odt                  |  Bin 32580 -> 0 bytes
 specification/OOO/Ch22-PortabilityGuidelines.odt   |  Bin 32564 -> 0 bytes
 specification/OOO/Ch23-ReferenceEnhancer.odt       |  Bin 58382 -> 0 bytes
 specification/OOO/Ch24-InterfaceStateManager.odt   |  Bin 34894 -> 0 bytes
 specification/OOO/Ch25-Permission.odt              |  Bin 21922 -> 0 bytes
 specification/OOO/JDO-3.2.pdf                      |  Bin 1927343 -> 0 bytes
 specification/OOO/JDO_master.odm                   |  Bin 57381 -> 0 bytes
 specification/OOO/JDO_spec.ott                     |  Bin 12193 -> 0 bytes
 specification/OOO/README.odt                       |  Bin 45675 -> 0 bytes
 specification/backcover.fm                         |  Bin 45056 -> 0 bytes
 specification/imports/ArrayMetadata.java           |   61 -
 specification/imports/ArrayMetadata.txt            |   61 -
 specification/imports/Cacheable.java               |    6 -
 specification/imports/Cacheable.txt                |    5 -
 specification/imports/ClassMetadata.java           |   51 -
 specification/imports/ClassMetadata.txt            |   31 -
 .../imports/ClassPersistenceModifier.java          |   28 -
 specification/imports/ClassPersistenceModifier.txt |   10 -
 specification/imports/CollectionMetadata.java      |   79 --
 specification/imports/CollectionMetadata.txt       |   61 -
 specification/imports/Column.txt                   |   73 --
 specification/imports/ColumnMetadata.java          |  163 ---
 specification/imports/ColumnMetadata.txt           |  145 ---
 specification/imports/Columns.txt                  |    9 -
 specification/imports/ComponentMetadata.java       |  374 ------
 specification/imports/ComponentMetadata.txt        |  388 ------
 specification/imports/Constants.txt                |    0
 specification/imports/DatastoreIdentity.txt        |   39 -
 .../imports/DatastoreIdentityMetadata.java         |  102 --
 .../imports/DatastoreIdentityMetadata.txt          |   82 --
 specification/imports/Discriminator.txt            |   44 -
 specification/imports/DiscriminatorMetadata.java   |  116 --
 specification/imports/DiscriminatorMetadata.txt    |   96 --
 specification/imports/DiscriminatorStrategy.txt    |    8 -
 specification/imports/Element.txt                  |  115 --
 specification/imports/ElementMetadata.java         |  158 ---
 specification/imports/ElementMetadata.txt          |  138 ---
 specification/imports/Embedded.txt                 |   26 -
 specification/imports/EmbeddedMetadata.java        |   95 --
 specification/imports/EmbeddedMetadata.txt         |   77 --
 specification/imports/EmbeddedOnly.txt             |    5 -
 specification/imports/Enhancer.txt                 |    0
 specification/imports/Extension.txt                |   19 -
 specification/imports/ExtensionMetadata.java       |   42 -
 specification/imports/ExtensionMetadata.txt        |   24 -
 specification/imports/Extensions.txt               |   10 -
 specification/imports/Extent.txt                   |    0
 specification/imports/FetchGroup.txt               |    0
 specification/imports/FetchGroupMetadata.java      |   73 --
 specification/imports/FetchGroupMetadata.txt       |   55 -
 specification/imports/FetchGroups.txt              |   10 -
 specification/imports/FetchPlan.txt                |    0
 specification/imports/FetchPlanMetadata.java       |   80 --
 specification/imports/FetchPlanMetadata.txt        |   62 -
 specification/imports/FetchPlans.txt               |   10 -
 specification/imports/FieldMetadata.java           |   25 -
 specification/imports/FieldMetadata.txt            |    7 -
 specification/imports/ForeignKey.txt               |   46 -
 specification/imports/ForeignKeyAction.txt         |   10 -
 specification/imports/ForeignKeyMetadata.java      |  158 ---
 specification/imports/ForeignKeyMetadata.txt       |  138 ---
 specification/imports/ForeignKeys.txt              |   10 -
 specification/imports/IdGeneratorStrategy.txt      |   11 -
 specification/imports/IdentityType.txt             |    8 -
 specification/imports/Index.txt                    |   30 -
 specification/imports/IndexMetadata.java           |  116 --
 specification/imports/IndexMetadata.txt            |   98 --
 specification/imports/Indexed.java                 |   31 -
 specification/imports/Indexed.txt                  |   13 -
 specification/imports/Indices.txt                  |   10 -
 specification/imports/Inheritance.txt              |   16 -
 specification/imports/InheritanceMetadata.java     |   81 --
 specification/imports/InheritanceMetadata.txt      |   61 -
 specification/imports/InheritanceStrategy.txt      |    8 -
 specification/imports/InstanceCallbacks.txt        |    0
 specification/imports/InterfaceMetadata.java       |   25 -
 specification/imports/InterfaceMetadata.txt        |    7 -
 specification/imports/JDOCanRetryException.txt     |    0
 specification/imports/JDODataStoreException.txt    |    0
 .../imports/JDODetachedFieldAccessException.txt    |    0
 specification/imports/JDOEnhanceException.txt      |    0
 specification/imports/JDOEnhancer.java             |  128 --
 specification/imports/JDOEnhancer.txt              |  129 --
 specification/imports/JDOEntityManager.txt         |    0
 specification/imports/JDOEntityManagerFactory.txt  |    0
 specification/imports/JDOException.txt             |    0
 .../imports/JDOFatalDataStoreException.txt         |    0
 specification/imports/JDOFatalException.txt        |    0
 .../imports/JDOFatalInternalException.txt          |    0
 specification/imports/JDOFatalUserException.txt    |    0
 specification/imports/JDOHelper.txt                |    0
 specification/imports/JDOMetadata.java             |  128 --
 specification/imports/JDOMetadata.txt              |  129 --
 specification/imports/JDONullIdentityException.txt |    0
 .../imports/JDOObjectNotFoundException.txt         |    0
 .../imports/JDOOptimisticVerificationException.txt |    0
 .../imports/JDOQueryInterruptedException.txt       |    0
 specification/imports/JDOReadOnlyException.txt     |    0
 .../imports/JDOUnsupportedOptionException.txt      |    0
 specification/imports/JDOUserCallbackException.txt |    0
 specification/imports/JDOUserException.txt         |    0
 specification/imports/Join.txt                     |   78 --
 specification/imports/JoinMetadata.java            |  186 ---
 specification/imports/JoinMetadata.txt             |  166 ---
 specification/imports/Joins.txt                    |   13 -
 specification/imports/Key.txt                      |  112 --
 specification/imports/KeyMetadata.java             |  157 ---
 specification/imports/KeyMetadata.txt              |  137 --
 specification/imports/MapMetadata.java             |  135 --
 specification/imports/MapMetadata.txt              |  117 --
 specification/imports/MemberMetadata.java          |  513 --------
 specification/imports/MemberMetadata.txt           |  490 --------
 specification/imports/Metadata.java                |   55 -
 specification/imports/Metadata.txt                 |   37 -
 specification/imports/NotPersistent.txt            |    5 -
 specification/imports/NullValue.txt                |    7 -
 specification/imports/ObjectState.txt              |   28 -
 specification/imports/Order.txt                    |   25 -
 specification/imports/OrderMetadata.java           |   86 --
 specification/imports/OrderMetadata.txt            |   68 -
 specification/imports/PackageMetadata.java         |  144 ---
 specification/imports/PackageMetadata.txt          |  125 --
 specification/imports/PersistenceAware.txt         |    5 -
 specification/imports/PersistenceCapable.java      |   52 -
 specification/imports/PersistenceCapable.txt       |   57 -
 specification/imports/PersistenceManager.txt       |    0
 .../imports/PersistenceManagerFactory.txt          |    0
 specification/imports/PersistenceModifier.txt      |    8 -
 specification/imports/Persistent.java              |  185 ---
 specification/imports/Persistent.txt               |  185 ---
 specification/imports/PrimaryKey.txt               |   22 -
 specification/imports/PrimaryKeyMetadata.java      |   74 --
 specification/imports/PrimaryKeyMetadata.txt       |   56 -
 specification/imports/PropertyMetadata.java        |   37 -
 specification/imports/PropertyMetadata.txt         |   19 -
 specification/imports/Queries.txt                  |   10 -
 specification/imports/Query.txt                    |    0
 specification/imports/QueryMetadata.java           |  112 --
 specification/imports/QueryMetadata.txt            |   94 --
 specification/imports/Sequence.txt                 |   29 -
 specification/imports/SequenceMetadata.java        |   67 -
 specification/imports/SequenceMetadata.txt         |   47 -
 specification/imports/SequenceStrategy.txt         |    7 -
 specification/imports/Serialized.txt               |    5 -
 specification/imports/Transaction.txt              |    0
 specification/imports/Transactional.txt            |    5 -
 specification/imports/Unique.txt                   |   31 -
 specification/imports/UniqueMetadata.java          |  114 --
 specification/imports/UniqueMetadata.txt           |   96 --
 specification/imports/Uniques.txt                  |   10 -
 specification/imports/Value.txt                    |  112 --
 specification/imports/ValueMetadata.java           |  151 ---
 specification/imports/ValueMetadata.txt            |  131 --
 specification/imports/Version.txt                  |   40 -
 specification/imports/VersionMetadata.java         |  102 --
 specification/imports/VersionMetadata.txt          |   82 --
 specification/imports/VersionStrategy.txt          |    9 -
 specification/imports/jdo_2_0.dtd                  |  241 ----
 specification/imports/jdo_2_0.xsd                  | 1160 -----------------
 specification/imports/jdo_2_1.xsd                  | 1255 -------------------
 specification/imports/jdo_2_2.dtd                  |  251 ----
 specification/imports/jdo_2_2.xsd                  | 1287 -------------------
 specification/imports/jdo_2_3.dtd                  |  237 ----
 specification/imports/jdo_2_3.xsd                  | 1303 --------------------
 specification/imports/jdo_3_0.dtd                  |  237 ----
 specification/imports/jdo_3_0.xsd                  | 1287 -------------------
 specification/imports/jdoconfig_2_1.dtd            |   51 -
 specification/imports/jdoconfig_2_1.xsd            |  178 ---
 specification/imports/jdoconfig_2_2.dtd            |   38 -
 specification/imports/jdoconfig_2_2.xsd            |  154 ---
 specification/imports/jdoconfig_2_3.dtd            |   39 -
 specification/imports/jdoconfig_2_3.xsd            |  178 ---
 specification/imports/jdoconfig_3_0.dtd            |   40 -
 specification/imports/jdoconfig_3_0.xsd            |  161 ---
 specification/imports/jdoquery_2_0.dtd             |   43 -
 specification/imports/jdoquery_2_0.xsd             |  124 --
 specification/imports/jdoquery_2_1.xsd             |  116 --
 specification/imports/jdoquery_2_2.dtd             |   43 -
 specification/imports/jdoquery_2_2.xsd             |  116 --
 specification/imports/jdoquery_3_0.dtd             |   29 -
 specification/imports/jdoquery_3_0.xsd             |  102 --
 specification/imports/orm_2_0.dtd                  |  182 ---
 specification/imports/orm_2_0.xsd                  |  791 ------------
 specification/imports/orm_2_1.xsd                  |  882 -------------
 specification/imports/orm_2_2.dtd                  |  182 ---
 specification/imports/orm_3_0.dtd                  |  166 ---
 specification/imports/orm_3_0.xsd                  |  866 -------------
 specification/jdo.backup.book                      |  Bin 29696 -> 0 bytes
 specification/jdo.book                             |  Bin 29696 -> 0 bytes
 specification/jdo.fm                               |  Bin 6965248 -> 0 bytes
 specification/jdoIOM.fm                            |  Bin 176128 -> 0 bytes
 specification/jdoLOF.fm                            |  Bin 119808 -> 0 bytes
 specification/jdoLOT.fm                            |  Bin 118784 -> 0 bytes
 specification/jdoTOC.fm                            |  Bin 191488 -> 0 bytes
 specification/titlepage.fm                         |  Bin 117760 -> 0 bytes
 227 files changed, 20831 deletions(-)

diff --git a/specification/Acknowledgements.fm b/specification/Acknowledgements.fm
deleted file mode 100644
index d9aeb03..0000000
Binary files a/specification/Acknowledgements.fm and /dev/null differ
diff --git a/specification/Appendixes.fm b/specification/Appendixes.fm
deleted file mode 100644
index a0d9980..0000000
Binary files a/specification/Appendixes.fm and /dev/null differ
diff --git a/specification/License.fm b/specification/License.fm
deleted file mode 100644
index 4908b1c..0000000
Binary files a/specification/License.fm and /dev/null differ
diff --git a/specification/OOO/AppA-References.odt b/specification/OOO/AppA-References.odt
deleted file mode 100644
index 3561aee..0000000
Binary files a/specification/OOO/AppA-References.odt and /dev/null differ
diff --git a/specification/OOO/AppB-JDOQL_BNF.odt b/specification/OOO/AppB-JDOQL_BNF.odt
deleted file mode 100644
index 4ee5c72..0000000
Binary files a/specification/OOO/AppB-JDOQL_BNF.odt and /dev/null differ
diff --git a/specification/OOO/AppC-RevisionHistory.odt b/specification/OOO/AppC-RevisionHistory.odt
deleted file mode 100644
index 5ac4494..0000000
Binary files a/specification/OOO/AppC-RevisionHistory.odt and /dev/null differ
diff --git a/specification/OOO/AppD-XML_Schema_jdoconfig.odt b/specification/OOO/AppD-XML_Schema_jdoconfig.odt
deleted file mode 100644
index e1727aa..0000000
Binary files a/specification/OOO/AppD-XML_Schema_jdoconfig.odt and /dev/null differ
diff --git a/specification/OOO/AppE-XML_Schema_jdo.odt b/specification/OOO/AppE-XML_Schema_jdo.odt
deleted file mode 100644
index e6f3be2..0000000
Binary files a/specification/OOO/AppE-XML_Schema_jdo.odt and /dev/null differ
diff --git a/specification/OOO/AppF-XML_Schema_jdoquery.odt b/specification/OOO/AppF-XML_Schema_jdoquery.odt
deleted file mode 100644
index b7852e6..0000000
Binary files a/specification/OOO/AppF-XML_Schema_jdoquery.odt and /dev/null differ
diff --git a/specification/OOO/AppG-XML_Schema_orm.odt b/specification/OOO/AppG-XML_Schema_orm.odt
deleted file mode 100644
index f8a3606..0000000
Binary files a/specification/OOO/AppG-XML_Schema_orm.odt and /dev/null differ
diff --git a/specification/OOO/AppH-StandardOptionNames.odt b/specification/OOO/AppH-StandardOptionNames.odt
deleted file mode 100644
index a504b93..0000000
Binary files a/specification/OOO/AppH-StandardOptionNames.odt and /dev/null differ
diff --git a/specification/OOO/Ch01-Introduction.odt b/specification/OOO/Ch01-Introduction.odt
deleted file mode 100644
index a49cf0a..0000000
Binary files a/specification/OOO/Ch01-Introduction.odt and /dev/null differ
diff --git a/specification/OOO/Ch02-Overview.odt b/specification/OOO/Ch02-Overview.odt
deleted file mode 100644
index 5b8928d..0000000
Binary files a/specification/OOO/Ch02-Overview.odt and /dev/null differ
diff --git a/specification/OOO/Ch03-Architecture.odt b/specification/OOO/Ch03-Architecture.odt
deleted file mode 100644
index 1fbf193..0000000
Binary files a/specification/OOO/Ch03-Architecture.odt and /dev/null differ
diff --git a/specification/OOO/Ch04-Roles_Scenarios.odt b/specification/OOO/Ch04-Roles_Scenarios.odt
deleted file mode 100644
index 81490c4..0000000
Binary files a/specification/OOO/Ch04-Roles_Scenarios.odt and /dev/null differ
diff --git a/specification/OOO/Ch05-LifeCycle.odt b/specification/OOO/Ch05-LifeCycle.odt
deleted file mode 100644
index 5f3f510..0000000
Binary files a/specification/OOO/Ch05-LifeCycle.odt and /dev/null differ
diff --git a/specification/OOO/Ch05-LifeCycle.oops.odt b/specification/OOO/Ch05-LifeCycle.oops.odt
deleted file mode 100644
index 772f3f4..0000000
Binary files a/specification/OOO/Ch05-LifeCycle.oops.odt and /dev/null differ
diff --git a/specification/OOO/Ch06-PersistentObjectModel.odt b/specification/OOO/Ch06-PersistentObjectModel.odt
deleted file mode 100644
index 32a75ac..0000000
Binary files a/specification/OOO/Ch06-PersistentObjectModel.odt and /dev/null differ
diff --git a/specification/OOO/Ch07-PersistenceCapable.odt b/specification/OOO/Ch07-PersistenceCapable.odt
deleted file mode 100644
index fb74229..0000000
Binary files a/specification/OOO/Ch07-PersistenceCapable.odt and /dev/null differ
diff --git a/specification/OOO/Ch08-JDOHelper.odt b/specification/OOO/Ch08-JDOHelper.odt
deleted file mode 100644
index 685c050..0000000
Binary files a/specification/OOO/Ch08-JDOHelper.odt and /dev/null differ
diff --git a/specification/OOO/Ch09-JDOImplHelper.odt b/specification/OOO/Ch09-JDOImplHelper.odt
deleted file mode 100644
index e79a508..0000000
Binary files a/specification/OOO/Ch09-JDOImplHelper.odt and /dev/null differ
diff --git a/specification/OOO/Ch10-InstanceCallbacks.odt b/specification/OOO/Ch10-InstanceCallbacks.odt
deleted file mode 100644
index b54954d..0000000
Binary files a/specification/OOO/Ch10-InstanceCallbacks.odt and /dev/null differ
diff --git a/specification/OOO/Ch11-PersistenceManagerFactory.odt b/specification/OOO/Ch11-PersistenceManagerFactory.odt
deleted file mode 100644
index f7979e0..0000000
Binary files a/specification/OOO/Ch11-PersistenceManagerFactory.odt and /dev/null differ
diff --git a/specification/OOO/Ch12-PersistenceManager.odt b/specification/OOO/Ch12-PersistenceManager.odt
deleted file mode 100644
index a60a202..0000000
Binary files a/specification/OOO/Ch12-PersistenceManager.odt and /dev/null differ
diff --git a/specification/OOO/Ch13-Transactions_Connections.odt b/specification/OOO/Ch13-Transactions_Connections.odt
deleted file mode 100644
index a5ec059..0000000
Binary files a/specification/OOO/Ch13-Transactions_Connections.odt and /dev/null differ
diff --git a/specification/OOO/Ch14-Query.odt b/specification/OOO/Ch14-Query.odt
deleted file mode 100644
index e9bb7b1..0000000
Binary files a/specification/OOO/Ch14-Query.odt and /dev/null differ
diff --git a/specification/OOO/Ch15-ObjectRelationalMapping.odt b/specification/OOO/Ch15-ObjectRelationalMapping.odt
deleted file mode 100644
index dae87c9..0000000
Binary files a/specification/OOO/Ch15-ObjectRelationalMapping.odt and /dev/null differ
diff --git a/specification/OOO/Ch16-EnterpriseJavaBeans.odt b/specification/OOO/Ch16-EnterpriseJavaBeans.odt
deleted file mode 100644
index e470ac6..0000000
Binary files a/specification/OOO/Ch16-EnterpriseJavaBeans.odt and /dev/null differ
diff --git a/specification/OOO/Ch17-JDO_Exceptions.odt b/specification/OOO/Ch17-JDO_Exceptions.odt
deleted file mode 100644
index 2cda4ef..0000000
Binary files a/specification/OOO/Ch17-JDO_Exceptions.odt and /dev/null differ
diff --git a/specification/OOO/Ch18-XMLMetadata.odt b/specification/OOO/Ch18-XMLMetadata.odt
deleted file mode 100644
index 1a93b17..0000000
Binary files a/specification/OOO/Ch18-XMLMetadata.odt and /dev/null differ
diff --git a/specification/OOO/Ch19-Annotations_MetadataAPI.odt b/specification/OOO/Ch19-Annotations_MetadataAPI.odt
deleted file mode 100644
index 5cb8828..0000000
Binary files a/specification/OOO/Ch19-Annotations_MetadataAPI.odt and /dev/null differ
diff --git a/specification/OOO/Ch20-JavaPersistenceAPI.odt b/specification/OOO/Ch20-JavaPersistenceAPI.odt
deleted file mode 100644
index f754322..0000000
Binary files a/specification/OOO/Ch20-JavaPersistenceAPI.odt and /dev/null differ
diff --git a/specification/OOO/Ch21-Extent.odt b/specification/OOO/Ch21-Extent.odt
deleted file mode 100644
index 06f3094..0000000
Binary files a/specification/OOO/Ch21-Extent.odt and /dev/null differ
diff --git a/specification/OOO/Ch22-PortabilityGuidelines.odt b/specification/OOO/Ch22-PortabilityGuidelines.odt
deleted file mode 100644
index 2824184..0000000
Binary files a/specification/OOO/Ch22-PortabilityGuidelines.odt and /dev/null differ
diff --git a/specification/OOO/Ch23-ReferenceEnhancer.odt b/specification/OOO/Ch23-ReferenceEnhancer.odt
deleted file mode 100644
index 342ce80..0000000
Binary files a/specification/OOO/Ch23-ReferenceEnhancer.odt and /dev/null differ
diff --git a/specification/OOO/Ch24-InterfaceStateManager.odt b/specification/OOO/Ch24-InterfaceStateManager.odt
deleted file mode 100644
index 589a589..0000000
Binary files a/specification/OOO/Ch24-InterfaceStateManager.odt and /dev/null differ
diff --git a/specification/OOO/Ch25-Permission.odt b/specification/OOO/Ch25-Permission.odt
deleted file mode 100644
index 7f996d5..0000000
Binary files a/specification/OOO/Ch25-Permission.odt and /dev/null differ
diff --git a/specification/OOO/JDO-3.2.pdf b/specification/OOO/JDO-3.2.pdf
deleted file mode 100644
index 9a0b6f6..0000000
Binary files a/specification/OOO/JDO-3.2.pdf and /dev/null differ
diff --git a/specification/OOO/JDO_master.odm b/specification/OOO/JDO_master.odm
deleted file mode 100644
index 997b66b..0000000
Binary files a/specification/OOO/JDO_master.odm and /dev/null differ
diff --git a/specification/OOO/JDO_spec.ott b/specification/OOO/JDO_spec.ott
deleted file mode 100644
index 9e89d7a..0000000
Binary files a/specification/OOO/JDO_spec.ott and /dev/null differ
diff --git a/specification/OOO/README.odt b/specification/OOO/README.odt
deleted file mode 100644
index 5205d8d..0000000
Binary files a/specification/OOO/README.odt and /dev/null differ
diff --git a/specification/backcover.fm b/specification/backcover.fm
deleted file mode 100644
index 0d3b7d8..0000000
Binary files a/specification/backcover.fm and /dev/null differ
diff --git a/specification/imports/ArrayMetadata.java b/specification/imports/ArrayMetadata.java
deleted file mode 100644
index 7dbfb97..0000000
--- a/specification/imports/ArrayMetadata.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- * Represents details of an array in a field/property in a class.
- * @since 2.3
- */
-public interface ArrayMetadata extends Metadata {
-    /**
-     * Method to set the name of the element type
-     * 
-     * @param type Name of the element type
-     */
-    ArrayMetadata setElementType(String type);
-
-    /**
-     * Accessor for the element type
-     * 
-     * @return The element type
-     */
-    String getElementType();
-
-    /**
-     * Method to set whether the element is embedded
-     * 
-     * @param val Whether it is embedded
-     */
-    ArrayMetadata setEmbeddedElement(boolean val);
-
-    /**
-     * Accessor for whether the element is embedded
-     * 
-     * @return whether the element is embedded
-     */
-    Boolean getEmbeddedElement();
-
-    /**
-     * Method to set whether the element is serialised
-     * 
-     * @param val Whether it is serialised
-     */
-    ArrayMetadata setSerializedElement(boolean val);
-
-    /**
-     * Accessor for whether the element is serialised
-     * 
-     * @return whether the element is serialised
-     */
-    Boolean getSerializedElement();
-
-    /**
-     * Method to set whether the element is dependent
-     * 
-     * @param val Whether it is dependent
-     */
-    ArrayMetadata setDependentElement(boolean val);
-
-    /**
-     * Accessor for whether the element is dependent
-     * 
-     * @return whether the element is dependent
-     */
-    Boolean getDependentElement();
-}
diff --git a/specification/imports/ArrayMetadata.txt b/specification/imports/ArrayMetadata.txt
deleted file mode 100644
index 7dbfb97..0000000
--- a/specification/imports/ArrayMetadata.txt
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- * Represents details of an array in a field/property in a class.
- * @since 2.3
- */
-public interface ArrayMetadata extends Metadata {
-    /**
-     * Method to set the name of the element type
-     * 
-     * @param type Name of the element type
-     */
-    ArrayMetadata setElementType(String type);
-
-    /**
-     * Accessor for the element type
-     * 
-     * @return The element type
-     */
-    String getElementType();
-
-    /**
-     * Method to set whether the element is embedded
-     * 
-     * @param val Whether it is embedded
-     */
-    ArrayMetadata setEmbeddedElement(boolean val);
-
-    /**
-     * Accessor for whether the element is embedded
-     * 
-     * @return whether the element is embedded
-     */
-    Boolean getEmbeddedElement();
-
-    /**
-     * Method to set whether the element is serialised
-     * 
-     * @param val Whether it is serialised
-     */
-    ArrayMetadata setSerializedElement(boolean val);
-
-    /**
-     * Accessor for whether the element is serialised
-     * 
-     * @return whether the element is serialised
-     */
-    Boolean getSerializedElement();
-
-    /**
-     * Method to set whether the element is dependent
-     * 
-     * @param val Whether it is dependent
-     */
-    ArrayMetadata setDependentElement(boolean val);
-
-    /**
-     * Accessor for whether the element is dependent
-     * 
-     * @return whether the element is dependent
-     */
-    Boolean getDependentElement();
-}
diff --git a/specification/imports/Cacheable.java b/specification/imports/Cacheable.java
deleted file mode 100644
index 860be48..0000000
--- a/specification/imports/Cacheable.java
+++ /dev/null
@@ -1,6 +0,0 @@
-@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD}) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Cacheable
-{
-	String value() default "true";
-}
diff --git a/specification/imports/Cacheable.txt b/specification/imports/Cacheable.txt
deleted file mode 100644
index 9738a5d..0000000
--- a/specification/imports/Cacheable.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Cacheable
-{
-	String value() default "true";
-}
\ No newline at end of file
diff --git a/specification/imports/ClassMetadata.java b/specification/imports/ClassMetadata.java
deleted file mode 100644
index f17f395..0000000
--- a/specification/imports/ClassMetadata.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package javax.jdo.metadata;
-
-import java.lang.reflect.Field;
-
-/**
- * Represents a class.
- * @since 2.3
- */
-public interface ClassMetadata extends ComponentMetadata {
-    /**
-     * Method to define the persistence modifier.
-     * @param mod persistence modifier
-     */
-    ClassMetadata setPersistenceModifier(ClassPersistenceModifier mod);
-
-    /**
-     * Accessor for the persistence modifier.
-     * @return persistence modifier
-     */
-    ClassPersistenceModifier getPersistenceModifier();
-
-    /**
-     * Add a new field to this class.
-     * @param name Name of the field
-     * @return The FieldMetadata
-     */
-    FieldMetadata newFieldMetadata(String name);
-
-    /**
-     * Add a new field to this class.
-     * @param fld The field
-     * @return The FieldMetadata
-     */
-    FieldMetadata newFieldMetadata(Field fld);
-}
\ No newline at end of file
diff --git a/specification/imports/ClassMetadata.txt b/specification/imports/ClassMetadata.txt
deleted file mode 100644
index ad769f4..0000000
--- a/specification/imports/ClassMetadata.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * Represents a class.
- * @since 2.3
- */
-public interface ClassMetadata extends ComponentMetadata {
-    /**
-     * Method to define the persistence modifier.
-     * @param mod persistence modifier
-     */
-    ClassMetadata setPersistenceModifier(ClassPersistenceModifier mod);
-
-    /**
-     * Accessor for the persistence modifier.
-     * @return persistence modifier
-     */
-    ClassPersistenceModifier getPersistenceModifier();
-
-    /**
-     * Add a new field to this class.
-     * @param name Name of the field
-     * @return The FieldMetadata
-     */
-    FieldMetadata newFieldMetadata(String name);
-
-    /**
-     * Add a new field to this class.
-     * @param fld The field
-     * @return The FieldMetadata
-     */
-    FieldMetadata newFieldMetadata(Field fld);
-}
diff --git a/specification/imports/ClassPersistenceModifier.java b/specification/imports/ClassPersistenceModifier.java
deleted file mode 100644
index 781f832..0000000
--- a/specification/imports/ClassPersistenceModifier.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package javax.jdo.metadata;
-
-/**
- * Enumeration of the persistence-modifier values for a class.
- * @since 2.3
- */
-public enum ClassPersistenceModifier
-{
-    PERSISTENCE_CAPABLE,
-    PERSISTENCE_AWARE,
-    NON_PERSISTENT
-}
diff --git a/specification/imports/ClassPersistenceModifier.txt b/specification/imports/ClassPersistenceModifier.txt
deleted file mode 100644
index 3f1aadf..0000000
--- a/specification/imports/ClassPersistenceModifier.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-/**
- * Enumeration of the persistence-modifier values for a class.
- * @since 2.3
- */
-public enum ClassPersistenceModifier
-{
-    PERSISTENCE_CAPABLE,
-    PERSISTENCE_AWARE,
-    NON_PERSISTENT
-}
diff --git a/specification/imports/CollectionMetadata.java b/specification/imports/CollectionMetadata.java
deleted file mode 100644
index 9eacafc..0000000
--- a/specification/imports/CollectionMetadata.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package javax.jdo.metadata;
-
-/**
- * Represents details of a collection in a field/property in a class.
- * @since 2.3
- */
-public interface CollectionMetadata extends Metadata {
-    /**
-     * Method to set the name of the element type
-     * 
-     * @param type Name of the element type
-     */
-    CollectionMetadata setElementType(String type);
-
-    /**
-     * Accessor for the element type
-     * 
-     * @return The element type
-     */
-    String getElementType();
-
-    /**
-     * Method to set whether the element is embedded
-     * 
-     * @param val Whether it is embedded
-     */
-    CollectionMetadata setEmbeddedElement(boolean val);
-
-    /**
-     * Accessor for whether the element is embedded
-     * 
-     * @return whether the element is embedded
-     */
-    Boolean getEmbeddedElement();
-
-    /**
-     * Method to set whether the element is serialised
-     * 
-     * @param val Whether it is serialised
-     */
-    CollectionMetadata setSerializedElement(boolean val);
-
-    /**
-     * Accessor for whether the element is serialised
-     * 
-     * @return whether the element is serialised
-     */
-    Boolean getSerializedElement();
-
-    /**
-     * Method to set whether the element is dependent
-     * 
-     * @param val Whether it is dependent
-     */
-    CollectionMetadata setDependentElement(boolean val);
-
-    /**
-     * Accessor for whether the element is dependent
-     * 
-     * @return whether the element is dependent
-     */
-    Boolean getDependentElement();
-}
\ No newline at end of file
diff --git a/specification/imports/CollectionMetadata.txt b/specification/imports/CollectionMetadata.txt
deleted file mode 100644
index 3515af2..0000000
--- a/specification/imports/CollectionMetadata.txt
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- * Represents details of a collection in a field/property in a class.
- * @since 2.3
- */
-public interface CollectionMetadata extends Metadata {
-    /**
-     * Method to set the name of the element type
-     * 
-     * @param type Name of the element type
-     */
-    CollectionMetadata setElementType(String type);
-
-    /**
-     * Accessor for the element type
-     * 
-     * @return The element type
-     */
-    String getElementType();
-
-    /**
-     * Method to set whether the element is embedded
-     * 
-     * @param val Whether it is embedded
-     */
-    CollectionMetadata setEmbeddedElement(boolean val);
-
-    /**
-     * Accessor for whether the element is embedded
-     * 
-     * @return whether the element is embedded
-     */
-    Boolean getEmbeddedElement();
-
-    /**
-     * Method to set whether the element is serialised
-     * 
-     * @param val Whether it is serialised
-     */
-    CollectionMetadata setSerializedElement(boolean val);
-
-    /**
-     * Accessor for whether the element is serialised
-     * 
-     * @return whether the element is serialised
-     */
-    Boolean getSerializedElement();
-
-    /**
-     * Method to set whether the element is dependent
-     * 
-     * @param val Whether it is dependent
-     */
-    CollectionMetadata setDependentElement(boolean val);
-
-    /**
-     * Accessor for whether the element is dependent
-     * 
-     * @return whether the element is dependent
-     */
-    Boolean getDependentElement();
-}
diff --git a/specification/imports/Column.txt b/specification/imports/Column.txt
deleted file mode 100644
index 88dda51..0000000
--- a/specification/imports/Column.txt
+++ /dev/null
@@ -1,73 +0,0 @@
-@Target({ElementType.FIELD, ElementType.METHOD}) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Column
-{
-    /**
-     * Name of the column.
-     * @return the name of the column
-     */
-    String name() default "";
-
-    /**
-     * Target column for this column in the other table when part of a 
-     * foreign key relation.
-     * @return the target column in the other table for this column 
-     * when part of a foreign key relation.
-     */
-    String target() default "";
-
-    /**
-     * Target member in the other class or interface for this column 
-     * when part of a bidirectional relation.
-     * @return the target member for this column when part of 
-     * a bidirectional relation.
-     */
-    String targetMember() default "";
-
-    /**
-     * JDBC Type for this column.
-     * @return JDBC type for this column
-     */
-    String jdbcType() default "";
-
-    /**
-     * SQL Type for this column.
-     * @return SQL type for this column
-     */
-    String sqlType() default "";
-
-    /**
-     * Maximum length of data stored in this column.
-     * @return the maximum length of data stored in this column
-     */
-    int length() default -1;
-
-    /**
-     * Scale for the column when handling floating point values.
-     * @return the scale for the column when handling floating point values
-     */
-    int scale() default -1;
-
-    /**
-     * Whether the column allows null values to be inserted.
-     * @return whether the column allows null values to be inserted
-     */
-    String allowsNull() default "";
-
-    /**
-     * Default value for this column.
-     * @return the default value for this column
-     */
-    String defaultValue() default "";
-
-    /**
-     * Value to be inserted when this is an "unmapped" column
-     * @return the value to be inserted when this is an "unmapped" column
-     */
-    String insertValue() default "";
-
-    /** Vendor extensions.
-     * @return the vendor extensions
-     */
-    Extension[] extensions() default {};
-}
diff --git a/specification/imports/ColumnMetadata.java b/specification/imports/ColumnMetadata.java
deleted file mode 100644
index 7ef99a8..0000000
--- a/specification/imports/ColumnMetadata.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package javax.jdo.metadata;
-
-/**
- * Represents an element in a collection/array.
- * @since 2.3
- */
-public interface ColumnMetadata extends Metadata {
-    /**
-     * Method to set the column name.
-     * 
-     * @param name Column name
-     */
-    ColumnMetadata setName(String name);
-
-    /**
-     * Accessor for the name of the column.
-     * 
-     * @return The name
-     */
-    String getName();
-
-    /**
-     * Method to set the target column (at the other side of the relation).
-     * 
-     * @param target Target column
-     */
-    ColumnMetadata setTarget(String target);
-
-    /**
-     * Accessor for the name of the target column.
-     * 
-     * @return Target column name
-     */
-    String getTarget();
-
-    /**
-     * Method to set the target field (at the other side of the relation).
-     * 
-     * @param target Target field
-     */
-    ColumnMetadata setTargetField(String target);
-
-    /**
-     * Accessor for the name of the target field.
-     * 
-     * @return Target field name
-     */
-    String getTargetField();
-
-    /**
-     * Method to set the JDBC type.
-     * 
-     * @param type JDBC Type
-     */
-    ColumnMetadata setJDBCType(String type);
-
-    /**
-     * Accessor for the JDBC Type
-     * 
-     * @return JDBC Type
-     */
-    String getJDBCType();
-
-    /**
-     * Method to set the SQL type.
-     * 
-     * @param type SQL Type
-     */
-    ColumnMetadata setSQLType(String type);
-
-    /**
-     * Accessor for the SQL Type
-     * 
-     * @return SQL Type
-     */
-    String getSQLType();
-
-    /**
-     * Method to set the length
-     * 
-     * @param len Length
-     */
-    ColumnMetadata setLength(int len);
-
-    /**
-     * Accessor for the length
-     * 
-     * @return length
-     */
-    Integer getLength();
-
-    /**
-     * Method to set the scale
-     * 
-     * @param scale scale
-     */
-    ColumnMetadata setScale(int scale);
-
-    /**
-     * Accessor for the scale
-     * 
-     * @return scale
-     */
-    Integer getScale();
-
-    /**
-     * Method to set whether it allows null.
-     * 
-     * @param nulls Allows null?
-     */
-    ColumnMetadata setAllowsNull(boolean nulls);
-
-    /**
-     * Accessor for whether the column allows null.
-     * 
-     * @return Allows null?
-     */
-    Boolean getAllowsNull();
-
-    /**
-     * Method to set the default value.
-     * 
-     * @param val Default value
-     */
-    ColumnMetadata setDefaultValue(String val);
-
-    /**
-     * Accessor for the default value
-     * 
-     * @return Default value
-     */
-    String getDefaultValue();
-
-    /**
-     * Method to set the insert value (for columns with no field/property).
-     * 
-     * @param val Insert value
-     */
-    ColumnMetadata setInsertValue(String val);
-
-    /**
-     * Accessor for the insert value (for columns with no field/property)
-     * 
-     * @return Insert value
-     */
-    String getInsertValue();
-}
\ No newline at end of file
diff --git a/specification/imports/ColumnMetadata.txt b/specification/imports/ColumnMetadata.txt
deleted file mode 100644
index 1e4e20d..0000000
--- a/specification/imports/ColumnMetadata.txt
+++ /dev/null
@@ -1,145 +0,0 @@
-/**
- * Represents an element in a collection/array.
- * @since 2.3
- */
-public interface ColumnMetadata extends Metadata {
-    /**
-     * Method to set the column name.
-     * 
-     * @param name Column name
-     */
-    ColumnMetadata setName(String name);
-
-    /**
-     * Accessor for the name of the column.
-     * 
-     * @return The name
-     */
-    String getName();
-
-    /**
-     * Method to set the target column (at the other side of the relation).
-     * 
-     * @param target Target column
-     */
-    ColumnMetadata setTarget(String target);
-
-    /**
-     * Accessor for the name of the target column.
-     * 
-     * @return Target column name
-     */
-    String getTarget();
-
-    /**
-     * Method to set the target field (at the other side of the relation).
-     * 
-     * @param target Target field
-     */
-    ColumnMetadata setTargetField(String target);
-
-    /**
-     * Accessor for the name of the target field.
-     * 
-     * @return Target field name
-     */
-    String getTargetField();
-
-    /**
-     * Method to set the JDBC type.
-     * 
-     * @param type JDBC Type
-     */
-    ColumnMetadata setJDBCType(String type);
-
-    /**
-     * Accessor for the JDBC Type
-     * 
-     * @return JDBC Type
-     */
-    String getJDBCType();
-
-    /**
-     * Method to set the SQL type.
-     * 
-     * @param type SQL Type
-     */
-    ColumnMetadata setSQLType(String type);
-
-    /**
-     * Accessor for the SQL Type
-     * 
-     * @return SQL Type
-     */
-    String getSQLType();
-
-    /**
-     * Method to set the length
-     * 
-     * @param len Length
-     */
-    ColumnMetadata setLength(int len);
-
-    /**
-     * Accessor for the length
-     * 
-     * @return length
-     */
-    Integer getLength();
-
-    /**
-     * Method to set the scale
-     * 
-     * @param scale scale
-     */
-    ColumnMetadata setScale(int scale);
-
-    /**
-     * Accessor for the scale
-     * 
-     * @return scale
-     */
-    Integer getScale();
-
-    /**
-     * Method to set whether it allows null.
-     * 
-     * @param nulls Allows null?
-     */
-    ColumnMetadata setAllowsNull(boolean nulls);
-
-    /**
-     * Accessor for whether the column allows null.
-     * 
-     * @return Allows null?
-     */
-    Boolean getAllowsNull();
-
-    /**
-     * Method to set the default value.
-     * 
-     * @param val Default value
-     */
-    ColumnMetadata setDefaultValue(String val);
-
-    /**
-     * Accessor for the default value
-     * 
-     * @return Default value
-     */
-    String getDefaultValue();
-
-    /**
-     * Method to set the insert value (for columns with no field/property).
-     * 
-     * @param val Insert value
-     */
-    ColumnMetadata setInsertValue(String val);
-
-    /**
-     * Accessor for the insert value (for columns with no field/property)
-     * 
-     * @return Insert value
-     */
-    String getInsertValue();
-}
diff --git a/specification/imports/Columns.txt b/specification/imports/Columns.txt
deleted file mode 100644
index b15ee9a..0000000
--- a/specification/imports/Columns.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-@Target({ElementType.FIELD, ElementType.METHOD, ElementType.TYPE}) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Columns
-{
-    /** The columns annotation information.
-     * @return the columns
-     */
-    Column[] value();
-}
diff --git a/specification/imports/ComponentMetadata.java b/specification/imports/ComponentMetadata.java
deleted file mode 100644
index 16d215b..0000000
--- a/specification/imports/ComponentMetadata.java
+++ /dev/null
@@ -1,374 +0,0 @@
-/**
- * Represents a class or interface. Extended for the specifics of those cases.
- * @since 2.3
- */
-public interface ComponentMetadata extends Metadata {
-    /**
-     * Accessor for the name of this component (set on construction).
-     * 
-     * @return The name
-     */
-    String getName();
-
-    /**
-     * Method to define the identity type to use.
-     * 
-     * @param id identity type
-     */
-    ComponentMetadata setIdentityType(IdentityType id);
-
-    /**
-     * Accessor for the identity type to use.
-     * 
-     * @return identity type
-     */
-    IdentityType getIdentityType();
-
-    /**
-     * Method to set the object-id (PK) class.
-     * 
-     * @param idclass Object-id class
-     */
-    ComponentMetadata setObjectIdClass(String idclass);
-
-    /**
-     * Accessor for the object-id class (if defined).
-     * 
-     * @return The object-id class
-     */
-    String getObjectIdClass();
-
-    /**
-     * Method to set whether the component requires an extent.
-     * 
-     * @param extent Requires extent?
-     */
-    ComponentMetadata setRequiresExtent(boolean extent);
-
-    /**
-     * Accessor for whether the component requires an extent.
-     * 
-     * @return Requires extent?
-     */
-    boolean getRequiresExtent();
-
-    /**
-     * Method to set whether this is detachable
-     * 
-     * @param detachable Detachable?
-     */
-    ComponentMetadata setDetachable(boolean detachable);
-
-    /**
-     * Accessor for whether this is detachable.
-     * 
-     * @return Detachable?
-     */
-    boolean getDetachable();
-
-    /**
-     * Method to set whether this is cacheable
-     * 
-     * @param cacheable Cacheable?
-     */
-    ComponentMetadata setCacheable(boolean cacheable);
-
-    /**
-     * Accessor for whether this is cacheable.
-     * 
-     * @return Detachable?
-     */
-    boolean getCacheable();
-
-    /**
-     * Method to set whether it is stored only as embedded in other objects.
-     * 
-     * @param embedded Whether it is only stored embedded
-     */
-    ComponentMetadata setEmbeddedOnly(boolean embedded);
-
-    /**
-     * Accessor for whether this is embedded only.
-     * 
-     * @return Only stored as embedded
-     */
-    Boolean getEmbeddedOnly();
-
-    /**
-     * Method to set the catalog (ORM) for this component
-     * 
-     * @param catalog Catalog name
-     */
-    ComponentMetadata setCatalog(String catalog);
-
-    /**
-     * Accessor for the catalog (ORM) for this component
-     * 
-     * @return The catalog
-     */
-    String getCatalog();
-
-    /**
-     * Method to set the schema (ORM) for this component
-     * 
-     * @param schema Schema name
-     */
-    ComponentMetadata setSchema(String schema);
-
-    /**
-     * Accessor for the schema (ORM) for this component
-     * 
-     * @return The schema
-     */
-    String getSchema();
-
-    /**
-     * Method to set the table name.
-     * 
-     * @param table Table name
-     */
-    ComponentMetadata setTable(String table);
-
-    /**
-     * Accessor for the name of the table.
-     * 
-     * @return The name
-     */
-    String getTable();
-
-    /**
-     * Method to define the inheritance metadata.
-     * 
-     * @return The InheritanceMetadata
-     */
-    InheritanceMetadata newInheritanceMetadata();
-
-    /**
-     * Accessor for the inheritance (if any).
-     * 
-     * @return inheritance
-     */
-    InheritanceMetadata getInheritanceMetadata();
-
-    /**
-     * Method to define the version metadata.
-     * 
-     * @return The VersionMetadata
-     */
-    VersionMetadata newVersionMetadata();
-
-    /**
-     * Accessor for the version (if any).
-     * 
-     * @return version
-     */
-    VersionMetadata getVersionMetadata();
-
-    /**
-     * Method to define the datastore identity metadata details.
-     * 
-     * @return The DatastoreIdentityMetadata
-     */
-    DatastoreIdentityMetadata newDatastoreIdentityMetadata();
-
-    /**
-     * Accessor for the datastore identity details.
-     * 
-     * @return datastore identity details
-     */
-    DatastoreIdentityMetadata getDatastoreIdentityMetadata();
-
-    /**
-     * Method to define the primary key details.
-     * 
-     * @return The PrimaryKeyMetadata
-     */
-    PrimaryKeyMetadata newPrimaryKeyMetadata();
-
-    /**
-     * Accessor for the primary key (if any).
-     * 
-     * @return primary key details
-     */
-    PrimaryKeyMetadata getPrimaryKeyMetadata();
-
-    /**
-     * Accessor for all joins(s) defined on the component.
-     * 
-     * @return The join(s)
-     */
-    JoinMetadata[] getJoins();
-
-    /**
-     * Add a join for this component.
-     * 
-     * @return The JoinMetadata
-     */
-    JoinMetadata newJoinMetadata();
-
-    /**
-     * Accessor for the number of join(s) defined for this component.
-     * 
-     * @return The number of join(s)
-     */
-    int getNumberOfJoins();
-
-    /**
-     * Accessor for all fk(s) defined on the component.
-     * 
-     * @return The fk(s)
-     */
-    ForeignKeyMetadata[] getForeignKeys();
-
-    /**
-     * Add a new FK for this component.
-     * 
-     * @return The ForeignKeyMetadata
-     */
-    ForeignKeyMetadata newForeignKeyMetadata();
-
-    /**
-     * Accessor for the number of FKs defined for this component.
-     * 
-     * @return The number of FKs
-     */
-    int getNumberOfForeignKeys();
-
-    /**
-     * Accessor for all index(s) defined on the component.
-     * 
-     * @return The index(s)
-     */
-    IndexMetadata[] getIndices();
-
-    /**
-     * Add a new index for this component.
-     * 
-     * @return The IndexMetadata
-     */
-    IndexMetadata newIndexMetadata();
-
-    /**
-     * Accessor for the number of indices defined for this component.
-     * 
-     * @return The number of indices
-     */
-    int getNumberOfIndices();
-
-    /**
-     * Accessor for all unique constraints defined on the component.
-     * 
-     * @return The unique constraints
-     */
-    UniqueMetadata[] getUniques();
-
-    /**
-     * Add a new unique constraint for this component.
-     * 
-     * @return The UniqueMetadata
-     */
-    UniqueMetadata newUniqueMetadata();
-
-    /**
-     * Accessor for the number of unique constraints defined for this component.
-     * 
-     * @return The number of unique constraints
-     */
-    int getNumberOfUniques();
-
-    /**
-     * Accessor for all fields/properties defined on the component.
-     * 
-     * @return The members
-     */
-    MemberMetadata[] getMembers();
-
-    /**
-     * Accessor for the number of fields/properties defined for this component.
-     * 
-     * @return The number of members
-     */
-    int getNumberOfMembers();
-
-    /**
-     * Add a new property for this component.
-     * 
-     * @param name Name of the property
-     * @return The PropertyMetadata
-     */
-    PropertyMetadata newPropertyMetadata(String name);
-
-    /**
-     * Add a new property for this component.
-     * 
-     * @param method Java bean getter/setter method
-     * @return The PropertyMetadata
-     */
-    PropertyMetadata newPropertyMetadata(Method method);
-
-    /**
-     * Accessor for all named queries defined on the component.
-     * 
-     * @return The queries
-     */
-    QueryMetadata[] getQueries();
-
-    /**
-     * Add a new query for this component.
-     * 
-     * @param name
-     *            Name of the query to add
-     * @return The QueryMetadata
-     */
-    QueryMetadata newQueryMetadata(String name);
-
-    /**
-     * Accessor for the number of named queries defined for this component.
-     * 
-     * @return The number of named queries
-     */
-    int getNumberOfQueries();
-
-    /**
-     * Accessor for all FetchGroup defined on the component.
-     * 
-     * @return The FetchGroups
-     */
-    FetchGroupMetadata[] getFetchGroups();
-
-    /**
-     * Add a new FetchGroup for this component.
-     * 
-     * @param name Name of the FetchGroup
-     * @return The FetchGroupMetadata
-     */
-    FetchGroupMetadata newFetchGroupMetadata(String name);
-
-    /**
-     * Accessor for the number of fetchGroups defined for this component.
-     * 
-     * @return The number of fetch groups
-     */
-    int getNumberOfFetchGroups();
-
-    /**
-     * Accessor for all column(s) defined on the join.
-     * 
-     * @return The column(s)
-     */
-    ColumnMetadata[] getColumns();
-
-    /**
-     * Add a new column for this join.
-     * 
-     * @return The ColumnMetadata
-     */
-    ColumnMetadata newColumnMetadata();
-
-    /**
-     * Accessor for the number of columns defined for this join.
-     * 
-     * @return The number of columns
-     */
-    int getNumberOfColumns();
-}
diff --git a/specification/imports/ComponentMetadata.txt b/specification/imports/ComponentMetadata.txt
deleted file mode 100644
index 85bcea4..0000000
--- a/specification/imports/ComponentMetadata.txt
+++ /dev/null
@@ -1,388 +0,0 @@
-/**
- * Represents a class or interface. Extended for the specifics of those cases.
- * @since 2.3
- */
-public interface ComponentMetadata extends Metadata {
-    /**
-     * Accessor for the name of this component (set on construction).
-     * 
-     * @return The name
-     */
-    String getName();
-
-    /**
-     * Method to define the identity type to use.
-     * 
-     * @param id identity type
-     */
-    ComponentMetadata setIdentityType(IdentityType id);
-
-    /**
-     * Accessor for the identity type to use.
-     * 
-     * @return identity type
-     */
-    IdentityType getIdentityType();
-
-    /**
-     * Method to set the object-id (PK) class.
-     * 
-     * @param idclass Object-id class
-     */
-    ComponentMetadata setObjectIdClass(String idclass);
-
-    /**
-     * Accessor for the object-id class (if defined).
-     * 
-     * @return The object-id class
-     */
-    String getObjectIdClass();
-
-    /**
-     * Method to set whether the component requires an extent.
-     * 
-     * @param extent Requires extent?
-     */
-    ComponentMetadata setRequiresExtent(boolean extent);
-
-    /**
-     * Accessor for whether the component requires an extent.
-     * 
-     * @return Requires extent?
-     */
-    boolean getRequiresExtent();
-
-    /**
-     * Method to set whether this is detachable
-     * 
-     * @param detachable Detachable?
-     */
-    ComponentMetadata setDetachable(boolean detachable);
-
-    /**
-     * Accessor for whether this is detachable.
-     * 
-     * @return Detachable?
-     */
-    boolean getDetachable();
-
-    /**
-     * Method to set whether this is cacheable
-     * 
-     * @param cacheable Cacheable?
-     */
-    ComponentMetadata setCacheable(boolean cacheable);
-
-    /**
-     * Accessor for whether this is cacheable.
-     * 
-     * @return Cacheable?
-     */
-    boolean getCacheable();
-
-    /**
-     * Method to set whether this is serializeRead
-     * 
-     * @param serializeRead serializeRead?
-     */
-    ComponentMetadata setSerializeRead(boolean serializeRead);
-
-    /**
-     * Accessor for whether this is serializeRead.
-     * 
-     * @return serializeRead?
-     */
-    boolean getSerializeRead();
-
-    /**
-     * Method to set whether it is stored only as embedded in other objects.
-     * 
-     * @param embedded Whether it is only stored embedded
-     */
-    ComponentMetadata setEmbeddedOnly(boolean embedded);
-
-    /**
-     * Accessor for whether this is embedded only.
-     * 
-     * @return Only stored as embedded
-     */
-    Boolean getEmbeddedOnly();
-
-    /**
-     * Method to set the catalog (ORM) for this component
-     * 
-     * @param catalog Catalog name
-     */
-    ComponentMetadata setCatalog(String catalog);
-
-    /**
-     * Accessor for the catalog (ORM) for this component
-     * 
-     * @return The catalog
-     */
-    String getCatalog();
-
-    /**
-     * Method to set the schema (ORM) for this component
-     * 
-     * @param schema Schema name
-     */
-    ComponentMetadata setSchema(String schema);
-
-    /**
-     * Accessor for the schema (ORM) for this component
-     * 
-     * @return The schema
-     */
-    String getSchema();
-
-    /**
-     * Method to set the table name.
-     * 
-     * @param table Table name
-     */
-    ComponentMetadata setTable(String table);
-
-    /**
-     * Accessor for the name of the table.
-     * 
-     * @return The name
-     */
-    String getTable();
-
-    /**
-     * Method to define the inheritance metadata.
-     * 
-     * @return The InheritanceMetadata
-     */
-    InheritanceMetadata newInheritanceMetadata();
-
-    /**
-     * Accessor for the inheritance (if any).
-     * 
-     * @return inheritance
-     */
-    InheritanceMetadata getInheritanceMetadata();
-
-    /**
-     * Method to define the version metadata.
-     * 
-     * @return The VersionMetadata
-     */
-    VersionMetadata newVersionMetadata();
-
-    /**
-     * Accessor for the version (if any).
-     * 
-     * @return version
-     */
-    VersionMetadata getVersionMetadata();
-
-    /**
-     * Method to define the datastore identity metadata details.
-     * 
-     * @return The DatastoreIdentityMetadata
-     */
-    DatastoreIdentityMetadata newDatastoreIdentityMetadata();
-
-    /**
-     * Accessor for the datastore identity details.
-     * 
-     * @return datastore identity details
-     */
-    DatastoreIdentityMetadata getDatastoreIdentityMetadata();
-
-    /**
-     * Method to define the primary key details.
-     * 
-     * @return The PrimaryKeyMetadata
-     */
-    PrimaryKeyMetadata newPrimaryKeyMetadata();
-
-    /**
-     * Accessor for the primary key (if any).
-     * 
-     * @return primary key details
-     */
-    PrimaryKeyMetadata getPrimaryKeyMetadata();
-
-    /**
-     * Accessor for all joins(s) defined on the component.
-     * 
-     * @return The join(s)
-     */
-    JoinMetadata[] getJoins();
-
-    /**
-     * Add a join for this component.
-     * 
-     * @return The JoinMetadata
-     */
-    JoinMetadata newJoinMetadata();
-
-    /**
-     * Accessor for the number of join(s) defined for this component.
-     * 
-     * @return The number of join(s)
-     */
-    int getNumberOfJoins();
-
-    /**
-     * Accessor for all fk(s) defined on the component.
-     * 
-     * @return The fk(s)
-     */
-    ForeignKeyMetadata[] getForeignKeys();
-
-    /**
-     * Add a new FK for this component.
-     * 
-     * @return The ForeignKeyMetadata
-     */
-    ForeignKeyMetadata newForeignKeyMetadata();
-
-    /**
-     * Accessor for the number of FKs defined for this component.
-     * 
-     * @return The number of FKs
-     */
-    int getNumberOfForeignKeys();
-
-    /**
-     * Accessor for all index(s) defined on the component.
-     * 
-     * @return The index(s)
-     */
-    IndexMetadata[] getIndices();
-
-    /**
-     * Add a new index for this component.
-     * 
-     * @return The IndexMetadata
-     */
-    IndexMetadata newIndexMetadata();
-
-    /**
-     * Accessor for the number of indices defined for this component.
-     * 
-     * @return The number of indices
-     */
-    int getNumberOfIndices();
-
-    /**
-     * Accessor for all unique constraints defined on the component.
-     * 
-     * @return The unique constraints
-     */
-    UniqueMetadata[] getUniques();
-
-    /**
-     * Add a new unique constraint for this component.
-     * 
-     * @return The UniqueMetadata
-     */
-    UniqueMetadata newUniqueMetadata();
-
-    /**
-     * Accessor for the number of unique constraints defined for this component.
-     * 
-     * @return The number of unique constraints
-     */
-    int getNumberOfUniques();
-
-    /**
-     * Accessor for all fields/properties defined on the component.
-     * 
-     * @return The members
-     */
-    MemberMetadata[] getMembers();
-
-    /**
-     * Accessor for the number of fields/properties defined for this component.
-     * 
-     * @return The number of members
-     */
-    int getNumberOfMembers();
-
-    /**
-     * Add a new property for this component.
-     * 
-     * @param name Name of the property
-     * @return The PropertyMetadata
-     */
-    PropertyMetadata newPropertyMetadata(String name);
-
-    /**
-     * Add a new property for this component.
-     * 
-     * @param method Java bean getter/setter method
-     * @return The PropertyMetadata
-     */
-    PropertyMetadata newPropertyMetadata(Method method);
-
-    /**
-     * Accessor for all named queries defined on the component.
-     * 
-     * @return The queries
-     */
-    QueryMetadata[] getQueries();
-
-    /**
-     * Add a new query for this component.
-     * 
-     * @param name
-     *            Name of the query to add
-     * @return The QueryMetadata
-     */
-    QueryMetadata newQueryMetadata(String name);
-
-    /**
-     * Accessor for the number of named queries defined for this component.
-     * 
-     * @return The number of named queries
-     */
-    int getNumberOfQueries();
-
-    /**
-     * Accessor for all FetchGroup defined on the component.
-     * 
-     * @return The FetchGroups
-     */
-    FetchGroupMetadata[] getFetchGroups();
-
-    /**
-     * Add a new FetchGroup for this component.
-     * 
-     * @param name Name of the FetchGroup
-     * @return The FetchGroupMetadata
-     */
-    FetchGroupMetadata newFetchGroupMetadata(String name);
-
-    /**
-     * Accessor for the number of fetchGroups defined for this component.
-     * 
-     * @return The number of fetch groups
-     */
-    int getNumberOfFetchGroups();
-
-    /**
-     * Accessor for all column(s) defined on the join.
-     * 
-     * @return The column(s)
-     */
-    ColumnMetadata[] getColumns();
-
-    /**
-     * Add a new column for this join.
-     * 
-     * @return The ColumnMetadata
-     */
-    ColumnMetadata newColumnMetadata();
-
-    /**
-     * Accessor for the number of columns defined for this join.
-     * 
-     * @return The number of columns
-     */
-    int getNumberOfColumns();
-}
diff --git a/specification/imports/Constants.txt b/specification/imports/Constants.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/specification/imports/DatastoreIdentity.txt b/specification/imports/DatastoreIdentity.txt
deleted file mode 100644
index 4c079ed..0000000
--- a/specification/imports/DatastoreIdentity.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-@Target(ElementType.TYPE) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface DatastoreIdentity
-{
-    /**
-     * Strategy to use when generating datastore identities
-     * @return Strategy to use when generating datastore identities
-     */
-    IdGeneratorStrategy strategy() default IdGeneratorStrategy.UNSPECIFIED;
-
-    /** Custom strategy to use to generate the value for the identity. 
-     * If customStrategy is non-empty, then strategy must be UNSPECIFIED.
-     * @return the custom strategy
-     */
-    String customStrategy() default "";
-
-    /**
-     * Name of sequence to use when the strategy involves sequences
-     * @return Name of sequence to use when the strategy involves sequences
-     */
-    String sequence() default "";
-
-    /**
-     * Name of the column for the datastore identity
-     * @return Name of the column for the datastore identity
-     */
-    String column() default "";
-
-    /**
-     * The column(s) making up the datastore identity.
-     * @return The column(s) making up the datastore identity.
-     */
-    Column[] columns() default {};
-
-    /** Vendor extensions. 
-     * @return the vendor extensions
-     */
-    Extension[] extensions() default {};
-}
diff --git a/specification/imports/DatastoreIdentityMetadata.java b/specification/imports/DatastoreIdentityMetadata.java
deleted file mode 100644
index 76a8fae..0000000
--- a/specification/imports/DatastoreIdentityMetadata.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package javax.jdo.metadata;
-
-import javax.jdo.annotations.IdGeneratorStrategy;
-
-/**
- * Represents the datastore identity of a class.
- * @since 2.3
- */
-public interface DatastoreIdentityMetadata extends Metadata {
-    /**
-     * Method to set the datastore identity column name.
-     * 
-     * @param column Name of the datastore identity column
-     */
-    DatastoreIdentityMetadata setColumn(String column);
-
-    /**
-     * Accessor for the datastore identity column name
-     * 
-     * @return The column name
-     */
-    String getColumn();
-
-    /**
-     * Method to set the identity generation strategy.
-     * 
-     * @param strategy The strategy
-     */
-    DatastoreIdentityMetadata setStrategy(IdGeneratorStrategy strategy);
-
-    /**
-     * Accessor for the identity generation strategy.
-     * 
-     * @return The strategy
-     */
-    IdGeneratorStrategy getStrategy();
-
-    /**
-     * Method to set the custom identity generation strategy.
-     * 
-     * @param strategy The strategy
-     */
-    DatastoreIdentityMetadata setCustomStrategy(String strategy);
-
-    /**
-     * Accessor for the custom strategy (overriding "strategy").
-     * 
-     * @return The strategy
-     */
-    String getCustomStrategy();
-
-    /**
-     * Method to set the sequence key (when using "sequence" strategy)
-     * 
-     * @param seq Sequence key
-     */
-    DatastoreIdentityMetadata setSequence(String seq);
-
-    /**
-     * Accessor for the sequence key (when using "sequence" strategy)
-     * 
-     * @return The sequence
-     */
-    String getSequence();
-
-    /**
-     * Accessor for all column(s) defined on the datastore identity.
-     * 
-     * @return The column(s)
-     */
-    ColumnMetadata[] getColumns();
-
-    /**
-     * Add a new column for this datastore identity.
-     * 
-     * @return The ColumnMetadata
-     */
-    ColumnMetadata newColumnMetadata();
-
-    /**
-     * Accessor for the number of columns defined for this datastore identity.
-     * 
-     * @return The number of columns
-     */
-    int getNumberOfColumns();
-}
\ No newline at end of file
diff --git a/specification/imports/DatastoreIdentityMetadata.txt b/specification/imports/DatastoreIdentityMetadata.txt
deleted file mode 100644
index 2a63660..0000000
--- a/specification/imports/DatastoreIdentityMetadata.txt
+++ /dev/null
@@ -1,82 +0,0 @@
-/**
- * Represents the datastore identity of a class.
- * @since 2.3
- */
-public interface DatastoreIdentityMetadata extends Metadata {
-    /**
-     * Method to set the datastore identity column name.
-     * 
-     * @param column Name of the datastore identity column
-     */
-    DatastoreIdentityMetadata setColumn(String column);
-
-    /**
-     * Accessor for the datastore identity column name
-     * 
-     * @return The column name
-     */
-    String getColumn();
-
-    /**
-     * Method to set the identity generation strategy.
-     * 
-     * @param strategy The strategy
-     */
-    DatastoreIdentityMetadata setStrategy(IdGeneratorStrategy strategy);
-
-    /**
-     * Accessor for the identity generation strategy.
-     * 
-     * @return The strategy
-     */
-    IdGeneratorStrategy getStrategy();
-
-    /**
-     * Method to set the custom identity generation strategy.
-     * 
-     * @param strategy The strategy
-     */
-    DatastoreIdentityMetadata setCustomStrategy(String strategy);
-
-    /**
-     * Accessor for the custom strategy (overriding "strategy").
-     * 
-     * @return The strategy
-     */
-    String getCustomStrategy();
-
-    /**
-     * Method to set the sequence key (when using "sequence" strategy)
-     * 
-     * @param seq Sequence key
-     */
-    DatastoreIdentityMetadata setSequence(String seq);
-
-    /**
-     * Accessor for the sequence key (when using "sequence" strategy)
-     * 
-     * @return The sequence
-     */
-    String getSequence();
-
-    /**
-     * Accessor for all column(s) defined on the datastore identity.
-     * 
-     * @return The column(s)
-     */
-    ColumnMetadata[] getColumns();
-
-    /**
-     * Add a new column for this datastore identity.
-     * 
-     * @return The ColumnMetadata
-     */
-    ColumnMetadata newColumnMetadata();
-
-    /**
-     * Accessor for the number of columns defined for this datastore identity.
-     * 
-     * @return The number of columns
-     */
-    int getNumberOfColumns();
-}
diff --git a/specification/imports/Discriminator.txt b/specification/imports/Discriminator.txt
deleted file mode 100644
index 7a73362..0000000
--- a/specification/imports/Discriminator.txt
+++ /dev/null
@@ -1,44 +0,0 @@
-@Target(ElementType.TYPE) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Discriminator
-{
-    /**
-     * Strategy to use for the discriminator. The discriminator determines
-     * the class associated with a row in the datastore.
-     * @return the strategy to use for the discriminator
-     */
-    DiscriminatorStrategy strategy() 
-        default DiscriminatorStrategy.UNSPECIFIED;
-
-    /** Custom strategy to use for the discriminator. 
-     * If customStrategy is non-empty, then strategy must be UNSPECIFIED.
-     * @return the custom strategy
-     */
-    String customStrategy() default "";
-
-    /**
-     * Whether the discriminator is indexed.
-     * @return whether the discriminator is indexed
-     */
-    String indexed() default "";
-
-    /**
-     * Name of the column for the discriminator
-     * @return the name of the column for the discriminator
-     */
-    String column() default "";
-
-    /**
-     * The value for the discriminator for objects of this class 
-     * when using "value-map" strategy.
-     * @return The value for the discriminator for objects of this class 
-     * when using "value-map" strategy
-     */
-    String value() default "";
-
-    /**
-     * The column(s) making up the discriminator.
-     * @return the column(s) making up the discriminator
-     */
-    Column[] columns() default {};
-}
diff --git a/specification/imports/DiscriminatorMetadata.java b/specification/imports/DiscriminatorMetadata.java
deleted file mode 100644
index 267735e..0000000
--- a/specification/imports/DiscriminatorMetadata.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package javax.jdo.metadata;
-
-import javax.jdo.annotations.DiscriminatorStrategy;
-
-/**
- * Represents the discriminator for inheritance purposes for this class.
- * @since 2.3
- */
-public interface DiscriminatorMetadata extends Metadata {
-    /**
-     * Method to set the discriminator column.
-     * 
-     * @param column Name of the discriminator clumn
-     */
-    DiscriminatorMetadata setColumn(String column);
-
-    /**
-     * Accessor for the discriminator column name
-     * 
-     * @return The column name
-     */
-    String getColumn();
-
-    /**
-     * Method to set the discriminator value (when using "value-map" strategy).
-     * 
-     * @param val Value for the discriminator for this class
-     */
-    DiscriminatorMetadata setValue(String val);
-
-    /**
-     * Accessor for the discriminator value (when using "value-map" strategy).
-     * 
-     * @return The value
-     */
-    String getValue();
-
-    /**
-     * Method to set the discriminator strategy.
-     * 
-     * @param strategy The strategy
-     */
-    DiscriminatorMetadata setStrategy(DiscriminatorStrategy strategy);
-
-    /**
-     * Accessor for the discriminator strategy.
-     * 
-     * @return The strategy
-     */
-    DiscriminatorStrategy getStrategy();
-
-    /**
-     * Method to set whether indexed.
-     * 
-     * @param indexed Whether indexed (true | false | unique)
-     */
-    DiscriminatorMetadata setIndexed(Indexed indexed);
-
-    /**
-     * Accessor for whether indexed (true|false|unique)
-     * 
-     * @return Indexed?
-     */
-    Indexed getIndexed();
-
-    /**
-     * Accessor for all column(s) defined on the discriminator.
-     * 
-     * @return The column(s)
-     */
-    ColumnMetadata[] getColumns();
-
-    /**
-     * Add a new column for this discriminator.
-     * 
-     * @return The ColumnMetadata
-     */
-    ColumnMetadata newColumnMetadata();
-
-    /**
-     * Accessor for the number of columns defined for this discriminator.
-     * 
-     * @return The number of columns
-     */
-    int getNumberOfColumns();
-
-    /**
-     * Method to set the index metadata for the discriminator
-     * 
-     * @return The IndexMetadata
-     */
-    IndexMetadata newIndexMetadata();
-
-    /**
-     * Accessor for any index metadata for the discriminator
-     * 
-     * @return Index metadata
-     */
-    IndexMetadata getIndexMetadata();
-}
\ No newline at end of file
diff --git a/specification/imports/DiscriminatorMetadata.txt b/specification/imports/DiscriminatorMetadata.txt
deleted file mode 100644
index a5344d6..0000000
--- a/specification/imports/DiscriminatorMetadata.txt
+++ /dev/null
@@ -1,96 +0,0 @@
-/**
- * Represents the discriminator for inheritance purposes for this class.
- * @since 2.3
- */
-public interface DiscriminatorMetadata extends Metadata {
-    /**
-     * Method to set the discriminator column.
-     * 
-     * @param column Name of the discriminator clumn
-     */
-    DiscriminatorMetadata setColumn(String column);
-
-    /**
-     * Accessor for the discriminator column name
-     * 
-     * @return The column name
-     */
-    String getColumn();
-
-    /**
-     * Method to set the discriminator value (when using "value-map" strategy).
-     * 
-     * @param val Value for the discriminator for this class
-     */
-    DiscriminatorMetadata setValue(String val);
-
-    /**
-     * Accessor for the discriminator value (when using "value-map" strategy).
-     * 
-     * @return The value
-     */
-    String getValue();
-
-    /**
-     * Method to set the discriminator strategy.
-     * 
-     * @param strategy The strategy
-     */
-    DiscriminatorMetadata setStrategy(DiscriminatorStrategy strategy);
-
-    /**
-     * Accessor for the discriminator strategy.
-     * 
-     * @return The strategy
-     */
-    DiscriminatorStrategy getStrategy();
-
-    /**
-     * Method to set whether indexed.
-     * 
-     * @param indexed Whether indexed (true | false | unique)
-     */
-    DiscriminatorMetadata setIndexed(Indexed indexed);
-
-    /**
-     * Accessor for whether indexed (true|false|unique)
-     * 
-     * @return Indexed?
-     */
-    Indexed getIndexed();
-
-    /**
-     * Accessor for all column(s) defined on the discriminator.
-     * 
-     * @return The column(s)
-     */
-    ColumnMetadata[] getColumns();
-
-    /**
-     * Add a new column for this discriminator.
-     * 
-     * @return The ColumnMetadata
-     */
-    ColumnMetadata newColumnMetadata();
-
-    /**
-     * Accessor for the number of columns defined for this discriminator.
-     * 
-     * @return The number of columns
-     */
-    int getNumberOfColumns();
-
-    /**
-     * Method to set the index metadata for the discriminator
-     * 
-     * @return The IndexMetadata
-     */
-    IndexMetadata newIndexMetadata();
-
-    /**
-     * Accessor for any index metadata for the discriminator
-     * 
-     * @return Index metadata
-     */
-    IndexMetadata getIndexMetadata();
-}
diff --git a/specification/imports/DiscriminatorStrategy.txt b/specification/imports/DiscriminatorStrategy.txt
deleted file mode 100644
index 153f29b..0000000
--- a/specification/imports/DiscriminatorStrategy.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-
-public enum DiscriminatorStrategy
-{
-    UNSPECIFIED,
-    NONE,
-    VALUE_MAP,
-    CLASS_NAME
-}
diff --git a/specification/imports/Element.txt b/specification/imports/Element.txt
deleted file mode 100644
index 173ddaf..0000000
--- a/specification/imports/Element.txt
+++ /dev/null
@@ -1,115 +0,0 @@
-@Target({ElementType.FIELD, ElementType.METHOD}) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Element
-{
-    /**
-     * Types of the elements. This can be determined if using JDK1.5 generics
-     * but is required otherwise. Multiple types can be specified if the
-     * implementation supports multiple types.
-     * @return the types of elements
-     */
-    Class[] types() default {};
-
-    /**
-     * Whether the element is to be stored serialized (into a join table)
-     * @return whether the element is to be stored serialized 
-     * (into a join table)
-     */
-    String serialized() default "";
-
-    /** Whether this element is embedded. 
-     * @return whether this element is embedded
-     */
-    String embedded() default "";
-
-    /**
-     * The embedded mapping for the element.
-     * @return the embedded mapping for the element
-     */
-    Embedded[] embeddedMapping() default {};
-
-    /**
-     * Whether the element is dependent on the owner, and will be deleted 
-     * when the owner is deleted.
-     * @return whether the element is dependent on the owner, and will be 
-     * deleted when the owner is deleted
-     */
-    String dependent() default "";
-
-    /**
-     * Name of the table for the element.
-     * @return name of the table for the element
-     */
-    String table() default "";
-
-    /**
-     * Name of the column to store the element in.
-     * @return name of the column to store the element in
-     */
-    String column() default "";
-
-    /**
-     * Delete action to apply to any foreign key for the element.
-     * @return delete action to apply to any foreign key for the element
-     */
-    ForeignKeyAction deleteAction() default ForeignKeyAction.UNSPECIFIED;
-
-    /**
-     * Update action to apply to any foreign key for the element
-     * @return update action to apply to any foreign key for the element
-     */
-    ForeignKeyAction updateAction() default ForeignKeyAction.UNSPECIFIED;
-
-    /**
-     * Whether the value column(s) should be indexed.
-     * @return whether the value column(s) should be indexed.
-     */
-    String indexed() default "";
-
-    /** The name of the index to generate. 
-     * @return the name of the index
-     */
-    String index() default "";
-
-    /**
-     * Whether a unique constraint should be generated or assumed.
-     * @return whether a unique constraint should be generated or assumed
-     */
-    String unique() default "";
-
-    /**
-     * The name of the unique key constraint to generate.
-     * @return the name of the unique key constraint
-     */
-    String uniqueKey() default "";
-
-    /**
-     * Name of the member in the target class that forms a bidirectional 
-     * relationship with this member. 
-     * @return name of the member in the target class that forms a bidirectional 
-     * relationship with this member
-     */
-    String mappedBy() default "";
-
-    /**
-     * The column(s) for the element.
-     * @return the column(s) for the element
-     */
-    Column[] columns() default {};
-
-    /** Generate or assume a foreign key constraint exists on the column
-     * or columns associated with this join. Specify "true" or "false".
-     * @return whether to generate or assume a primary key constraint
-     */
-    String generateForeignKey() default "";
-
-    /** Name for a generated foreign key constraint.
-     * @return the name of the generated foreign key constraint
-     */
-    String foreignKey() default "";
-
-    /** Vendor extensions.
-     * @return the vendor extensions
-     */
-    Extension[] extensions() default {};
-}
diff --git a/specification/imports/ElementMetadata.java b/specification/imports/ElementMetadata.java
deleted file mode 100644
index 9ab62ca..0000000
--- a/specification/imports/ElementMetadata.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package javax.jdo.metadata;
-
-import javax.jdo.annotations.ForeignKeyAction;
-
-/**
- * Represents an element in a collection/array.
- * @since 2.3
- */
-public interface ElementMetadata extends Metadata {
-    /**
-     * Method to set the column name.
-     * 
-     * @param column Column name
-     */
-    ElementMetadata setColumn(String column);
-
-    /**
-     * Accessor for the name of the column.
-     * 
-     * @return The name
-     */
-    String getColumn();
-
-    /**
-     * Method to set the table name.
-     * 
-     * @param table Table name
-     */
-    ElementMetadata setTable(String table);
-
-    /**
-     * Accessor for the name of the table.
-     * 
-     * @return The name
-     */
-    String getTable();
-
-    /**
-     * Method to set the delete action of the FK
-     * 
-     * @param action Delete action of the FK
-     */
-    ElementMetadata setDeleteAction(ForeignKeyAction action);
-
-    /**
-     * Accessor for the delete action of the FK
-     * 
-     * @return The FK delete-action
-     */
-    ForeignKeyAction getDeleteAction();
-
-    /**
-     * Method to set the update action of the FK
-     * 
-     * @param action Update action of the FK
-     */
-    ElementMetadata setUpdateAction(ForeignKeyAction action);
-
-    /**
-     * Accessor for the update action of the FK
-     * 
-     * @return The FK update-action
-     */
-    ForeignKeyAction getUpdateAction();
-
-    /**
-     * Accessor for all column(s) defined on the element.
-     * 
-     * @return The column(s)
-     */
-    ColumnMetadata[] getColumns();
-
-    /**
-     * Add a new column for this element.
-     * 
-     * @return The ColumnMetadata
-     */
-    ColumnMetadata newColumnMetadata();
-
-    /**
-     * Accessor for the number of columns defined for this element.
-     * 
-     * @return The number of columns
-     */
-    int getNumberOfColumns();
-
-    /**
-     * Method to set new embedded metadata for the element.
-     * 
-     * @return The EmbeddedMetadata
-     */
-    EmbeddedMetadata newEmbeddedMetadata();
-
-    /**
-     * Accessor for any embedded metadata on this element
-     * 
-     * @return The EmbeddedMetadata
-     */
-    EmbeddedMetadata getEmbeddedMetadata();
-
-    /**
-     * Method to set new index metadata for the element.
-     * 
-     * @return The IndexMetadata
-     */
-    IndexMetadata newIndexMetadata();
-
-    /**
-     * Accessor for any index metadata on this element
-     * 
-     * @return Index metadata
-     */
-    IndexMetadata getIndexMetadata();
-
-    /**
-     * Method to set new unique constraint metadata for the element
-     * 
-     * @return The UniqueMetadata
-     */
-    UniqueMetadata newUniqueMetadata();
-
-    /**
-     * Accessor for any unique constraint metadata on this element.
-     * 
-     * @return The UniqueMetadata
-     */
-    UniqueMetadata getUniqueMetadata();
-
-    /**
-     * Method to set new foreign key metadata for the element
-     * 
-     * @return The ForeignKeyMetadata
-     */
-    ForeignKeyMetadata newForeignKeyMetadata();
-
-    /**
-     * Accessor for any foreign key metadata on this element.
-     * 
-     * @return The ForeignKeyMetadata
-     */
-    ForeignKeyMetadata getForeignKeyMetadata();
-}
\ No newline at end of file
diff --git a/specification/imports/ElementMetadata.txt b/specification/imports/ElementMetadata.txt
deleted file mode 100644
index 6201850..0000000
--- a/specification/imports/ElementMetadata.txt
+++ /dev/null
@@ -1,138 +0,0 @@
-/**
- * Represents an element in a collection/array.
- * @since 2.3
- */
-public interface ElementMetadata extends Metadata {
-    /**
-     * Method to set the column name.
-     * 
-     * @param column Column name
-     */
-    ElementMetadata setColumn(String column);
-
-    /**
-     * Accessor for the name of the column.
-     * 
-     * @return The name
-     */
-    String getColumn();
-
-    /**
-     * Method to set the table name.
-     * 
-     * @param table Table name
-     */
-    ElementMetadata setTable(String table);
-
-    /**
-     * Accessor for the name of the table.
-     * 
-     * @return The name
-     */
-    String getTable();
-
-    /**
-     * Method to set the delete action of the FK
-     * 
-     * @param action Delete action of the FK
-     */
-    ElementMetadata setDeleteAction(ForeignKeyAction action);
-
-    /**
-     * Accessor for the delete action of the FK
-     * 
-     * @return The FK delete-action
-     */
-    ForeignKeyAction getDeleteAction();
-
-    /**
-     * Method to set the update action of the FK
-     * 
-     * @param action Update action of the FK
-     */
-    ElementMetadata setUpdateAction(ForeignKeyAction action);
-
-    /**
-     * Accessor for the update action of the FK
-     * 
-     * @return The FK update-action
-     */
-    ForeignKeyAction getUpdateAction();
-
-    /**
-     * Accessor for all column(s) defined on the element.
-     * 
-     * @return The column(s)
-     */
-    ColumnMetadata[] getColumns();
-
-    /**
-     * Add a new column for this element.
-     * 
-     * @return The ColumnMetadata
-     */
-    ColumnMetadata newColumnMetadata();
-
-    /**
-     * Accessor for the number of columns defined for this element.
-     * 
-     * @return The number of columns
-     */
-    int getNumberOfColumns();
-
-    /**
-     * Method to set new embedded metadata for the element.
-     * 
-     * @return The EmbeddedMetadata
-     */
-    EmbeddedMetadata newEmbeddedMetadata();
-
-    /**
-     * Accessor for any embedded metadata on this element
-     * 
-     * @return The EmbeddedMetadata
-     */
-    EmbeddedMetadata getEmbeddedMetadata();
-
-    /**
-     * Method to set new index metadata for the element.
-     * 
-     * @return The IndexMetadata
-     */
-    IndexMetadata newIndexMetadata();
-
-    /**
-     * Accessor for any index metadata on this element
-     * 
-     * @return Index metadata
-     */
-    IndexMetadata getIndexMetadata();
-
-    /**
-     * Method to set new unique constraint metadata for the element
-     * 
-     * @return The UniqueMetadata
-     */
-    UniqueMetadata newUniqueMetadata();
-
-    /**
-     * Accessor for any unique constraint metadata on this element.
-     * 
-     * @return The UniqueMetadata
-     */
-    UniqueMetadata getUniqueMetadata();
-
-    /**
-     * Method to set new foreign key metadata for the element
-     * 
-     * @return The ForeignKeyMetadata
-     */
-    ForeignKeyMetadata newForeignKeyMetadata();
-
-    /**
-     * Accessor for any foreign key metadata on this element.
-     * 
-     * @return The ForeignKeyMetadata
-     */
-    ForeignKeyMetadata getForeignKeyMetadata();
-}
diff --git a/specification/imports/Embedded.txt b/specification/imports/Embedded.txt
deleted file mode 100644
index b2bfcce..0000000
--- a/specification/imports/Embedded.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-@Target({ElementType.FIELD, ElementType.METHOD}) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Embedded
-{
-    /** The member in the embedded object that links back to the owning object
-     * where it has a bidirectional relationship. 
-     * @return the member that refers to the owner
-     */
-    String ownerMember() default "";
-
-    /** The column in the embedded object used to judge if the embedded object
-     * is null. 
-     * @return the null indicator column
-     */
-    String nullIndicatorColumn() default "";
-
-    /** The value in the null column to interpret the object as being null.
-     * @return the null indicator value
-     */
-    String nullIndicatorValue() default "";
-
-    /** Members for this embedding. 
-     * @return the members embedded in the field or property being annotated
-     */
-    Persistent[] members() default {};
-}
diff --git a/specification/imports/EmbeddedMetadata.java b/specification/imports/EmbeddedMetadata.java
deleted file mode 100644
index 93a4d4b..0000000
--- a/specification/imports/EmbeddedMetadata.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package javax.jdo.metadata;
-
-/**
- * Represents embedding details of a field/property in a class.
- * @since 2.3
- */
-public interface EmbeddedMetadata extends Metadata {
-    /**
-     * Method to set the name of the owner field/property.
-     * 
-     * @param member Name of the owner member
-     */
-    EmbeddedMetadata setOwnerMember(String member);
-
-    /**
-     * Accessor for the owner field/property name.
-     * 
-     * @return The owner member name
-     */
-    String getOwnerMember();
-
-    /**
-     * Method to set any column that indicates a null embedded object
-     * 
-     * @param col Null indicator column
-     */
-    EmbeddedMetadata setNullIndicatorColumn(String col);
-
-    /**
-     * Accessor for any column indicating a null embedded object
-     * 
-     * @return Whether to call post-load
-     */
-    String getNullIndicatorColumn();
-
-    /**
-     * Method to set the value of a null indicator column to signify null object
-     * 
-     * @param val Null indicator value
-     */
-    EmbeddedMetadata setNullIndicatorValue(String val);
-
-    /**
-     * Accessor for a null indicator value
-     * 
-     * @return Null indicator value
-     */
-    String getNullIndicatorValue();
-
-    /**
-     * Accessor for all fields/properties defined on the fetch group.
-     * 
-     * @return The members
-     */
-    MemberMetadata[] getMembers();
-
-    /**
-     * Accessor for the number of fields/properties defined for embedding
-     * 
-     * @return The number of members
-     */
-    int getNumberOfMembers();
-
-    /**
-     * Add a new field to be embedded.
-     * 
-     * @param name Name of the field
-     * @return The FieldMetadata
-     */
-    FieldMetadata newFieldMetadata(String name);
-
-    /**
-     * Add a new property for embedding
-     * 
-     * @param name Name of the property
-     * @return The PropertyMetadata
-     */
-    PropertyMetadata newPropertyMetadata(String name);
-}
\ No newline at end of file
diff --git a/specification/imports/EmbeddedMetadata.txt b/specification/imports/EmbeddedMetadata.txt
deleted file mode 100644
index 195a391..0000000
--- a/specification/imports/EmbeddedMetadata.txt
+++ /dev/null
@@ -1,77 +0,0 @@
-/**
- * Represents embedding details of a field/property in a class.
- * @since 2.3
- */
-public interface EmbeddedMetadata extends Metadata {
-    /**
-     * Method to set the name of the owner field/property.
-     * 
-     * @param member Name of the owner member
-     */
-    EmbeddedMetadata setOwnerMember(String member);
-
-    /**
-     * Accessor for the owner field/property name.
-     * 
-     * @return The owner member name
-     */
-    String getOwnerMember();
-
-    /**
-     * Method to set any column that indicates a null embedded object
-     * 
-     * @param col Null indicator column
-     */
-    EmbeddedMetadata setNullIndicatorColumn(String col);
-
-    /**
-     * Accessor for any column indicating a null embedded object
-     * 
-     * @return Whether to call post-load
-     */
-    String getNullIndicatorColumn();
-
-    /**
-     * Method to set the value of a null indicator column to signify null object
-     * 
-     * @param val Null indicator value
-     */
-    EmbeddedMetadata setNullIndicatorValue(String val);
-
-    /**
-     * Accessor for a null indicator value
-     * 
-     * @return Null indicator value
-     */
-    String getNullIndicatorValue();
-
-    /**
-     * Accessor for all fields/properties defined on the fetch group.
-     * 
-     * @return The members
-     */
-    MemberMetadata[] getMembers();
-
-    /**
-     * Accessor for the number of fields/properties defined for embedding
-     * 
-     * @return The number of members
-     */
-    int getNumberOfMembers();
-
-    /**
-     * Add a new field to be embedded.
-     * 
-     * @param name Name of the field
-     * @return The FieldMetadata
-     */
-    FieldMetadata newFieldMetadata(String name);
-
-    /**
-     * Add a new property for embedding
-     * 
-     * @param name Name of the property
-     * @return The PropertyMetadata
-     */
-    PropertyMetadata newPropertyMetadata(String name);
-}
diff --git a/specification/imports/EmbeddedOnly.txt b/specification/imports/EmbeddedOnly.txt
deleted file mode 100644
index fdf455e..0000000
--- a/specification/imports/EmbeddedOnly.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-@Target(ElementType.TYPE) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface EmbeddedOnly
-{
-}
diff --git a/specification/imports/Enhancer.txt b/specification/imports/Enhancer.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/specification/imports/Extension.txt b/specification/imports/Extension.txt
deleted file mode 100644
index 3bde2bf..0000000
--- a/specification/imports/Extension.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD}) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Extension
-{
-    /** Vendor that the extension applies to (required).
-     * @return the vendor
-     */
-    String vendorName();
-
-    /** The key for the extension (required). 
-     * @return the key
-     */
-    String key();
-
-    /** The value for the extension (required). 
-     * @return the value
-     */
-    String value();
-}
diff --git a/specification/imports/ExtensionMetadata.java b/specification/imports/ExtensionMetadata.java
deleted file mode 100644
index 67df1ed..0000000
--- a/specification/imports/ExtensionMetadata.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package javax.jdo.metadata;
-
-/**
- * A vendor extension defined in Metadata.
- *
- * @version 2.3
- */
-public interface ExtensionMetadata {
-    /**
-     * Accessor for the vendor name (set at construction).
-     * @return The vendor
-     */
-    String getVendorName();
-
-    /**
-     * Accessor for the key (set at construction).
-     * @return The key
-     */
-    String getKey();
-
-    /**
-     * Accessor for the value (set at construction).
-     * @return The value
-     */
-    String getValue();
-}
\ No newline at end of file
diff --git a/specification/imports/ExtensionMetadata.txt b/specification/imports/ExtensionMetadata.txt
deleted file mode 100644
index 66be69a..0000000
--- a/specification/imports/ExtensionMetadata.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * A vendor extension defined in Metadata.
- *
- * @version 2.3
- */
-public interface ExtensionMetadata {
-    /**
-     * Accessor for the vendor name (set at construction).
-     * @return The vendor
-     */
-    String getVendorName();
-
-    /**
-     * Accessor for the key (set at construction).
-     * @return The key
-     */
-    String getKey();
-
-    /**
-     * Accessor for the value (set at construction).
-     * @return The value
-     */
-    String getValue();
-}
diff --git a/specification/imports/Extensions.txt b/specification/imports/Extensions.txt
deleted file mode 100644
index 08d89d0..0000000
--- a/specification/imports/Extensions.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD}) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Extensions
-{
-    /**
-     * The extensions.
-     * @return the extensions
-     */
-    Extension[] value();
-}
diff --git a/specification/imports/Extent.txt b/specification/imports/Extent.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/specification/imports/FetchGroup.txt b/specification/imports/FetchGroup.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/specification/imports/FetchGroupMetadata.java b/specification/imports/FetchGroupMetadata.java
deleted file mode 100644
index 4f0eca6..0000000
--- a/specification/imports/FetchGroupMetadata.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package javax.jdo.metadata;
-
-/**
- * Represents a fetch group for a class.
- * @since 2.3
- */
-public interface FetchGroupMetadata extends Metadata {
-    /**
-     * Accessor for the fetch group name (set on construction).
-     * 
-     * @return The fetch group name
-     */
-    String getName();
-
-    /**
-     * Method to set whether to call post load with this fetch group
-     * 
-     * @param load Call post load
-     */
-    FetchGroupMetadata setPostLoad(boolean load);
-
-    /**
-     * Accessor for whether to call post load for this fetch group
-     * 
-     * @return Whether to call post-load
-     */
-    Boolean getPostLoad();
-
-    /**
-     * Accessor for all fields/properties defined on the fetch group.
-     * @return The members
-     */
-    MemberMetadata[] getMembers();
-
-    /**
-     * Accessor for the number of fields/properties defined for this fetch group.
-     * 
-     * @return The number of members
-     */
-    int getNumberOfMembers();
-
-    /**
-     * Add a new field for this fetch group.
-     * 
-     * @param name Name of field
-     * @return The FieldMetadata
-     */
-    FieldMetadata newFieldMetadata(String name);
-
-    /**
-     * Add a new property for this fetch group
-     * 
-     * @param name Name of property
-     * @return The PropertyMetadata
-     */
-    PropertyMetadata newPropertyMetadata(String name);
-}
\ No newline at end of file
diff --git a/specification/imports/FetchGroupMetadata.txt b/specification/imports/FetchGroupMetadata.txt
deleted file mode 100644
index a3ca89a..0000000
--- a/specification/imports/FetchGroupMetadata.txt
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
- * Represents a fetch group for a class.
- * @since 2.3
- */
-public interface FetchGroupMetadata extends Metadata {
-    /**
-     * Accessor for the fetch group name (set on construction).
-     * 
-     * @return The fetch group name
-     */
-    String getName();
-
-    /**
-     * Method to set whether to call post load with this fetch group
-     * 
-     * @param load Call post load
-     */
-    FetchGroupMetadata setPostLoad(boolean load);
-
-    /**
-     * Accessor for whether to call post load for this fetch group
-     * 
-     * @return Whether to call post-load
-     */
-    Boolean getPostLoad();
-
-    /**
-     * Accessor for all fields/properties defined on the fetch group.
-     * @return The members
-     */
-    MemberMetadata[] getMembers();
-
-    /**
-     * Accessor for the number of fields/properties defined for this fetch group.
-     * 
-     * @return The number of members
-     */
-    int getNumberOfMembers();
-
-    /**
-     * Add a new field for this fetch group.
-     * 
-     * @param name Name of field
-     * @return The FieldMetadata
-     */
-    FieldMetadata newFieldMetadata(String name);
-
-    /**
-     * Add a new property for this fetch group
-     * 
-     * @param name Name of property
-     * @return The PropertyMetadata
-     */
-    PropertyMetadata newPropertyMetadata(String name);
-}
diff --git a/specification/imports/FetchGroups.txt b/specification/imports/FetchGroups.txt
deleted file mode 100644
index a97424d..0000000
--- a/specification/imports/FetchGroups.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-@Target(ElementType.TYPE) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface FetchGroups
-{
-    /**
-     * The Fetch Groups
-     * @return The Fetch Groups
-     */
-    FetchGroup[] value();
-}
diff --git a/specification/imports/FetchPlan.txt b/specification/imports/FetchPlan.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/specification/imports/FetchPlanMetadata.java b/specification/imports/FetchPlanMetadata.java
deleted file mode 100644
index eda7c9f..0000000
--- a/specification/imports/FetchPlanMetadata.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package javax.jdo.metadata;
-
-/**
- * Represents a fetch plan for a class.
- * @since 2.3
- */
-public interface FetchPlanMetadata extends Metadata {
-    /**
-     * Accessor for the fetch plan name (set on construction).
-     * 
-     * @return The fetch plan name
-     */
-    String getName();
-
-    /**
-     * Method to set the max fetch depth for this plan.
-     * 
-     * @param depth The max fetch depth
-     */
-    FetchPlanMetadata setMaxFetchDepth(int depth);
-
-    /**
-     * Accessor for the max fetch depth.
-     * 
-     * @return The max fetch depth
-     */
-    int getMaxFetchDepth();
-
-    /**
-     * Method to set the fetch size.
-     * 
-     * @param size The fetch size
-     */
-    FetchPlanMetadata setFetchSize(int size);
-
-    /**
-     * Accessor for the max fetch depth.
-     * 
-     * @return The max fetch depth
-     */
-    int getFetchSize();
-
-    /**
-     * Accessor for all fetch groups defined for this fetch plan.
-     * 
-     * @return The fetch groups
-     */
-    FetchGroupMetadata[] getFetchGroups();
-
-    /**
-     * Add a new fetch group for this fetch plan.
-     * 
-     * @param name Name of fetch group.
-     * @return The FetchGroupMetadata
-     */
-    FetchGroupMetadata newFetchGroupMetadata(String name);
-
-    /**
-     * Accessor for the number of fetch groups defined for this fetch plan.
-     * 
-     * @return The number of fetch groups
-     */
-    int getNumberOfFetchGroups();
-}
\ No newline at end of file
diff --git a/specification/imports/FetchPlanMetadata.txt b/specification/imports/FetchPlanMetadata.txt
deleted file mode 100644
index d570ea1..0000000
--- a/specification/imports/FetchPlanMetadata.txt
+++ /dev/null
@@ -1,62 +0,0 @@
-/**
- * Represents a fetch plan for a class.
- * @since 2.3
- */
-public interface FetchPlanMetadata extends Metadata {
-    /**
-     * Accessor for the fetch plan name (set on construction).
-     * 
-     * @return The fetch plan name
-     */
-    String getName();
-
-    /**
-     * Method to set the max fetch depth for this plan.
-     * 
-     * @param depth The max fetch depth
-     */
-    FetchPlanMetadata setMaxFetchDepth(int depth);
-
-    /**
-     * Accessor for the max fetch depth.
-     * 
-     * @return The max fetch depth
-     */
-    int getMaxFetchDepth();
-
-    /**
-     * Method to set the fetch size.
-     * 
-     * @param size The fetch size
-     */
-    FetchPlanMetadata setFetchSize(int size);
-
-    /**
-     * Accessor for the max fetch depth.
-     * 
-     * @return The max fetch depth
-     */
-    int getFetchSize();
-
-    /**
-     * Accessor for all fetch groups defined for this fetch plan.
-     * 
-     * @return The fetch groups
-     */
-    FetchGroupMetadata[] getFetchGroups();
-
-    /**
-     * Add a new fetch group for this fetch plan.
-     * 
-     * @param name Name of fetch group.
-     * @return The FetchGroupMetadata
-     */
-    FetchGroupMetadata newFetchGroupMetadata(String name);
-
-    /**
-     * Accessor for the number of fetch groups defined for this fetch plan.
-     * 
-     * @return The number of fetch groups
-     */
-    int getNumberOfFetchGroups();
-}
diff --git a/specification/imports/FetchPlans.txt b/specification/imports/FetchPlans.txt
deleted file mode 100644
index 46f322b..0000000
--- a/specification/imports/FetchPlans.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-@Target(ElementType.TYPE) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface FetchPlans
-{
-    /**
-     * The Fetch Plans
-     * @return The Fetch Plans
-     */
-    FetchPlan[] value();
-}
diff --git a/specification/imports/FieldMetadata.java b/specification/imports/FieldMetadata.java
deleted file mode 100644
index 4c3db89..0000000
--- a/specification/imports/FieldMetadata.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package javax.jdo.metadata;
-
-/**
- * Represents a field in a class.
- * @since 2.3
- */
-public interface FieldMetadata extends MemberMetadata {
-
-}
\ No newline at end of file
diff --git a/specification/imports/FieldMetadata.txt b/specification/imports/FieldMetadata.txt
deleted file mode 100644
index 7b5eb9e..0000000
--- a/specification/imports/FieldMetadata.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-/**
- * Represents a field in a class.
- * @since 2.3
- */
-public interface FieldMetadata extends MemberMetadata {
-
-}
diff --git a/specification/imports/ForeignKey.txt b/specification/imports/ForeignKey.txt
deleted file mode 100644
index 0c82943..0000000
--- a/specification/imports/ForeignKey.txt
+++ /dev/null
@@ -1,46 +0,0 @@
-@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD}) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface ForeignKey
-{
-    /** Name of the foreign key.
-     * @return the name of the foreign key
-     */
-    String name() default "";
-
-    /** Table for the foreign key. This is needed iff annotating a type where
-     * the foreign key is not defined on the primary table for the type.
-     * @return the table on which the foreign key is defined
-     */
-    String table() default "";
-
-    /** Whether this foreign key is deferred 
-     * (constraint is checked only at commit).
-     * @return whether this foreign key is deferred
-     */
-    String deferred() default "";
-
-    /** Whether this foreign key is unique.
-     * @return whether this foreign key is unique
-     */
-    String unique() default "";
-
-    /** The delete action of this foreign key.
-     * @return the delete action of this foreign key
-     */
-    ForeignKeyAction deleteAction() default ForeignKeyAction.RESTRICT;
-
-    /** The update action of this foreign key.
-     * @return the update action of this foreign key
-     */
-    ForeignKeyAction updateAction() default ForeignKeyAction.RESTRICT;
-
-    /** Member (field and property) names that compose this foreign key.
-     * @return the member names that compose this foreign key
-     */
-    String[] members() default {};
-
-    /** Columns that compose this foreign key.
-     * @return the columns that compose this foreign key
-     */
-    Column[] columns() default {};
-}
diff --git a/specification/imports/ForeignKeyAction.txt b/specification/imports/ForeignKeyAction.txt
deleted file mode 100644
index f032775..0000000
--- a/specification/imports/ForeignKeyAction.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-
-public enum ForeignKeyAction
-{
-    UNSPECIFIED,
-    RESTRICT,
-    CASCADE,
-    NULL,
-    DEFAULT,
-    NONE
-}
diff --git a/specification/imports/ForeignKeyMetadata.java b/specification/imports/ForeignKeyMetadata.java
deleted file mode 100644
index 86fad78..0000000
--- a/specification/imports/ForeignKeyMetadata.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package javax.jdo.metadata;
-
-import javax.jdo.annotations.ForeignKeyAction;
-
-/**
- * Represents a FK constraint in an ORM context.
- * @since 2.3
- */
-public interface ForeignKeyMetadata extends Metadata {
-    /**
-     * Method to set the name of the constraint
-     * 
-     * @param name Name of the constraint
-     */
-    ForeignKeyMetadata setName(String name);
-
-    /**
-     * Accessor for the constraint name.
-     * 
-     * @return The constraint name
-     */
-    String getName();
-
-    /**
-     * Method to set the table name.
-     * 
-     * @param table Table name
-     */
-    ForeignKeyMetadata setTable(String table);
-
-    /**
-     * Accessor for the name of the table.
-     * 
-     * @return The name
-     */
-    String getTable();
-
-    /**
-     * Method to set whether it is unique.
-     * 
-     * @param unique Unique?
-     */
-    ForeignKeyMetadata setUnique(boolean unique);
-
-    /**
-     * Accessor for whether unique.
-     * 
-     * @return Unique?
-     */
-    Boolean getUnique();
-
-    /**
-     * Method to set whether it is deferred.
-     * 
-     * @param def Deferred?
-     */
-    ForeignKeyMetadata setDeferred(boolean def);
-
-    /**
-     * Accessor for whether the constraint can be deferred.
-     * 
-     * @return Deferred?
-     */
-    Boolean getDeferred();
-
-    /**
-     * Method to set the delete action of the FK
-     * 
-     * @param action Delete action of the FK
-     */
-    ForeignKeyMetadata setDeleteAction(ForeignKeyAction action);
-
-    /**
-     * Accessor for the delete action of the FK
-     * 
-     * @return The FK delete-action
-     */
-    ForeignKeyAction getDeleteAction();
-
-    /**
-     * Method to set the update action of the FK
-     * 
-     * @param action Update action of the FK
-     */
-    ForeignKeyMetadata setUpdateAction(ForeignKeyAction action);
-
-    /**
-     * Accessor for the update action of the FK
-     * 
-     * @return The FK update-action
-     */
-    ForeignKeyAction getUpdateAction();
-
-    /**
-     * Accessor for all column(s) defined on the FK.
-     * 
-     * @return The column(s)
-     */
-    ColumnMetadata[] getColumns();
-
-    /**
-     * Add a new column for this FK.
-     * 
-     * @return The ColumnMetadata
-     */
-    ColumnMetadata newColumnMetadata();
-
-    /**
-     * Accessor for the number of columns defined for this FK.
-     * 
-     * @return The number of columns
-     */
-    int getNumberOfColumns();
-
-    /**
-     * Accessor for all fields/properties defined on the FK.
-     * @return The members
-     */
-    MemberMetadata[] getMembers();
-
-    /**
-     * Accessor for the number of fields/properties defined for this FK.
-     * @return The number of members
-     */
-    int getNumberOfMembers();
-
-    /**
-     * Add a new field for this FK.
-     * 
-     * @param name Name of the field
-     * @return The FieldMetadata
-     */
-    FieldMetadata newFieldMetadata(String name);
-
-    /**
-     * Add a new property for this FK.
-     * 
-     * @param name Name of the property
-     * @return The PropertyMetadata
-     */
-    PropertyMetadata newPropertyMetadata(String name);
-}
\ No newline at end of file
diff --git a/specification/imports/ForeignKeyMetadata.txt b/specification/imports/ForeignKeyMetadata.txt
deleted file mode 100644
index 6e87170..0000000
--- a/specification/imports/ForeignKeyMetadata.txt
+++ /dev/null
@@ -1,138 +0,0 @@
-/**
- * Represents a FK constraint in an ORM context.
- * @since 2.3
- */
-public interface ForeignKeyMetadata extends Metadata {
-    /**
-     * Method to set the name of the constraint
-     * 
-     * @param name Name of the constraint
-     */
-    ForeignKeyMetadata setName(String name);
-
-    /**
-     * Accessor for the constraint name.
-     * 
-     * @return The constraint name
-     */
-    String getName();
-
-    /**
-     * Method to set the table name.
-     * 
-     * @param table Table name
-     */
-    ForeignKeyMetadata setTable(String table);
-
-    /**
-     * Accessor for the name of the table.
-     * 
-     * @return The name
-     */
-    String getTable();
-
-    /**
-     * Method to set whether it is unique.
-     * 
-     * @param unique Unique?
-     */
-    ForeignKeyMetadata setUnique(boolean unique);
-
-    /**
-     * Accessor for whether unique.
-     * 
-     * @return Unique?
-     */
-    Boolean getUnique();
-
-    /**
-     * Method to set whether it is deferred.
-     * 
-     * @param def Deferred?
-     */
-    ForeignKeyMetadata setDeferred(boolean def);
-
-    /**
-     * Accessor for whether the constraint can be deferred.
-     * 
-     * @return Deferred?
-     */
-    Boolean getDeferred();
-
-    /**
-     * Method to set the delete action of the FK
-     * 
-     * @param action Delete action of the FK
-     */
-    ForeignKeyMetadata setDeleteAction(ForeignKeyAction action);
-
-    /**
-     * Accessor for the delete action of the FK
-     * 
-     * @return The FK delete-action
-     */
-    ForeignKeyAction getDeleteAction();
-
-    /**
-     * Method to set the update action of the FK
-     * 
-     * @param action Update action of the FK
-     */
-    ForeignKeyMetadata setUpdateAction(ForeignKeyAction action);
-
-    /**
-     * Accessor for the update action of the FK
-     * 
-     * @return The FK update-action
-     */
-    ForeignKeyAction getUpdateAction();
-
-    /**
-     * Accessor for all column(s) defined on the FK.
-     * 
-     * @return The column(s)
-     */
-    ColumnMetadata[] getColumns();
-
-    /**
-     * Add a new column for this FK.
-     * 
-     * @return The ColumnMetadata
-     */
-    ColumnMetadata newColumnMetadata();
-
-    /**
-     * Accessor for the number of columns defined for this FK.
-     * 
-     * @return The number of columns
-     */
-    int getNumberOfColumns();
-
-    /**
-     * Accessor for all fields/properties defined on the FK.
-     * @return The members
-     */
-    MemberMetadata[] getMembers();
-
-    /**
-     * Accessor for the number of fields/properties defined for this FK.
-     * @return The number of members
-     */
-    int getNumberOfMembers();
-
-    /**
-     * Add a new field for this FK.
-     * 
-     * @param name Name of the field
-     * @return The FieldMetadata
-     */
-    FieldMetadata newFieldMetadata(String name);
-
-    /**
-     * Add a new property for this FK.
-     * 
-     * @param name Name of the property
-     * @return The PropertyMetadata
-     */
-    PropertyMetadata newPropertyMetadata(String name);
-}
diff --git a/specification/imports/ForeignKeys.txt b/specification/imports/ForeignKeys.txt
deleted file mode 100644
index 7d56cac..0000000
--- a/specification/imports/ForeignKeys.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-@Target(ElementType.TYPE) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface ForeignKeys
-{
-    /**
-     * The foreign keys.
-     * @return The foreign keys
-     */
-    ForeignKey[] value();
-}
diff --git a/specification/imports/IdGeneratorStrategy.txt b/specification/imports/IdGeneratorStrategy.txt
deleted file mode 100644
index 7221f03..0000000
--- a/specification/imports/IdGeneratorStrategy.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-
-public enum IdGeneratorStrategy
-{
-    UNSPECIFIED,
-    NATIVE,
-    SEQUENCE,
-    IDENTITY,
-    INCREMENT,
-    UUIDSTRING,
-    UUIDHEX
-}
diff --git a/specification/imports/IdentityType.txt b/specification/imports/IdentityType.txt
deleted file mode 100644
index 544d5f9..0000000
--- a/specification/imports/IdentityType.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-
-public enum IdentityType
-{
-    UNSPECIFIED,
-    APPLICATION,
-    DATASTORE,
-    NONDURABLE
-}
diff --git a/specification/imports/Index.txt b/specification/imports/Index.txt
deleted file mode 100644
index 95b2969..0000000
--- a/specification/imports/Index.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD}) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Index
-{
-    /** Name of the index
-     * @return the name of the index
-     */
-    String name() default "";
-
-    /** Table for the index. This is needed iff annotating a type where
-     * the index is not defined on the primary table for the type.
-     * @return the table on which the index is defined
-     */
-    String table() default "";
-
-    /** Whether this index is unique
-     * @return whether this index is unique
-     */
-    String unique() default "";
-
-    /** Member (field and property) names that compose this index.
-     * @return member names that compose this index
-     */
-    String[] members() default {};
-
-    /** Columns that compose this index.
-     * @return columns that compose this index
-     */
-    Column[] columns() default {};
-}
diff --git a/specification/imports/IndexMetadata.java b/specification/imports/IndexMetadata.java
deleted file mode 100644
index 1dca23d..0000000
--- a/specification/imports/IndexMetadata.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package javax.jdo.metadata;
-
-/**
- * Represents an index.
- * @since 2.3
- */
-public interface IndexMetadata extends Metadata {
-    /**
-     * Method to set the name of the index
-     * 
-     * @param name Name of the index
-     */
-    IndexMetadata setName(String name);
-
-    /**
-     * Accessor for the index name.
-     * 
-     * @return The index name
-     */
-    String getName();
-
-    /**
-     * Method to set the table name.
-     * 
-     * @param table Table name
-     */
-    IndexMetadata setTable(String table);
-
-    /**
-     * Accessor for the name of the table.
-     * 
-     * @return The name
-     */
-    String getTable();
-
-    /**
-     * Method to set whether it is unique.
-     * 
-     * @param unique Unique?
-     */
-    IndexMetadata setUnique(boolean unique);
-
-    /**
-     * Accessor for whether unique.
-     * 
-     * @return Unique?
-     */
-    boolean getUnique();
-
-    /**
-     * Accessor for all column(s) defined on the index.
-     * 
-     * @return The column(s)
-     */
-    ColumnMetadata[] getColumns();
-
-    /**
-     * Add a new column for this index.
-     * 
-     * @return The ColumnMetadata
-     */
-    ColumnMetadata newColumn();
-
-    /**
-     * Accessor for the number of columns defined for this index.
-     * 
-     * @return The number of columns
-     */
-    int getNumberOfColumns();
-
-    /**
-     * Accessor for all member(s) defined on the index.
-     * 
-     * @return The fields/properties
-     */
-    MemberMetadata[] getMembers();
-
-    /**
-     * Accessor for the number of fields/properties defined for this index.
-     * 
-     * @return The number of members
-     */
-    int getNumberOfMembers();
-
-    /**
-     * Add a new field for this index.
-     * 
-     * @param name Name of the field
-     * @return The FieldMetadata
-     */
-    FieldMetadata newFieldMetadata(String name);
-
-    /**
-     * Add a new property for this index.
-     * 
-     * @param name Name of the property
-     * @return The PropertyMetadata
-     */
-    PropertyMetadata newPropertyMetadata(String name);
-}
\ No newline at end of file
diff --git a/specification/imports/IndexMetadata.txt b/specification/imports/IndexMetadata.txt
deleted file mode 100644
index 6e93458..0000000
--- a/specification/imports/IndexMetadata.txt
+++ /dev/null
@@ -1,98 +0,0 @@
-/**
- * Represents an index.
- * @since 2.3
- */
-public interface IndexMetadata extends Metadata {
-    /**
-     * Method to set the name of the index
-     * 
-     * @param name Name of the index
-     */
-    IndexMetadata setName(String name);
-
-    /**
-     * Accessor for the index name.
-     * 
-     * @return The index name
-     */
-    String getName();
-
-    /**
-     * Method to set the table name.
-     * 
-     * @param table Table name
-     */
-    IndexMetadata setTable(String table);
-
-    /**
-     * Accessor for the name of the table.
-     * 
-     * @return The name
-     */
-    String getTable();
-
-    /**
-     * Method to set whether it is unique.
-     * 
-     * @param unique Unique?
-     */
-    IndexMetadata setUnique(boolean unique);
-
-    /**
-     * Accessor for whether unique.
-     * 
-     * @return Unique?
-     */
-    boolean getUnique();
-
-    /**
-     * Accessor for all column(s) defined on the index.
-     * 
-     * @return The column(s)
-     */
-    ColumnMetadata[] getColumns();
-
-    /**
-     * Add a new column for this index.
-     * 
-     * @return The ColumnMetadata
-     */
-    ColumnMetadata newColumn();
-
-    /**
-     * Accessor for the number of columns defined for this index.
-     * 
-     * @return The number of columns
-     */
-    int getNumberOfColumns();
-
-    /**
-     * Accessor for all member(s) defined on the index.
-     * 
-     * @return The fields/properties
-     */
-    MemberMetadata[] getMembers();
-
-    /**
-     * Accessor for the number of fields/properties defined for this index.
-     * 
-     * @return The number of members
-     */
-    int getNumberOfMembers();
-
-    /**
-     * Add a new field for this index.
-     * 
-     * @param name Name of the field
-     * @return The FieldMetadata
-     */
-    FieldMetadata newFieldMetadata(String name);
-
-    /**
-     * Add a new property for this index.
-     * 
-     * @param name Name of the property
-     * @return The PropertyMetadata
-     */
-    PropertyMetadata newPropertyMetadata(String name);
-}
diff --git a/specification/imports/Indexed.java b/specification/imports/Indexed.java
deleted file mode 100644
index 10a2b74..0000000
--- a/specification/imports/Indexed.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package javax.jdo.metadata;
-
-/**
- * Enumeration of the indexed values.
- * 
- * @version 2.3
- * @since 2.3
- */
-public enum Indexed
-{
-    UNSPECIFIED,
-    TRUE,
-    FALSE,
-    UNIQUE
-}
diff --git a/specification/imports/Indexed.txt b/specification/imports/Indexed.txt
deleted file mode 100644
index bc4631c..0000000
--- a/specification/imports/Indexed.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * Enumeration of the indexed values.
- * 
- * @version 2.3
- * @since 2.3
- */
-public enum Indexed
-{
-    UNSPECIFIED,
-    TRUE,
-    FALSE,
-    UNIQUE
-}
diff --git a/specification/imports/Indices.txt b/specification/imports/Indices.txt
deleted file mode 100644
index 3f28ee0..0000000
--- a/specification/imports/Indices.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-@Target(ElementType.TYPE) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Indices
-{
-    /**
-     * The indices
-     * @return The indices
-     */
-    Index[] value();
-}
diff --git a/specification/imports/Inheritance.txt b/specification/imports/Inheritance.txt
deleted file mode 100644
index 4b298be..0000000
--- a/specification/imports/Inheritance.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-@Target(ElementType.TYPE) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Inheritance
-{
-    /** Strategy to use for inheritance. Specifies in which table(s)
-     * the members for the class are stored. 
-     * @return the inheritance strategy
-     */
-    InheritanceStrategy strategy() default InheritanceStrategy.UNSPECIFIED;
-
-    /** Custom inheritance strategy. If customStrategy is non-empty, then
-     * strategy must be UNSPECIFIED.
-     * @return the custom inheritance strategy
-     */
-    String customStrategy() default "";
-}
diff --git a/specification/imports/InheritanceMetadata.java b/specification/imports/InheritanceMetadata.java
deleted file mode 100644
index 8bb2a2b..0000000
--- a/specification/imports/InheritanceMetadata.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package javax.jdo.metadata;
-
-import javax.jdo.annotations.InheritanceStrategy;
-
-/**
- * Represents the inheritance of a class.
- * @since 2.3
- */
-public interface InheritanceMetadata extends Metadata {
-    /**
-     * Method to set the inheritance strategy.
-     * 
-     * @param strategy The strategy
-     */
-    InheritanceMetadata setStrategy(InheritanceStrategy strategy);
-
-    /**
-     * Accessor for the inheritance strategy.
-     * 
-     * @return The strategy
-     */
-    InheritanceStrategy getStrategy();
-
-    /**
-     * Method to set the custom inheritance strategy.
-     * 
-     * @param strategy The strategy
-     */
-    InheritanceMetadata setCustomStrategy(String strategy);
-
-    /**
-     * Accessor for the custom inheritance (overriding "strategy").
-     * 
-     * @return The strategy
-     */
-    String getCustomStrategy();
-
-    /**
-     * Method to define the new discriminator metadata.
-     * 
-     * @return The DiscriminatorMetadata
-     */
-    DiscriminatorMetadata newDiscriminatorMetadata();
-
-    /**
-     * Accessor for the discriminator (if any).
-     * 
-     * @return Discriminator
-     */
-    DiscriminatorMetadata getDiscriminatorMetaData();
-
-    /**
-     * Method to define the new join information
-     * 
-     * @return The JoinMetadata
-     */
-    JoinMetadata newJoinMetadata();
-
-    /**
-     * Accessor for the join (if any).
-     * 
-     * @return Join information
-     */
-    JoinMetadata getJoinMetaData();
-}
\ No newline at end of file
diff --git a/specification/imports/InheritanceMetadata.txt b/specification/imports/InheritanceMetadata.txt
deleted file mode 100644
index bdd5525..0000000
--- a/specification/imports/InheritanceMetadata.txt
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- * Represents the inheritance of a class.
- * @since 2.3
- */
-public interface InheritanceMetadata extends Metadata {
-    /**
-     * Method to set the inheritance strategy.
-     * 
-     * @param strategy The strategy
-     */
-    InheritanceMetadata setStrategy(InheritanceStrategy strategy);
-
-    /**
-     * Accessor for the inheritance strategy.
-     * 
-     * @return The strategy
-     */
-    InheritanceStrategy getStrategy();
-
-    /**
-     * Method to set the custom inheritance strategy.
-     * 
-     * @param strategy The strategy
-     */
-    InheritanceMetadata setCustomStrategy(String strategy);
-
-    /**
-     * Accessor for the custom inheritance (overriding "strategy").
-     * 
-     * @return The strategy
-     */
-    String getCustomStrategy();
-
-    /**
-     * Method to define the new discriminator metadata.
-     * 
-     * @return The DiscriminatorMetadata
-     */
-    DiscriminatorMetadata newDiscriminatorMetadata();
-
-    /**
-     * Accessor for the discriminator (if any).
-     * 
-     * @return Discriminator
-     */
-    DiscriminatorMetadata getDiscriminatorMetaData();
-
-    /**
-     * Method to define the new join information
-     * 
-     * @return The JoinMetadata
-     */
-    JoinMetadata newJoinMetadata();
-
-    /**
-     * Accessor for the join (if any).
-     * 
-     * @return Join information
-     */
-    JoinMetadata getJoinMetaData();
-}
diff --git a/specification/imports/InheritanceStrategy.txt b/specification/imports/InheritanceStrategy.txt
deleted file mode 100644
index 5c25f14..0000000
--- a/specification/imports/InheritanceStrategy.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-
-public enum InheritanceStrategy
-{
-    UNSPECIFIED,
-    NEW_TABLE,
-    SUBCLASS_TABLE,
-    SUPERCLASS_TABLE
-}
diff --git a/specification/imports/InstanceCallbacks.txt b/specification/imports/InstanceCallbacks.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/specification/imports/InterfaceMetadata.java b/specification/imports/InterfaceMetadata.java
deleted file mode 100644
index f638f1c..0000000
--- a/specification/imports/InterfaceMetadata.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package javax.jdo.metadata;
-
-/**
- * Represents a persistent-interface.
- * @since 2.3
- */
-public interface InterfaceMetadata extends ComponentMetadata {
-    
-}
\ No newline at end of file
diff --git a/specification/imports/InterfaceMetadata.txt b/specification/imports/InterfaceMetadata.txt
deleted file mode 100644
index 394dc7e..0000000
--- a/specification/imports/InterfaceMetadata.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-/**
- * Represents a persistent-interface.
- * @since 2.3
- */
-public interface InterfaceMetadata extends ComponentMetadata {
-    
-}
diff --git a/specification/imports/JDOCanRetryException.txt b/specification/imports/JDOCanRetryException.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/specification/imports/JDODataStoreException.txt b/specification/imports/JDODataStoreException.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/specification/imports/JDODetachedFieldAccessException.txt b/specification/imports/JDODetachedFieldAccessException.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/specification/imports/JDOEnhanceException.txt b/specification/imports/JDOEnhanceException.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/specification/imports/JDOEnhancer.java b/specification/imports/JDOEnhancer.java
deleted file mode 100644
index 0cb8087..0000000
--- a/specification/imports/JDOEnhancer.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/**
- * Interface for a JDO Enhancer.
- * @since 2.3
- */
-public interface JDOEnhancer extends ClassFileTransformer
-{
-    /**
-     * Return non-configurable properties of this JDOEnhancer.
-     * Properties with keys "VendorName" and "VersionNumber" are required. Other keys are optional.
-     * @return the non-configurable properties of this JDOEnhancer.
-     */
-    Properties getProperties();
-
-    /**
-     * Whether to provide verbose output
-     * @param flag Verbose?
-     * @return The enhancer
-     */
-    JDOEnhancer setVerbose(boolean flag);
-
-    /**
-     * Mutator to set the location where enhanced classes are written.
-     * Mutator to set the location where enhanced classes are written.
-     * If this method is not called, classes will be enhanced in place, 
-     * overwriting the existing classes. If overwriting classes in a jar file,
-     * the existing files in the jar file will be written unchanged except
-     * for the enhanced classes. The directory name can be absolute or relative.
-     * @param dirName Name of the directory
-     * @return The enhancer
-     */
-    JDOEnhancer setOutputDirectory(String dirName);
-
-    /**
-     * Mutator to set the class loader to use for loading classes.
-     * @param loader ClassLoader to use
-     * @return The enhancer
-     */
-    JDOEnhancer setClassLoader(ClassLoader loader);
-
-    /**
-     * Add a persistence-unit to the items to be enhanced.
-     * @param persistenceUnit Name of the persistence unit
-     * @return The enhancer
-     */
-    JDOEnhancer addPersistenceUnit(String persistenceUnit);
-
-    /**
-     * Add an in-memory class to the items to be enhanced.
-     * The class name should be of the form "mydomain.MyClass".
-     * @param className Name of the class
-     * @param bytes The bytes of the class
-     * @return The enhancer
-     */
-    JDOEnhancer addClass(String className, byte[] bytes);
-
-    /**
-     * Add class(es) to the items to be enhanced.
-     * The class names can be absolute file names, relative file names, or
-     * names of CLASSPATH resources.
-     * @param classNames Names of the classes
-     * @return The enhancer
-     */
-    JDOEnhancer addClasses(String... classNames);
-
-    /**
-     * Add metadata file(s) to the items to be enhanced.
-     * The metadata file names can be absolute file names, relative file names, or
-     * names of CLASSPATH resources. They should be JDO XML metadata files.
-     * @param metadataFiles Names of the files
-     * @return The enhancer
-     */
-    JDOEnhancer addFiles(String... metadataFiles);
-
-    /**
-     * Add a jar file to the items to be enhanced.
-     * The jar file name can be absolute, or relative or a CLASSPATH resource.
-     * @param jarFileName Name of the jar file
-     * @return The enhancer
-     */
-    JDOEnhancer addJar(String jarFileName);
-
-    /**
-     * Method to enhance the items specified using addJar, addFiles, addClasses, addClass,
-     * addPersistenceUnit.
-     * @return Number of classes enhanced
-     * @throws JDOEnhanceException if an error occurs during enhancement. If multiple
-     * errors occur then the nested exceptions provides this detail.
-     */
-    int enhance();
-
-    /**
-     * Method to validate the items specified using addJar, addFiles, addClasses, addClass,
-     * addPersistenceUnit.
-     * @return Number of classes validated
-     * @throws JDOEnhanceException if an error occurs during validation. If multiple
-     * errors occur then the nested exceptions provides this detail.
-     */
-    int validate();
-
-    /**
-     * Method to retrieve the (enhanced) bytes of the specified class.
-     * Only applies to the classes enhanced in the most recent enhance() call.
-     * If no enhance has yet been performed will throw a JDOEnhanceException.
-     * If the specified class hasn't been enhanced then will throw a JDOEnhanceException.
-     * @param className Name of the class (of the form "mydomain.MyClass")
-     * @return Enhanced bytes
-     */
-    byte[] getEnhancedBytes(String className);
-
-    /**
-     * Method to register metadata with the enhancement process managed by this
-     * <code>JDOEnhancer</code>.
-     * Metadata can be created using the method {@link #newMetadata}.
-     * If there is already metadata registered for a class contained in this metadata
-     * object then a JDOUserException will be thrown.
-     * @param metadata The Metadata to register.
-     * @since 2.3
-     */
-    void registerMetadata(JDOMetadata metadata);
-
-    /**
-     * Method to return a new metadata object that can be subsequently modified
-     * and registered with the enhancement process using the method {@link #registerMetadata}.
-     * @return The metadata
-     * @since 2.3
-     */
-    JDOMetadata newMetadata();
-}
diff --git a/specification/imports/JDOEnhancer.txt b/specification/imports/JDOEnhancer.txt
deleted file mode 100644
index 01698a5..0000000
--- a/specification/imports/JDOEnhancer.txt
+++ /dev/null
@@ -1,129 +0,0 @@
-/**
- * Interface for a JDO Enhancer.
- * @since 2.3
- */
-public interface JDOEnhancer extends ClassFileTransformer
-{
-    /**
-     * Return non-configurable properties of this JDOEnhancer.
-     * Properties with keys "VendorName" and "VersionNumber" are required.
-     * Other keys are optional.
-     * @return the non-configurable properties of this JDOEnhancer.
-     */
-    Properties getProperties();
-
-    /**
-     * Whether to provide verbose output
-     * @param flag Verbose?
-     * @return The enhancer
-     */
-    JDOEnhancer setVerbose(boolean flag);
-
-    /**
-     * Mutator to set the location where enhanced classes are written.
-     * Mutator to set the location where enhanced classes are written.
-     * If this method is not called, classes will be enhanced in place, 
-     * overwriting the existing classes. If overwriting classes in a jar file,
-     * the existing files in the jar file will be written unchanged except
-     * for the enhanced classes. The directory name can be absolute or relative.
-     * @param dirName Name of the directory
-     * @return The enhancer
-     */
-    JDOEnhancer setOutputDirectory(String dirName);
-
-    /**
-     * Mutator to set the class loader to use for loading classes.
-     * @param loader ClassLoader to use
-     * @return The enhancer
-     */
-    JDOEnhancer setClassLoader(ClassLoader loader);
-
-    /**
-     * Add a persistence-unit to the items to be enhanced.
-     * @param persistenceUnit Name of the persistence unit
-     * @return The enhancer
-     */
-    JDOEnhancer addPersistenceUnit(String persistenceUnit);
-
-    /**
-     * Add an in-memory class to the items to be enhanced.
-     * The class name should be of the form "mydomain.MyClass".
-     * @param className Name of the class
-     * @param bytes The bytes of the class
-     * @return The enhancer
-     */
-    JDOEnhancer addClass(String className, byte[] bytes);
-
-    /**
-     * Add class(es) to the items to be enhanced.
-     * The class names can be absolute file names, relative file names, or
-     * names of CLASSPATH resources.
-     * @param classNames Names of the classes
-     * @return The enhancer
-     */
-    JDOEnhancer addClasses(String... classNames);
-
-    /**
-     * Add metadata file(s) to the items to be enhanced.
-     * The metadata file names can be absolute file names, relative file names, or
-     * names of CLASSPATH resources. They should be JDO XML metadata files.
-     * @param metadataFiles Names of the files
-     * @return The enhancer
-     */
-    JDOEnhancer addFiles(String... metadataFiles);
-
-    /**
-     * Add a jar file to the items to be enhanced.
-     * The jar file name can be absolute, or relative or a CLASSPATH resource.
-     * @param jarFileName Name of the jar file
-     * @return The enhancer
-     */
-    JDOEnhancer addJar(String jarFileName);
-
-    /**
-     * Method to enhance the items specified using addJar, addFiles, addClasses, addClass,
-     * addPersistenceUnit.
-     * @return Number of classes enhanced
-     * @throws JDOEnhanceException if an error occurs during enhancement. If multiple
-     * errors occur then the nested exceptions provides this detail.
-     */
-    int enhance();
-
-    /**
-     * Method to validate the items specified using addJar, addFiles, addClasses, addClass,
-     * addPersistenceUnit.
-     * @return Number of classes validated
-     * @throws JDOEnhanceException if an error occurs during validation. If multiple
-     * errors occur then the nested exceptions provides this detail.
-     */
-    int validate();
-
-    /**
-     * Method to retrieve the (enhanced) bytes of the specified class.
-     * Only applies to the classes enhanced in the most recent enhance() call.
-     * If no enhance has yet been performed will throw a JDOEnhanceException.
-     * If the specified class hasn't been enhanced then will throw a JDOEnhanceException.
-     * @param className Name of the class (of the form "mydomain.MyClass")
-     * @return Enhanced bytes
-     */
-    byte[] getEnhancedBytes(String className);
-
-    /**
-     * Method to register metadata with the enhancement process managed by this
-     * <code>JDOEnhancer</code>.
-     * Metadata can be created using the method {@link #newMetadata}.
-     * If there is already metadata registered for a class contained in this metadata
-     * object then a JDOUserException will be thrown.
-     * @param metadata The Metadata to register.
-     * @since 2.3
-     */
-    void registerMetadata(JDOMetadata metadata);
-
-    /**
-     * Method to return a new metadata object that can be subsequently modified
-     * and registered with the enhancement process using the method {@link #registerMetadata}.
-     * @return The metadata
-     * @since 2.3
-     */
-    JDOMetadata newMetadata();
-}
diff --git a/specification/imports/JDOEntityManager.txt b/specification/imports/JDOEntityManager.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/specification/imports/JDOEntityManagerFactory.txt b/specification/imports/JDOEntityManagerFactory.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/specification/imports/JDOException.txt b/specification/imports/JDOException.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/specification/imports/JDOFatalDataStoreException.txt b/specification/imports/JDOFatalDataStoreException.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/specification/imports/JDOFatalException.txt b/specification/imports/JDOFatalException.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/specification/imports/JDOFatalInternalException.txt b/specification/imports/JDOFatalInternalException.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/specification/imports/JDOFatalUserException.txt b/specification/imports/JDOFatalUserException.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/specification/imports/JDOHelper.txt b/specification/imports/JDOHelper.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/specification/imports/JDOMetadata.java b/specification/imports/JDOMetadata.java
deleted file mode 100644
index 72db8c8..0000000
--- a/specification/imports/JDOMetadata.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/**
- * Represents the top-level JDO metadata.
- * @since 2.3
- */
-public interface JDOMetadata extends Metadata {
-    /**
-     * Method to set the catalog (ORM) to apply to all classes in this JDO Metadata.
-     * 
-     * @param catalog Catalog name
-     */
-    JDOMetadata setCatalog(String catalog);
-
-    /**
-     * Accessor for the catalog (ORM) that all classes in this JDO Metadata
-     * default to.
-     * 
-     * @return The catalog
-     */
-    String getCatalog();
-
-    /**
-     * Method to set the schema (ORM) to apply to all classes in this JDO
-     * Metadata.
-     * 
-     * @param schema Schema name
-     */
-    JDOMetadata setSchema(String schema);
-
-    /**
-     * Accessor for the schema (ORM) that all classes in this JDO Metadata
-     * default to.
-     * 
-     * @return The schema
-     */
-    String getSchema();
-
-    /**
-     * Accessor for all packages defined on the JDO Metadata.
-     * 
-     * @return The packages
-     */
-    PackageMetadata[] getPackages();
-
-    /**
-     * Add a new package to this JDO Metadata.
-     * 
-     * @param pkgName Name of the package
-     * @return The PackageMetadata
-     */
-    PackageMetadata newPackageMetadata(String pkgName);
-
-    /**
-     * Add a new package to this JDO Metadata.
-     * 
-     * @param pkg The package
-     * @return The PackageMetadata
-     */
-    PackageMetadata newPackageMetadata(Package pkg);
-
-    /**
-     * Accessor for the number of packages defined in this JDO Metadata.
-     * 
-     * @return The number of packages.
-     */
-    int getNumberOfPackages();
-
-    /**
-     * Add a new class to this JDO Metadata.
-     * Adds its package also if not yet existing.
-     * 
-     * @param cls Class to add
-     * @return The ClassMetadata
-     */
-    ClassMetadata newClassMetadata(Class cls);
-
-    /**
-     * Add a new interface to this JDO Metadata.
-     * Adds its package also if not yet existing.
-     * 
-     * @param cls Class to add
-     * @return The InterfaceMetadata
-     */
-    InterfaceMetadata newInterfaceMetadata(Class cls);
-
-    /**
-     * Accessor for any named queries defined on the JDO Metadata.
-     * 
-     * @return The queries
-     */
-    QueryMetadata[] getQueries();
-
-    /**
-     * Add a new named query to this JDO Metadata.
-     * 
-     * @param name Name of the query
-     * @return The QueryMetadata
-     */
-    QueryMetadata newQueryMetadata(String name);
-
-    /**
-     * Accessor for the number of named queries defined in this JDO Metadata.
-     * 
-     * @return The number of queries.
-     */
-    int getNumberOfQueries();
-
-    /**
-     * Accessor for any fetch plans defined on the JDO Metadata.
-     * 
-     * @return The fetch plans
-     */
-    FetchPlanMetadata[] getFetchPlans();
-
-    /**
-     * Add a new fetch plan to this JDO Metadata.
-     * 
-     * @param name Name of the query
-     * @return The FetchPlanMetadata
-     */
-    FetchPlanMetadata newFetchPlanMetadata(String name);
-
-    /**
-     * Accessor for the number of fetch plans defined in this JDO Metadata.
-     * 
-     * @return The number of fetch plans.
-     */
-    int getNumberOfFetchPlans();
-}
diff --git a/specification/imports/JDOMetadata.txt b/specification/imports/JDOMetadata.txt
deleted file mode 100644
index b8109ee..0000000
--- a/specification/imports/JDOMetadata.txt
+++ /dev/null
@@ -1,129 +0,0 @@
-/**
- * Represents the top-level JDO metadata.
- * @since 2.3
- */
-public interface JDOMetadata extends Metadata {
-    /**
-     * Method to set the catalog (ORM) to apply to all classes in this
-     * JDO Metadata.
-     * 
-     * @param catalog Catalog name
-     */
-    JDOMetadata setCatalog(String catalog);
-
-    /**
-     * Accessor for the catalog (ORM) that all classes in this JDO Metadata
-     * default to.
-     * 
-     * @return The catalog
-     */
-    String getCatalog();
-
-    /**
-     * Method to set the schema (ORM) to apply to all classes in this JDO
-     * Metadata.
-     * 
-     * @param schema Schema name
-     */
-    JDOMetadata setSchema(String schema);
-
-    /**
-     * Accessor for the schema (ORM) that all classes in this JDO Metadata
-     * default to.
-     * 
-     * @return The schema
-     */
-    String getSchema();
-
-    /**
-     * Accessor for all packages defined on the JDO Metadata.
-     * 
-     * @return The packages
-     */
-    PackageMetadata[] getPackages();
-
-    /**
-     * Add a new package to this JDO Metadata.
-     * 
-     * @param pkgName Name of the package
-     * @return The PackageMetadata
-     */
-    PackageMetadata newPackageMetadata(String pkgName);
-
-    /**
-     * Add a new package to this JDO Metadata.
-     * 
-     * @param pkg The package
-     * @return The PackageMetadata
-     */
-    PackageMetadata newPackageMetadata(Package pkg);
-
-    /**
-     * Accessor for the number of packages defined in this JDO Metadata.
-     * 
-     * @return The number of packages.
-     */
-    int getNumberOfPackages();
-
-    /**
-     * Add a new class to this JDO Metadata.
-     * Adds its package also if not yet existing.
-     * 
-     * @param cls Class to add
-     * @return The ClassMetadata
-     */
-    ClassMetadata newClassMetadata(Class cls);
-
-    /**
-     * Add a new interface to this JDO Metadata.
-     * Adds its package also if not yet existing.
-     * 
-     * @param cls Class to add
-     * @return The InterfaceMetadata
-     */
-    InterfaceMetadata newInterfaceMetadata(Class cls);
-
-    /**
-     * Accessor for any named queries defined on the JDO Metadata.
-     * 
-     * @return The queries
-     */
-    QueryMetadata[] getQueries();
-
-    /**
-     * Add a new named query to this JDO Metadata.
-     * 
-     * @param name Name of the query
-     * @return The QueryMetadata
-     */
-    QueryMetadata newQueryMetadata(String name);
-
-    /**
-     * Accessor for the number of named queries defined in this JDO Metadata.
-     * 
-     * @return The number of queries.
-     */
-    int getNumberOfQueries();
-
-    /**
-     * Accessor for any fetch plans defined on the JDO Metadata.
-     * 
-     * @return The fetch plans
-     */
-    FetchPlanMetadata[] getFetchPlans();
-
-    /**
-     * Add a new fetch plan to this JDO Metadata.
-     * 
-     * @param name Name of the query
-     * @return The FetchPlanMetadata
-     */
-    FetchPlanMetadata newFetchPlanMetadata(String name);
-
-    /**
-     * Accessor for the number of fetch plans defined in this JDO Metadata.
-     * 
-     * @return The number of fetch plans.
-     */
-    int getNumberOfFetchPlans();
-}
diff --git a/specification/imports/JDONullIdentityException.txt b/specification/imports/JDONullIdentityException.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/specification/imports/JDOObjectNotFoundException.txt b/specification/imports/JDOObjectNotFoundException.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/specification/imports/JDOOptimisticVerificationException.txt b/specification/imports/JDOOptimisticVerificationException.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/specification/imports/JDOQueryInterruptedException.txt b/specification/imports/JDOQueryInterruptedException.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/specification/imports/JDOReadOnlyException.txt b/specification/imports/JDOReadOnlyException.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/specification/imports/JDOUnsupportedOptionException.txt b/specification/imports/JDOUnsupportedOptionException.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/specification/imports/JDOUserCallbackException.txt b/specification/imports/JDOUserCallbackException.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/specification/imports/JDOUserException.txt b/specification/imports/JDOUserException.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/specification/imports/Join.txt b/specification/imports/Join.txt
deleted file mode 100644
index e544e7c..0000000
--- a/specification/imports/Join.txt
+++ /dev/null
@@ -1,78 +0,0 @@
-@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD}) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Join
-{
-    /** Table to join to (used when joining to secondary tables). 
-     * @return the table
-     */
-    String table() default "";
-
-    /** Name of the column in the join table. 
-     * @return the name of the column in the join table
-     */
-    String column() default "";
-
-    /** Whether the join column is indexed. 
-     * @return whether the join column(s) is(are) indexed
-     */
-    String indexed() default "";
-
-    /** The name of the index to generate. 
-     * @return the name of the index
-     */
-    String index() default "";
-
-    /** Whether the join column is unique.
-     * @return whether the join column(s) is(are) is unique
-     */
-    String unique() default "";
-
-    /**
-     * The name of the unique key constraint to generate.
-     * @return the name of the unique key constraint
-     */
-    String uniqueKey() default "";
-
-    /** Whether to use an outer join. 
-     * @return whether to use an outer join
-     */
-    String outer() default "";
-
-    /** Delete action to be applied to any ForeignKey on this join.
-     * @return the delete action
-     */
-    ForeignKeyAction deleteAction() default ForeignKeyAction.UNSPECIFIED;
-
-    /** Detail definition of the join column(s). This is needed for
-     * more than one join column.
-     * @return the join columns
-     */
-    Column[] columns() default {};
-
-    /** Generate or assume a primary key constraint exists on the column
-     * or columns associated with this join. Specify "true" or "false".
-     * @return whether to generate or assume a primary key constraint
-     */
-    String generatePrimaryKey() default "";
-
-    /** Name for a generated primary key constraint.
-     * @return the name of the generated primary key constraint
-     */
-    String primaryKey() default "";
-
-    /** Generate or assume a foreign key constraint exists on the column
-     * or columns associated with this join. Specify "true" or "false".
-     * @return whether to generate or assume a foreign key constraint
-     */
-    String generateForeignKey() default "";
-
-    /** Name for a generated foreign key constraint.
-     * @return the name of the generated foreign key constraint
-     */
-    String foreignKey() default "";
-
-    /** Vendor extensions.
-     * @return the vendor extensions
-     */
-    Extension[] extensions() default {};
-}
diff --git a/specification/imports/JoinMetadata.java b/specification/imports/JoinMetadata.java
deleted file mode 100644
index dd83178..0000000
--- a/specification/imports/JoinMetadata.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package javax.jdo.metadata;
-
-import javax.jdo.annotations.ForeignKeyAction;
-
-/**
- * Represents join information.
- * @since 2.3
- */
-public interface JoinMetadata extends Metadata {
-    /**
-     * Method to set the join column.
-     * 
-     * @param column Name of the join column
-     */
-    JoinMetadata setColumn(String column);
-
-    /**
-     * Accessor for the join column name
-     * 
-     * @return The column name
-     */
-    String getColumn();
-
-    /**
-     * Method to set the table name.
-     * 
-     * @param table Table name
-     */
-    JoinMetadata setTable(String table);
-
-    /**
-     * Accessor for the name of the table.
-     * 
-     * @return The name
-     */
-    String getTable();
-
-    /**
-     * Method to set whether to use an outer join
-     * 
-     * @param outer Outer join?
-     */
-    JoinMetadata setOuter(boolean outer);
-
-    /**
-     * Accessor for whether to use an outer join.
-     * 
-     * @return Outer join?
-     */
-    boolean getOuter();
-
-    /**
-     * Method to set the delete action of the FK
-     * 
-     * @param action Delete action of the FK
-     */
-    JoinMetadata setDeleteAction(ForeignKeyAction action);
-
-    /**
-     * Accessor for the delete action of the FK
-     * 
-     * @return The FK delete-action
-     */
-    ForeignKeyAction getDeleteAction();
-
-    /**
-     * Method to set whether indexed.
-     * 
-     * @param indexed Whether indexed (true | false | unique)
-     */
-    JoinMetadata setIndexed(Indexed indexed);
-
-    /**
-     * Accessor for whether indexed (true|false|unique)
-     * 
-     * @return Indexed?
-     */
-    Indexed getIndexed();
-
-    /**
-     * Method to set whether it is unique.
-     * 
-     * @param unique Unique?
-     */
-    JoinMetadata setUnique(boolean unique);
-
-    /**
-     * Accessor for whether unique.
-     * 
-     * @return Unique?
-     */
-    Boolean getUnique();
-
-    /**
-     * Method to set new index metadata for the join.
-     * 
-     * @return The IndexMetadata
-     */
-    IndexMetadata newIndexMetadata();
-
-    /**
-     * Accessor for any index metadata on this join
-     * 
-     * @return Index metadata
-     */
-    IndexMetadata getIndexMetadata();
-
-    /**
-     * Method to set new unique constraint metadata for the join
-     * 
-     * @return The UniqueMetadata
-     */
-    UniqueMetadata newUniqueMetadata();
-
-    /**
-     * Accessor for any unique constraint metadata on this join.
-     * 
-     * @return The UniqueMetadata
-     */
-    UniqueMetadata getUniqueMetadata();
-
-    /**
-     * Method to set new foreign key metadata for the join
-     * 
-     * @return The ForeignKeyMetadata
-     */
-    ForeignKeyMetadata newForeignKeyMetadata();
-
-    /**
-     * Accessor for any foreign key metadata on this join.
-     * 
-     * @return The ForeignKeyMetadata
-     */
-    ForeignKeyMetadata getForeignKeyMetadata();
-
-    /**
-     * Method to set new primary key metadata for the join
-     * 
-     * @return The PrimaryKeyMetadata
-     */
-    PrimaryKeyMetadata newPrimaryKeyMetadata();
-
-    /**
-     * Accessor for any primary key metadata on this join.
-     * 
-     * @return The PrimaryKeyMetadata
-     */
-    PrimaryKeyMetadata getPrimaryKeyMetadata();
-
-    /**
-     * Accessor for all column(s) defined on the join.
-     * 
-     * @return The column(s)
-     */
-    ColumnMetadata[] getColumns();
-
-    /**
-     * Add a new column for this join.
-     * 
-     * @return The ColumnMetadata
-     */
-    ColumnMetadata newColumnMetadata();
-
-    /**
-     * Accessor for the number of columns defined for this join.
-     * 
-     * @return The number of columns
-     */
-    int getNumberOfColumns();
-}
\ No newline at end of file
diff --git a/specification/imports/JoinMetadata.txt b/specification/imports/JoinMetadata.txt
deleted file mode 100644
index 708467b..0000000
--- a/specification/imports/JoinMetadata.txt
+++ /dev/null
@@ -1,166 +0,0 @@
-/**
- * Represents join information.
- * @since 2.3
- */
-public interface JoinMetadata extends Metadata {
-    /**
-     * Method to set the join column.
-     * 
-     * @param column Name of the join column
-     */
-    JoinMetadata setColumn(String column);
-
-    /**
-     * Accessor for the join column name
-     * 
-     * @return The column name
-     */
-    String getColumn();
-
-    /**
-     * Method to set the table name.
-     * 
-     * @param table Table name
-     */
-    JoinMetadata setTable(String table);
-
-    /**
-     * Accessor for the name of the table.
-     * 
-     * @return The name
-     */
-    String getTable();
-
-    /**
-     * Method to set whether to use an outer join
-     * 
-     * @param outer Outer join?
-     */
-    JoinMetadata setOuter(boolean outer);
-
-    /**
-     * Accessor for whether to use an outer join.
-     * 
-     * @return Outer join?
-     */
-    boolean getOuter();
-
-    /**
-     * Method to set the delete action of the FK
-     * 
-     * @param action Delete action of the FK
-     */
-    JoinMetadata setDeleteAction(ForeignKeyAction action);
-
-    /**
-     * Accessor for the delete action of the FK
-     * 
-     * @return The FK delete-action
-     */
-    ForeignKeyAction getDeleteAction();
-
-    /**
-     * Method to set whether indexed.
-     * 
-     * @param indexed Whether indexed (true | false | unique)
-     */
-    JoinMetadata setIndexed(Indexed indexed);
-
-    /**
-     * Accessor for whether indexed (true|false|unique)
-     * 
-     * @return Indexed?
-     */
-    Indexed getIndexed();
-
-    /**
-     * Method to set whether it is unique.
-     * 
-     * @param unique Unique?
-     */
-    JoinMetadata setUnique(boolean unique);
-
-    /**
-     * Accessor for whether unique.
-     * 
-     * @return Unique?
-     */
-    Boolean getUnique();
-
-    /**
-     * Method to set new index metadata for the join.
-     * 
-     * @return The IndexMetadata
-     */
-    IndexMetadata newIndexMetadata();
-
-    /**
-     * Accessor for any index metadata on this join
-     * 
-     * @return Index metadata
-     */
-    IndexMetadata getIndexMetadata();
-
-    /**
-     * Method to set new unique constraint metadata for the join
-     * 
-     * @return The UniqueMetadata
-     */
-    UniqueMetadata newUniqueMetadata();
-
-    /**
-     * Accessor for any unique constraint metadata on this join.
-     * 
-     * @return The UniqueMetadata
-     */
-    UniqueMetadata getUniqueMetadata();
-
-    /**
-     * Method to set new foreign key metadata for the join
-     * 
-     * @return The ForeignKeyMetadata
-     */
-    ForeignKeyMetadata newForeignKeyMetadata();
-
-    /**
-     * Accessor for any foreign key metadata on this join.
-     * 
-     * @return The ForeignKeyMetadata
-     */
-    ForeignKeyMetadata getForeignKeyMetadata();
-
-    /**
-     * Method to set new primary key metadata for the join
-     * 
-     * @return The PrimaryKeyMetadata
-     */
-    PrimaryKeyMetadata newPrimaryKeyMetadata();
-
-    /**
-     * Accessor for any primary key metadata on this join.
-     * 
-     * @return The PrimaryKeyMetadata
-     */
-    PrimaryKeyMetadata getPrimaryKeyMetadata();
-
-    /**
-     * Accessor for all column(s) defined on the join.
-     * 
-     * @return The column(s)
-     */
-    ColumnMetadata[] getColumns();
-
-    /**
-     * Add a new column for this join.
-     * 
-     * @return The ColumnMetadata
-     */
-    ColumnMetadata newColumnMetadata();
-
-    /**
-     * Accessor for the number of columns defined for this join.
-     * 
-     * @return The number of columns
-     */
-    int getNumberOfColumns();
-}
diff --git a/specification/imports/Joins.txt b/specification/imports/Joins.txt
deleted file mode 100644
index 257e92b..0000000
--- a/specification/imports/Joins.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-@Target(ElementType.TYPE) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Joins
-{
-    /**
-     * The join definitions used for the mapping of this type. Joins for
-     * secondary tables are usually defined at the type level and not the
-     * field or property level. This allows multiple fields and properties
-     * to share the same join definition and avoid redundancies.
-     * @return the join definitions
-     */
-    Join[] value();
-}
diff --git a/specification/imports/Key.txt b/specification/imports/Key.txt
deleted file mode 100644
index ca17dfd..0000000
--- a/specification/imports/Key.txt
+++ /dev/null
@@ -1,112 +0,0 @@
-@Target({ElementType.FIELD, ElementType.METHOD}) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Key
-{
-    /**
-     * Types of the keys. This can be determined if using JDK1.5 generics
-     * but is required otherwise. Multiple types can be specified if the
-     * implementation supports multiple types.
-     * @return the types of keys
-     */
-    Class[] types() default {};
-
-    /**
-     * Whether the key is to be stored serialized (into a single column of a
-     * join table).
-     * @return whether the key is to be stored serialized
-     */
-    String serialized() default "";
-
-    /** Whether this key is embedded. 
-     * @return whether this key is embedded
-     */
-    String embedded() default "";
-
-    /**
-     * The embedded mapping for the key.
-     * @return the embedded mapping for the key
-     */
-    Embedded[] embeddedMapping() default {};
-
-    /**
-     * Whether the key is dependent on the owner (and will be deleted 
-     * when the owner is deleted).
-     * @return whether the key is dependent on the owner
-     */
-    String dependent() default "";
-
-    /**
-     * Name of the table for the key.
-     * @return name of the table for the key
-     */
-    String table() default "";
-
-    /**
-     * Name of the column to store the key in.
-     * @return name of the column to store the key in
-     */
-    String column() default "";
-
-    /**
-     * Delete action to apply to the foreign key for the key.
-     * @return delete action to apply to the foreign key for the key
-     */
-    ForeignKeyAction deleteAction() default ForeignKeyAction.UNSPECIFIED;
-
-    /**
-     * Update action to apply to the foreign key for the key.
-     * @return update action to apply to the foreign key for the key
-     */
-    ForeignKeyAction updateAction() default ForeignKeyAction.UNSPECIFIED;
-
-    /**
-     * Whether the value column(s) should be indexed.
-     * @return whether the value column(s) should be indexed.
-     */
-    String indexed() default "";
-
-    /** The name of the index to generate. 
-     * @return the name of the index
-     */
-    String index() default "";
-
-    /**
-     * Whether the element column(s) contents should be considered unique
-     * @return whether the element column(s) contents should be considered unique
-     */
-    String unique() default "";
-
-    /**
-     * The name of the unique key constraint to generate.
-     * @return the name of the unique key constraint
-     */
-    String uniqueKey() default "";
-
-    /**
-     * Name of a member in the value class where this key is stored.
-     * @return the name of a member in the value class where this key is stored
-     */
-    String mappedBy() default "";
-
-    /**
-     * The column(s) for the key
-     * @return the column(s) for the key
-     */
-    Column[] columns() default {};
-
-    /** Generate or assume a foreign key constraint exists on the column
-     * or columns associated with this join. Specify "true" or "false".
-     * @return whether to generate or assume a foreign key constraint
-     */
-    String generateForeignKey() default "";
-
-    /** Name for a generated foreign key constraint.
-     * @return the name of the generated foreign key constraint
-     */
-    String foreignKey() default "";
-
-    /** Vendor extensions.
-     * @return the vendor extensions
-     */
-    Extension[] extensions() default {};
-}
diff --git a/specification/imports/KeyMetadata.java b/specification/imports/KeyMetadata.java
deleted file mode 100644
index dcdc192..0000000
--- a/specification/imports/KeyMetadata.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package javax.jdo.metadata;
-
-import javax.jdo.annotations.ForeignKeyAction;
-
-/**
- * Represents a key in a map.
- */
-public interface KeyMetadata extends Metadata {
-    /**
-     * Method to set the column name.
-     * 
-     * @param column Column name
-     */
-    KeyMetadata setColumn(String column);
-
-    /**
-     * Accessor for the name of the column.
-     * 
-     * @return The name
-     */
-    String getColumn();
-
-    /**
-     * Method to set the table name.
-     * 
-     * @param table Table name
-     */
-    KeyMetadata setTable(String table);
-
-    /**
-     * Accessor for the name of the table.
-     * 
-     * @return The name
-     */
-    String getTable();
-
-    /**
-     * Method to set the delete action of the FK
-     * 
-     * @param action Delete action of the FK
-     */
-    KeyMetadata setDeleteAction(ForeignKeyAction action);
-
-    /**
-     * Accessor for the delete action of the FK
-     * 
-     * @return The FK delete-action
-     */
-    ForeignKeyAction getDeleteAction();
-
-    /**
-     * Method to set the update action of the FK
-     * 
-     * @param action Update action of the FK
-     */
-    KeyMetadata setUpdateAction(ForeignKeyAction action);
-
-    /**
-     * Accessor for the update action of the FK
-     * 
-     * @return The FK update-action
-     */
-    ForeignKeyAction getUpdateAction();
-
-    /**
-     * Accessor for all column(s) defined on the key.
-     * 
-     * @return The column(s)
-     */
-    ColumnMetadata[] getColumns();
-
-    /**
-     * Add a new column for this key.
-     * 
-     * @return The ColumnMetadata
-     */
-    ColumnMetadata newColumnMetadata();
-
-    /**
-     * Accessor for the number of columns defined for this key.
-     * 
-     * @return The number of columns
-     */
-    int getNumberOfColumns();
-
-    /**
-     * Method to set new embedded metadata for the key.
-     * 
-     * @return The EmbeddedMetadata
-     */
-    EmbeddedMetadata newEmbeddedMetadata();
-
-    /**
-     * Accessor for any embedded metadata on this key
-     * 
-     * @return The EmbeddedMetadata
-     */
-    EmbeddedMetadata getEmbeddedMetadata();
-
-    /**
-     * Method to set new index metadata for the key.
-     * 
-     * @return The IndexMetadata
-     */
-    IndexMetadata newIndexMetadata();
-
-    /**
-     * Accessor for any index metadata on this key
-     * 
-     * @return Index metadata
-     */
-    IndexMetadata getIndexMetadata();
-
-    /**
-     * Method to set new unique constraint metadata for the key
-     * 
-     * @return The UniqueMetadata
-     */
-    UniqueMetadata newUniqueMetadata();
-
-    /**
-     * Accessor for any unique constraint metadata on this key.
-     * 
-     * @return The UniqueMetadata
-     */
-    UniqueMetadata getUniqueMetadata();
-
-    /**
-     * Method to set new foreign key metadata for the key
-     * 
-     * @return The ForeignKeyMetadata
-     */
-    ForeignKeyMetadata newForeignKeyMetadata();
-
-    /**
-     * Accessor for any foreign key metadata on this key.
-     * 
-     * @return The ForeignKeyMetadata
-     */
-    ForeignKeyMetadata getForeignKeyMetadata();
-}
\ No newline at end of file
diff --git a/specification/imports/KeyMetadata.txt b/specification/imports/KeyMetadata.txt
deleted file mode 100644
index 7469519..0000000
--- a/specification/imports/KeyMetadata.txt
+++ /dev/null
@@ -1,137 +0,0 @@
-/**
- * Represents a key in a map.
- */
-public interface KeyMetadata extends Metadata {
-    /**
-     * Method to set the column name.
-     * 
-     * @param column Column name
-     */
-    KeyMetadata setColumn(String column);
-
-    /**
-     * Accessor for the name of the column.
-     * 
-     * @return The name
-     */
-    String getColumn();
-
-    /**
-     * Method to set the table name.
-     * 
-     * @param table Table name
-     */
-    KeyMetadata setTable(String table);
-
-    /**
-     * Accessor for the name of the table.
-     * 
-     * @return The name
-     */
-    String getTable();
-
-    /**
-     * Method to set the delete action of the FK
-     * 
-     * @param action Delete action of the FK
-     */
-    KeyMetadata setDeleteAction(ForeignKeyAction action);
-
-    /**
-     * Accessor for the delete action of the FK
-     * 
-     * @return The FK delete-action
-     */
-    ForeignKeyAction getDeleteAction();
-
-    /**
-     * Method to set the update action of the FK
-     * 
-     * @param action Update action of the FK
-     */
-    KeyMetadata setUpdateAction(ForeignKeyAction action);
-
-    /**
-     * Accessor for the update action of the FK
-     * 
-     * @return The FK update-action
-     */
-    ForeignKeyAction getUpdateAction();
-
-    /**
-     * Accessor for all column(s) defined on the key.
-     * 
-     * @return The column(s)
-     */
-    ColumnMetadata[] getColumns();
-
-    /**
-     * Add a new column for this key.
-     * 
-     * @return The ColumnMetadata
-     */
-    ColumnMetadata newColumnMetadata();
-
-    /**
-     * Accessor for the number of columns defined for this key.
-     * 
-     * @return The number of columns
-     */
-    int getNumberOfColumns();
-
-    /**
-     * Method to set new embedded metadata for the key.
-     * 
-     * @return The EmbeddedMetadata
-     */
-    EmbeddedMetadata newEmbeddedMetadata();
-
-    /**
-     * Accessor for any embedded metadata on this key
-     * 
-     * @return The EmbeddedMetadata
-     */
-    EmbeddedMetadata getEmbeddedMetadata();
-
-    /**
-     * Method to set new index metadata for the key.
-     * 
-     * @return The IndexMetadata
-     */
-    IndexMetadata newIndexMetadata();
-
-    /**
-     * Accessor for any index metadata on this key
-     * 
-     * @return Index metadata
-     */
-    IndexMetadata getIndexMetadata();
-
-    /**
-     * Method to set new unique constraint metadata for the key
-     * 
-     * @return The UniqueMetadata
-     */
-    UniqueMetadata newUniqueMetadata();
-
-    /**
-     * Accessor for any unique constraint metadata on this key.
-     * 
-     * @return The UniqueMetadata
-     */
-    UniqueMetadata getUniqueMetadata();
-
-    /**
-     * Method to set new foreign key metadata for the key
-     * 
-     * @return The ForeignKeyMetadata
-     */
-    ForeignKeyMetadata newForeignKeyMetadata();
-
-    /**
-     * Accessor for any foreign key metadata on this key.
-     * 
-     * @return The ForeignKeyMetadata
-     */
-    ForeignKeyMetadata getForeignKeyMetadata();
-}
diff --git a/specification/imports/MapMetadata.java b/specification/imports/MapMetadata.java
deleted file mode 100644
index e0322a7..0000000
--- a/specification/imports/MapMetadata.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package javax.jdo.metadata;
-
-/**
- * Represents details of a map in a field/property in a class.
- * @since 2.3
- */
-public interface MapMetadata extends Metadata {
-    /**
-     * Method to set the name of the key type
-     * 
-     * @param type Name of the key type
-     */
-    MapMetadata setKeyType(String type);
-
-    /**
-     * Accessor for the key type
-     * 
-     * @return The key type
-     */
-    String getKeyType();
-
-    /**
-     * Method to set whether the key is embedded
-     * 
-     * @param val Whether it is embedded
-     */
-    MapMetadata setEmbeddedKey(boolean val);
-
-    /**
-     * Accessor for whether the key is embedded
-     * 
-     * @return whether the key is embedded
-     */
-    Boolean getEmbeddedKey();
-
-    /**
-     * Method to set whether the key is serialised
-     * 
-     * @param val Whether it is serialised
-     */
-    MapMetadata setSerializedKey(boolean val);
-
-    /**
-     * Accessor for whether the key is serialised
-     * 
-     * @return whether the key is serialised
-     */
-    Boolean getSerializedKey();
-
-    /**
-     * Method to set whether the key is dependent
-     * 
-     * @param val Whether it is dependent
-     */
-    MapMetadata setDependentKey(boolean val);
-
-    /**
-     * Accessor for whether the key is dependent
-     * 
-     * @return whether the key is dependent
-     */
-    Boolean getDependentKey();
-
-    /**
-     * Method to set the name of the value type
-     * 
-     * @param type Name of the value type
-     */
-    MapMetadata setValueType(String type);
-
-    /**
-     * Accessor for the value type
-     * 
-     * @return The value type
-     */
-    String getValueType();
-
-    /**
-     * Method to set whether the value is embedded
-     * 
-     * @param val Whether it is embedded
-     */
-    MapMetadata setEmbeddedValue(boolean val);
-
-    /**
-     * Accessor for whether the value is embedded
-     * 
-     * @return whether the value is embedded
-     */
-    Boolean getEmbeddedValue();
-
-    /**
-     * Method to set whether the value is serialised
-     * 
-     * @param val Whether it is serialised
-     */
-    MapMetadata setSerializedValue(boolean val);
-
-    /**
-     * Accessor for whether the value is serialised
-     * 
-     * @return whether the value is serialised
-     */
-    Boolean getSerializedValue();
-
-    /**
-     * Method to set whether the value is dependent
-     * 
-     * @param val Whether it is dependent
-     */
-    MapMetadata setDependentValue(boolean val);
-
-    /**
-     * Accessor for whether the value is dependent
-     * 
-     * @return whether the value is dependent
-     */
-    Boolean getDependentValue();
-}
\ No newline at end of file
diff --git a/specification/imports/MapMetadata.txt b/specification/imports/MapMetadata.txt
deleted file mode 100644
index 22271a9..0000000
--- a/specification/imports/MapMetadata.txt
+++ /dev/null
@@ -1,117 +0,0 @@
-/**
- * Represents details of a map in a field/property in a class.
- * @since 2.3
- */
-public interface MapMetadata extends Metadata {
-    /**
-     * Method to set the name of the key type
-     * 
-     * @param type Name of the key type
-     */
-    MapMetadata setKeyType(String type);
-
-    /**
-     * Accessor for the key type
-     * 
-     * @return The key type
-     */
-    String getKeyType();
-
-    /**
-     * Method to set whether the key is embedded
-     * 
-     * @param val Whether it is embedded
-     */
-    MapMetadata setEmbeddedKey(boolean val);
-
-    /**
-     * Accessor for whether the key is embedded
-     * 
-     * @return whether the key is embedded
-     */
-    Boolean getEmbeddedKey();
-
-    /**
-     * Method to set whether the key is serialised
-     * 
-     * @param val Whether it is serialised
-     */
-    MapMetadata setSerializedKey(boolean val);
-
-    /**
-     * Accessor for whether the key is serialised
-     * 
-     * @return whether the key is serialised
-     */
-    Boolean getSerializedKey();
-
-    /**
-     * Method to set whether the key is dependent
-     * 
-     * @param val Whether it is dependent
-     */
-    MapMetadata setDependentKey(boolean val);
-
-    /**
-     * Accessor for whether the key is dependent
-     * 
-     * @return whether the key is dependent
-     */
-    Boolean getDependentKey();
-
-    /**
-     * Method to set the name of the value type
-     * 
-     * @param type Name of the value type
-     */
-    MapMetadata setValueType(String type);
-
-    /**
-     * Accessor for the value type
-     * 
-     * @return The value type
-     */
-    String getValueType();
-
-    /**
-     * Method to set whether the value is embedded
-     * 
-     * @param val Whether it is embedded
-     */
-    MapMetadata setEmbeddedValue(boolean val);
-
-    /**
-     * Accessor for whether the value is embedded
-     * 
-     * @return whether the value is embedded
-     */
-    Boolean getEmbeddedValue();
-
-    /**
-     * Method to set whether the value is serialised
-     * 
-     * @param val Whether it is serialised
-     */
-    MapMetadata setSerializedValue(boolean val);
-
-    /**
-     * Accessor for whether the value is serialised
-     * 
-     * @return whether the value is serialised
-     */
-    Boolean getSerializedValue();
-
-    /**
-     * Method to set whether the value is dependent
-     * 
-     * @param val Whether it is dependent
-     */
-    MapMetadata setDependentValue(boolean val);
-
-    /**
-     * Accessor for whether the value is dependent
-     * 
-     * @return whether the value is dependent
-     */
-    Boolean getDependentValue();
-}
diff --git a/specification/imports/MemberMetadata.java b/specification/imports/MemberMetadata.java
deleted file mode 100644
index 48bdb79..0000000
--- a/specification/imports/MemberMetadata.java
+++ /dev/null
@@ -1,513 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package javax.jdo.metadata;
-
-import javax.jdo.annotations.ForeignKeyAction;
-import javax.jdo.annotations.IdGeneratorStrategy;
-import javax.jdo.annotations.NullValue;
-import javax.jdo.annotations.PersistenceModifier;
-
-/**
- * Represents a field/property in a class/persistent-interface.
- * @since 2.3
- */
-public interface MemberMetadata extends Metadata {
-    /**
-     * Method to set the name.
-     * 
-     * @param name name
-     */
-    MemberMetadata setName(String name);
-
-    /**
-     * Accessor for the name of the field/property.
-     * 
-     * @return The name
-     */
-    String getName();
-
-    /**
-     * Method to set the table name.
-     * 
-     * @param table Table name
-     */
-    MemberMetadata setTable(String table);
-
-    /**
-     * Accessor for the name of the table.
-     * 
-     * @return The name
-     */
-    String getTable();
-
-    /**
-     * Method to set the column name.
-     * 
-     * @param col Column name
-     */
-    MemberMetadata setColumn(String col);
-
-    /**
-     * Accessor for the name of the column.
-     * 
-     * @return The column name
-     */
-    String getColumn();
-
-    /**
-     * Method to set the field type(s). For defining where we want to restrict
-     * what type is stored in a field
-     * 
-     * @param type Type of field
-     */
-    MemberMetadata setFieldType(String type);
-
-    /**
-     * Accessor for the type storable in the field
-     * 
-     * @return The field type
-     */
-    String getFieldType();
-
-    /**
-     * Method to set the delete action of the FK
-     * 
-     * @param action Delete action of the FK
-     */
-    MemberMetadata setDeleteAction(ForeignKeyAction action);
-
-    /**
-     * Accessor for the delete action of the FK
-     * 
-     * @return The FK delete-action
-     */
-    ForeignKeyAction getDeleteAction();
-
-    /**
-     * Method to set the persistence-modifier of the field/property.
-     * 
-     * @param mod persistence modifier
-     */
-    MemberMetadata setPersistenceModifier(PersistenceModifier mod);
-
-    /**
-     * Accessor for the persistence modifier of the field/property.
-     * 
-     * @return The persistence modifier
-     */
-    PersistenceModifier getPersistenceModifier();
-
-    /**
-     * Method to set the behaviour of a null value
-     * 
-     * @param val Null value behaviour
-     */
-    MemberMetadata setNullValue(NullValue val);
-
-    /**
-     * Accessor for the behaviour of a null value
-     * 
-     * @return The null value behaviour
-     */
-    NullValue getNullValue();
-
-    /**
-     * Method to set whether it is in the DFG.
-     * 
-     * @param dfg DFG?
-     */
-    MemberMetadata setDefaultFetchGroup(boolean dfg);
-
-    /**
-     * Accessor for whether part of the DFG.
-     * 
-     * @return dfg?
-     */
-    Boolean getDefaultFetchGroup();
-
-    /**
-     * Method to set whether it is unique.
-     * 
-     * @param unique Unique?
-     */
-    MemberMetadata setDependent(boolean unique);
-
-    /**
-     * Accessor for whether unique.
-     * 
-     * @return Unique?
-     */
-    Boolean getDependent();
-
-    /**
-     * Method to set whether it is embedded.
-     * 
-     * @param emb Embedded?
-     */
-    MemberMetadata setEmbedded(boolean emb);
-
-    /**
-     * Accessor for whether it is embedded.
-     * 
-     * @return embedded?
-     */
-    Boolean getEmbedded();
-
-    /**
-     * Method to set whether it is serialized.
-     * 
-     * @param ser serialized?
-     */
-    MemberMetadata setSerialized(boolean ser);
-
-    /**
-     * Accessor for whether it is serialized.
-     * 
-     * @return serialized?
-     */
-    Boolean getSerialized();
-
-    /**
-     * Method to set whether it is part of the pk
-     * 
-     * @param pk PK?
-     */
-    MemberMetadata setPrimaryKey(boolean pk);
-
-    /**
-     * Accessor for whether it is part of the pk.
-     * 
-     * @return pk?
-     */
-    boolean getPrimaryKey();
-
-    /**
-     * Method to set whether it is indexed.
-     * 
-     * @param index Indexed?
-     */
-    MemberMetadata setIndexed(boolean index);
-
-    /**
-     * Accessor for whether it is indexed.
-     * 
-     * @return Indexed?
-     */
-    Boolean getIndexed();
-
-    /**
-     * Method to set whether it is unique.
-     * 
-     * @param unique Unique?
-     */
-    MemberMetadata setUnique(boolean unique);
-
-    /**
-     * Accessor for whether unique.
-     * 
-     * @return Unique?
-     */
-    Boolean getUnique();
-
-    /**
-     * Method to set whether this is cacheable
-     * 
-     * @param cacheable Cacheable?
-     */
-    MemberMetadata setCacheable(boolean cacheable);
-
-    /**
-     * Accessor for whether this is cacheable.
-     * 
-     * @return Detachable?
-     */
-    boolean getCacheable();
-
-    /**
-     * Method to set the recursion depth (when used in a fetch group).
-     * 
-     * @param depth Recursion depth
-     */
-    MemberMetadata setRecursionDepth(int depth);
-
-    /**
-     * Accessor for the recursion depth (when part of a fetch group).
-     * 
-     * @return Recursion depth?
-     */
-    int getRecursionDepth();
-
-    /**
-     * Method to set the load fetch group.
-     * 
-     * @param grp Load fetch group
-     */
-    MemberMetadata setLoadFetchGroup(String grp);
-
-    /**
-     * Accessor for the name of the load fetch group
-     * 
-     * @return The load fetch group
-     */
-    String getLoadFetchGroup();
-
-    /**
-     * Method to set the value strategy
-     * 
-     * @param str Value strategy
-     */
-    MemberMetadata setValueStrategy(IdGeneratorStrategy str);
-
-    /**
-     * Accessor for the value strategy
-     * 
-     * @return Value strategy
-     */
-    IdGeneratorStrategy getValueStrategy();
-
-    /**
-     * Method to set the custom identity generation strategy.
-     * 
-     * @param strategy The strategy
-     */
-    MemberMetadata setCustomStrategy(String strategy);
-
-    /**
-     * Accessor for the custom strategy (overriding "strategy").
-     * 
-     * @return The strategy
-     */
-    String getCustomStrategy();
-
-    /**
-     * Method to set the sequence (when using value-strategy of "sequence")
-     * 
-     * @param seq Sequence key
-     */
-    MemberMetadata setSequence(String seq);
-
-    /**
-     * Accessor for the sequence (when using value-strategy of "sequence")
-     * 
-     * @return Sequence key
-     */
-    String getSequence();
-
-    /**
-     * Method to set the field on the other side of a bidirectional relation
-     * (this side is owner)
-     * 
-     * @param map  mapped-by field/property
-     */
-    MemberMetadata setMappedBy(String map);
-
-    /**
-     * Accessor for the mapped-by field/property
-     * 
-     * @return mapped-by field/property
-     */
-    String getMappedBy();
-
-    /**
-     * Method to define the array details (if the field/property is an array)
-     * 
-     * @return The ArrayMetadata
-     */
-    ArrayMetadata newArrayMetadata();
-
-    /**
-     * Accessor for the array details.
-     * 
-     * @return array details
-     */
-    ArrayMetadata getArrayMetadata();
-
-    /**
-     * Method to define the array details (if the field/property is an array)
-     * 
-     * @return The ArrayMetadata
-     */
-    CollectionMetadata newCollectionMetadata();
-
-    /**
-     * Accessor for the array details.
-     * 
-     * @return array details
-     */
-    CollectionMetadata getCollectionMetadata();
-
-    /**
-     * Method to define the map details (if the field/property is an map)
-     * 
-     * @return The MapMetadata
-     */
-    MapMetadata newMapMetadata();
-
-    /**
-     * Accessor for the map details.
-     * 
-     * @return map details
-     */
-    MapMetadata getMapMetadata();
-
-    /**
-     * Method to define the join details
-     * 
-     * @return The JoinMetadata
-     */
-    JoinMetadata newJoinMetadata();
-
-    /**
-     * Accessor for the join details.
-     * 
-     * @return join details
-     */
-    JoinMetadata getJoinMetadata();
-
-    /**
-     * Method to define the embedded details
-     * 
-     * @return The EmbeddedMetadata
-     */
-    EmbeddedMetadata newEmbeddedMetadata();
-
-    /**
-     * Accessor for the embedded metadata.
-     * 
-     * @return embedded metadata
-     */
-    EmbeddedMetadata getEmbeddedMetadata();
-
-    /**
-     * Method to define the new element details
-     * 
-     * @return The ElementMetadata
-     */
-    ElementMetadata newElementMetadata();
-
-    /**
-     * Accessor for the element details
-     * 
-     * @return element details
-     */
-    ElementMetadata getElementMetadata();
-
-    /**
-     * Method to define the key details
-     * 
-     * @return The KeyMetadata
-     */
-    KeyMetadata newKeyMetadata();
-
-    /**
-     * Accessor for the key details
-     * 
-     * @return key details
-     */
-    KeyMetadata getKeyMetadata();
-
-    /**
-     * Method to define the value details
-     * 
-     * @return The ValueMetadata
-     */
-    ValueMetadata newValueMetadata();
-
-    /**
-     * Accessor for the value details
-     * 
-     * @return value details
-     */
-    ValueMetadata getValueMetadata();
-
-    /**
-     * Method to set index metadata for the field/property
-     * 
-     * @return The metadata for any index
-     */
-    IndexMetadata newIndexMetadata();
-
-    /**
-     * Accessor for any index metadata for the field/property
-     * 
-     * @return Index metadata
-     */
-    IndexMetadata getIndexMetadata();
-
-    /**
-     * Method to set new unique constraint metadata for the field/property
-     * 
-     * @return The UniqueMetadata
-     */
-    UniqueMetadata newUniqueMetadata();
-
-    /**
-     * Accessor for any unique constraint metadata on this field/property.
-     * 
-     * @return The UniqueMetadata
-     */
-    UniqueMetadata getUniqueMetadata();
-
-    /**
-     * Method to set new foreign key metadata for the field/property
-     * 
-     * @return The ForeignKeyMetadata
-     */
-    ForeignKeyMetadata newForeignKeyMetadata();
-
-    /**
-     * Accessor for any foreign key metadata on this field/property.
-     * 
-     * @return The ForeignKeyMetadata
-     */
-    ForeignKeyMetadata getForeignKeyMetadata();
-
-    /**
-     * Method to define the order details.
-     * 
-     * @return The OrdeMetadata
-     */
-    OrderMetadata newOrderMetadata();
-
-    /**
-     * Accessor for the order metadata.
-     * 
-     * @return order metadata
-     */
-    OrderMetadata getOrderMetadata();
-
-    /**
-     * Accessor for all column(s) defined on the join.
-     * 
-     * @return The column(s)
-     */
-    ColumnMetadata[] getColumns();
-
-    /**
-     * Add a new column for this join.
-     * 
-     * @return The ColumnMetadata
-     */
-    ColumnMetadata newColumnMetadata();
-
-    /**
-     * Accessor for the number of columns defined for this join.
-     * 
-     * @return The number of columns
-     */
-    int getNumberOfColumns();
-}
\ No newline at end of file
diff --git a/specification/imports/MemberMetadata.txt b/specification/imports/MemberMetadata.txt
deleted file mode 100644
index d8be928..0000000
--- a/specification/imports/MemberMetadata.txt
+++ /dev/null
@@ -1,490 +0,0 @@
-/**
- * Represents a field/property in a class/persistent-interface.
- * @since 2.3
- */
-public interface MemberMetadata extends Metadata {
-    /**
-     * Method to set the name.
-     * 
-     * @param name name
-     */
-    MemberMetadata setName(String name);
-
-    /**
-     * Accessor for the name of the field/property.
-     * 
-     * @return The name
-     */
-    String getName();
-
-    /**
-     * Method to set the table name.
-     * 
-     * @param table Table name
-     */
-    MemberMetadata setTable(String table);
-
-    /**
-     * Accessor for the name of the table.
-     * 
-     * @return The name
-     */
-    String getTable();
-
-    /**
-     * Method to set the column name.
-     * 
-     * @param col Column name
-     */
-    MemberMetadata setColumn(String col);
-
-    /**
-     * Accessor for the name of the column.
-     * 
-     * @return The column name
-     */
-    String getColumn();
-
-    /**
-     * Method to set the field type(s). For defining where we want to restrict
-     * what type is stored in a field
-     * 
-     * @param type Type of field
-     */
-    MemberMetadata setFieldType(String type);
-
-    /**
-     * Accessor for the type storable in the field
-     * 
-     * @return The field type
-     */
-    String getFieldType();
-
-    /**
-     * Method to set the delete action of the FK
-     * 
-     * @param action Delete action of the FK
-     */
-    MemberMetadata setDeleteAction(ForeignKeyAction action);
-
-    /**
-     * Accessor for the delete action of the FK
-     * 
-     * @return The FK delete-action
-     */
-    ForeignKeyAction getDeleteAction();
-
-    /**
-     * Method to set the persistence-modifier of the field/property.
-     * 
-     * @param mod persistence modifier
-     */
-    MemberMetadata setPersistenceModifier(PersistenceModifier mod);
-
-    /**
-     * Accessor for the persistence modifier of the field/property.
-     * 
-     * @return The persistence modifier
-     */
-    PersistenceModifier getPersistenceModifier();
-
-    /**
-     * Method to set the behaviour of a null value
-     * 
-     * @param val Null value behaviour
-     */
-    MemberMetadata setNullValue(NullValue val);
-
-    /**
-     * Accessor for the behaviour of a null value
-     * 
-     * @return The null value behaviour
-     */
-    NullValue getNullValue();
-
-    /**
-     * Method to set whether it is in the DFG.
-     * 
-     * @param dfg DFG?
-     */
-    MemberMetadata setDefaultFetchGroup(boolean dfg);
-
-    /**
-     * Accessor for whether part of the DFG.
-     * 
-     * @return dfg?
-     */
-    Boolean getDefaultFetchGroup();
-
-    /**
-     * Method to set whether it is unique.
-     * 
-     * @param unique Unique?
-     */
-    MemberMetadata setDependent(boolean unique);
-
-    /**
-     * Accessor for whether unique.
-     * 
-     * @return Unique?
-     */
-    Boolean getDependent();
-
-    /**
-     * Method to set whether it is embedded.
-     * 
-     * @param emb Embedded?
-     */
-    MemberMetadata setEmbedded(boolean emb);
-
-    /**
-     * Accessor for whether it is embedded.
-     * 
-     * @return embedded?
-     */
-    Boolean getEmbedded();
-
-    /**
-     * Method to set whether it is serialized.
-     * 
-     * @param ser serialized?
-     */
-    MemberMetadata setSerialized(boolean ser);
-
-    /**
-     * Accessor for whether it is serialized.
-     * 
-     * @return serialized?
-     */
-    Boolean getSerialized();
-
-    /**
-     * Method to set whether it is part of the pk
-     * 
-     * @param pk PK?
-     */
-    MemberMetadata setPrimaryKey(boolean pk);
-
-    /**
-     * Accessor for whether it is part of the pk.
-     * 
-     * @return pk?
-     */
-    boolean getPrimaryKey();
-
-    /**
-     * Method to set whether it is indexed.
-     * 
-     * @param index Indexed?
-     */
-    MemberMetadata setIndexed(boolean index);
-
-    /**
-     * Accessor for whether it is indexed.
-     * 
-     * @return Indexed?
-     */
-    Boolean getIndexed();
-
-    /**
-     * Method to set whether it is unique.
-     * 
-     * @param unique Unique?
-     */
-    MemberMetadata setUnique(boolean unique);
-
-    /**
-     * Accessor for whether unique.
-     * 
-     * @return Unique?
-     */
-    Boolean getUnique();
-
-    /**
-     * Method to set whether this is cacheable
-     * 
-     * @param cacheable Cacheable?
-     */
-    MemberMetadata setCacheable(boolean cacheable);
-
-    /**
-     * Accessor for whether this is cacheable.
-     * 
-     * @return Detachable?
-     */
-    boolean getCacheable();
-
-    /**
-     * Method to set the recursion depth (when used in a fetch group).
-     * 
-     * @param depth Recursion depth
-     */
-    MemberMetadata setRecursionDepth(int depth);
-
-    /**
-     * Accessor for the recursion depth (when part of a fetch group).
-     * 
-     * @return Recursion depth?
-     */
-    int getRecursionDepth();
-
-    /**
-     * Method to set the load fetch group.
-     * 
-     * @param grp Load fetch group
-     */
-    MemberMetadata setLoadFetchGroup(String grp);
-
-    /**
-     * Accessor for the name of the load fetch group
-     * 
-     * @return The load fetch group
-     */
-    String getLoadFetchGroup();
-
-    /**
-     * Method to set the value strategy
-     * 
-     * @param str Value strategy
-     */
-    MemberMetadata setValueStrategy(IdGeneratorStrategy str);
-
-    /**
-     * Accessor for the value strategy
-     * 
-     * @return Value strategy
-     */
-    IdGeneratorStrategy getValueStrategy();
-
-    /**
-     * Method to set the custom identity generation strategy.
-     * 
-     * @param strategy The strategy
-     */
-    MemberMetadata setCustomStrategy(String strategy);
-
-    /**
-     * Accessor for the custom strategy (overriding "strategy").
-     * 
-     * @return The strategy
-     */
-    String getCustomStrategy();
-
-    /**
-     * Method to set the sequence (when using value-strategy of "sequence")
-     * 
-     * @param seq Sequence key
-     */
-    MemberMetadata setSequence(String seq);
-
-    /**
-     * Accessor for the sequence (when using value-strategy of "sequence")
-     * 
-     * @return Sequence key
-     */
-    String getSequence();
-
-    /**
-     * Method to set the field on the other side of a bidirectional relation
-     * (this side is owner)
-     * 
-     * @param map  mapped-by field/property
-     */
-    MemberMetadata setMappedBy(String map);
-
-    /**
-     * Accessor for the mapped-by field/property
-     * 
-     * @return mapped-by field/property
-     */
-    String getMappedBy();
-
-    /**
-     * Method to define the array details (if the field/property is an array)
-     * 
-     * @return The ArrayMetadata
-     */
-    ArrayMetadata newArrayMetadata();
-
-    /**
-     * Accessor for the array details.
-     * 
-     * @return array details
-     */
-    ArrayMetadata getArrayMetadata();
-
-    /**
-     * Method to define the array details (if the field/property is an array)
-     * 
-     * @return The ArrayMetadata
-     */
-    CollectionMetadata newCollectionMetadata();
-
-    /**
-     * Accessor for the array details.
-     * 
-     * @return array details
-     */
-    CollectionMetadata getCollectionMetadata();
-
-    /**
-     * Method to define the map details (if the field/property is an map)
-     * 
-     * @return The MapMetadata
-     */
-    MapMetadata newMapMetadata();
-
-    /**
-     * Accessor for the map details.
-     * 
-     * @return map details
-     */
-    MapMetadata getMapMetadata();
-
-    /**
-     * Method to define the join details
-     * 
-     * @return The JoinMetadata
-     */
-    JoinMetadata newJoinMetadata();
-
-    /**
-     * Accessor for the join details.
-     * 
-     * @return join details
-     */
-    JoinMetadata getJoinMetadata();
-
-    /**
-     * Method to define the embedded details
-     * 
-     * @return The EmbeddedMetadata
-     */
-    EmbeddedMetadata newEmbeddedMetadata();
-
-    /**
-     * Accessor for the embedded metadata.
-     * 
-     * @return embedded metadata
-     */
-    EmbeddedMetadata getEmbeddedMetadata();
-
-    /**
-     * Method to define the new element details
-     * 
-     * @return The ElementMetadata
-     */
-    ElementMetadata newElementMetadata();
-
-    /**
-     * Accessor for the element details
-     * 
-     * @return element details
-     */
-    ElementMetadata getElementMetadata();
-
-    /**
-     * Method to define the key details
-     * 
-     * @return The KeyMetadata
-     */
-    KeyMetadata newKeyMetadata();
-
-    /**
-     * Accessor for the key details
-     * 
-     * @return key details
-     */
-    KeyMetadata getKeyMetadata();
-
-    /**
-     * Method to define the value details
-     * 
-     * @return The ValueMetadata
-     */
-    ValueMetadata newValueMetadata();
-
-    /**
-     * Accessor for the value details
-     * 
-     * @return value details
-     */
-    ValueMetadata getValueMetadata();
-
-    /**
-     * Method to set index metadata for the field/property
-     * 
-     * @return The metadata for any index
-     */
-    IndexMetadata newIndexMetadata();
-
-    /**
-     * Accessor for any index metadata for the field/property
-     * 
-     * @return Index metadata
-     */
-    IndexMetadata getIndexMetadata();
-
-    /**
-     * Method to set new unique constraint metadata for the field/property
-     * 
-     * @return The UniqueMetadata
-     */
-    UniqueMetadata newUniqueMetadata();
-
-    /**
-     * Accessor for any unique constraint metadata on this field/property.
-     * 
-     * @return The UniqueMetadata
-     */
-    UniqueMetadata getUniqueMetadata();
-
-    /**
-     * Method to set new foreign key metadata for the field/property
-     * 
-     * @return The ForeignKeyMetadata
-     */
-    ForeignKeyMetadata newForeignKeyMetadata();
-
-    /**
-     * Accessor for any foreign key metadata on this field/property.
-     * 
-     * @return The ForeignKeyMetadata
-     */
-    ForeignKeyMetadata getForeignKeyMetadata();
-
-    /**
-     * Method to define the order details.
-     * 
-     * @return The OrdeMetadata
-     */
-    OrderMetadata newOrderMetadata();
-
-    /**
-     * Accessor for the order metadata.
-     * 
-     * @return order metadata
-     */
-    OrderMetadata getOrderMetadata();
-
-    /**
-     * Accessor for all column(s) defined on the join.
-     * 
-     * @return The column(s)
-     */
-    ColumnMetadata[] getColumns();
-
-    /**
-     * Add a new column for this join.
-     * 
-     * @return The ColumnMetadata
-     */
-    ColumnMetadata newColumnMetadata();
-
-    /**
-     * Accessor for the number of columns defined for this join.
-     * 
-     * @return The number of columns
-     */
-    int getNumberOfColumns();
-}
diff --git a/specification/imports/Metadata.java b/specification/imports/Metadata.java
deleted file mode 100644
index 8a2f74f..0000000
--- a/specification/imports/Metadata.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package javax.jdo.metadata;
-
-/**
- * This interface provides base level definitions for all metadata components.
- *
- * @version 2.3
- */
-public interface Metadata {
-    /**
-     * Add a vendor extension to this metadata component.
-     * 
-     * @param vendor Identifier for the vendor
-     * @param key The extension key
-     * @param value Value for the extension
-     * @return The ExtensionMetaData
-     */
-    ExtensionMetadata newExtensionMetaData(String vendor, String key, String value);
-
-    /**
-     * Number of extensions on this component.
-     * 
-     * @return Number of extensions
-     */
-    int getNumberOfExtensions();
-
-    /**
-     * Accessor for the defined extensions for this component
-     * 
-     * @return The extensions
-     */
-    ExtensionMetadata[] getExtensions();
-
-    /**
-     * Accessor for the parent metadata component.
-     * 
-     * @return The parent
-     */
-    Metadata getParent();
-}
\ No newline at end of file
diff --git a/specification/imports/Metadata.txt b/specification/imports/Metadata.txt
deleted file mode 100644
index c872498..0000000
--- a/specification/imports/Metadata.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * This interface provides base level definitions for all metadata components.
- *
- * @version 2.3
- */
-public interface Metadata {
-    /**
-     * Add a vendor extension to this metadata component.
-     * 
-     * @param vendor Identifier for the vendor
-     * @param key The extension key
-     * @param value Value for the extension
-     * @return The ExtensionMetaData
-     */
-    ExtensionMetadata newExtensionMetaData(String vendor, String key, String value);
-
-    /**
-     * Number of extensions on this component.
-     * 
-     * @return Number of extensions
-     */
-    int getNumberOfExtensions();
-
-    /**
-     * Accessor for the defined extensions for this component
-     * 
-     * @return The extensions
-     */
-    ExtensionMetadata[] getExtensions();
-
-    /**
-     * Accessor for the parent metadata component.
-     * 
-     * @return The parent
-     */
-    Metadata getParent();
-}
diff --git a/specification/imports/NotPersistent.txt b/specification/imports/NotPersistent.txt
deleted file mode 100644
index 1d87a94..0000000
--- a/specification/imports/NotPersistent.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-@Target({ElementType.FIELD, ElementType.METHOD}) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface NotPersistent
-{
-}
diff --git a/specification/imports/NullValue.txt b/specification/imports/NullValue.txt
deleted file mode 100644
index db961ca..0000000
--- a/specification/imports/NullValue.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-
-public enum NullValue
-{
-    NONE,
-    EXCEPTION,
-    DEFAULT
-}
diff --git a/specification/imports/ObjectState.txt b/specification/imports/ObjectState.txt
deleted file mode 100644
index 6140952..0000000
--- a/specification/imports/ObjectState.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-
-public enum ObjectState {
-
-    TRANSIENT("transient"),
-    TRANSIENT_CLEAN("transient-clean"),
-    TRANSIENT_DIRTY("transient-dirty"),
-    PERSISTENT_NEW("persistent-new"),
-    HOLLOW_PERSISTENT_NONTRANSACTIONAL("hollow/persistent-nontransactional"),
-    PERSISTENT_NONTRANSACTIONAL_DIRTY("persistent-nontransactional-dirty"),
-    PERSISTENT_CLEAN("persistent-clean"),
-    PERSISTENT_DIRTY("persistent-dirty"),
-    PERSISTENT_DELETED("persistent-deleted"),
-    PERSISTENT_NEW_DELETED("persistent-new-deleted"),
-    DETACHED_CLEAN("detached-clean"),
-    DETACHED_DIRTY("detached-dirty");
-
-    private final String value;
-
-    private ObjectState(String value) {
-        this.value = value;
-    }
-
-    public String toString() {
-        return value;
-    }
-}
-
-
diff --git a/specification/imports/Order.txt b/specification/imports/Order.txt
deleted file mode 100644
index ab738a8..0000000
--- a/specification/imports/Order.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-@Target({ElementType.FIELD, ElementType.METHOD}) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Order
-{
-    /** The name of the column to use for ordering the elements of the member.
-     * @return the name of the ordering column
-     */
-    String column() default "";
-
-    /** Name of a field or property in the target class that acts as the 
-     * ordering field or property for this member.
-     * Return the name of the field or property in the target class
-     */
-    String mappedBy() default "";
-
-    /** The definition of the column(s) to use for ordering.
-     * @return the columns to use for ordering
-     */
-    Column[] columns() default {};
-
-    /** Vendor extensions.
-     * @return the vendor extensions
-     */
-    Extension[] extensions() default {};
-}
diff --git a/specification/imports/OrderMetadata.java b/specification/imports/OrderMetadata.java
deleted file mode 100644
index 6a71c8b..0000000
--- a/specification/imports/OrderMetadata.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package javax.jdo.metadata;
-
-/**
- * Represents ordering of a collection field/property.
- * @since 2.3
- */
-public interface OrderMetadata extends Metadata {
-    /**
-     * Method to set the version column name.
-     * 
-     * @param column Name of the version clumn
-     */
-    OrderMetadata setColumn(String column);
-
-    /**
-     * Accessor for the version column name
-     * 
-     * @return The version column name
-     */
-    String getColumn();
-
-    /**
-     * Method to set mapped-by information whether the order is present in the element class.
-     * 
-     * @param mappedBy Field/property name in which to store the ordering in the element
-     */
-    OrderMetadata setMappedBy(String mappedBy);
-
-    /**
-     * Accessor for the mapped-by field/property name in the element class.
-     * 
-     * @return Name of field/property in element class
-     */
-    String getMappedBy();
-
-    /**
-     * Accessor for all column(s) defined on the ordering.
-     * 
-     * @return The column(s)
-     */
-    ColumnMetadata[] getColumns();
-
-    /**
-     * Add a column for this ordering.
-     * 
-     * @return The ColumnMetadata
-     */
-    ColumnMetadata newColumnMetadata();
-
-    /**
-     * Accessor for the number of columns defined for this ordering.
-     * 
-     * @return The number of columns
-     */
-    int getNumberOfColumns();
-
-    /**
-     * Method to set index metadata for the ordering
-     * 
-     * @return The metadata for any index
-     */
-    IndexMetadata newIndexMetadata();
-
-    /**
-     * Accessor for any index metadata for the ordering
-     * 
-     * @return Index metadata
-     */
-    IndexMetadata getIndexMetadata();
-}
\ No newline at end of file
diff --git a/specification/imports/OrderMetadata.txt b/specification/imports/OrderMetadata.txt
deleted file mode 100644
index 1dc03ba..0000000
--- a/specification/imports/OrderMetadata.txt
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
- * Represents ordering of a collection field/property.
- * @since 2.3
- */
-public interface OrderMetadata extends Metadata {
-    /**
-     * Method to set the version column name.
-     * 
-     * @param column Name of the version clumn
-     */
-    OrderMetadata setColumn(String column);
-
-    /**
-     * Accessor for the version column name
-     * 
-     * @return The version column name
-     */
-    String getColumn();
-
-    /**
-     * Method to set mapped-by information whether the order is present in the element class.
-     * 
-     * @param mappedBy Field/property name in which to store the ordering in the element
-     */
-    OrderMetadata setMappedBy(String mappedBy);
-
-    /**
-     * Accessor for the mapped-by field/property name in the element class.
-     * 
-     * @return Name of field/property in element class
-     */
-    String getMappedBy();
-
-    /**
-     * Accessor for all column(s) defined on the ordering.
-     * 
-     * @return The column(s)
-     */
-    ColumnMetadata[] getColumns();
-
-    /**
-     * Add a column for this ordering.
-     * 
-     * @return The ColumnMetadata
-     */
-    ColumnMetadata newColumnMetadata();
-
-    /**
-     * Accessor for the number of columns defined for this ordering.
-     * 
-     * @return The number of columns
-     */
-    int getNumberOfColumns();
-
-    /**
-     * Method to set index metadata for the ordering
-     * 
-     * @return The metadata for any index
-     */
-    IndexMetadata newIndexMetadata();
-
-    /**
-     * Accessor for any index metadata for the ordering
-     * 
-     * @return Index metadata
-     */
-    IndexMetadata getIndexMetadata();
-}
diff --git a/specification/imports/PackageMetadata.java b/specification/imports/PackageMetadata.java
deleted file mode 100644
index d501bae..0000000
--- a/specification/imports/PackageMetadata.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package javax.jdo.metadata;
-
-import javax.jdo.annotations.SequenceStrategy;
-
-/**
- * Represents a package within a JDOMetadata.
- * @since 2.3
- */
-public interface PackageMetadata extends Metadata {
-    /**
-     * Accessor for the name of this package (set on construction).
-     * 
-     * @return The name
-     */
-    String getName();
-
-    /**
-     * Method to set the catalog (ORM) to apply to all classes in this package.
-     * 
-     * @param catalog Catalog name
-     */
-    PackageMetadata setCatalog(String catalog);
-
-    /**
-     * Accessor for the catalog (ORM) that all classes in this package default
-     * to.
-     * 
-     * @return The catalog
-     */
-    String getCatalog();
-
-    /**
-     * Method to set the schema (ORM) to apply to all classes in this package.
-     * 
-     * @param schema Schema name
-     */
-    PackageMetadata setSchema(String schema);
-
-    /**
-     * Accessor for the schema (ORM) that all classes in this package default to.
-     * 
-     * @return The schema
-     */
-    String getSchema();
-
-    /**
-     * Accessor for all classes defined in this package.
-     * 
-     * @return The classes
-     */
-    ClassMetadata[] getClasses();
-
-    /**
-     * Add a new class to this package.
-     * 
-     * @param name Name of the class
-     * @return The ClassMetadata
-     */
-    ClassMetadata newClassMetadata(String name);
-
-    /**
-     * Add a new class to this package.
-     * 
-     * @param cls The class
-     * @return The ClassMetadata
-     */
-    ClassMetadata newClassMetadata(Class cls);
-
-    /**
-     * Accessor for the number of classes defined in this package.
-     * 
-     * @return The number of classes.
-     */
-    int getNumberOfClasses();
-
-    /**
-     * Accessor for all interfaces defined in this package.
-     * 
-     * @return The interfaces
-     */
-    InterfaceMetadata[] getInterfaces();
-
-    /**
-     * Add a new interface to this package.
-     * 
-     * @param name The interface name
-     * @return The InterfaceMetadata
-     */
-    InterfaceMetadata newInterfaceMetadata(String name);
-
-    /**
-     * Add a new interface to this package.
-     * 
-     * @param cls The class
-     * @return The ClassMetadata
-     */
-    InterfaceMetadata newInterfaceMetadata(Class cls);
-
-    /**
-     * Accessor for the number of interfaces defined in this package.
-     * 
-     * @return The number of interfaces.
-     */
-    int getNumberOfInterfaces();
-
-    /**
-     * Accessor for any sequences defined on the package.
-     * 
-     * @return The sequences
-     */
-    SequenceMetadata[] getSequences();
-
-    /**
-     * Add a new sequence to this package.
-     * 
-     * @param name Name of the sequence
-     * @param strategy Strategy for the sequence
-     * @return The SequenceMetadata
-     */
-    SequenceMetadata newSequenceMetadata(String name, SequenceStrategy strategy);
-
-    /**
-     * Accessor for the number of sequences defined for this package.
-     * 
-     * @return The number of sequences.
-     */
-    int getNumberOfSequences();
-}
\ No newline at end of file
diff --git a/specification/imports/PackageMetadata.txt b/specification/imports/PackageMetadata.txt
deleted file mode 100644
index 1a4482f..0000000
--- a/specification/imports/PackageMetadata.txt
+++ /dev/null
@@ -1,125 +0,0 @@
-/**
- * Represents a package within a JDOMetadata.
- * @since 2.3
- */
-public interface PackageMetadata extends Metadata {
-    /**
-     * Accessor for the name of this package (set on construction).
-     * 
-     * @return The name
-     */
-    String getName();
-
-    /**
-     * Method to set the catalog (ORM) to apply to all classes in this package.
-     * 
-     * @param catalog Catalog name
-     */
-    PackageMetadata setCatalog(String catalog);
-
-    /**
-     * Accessor for the catalog (ORM) that all classes in this package default
-     * to.
-     * 
-     * @return The catalog
-     */
-    String getCatalog();
-
-    /**
-     * Method to set the schema (ORM) to apply to all classes in this package.
-     * 
-     * @param schema Schema name
-     */
-    PackageMetadata setSchema(String schema);
-
-    /**
-     * Accessor for the schema (ORM) that all classes in this package default to.
-     * 
-     * @return The schema
-     */
-    String getSchema();
-
-    /**
-     * Accessor for all classes defined in this package.
-     * 
-     * @return The classes
-     */
-    ClassMetadata[] getClasses();
-
-    /**
-     * Add a new class to this package.
-     * 
-     * @param name Name of the class
-     * @return The ClassMetadata
-     */
-    ClassMetadata newClassMetadata(String name);
-
-    /**
-     * Add a new class to this package.
-     * 
-     * @param cls The class
-     * @return The ClassMetadata
-     */
-    ClassMetadata newClassMetadata(Class cls);
-
-    /**
-     * Accessor for the number of classes defined in this package.
-     * 
-     * @return The number of classes.
-     */
-    int getNumberOfClasses();
-
-    /**
-     * Accessor for all interfaces defined in this package.
-     * 
-     * @return The interfaces
-     */
-    InterfaceMetadata[] getInterfaces();
-
-    /**
-     * Add a new interface to this package.
-     * 
-     * @param name The interface name
-     * @return The InterfaceMetadata
-     */
-    InterfaceMetadata newInterfaceMetadata(String name);
-
-    /**
-     * Add a new interface to this package.
-     * 
-     * @param cls The class
-     * @return The ClassMetadata
-     */
-    InterfaceMetadata newInterfaceMetadata(Class cls);
-
-    /**
-     * Accessor for the number of interfaces defined in this package.
-     * 
-     * @return The number of interfaces.
-     */
-    int getNumberOfInterfaces();
-
-    /**
-     * Accessor for any sequences defined on the package.
-     * 
-     * @return The sequences
-     */
-    SequenceMetadata[] getSequences();
-
-    /**
-     * Add a new sequence to this package.
-     * 
-     * @param name Name of the sequence
-     * @param strategy Strategy for the sequence
-     * @return The SequenceMetadata
-     */
-    SequenceMetadata newSequenceMetadata(String name,
-            SequenceStrategy strategy);
-
-    /**
-     * Accessor for the number of sequences defined for this package.
-     * 
-     * @return The number of sequences.
-     */
-    int getNumberOfSequences();
-}
diff --git a/specification/imports/PersistenceAware.txt b/specification/imports/PersistenceAware.txt
deleted file mode 100644
index a9017e5..0000000
--- a/specification/imports/PersistenceAware.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-@Target(ElementType.TYPE) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface PersistenceAware
-{
-}
diff --git a/specification/imports/PersistenceCapable.java b/specification/imports/PersistenceCapable.java
deleted file mode 100644
index 7ee38ad..0000000
--- a/specification/imports/PersistenceCapable.java
+++ /dev/null
@@ -1,52 +0,0 @@
-@Target(ElementType.TYPE) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface PersistenceCapable
-{
-    /** Member declarations. Annotations for persistent members of this
-     * class or interface can be specifed either here or on each member.
-     * Annotations for inherited members can only be specified here.
-     * @return member declarations
-     */
-    Persistent[] members() default {};
-
-    /** Table to use for persisting this class or interface. 
-     */
-    String table() default "";
-
-    /** Catalog to use for persisting this class or interface. 
-     */
-    String catalog() default "";
-
-    /** Schema to use for persisting this class or interface. 
-     */
-    String schema() default "";
-
-    /** Whether this class or interface manages an extent. 
-     */
-    String requiresExtent() default "";
-
-    /** Whether objects of this class or interface can only be embedded. 
-     */
-    String embeddedOnly() default "";
-
-    /** Whether this class or interface is detachable. 
-     */
-    String detachable() default "";
-
-    /** Type of identity for this class or interface. 
-     */
-    IdentityType identityType() default IdentityType.UNSPECIFIED;
-
-    /** Primary key class when using application identity and using own PK. 
-     */
-    Class objectIdClass() default void.class;
-
-    /** Whether this class is cacheable in a Level2 cache.
-     * @since 2.2
-     */
-    String cacheable() default "true";
-
-    /** Any vendor extensions.
-     */
-    Extension[] extensions() default {};
-}
diff --git a/specification/imports/PersistenceCapable.txt b/specification/imports/PersistenceCapable.txt
deleted file mode 100644
index 9617794..0000000
--- a/specification/imports/PersistenceCapable.txt
+++ /dev/null
@@ -1,57 +0,0 @@
-@Target(ElementType.TYPE) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface PersistenceCapable
-{
-    /** Member declarations. Annotations for persistent members of this
-     * class or interface can be specifed either here or on each member.
-     * Annotations for inherited members can only be specified here.
-     * @return member declarations
-     */
-    Persistent[] members() default {};
-
-    /** Table to use for persisting this class or interface. 
-     */
-    String table() default "";
-
-    /** Catalog to use for persisting this class or interface. 
-     */
-    String catalog() default "";
-
-    /** Schema to use for persisting this class or interface. 
-     */
-    String schema() default "";
-
-    /** Whether this class or interface manages an extent. 
-     */
-    String requiresExtent() default "";
-
-    /** Whether objects of this class or interface can only be embedded. 
-     */
-    String embeddedOnly() default "";
-
-    /** Whether this class or interface is detachable. 
-     */
-    String detachable() default "";
-
-    /** Type of identity for this class or interface. 
-     */
-    IdentityType identityType() default IdentityType.UNSPECIFIED;
-
-    /** Primary key class when using application identity and using own PK. 
-     */
-    Class objectIdClass() default void.class;
-
-    /** Whether this class is cacheable in a Level2 cache.
-     * @since 2.2
-     */
-    String cacheable() default "true";
-
-    /** Whether objects of this type should, by default, be locked when read.
-     * @since 2.3
-     */
-    String serializeRead() default "false";
-
-    /** Any vendor extensions.
-     */
-    Extension[] extensions() default {};
-}
diff --git a/specification/imports/PersistenceManager.txt b/specification/imports/PersistenceManager.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/specification/imports/PersistenceManagerFactory.txt b/specification/imports/PersistenceManagerFactory.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/specification/imports/PersistenceModifier.txt b/specification/imports/PersistenceModifier.txt
deleted file mode 100644
index e17cf64..0000000
--- a/specification/imports/PersistenceModifier.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-
-public enum PersistenceModifier
-{
-    UNSPECIFIED,
-    PERSISTENT,
-    TRANSACTIONAL,
-    NONE
-}
diff --git a/specification/imports/Persistent.java b/specification/imports/Persistent.java
deleted file mode 100644
index 0a72f80..0000000
--- a/specification/imports/Persistent.java
+++ /dev/null
@@ -1,185 +0,0 @@
-@Target({ElementType.FIELD, ElementType.METHOD}) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Persistent
-{
-    /** Modifier for this field. This is normally not specified, and the 
-     * defaults are used, or the @Transactional or @NotPersistent 
-     * annotation is specified directly on the member. One possible use
-     * for specifying persistenceModifier is for embedded instances in which
-     * a member is not persistent but in the non-embedded instances the
-     * member is persistent. Note that it is not portable to specify a
-     * member to be not persistent in the non-embedded case and persistent
-     * in the embedded usage.
-     * @return the persistence modifier
-     */
-    PersistenceModifier persistenceModifier() 
-        default PersistenceModifier.UNSPECIFIED;
-
-    /** Table to use for persisting this member.
-     * @return the table to use for persisting this member
-     */
-    String table() default "";
-
-    /** Whether this member is in the default fetch group. 
-     * @return whether this member is in the default fetch group
-     */
-    String defaultFetchGroup() default "";
-
-    /** Behavior when this member contains a null value. 
-     * @return the behavior when this member contains a null value
-     */
-    NullValue nullValue() default NullValue.NONE;
-
-    /** Whether this member is embedded. 
-     * @return whether this member is embedded
-     */
-    String embedded() default "";
-
-    /** Whether the elements of this member are embedded. 
-     * @return whether the elements of this member are embedded
-     */
-    String embeddedElement() default "";
-
-    /** Whether the keys of this member are embedded. 
-     * @return whether the keys of this member are embedded
-     */
-    String embeddedKey() default "";
-
-    /** Whether the values of this member are embedded. 
-     * @return whether the values of this member are embedded
-     */
-    String embeddedValue() default "";
-
-    /** Whether this member is serialized into a single column. 
-     * @return whether this member is serialized into a single column
-     */
-    String serialized() default "";
-
-    /** Whether the elements of this member are serialized. 
-     * @return whether the elements of this member are serialized
-     */
-    String serializedElement() default "";
-
-    /** Whether the keys of this member are serialized. 
-     * @return whether the keys of this member are serialized
-     */
-    String serializedKey() default "";
-
-    /** Whether the values of this member are serialized. 
-     * @return whether the values of this member are serialized
-     */
-    String serializedValue() default "";
-
-    /** Whether related object(s) of this member are dependent
-     * and so deleted when this object is deleted. 
-     * @return whether the related object(s) of this member
-     * are dependent
-     */
-    String dependent() default "";
-
-    /** Whether the elements of this member are dependent. 
-     * @return whether the elements of this member are dependent
-     */
-    String dependentElement() default "";
-
-    /** Whether the keys of this member are dependent. 
-     * @return whether the keys of this member are dependent
-     */
-    String dependentKey() default "";
-
-    /** Whether the values of this member are dependent. 
-     * @return whether the values of this member are dependent
-     */
-    String dependentValue() default "";
-
-    /** Whether this member is part of the primary key for application
-     * identity. This is equivalent to specifying @PrimaryKey as 
-     * a separate annotation on the member.
-     * @return whether this member is part of the primary key
-     */
-    String primaryKey() default "";
-
-    /** Value strategy to use to generate the value for this field 
-     * or property (if any).
-     * @return the generated value strategy
-     */
-    IdGeneratorStrategy valueStrategy() default IdGeneratorStrategy.UNSPECIFIED;
-
-    /** Custom value strategy to use to generate the value for this field 
-     * or property (if any). If customValueStrategy is non-empty, then
-     * valueStrategy must be UNSPECIFIED.
-     * @return the custom value strategy
-     */
-    String customValueStrategy() default "";
-
-    /** Name of the sequence to use with particular value strategies. 
-     * @return the name of the sequence
-     */
-    String sequence() default "";
-
-    /** Name of the fetch-group to use when this member is loaded 
-     * due to being referenced when not already loaded.
-     * @return the name of the load fetch group
-     */
-    String loadFetchGroup() default "";
-
-    /** Types of the member. Used when the declared 
-     * member type is a supertype of the actual type that is stored in the 
-     * member. For example, the declared member type might be an interface type
-     * that must contain an object of a concrete type when used
-     * for persistence.
-     * @return the types
-     */
-    Class[] types() default {};
-
-    /** Name of the related member in the other class 
-     * where this value is mapped (bidirectional relationship). 
-     * @return the related member in the other class
-     */
-    String mappedBy() default "";
-
-    /** Column definition(s) for this member. Used for mapping 
-     * multiple columns
-     * to the same member, for example relationships with 
-     * multiple column foreign keys. 
-     * @return the columns for this member
-     */
-    Column[] columns() default {}; 
-
-    /** Column name where the values are stored for this member. 
-     * @return the name of the column
-     */
-    String column() default "";
-
-    /** Null indicator column for this member. Used for nested 
-     * embedded fields or properties to indicate whether the embedded
-     * instance should have a null value.
-     * @return the null indicator column
-     */
-    String nullIndicatorColumn() default "";
-
-    /** Name of the member when this is embedded in another object.
-     * The fully-qualified member name is used. For example, 
-     * "line.point1.x" refers to the member x in class Point 
-     * that is embedded as member point1 in class Line that is embedded 
-     * in a member called line.
-     * @return the name of the member
-     */
-    String name() default ""; 
-
-    /** Recursion depth for this member. Used only when
-     * the annotation is used within the definition of a FetchGroup.
-     * @return the recursion depth
-     */
-    int recursionDepth() default 1;
-
-    /** Whether this field/property is cacheable in a Level2 cache.
-     * @since 2.2
-     */
-    String cacheable() default "true";
-
-    /** Vendor extensions for this member. 
-     * @return the vendor extensions
-     */
-    Extension[] extensions() default {};
-}
diff --git a/specification/imports/Persistent.txt b/specification/imports/Persistent.txt
deleted file mode 100644
index 0a72f80..0000000
--- a/specification/imports/Persistent.txt
+++ /dev/null
@@ -1,185 +0,0 @@
-@Target({ElementType.FIELD, ElementType.METHOD}) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Persistent
-{
-    /** Modifier for this field. This is normally not specified, and the 
-     * defaults are used, or the @Transactional or @NotPersistent 
-     * annotation is specified directly on the member. One possible use
-     * for specifying persistenceModifier is for embedded instances in which
-     * a member is not persistent but in the non-embedded instances the
-     * member is persistent. Note that it is not portable to specify a
-     * member to be not persistent in the non-embedded case and persistent
-     * in the embedded usage.
-     * @return the persistence modifier
-     */
-    PersistenceModifier persistenceModifier() 
-        default PersistenceModifier.UNSPECIFIED;
-
-    /** Table to use for persisting this member.
-     * @return the table to use for persisting this member
-     */
-    String table() default "";
-
-    /** Whether this member is in the default fetch group. 
-     * @return whether this member is in the default fetch group
-     */
-    String defaultFetchGroup() default "";
-
-    /** Behavior when this member contains a null value. 
-     * @return the behavior when this member contains a null value
-     */
-    NullValue nullValue() default NullValue.NONE;
-
-    /** Whether this member is embedded. 
-     * @return whether this member is embedded
-     */
-    String embedded() default "";
-
-    /** Whether the elements of this member are embedded. 
-     * @return whether the elements of this member are embedded
-     */
-    String embeddedElement() default "";
-
-    /** Whether the keys of this member are embedded. 
-     * @return whether the keys of this member are embedded
-     */
-    String embeddedKey() default "";
-
-    /** Whether the values of this member are embedded. 
-     * @return whether the values of this member are embedded
-     */
-    String embeddedValue() default "";
-
-    /** Whether this member is serialized into a single column. 
-     * @return whether this member is serialized into a single column
-     */
-    String serialized() default "";
-
-    /** Whether the elements of this member are serialized. 
-     * @return whether the elements of this member are serialized
-     */
-    String serializedElement() default "";
-
-    /** Whether the keys of this member are serialized. 
-     * @return whether the keys of this member are serialized
-     */
-    String serializedKey() default "";
-
-    /** Whether the values of this member are serialized. 
-     * @return whether the values of this member are serialized
-     */
-    String serializedValue() default "";
-
-    /** Whether related object(s) of this member are dependent
-     * and so deleted when this object is deleted. 
-     * @return whether the related object(s) of this member
-     * are dependent
-     */
-    String dependent() default "";
-
-    /** Whether the elements of this member are dependent. 
-     * @return whether the elements of this member are dependent
-     */
-    String dependentElement() default "";
-
-    /** Whether the keys of this member are dependent. 
-     * @return whether the keys of this member are dependent
-     */
-    String dependentKey() default "";
-
-    /** Whether the values of this member are dependent. 
-     * @return whether the values of this member are dependent
-     */
-    String dependentValue() default "";
-
-    /** Whether this member is part of the primary key for application
-     * identity. This is equivalent to specifying @PrimaryKey as 
-     * a separate annotation on the member.
-     * @return whether this member is part of the primary key
-     */
-    String primaryKey() default "";
-
-    /** Value strategy to use to generate the value for this field 
-     * or property (if any).
-     * @return the generated value strategy
-     */
-    IdGeneratorStrategy valueStrategy() default IdGeneratorStrategy.UNSPECIFIED;
-
-    /** Custom value strategy to use to generate the value for this field 
-     * or property (if any). If customValueStrategy is non-empty, then
-     * valueStrategy must be UNSPECIFIED.
-     * @return the custom value strategy
-     */
-    String customValueStrategy() default "";
-
-    /** Name of the sequence to use with particular value strategies. 
-     * @return the name of the sequence
-     */
-    String sequence() default "";
-
-    /** Name of the fetch-group to use when this member is loaded 
-     * due to being referenced when not already loaded.
-     * @return the name of the load fetch group
-     */
-    String loadFetchGroup() default "";
-
-    /** Types of the member. Used when the declared 
-     * member type is a supertype of the actual type that is stored in the 
-     * member. For example, the declared member type might be an interface type
-     * that must contain an object of a concrete type when used
-     * for persistence.
-     * @return the types
-     */
-    Class[] types() default {};
-
-    /** Name of the related member in the other class 
-     * where this value is mapped (bidirectional relationship). 
-     * @return the related member in the other class
-     */
-    String mappedBy() default "";
-
-    /** Column definition(s) for this member. Used for mapping 
-     * multiple columns
-     * to the same member, for example relationships with 
-     * multiple column foreign keys. 
-     * @return the columns for this member
-     */
-    Column[] columns() default {}; 
-
-    /** Column name where the values are stored for this member. 
-     * @return the name of the column
-     */
-    String column() default "";
-
-    /** Null indicator column for this member. Used for nested 
-     * embedded fields or properties to indicate whether the embedded
-     * instance should have a null value.
-     * @return the null indicator column
-     */
-    String nullIndicatorColumn() default "";
-
-    /** Name of the member when this is embedded in another object.
-     * The fully-qualified member name is used. For example, 
-     * "line.point1.x" refers to the member x in class Point 
-     * that is embedded as member point1 in class Line that is embedded 
-     * in a member called line.
-     * @return the name of the member
-     */
-    String name() default ""; 
-
-    /** Recursion depth for this member. Used only when
-     * the annotation is used within the definition of a FetchGroup.
-     * @return the recursion depth
-     */
-    int recursionDepth() default 1;
-
-    /** Whether this field/property is cacheable in a Level2 cache.
-     * @since 2.2
-     */
-    String cacheable() default "true";
-
-    /** Vendor extensions for this member. 
-     * @return the vendor extensions
-     */
-    Extension[] extensions() default {};
-}
diff --git a/specification/imports/PrimaryKey.txt b/specification/imports/PrimaryKey.txt
deleted file mode 100644
index 1780e89..0000000
--- a/specification/imports/PrimaryKey.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD}) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface PrimaryKey
-{
-    /**
-     * Name of the primary key constraint
-     * @return the name of the primary key constraint
-     */
-    String name() default "";
-
-    /**
-     * Name of the column to use for the primary key
-     * @return the name of the column to use for the primary key
-     */
-    String column() default "";
-
-    /**
-     * The column(s) for the primary key
-     * @return the column(s) for the primary key
-     */
-    Column[] columns() default {};
-}
diff --git a/specification/imports/PrimaryKeyMetadata.java b/specification/imports/PrimaryKeyMetadata.java
deleted file mode 100644
index 785f974..0000000
--- a/specification/imports/PrimaryKeyMetadata.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package javax.jdo.metadata;
-
-/**
- * Represents the primary key definition of a class.
- * @since 2.3
- */
-public interface PrimaryKeyMetadata extends Metadata {
-    /**
-     * Method to set the name of the PK constraint.
-     * 
-     * @param name Name of the PK constraint
-     * @return The PK metadata
-     */
-    PrimaryKeyMetadata setName(String name);
-
-    /**
-     * Accessor for the name of the PK constraint.
-     * 
-     * @return The PK constraint name
-     */
-    String getName();
-
-    /**
-     * Method to set the PK column name.
-     * 
-     * @param column Name of the PK column
-     * @return The PK metadata
-     */
-    PrimaryKeyMetadata setColumn(String column);
-
-    /**
-     * Accessor for the PK column name
-     * 
-     * @return The column name
-     */
-    String getColumn();
-
-    /**
-     * Accessor for all column(s) defined on the PK.
-     * 
-     * @return The column(s)
-     */
-    ColumnMetadata[] getColumns();
-
-    /**
-     * Add a new column for this PK
-     * 
-     * @return The ColumnMetadata
-     */
-    ColumnMetadata newColumnMetadata();
-
-    /**
-     * Accessor for the number of columns defined for this PK
-     * 
-     * @return The number of columns
-     */
-    int getNumberOfColumns();
-}
\ No newline at end of file
diff --git a/specification/imports/PrimaryKeyMetadata.txt b/specification/imports/PrimaryKeyMetadata.txt
deleted file mode 100644
index ca71a7d..0000000
--- a/specification/imports/PrimaryKeyMetadata.txt
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * Represents the primary key definition of a class.
- * @since 2.3
- */
-public interface PrimaryKeyMetadata extends Metadata {
-    /**
-     * Method to set the name of the PK constraint.
-     * 
-     * @param name Name of the PK constraint
-     * @return The PK metadata
-     */
-    PrimaryKeyMetadata setName(String name);
-
-    /**
-     * Accessor for the name of the PK constraint.
-     * 
-     * @return The PK constraint name
-     */
-    String getName();
-
-    /**
-     * Method to set the PK column name.
-     * 
-     * @param column Name of the PK column
-     * @return The PK metadata
-     */
-    PrimaryKeyMetadata setColumn(String column);
-
-    /**
-     * Accessor for the PK column name
-     * 
-     * @return The column name
-     */
-    String getColumn();
-
-    /**
-     * Accessor for all column(s) defined on the PK.
-     * 
-     * @return The column(s)
-     */
-    ColumnMetadata[] getColumns();
-
-    /**
-     * Add a new column for this PK
-     * 
-     * @return The ColumnMetadata
-     */
-    ColumnMetadata newColumnMetadata();
-
-    /**
-     * Accessor for the number of columns defined for this PK
-     * 
-     * @return The number of columns
-     */
-    int getNumberOfColumns();
-}
diff --git a/specification/imports/PropertyMetadata.java b/specification/imports/PropertyMetadata.java
deleted file mode 100644
index 2298839..0000000
--- a/specification/imports/PropertyMetadata.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package javax.jdo.metadata;
-
-/**
- * Represents a property in a class/persistent-interface.
- * @since 2.3
- */
-public interface PropertyMetadata extends MemberMetadata {
-    /**
-     * Method to set the field name (persistent interfaces)
-     * 
-     * @param name field name
-     */
-    PropertyMetadata setFieldName(String name);
-
-    /**
-     * Accessor for the field name
-     * 
-     * @return Field name
-     */
-    String getFieldName();
-}
\ No newline at end of file
diff --git a/specification/imports/PropertyMetadata.txt b/specification/imports/PropertyMetadata.txt
deleted file mode 100644
index 103f0c4..0000000
--- a/specification/imports/PropertyMetadata.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-/**
- * Represents a property in a class/persistent-interface.
- * @since 2.3
- */
-public interface PropertyMetadata extends MemberMetadata {
-    /**
-     * Method to set the field name (persistent interfaces)
-     * 
-     * @param name field name
-     */
-    PropertyMetadata setFieldName(String name);
-
-    /**
-     * Accessor for the field name
-     * 
-     * @return Field name
-     */
-    String getFieldName();
-}
diff --git a/specification/imports/Queries.txt b/specification/imports/Queries.txt
deleted file mode 100644
index 1bd64ae..0000000
--- a/specification/imports/Queries.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-@Target(ElementType.TYPE) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Queries
-{
-    /**
-     * The named queries
-     * @return The named queries
-     */
-    Query[] value();
-}
diff --git a/specification/imports/Query.txt b/specification/imports/Query.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/specification/imports/QueryMetadata.java b/specification/imports/QueryMetadata.java
deleted file mode 100644
index 24e0e23..0000000
--- a/specification/imports/QueryMetadata.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package javax.jdo.metadata;
-
-/**
- * Represents a named query.
- * @since 2.3
- */
-public interface QueryMetadata extends Metadata {
-    /**
-     * Accessor for the name of the query (set on construction).
-     * 
-     * @return The name
-     */
-    String getName();
-
-    /**
-     * Method to set the language of the query.
-     * 
-     * @param lang Query language
-     */
-    QueryMetadata setLanguage(String lang);
-
-    /**
-     * Accessor for the query language.
-     * 
-     * @return The language
-     */
-    String getLanguage();
-
-    /**
-     * Method to set the single-string query.
-     * 
-     * @param query The query
-     */
-    QueryMetadata setQuery(String query);
-
-    /**
-     * Accessor for the single-string query.
-     * 
-     * @return The query
-     */
-    String getQuery();
-
-    /**
-     * Method to set the result class name for the query
-     * 
-     * @param clsName Result class name
-     */
-    QueryMetadata setResultClass(String clsName);
-
-    /**
-     * Accessor for the result class name for the query.
-     * 
-     * @return The result class name
-     */
-    String getResultClass();
-
-    /**
-     * Method to set if the query results are unique
-     * 
-     * @param unique Whether they are unique
-     */
-    QueryMetadata setUnique(boolean unique);
-
-    /**
-     * Accessor for whether results from the query are unique
-     * 
-     * @return Results are unique?
-     */
-    Boolean getUnique();
-
-    /**
-     * Method to set the query as not being modifiable from now.
-     */
-    QueryMetadata setUnmodifiable();
-
-    /**
-     * Accessor for whether the query is unmodifiable.
-     * 
-     * @return Can't be changed?
-     */
-    boolean getUnmodifiable();
-
-    /**
-     * Method to set the FetchPlan to use for this named query.
-     * 
-     * @param fetchPlanName name of the FetchPlan
-     */
-    QueryMetadata setFetchPlan(String fetchPlanName);
-
-    /**
-     * Accessor for the name of a fetch plan to use (if any).
-     * 
-     * @return The fetch plan name
-     */
-    String getFetchPlan();
-}
\ No newline at end of file
diff --git a/specification/imports/QueryMetadata.txt b/specification/imports/QueryMetadata.txt
deleted file mode 100644
index 2945149..0000000
--- a/specification/imports/QueryMetadata.txt
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
- * Represents a named query.
- * @since 2.3
- */
-public interface QueryMetadata extends Metadata {
-    /**
-     * Accessor for the name of the query (set on construction).
-     * 
-     * @return The name
-     */
-    String getName();
-
-    /**
-     * Method to set the language of the query.
-     * 
-     * @param lang Query language
-     */
-    QueryMetadata setLanguage(String lang);
-
-    /**
-     * Accessor for the query language.
-     * 
-     * @return The language
-     */
-    String getLanguage();
-
-    /**
-     * Method to set the single-string query.
-     * 
-     * @param query The query
-     */
-    QueryMetadata setQuery(String query);
-
-    /**
-     * Accessor for the single-string query.
-     * 
-     * @return The query
-     */
-    String getQuery();
-
-    /**
-     * Method to set the result class name for the query
-     * 
-     * @param clsName Result class name
-     */
-    QueryMetadata setResultClass(String clsName);
-
-    /**
-     * Accessor for the result class name for the query.
-     * 
-     * @return The result class name
-     */
-    String getResultClass();
-
-    /**
-     * Method to set if the query results are unique
-     * 
-     * @param unique Whether they are unique
-     */
-    QueryMetadata setUnique(boolean unique);
-
-    /**
-     * Accessor for whether results from the query are unique
-     * 
-     * @return Results are unique?
-     */
-    Boolean getUnique();
-
-    /**
-     * Method to set the query as not being modifiable from now.
-     */
-    QueryMetadata setUnmodifiable();
-
-    /**
-     * Accessor for whether the query is unmodifiable.
-     * 
-     * @return Can't be changed?
-     */
-    boolean getUnmodifiable();
-
-    /**
-     * Method to set the FetchPlan to use for this named query.
-     * 
-     * @param fetchPlanName name of the FetchPlan
-     */
-    QueryMetadata setFetchPlan(String fetchPlanName);
-
-    /**
-     * Accessor for the name of a fetch plan to use (if any).
-     * 
-     * @return The fetch plan name
-     */
-    String getFetchPlan();
-}
diff --git a/specification/imports/Sequence.txt b/specification/imports/Sequence.txt
deleted file mode 100644
index 6bdd6e2..0000000
--- a/specification/imports/Sequence.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-@Target(ElementType.TYPE) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Sequence
-{
-    /** The symbolic name of the datastore sequence. 
-     * @return the name of the sequence
-     */
-    String name();
-
-    /** Strategy for the sequence. 
-     * @return the strategy for the sequence
-     */
-    SequenceStrategy strategy();
-
-    /** Name of the sequence in the datastore. 
-     * @return the name of the datastore sequence
-     */
-    String datastoreSequence() default "";
-
-    /** Name of a factory class for generating the sequence values. 
-     * @return the name of the factory class for the sequence
-     */
-    Class factoryClass() default void.class;
-
-    /** Vendor extensions for this sequence. 
-     * @return vendor extensions
-     */
-    Extension[] extensions() default {};
-}
diff --git a/specification/imports/SequenceMetadata.java b/specification/imports/SequenceMetadata.java
deleted file mode 100644
index 82da562..0000000
--- a/specification/imports/SequenceMetadata.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package javax.jdo.metadata;
-
-import javax.jdo.annotations.SequenceStrategy;
-
-/**
- * Represents a sequence.
- * @since 2.3
- */
-public interface SequenceMetadata extends Metadata {
-    /**
-     * Accessor for the name of the sequence (set on construction).
-     * 
-     * @return The name
-     */
-    String getName();
-
-    /**
-     * Accessor for the sequence strategy (set on construction).
-     * 
-     * @return Sequence strategy
-     */
-    SequenceStrategy getSequenceStrategy();
-
-    /**
-     * Method to set the name of the datastore sequence that this maps to.
-     * 
-     * @param seq Datastore sequence name
-     */
-    SequenceMetadata setDatastoreSequence(String seq);
-
-    /**
-     * Accessor for the name of the datastore sequence that this maps to
-     * 
-     * @return The datastore sequence name
-     */
-    String getDatastoreSequence();
-
-    /**
-     * Method to set the result class name for the query
-     * 
-     * @param clsName Result class name
-     */
-    SequenceMetadata setFactoryClass(String clsName);
-
-    /**
-     * Accessor for the factory class for this sequence.
-     * 
-     * @return The factory class
-     */
-    String getFactoryClass();
-}
\ No newline at end of file
diff --git a/specification/imports/SequenceMetadata.txt b/specification/imports/SequenceMetadata.txt
deleted file mode 100644
index 1514e13..0000000
--- a/specification/imports/SequenceMetadata.txt
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * Represents a sequence.
- * @since 2.3
- */
-public interface SequenceMetadata extends Metadata {
-    /**
-     * Accessor for the name of the sequence (set on construction).
-     * 
-     * @return The name
-     */
-    String getName();
-
-    /**
-     * Accessor for the sequence strategy (set on construction).
-     * 
-     * @return Sequence strategy
-     */
-    SequenceStrategy getSequenceStrategy();
-
-    /**
-     * Method to set the name of the datastore sequence that this maps to.
-     * 
-     * @param seq Datastore sequence name
-     */
-    SequenceMetadata setDatastoreSequence(String seq);
-
-    /**
-     * Accessor for the name of the datastore sequence that this maps to
-     * 
-     * @return The datastore sequence name
-     */
-    String getDatastoreSequence();
-
-    /**
-     * Method to set the result class name for the query
-     * 
-     * @param clsName Result class name
-     */
-    SequenceMetadata setFactoryClass(String clsName);
-
-    /**
-     * Accessor for the factory class for this sequence.
-     * 
-     * @return The factory class
-     */
-    String getFactoryClass();
-}
diff --git a/specification/imports/SequenceStrategy.txt b/specification/imports/SequenceStrategy.txt
deleted file mode 100644
index 2406b80..0000000
--- a/specification/imports/SequenceStrategy.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-
-public enum SequenceStrategy
-{
-    NONTRANSACTIONAL,
-    CONTIGUOUS,
-    NONCONTIGUOUS
-}
diff --git a/specification/imports/Serialized.txt b/specification/imports/Serialized.txt
deleted file mode 100644
index 0172548..0000000
--- a/specification/imports/Serialized.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-@Target({ElementType.FIELD, ElementType.METHOD}) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Serialized
-{
-}
diff --git a/specification/imports/Transaction.txt b/specification/imports/Transaction.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/specification/imports/Transactional.txt b/specification/imports/Transactional.txt
deleted file mode 100644
index 2645e7c..0000000
--- a/specification/imports/Transactional.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-@Target({ElementType.FIELD, ElementType.METHOD}) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Transactional
-{
-}
diff --git a/specification/imports/Unique.txt b/specification/imports/Unique.txt
deleted file mode 100644
index cbd673f..0000000
--- a/specification/imports/Unique.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD}) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Unique
-{
-    /** Name of the unique constraint.
-     * @return the name of the unique constraint
-     */
-    String name() default "";
-
-    /** Table for the unique constraint. This is needed iff annotating a type 
-     * where this unique constraint is not for the primary table for 
-     * the persistent class or interface.
-     * @return the table on which the unique constraint is defined
-     */
-    String table() default "";
-
-    /** Whether this unique constraint is deferred until commit.
-     * @return whether this unique constraint is deferred until commit
-     */
-    String deferred() default "";
-
-    /** Member (field and property) names that compose this unique constraint.
-     * @return member names that compose this unique constraint
-     */
-    String[] members() default {};
-
-    /** Columns that compose this unique constraint.
-     * @return columns that compose this unique constraint
-     */
-    Column[] columns() default {};
-}
diff --git a/specification/imports/UniqueMetadata.java b/specification/imports/UniqueMetadata.java
deleted file mode 100644
index 9bac90a..0000000
--- a/specification/imports/UniqueMetadata.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package javax.jdo.metadata;
-
-/**
- * Represents a unique constraint.
- * @since 2.3
- */
-public interface UniqueMetadata extends Metadata {
-    /**
-     * Method to set the name of the constraint
-     * 
-     * @param name Name of the constraint
-     */
-    UniqueMetadata setName(String name);
-
-    /**
-     * Accessor for the constraint name.
-     * 
-     * @return The constraint name
-     */
-    String getName();
-
-    /**
-     * Method to set the table name.
-     * 
-     * @param table Table name
-     */
-    UniqueMetadata setTable(String table);
-
-    /**
-     * Accessor for the name of the table.
-     * 
-     * @return The name
-     */
-    String getTable();
-
-    /**
-     * Method to set whether the constraint is deferred.
-     * 
-     * @param def Deferred?
-     */
-    UniqueMetadata setDeferred(boolean def);
-
-    /**
-     * Accessor for whether deferred.
-     * 
-     * @return Deferred?
-     */
-    Boolean getDeferred();
-
-    /**
-     * Accessor for all column(s) defined on the unique constraint.
-     * 
-     * @return The column(s)
-     */
-    ColumnMetadata[] getColumns();
-
-    /**
-     * Add a new column for this unique constraint.
-     * 
-     * @return The ColumnMetadata
-     */
-    ColumnMetadata newColumnMetadata();
-
-    /**
-     * Accessor for the number of columns defined for this unique constraint.
-     * 
-     * @return The number of columns
-     */
-    int getNumberOfColumns();
-
-    /**
-     * Accessor for all fields/properties defined on the unique constraint.
-     * @return The members
-     */
-    MemberMetadata[] getMembers();
-
-    /**
-     * Accessor for the number of fields/properties defined for this unique constraint.
-     * @return The number of members
-     */
-    int getNumberOfMembers();
-
-    /**
-     * Add a new field for this unique constraint.
-     * 
-     * @param name Name of the field
-     * @return The FieldMetadata
-     */
-    FieldMetadata newFieldMetadata(String name);
-
-    /**
-     * Add a new property for this unique constraint.
-     * 
-     * @param name Name of the property
-     * @return The PropertyMetadata
-     */
-    PropertyMetadata newPropertyMetadata(String name);
-}
\ No newline at end of file
diff --git a/specification/imports/UniqueMetadata.txt b/specification/imports/UniqueMetadata.txt
deleted file mode 100644
index 3c57990..0000000
--- a/specification/imports/UniqueMetadata.txt
+++ /dev/null
@@ -1,96 +0,0 @@
-/**
- * Represents a unique constraint.
- * @since 2.3
- */
-public interface UniqueMetadata extends Metadata {
-    /**
-     * Method to set the name of the constraint
-     * 
-     * @param name Name of the constraint
-     */
-    UniqueMetadata setName(String name);
-
-    /**
-     * Accessor for the constraint name.
-     * 
-     * @return The constraint name
-     */
-    String getName();
-
-    /**
-     * Method to set the table name.
-     * 
-     * @param table Table name
-     */
-    UniqueMetadata setTable(String table);
-
-    /**
-     * Accessor for the name of the table.
-     * 
-     * @return The name
-     */
-    String getTable();
-
-    /**
-     * Method to set whether the constraint is deferred.
-     * 
-     * @param def Deferred?
-     */
-    UniqueMetadata setDeferred(boolean def);
-
-    /**
-     * Accessor for whether deferred.
-     * 
-     * @return Deferred?
-     */
-    Boolean getDeferred();
-
-    /**
-     * Accessor for all column(s) defined on the unique constraint.
-     * 
-     * @return The column(s)
-     */
-    ColumnMetadata[] getColumns();
-
-    /**
-     * Add a new column for this unique constraint.
-     * 
-     * @return The ColumnMetadata
-     */
-    ColumnMetadata newColumnMetadata();
-
-    /**
-     * Accessor for the number of columns defined for this unique constraint.
-     * 
-     * @return The number of columns
-     */
-    int getNumberOfColumns();
-
-    /**
-     * Accessor for all fields/properties defined on the unique constraint.
-     * @return The members
-     */
-    MemberMetadata[] getMembers();
-
-    /**
-     * Accessor for the number of fields/properties defined for this unique constraint.
-     * @return The number of members
-     */
-    int getNumberOfMembers();
-
-    /**
-     * Add a new field for this unique constraint.
-     * 
-     * @param name Name of the field
-     * @return The FieldMetadata
-     */
-    FieldMetadata newFieldMetadata(String name);
-
-    /**
-     * Add a new property for this unique constraint.
-     * 
-     * @param name Name of the property
-     * @return The PropertyMetadata
-     */
-    PropertyMetadata newPropertyMetadata(String name);
-}
diff --git a/specification/imports/Uniques.txt b/specification/imports/Uniques.txt
deleted file mode 100644
index 3d0acba..0000000
--- a/specification/imports/Uniques.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-@Target(ElementType.TYPE) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Uniques
-{
-    /**
-     * The unique constraints.
-     * @return The unique constraints
-     */
-    Unique[] value();
-}
diff --git a/specification/imports/Value.txt b/specification/imports/Value.txt
deleted file mode 100644
index 3d717b2..0000000
--- a/specification/imports/Value.txt
+++ /dev/null
@@ -1,112 +0,0 @@
-@Target({ElementType.FIELD, ElementType.METHOD}) 
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Value
-{
-    /**
-     * Types of the values. This can be determined if using JDK1.5 generics
-     * but is required otherwise. Multiple types can be specified if the
-     * implementation supports multiple types.
-     * @return the types of values
-     */
-    Class[] types() default {};
-
-    /**
-     * Whether the value  is to be stored serialized (into a single column of a
-     * join table).
-     * @return Whether the value is to be stored serialized (into a join table)
-     */
-    String serialized() default "";
-
-    /** Whether this value is embedded. 
-     * @return whether this value is embedded
-     */
-    String embedded() default "";
-
-    /**
-     * The embedded mapping for the value.
-     * @return the embedded mapping for the value
-     */
-    Embedded[] embeddedMapping() default {};
-
-    /**
-     * Whether the value is dependent on the owner (and will be deleted 
-     * when the owner is deleted).
-     * @return whether the value is dependent on the owner
-     */
-    String dependent() default "";
-
-    /**
-     * Name of the table for the value.
-     * @return the name of the table for the value
-     */
-    String table() default "";
-
-    /**
-     * Name of the column to store the value in.
-     * @return the name of the column to store the value in
-     */
-    String column() default "";
-
-    /**
-     * Delete action to apply to any foreign key for the value.
-     * @return delete action to apply to any foreign key for the value
-     */
-    ForeignKeyAction deleteAction() default ForeignKeyAction.UNSPECIFIED;
-
-    /**
-     * Update action to apply to any foreign key for the value.
-     * @return update action to apply to any foreign key for the value
-     */
-    ForeignKeyAction updateAction() default ForeignKeyAction.UNSPECIFIED;
-
-    /**
-     * Whether the value column(s) should be indexed.
-     * @return whether the value column(s) should be indexed.
-     */
-    String indexed() default "";
-
-    /** The name of the index to generate. 
-     * @return the name of the index
-     */
-    String index() default "";
-
-    /**
-     * Whether the element column(s) contents should be considered unique
-     * @return whether the element column(s) contents should be considered unique
-     */
-    String unique() default "";
-
-    /**
-     * The name of the unique key constraint to generate.
-     * @return the name of the unique key constraint
-     */
-    String uniqueKey() default "";
-
-    /**
-     * Name of a member in the key class where this value is stored.
-     * @return the name of a member in the key class where this value is stored
-     */
-    String mappedBy() default "";
-
-    /**
-     * The column(s) for the value.
-     * @return the column(s) for the value
-     */
-    Column[] columns() default {};
-
-    /** Generate or assume a foreign key constraint exists on the column
-     * or columns associated with this join. Specify "true" or "false".
-     * @return whether to generate or assume a foreign key constraint
-     */
-    String generateForeignKey() default "";
-
-    /** Name for a generated foreign key constraint.
-     * @return the name of the generated foreign key constraint
-     */
-    String foreignKey() default "";
-
-    /** Vendor extensions.
-     * @return the vendor extensions
-     */
-    Extension[] extensions() default {};
-}
diff --git a/specification/imports/ValueMetadata.java b/specification/imports/ValueMetadata.java
deleted file mode 100644
index f6a9589..0000000
--- a/specification/imports/ValueMetadata.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package javax.jdo.metadata;
-
-import javax.jdo.annotations.ForeignKeyAction;
-
-/**
- * Represents a value in a map.
- * @since 2.3
- */
-public interface ValueMetadata extends Metadata {
-    /**
-     * Method to set the column name.
-     * 
-     * @param column Column name
-     */
-    ValueMetadata setColumn(String column);
-
-    /**
-     * Accessor for the name of the column.
-     * 
-     * @return The name
-     */
-    String getColumn();
-
-    /**
-     * Method to set the table name.
-     * 
-     * @param table Table name
-     */
-    ValueMetadata setTable(String table);
-
-    /**
-     * Accessor for the name of the table.
-     * 
-     * @return The name
-     */
-    String getTable();
-
-    /**
-     * Method to set the delete action of the FK
-     * 
-     * @param action Delete action of the FK
-     */
-    ValueMetadata setDeleteAction(ForeignKeyAction action);
-
-    /**
-     * Accessor for the delete action of the FK
-     * 
-     * @return The FK delete-action
-     */
-    ForeignKeyAction getDeleteAction();
-
-    /**
-     * Method to set the update action of the FK
-     * 
-     * @param action Update action of the FK
-     */
-    ValueMetadata setUpdateAction(ForeignKeyAction action);
-
-    /**
-     * Accessor for the update action of the FK
-     * 
-     * @return The FK update-action
-     */
-    ForeignKeyAction getUpdateAction();
-
-    /**
-     * Accessor for all column(s) defined on the value.
-     * 
-     * @return The column(s)
-     */
-    ColumnMetadata[] getColumns();
-
-    /**
-     * Add a new column for this value.
-     * 
-     * @return The ColumnMetadata
-     */
-    ColumnMetadata newColumnMetadata();
-
-    /**
-     * Method to set new embedded metadata for the value.
-     * 
-     * @return The EmbeddedMetadata
-     */
-    EmbeddedMetadata newEmbeddedMetadata();
-
-    /**
-     * Accessor for any embedded metadata on this value
-     * 
-     * @return The EmbeddedMetadata
-     */
-    EmbeddedMetadata getEmbeddedMetadata();
-
-    /**
-     * Method to set new index metadata for the value.
-     * 
-     * @return The IndexMetadata
-     */
-    IndexMetadata newIndexMetadata();
-
-    /**
-     * Accessor for any index metadata on this value
-     * 
-     * @return Index metadata
-     */
-    IndexMetadata getIndexMetadata();
-
-    /**
-     * Method to set new unique constraint metadata for the value
-     * 
-     * @return The UniqueMetadata
-     */
-    UniqueMetadata newUniqueMetadata();
-
-    /**
-     * Accessor for any unique constraint metadata on this value.
-     * 
-     * @return The UniqueMetadata
-     */
-    UniqueMetadata getUniqueMetadata();
-
-    /**
-     * Method to set new foreign key metadata for the value
-     * 
-     * @return The ForeignKeyMetadata
-     */
-    ForeignKeyMetadata newForeignKeyMetadata();
-
-    /**
-     * Accessor for any foreign key metadata on this value.
-     * 
-     * @return The ForeignKeyMetadata
-     */
-    ForeignKeyMetadata getForeignKeyMetadata();
-}
\ No newline at end of file
diff --git a/specification/imports/ValueMetadata.txt b/specification/imports/ValueMetadata.txt
deleted file mode 100644
index dff77c2..0000000
--- a/specification/imports/ValueMetadata.txt
+++ /dev/null
@@ -1,131 +0,0 @@
-/**
- * Represents a value in a map.
- * @since 2.3
- */
-public interface ValueMetadata extends Metadata {
-    /**
-     * Method to set the column name.
-     * 
-     * @param column Column name
-     */
-    ValueMetadata setColumn(String column);
-
-    /**
-     * Accessor for the name of the column.
-     * 
-     * @return The name
-     */
-    String getColumn();
-
-    /**
-     * Method to set the table name.
-     * 
-     * @param table Table name
-     */
-    ValueMetadata setTable(String table);
-
-    /**
-     * Accessor for the name of the table.
-     * 
-     * @return The name
-     */
-    String getTable();
-
-    /**
-     * Method to set the delete action of the FK
-     * 
-     * @param action Delete action of the FK
-     */
-    ValueMetadata setDeleteAction(ForeignKeyAction action);
-
-    /**
-     * Accessor for the delete action of the FK
-     * 
-     * @return The FK delete-action
-     */
-    ForeignKeyAction getDeleteAction();
-
-    /**
-     * Method to set the update action of the FK
-     * 
-     * @param action Update action of the FK
-     */
-    ValueMetadata setUpdateAction(ForeignKeyAction action);
-
-    /**
-     * Accessor for the update action of the FK
-     * 
-     * @return The FK update-action
-     */
-    ForeignKeyAction getUpdateAction();
-
-    /**
-     * Accessor for all column(s) defined on the value.
-     * 
-     * @return The column(s)
... 12276 lines suppressed ...