diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 415e972..c2b1274 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -4,7 +4,7 @@
 
 ## Project description
 
-Eclipse Project for JSON-P is a Java API to process (e.g. parse, generate,
+Jakarta JSON Processing is a Java API to process (e.g. parse, generate,
 transform and query) JSON documents. It produces and consumes JSON in a
 streaming fashion (similar to StAX API for XML) and allows to build a Java
 object model for JSON using API classes (similar to DOM API for XML).
diff --git a/README.md b/README.md
index d35a601..54b2b13 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,9 @@
 [![Build Status](https://travis-ci.org/eclipse-ee4j/jsonp.svg?branch=master)](https://travis-ci.org/eclipse-ee4j/jsonp)
 
-# Jakarta JSON Processing (JSON-P)
+# Jakarta JSON Processing
 
-The Java API for JSON Processing provides portable APIs to parse, generate, transform, and query JSON documents. This project contains Jakarta JSON Processing specification, API and a compatible implementation.
+Jakarta JSON Processing provides portable APIs to parse, generate, transform, and query JSON documents.
+This project contains Jakarta JSON Processing specification, API and a compatible implementation.
 
 ## Build
 
@@ -11,12 +12,31 @@
 mvn -U -C clean install -Dnon.final=true
 ```
 
-## Licensing
+## License
 
-- [Eclipse Public License 2.0](https://projects.eclipse.org/license/epl-2.0)
-- [GNU General Public License, version 2 with the GNU Classpath Exception](https://projects.eclipse.org/license/secondary-gpl-2.0-cp)
+* Most of the Jakarta JSON Processing project source code is licensed
+under the [Eclipse Public License (EPL) v2.0](https://projects.eclipse.org/license/epl-2.0)
+and [GNU General Public License (GPL) v2 with Classpath Exception](https://www.gnu.org/software/classpath/license.html);
+see the license information at the top of each source file.
+* The source code for the demo programs is licensed
+under the [Eclipse Distribution License (EDL) v1.0.](https://www.eclipse.org/org/documents/edl-v10.php).
+* The binary jar files published to the Maven repository are licensed
+under the same licenses as the corresponding source code;
+see the file `META-INF/LICENSE.txt` in each jar file.
+
+You’ll find the text of the licenses in the workspace in various `LICENSE.txt` or `LICENSE.md` files.
+Don’t let the presence of these license files in the workspace confuse you into thinking
+that they apply to all files in the workspace.
+
+You should always read the license file included with every download, and read
+the license text included in every source file.
 
 ## Links
 
-- [JSON-P official web site](https://eclipse-ee4j.github.io/jsonp)
+- [Jakarta JSON Processing official web site](https://eclipse-ee4j.github.io/jsonp)
 - [Jakarta JSON Processing @ Eclipse](https://projects.eclipse.org/projects/ee4j.jsonp)
+
+## Contributing
+
+We use [contribution policy](CONTRIBUTING.md), which means we can only accept contributions under
+the terms of [Eclipse Contributor Agreement](http://www.eclipse.org/legal/ECA.php).
diff --git a/api/pom.xml b/api/pom.xml
index fe927b2..f1a55f9 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -51,18 +51,19 @@
                 <configuration>
                     <groups>
                         <group>
-                            <title>JSON Processing Packages</title>
+                            <title>JSON Processing API Packages</title>
                             <packages>javax.json*</packages>
                         </group>
                     </groups>
-                    <bottom>
-<![CDATA[Copyright &#169; 2012-2019,
-    <a href="http://www.oracle.com">Oracle</a>
-    and/or its affiliates. All Rights Reserved.
-    Use is subject to
-    <a href="{@docRoot}/doc-files/speclicense.html" target="_top">license terms</a>.
-    <br>Comments to : jsonp-dev@eclipse.org
-]]>
+                    <description>JSON Processing API documentation</description>
+                    <doctitle>JSON Processing API documentation</doctitle>
+                    <windowtitle>JSON Processing API documentation</windowtitle>
+                    <header><![CDATA[<br>JSON Processing API v${project.version}]]>
+                    </header>
+                    <bottom><![CDATA[
+Comments to: <a href="mailto:jsonp-dev@eclipse.org">jsonp-dev@eclipse.org</a>.<br>
+Copyright &#169; 2012&#x2013;{currentYear} Oracle and/or its affiliates. All rights reserved.<br>
+Use is subject to <a href="{@docRoot}/doc-files/speclicense.html" target="_top">license terms</a>.]]>
                     </bottom>
                 </configuration>
                 <executions>
diff --git a/api/src/main/javadoc/doc-files/speclicense.html b/api/src/main/javadoc/doc-files/speclicense.html
new file mode 100644
index 0000000..ba29e5e
--- /dev/null
+++ b/api/src/main/javadoc/doc-files/speclicense.html
@@ -0,0 +1,72 @@
+<html>
+<head>
+<title>Eclipse Foundation Specification License - v1.0</title>
+</head>
+<body>
+<h1>Eclipse Foundation Specification License - v1.0</h1>
+<p>By using and/or copying this document, or the Eclipse Foundation
+  document from which this statement is linked, you (the licensee) agree
+  that you have read, understood, and will comply with the following
+  terms and conditions:</p>
+
+<p>Permission to copy, and distribute the contents of this document, or
+  the Eclipse Foundation document from which this statement is linked, in
+  any medium for any purpose and without fee or royalty is hereby
+  granted, provided that you include the following on ALL copies of the
+  document, or portions thereof, that you use:</p>
+
+<ul>
+  <li> link or URL to the original Eclipse Foundation document.</li>
+  <li>All existing copyright notices, or if one does not exist, a notice
+      (hypertext is preferred, but a textual representation is permitted)
+      of the form: &quot;Copyright &copy; [$date-of-document]
+      &ldquo;Eclipse Foundation, Inc. &lt;&lt;url to this license&gt;&gt;
+      &quot;
+  </li>
+</ul>
+
+<p>Inclusion of the full text of this NOTICE must be provided. We
+  request that authorship attribution be provided in any software,
+  documents, or other items or products that you create pursuant to the
+  implementation of the contents of this document, or any portion
+  thereof.</p>
+
+<p>No right to create modifications or derivatives of Eclipse Foundation
+  documents is granted pursuant to this license, except anyone may
+  prepare and distribute derivative works and portions of this document
+  in software that implements the specification, in supporting materials
+  accompanying such software, and in documentation of such software,
+  PROVIDED that all such works include the notice below. HOWEVER, the
+  publication of derivative works of this document for use as a technical
+  specification is expressly prohibited.</p>
+
+<p>The notice is:</p>
+
+<p>&quot;Copyright &copy; 2018 Eclipse Foundation. This software or
+  document includes material copied from or derived from [title and URI
+  of the Eclipse Foundation specification document].&quot;</p>
+
+<h2>Disclaimers</h2>
+
+<p>THIS DOCUMENT IS PROVIDED &quot;AS IS,&quot; AND THE COPYRIGHT
+  HOLDERS AND THE ECLIPSE FOUNDATION MAKE NO REPRESENTATIONS OR
+  WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+  WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
+  NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THE DOCUMENT ARE
+  SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS
+  WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR
+  OTHER RIGHTS.</p>
+
+<p>THE COPYRIGHT HOLDERS AND THE ECLIPSE FOUNDATION WILL NOT BE LIABLE
+  FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT
+  OF ANY USE OF THE DOCUMENT OR THE PERFORMANCE OR IMPLEMENTATION OF THE
+  CONTENTS THEREOF.</p>
+
+<p>The name and trademarks of the copyright holders or the Eclipse
+  Foundation may NOT be used in advertising or publicity pertaining to
+  this document or its contents without specific, written prior
+  permission. Title to copyright in this document will at all times
+  remain with copyright holders.</p>
+
+</body>
+</html>
diff --git a/api/src/main/jdk9/module-info.java b/api/src/main/jdk9/module-info.java
index fe69e93..2b15d4c 100644
--- a/api/src/main/jdk9/module-info.java
+++ b/api/src/main/jdk9/module-info.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019 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
@@ -14,6 +14,9 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
+/**
+ * Jakarta JSON Processing API.
+ */
 module java.json {
     exports javax.json;
     exports javax.json.spi;
