Merge branch 'master' of ssh://git.eclipse.org/gitroot/eclipselink/javax.persistence
diff --git a/META-INF/MANIFEST.MF b/META-INF/MANIFEST.MF
index 09b97ee..2284383 100644
--- a/META-INF/MANIFEST.MF
+++ b/META-INF/MANIFEST.MF
@@ -1,15 +1,15 @@
 Manifest-Version: 1.0
-Export-Package: javax.persistence;jpa="2.0";version="2.1.0",
- javax.persistence.criteria;jpa="2.0";version="2.1.0",
- javax.persistence.metamodel;jpa="2.0";version="2.1.0",
- javax.persistence.spi;jpa="2.0";version="2.1.0",
- org.osgi.service.jpa;version="1.0.100"
+Export-Package: javax.persistence;jpa="2.1";version="2.1.0",
+ javax.persistence.criteria;jpa="2.1";version="2.1.0",
+ javax.persistence.metamodel;jpa="2.1";version="2.1.0",
+ javax.persistence.spi;jpa="2.1";version="2.1.0",
+ org.osgi.service.jpa;version="1.1.0"
 Implementation-Version: 2.1.0
 Bundle-ClassPath: .
 Specification-Vendor: Oracle
-Bundle-Name: Java Persistence API 2.1 preview
+Bundle-Name: Java Persistence API 2.1
 Created-By: 1.6.0_35 (Sun Microsystems Inc.)
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Implementation-Vendor: Eclipse.org - EclipseLink Project
 Bundle-Vendor: Eclipse.org - EclipseLink Project
 Bundle-Version: 2.1.0.qualifier
@@ -17,8 +17,8 @@
 Bundle-Activator: org.eclipse.persistence.javax.persistence.osgi.Activator
 Import-Package: javax.sql;resolution:=optional,
  org.osgi.framework;resolution:=optional,
- org.osgi.service.jpa;version="1.0.100"
+ org.osgi.service.jpa;version="1.1.0"
 Specification-Version: 2.1
-Bundle-SymbolicName: javax.persistence-api
+Bundle-SymbolicName: javax.persistence
 Extension-Name: javax.persistence
 
