diff --git a/api/pom.xml b/api/pom.xml
index 77a961d..caa286c 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright (c) 2011, 2019 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
 
     This program and the accompanying materials are made available under the
     terms of the Eclipse Public License v. 2.0, which is available at
@@ -23,14 +23,14 @@
     <parent>
         <groupId>org.glassfish</groupId>
         <artifactId>json</artifactId>
-        <version>2.0-SNAPSHOT</version>
+        <version>2.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
     <groupId>jakarta.json</groupId>
     <artifactId>jakarta.json-api</artifactId>
     <packaging>bundle</packaging>
-    <version>2.0-SNAPSHOT</version>
+    <version>2.0.0-SNAPSHOT</version>
     <name>Jakarta JSON Processing API</name>
     <description>Jakarta JSON Processing defines a Java(R) based framework for parsing, generating, transforming, and querying JSON documents.</description>
     <url>https://github.com/eclipse-ee4j/jsonp</url>
diff --git a/api/src/main/jdk9/module-info.java b/api/src/main/jdk9/module-info.java
index c5743da..46a321c 100644
--- a/api/src/main/jdk9/module-info.java
+++ b/api/src/main/jdk9/module-info.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2019 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2020 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -17,7 +17,7 @@
 /**
  * Jakarta JSON Processing API.
  */
