Index: trunk/src/javax/json/stream/JsonCollectors.java
===================================================================
--- trunk/src/javax/json/stream/JsonCollectors.java	(revision 14273)
+++ 	(revision )
@@ -1,184 +1,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
- *
- * Copyright (c) 2015-2017 Oracle and/or its affiliates. All rights reserved.
- *
- * The contents of this file are subject to the terms of either the GNU
- * General Public License Version 2 only ("GPL") or the Common Development
- * and Distribution License("CDDL") (collectively, the "License").  You
- * may not use this file except in compliance with the License.  You can
- * obtain a copy of the License at
- * https://oss.oracle.com/licenses/CDDL+GPL-1.1
- * or LICENSE.txt.  See the License for the specific
- * language governing permissions and limitations under the License.
- *
- * When distributing the software, include this License Header Notice in each
- * file and include the License file at LICENSE.txt.
- *
- * GPL Classpath Exception:
- * Oracle designates this particular file as subject to the "Classpath"
- * exception as provided by Oracle in the GPL Version 2 section of the License
- * file that accompanied this code.
- *
- * Modifications:
- * If applicable, add the following below the License Header, with the fields
- * enclosed by brackets [] replaced by your own identifying information:
- * "Portions Copyright [year] [name of copyright owner]"
- *
- * Contributor(s):
- * If you wish your version of this file to be governed by only the CDDL or
- * only the GPL Version 2, indicate your decision by adding "[Contributor]
- * elects to include this software in this distribution under the [CDDL or GPL
- * Version 2] license."  If you don't indicate a single choice of license, a
- * recipient has the option to distribute your version of this file under
- * either the CDDL, the GPL Version 2 or to extend the choice of license to
- * its licensees as provided above.  However, if you add GPL Version 2 code
- * and therefore, elected the GPL Version 2 license, then the option applies
- * only if the new code is made subject to such option by the copyright
- * holder.
- */
-
-package javax.json.stream;
-
-import java.util.Map;
-import java.util.HashMap;
-import java.util.stream.Collector;
-import java.util.function.BinaryOperator;
-import java.util.function.Function;
-import java.util.function.BiConsumer;
-
-import javax.json.Json;
-import javax.json.JsonArray;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonValue;
-import javax.json.JsonException;
-
-/**
- * This class contains some implementations of {@code java.util.stream.Collector} for accumulating
- * {@link JsonValue}s into {@link JsonArray} and {@link JsonObject}.
- *
- * @since 1.1
- */
-
-public final class JsonCollectors {
-
-    private JsonCollectors() {
-    }
-
-    /**
-     * Constructs a {@code java.util.stream.Collector} that accumulates the input {@code JsonValue}
-     * elements into a {@code JsonArray}.
-     *
-     * @return the constructed Collector
-     */
-    public static Collector<JsonValue, JsonArrayBuilder, JsonArray> toJsonArray() {
-        return Collector.of(
-                Json::createArrayBuilder,
-                JsonArrayBuilder::add,
-                JsonArrayBuilder::addAll,
-                JsonArrayBuilder::build);
-    }
-
-    /**
-     * Constructs a {@code java.util.stream.Collector} that accumulates the input {@code Map.Entry<String,JsonValue>}
-     * elements into a {@code JsonObject}.
-     *
-     * @return the constructed Collector
-     */
-    public static Collector<Map.Entry<String, JsonValue>, JsonObjectBuilder, JsonObject> toJsonObject() {
-        return Collector.of(
-                Json::createObjectBuilder,
-                (JsonObjectBuilder b, Map.Entry<String, JsonValue> v) -> b.add(v.getKey(), v.getValue()),
-                JsonObjectBuilder::addAll,
-                JsonObjectBuilder::build);
-    }
-
-    /**
-     * Constructs a {@code java.util.stream.Collector} that accumulates the input {@code JsonValue}
-     * elements into a {@code JsonObject}.  The name/value pairs of the {@code JsonObject} are computed
-     * by applying the provided mapping functions.
-     *
-     * @param keyMapper a mapping function to produce names.
-     * @param valueMapper a mapping function to produce values
-     * @return the constructed Collector
-     */
-    public static Collector<JsonValue, JsonObjectBuilder, JsonObject>
-                toJsonObject(Function<JsonValue, String> keyMapper,
-                             Function<JsonValue, JsonValue> valueMapper) {
-        return Collector.of(
-                Json::createObjectBuilder,
-                (b, v) -> b.add(keyMapper.apply(v), valueMapper.apply(v)),
-                JsonObjectBuilder::addAll,
-                JsonObjectBuilder::build,
-                Collector.Characteristics.UNORDERED);
-    }
-
-    /**
-     * Constructs a {@code java.util.stream.Collector} that implements a "group by" operation on the
-     * input {@code JsonValue} elements. A classifier function maps the input {@code JsonValue}s to keys, and
-     * the {@code JsonValue}s are partitioned into groups according to the value of the key.
-     * A reduction operation is performed on the {@code JsonValue}s in each group, using the
-     * downstream {@code Collector}. For each group, the key and the results of the reduction operation
-     * become the name/value pairs of the resultant {@code JsonObject}.
-     *
-     * @param <T> the intermediate accumulation {@code JsonArrayBuilder} of the downstream collector
-     * @param classifier a function mapping the input {@code JsonValue}s to a String, producing keys
-     * @param downstream a {@code Collector} that implements a reduction operation on the
-     *        {@code JsonValue}s in each group.
-     * @return the constructed {@code Collector}
-     */
-    public static <T extends JsonArrayBuilder> Collector<JsonValue, Map<String, T>, JsonObject>
-                groupingBy(Function<JsonValue, String> classifier,
-                           Collector<JsonValue, T, JsonArray> downstream) {
-
-        BiConsumer<Map<String, T>, JsonValue> accumulator =
-            (map, value) -> {
-                String key = classifier.apply(value);
-                if (key == null) {
-                    throw new JsonException("element cannot be mapped to a null key");
-                }
-                // Build a map of key to JsonArrayBuilder
-                T arrayBuilder =
-                    map.computeIfAbsent(key, v->downstream.supplier().get());
-                // Add elements from downstream Collector to the arrayBuilder.
-                downstream.accumulator().accept(arrayBuilder, value);
-            };
-        Function<Map<String, T>, JsonObject> finisher =
-            map -> {
-                // transform the map of name: JsonArrayBuilder to
-                //                      name: JsonArray
-                // using the downstream collector for reducing the JsonArray
-                JsonObjectBuilder objectBuilder = Json.createObjectBuilder();
-                map.forEach((k, v) -> {
-                    JsonArray array = downstream.finisher().apply(v);
-                    objectBuilder.add(k, array);
-                });
-                return objectBuilder.build();
-            };
-        BinaryOperator<Map<String, T>> combiner =
-            (map1, map2) -> {
-                map1.putAll(map2);
-                return map1;
-            };
-        return Collector.of(HashMap::new, accumulator, combiner, finisher,
-            Collector.Characteristics.UNORDERED);
-    }
-
-    /**
-     * Constructs a {@code java.util.stream.Collector} that implements a "group by" operation on the
-     * input {@code JsonValue} elements. A classifier function maps the input {@code JsonValue}s to keys, and
-     * the {@code JsonValue}s are partitioned into groups according to the value of the key.
-     * The {@code JsonValue}s in each group are added to a {@code JsonArray}.  The key and the
-     * {@code JsonArray} in each group becomes the name/value pair of the resultant {@code JsonObject}.
-     *
-     * @param classifier a function mapping the input {@code JsonValue}s to a String, producing keys
-     * @return the constructed {@code Collector}
-     */
-    public static Collector<JsonValue, Map<String, JsonArrayBuilder>, JsonObject>
-                groupingBy(Function<JsonValue, String> classifier) {
-        return groupingBy(classifier, toJsonArray());
-    }
-}
-
Index: trunk/src/javax/json/stream/JsonGenerationException.java
===================================================================
--- trunk/src/javax/json/stream/JsonGenerationException.java	(revision 14273)
+++ 	(revision )
@@ -1,81 +1,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
- *
- * Copyright (c) 2012-2017 Oracle and/or its affiliates. All rights reserved.
- *
- * The contents of this file are subject to the terms of either the GNU
- * General Public License Version 2 only ("GPL") or the Common Development
- * and Distribution License("CDDL") (collectively, the "License").  You
- * may not use this file except in compliance with the License.  You can
- * obtain a copy of the License at
- * https://oss.oracle.com/licenses/CDDL+GPL-1.1
- * or LICENSE.txt.  See the License for the specific
- * language governing permissions and limitations under the License.
- *
- * When distributing the software, include this License Header Notice in each
- * file and include the License file at LICENSE.txt.
- *
- * GPL Classpath Exception:
- * Oracle designates this particular file as subject to the "Classpath"
- * exception as provided by Oracle in the GPL Version 2 section of the License
- * file that accompanied this code.
- *
- * Modifications:
- * If applicable, add the following below the License Header, with the fields
- * enclosed by brackets [] replaced by your own identifying information:
- * "Portions Copyright [year] [name of copyright owner]"
- *
- * Contributor(s):
- * If you wish your version of this file to be governed by only the CDDL or
- * only the GPL Version 2, indicate your decision by adding "[Contributor]
- * elects to include this software in this distribution under the [CDDL or GPL
- * Version 2] license."  If you don't indicate a single choice of license, a
- * recipient has the option to distribute your version of this file under
- * either the CDDL, the GPL Version 2 or to extend the choice of license to
- * its licensees as provided above.  However, if you add GPL Version 2 code
- * and therefore, elected the GPL Version 2 license, then the option applies
- * only if the new code is made subject to such option by the copyright
- * holder.
- */
-
-package javax.json.stream;
-
-import javax.json.JsonException;
-
-/**
- * {@code JsonGenerationException} indicates an incorrect JSON is
- * being generated.
- */
-public class JsonGenerationException extends JsonException {
-
-    /**
-     * Constructs a new runtime exception with the specified detail message.
-     * The cause is not initialized, and may subsequently be initialized by a
-     * call to {@link #initCause}.
-     *
-     * @param message the detail message. The detail message is saved for
-     *                later retrieval by the {@link #getMessage()} method.
-     */
-    public JsonGenerationException(String message) {
-        super(message);
-    }
-
-    /**
-     * Constructs a new runtime exception with the specified detail message and
-     * cause.  <p>Note that the detail message associated with
-     * {@code cause} is <i>not</i> automatically incorporated in
-     * this runtime exception's detail message.
-     *
-     * @param message the detail message (which is saved for later retrieval
-     *                by the {@link #getMessage()} method).
-     * @param cause the cause (which is saved for later retrieval by the
-     *              {@link #getCause()} method). (A <tt>null</tt> value is
-     *              permitted, and indicates that the cause is nonexistent or
-     *              unknown.)
-     */
-    public JsonGenerationException(String message, Throwable cause) {
-        super(message, cause);
-    }
-
-}
-
Index: trunk/src/javax/json/stream/JsonGenerator.java
===================================================================
--- trunk/src/javax/json/stream/JsonGenerator.java	(revision 14273)
+++ 	(revision )
@@ -1,563 +1,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
- *
- * Copyright (c) 2011-2017 Oracle and/or its affiliates. All rights reserved.
- *
- * The contents of this file are subject to the terms of either the GNU
- * General Public License Version 2 only ("GPL") or the Common Development
- * and Distribution License("CDDL") (collectively, the "License").  You
- * may not use this file except in compliance with the License.  You can
- * obtain a copy of the License at
- * https://oss.oracle.com/licenses/CDDL+GPL-1.1
- * or LICENSE.txt.  See the License for the specific
- * language governing permissions and limitations under the License.
- *
- * When distributing the software, include this License Header Notice in each
- * file and include the License file at LICENSE.txt.
- *
- * GPL Classpath Exception:
- * Oracle designates this particular file as subject to the "Classpath"
- * exception as provided by Oracle in the GPL Version 2 section of the License
- * file that accompanied this code.
- *
- * Modifications:
- * If applicable, add the following below the License Header, with the fields
- * enclosed by brackets [] replaced by your own identifying information:
- * "Portions Copyright [year] [name of copyright owner]"
- *
- * Contributor(s):
- * If you wish your version of this file to be governed by only the CDDL or
- * only the GPL Version 2, indicate your decision by adding "[Contributor]
- * elects to include this software in this distribution under the [CDDL or GPL
- * Version 2] license."  If you don't indicate a single choice of license, a
- * recipient has the option to distribute your version of this file under
- * either the CDDL, the GPL Version 2 or to extend the choice of license to
- * its licensees as provided above.  However, if you add GPL Version 2 code
- * and therefore, elected the GPL Version 2 license, then the option applies
- * only if the new code is made subject to such option by the copyright
- * holder.
- */
-
-package javax.json.stream;
-
-import javax.json.JsonValue;
-import java.io.Closeable;
-import java.io.Flushable;
-import java.math.BigDecimal;
-import java.math.BigInteger;
-
-/**
- * Writes JSON data to an output source in a streaming way. The class
- * {@link javax.json.Json} contains methods to create generators for character
- * or output streams ({@link java.io.Writer} and {@link java.io.OutputStream}).
- *
- * <p>
- * The following example shows how to create a JSON generator:
- * <pre>
- * <code>
- * JsonGenerator generator = Json.createGenerator(...);
- * </code>
- * </pre>
- *
- * <p>
- * The class {@link JsonGeneratorFactory} also contains methods to create
- * {@code JsonGenerator} instances. {@link JsonGeneratorFactory} should be used
- * when creating multiple generator instances, as in the following example:
- * <pre>
- * <code>
- * JsonGeneratorFactory factory = Json.createGeneratorFactory();
- * JsonGenerator generator1 = factory.createGenerator(...);
- * JsonGenerator generator2 = factory.createGenerator(...);
- * </code>
- * </pre>
- *
- * <p>
- * JSON objects can be created using {@code JsonGenerator} by calling the
- * {@link #writeStartObject()} method and then adding name/value pairs with the
- * {@code write} method.
- * <p>
- * The following example shows how to generate an empty JSON object:
- * <pre>
- * <code>
- * JsonGenerator generator = ...;
- * generator.writeStartObject().writeEnd().close();
- * </code>
- * </pre>
- *
- * JSON arrays can be created using {@code JsonGenerator} by calling the
- * {@link #writeStartArray()} method and then adding values with the
- * {@code write} method.
- *
- * <p>
- * The following example shows how to generate an empty JSON array:
- * <pre>
- * <code>
- * JsonGenerator generator = ...;
- * generator.writeStartArray().writeEnd().close();
- * </code>
- * </pre>
- *
- * <p>
- * Other JSON values (that are not JSON objects or arrays) can be created
- * by calling the appropriate {@code write} methods.
- * <p>
- * The following example shows how to generate a JSON string:
- * <pre><code>
- * JsonGenerator generator = ...;
- * generator.write("message").close();
- * </code></pre>
- *
- * {@code JsonGenerator} methods can be chained as in the following example:
- * <pre>
- * <code>
- * generator
- *     .writeStartObject()
- *         .write("firstName", "John")
- *         .write("lastName", "Smith")
- *         .write("age", 25)
- *         .writeStartObject("address")
- *             .write("streetAddress", "21 2nd Street")
- *             .write("city", "New York")
- *             .write("state", "NY")
- *             .write("postalCode", "10021")
- *         .writeEnd()
- *         .writeStartArray("phoneNumber")
- *             .writeStartObject()
- *                 .write("type", "home")
- *                 .write("number", "212 555-1234")
- *             .writeEnd()
- *             .writeStartObject()
- *                 .write("type", "fax")
- *                 .write("number", "646 555-4567")
- *             .writeEnd()
- *         .writeEnd()
- *     .writeEnd();
- * generator.close();
- * </code>
- * </pre>
- *
- * The example code above generates the following JSON (or equivalent):
- * <pre>
- * <code>
- * {
- *   "firstName": "John", "lastName": "Smith", "age": 25,
- *   "address" : {
- *       "streetAddress": "21 2nd Street",
- *       "city": "New York",
- *       "state": "NY",
- *       "postalCode": "10021"
- *   },
- *   "phoneNumber": [
- *       {"type": "home", "number": "212 555-1234"},
- *       {"type": "fax", "number": "646 555-4567"}
- *    ]
- * }
- * </code>
- * </pre>
- *
- * The generated JSON text must strictly conform to the grammar defined in
- * <a href="http://www.ietf.org/rfc/rfc7159.txt">RFC 7159</a>.
- *
- * @see javax.json.Json
- * @see JsonGeneratorFactory
- */
-public interface JsonGenerator extends Flushable, /*Auto*/Closeable {
-    /**
-     * Configuration property to generate JSON prettily. All providers
-     * must support this property. The value of the property could be
-     * be anything.
-     */
-    String PRETTY_PRINTING = "javax.json.stream.JsonGenerator.prettyPrinting" ;
-
-    /**
-     * Writes the JSON start object character. It starts a new child object
-     * context within which JSON name/value pairs can be written to the object.
-     * This method is valid only in an array context, field context or in no context (when a
-     * context is not yet started). This method can only be called once in
-     * no context.
-     *
-     * @return this generator
-     * @throws javax.json.JsonException if an i/o error occurs (IOException
-     * would be cause of JsonException)
-     * @throws JsonGenerationException if this method is called within an
-     *      object context or if it is called more than once in no context.
-     */
-    JsonGenerator writeStartObject();
-
-    /**
-     * Writes the JSON name/start object character pair in the current
-     * object context. It starts a new child object context within which JSON
-     * name/value pairs can be written to the object.
-     *
-     * @param name a name within the JSON name/object pair to be written
-     * @return this generator
-     * @throws javax.json.JsonException if an i/o error occurs (IOException
-     * would be cause of JsonException)
-     * @throws JsonGenerationException if this method is not called within an
-     *     object context
-     */
-    JsonGenerator writeStartObject(String name);
-
-    /**
-     * Writes the JSON name with a colon. It starts a field context, in which valid
-     * options are writing a value, starting an object or an array.
-     *
-     * Writing value closes field context, if object or array is started after field name,
-     * field context will be closed after object/array close.
-     *
-     * @param name name of json field
-     * @return this generator
-     * @throws javax.json.JsonException if an i/o error occurs (IOException
-     * would be cause of JsonException)
-     * @throws JsonGenerationException if this method is not called within an
-     *     object context
-     *
-     * @since 1.1
-     */
-    JsonGenerator writeKey(String name);
-
-    /**
-     * Writes the JSON start array character. It starts a new child array
-     * context within which JSON values can be written to the array. This
-     * method is valid only in an array context, field context or in no context (when a
-     * context is not yet started). This method can only be called once in
-     * no context.
-     *
-     * @return this generator
-     * @throws javax.json.JsonException if an i/o error occurs (IOException
-     * would be cause of JsonException)
-     * @throws JsonGenerationException if this method is called within an
-     *      object context or if called more than once in no context
-     */
-    JsonGenerator writeStartArray();
-
-    /**
-     * Writes the JSON name/start array character pair with in the current
-     * object context. It starts a new child array context within which JSON
-     * values can be written to the array.
-     *
-     * @param name a name within the JSON name/array pair to be written
-     * @return this generator
-     * @throws javax.json.JsonException if an i/o error occurs (IOException
-     * would be cause of JsonException)
-     * @throws JsonGenerationException if this method is not called within
-     *      an object context
-     */
-    JsonGenerator writeStartArray(String name);
-
-    /**
-     * Writes a JSON name/value pair in the current object context.
-     *
-     * @param name a name in the JSON name/value pair to be written in
-     *             current JSON object
-     * @param value a value in the JSON name/value pair to be written in
-     *             current JSON object
-     * @return this generator
-     * @throws javax.json.JsonException if an i/o error occurs (IOException
-     * would be cause of JsonException)
-     * @throws JsonGenerationException if this method is not called within an
-     *      object context
-     */
-    JsonGenerator write(String name, JsonValue value);
-
-    /**
-     * Writes a JSON name/string value pair in the current object context.
-     * The specified value is written as JSON string value.
-     *
-     * @param name a name in the JSON name/string pair to be written in
-     *             current JSON object
-     * @param value a value in the JSON name/string pair to be written in
-     *             current JSON object
-     * @return this generator
-     * @throws javax.json.JsonException if an i/o error occurs (IOException
-     * would be cause of JsonException)
-     * @throws JsonGenerationException if this method is not called within an
-     *      object context
-     */
-    JsonGenerator write(String name, String value);
-
-    /**
-     * Writes a JSON name/number value pair in the current object context.
-     * The specified value is written as a JSON number value. The string
-     * {@code new BigDecimal(value).toString()}
-     * is used as the text value for writing.
-     *
-     * @param name a name in the JSON name/number pair to be written in
-     *             current JSON object
-     * @param value a value in the JSON name/number pair to be written in
-     *             current JSON object
-     * @return this generator
-     * @throws javax.json.JsonException if an i/o error occurs (IOException
-     * would be cause of JsonException)
-     * @throws JsonGenerationException if this method is not called within an
-     *      object context.
-     */
-    JsonGenerator write(String name, BigInteger value);
-
-    /**
-     * Writes a JSON name/number value pair in the current object context.
-     * The specified value is written as a JSON number value. The specified
-     * value's {@code toString()} is used as the text value for writing.
-     *
-     * @param name a name in the JSON name/number pair to be written in
-     *             current JSON object
-     * @param value a value in the JSON name/number pair to be written in
-     *             current JSON object
-     * @return this generator
-     * @throws javax.json.JsonException if an i/o error occurs (IOException
-     * would be cause of JsonException)
-     * @throws JsonGenerationException if this method is not called within an
-     *      object context.
-     */
-    JsonGenerator write(String name, BigDecimal value);
-
-    /**
-     * Writes a JSON name/number value pair in the current object context.
-     * The specified value is written as a JSON number value. The string
-     * {@code new BigDecimal(value).toString()} is used as the text value
-     * for writing.
-     *
-     * @param name a name in the JSON name/number pair to be written in
-     *             current JSON object
-     * @param value a value in the JSON name/number pair to be written in
-     *             current JSON object
-     * @return this generator
-     * @throws javax.json.JsonException if an i/o error occurs (IOException
-     * would be cause of JsonException)
-     * @throws JsonGenerationException if this method is not called within an
-     *      object context.
-     */
-    JsonGenerator write(String name, int value);
-
-    /**
-     * Writes a JSON name/number value pair in the current object context.
-     * The specified value is written as a JSON number value. The string
-     * {@code new BigDecimal(value).toString()} is used as the text
-     * value for writing.
-     *
-     * @param name a name in the JSON name/number pair to be written in
-     *             current JSON object
-     * @param value a value in the JSON name/number pair to be written in
-     *             current JSON object
-     * @return this generator
-     * @throws javax.json.JsonException if an i/o error occurs (IOException
-     * would be cause of JsonException)
-     * @throws JsonGenerationException if this method is not called within an
-     *      object context.
-     */
-    JsonGenerator write(String name, long value);
-
-    /**
-     * Writes a JSON name/number value pair in the current object context.
-     * The specified value is written as a JSON number value. The string
-     * {@code BigDecimal.valueOf(double).toString()}
-     * is used as the text value for writing.
-     *
-     * @param name a name in the JSON name/number pair to be written in
-     *             current JSON object
-     * @param value a value in the JSON name/number pair to be written in
-     *             current JSON object
-     * @return this generator
-     * @throws javax.json.JsonException if an i/o error occurs (IOException
-     * would be cause of JsonException)
-     * @throws NumberFormatException if the value is Not-a-Number (NaN) or infinity.
-     * @throws JsonGenerationException if this method is not called within an
-     *      object context
-     */
-    JsonGenerator write(String name, double value);
-
-    /**
-     * Writes a JSON name/boolean value pair in the current object context.
-     * If value is true, it writes the JSON {@code true} value, otherwise
-     * it writes the JSON {@code false} value.
-     *
-     * @param name a name in the JSON name/boolean pair to be written in
-     *             current JSON object
-     * @param value a value in the JSON name/boolean pair to be written in
-     *             current JSON object
-     * @return this generator
-     * @throws javax.json.JsonException if an i/o error occurs (IOException
-     * would be cause of JsonException)
-     * @throws JsonGenerationException if this method is not called within an
-     *      object context.
-     */
-    JsonGenerator write(String name, boolean value);
-
-
-    /**
-     * Writes a JSON name/null value pair in an current object context.
-     *
-     * @param name a name in the JSON name/null pair to be written in
-     *             current JSON object
-     * @return this generator
-     * @throws javax.json.JsonException if an i/o error occurs (IOException
-     * would be cause of JsonException)
-     * @throws JsonGenerationException if this method is not called within an
-     *      object context
-     */
-    JsonGenerator writeNull(String name);
-
-    /**
-     * Writes the end of the current context. If the current context is
-     * an array context, this method writes the end-of-array character (']').
-     * If the current context is an object context, this method writes the
-     * end-of-object character ('}'). After writing the end of the current
-     * context, the parent context becomes the new current context.
-     * If parent context is field context, it is closed.
-     *
-     * @return this generator
-     * @throws javax.json.JsonException if an i/o error occurs (IOException
-     * would be cause of JsonException)
-     * @throws JsonGenerationException if this method is called in no context.
-     */
-    JsonGenerator writeEnd();
-
-    /**
-     * Writes the specified value as a JSON value within
-     * the current array, field or root context.
-     *
-     * @param value a value to be written in current JSON array
-     * @return this generator
-     * @throws javax.json.JsonException if an i/o error occurs (IOException
-     * would be cause of JsonException)
-     * @throws JsonGenerationException if this method is not called within an
-     *      array or root context.
-     */
-    JsonGenerator write(JsonValue value);
-
-    /**
-     * Writes the specified value as a JSON string value within
-     * the current array, field or root context.
-     *
-     * @param value a value to be written in current JSON array
-     * @return this generator
-     * @throws javax.json.JsonException if an i/o error occurs (IOException
-     * would be cause of JsonException)
-     * @throws JsonGenerationException if this method is not called within an
-     *      array or root context.
-     */
-    JsonGenerator write(String value);
-
-    /**
-     * Writes the specified value as a JSON number value within
-     * the current array, field or root context. The specified value's {@code toString()}
-     * is used as the the text value for writing.
-     *
-     * @param value a value to be written in current JSON array
-     * @return this generator
-     * @throws javax.json.JsonException if an i/o error occurs (IOException
-     * would be cause of JsonException)
-     * @throws JsonGenerationException if this method is not called within an
-     *      array or root context.
-     *
-     * @see javax.json.JsonNumber
-     */
-    JsonGenerator write(BigDecimal value);
-
-    /**
-     * Writes the specified value as a JSON number value within
-     * the current array, field or root context. The string {@code new BigDecimal(value).toString()}
-     * is used as the text value for writing.
-     *
-     * @param value a value to be written in current JSON array
-     * @return this generator.
-     * @throws javax.json.JsonException if an i/o error occurs (IOException
-     * would be cause of JsonException)
-     * @throws JsonGenerationException if this method is not called within an
-     *      array or root context.
-     *
-     * @see javax.json.JsonNumber
-     */
-    JsonGenerator write(BigInteger value);
-
-    /**
-     * Writes the specified value as a JSON number value within
-     * the current array, field or root context. The string {@code new BigDecimal(value).toString()}
-     * is used as the text value for writing.
-     *
-     * @param value a value to be written in current JSON array
-     * @return this generator
-     * @throws javax.json.JsonException if an i/o error occurs (IOException
-     * would be cause of JsonException)
-     * @throws JsonGenerationException if this method is not called within an
-     *      array or root context.
-     */
-    JsonGenerator write(int value);
-
-    /**
-     * Writes the specified value as a JSON number value within
-     * the current array, field or root context. The string {@code new BigDecimal(value).toString()}
-     * is used as the text value for writing.
-     *
-     * @param value a value to be written in current JSON array
-     * @return this generator
-     * @throws javax.json.JsonException if an i/o error occurs (IOException
-     * would be cause of JsonException)
-     * @throws JsonGenerationException if this method is not called within an
-     *      array or root context.
-     */
-    JsonGenerator write(long value);
-
-    /**
-     * Writes the specified value as a JSON number value within the current
-     * array, field or root context. The string {@code BigDecimal.valueOf(value).toString()}
-     * is used as the text value for writing.
-     *
-     * @param value a value to be written in current JSON array
-     * @return this generator
-     * @throws javax.json.JsonException if an i/o error occurs (IOException
-     * would be cause of JsonException)
-     * @throws JsonGenerationException if this method is not called within an
-     *      array or root context.
-     * @throws NumberFormatException if the value is Not-a-Number (NaN) or infinity.
-     */
-    JsonGenerator write(double value);
-
-    /**
-     * Writes a JSON true or false value within the current array, field or root context.
-     * If value is true, this method writes the JSON {@code true} value,
-     * otherwise it writes the JSON {@code false} value.
-     *
-     * @param value a {@code boolean} value
-     * @return this generator
-     * @throws javax.json.JsonException if an i/o error occurs (IOException
-     * would be cause of JsonException)
-     * @throws JsonGenerationException if this method is not called within an
-     *      array or root context.
-     */
-    JsonGenerator write(boolean value);
-
-    /**
-     * Writes a JSON null value within the current array, field or root context.
-     *
-     * @return this generator
-     * @throws javax.json.JsonException if an i/o error occurs (IOException
-     * would be cause of JsonException)
-     * @throws JsonGenerationException if this method is not called within an
-     *      array or root context.
-     */
-    JsonGenerator writeNull();
-
-    /**
-     * Closes this generator and frees any resources associated with it.
-     * This method closes the underlying output source.
-     *
-     * @throws javax.json.JsonException if an i/o error occurs (IOException
-     * would be cause of JsonException)
-     * @throws JsonGenerationException if an incomplete JSON is generated
-     */
-    @Override
-    void close();
-
-    /**
-     * Flushes the underlying output source. If the generator has saved
-     * any characters in a buffer, writes them immediately to the underlying
-     * output source before flushing it.
-     *
-     * @throws javax.json.JsonException if an i/o error occurs (IOException
-     * would be cause of JsonException)
-     */
-    @Override
-    void flush();
-
-}
Index: trunk/src/javax/json/stream/JsonGeneratorFactory.java
===================================================================
--- trunk/src/javax/json/stream/JsonGeneratorFactory.java	(revision 14273)
+++ 	(revision )
@@ -1,113 +1,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
- *
- * Copyright (c) 2011-2017 Oracle and/or its affiliates. All rights reserved.
- *
- * The contents of this file are subject to the terms of either the GNU
- * General Public License Version 2 only ("GPL") or the Common Development
- * and Distribution License("CDDL") (collectively, the "License").  You
- * may not use this file except in compliance with the License.  You can
- * obtain a copy of the License at
- * https://oss.oracle.com/licenses/CDDL+GPL-1.1
- * or LICENSE.txt.  See the License for the specific
- * language governing permissions and limitations under the License.
- *
- * When distributing the software, include this License Header Notice in each
- * file and include the License file at LICENSE.txt.
- *
- * GPL Classpath Exception:
- * Oracle designates this particular file as subject to the "Classpath"
- * exception as provided by Oracle in the GPL Version 2 section of the License
- * file that accompanied this code.
- *
- * Modifications:
- * If applicable, add the following below the License Header, with the fields
- * enclosed by brackets [] replaced by your own identifying information:
- * "Portions Copyright [year] [name of copyright owner]"
- *
- * Contributor(s):
- * If you wish your version of this file to be governed by only the CDDL or
- * only the GPL Version 2, indicate your decision by adding "[Contributor]
- * elects to include this software in this distribution under the [CDDL or GPL
- * Version 2] license."  If you don't indicate a single choice of license, a
- * recipient has the option to distribute your version of this file under
- * either the CDDL, the GPL Version 2 or to extend the choice of license to
- * its licensees as provided above.  However, if you add GPL Version 2 code
- * and therefore, elected the GPL Version 2 license, then the option applies
- * only if the new code is made subject to such option by the copyright
- * holder.
- */
-
-package javax.json.stream;
-
-import java.io.OutputStream;
-import java.io.Writer;
-import java.nio.charset.Charset;
-import java.util.Map;
-
-/**
- * Factory to create {@link JsonGenerator} instances. If a factory
- * instance is configured with some configuration, the configuration applies
- * to all generator instances created using that factory instance.
- *
- * <p>
- * The class {@link javax.json.Json Json} also provides methods to create
- * {@link JsonGenerator} instances, but using {@code JsonGeneratorFactory} is
- * preferred when creating multiple generator instances as shown in the
- * following example:
- *
- * <pre>
- * <code>
- * JsonGeneratorFactory factory = Json.createGeneratorFactory();
- * JsonGenerator generator1 = factory.createGenerator(...);
- * JsonGenerator generator2 = factory.createGenerator(...);
- * </code>
- * </pre>
- *
- * <p> All the methods in this class are safe for use by multiple concurrent
- * threads.
- */
-public interface JsonGeneratorFactory {
-
-    /**
-     * Creates a JSON generator to write JSON text to a character stream.
-     * The generator is configured with the factory configuration.
-     *
-     * @param writer i/o writer to which JSON is written
-     * @return the created JSON generator
-     */
-    JsonGenerator createGenerator(Writer writer);
-
-    /**
-     * Creates a JSON generator to write JSON text to a byte stream. Characters 
-     * written to the stream are encoded into bytes using UTF-8 encoding. 
-     * The generator is configured with the factory's configuration.
-     *
-     * @param out i/o stream to which JSON is written
-     * @return the created JSON generator
-     */
-    JsonGenerator createGenerator(OutputStream out);
-
-    /**
-     * Creates a JSON generator to write JSON text to a byte stream. Characters 
-     * written to the stream are encoded into bytes using the specified charset. 
-     * The generator is configured with the factory's configuration.
-     *
-     * @param out i/o stream to which JSON is written
-     * @param charset a charset
-     * @return the created JSON generator
-     */
-    JsonGenerator createGenerator(OutputStream out, Charset charset);
-
-    /**
-     * Returns a read-only map of supported provider specific configuration
-     * properties that are used to configure the JSON generators.
-     * If there are any specified configuration properties that are not
-     * supported by the provider, they won't be part of the returned map.
-     *
-     * @return a map of supported provider specific properties that are used
-     * to configure the created generators. The map may be empty but not null
-     */
-    Map<String, ?> getConfigInUse();
-
-}
Index: trunk/src/javax/json/stream/JsonLocation.java
===================================================================
--- trunk/src/javax/json/stream/JsonLocation.java	(revision 14273)
+++ 	(revision )
@@ -1,85 +1,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
- *
- * Copyright (c) 2013-2017 Oracle and/or its affiliates. All rights reserved.
- *
- * The contents of this file are subject to the terms of either the GNU
- * General Public License Version 2 only ("GPL") or the Common Development
- * and Distribution License("CDDL") (collectively, the "License").  You
- * may not use this file except in compliance with the License.  You can
- * obtain a copy of the License at
- * https://oss.oracle.com/licenses/CDDL+GPL-1.1
- * or LICENSE.txt.  See the License for the specific
- * language governing permissions and limitations under the License.
- *
- * When distributing the software, include this License Header Notice in each
- * file and include the License file at LICENSE.txt.
- *
- * GPL Classpath Exception:
- * Oracle designates this particular file as subject to the "Classpath"
- * exception as provided by Oracle in the GPL Version 2 section of the License
- * file that accompanied this code.
- *
- * Modifications:
- * If applicable, add the following below the License Header, with the fields
- * enclosed by brackets [] replaced by your own identifying information:
- * "Portions Copyright [year] [name of copyright owner]"
- *
- * Contributor(s):
- * If you wish your version of this file to be governed by only the CDDL or
- * only the GPL Version 2, indicate your decision by adding "[Contributor]
- * elects to include this software in this distribution under the [CDDL or GPL
- * Version 2] license."  If you don't indicate a single choice of license, a
- * recipient has the option to distribute your version of this file under
- * either the CDDL, the GPL Version 2 or to extend the choice of license to
- * its licensees as provided above.  However, if you add GPL Version 2 code
- * and therefore, elected the GPL Version 2 license, then the option applies
- * only if the new code is made subject to such option by the copyright
- * holder.
- */
-
-package javax.json.stream;
-
-/**
- * Provides the location information of a JSON event in an input source. The
- * {@code JsonLocation} information can be used to identify incorrect JSON
- * or can be used by higher frameworks to know about the processing location.
- *
- * <p>All the information provided by a {@code JsonLocation} is optional. For
- * example, a provider may only report line numbers. Also, there may not be any
- * location information for an input source. For example, if a
- * {@code JsonParser} is created using
- * {@link javax.json.JsonArray JsonArray} input source, all the methods in
- * this class return -1.
- * @see JsonParser
- * @see JsonParsingException
- */
-public interface JsonLocation {
-
-    /**
-     * Return the line number (starts with 1 for the first line) for the current JSON event in the input source.
-     *
-     * @return the line number (starts with 1 for the first line) or -1 if none is available
-     */
-    long getLineNumber();
-
-    /**
-     * Return the column number (starts with 1 for the first column) for the current JSON event in the input source.
-     *
-     * @return the column number (starts with 1 for the first column) or -1 if none is available
-     */
-    long getColumnNumber();
-
-    /**
-     * Return the stream offset into the input source this location
-     * is pointing to. If the input source is a file or a byte stream then
-     * this is the byte offset into that stream, but if the input source is
-     * a character media then the offset is the character offset.
-     * Returns -1 if there is no offset available.
-     *
-     * @return the offset of input source stream, or -1 if there is
-     * no offset available
-     */
-    long getStreamOffset();
-
-}
Index: trunk/src/javax/json/stream/JsonParser.java
===================================================================
--- trunk/src/javax/json/stream/JsonParser.java	(revision 14273)
+++ 	(revision )
@@ -1,511 +1,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
- *
- * Copyright (c) 2011-2017 Oracle and/or its affiliates. All rights reserved.
- *
- * The contents of this file are subject to the terms of either the GNU
- * General Public License Version 2 only ("GPL") or the Common Development
- * and Distribution License("CDDL") (collectively, the "License").  You
- * may not use this file except in compliance with the License.  You can
- * obtain a copy of the License at
- * https://oss.oracle.com/licenses/CDDL+GPL-1.1
- * or LICENSE.txt.  See the License for the specific
- * language governing permissions and limitations under the License.
- *
- * When distributing the software, include this License Header Notice in each
- * file and include the License file at LICENSE.txt.
- *
- * GPL Classpath Exception:
- * Oracle designates this particular file as subject to the "Classpath"
- * exception as provided by Oracle in the GPL Version 2 section of the License
- * file that accompanied this code.
- *
- * Modifications:
- * If applicable, add the following below the License Header, with the fields
- * enclosed by brackets [] replaced by your own identifying information:
- * "Portions Copyright [year] [name of copyright owner]"
- *
- * Contributor(s):
- * If you wish your version of this file to be governed by only the CDDL or
- * only the GPL Version 2, indicate your decision by adding "[Contributor]
- * elects to include this software in this distribution under the [CDDL or GPL
- * Version 2] license."  If you don't indicate a single choice of license, a
- * recipient has the option to distribute your version of this file under
- * either the CDDL, the GPL Version 2 or to extend the choice of license to
- * its licensees as provided above.  However, if you add GPL Version 2 code
- * and therefore, elected the GPL Version 2 license, then the option applies
- * only if the new code is made subject to such option by the copyright
- * holder.
- */
-
-package javax.json.stream;
-
-
-import java.io.Closeable;
-import java.math.BigDecimal;
-import java.util.stream.Stream;
-import java.util.Map;
-
-import javax.json.JsonValue;
-import javax.json.JsonObject;
-import javax.json.JsonArray;
-
-/**
- * Provides forward, read-only access to JSON data in a streaming way. This
- * is the most efficient way for reading JSON data.
- * This is the only way to parse and process JSON data that are too big to be loaded in memory.
- * <p>The class
- * {@link javax.json.Json} contains methods to create parsers from input
- * sources ({@link java.io.InputStream} and {@link java.io.Reader}).
- *
- * <p>
- * The following example demonstrates how to create a parser from a string
- * that contains an empty JSON array:
- * <pre>
- * <code>
- * JsonParser parser = Json.createParser(new StringReader("[]"));
- * </code>
- * </pre>
- *
- * <p>
- * The class {@link JsonParserFactory} also contains methods to create
- * {@code JsonParser} instances. {@link JsonParserFactory} is preferred
- * when creating multiple parser instances. A sample usage is shown
- * in the following example:
- * <pre>
- * <code>
- * JsonParserFactory factory = Json.createParserFactory();
- * JsonParser parser1 = factory.createParser(...);
- * JsonParser parser2 = factory.createParser(...);
- * </code>
- * </pre>
- *
- * <p>
- * {@code JsonParser} parses JSON using the pull parsing programming model.
- * In this model the client code controls the thread and calls the method
- * {@code next()} to advance the parser to the next state after
- * processing each element. The parser can generate the following events:
- * {@code START_OBJECT}, {@code END_OBJECT}, {@code START_ARRAY},
- * {@code END_ARRAY}, {@code KEY_NAME}, {@code VALUE_STRING},
- * {@code VALUE_NUMBER}, {@code VALUE_TRUE}, {@code VALUE_FALSE},
- * and {@code VALUE_NULL}.
- *
- * <p>
- * <b>For example</b>, for an empty JSON object ({ }), the parser generates the event
- * {@code START_OBJECT} with the first call to the method {@code next()} and the
- * event {@code END_OBJECT} with the second call to the method {@code next()}.
- * The following code demonstrates how to access these events:
- *
- * <pre>
- * <code>
- * Event event = parser.next(); // START_OBJECT
- * event = parser.next();       // END_OBJECT
- * </code>
- * </pre>
- *
- * <p>
- * <b>For example</b>, for the following JSON:
- * <pre>
- * {
- *   "firstName": "John", "lastName": "Smith", "age": 25,
- *   "phoneNumber": [
- *       { "type": "home", "number": "212 555-1234" },
- *       { "type": "fax", "number": "646 555-4567" }
- *    ]
- * }
- * </pre>
- *
- * <p>calls to the method {@code next()} result in parse events at the specified
- * locations below (marked in bold):
- *
- * <pre>
- * {<B>START_OBJECT</B>
- *   "firstName"<B>KEY_NAME</B>: "John"<B>VALUE_STRING</B>, "lastName"<B>KEY_NAME</B>: "Smith"<B>VALUE_STRING</B>, "age"<B>KEY_NAME</B>: 25<B>VALUE_NUMBER</B>,
- *   "phoneNumber"<B>KEY_NAME</B> : [<B>START_ARRAY</B>
- *       {<B>START_OBJECT</B> "type"<B>KEY_NAME</B>: "home"<B>VALUE_STRING</B>, "number"<B>KEY_NAME</B>: "212 555-1234"<B>VALUE_STRING</B> }<B>END_OBJECT</B>,
- *       {<B>START_OBJECT</B> "type"<B>KEY_NAME</B>: "fax"<B>VALUE_STRING</B>, "number"<B>KEY_NAME</B>: "646 555-4567"<B>VALUE_STRING</B> }<B>END_OBJECT</B>
- *    ]<B>END_ARRAY</B>
- * }<B>END_OBJECT</B>
- * </pre>
- *
- * The methods {@link #next()} and {@link #hasNext()} enable iteration over
- * parser events to process JSON data. {@code JsonParser} provides get methods
- * to obtain the value at the current state of the parser. For example, the
- * following code shows how to obtain the value "John" from the JSON above:
- *
- * <pre>
- * <code>
- * Event event = parser.next(); // START_OBJECT
- * event = parser.next();       // KEY_NAME
- * event = parser.next();       // VALUE_STRING
- * parser.getString();          // "John"
- * </code>
- * </pre>
- *
- * Starting in version 1.1, it is possible to build a partial JSON object
- * model from the stream, at the current parser position.
- * The methods {@link #getArray} and {@link #getObject} can be used to read in
- * a {@code JsonArray} or {@code JsonObject}.  For example, the following code
- * shows how to obtain the phoneNumber in a JsonArray, from the JSON above:
- *
- * <pre><code>
- * while (parser.hasNext() {
- *     Event event = parser.next();
- *     if (event == JsonParser.Event.KEY_NAME ) {
- *         String key = getString();
- *         event = parser.next();
- *         if (key.equals("phoneNumber") {
- *             JsonArray phones = parser.getArray();
- *         }
- *     }
- * }
- * </code></pre>
- *
- * The methods {@link #getArrayStream} and {@link #getObjectStream} can be used
- * to get a stream of the elements of a {@code JsonArray} or {@code JsonObject}.
- * For example, the following code shows another way to obtain John's phoneNumber
- * in a {@code JsonArray} :
- *
- * <pre>{@code
- * Event event = parser.next(); // START_OBJECT
- * JsonArray phones = (JsonArray)
- *     parser.getObjectStream().filter(e->e.getKey().equals("phoneNumber"))
- *                             .map(e->e.getValue())
- *                             .findFirst()
- *                             .get();
- * }</pre>
- *
- * The methods {@link #skipArray} and {@link #skipObject} can be used to
- * skip tokens and position the parser to {@code END_ARRAY} or
- * {@code END_OBJECT}.
- * <p>
- * {@code JsonParser} can be used to parse sequence of JSON values that are not
- * enclosed in a JSON array, e.g. { } { }. The following code demonstrates how
- * to parse such sequence.
- * <pre><code>
- * JsonParser parser = Json.createParser(...);
- * while (parser.hasNext) {
- *     parser.next(); // advance parser state
- *     JsonValue value = parser.getValue();
- * }
- * </code></pre>
- *
- * @see javax.json.Json
- * @see JsonParserFactory
- */
-public interface JsonParser extends /*Auto*/Closeable {
-
-    /**
-     * An event from {@code JsonParser}.
-     */
-    enum Event {
-        /**
-         * Start of a JSON array. The position of the parser is after '['.
-         */
-        START_ARRAY,
-        /**
-         * Start of a JSON object. The position of the parser is after '{'.
-         */
-        START_OBJECT,
-        /**
-         * Name in a name/value pair of a JSON object. The position of the parser
-         * is after the key name. The method {@link #getString} returns the key
-         * name.
-         */
-        KEY_NAME,
-        /**
-         * String value in a JSON array or object. The position of the parser is
-         * after the string value. The method {@link #getString}
-         * returns the string value.
-         */
-        VALUE_STRING,
-        /**
-         * Number value in a JSON array or object. The position of the parser is
-         * after the number value. {@code JsonParser} provides the following
-         * methods to access the number value: {@link #getInt},
-         * {@link #getLong}, and {@link #getBigDecimal}.
-         */
-        VALUE_NUMBER,
-        /**
-         * {@code true} value in a JSON array or object. The position of the
-         * parser is after the {@code true} value.
-         */
-        VALUE_TRUE,
-        /**
-         * {@code false} value in a JSON array or object. The position of the
-         * parser is after the {@code false} value.
-         */
-        VALUE_FALSE,
-        /**
-         * {@code null} value in a JSON array or object. The position of the
-         * parser is after the {@code null} value.
-         */
-        VALUE_NULL,
-        /**
-         * End of a JSON object. The position of the parser is after '}'.
-         */
-        END_OBJECT,
-        /**
-         * End of a JSON array. The position of the parser is after ']'.
-         */
-        END_ARRAY
-    }
-
-    /**
-     * Returns {@code true} if there are more parsing states. This method returns
-     * {@code false} if the parser reaches the end of the JSON text.
-     *
-     * @return {@code true} if there are more parsing states.
-     * @throws javax.json.JsonException if an i/o error occurs (IOException
-     * would be cause of JsonException)
-     * @throws JsonParsingException if the parser encounters invalid JSON
-     * when advancing to next state.
-     */
-    boolean hasNext();
-
-    /**
-     * Returns the event for the next parsing state.
-     *
-     * @throws javax.json.JsonException if an i/o error occurs (IOException
-     * would be cause of JsonException)
-     * @throws JsonParsingException if the parser encounters invalid JSON
-     * when advancing to next state.
-     * @throws java.util.NoSuchElementException if there are no more parsing
-     * states.
-     * @return the event for the next parsing state
-     */
-    Event next();
-
-    /**
-     * Returns a {@code String} for the name in a name/value pair,
-     * for a string value or a number value. This method should only be called
-     * when the parser state is {@link Event#KEY_NAME}, {@link Event#VALUE_STRING},
-     * or {@link Event#VALUE_NUMBER}.
-     *
-     * @return a name when the parser state is {@link Event#KEY_NAME}
-     *         a string value when the parser state is {@link Event#VALUE_STRING}
-     *         a number value when the parser state is {@link Event#VALUE_NUMBER}
-     * @throws IllegalStateException when the parser state is not
-     *      {@code KEY_NAME}, {@code VALUE_STRING}, or {@code VALUE_NUMBER}
-     */
-    String getString();
-
-    /**
-     * Returns true if the JSON number at the current parser state is a
-     * integral number. A {@link BigDecimal} may be used to store the value
-     * internally and this method semantics are defined using its
-     * {@code scale()}. If the scale is zero, then it is considered integral
-     * type. This integral type information can be used to invoke an
-     * appropriate accessor method to obtain a numeric value as in the
-     * following example:
-     *
-     * <pre>
-     * <code>
-     * JsonParser parser = ...
-     * if (parser.isIntegralNumber()) {
-     *     parser.getInt();     // or other methods to get integral value
-     * } else {
-     *     parser.getBigDecimal();
-     * }
-     * </code>
-     * </pre>
-     *
-     * @return true if this number is a integral number, otherwise false
-     * @throws IllegalStateException when the parser state is not
-     *      {@code VALUE_NUMBER}
-     */
-    boolean isIntegralNumber();
-
-    /**
-     * Returns a JSON number as an integer. The returned value is equal
-     * to {@code new BigDecimal(getString()).intValue()}. Note that
-     * this conversion can lose information about the overall magnitude
-     * and precision of the number value as well as return a result with
-     * the opposite sign. This method should only be called when the parser
-     * state is {@link Event#VALUE_NUMBER}.
-     *
-     * @return an integer for a JSON number
-     * @throws IllegalStateException when the parser state is not
-     *      {@code VALUE_NUMBER}
-     * @see java.math.BigDecimal#intValue()
-     */
-    int getInt();
-
-    /**
-     * Returns a JSON number as a long. The returned value is equal
-     * to {@code new BigDecimal(getString()).longValue()}. Note that this
-     * conversion can lose information about the overall magnitude and
-     * precision of the number value as well as return a result with
-     * the opposite sign. This method is only called when the parser state is
-     * {@link Event#VALUE_NUMBER}.
-     *
-     * @return a long for a JSON number
-     * @throws IllegalStateException when the parser state is not
-     *      {@code VALUE_NUMBER}
-     * @see java.math.BigDecimal#longValue()
-     */
-    long getLong();
-
-    /**
-     * Returns a JSON number as a {@code BigDecimal}. The {@code BigDecimal}
-     * is created using {@code new BigDecimal(getString())}. This
-     * method should only called when the parser state is
-     * {@link Event#VALUE_NUMBER}.
-     *
-     * @return a {@code BigDecimal} for a JSON number
-     * @throws IllegalStateException when the parser state is not
-     *      {@code VALUE_NUMBER}
-     */
-    BigDecimal getBigDecimal();
-
-    /**
-     * Return the location that corresponds to the parser's current state in
-     * the JSON input source. The location information is only valid in the
-     * current parser state (or until the parser is advanced to a next state).
-     *
-     * @return a non-null location corresponding to the current parser state
-     * in JSON input source
-     */
-    JsonLocation getLocation();
-
-    /**
-     * Returns a {@code JsonObject} and advances the parser to the
-     * corresponding {@code END_OBJECT}.
-     *
-     * @return the {@code JsonObject} at the current parser position
-     *
-     * @throws IllegalStateException when the parser state is not
-     *     {@code START_OBJECT}
-     *
-     * @since 1.1
-     */
-    default public JsonObject getObject() {
-        throw new UnsupportedOperationException();
-    }
-
-    /**
-     * Returns a {@code JsonValue} at the current parser position.
-     * If the parser state is {@code START_ARRAY}, the behavior is
-     * the same as {@link #getArray}. If the parser state is
-     * {@code START_OBJECT}, the behavior is the same as
-     * {@link #getObject}. For all other cases, if applicable, the JSON value is
-     * read and returned.
-     *
-     * @return the {@code JsonValue} at the current parser position.
-     * @throws IllegalStateException when the parser state is
-     *     {@code END_OBJECT} or {@code END_ARRAY}
-     *
-     * @since 1.1
-     */
-    default public JsonValue getValue() {
-        throw new UnsupportedOperationException();
-    }
-
-    /**
-     * Returns a {@code JsonArray} and advance the parser to the
-     * the corresponding {@code END_ARRAY}.
-     *
-     * @return the {@code JsonArray} at the current parser position
-     *
-     * @throws IllegalStateException when the parser state is not
-     *     {@code START_ARRAY}
-     *
-     * @since 1.1
-     */
-    default public JsonArray getArray() {
-        throw new UnsupportedOperationException();
-    }
-
-    /**
-     * Returns a stream of the {@code JsonArray} elements.
-     * The parser state must be {@code START_ARRAY}.
-     * The elements are read lazily, on an as-needed basis, as
-     * required by the stream operations.
-     * If the stream operations do not consume
-     * all of the array elements, {@link skipArray} can be used to
-     * skip the unprocessed array elements.
-     *
-     * @return a stream of elements of the {@code JsonArray}
-     *
-     * @throws IllegalStateException when the parser state is not
-     *     {@code START_ARRAY}
-     *
-     * @since 1.1
-     */
-    default public Stream<JsonValue> getArrayStream() {
-        throw new UnsupportedOperationException();
-    }
-
-    /**
-     * Returns a stream of the {@code JsonObject}'s
-     * name/value pairs. The parser state must be {@code START_OBJECT}.
-     * The name/value pairs are read lazily, on an as-needed basis, as
-     * required by the stream operations.
-     * If the stream operations do not consume
-     * all of the object's name/value pairs, {@link skipObject} can be
-     * used to skip the unprocessed elements.
-     *
-     * @return a stream of name/value pairs of the {@code JsonObject}
-     *
-     * @throws IllegalStateException when the parser state is not
-     *     {@code START_OBJECT}
-     *
-     * @since 1.1
-     */
-    default public Stream<Map.Entry<String,JsonValue>> getObjectStream() {
-        throw new UnsupportedOperationException();
-    }
-
-    /**
-     * Returns a stream of {@code JsonValue} from a sequence of
-     * JSON values. The values are read lazily, on an as-needed basis,
-     * as needed by the stream operations.
-     *
-     * @return a Stream of {@code JsonValue}
-     *
-     * @throws IllegalStateException if the parser is in an array or object.
-     *
-     * @since 1.1
-     */
-    default public Stream<JsonValue> getValueStream() {
-        throw new UnsupportedOperationException();
-    }
-
-    /**
-     * Advance the parser to {@code END_ARRAY}.
-     * If the parser is in array context, i.e. it has previously
-     * encountered a {@code START_ARRAY} without encountering the
-     * corresponding {@code END_ARRAY}, the parser is advanced to
-     * the corresponding {@code END_ARRAY}.
-     * If the parser is not in any array context, nothing happens.
-     *
-     * @since 1.1
-     */
-    default public void skipArray() {
-        throw new UnsupportedOperationException();
-    }
-
-    /**
-     * Advance the parser to {@code END_OBJECT}.
-     * If the parser is in object context, i.e. it has previously
-     * encountered a {@code START_OBJECT} without encountering the
-     * corresponding {@code END_OBJECT}, the parser is advanced to
-     * the corresponding {@code END_OBJECT}.
-     * If the parser is not in any object context, nothing happens.
-     *
-     * @since 1.1
-     */
-    default public void skipObject() {
-        throw new UnsupportedOperationException();
-    }
-
-    /**
-     * Closes this parser and frees any resources associated with the
-     * parser. This method closes the underlying input source.
-     *
-     * @throws javax.json.JsonException if an i/o error occurs (IOException
-     * would be cause of JsonException)
-     */
-    @Override
-    void close();
-}
Index: trunk/src/javax/json/stream/JsonParserFactory.java
===================================================================
--- trunk/src/javax/json/stream/JsonParserFactory.java	(revision 14273)
+++ 	(revision )
@@ -1,132 +1,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
- *
- * Copyright (c) 2011-2017 Oracle and/or its affiliates. All rights reserved.
- *
- * The contents of this file are subject to the terms of either the GNU
- * General Public License Version 2 only ("GPL") or the Common Development
- * and Distribution License("CDDL") (collectively, the "License").  You
- * may not use this file except in compliance with the License.  You can
- * obtain a copy of the License at
- * https://oss.oracle.com/licenses/CDDL+GPL-1.1
- * or LICENSE.txt.  See the License for the specific
- * language governing permissions and limitations under the License.
- *
- * When distributing the software, include this License Header Notice in each
- * file and include the License file at LICENSE.txt.
- *
- * GPL Classpath Exception:
- * Oracle designates this particular file as subject to the "Classpath"
- * exception as provided by Oracle in the GPL Version 2 section of the License
- * file that accompanied this code.
- *
- * Modifications:
- * If applicable, add the following below the License Header, with the fields
- * enclosed by brackets [] replaced by your own identifying information:
- * "Portions Copyright [year] [name of copyright owner]"
- *
- * Contributor(s):
- * If you wish your version of this file to be governed by only the CDDL or
- * only the GPL Version 2, indicate your decision by adding "[Contributor]
- * elects to include this software in this distribution under the [CDDL or GPL
- * Version 2] license."  If you don't indicate a single choice of license, a
- * recipient has the option to distribute your version of this file under
- * either the CDDL, the GPL Version 2 or to extend the choice of license to
- * its licensees as provided above.  However, if you add GPL Version 2 code
- * and therefore, elected the GPL Version 2 license, then the option applies
- * only if the new code is made subject to such option by the copyright
- * holder.
- */
-
-package javax.json.stream;
-
-import javax.json.JsonArray;
-import javax.json.JsonObject;
-import java.io.InputStream;
-import java.io.Reader;
-import java.nio.charset.Charset;
-import java.util.Map;
-
-/**
- * Factory for creating {@link JsonParser} instances. If a factory
- * instance is configured with a configuration, the configuration applies
- * to all parser instances created using that factory instance.
- *
- * <p>
- * The class {@link javax.json.Json Json} also provides methods to create
- * {@link JsonParser} instances, but using {@code JsonParserFactory} is 
- * preferred when creating multiple parser instances as shown in the following
- * example:
- *
- * <pre>
- * <code>
- * JsonParserFactory factory = Json.createParserFactory();
- * JsonParser parser1 = factory.createParser(...);
- * JsonParser parser2 = factory.createParser(...);
- * </code>
- * </pre>
- *
- * <p> All the methods in this class are safe for use by multiple concurrent
- * threads.
- */
-public interface JsonParserFactory {
-
-    /**
-     * Creates a JSON parser from a character stream.
-     *
-     * @param reader a i/o reader from which JSON is to be read
-     * @return the created JSON parser
-     */
-    JsonParser createParser(Reader reader);
-
-    /**
-     * Creates a JSON parser from the specified byte stream.
-     * The character encoding of the stream is determined
-     * as specified in <a href="http://tools.ietf.org/rfc/rfc7159.txt">RFC 7159</a>.
-     *
-     * @param in i/o stream from which JSON is to be read
-     * @return the created JSON parser
-     * @throws javax.json.JsonException if encoding cannot be determined
-     *         or i/o error (IOException would be cause of JsonException)
-     */
-    JsonParser createParser(InputStream in);
-
-    /**
-     * Creates a JSON parser from the specified byte stream.
-     * The bytes of the stream are decoded to characters using the
-     * specified charset.
-     *
-     * @param in i/o stream from which JSON is to be read
-     * @param charset a charset
-     * @return the created JSON parser
-     */
-    JsonParser createParser(InputStream in, Charset charset);
-
-    /**
-     * Creates a JSON parser from the specified JSON object.
-     *
-     * @param obj a JSON object
-     * @return the created JSON parser
-     */
-    JsonParser createParser(JsonObject obj);
-
-    /**
-     * Creates a JSON parser from the specified JSON array.
-     *
-     * @param array a JSON array
-     * @return the created JSON parser
-     */
-    JsonParser createParser(JsonArray array);
-
-    /**
-     * Returns a read-only map of supported provider specific configuration
-     * properties that are used to configure the JSON parsers.
-     * If there are any specified configuration properties that are not
-     * supported by the provider, they won't be part of the returned map.
-     *
-     * @return a map of supported provider specific properties that are used
-     * to configure the created parsers. The map may be empty but not null
-     */
-    Map<String, ?> getConfigInUse();
-
-}
Index: trunk/src/javax/json/stream/JsonParsingException.java
===================================================================
--- trunk/src/javax/json/stream/JsonParsingException.java	(revision 14273)
+++ 	(revision )
@@ -1,96 +1,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
- *
- * Copyright (c) 2012-2017 Oracle and/or its affiliates. All rights reserved.
- *
- * The contents of this file are subject to the terms of either the GNU
- * General Public License Version 2 only ("GPL") or the Common Development
- * and Distribution License("CDDL") (collectively, the "License").  You
- * may not use this file except in compliance with the License.  You can
- * obtain a copy of the License at
- * https://oss.oracle.com/licenses/CDDL+GPL-1.1
- * or LICENSE.txt.  See the License for the specific
- * language governing permissions and limitations under the License.
- *
- * When distributing the software, include this License Header Notice in each
- * file and include the License file at LICENSE.txt.
- *
- * GPL Classpath Exception:
- * Oracle designates this particular file as subject to the "Classpath"
- * exception as provided by Oracle in the GPL Version 2 section of the License
- * file that accompanied this code.
- *
- * Modifications:
- * If applicable, add the following below the License Header, with the fields
- * enclosed by brackets [] replaced by your own identifying information:
- * "Portions Copyright [year] [name of copyright owner]"
- *
- * Contributor(s):
- * If you wish your version of this file to be governed by only the CDDL or
- * only the GPL Version 2, indicate your decision by adding "[Contributor]
- * elects to include this software in this distribution under the [CDDL or GPL
- * Version 2] license."  If you don't indicate a single choice of license, a
- * recipient has the option to distribute your version of this file under
- * either the CDDL, the GPL Version 2 or to extend the choice of license to
- * its licensees as provided above.  However, if you add GPL Version 2 code
- * and therefore, elected the GPL Version 2 license, then the option applies
- * only if the new code is made subject to such option by the copyright
- * holder.
- */
-
-package javax.json.stream;
-
-import javax.json.JsonException;
-
-/**
- * {@code JsonParsingException} is used when an incorrect JSON is
- * being parsed.
- */
-public class JsonParsingException extends JsonException {
-
-    private final JsonLocation location;
-
-    /**
-     * Constructs a new runtime exception with the specified detail message.
-     * The cause is not initialized, and may subsequently be initialized by a
-     * call to {@link #initCause}.
-     *
-     * @param message the detail message. The detail message is saved for
-     *                later retrieval by the {@link #getMessage()} method.
-     * @param location the location of the incorrect JSON
-     */
-    public JsonParsingException(String message, JsonLocation location) {
-        super(message);
-        this.location = location;
-    }
-
-    /**
-     * Constructs a new runtime exception with the specified detail message and
-     * cause.  <p>Note that the detail message associated with
-     * {@code cause} is <i>not</i> automatically incorporated in
-     * this runtime exception's detail message.
-     *
-     * @param message the detail message (which is saved for later retrieval
-     *                by the {@link #getMessage()} method).
-     * @param cause the cause (which is saved for later retrieval by the
-     *              {@link #getCause()} method). (A <tt>null</tt> value is
-     *              permitted, and indicates that the cause is nonexistent or
-     *              unknown.)
-     * @param location the location of the incorrect JSON
-     */
-    public JsonParsingException(String message, Throwable cause, JsonLocation location) {
-        super(message, cause);
-        this.location = location;
-    }
-
-    /**
-     * Return the location of the incorrect JSON.
-     *
-     * @return the non-null location of the incorrect JSON
-     */
-    public JsonLocation getLocation() {
-        return location;
-    }
-
-}
-
Index: trunk/src/javax/json/stream/package-info.java
===================================================================
--- trunk/src/javax/json/stream/package-info.java	(revision 14273)
+++ 	(revision )
@@ -1,71 +1,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
- *
- * Copyright (c) 2012-2017 Oracle and/or its affiliates. All rights reserved.
- *
- * The contents of this file are subject to the terms of either the GNU
- * General Public License Version 2 only ("GPL") or the Common Development
- * and Distribution License("CDDL") (collectively, the "License").  You
- * may not use this file except in compliance with the License.  You can
- * obtain a copy of the License at
- * https://oss.oracle.com/licenses/CDDL+GPL-1.1
- * or LICENSE.txt.  See the License for the specific
- * language governing permissions and limitations under the License.
- *
- * When distributing the software, include this License Header Notice in each
- * file and include the License file at LICENSE.txt.
- *
- * GPL Classpath Exception:
- * Oracle designates this particular file as subject to the "Classpath"
- * exception as provided by Oracle in the GPL Version 2 section of the License
- * file that accompanied this code.
- *
- * Modifications:
- * If applicable, add the following below the License Header, with the fields
- * enclosed by brackets [] replaced by your own identifying information:
- * "Portions Copyright [year] [name of copyright owner]"
- *
- * Contributor(s):
- * If you wish your version of this file to be governed by only the CDDL or
- * only the GPL Version 2, indicate your decision by adding "[Contributor]
- * elects to include this software in this distribution under the [CDDL or GPL
- * Version 2] license."  If you don't indicate a single choice of license, a
- * recipient has the option to distribute your version of this file under
- * either the CDDL, the GPL Version 2 or to extend the choice of license to
- * its licensees as provided above.  However, if you add GPL Version 2 code
- * and therefore, elected the GPL Version 2 license, then the option applies
- * only if the new code is made subject to such option by the copyright
- * holder.
- */
-
-/**
- * Provides a streaming API to parse and generate
- * <a href="http://json.org/">JSON</a>.
- *
- * <p>
- * The streaming API consists of the interfaces
- * {@link javax.json.stream.JsonParser} and
- * {@link javax.json.stream.JsonGenerator}. The interface {@code JsonParser}
- * contains methods to parse JSON in a streaming way. The interface
- * {@code JsonGenerator} contains methods to write JSON to an output source
- * in a streaming way.
- *
- * <p>
- * {@code JsonParser} provides forward, read-only access to JSON data using the
- * pull parsing programming model. In this model the application code controls
- * the thread and calls methods in the parser interface to move the parser
- * forward or to obtain JSON data from the current state of the parser.
- *
- * <p>
- * {@code JsonGenerator} provides methods to write JSON to an output source.
- * The generator writes name/value pairs in JSON objects and values in JSON
- * arrays.
- * 
- * <p>
- * The streaming API is a low-level API designed to process large amounts of
- * JSON data efficiently. Other JSON frameworks (such as JSON binding) can be
- * implemented using this API.
- *
- * @since JSON Processing 1.0
- */
-package javax.json.stream;