diff --git a/build.xml b/build.xml
new file mode 100644
index 0000000..cf364cf
--- /dev/null
+++ b/build.xml
@@ -0,0 +1,282 @@
+<project name="javax.persistence-api"  basedir="." default="info">
+
+    <target name="info" depends="init">
+        <!-- IMPL properties -->
+        <property name="IMPL_NAMESPACE"      value="org.eclipse.persistence"/>
+        <property name="IMPL_VERSION"        value="2.1.0"/>
+
+        <echo message="Metadata as defined by: 'https://wikis.oracle.com/display/GlassFish/Maven+Versioning+Rules':"/>
+        <echo message=" "/>
+        <echo message="API_PACKAGE:              ${API_PACKAGE}"/>
+        <echo message="SPEC_VERSION:             ${SPEC_VERSION}"/>
+        <echo message="SPEC_IMPL_VERSION:        ${SPEC_IMPL_VERSION}"/>
+        <echo message=" "/>
+        <echo message="IMPL_NAMESPACE:           ${IMPL_NAMESPACE}"/>
+        <echo message="IMPL_VERSION:             ${IMPL_VERSION}"/>
+        <echo message=" "/>
+        <echo message="API jar file:                 ${API_PACKAGE}-api.jar"/>
+        <echo message="  OSGi Bundle-SymbolicName:      ${API_PACKAGE}-api"/>
+        <echo message="  OSGi bundle specversion:       ${SPEC_VERSION}"/>
+        <echo message="  OSGi Bundle-Version:           ${SPEC_IMPL_VERSION}"/>
+        <echo message="  Maven group ID, artifact ID:   ${API_PACKAGE}:${API_PACKAGE}-api"/>
+        <echo message="  Maven version:                 ${SPEC_IMPL_VERSION}"/>
+        <echo message="  Maven API jar file:            ${API_PACKAGE}-api-${SPEC_IMPL_VERSION}.jar"/>
+        <echo message="  Maven API javadoc file:        ${API_PACKAGE}-api-${SPEC_IMPL_VERSION}-javadoc.jar"/>
+        <echo message="  Maven API source  file:        ${API_PACKAGE}-api-${SPEC_IMPL_VERSION}-sources.jar"/>
+        <echo message="  jar Extension-Name:            ${API_PACKAGE}"/>
+        <echo message="  jar Specification-Version:     ${SPEC_VERSION}"/>
+        <echo message="  jar Implementation-Version:    ${SPEC_IMPL_VERSION}"/>
+        <echo message=" "/>
+        <echo message="Implementation jar file:       ${API_PACKAGE}.jar"/>
+        <echo message="  OSGi Bundle-SymbolicName:      ${IMPL_NAMESPACE}.${API_PACKAGE}"/>
+        <echo message="  OSGi bundle specversion:       ${SPEC_VERSION}"/>
+        <echo message="  OSGi Bundle-Version:           ${IMPL_VERSION}"/>
+        <echo message="  Maven group ID, artifact ID:   ${IMPL_NAMESPACE}:${API_PACKAGE}"/>
+        <echo message="  Maven version:                 ${IMPL_VERSION}"/>
+        <echo message="  Maven impl jar file:           ${API_PACKAGE}-${IMPL_VERSION}.jar"/>
+        <echo message="  jar Extension-Name:            ${API_PACKAGE}"/>
+        <echo message="  jar Specification-Version:     ${SPEC_VERSION}"/>
+        <echo message="  jar Implementation-Version:    ${IMPL_VERSION}"/>
+        <echo message=" "/>
+        <echo message=" "/>
+        <echo message="Note: The qualifier was omitted from these rules. I believe the API Bundle-Version"/>
+        <echo message="    should really be something like:  ${SPEC_IMPL_VERSION}.${API_QUALIFIER}"/>
+        <echo message=" "/>
+        <echo message="Note2: Tycho expects 'Bundle-Version' to be the Maven 'Version' coordinate (IMPL_VERSION) followed by '.qualifier'"/>
+        <echo message="    which it then substitutes for a generated qualifier at build time. For example: ${persistence.version}"/>
+        <echo message=" "/>
+        <echo message="Note3: Tycho requires ArtifactID to be ${Bundle-SymbolicName}"/>
+        <echo message=" "/>
+        <echo message="Note4: P2/Equinox requires the bundle jarname to be: ${Bundle-SymbolicName}_${Bundle-Version}.jar"/>
+        <echo message="    While renaming the jar shipped in glassfish is possible, it would be confusing to users."/>
+        <echo message="    Also, the metadata in the manifest couldn't be simply 'renamed'."/>
+        <echo message="Therefore:"/>
+        <echo message="       IMPL bundle filename:        ${API_PACKAGE}_${persistence.version}.jar"/>
+        <echo message="       IMPL Bundle-SymbolicName:    ${API_PACKAGE}"/>
+        <echo message="       IMPL Bundle-Version:         ${persistence.version}"/>
+        <echo message="    which is preferable (both historically, and due to jarname length) to changing 'IMPL ArtifactId' to"/>
+        <echo message="    match 'IMPL Bundle-SymbolicName' and thus yield:"/>
+        <echo message="       IMPL bundle filename:        ${IMPL_NAMESPACE}.${API_PACKAGE}_${persistence.version}.jar"/>
+        <echo message="       IMPL Bundle-SymbolicName:    ${IMPL_NAMESPACE}.${API_PACKAGE}"/>
+        <echo message="       IMPL Bundle-Version:         ${persistence.version}"/>
+        <echo message="       IMPL Mvn GroupId:ArtifactId: ${IMPL_NAMESPACE}:${IMPL_NAMESPACE}.${API_PACKAGE}"/>
+        <echo message=" "/>
+        <echo message="Note5: Eclipse has source bundle standard of: ${Bundle-SymbolicName}.source_${Bundle-Version}.jar"/>
+        <echo message="Therefore:       ${API_PACKAGE}.source_${persistence.version}.jar"/>
+        <echo message=" "/>
+        <echo message="Note6: There is no Eclipse requirement for javadoc bundles. However, Maven Central does require javadoc for each artifact"/>
+        <echo message="       so unless Maven implements specific naming requirements, it would make sense to stick to a similar formula to use"/>
+        <echo message="       IMPL javadoc jarname: ${Bundle-SymbolicName}.javadoc_${Bundle-Version}.jar"/>
+        <echo message="       rather than ${API_Package}-${IMPL_Version}-javadoc.jar"/>
+        <echo message="Therefore:       ${API_PACKAGE}.javadoc_${persistence.version}.jar"/>
+        <echo message=" "/>
+        <echo message="Metadata proposal taking into account Eclipse Standards:"/>
+        <echo message=" "/>
+        <echo message="API_PACKAGE:              ${API_PACKAGE}"/>
+        <echo message="SPEC_VERSION:             ${SPEC_VERSION}"/>
+        <echo message="SPEC_IMPL_VERSION:        ${SPEC_IMPL_VERSION}"/>
+        <echo message="API_QUALIFIER (guess):    ${API_QUALIFIER}"/>
+        <echo message=" "/>
+        <echo message="IMPL_NAMESPACE:           ${IMPL_NAMESPACE}"/>
+        <echo message="IMPL_VERSION:             ${IMPL_VERSION}"/>
+        <echo message=" "/>
+        <echo message="API jar file:                 ${API_JAR}"/>
+        <echo message="  OSGi Bundle-SymbolicName:      ${API_PACKAGE}-api"/>
+        <echo message="  OSGi bundle specversion:       ${SPEC_VERSION}"/>
+        <echo message="  OSGi Bundle-Version:           ${SPEC_IMPL_VERSION}"/>
+        <echo message="  OSGi PackageExport:            ${OSGi_PackageExport}"/>
+        <echo message="  Maven group ID, artifact ID:   ${API_PACKAGE}:${API_PACKAGE}-api"/>
+        <echo message="  Maven version:                 ${SPEC_IMPL_VERSION}"/>
+        <echo message="  Maven API jar file:            ${API_PACKAGE}-api-${SPEC_IMPL_VERSION}.jar"/>
+        <echo message="  Maven API javadoc file:        ${API_PACKAGE}-api-${SPEC_IMPL_VERSION}-javadoc.jar"/>
+        <echo message="  Maven API source  file:        ${API_PACKAGE}-api-${SPEC_IMPL_VERSION}-sources.jar"/>
+        <echo message="  jar Extension-Name:            ${API_PACKAGE}"/>
+        <echo message="  jar Specification-Version:     ${SPEC_VERSION}"/>
+        <echo message="  jar Implementation-Version:    ${SPEC_IMPL_VERSION}"/>
+        <echo message=" "/>
+        <echo message="Implementation jar file:       ${API_PACKAGE}_${persistence.version}.jar"/>
+        <echo message="  OSGi Bundle-SymbolicName:      ${API_PACKAGE}"/>
+        <echo message="  OSGi bundle specversion:       ${SPEC_VERSION}"/>
+        <echo message="  OSGi Bundle-Version:           ${persistence.version}"/>
+        <echo message="  OSGi IMPL source  file:        ${API_PACKAGE}.source_${persistence.version}.jar"/>
+        <echo message="  OSGi IMPL javadoc file:        ${API_PACKAGE}.javadoc_${persistence.version}.jar"/>
+        <echo message="  Maven group ID, artifact ID:   ${IMPL_NAMESPACE}:${API_PACKAGE}"/>
+        <echo message="  Maven version:                 ${IMPL_VERSION}"/>
+        <echo message="  Maven IMPL jar file:           ${API_PACKAGE}-${IMPL_VERSION}.jar"/>
+        <echo message="  Maven IMPL source  file:       ${API_PACKAGE}-${IMPL_VERSION}-sources.jar"/>
+        <echo message="  Maven IMPL javadoc file:       ${API_PACKAGE}-${IMPL_VERSION}-javadoc.jar"/>
+        <echo message="  jar Extension-Name:            ${API_PACKAGE}"/>
+        <echo message="  jar Specification-Version:     ${SPEC_IMPL_VERSION}"/>
+        <echo message="  jar Implementation-Version:    ${IMPL_VERSION}"/>
+        <echo message=" "/>
+    </target>
+
+    <target name="init">
+        <!-- API properties -->
+        <tstamp>
+           <format property="build.date" pattern="yyyyMMdd"/>
+           <format property="build.time" pattern="HHmm"/>
+        </tstamp>
+        <property name="API_PACKAGE"         value="javax.persistence"/>
+        <property name="SPEC_VERSION"        value="2.1"/>
+        <property name="SPEC_IMPL_VERSION"   value="2.1.0"/>
+        <property name="API_QUALIFIER"       value="b10"/>
+
+        <property name="API_JAR"                    value="${API_PACKAGE}-api.jar"/>
+        <property name="API_javadoc_file"           value="${API_PACKAGE}-api-javadoc.jar"/>
+        <property name="API_source_file"            value="${API_PACKAGE}-api-sources.jar"/>
+        <property name="OSGi_SymbolicName"          value="${API_PACKAGE}-api"/>
+        <property name="OSGi_BundleName"            value="Java Persistence API 2.1"/>
+        <property name="OSGi_specversion"           value="${SPEC_VERSION}"/>
+        <property name="OSGi_Bundle-Version"        value="${SPEC_IMPL_VERSION}"/>
+        <property name="OSGi_Bundle-Vendor"         value="Eclipse.org - EclipseLink Project"/>
+        <property name="OSGi_PackageExport"         value="${SPEC_IMPL_VERSION}"/>
+        <property name="jar_Extension-Name"         value="${API_PACKAGE}"/>
+        <property name="jar_Specification-Version"  value="${SPEC_VERSION}"/>
+        <property name="jar_Specification-Vendor"   value="Oracle"/>
+        <property name="jar_Implementation-Version" value="${SPEC_IMPL_VERSION}"/>
+        <property name="jar_Implementation-Vendor"  value="Eclipse.org - EclipseLink Project"/>
+        <property name="Maven_group_ID"             value="${API_PACKAGE}"/>
+        <property name="Maven_artifact_ID"          value="${API_PACKAGE}-api"/>
+        <property name="Maven_version"              value="${SPEC_IMPL_VERSION}"/>
+        <property name="Maven_API_filename"         value="${API_PACKAGE}-api-${SPEC_IMPL_VERSION}.jar"/>
+        <property name="Maven_API_javadoc_file"     value="${API_PACKAGE}-api-${SPEC_IMPL_VERSION}-javadoc.jar"/>
+        <property name="Maven_API_source_file"      value="${API_PACKAGE}-api-${SPEC_IMPL_VERSION}-sources.jar"/>
+
+        <dirname  property="build.location_temp" file="${ant.file.javax.persistence-api}"/>
+        <pathconvert targetos="unix" property="build.location">
+            <path>
+                <pathelement location="${build.location_temp}"/>
+            </path>
+        </pathconvert>
+        <property name="build.2.base.dir"           value="${build.location}/.."/>
+        <property name="build.2.plugins.dir"        value="${build.location}/target"/>
+        <property name="build.2.classes.dir"        value="${build.location}/target/classes"/>
+        <property name="build.2.APIjavadoc.dir"     value="${build.location}/target/APIjavadoc"/>
+        <property name="build.2.src.dir"            value="${build.location}/src"/>
+        <property name="releng.loc"                 value="${build.location}/../eclipselink.releng"/>
+
+        <condition property="build.2.releng.dir"    value="${releng.loc}">
+           <available file="${releng.loc}" type="dir"/>
+        </condition>
+        <fail message="releng repo not found. Clone at '${releng.loc}' and retry." unless="build.2.releng.dir"/>
+
+        <!-- Custom task definitions -->
+        <property name="custom.tasks.lib"                 value="${build.2.releng.dir}/ant_customizations.jar"/>
+        <property name="custom.echo.task.class"           value="org.eclipse.persistence.buildtools.ant.taskdefs.Say"/>
+        <property name="custom.selectbundle.task.class"   value="org.eclipse.persistence.buildtools.ant.taskdefs.SelectBundle"/>
+        <property name="custom.stripqualifier.task.class" value="org.eclipse.persistence.buildtools.ant.taskdefs.StripQualifier"/>
+        <echo message="custom.tasks.lib                 ='${custom.tasks.lib}'"/>
+        <echo message="custom.echo.task.class           ='${custom.echo.task.class}'"/>
+        <echo message="custom.selectbundle.task.class   ='${custom.selectbundle.task.class}'"/>
+        <echo message="custom.stripqualifier.task.class ='${custom.stripqualifier.task.class}'"/>
+        <echo message=" ---"/>
+        <taskdef name="say"            classname="${custom.echo.task.class}"           classpath="${custom.tasks.lib}"/>
+        <taskdef name="selectbundle"   classname="${custom.selectbundle.task.class}"   classpath="${custom.tasks.lib}"/>
+        <taskdef name="stripQualifier" classname="${custom.stripqualifier.task.class}" classpath="${custom.tasks.lib}"/>
+
+        <property name="persistence.prefix"    value="${API_PACKAGE}"/>
+        <property name="persistence.criteria"  value="[2.0.100,2.2.0)"/>
+
+        <selectbundle basename="${persistence.prefix}" directory="${build.2.plugins.dir}"
+                     criterion="${persistence.criteria}" property="persistence.version" versiononly="true"
+        />
+        <fail message="${persistence.prefix} bundle not found. run mvn, then retry to generate api" unless="persistence.version"/>
+        <stripQualifier input="${persistence.version}"      property="IMPL_VERSION"/>
+        <say  message="Found ${persistence.prefix}_${persistence.version}.jar"                          if="persistence.version"/>
+    </target>
+
+    <target name="build" depends="init, package-jar, package-src, build-javadoc, package-javadoc"/>
+
+    <target name="build-javadoc">
+        <!-- the following property needs to be here because the "qualifier" is generated at runtime -->
+        <property name="javadoc.title" value="Java Persistence ${SPEC_VERSION} API Reference"/>
+        <delete dir="${build.2.APIjavadoc.dir}" failonerror="false"/>
+        <javadoc
+            maxmemory="384m"
+            Verbose="false"
+            packagenames="${API_PACKAGE}.**"
+            destdir="${build.2.APIjavadoc.dir}"
+            useexternalfile="yes"
+            additionalparam="-breakiterator -quiet"
+            windowtitle="${javadoc.title}"
+            >
+            <classpath>
+                <path id="javadoc.path">
+                    <pathelement path="${build.2.plugins.dir}/${API_JAR}"/>
+                </path>
+            </classpath>
+            <tag name ="author" enabled="true" description="Author:" />
+            <tag name ="since" scope="all" description="Since:" />
+            <tag name ="SBGen" scope="all" description="SBGen:" />
+            <tag name ="bug" enabled="true" description="Related Bugs:" />
+            <doctitle><![CDATA[${javadoc.title}]]></doctitle>
+            <header><![CDATA[${javadoc.title}]]></header>
+            <fileset dir="${build.2.src.dir}" defaultexcludes="yes">
+                <include name="javax/persistence/**/*.java"/>
+            </fileset>
+        </javadoc>
+    </target>
+
+    <target name="package-jar" depends="init">
+        <delete file="${build.2.plugins.dir}/${API_JAR}" failonerror="false"/>
+        <jar jarfile="${build.2.plugins.dir}/${API_JAR}" duplicate="preserve">
+            <manifest>
+                <attribute name="Export-Package"                       value="javax.persistence;jpa=&quot;${OSGi_specversion}&quot;;version=&quot;${OSGi_PackageExport}&quot;,javax.persistence.criteria;jpa=&quot;${OSGi_specversion}&quot;;version=&quot;${OSGi_PackageExport}&quot;,javax.persistence.metamodel;jpa=&quot;${OSGi_specversion}&quot;;version=&quot;${OSGi_PackageExport}&quot;,javax.persistence.spi;jpa=&quot;${OSGi_specversion}&quot;;version=&quot;${OSGi_PackageExport}&quot;"/>
+                <attribute name="Implementation-Version"               value="${SPEC_IMPL_VERSION}"/>
+                <attribute name="Bundle-ClassPath"                     value="."/>
+                <attribute name="Specification-Vendor"                 value="${jar_Specification-Vendor}"/>
+                <attribute name="Bundle-Name"                          value="${OSGi_BundleName}"/>
+                <attribute name="Bundle-RequiredExecutionEnvironment"  value="JavaSE-1.6"/>
+                <attribute name="Implementation-Vendor"                value="${jar_Implementation-Vendor}"/>
+                <attribute name="Bundle-Vendor"                        value="${OSGi_Bundle-Vendor}"/>
+                <attribute name="Bundle-Version"                       value="${OSGi_Bundle-Version}"/>
+                <attribute name="Bundle-ManifestVersion"               value="2"/>
+                <attribute name="Import-Package"                       value="javax.sql;resolution:=optional"/>
+                <attribute name="Specification-Version"                value="${SPEC_VERSION}"/>
+                <attribute name="Bundle-SymbolicName"                  value="${OSGi_SymbolicName}"/>
+                <attribute name="Extension-Name"                       value="${jar_Extension-Name}"/>
+            </manifest>
+            <fileset dir="${build.2.classes.dir}"   includes="javax/persistence/**/*.class"/>
+            <fileset dir="${build.2.src.dir}"       includes="javax/persistence/**/*.xsd"/>
+        </jar>
+    </target>
+
+    <target name="package-src" depends="init">
+        <delete file="${build.2.plugins.dir}/${API_source_file}" failonerror="false"/>
+        <jar jarfile="${build.2.plugins.dir}/${API_source_file}" duplicate="preserve">
+            <manifest>
+                <attribute name="Implementation-Version"               value="${SPEC_IMPL_VERSION}"/>
+                <attribute name="Specification-Vendor"                 value="${jar_Specification-Vendor}"/>
+                <attribute name="Bundle-Name"                          value="${OSGi_BundleName} Source"/>
+                <attribute name="Implementation-Vendor"                value="${jar_Implementation-Vendor}"/>
+                <attribute name="Bundle-Vendor"                        value="${OSGi_Bundle-Vendor}"/>
+                <attribute name="Bundle-Version"                       value="${OSGi_Bundle-Version}"/>
+                <attribute name="Bundle-ManifestVersion"               value="2"/>
+                <attribute name="Specification-Version"                value="${SPEC_VERSION}"/>
+                <attribute name="Bundle-SymbolicName"                  value="${OSGi_SymbolicName}.source"/>
+                <attribute name="Extension-Name"                       value="${jar_Extension-Name}"/>
+            </manifest>
+            <fileset dir="${build.2.src.dir}"       includes="javax/persistence/**"/>
+        </jar>
+    </target>
+
+    <target name="package-javadoc" depends="init">
+        <delete file="${build.2.plugins.dir}/${API_javadoc_file}" failonerror="false"/>
+        <jar jarfile="${build.2.plugins.dir}/${API_javadoc_file}" duplicate="preserve">
+            <manifest>
+                <attribute name="Implementation-Version"               value="${SPEC_IMPL_VERSION}"/>
+                <attribute name="Specification-Vendor"                 value="${jar_Specification-Vendor}"/>
+                <attribute name="Bundle-Name"                          value="${OSGi_BundleName} Javadoc"/>
+                <attribute name="Implementation-Vendor"                value="${jar_Implementation-Vendor}"/>
+                <attribute name="Bundle-Vendor"                        value="${OSGi_Bundle-Vendor}"/>
+                <attribute name="Bundle-Version"                       value="${OSGi_Bundle-Version}"/>
+                <attribute name="Bundle-ManifestVersion"               value="2"/>
+                <attribute name="Specification-Version"                value="${SPEC_VERSION}"/>
+                <attribute name="Bundle-SymbolicName"                  value="${OSGi_SymbolicName}.javadoc"/>
+                <attribute name="Extension-Name"                       value="${jar_Extension-Name}"/>
+            </manifest>
+            <fileset dir="${build.2.APIjavadoc.dir}" includes="**"/>
+        </jar>
+    </target>
+</project>
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 8492417..260aa7e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
 
     <name>JPA Spec OSGi Bundle</name>
     <groupId>javax.persistence</groupId>
-    <artifactId>javax.persistence-api</artifactId>
+    <artifactId>javax.persistence</artifactId>
     <version>2.1.0-SNAPSHOT</version>
     <packaging>eclipse-plugin</packaging>