-module java.json {
+module jakarta.json {
     exports jakarta.json;
     exports jakarta.json.spi;
     exports jakarta.json.stream;
diff --git a/bundles/pom.xml b/bundles/pom.xml
index 0c26a80..3561464 100644
--- a/bundles/pom.xml
+++ b/bundles/pom.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright (c) 2013, 2019 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2013, 2020 Oracle and/or its affiliates. All rights reserved.
 
     This program and the accompanying materials are made available under the
     terms of the Eclipse Public License v. 2.0, which is available at
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.glassfish</groupId>
         <artifactId>json</artifactId>
-        <version>2.0-SNAPSHOT</version>
+        <version>2.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/bundles/ri/pom.xml b/bundles/ri/pom.xml
index a8609d2..1ad06e3 100755
--- a/bundles/ri/pom.xml
+++ b/bundles/ri/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.glassfish</groupId>
         <artifactId>json-bundles</artifactId>
-        <version>2.0-SNAPSHOT</version>
+        <version>2.0.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>json-ri-bundle</artifactId>
diff --git a/demos/customprovider-jdk9/pom.xml b/demos/customprovider-jdk9/pom.xml
index 526553c..501a3bf 100644
--- a/demos/customprovider-jdk9/pom.xml
+++ b/demos/customprovider-jdk9/pom.xml
@@ -1,6 +1,6 @@
 <!--
 
-    Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2017, 2020 Oracle and/or its affiliates. All rights reserved.
 
     This program and the accompanying materials are made available under the
     terms of the Eclipse Distribution License v. 1.0, which is available at
@@ -16,7 +16,7 @@
     <parent>
         <groupId>org.glassfish.jsonp</groupId>
         <artifactId>demos</artifactId>
-        <version>2.0-SNAPSHOT</version>
+        <version>2.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/demos/customprovider-jdk9/src/main/jdk9/module-info.java b/demos/customprovider-jdk9/src/main/jdk9/module-info.java
index 51cc9d8..626b863 100644
--- a/demos/customprovider-jdk9/src/main/jdk9/module-info.java
+++ b/demos/customprovider-jdk9/src/main/jdk9/module-info.java
@@ -9,7 +9,7 @@
  */
 
 module org.glassfish.java.json.demos.customprovider {
-    requires transitive java.json;
+    requires transitive jakarta.json;
     exports org.glassfish.json.customprovider;
     provides jakarta.json.spi.JsonProvider with org.glassfish.json.customprovider.TestProvider;
 }
diff --git a/demos/facebook/pom.xml b/demos/facebook/pom.xml
index fc0fd68..228a91c 100644
--- a/demos/facebook/pom.xml
+++ b/demos/facebook/pom.xml
@@ -16,7 +16,7 @@
     <parent>
         <groupId>org.glassfish.jsonp</groupId>
         <artifactId>demos</artifactId>
-        <version>2.0-SNAPSHOT</version>
+        <version>2.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/demos/jaxrs/pom.xml b/demos/jaxrs/pom.xml
index 2b00f58..df0ed16 100644
--- a/demos/jaxrs/pom.xml
+++ b/demos/jaxrs/pom.xml
@@ -16,7 +16,7 @@
     <parent>
         <groupId>org.glassfish.jsonp</groupId>
         <artifactId>demos</artifactId>
-        <version>2.0-SNAPSHOT</version>
+        <version>2.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/demos/jsonpointer/pom.xml b/demos/jsonpointer/pom.xml
index d3647c5..0252be0 100644
--- a/demos/jsonpointer/pom.xml
+++ b/demos/jsonpointer/pom.xml
@@ -16,7 +16,7 @@
     <parent>
         <groupId>org.glassfish.jsonp</groupId>
         <artifactId>demos</artifactId>
-        <version>2.0-SNAPSHOT</version>
+        <version>2.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/demos/pom.xml b/demos/pom.xml
index 2ab7865..f2d47f4 100644
--- a/demos/pom.xml
+++ b/demos/pom.xml
@@ -16,7 +16,7 @@
     <parent>
         <groupId>org.glassfish</groupId>
         <artifactId>json</artifactId>
-        <version>2.0-SNAPSHOT</version>
+        <version>2.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/demos/servlet/pom.xml b/demos/servlet/pom.xml
index bf841e3..1b2eb27 100644
--- a/demos/servlet/pom.xml
+++ b/demos/servlet/pom.xml
@@ -16,7 +16,7 @@
     <parent>
         <groupId>org.glassfish.jsonp</groupId>
         <artifactId>demos</artifactId>
-        <version>2.0-SNAPSHOT</version>
+        <version>2.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/demos/twitter/pom.xml b/demos/twitter/pom.xml
index 41ef73f..1275492 100644
--- a/demos/twitter/pom.xml
+++ b/demos/twitter/pom.xml
@@ -16,7 +16,7 @@
     <parent>
         <groupId>org.glassfish.jsonp</groupId>
         <artifactId>demos</artifactId>
-        <version>2.0-SNAPSHOT</version>
+        <version>2.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/gf/customprovider/pom.xml b/gf/customprovider/pom.xml
index a032b11..d65bb88 100644
--- a/gf/customprovider/pom.xml
+++ b/gf/customprovider/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.glassfish.jsonp</groupId>
         <artifactId>providers</artifactId>
-        <version>2.0-SNAPSHOT</version>
+        <version>2.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/gf/defaultprovider/pom.xml b/gf/defaultprovider/pom.xml
index de7d2cd..c192ac6 100644
--- a/gf/defaultprovider/pom.xml
+++ b/gf/defaultprovider/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.glassfish.jsonp</groupId>
         <artifactId>providers</artifactId>
-        <version>2.0-SNAPSHOT</version>
+        <version>2.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/gf/pom.xml b/gf/pom.xml
index 2e091bc..0d0dc8f 100644
--- a/gf/pom.xml
+++ b/gf/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.glassfish</groupId>
         <artifactId>json</artifactId>
-        <version>2.0-SNAPSHOT</version>
+        <version>2.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/impl/pom.xml b/impl/pom.xml
index f1d2b6c..fd20c40 100644
--- a/impl/pom.xml
+++ b/impl/pom.xml
@@ -23,14 +23,14 @@
     <parent>
         <groupId>org.glassfish</groupId>
         <artifactId>json</artifactId>
-        <version>2.0-SNAPSHOT</version>
+        <version>2.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
     <groupId>org.glassfish</groupId>
     <artifactId>jakarta.json</artifactId>
     <packaging>bundle</packaging>
-    <version>2.0-SNAPSHOT</version>
+    <version>2.0.0-SNAPSHOT</version>
     <name>JSON-P Default Provider</name>
     <description>Default provider for Jakarta JSON Processing</description>
     <url>https://github.com/eclipse-ee4j/jsonp</url>
diff --git a/impl/src/main/jdk9/module-info.java b/impl/src/main/jdk9/module-info.java
index 532a37b..5528b96 100644
--- a/impl/src/main/jdk9/module-info.java
+++ b/impl/src/main/jdk9/module-info.java
@@ -15,7 +15,7 @@
  */
 
 module org.glassfish.java.json {
-    requires transitive java.json;
+    requires transitive jakarta.json;
     exports org.glassfish.json.api;
     provides jakarta.json.spi.JsonProvider with org.glassfish.json.JsonProviderImpl;
 }
diff --git a/jaxrs-1x/pom.xml b/jaxrs-1x/pom.xml
index 1a8ebff..d601b4c 100644
--- a/jaxrs-1x/pom.xml
+++ b/jaxrs-1x/pom.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright (c) 2013, 2019 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2013, 2020 Oracle and/or its affiliates. All rights reserved.
 
     This program and the accompanying materials are made available under the
     terms of the Eclipse Public License v. 2.0, which is available at
@@ -23,13 +23,13 @@
     <parent>
         <groupId>org.glassfish</groupId>
         <artifactId>json</artifactId>
-        <version>2.0-SNAPSHOT</version>
+        <version>2.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
     <artifactId>jsonp-jaxrs-1x</artifactId>
     <packaging>bundle</packaging>
-    <version>2.0-SNAPSHOT</version>
+    <version>2.0.0-SNAPSHOT</version>
     <name>Jakarta JSON Processing Media for JAX-RS 1.1</name>
     <description>JAX-RS 1.1 MessageBodyReader and MessageBodyWriter to support JsonObject/JsonArray/JsonStructure API of Jakarta JSON Processing</description>
     <url>https://github.com/eclipse-ee4j/jsonp</url>
diff --git a/jaxrs/pom.xml b/jaxrs/pom.xml
index c688054..9283cf7 100644
--- a/jaxrs/pom.xml
+++ b/jaxrs/pom.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright (c) 2013, 2019 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2013, 2020 Oracle and/or its affiliates. All rights reserved.
 
     This program and the accompanying materials are made available under the
     terms of the Eclipse Public License v. 2.0, which is available at
@@ -23,14 +23,14 @@
     <parent>
         <groupId>org.glassfish</groupId>
         <artifactId>json</artifactId>
-        <version>2.0-SNAPSHOT</version>
+        <version>2.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
     <groupId>org.glassfish</groupId>
     <artifactId>jsonp-jaxrs</artifactId>
     <packaging>bundle</packaging>
-    <version>2.0-SNAPSHOT</version>
+    <version>2.0.0-SNAPSHOT</version>
     <name>Jakarta JSON Processing Media for Jakarta RESTful Web Services</name>
     <description>Jakarta RESTful Web Services MessageBodyReader and MessageBodyWriter to support JsonValue API of Jakarta JSON Processing</description>
     <url>https://github.com/eclipse-ee4j/jsonp</url>
diff --git a/pom.xml b/pom.xml
index e60758a..2de4504 100644
--- a/pom.xml
+++ b/pom.xml
@@ -33,7 +33,7 @@
     <groupId>org.glassfish</groupId>
     <artifactId>json</artifactId>
     <packaging>pom</packaging>
-    <version>2.0-SNAPSHOT</version>
+    <version>2.0.0-SNAPSHOT</version>
     <name>Jakarta JSON Processing</name>
     <description>Jakarta JSON Processing defines a Java(R) based framework for parsing, generating, transforming, and querying JSON documents.</description>
     <url>https://github.com/eclipse-ee4j/jsonp</url>
diff --git a/tests/pom.xml b/tests/pom.xml
index 6b341d8..a210796 100644
--- a/tests/pom.xml
+++ b/tests/pom.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright (c) 2012, 2019 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2012, 2020 Oracle and/or its affiliates. All rights reserved.
 
     This program and the accompanying materials are made available under the
     terms of the Eclipse Public License v. 2.0, which is available at
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.glassfish</groupId>
         <artifactId>json</artifactId>
-        <version>2.0-SNAPSHOT</version>
+        <version>2.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
