5
0
mirror of https://github.com/apache/sqoop.git synced 2025-05-05 06:42:01 +08:00

SQOOP-1926: Sqoop2: Add annotations for visibilty and compatibility guarantees

(Abraham Elmahrek via Jarek Jarcec Cecho)
This commit is contained in:
Jarek Jarcec Cecho 2015-01-21 07:43:16 -08:00
parent e41bc6e31f
commit 89f737b2ac
165 changed files with 862 additions and 10 deletions

View File

@ -23,6 +23,8 @@
import java.util.Map; import java.util.Map;
import java.util.ResourceBundle; import java.util.ResourceBundle;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.client.request.SqoopResourceRequests; import org.apache.sqoop.client.request.SqoopResourceRequests;
import org.apache.sqoop.common.Direction; import org.apache.sqoop.common.Direction;
import org.apache.sqoop.common.SqoopException; import org.apache.sqoop.common.SqoopException;
@ -49,6 +51,8 @@
* (Resources, Connector structures). Volatile structures (Links, Jobs) * (Resources, Connector structures). Volatile structures (Links, Jobs)
* are not cached. * are not cached.
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public class SqoopClient { public class SqoopClient {
/** /**

View File

@ -0,0 +1,73 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.sqoop.classification;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
/**
* Annotation to inform users of a package, class or method's intended audience.
* Currently the audience can be {@link Public}, {@link LimitedPrivate} or
* {@link Private}. <br>
* All public classes must have InterfaceAudience annotation. <br>
* <ul>
* <li>Public classes that are not marked with this annotation must be
* considered by default as {@link Private}.</li>
*
* <li>External applications must only use classes that are marked
* {@link Public}. Avoid using non public classes as these classes
* could be removed or change in incompatible ways.</li>
*
* <li>Sqoop project must only use classes that are marked
* {@link LimitedPrivate} or {@link Public}</li>
*
* <li> Methods may have a different annotation that it is more restrictive
* compared to the audience classification of the class. Example: A class
* might be {@link Public}, but a method may be {@link LimitedPrivate}
* </li></ul>
*/
@InterfaceAudience.Public
@InterfaceStability.Evolving
public class InterfaceAudience {
/**
* Intended for use by any project or application.
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
public @interface Public {};
/**
* Intended only for the project(s) specified in the annotation.
* For example, "Common", "HDFS", "MapReduce", "ZooKeeper", "HBase".
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
public @interface LimitedPrivate {
String[] value();
};
/**
* Intended for use only within Sqoop itself.
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
public @interface Private {};
private InterfaceAudience() {} // Audience can't exist on its own
}

View File

@ -0,0 +1,61 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.sqoop.classification;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
/**
* Annotation to inform users of how much to rely on a particular package,
* class or method not changing over time. Currently the stability can be
* {@link Stable}, {@link Evolving} or {@link Unstable}. <br>
*
* <ul><li>All classes that are annotated with {@link Public} or
* {@link LimitedPrivate} must have InterfaceStability annotation. </li>
* <li>Classes that are {@link Private} are to be considered unstable unless
* a different InterfaceStability annotation states otherwise.</li>
* <li>Incompatible changes must not be made to classes marked as stable.</li>
* </ul>
*/
@InterfaceAudience.Public
@InterfaceStability.Evolving
public class InterfaceStability {
/**
* Can evolve while retaining compatibility for minor release boundaries.;
* can break compatibility only at major release (ie. at m.0).
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
public @interface Stable {};
/**
* Evolving, but can break compatibility at minor release (i.e. m.x)
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
public @interface Evolving {};
/**
* No guarantee is provided as to reliability or stability across any
* level of release granularity.
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
public @interface Unstable {};
}

View File

@ -17,6 +17,9 @@
*/ */
package org.apache.sqoop.common; package org.apache.sqoop.common;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* Connectors will have configurations for FROM and TO. * Connectors will have configurations for FROM and TO.
* If the connector is being used to extract data FROM, * If the connector is being used to extract data FROM,
@ -24,6 +27,8 @@
* is being used to load data TO, then the connector type * is being used to load data TO, then the connector type
* will be TO. * will be TO.
*/ */
@InterfaceAudience.Public
@InterfaceStability.Evolving
public enum Direction { public enum Direction {
FROM, FROM,
TO TO

View File

@ -17,6 +17,11 @@
*/ */
package org.apache.sqoop.common; package org.apache.sqoop.common;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
@InterfaceAudience.Private
@InterfaceStability.Unstable
public enum DirectionError implements ErrorCode { public enum DirectionError implements ErrorCode {
/** An unknown error has occurred. */ /** An unknown error has occurred. */

View File

@ -17,12 +17,17 @@
*/ */
package org.apache.sqoop.common; package org.apache.sqoop.common;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* Defines an error-code contract. Sqoop exceptions use the error code to * Defines an error-code contract. Sqoop exceptions use the error code to
* communicate error information where possible. Each error code is associated * communicate error information where possible. Each error code is associated
* with default message that identifies the high level information related to * with default message that identifies the high level information related to
* the underlying error condition. * the underlying error condition.
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public interface ErrorCode { public interface ErrorCode {
/** /**

View File

@ -17,11 +17,16 @@
*/ */
package org.apache.sqoop.common; package org.apache.sqoop.common;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* Immutable context interface for key value pairs. * Immutable context interface for key value pairs.
* *
* Useful for configuration objects that are not allowed to change. * Useful for configuration objects that are not allowed to change.
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public interface ImmutableContext { public interface ImmutableContext {
/** /**

View File

@ -17,6 +17,9 @@
*/ */
package org.apache.sqoop.common; package org.apache.sqoop.common;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.regex.Matcher; import java.util.regex.Matcher;
@ -25,6 +28,8 @@
/** /**
* ImmutableContext implementation based on (Hash)Map. * ImmutableContext implementation based on (Hash)Map.
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public class MapContext implements ImmutableContext { public class MapContext implements ImmutableContext {
private final Map<String, String> options; private final Map<String, String> options;

View File

@ -17,9 +17,14 @@
*/ */
package org.apache.sqoop.common; package org.apache.sqoop.common;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* Mutable addition to immutable context. * Mutable addition to immutable context.
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public interface MutableContext extends ImmutableContext { public interface MutableContext extends ImmutableContext {
/** /**

View File

@ -17,6 +17,9 @@
*/ */
package org.apache.sqoop.common; package org.apache.sqoop.common;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
import java.util.Map; import java.util.Map;
@ -24,6 +27,8 @@
/** /**
* Mutable variant of context class for "special" usage * Mutable variant of context class for "special" usage
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public class MutableMapContext extends MapContext implements Iterable<Map.Entry<String, String>>, MutableContext { public class MutableMapContext extends MapContext implements Iterable<Map.Entry<String, String>>, MutableContext {
public MutableMapContext(Map<String, String> options) { public MutableMapContext(Map<String, String> options) {

View File

@ -17,6 +17,8 @@
*/ */
package org.apache.sqoop.common; package org.apache.sqoop.common;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.conf.Configuration;
import org.apache.sqoop.common.ImmutableContext; import org.apache.sqoop.common.ImmutableContext;
@ -25,6 +27,8 @@
* object. Each context property is prefixed with special prefix and loaded * object. Each context property is prefixed with special prefix and loaded
* directly. * directly.
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public class PrefixContext implements ImmutableContext { public class PrefixContext implements ImmutableContext {
Configuration configuration; Configuration configuration;

View File

@ -18,12 +18,17 @@
package org.apache.sqoop.common; package org.apache.sqoop.common;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* Base exception for Sqoop driver. This exception requires the specification * Base exception for Sqoop driver. This exception requires the specification
* of an error code for reference purposes. Where necessary the appropriate * of an error code for reference purposes. Where necessary the appropriate
* constructor can be used to pass in additional message beyond what is * constructor can be used to pass in additional message beyond what is
* specified by the error code and/or the causal exception. * specified by the error code and/or the causal exception.
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
@SuppressWarnings("serial") @SuppressWarnings("serial")
public class SqoopException extends RuntimeException { public class SqoopException extends RuntimeException {

View File

@ -17,6 +17,11 @@
*/ */
package org.apache.sqoop.common; package org.apache.sqoop.common;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
@InterfaceAudience.Private
@InterfaceStability.Unstable
public final class SqoopProtocolConstants { public final class SqoopProtocolConstants {
public static final String HEADER_SQOOP_ERROR_CODE = "sqoop-error-code"; public static final String HEADER_SQOOP_ERROR_CODE = "sqoop-error-code";

View File

@ -17,6 +17,11 @@
*/ */
package org.apache.sqoop.common; package org.apache.sqoop.common;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
@InterfaceAudience.Private
@InterfaceStability.Unstable
public enum SqoopResponseCode { public enum SqoopResponseCode {
SQOOP_1000("1000", "OK"), SQOOP_1000("1000", "OK"),

View File

@ -17,9 +17,14 @@
*/ */
package org.apache.sqoop.common; package org.apache.sqoop.common;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* Represents which Directions are supported. * Represents which Directions are supported.
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public class SupportedDirections implements Comparable<SupportedDirections> { public class SupportedDirections implements Comparable<SupportedDirections> {
private static final char SUPPORTED_DIRECTIONS_SEPARATOR = '/'; private static final char SUPPORTED_DIRECTIONS_SEPARATOR = '/';

View File

@ -17,12 +17,17 @@
*/ */
package org.apache.sqoop.common; package org.apache.sqoop.common;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import java.lang.annotation.*; import java.lang.annotation.*;
/** /**
* A package attribute that captures the version that was compiled. * A package attribute that captures the version that was compiled.
* Copied down from hadoop. All is same except name of interface. * Copied down from hadoop. All is same except name of interface.
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.PACKAGE) @Target(ElementType.PACKAGE)
public @interface VersionAnnotation { public @interface VersionAnnotation {

View File

@ -17,6 +17,11 @@
*/ */
package org.apache.sqoop.common; package org.apache.sqoop.common;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
@InterfaceAudience.Public
@InterfaceStability.Unstable
public final class VersionInfo { public final class VersionInfo {
private static Package myPackage; private static Package myPackage;

View File

@ -17,10 +17,15 @@
*/ */
package org.apache.sqoop.etl.io; package org.apache.sqoop.etl.io;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* An intermediate layer for passing data from the execution engine * An intermediate layer for passing data from the execution engine
* to the ETL engine. * to the ETL engine.
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public abstract class DataReader { public abstract class DataReader {
/** /**

View File

@ -17,10 +17,15 @@
*/ */
package org.apache.sqoop.etl.io; package org.apache.sqoop.etl.io;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* An intermediate layer for passing data from the ETL framework * An intermediate layer for passing data from the ETL framework
* to the MR framework. * to the MR framework.
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public abstract class DataWriter { public abstract class DataWriter {
/** /**

View File

@ -17,6 +17,8 @@
*/ */
package org.apache.sqoop.job.etl; package org.apache.sqoop.job.etl;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.common.ImmutableContext; import org.apache.sqoop.common.ImmutableContext;
import org.apache.sqoop.schema.Schema; import org.apache.sqoop.schema.Schema;
@ -25,6 +27,8 @@
* *
* This class is wrapping information if the run was successful or not. * This class is wrapping information if the run was successful or not.
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public class DestroyerContext extends TransferableContext { public class DestroyerContext extends TransferableContext {
private boolean success; private boolean success;

View File

@ -17,6 +17,8 @@
*/ */
package org.apache.sqoop.job.etl; package org.apache.sqoop.job.etl;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.common.ImmutableContext; import org.apache.sqoop.common.ImmutableContext;
import org.apache.sqoop.etl.io.DataWriter; import org.apache.sqoop.etl.io.DataWriter;
import org.apache.sqoop.schema.Schema; import org.apache.sqoop.schema.Schema;
@ -26,6 +28,8 @@
* *
* This class is wrapping writer object. * This class is wrapping writer object.
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public class ExtractorContext extends TransferableContext { public class ExtractorContext extends TransferableContext {
private final DataWriter writer; private final DataWriter writer;

View File

@ -17,6 +17,8 @@
*/ */
package org.apache.sqoop.job.etl; package org.apache.sqoop.job.etl;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.common.MutableContext; import org.apache.sqoop.common.MutableContext;
/** /**
@ -25,6 +27,8 @@
* *
* This class is returning mutable context instead of immutable. * This class is returning mutable context instead of immutable.
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public class InitializerContext extends TransferableContext { public class InitializerContext extends TransferableContext {
public InitializerContext(MutableContext context) { public InitializerContext(MutableContext context) {

View File

@ -17,6 +17,8 @@
*/ */
package org.apache.sqoop.job.etl; package org.apache.sqoop.job.etl;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.common.ImmutableContext; import org.apache.sqoop.common.ImmutableContext;
import org.apache.sqoop.etl.io.DataReader; import org.apache.sqoop.etl.io.DataReader;
import org.apache.sqoop.schema.Schema; import org.apache.sqoop.schema.Schema;
@ -26,6 +28,8 @@
* *
* This class is also wrapping reader object. * This class is also wrapping reader object.
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public class LoaderContext extends TransferableContext { public class LoaderContext extends TransferableContext {
private final DataReader reader; private final DataReader reader;

View File

@ -17,6 +17,8 @@
*/ */
package org.apache.sqoop.job.etl; package org.apache.sqoop.job.etl;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.common.ImmutableContext; import org.apache.sqoop.common.ImmutableContext;
import org.apache.sqoop.schema.Schema; import org.apache.sqoop.schema.Schema;
@ -25,6 +27,8 @@
* *
* This class is also wrapping number of maximal allowed partitions. * This class is also wrapping number of maximal allowed partitions.
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public class PartitionerContext extends TransferableContext { public class PartitionerContext extends TransferableContext {
private long maxPartitions; private long maxPartitions;

View File

@ -17,11 +17,15 @@
*/ */
package org.apache.sqoop.job.etl; package org.apache.sqoop.job.etl;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.common.ImmutableContext; import org.apache.sqoop.common.ImmutableContext;
/** /**
* Base context class for the {@link Transferable} components * Base context class for the {@link Transferable} components
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public abstract class TransferableContext { public abstract class TransferableContext {
ImmutableContext context; ImmutableContext context;

View File

@ -17,9 +17,14 @@
* limitations under the License. * limitations under the License.
*/ */
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* Marker class for the configurables supported in sqoop * Marker class for the configurables supported in sqoop
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public abstract class ConfigurableBean implements JsonBean { public abstract class ConfigurableBean implements JsonBean {
} }

View File

@ -28,6 +28,8 @@
import java.util.Map; import java.util.Map;
import java.util.ResourceBundle; import java.util.ResourceBundle;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.common.Direction; import org.apache.sqoop.common.Direction;
import org.apache.sqoop.model.MConfig; import org.apache.sqoop.model.MConfig;
import org.apache.sqoop.model.MConnector; import org.apache.sqoop.model.MConnector;
@ -41,6 +43,8 @@
* Json representation of the connector object * Json representation of the connector object
* *
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public class ConnectorBean extends ConfigurableBean { public class ConnectorBean extends ConfigurableBean {
// to represent the config and inputs with values // to represent the config and inputs with values

View File

@ -21,6 +21,8 @@
import java.util.Map; import java.util.Map;
import java.util.ResourceBundle; import java.util.ResourceBundle;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.model.MConnector; import org.apache.sqoop.model.MConnector;
import org.json.simple.JSONArray; import org.json.simple.JSONArray;
import org.json.simple.JSONObject; import org.json.simple.JSONObject;
@ -29,6 +31,8 @@
* Json representation of the connectors object * Json representation of the connectors object
* *
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public class ConnectorsBean extends ConnectorBean { public class ConnectorsBean extends ConnectorBean {
// to represent the config and inputs with values // to represent the config and inputs with values

View File

@ -25,6 +25,8 @@
import java.util.List; import java.util.List;
import java.util.ResourceBundle; import java.util.ResourceBundle;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.model.MConfig; import org.apache.sqoop.model.MConfig;
import org.apache.sqoop.model.MDriver; import org.apache.sqoop.model.MDriver;
import org.apache.sqoop.model.MDriverConfig; import org.apache.sqoop.model.MDriverConfig;
@ -33,6 +35,8 @@
/** /**
* Json representation of the driver * Json representation of the driver
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public class DriverBean extends ConfigurableBean { public class DriverBean extends ConfigurableBean {
public static final String CURRENT_DRIVER_VERSION = "1"; public static final String CURRENT_DRIVER_VERSION = "1";

View File

@ -17,6 +17,8 @@
*/ */
package org.apache.sqoop.json; package org.apache.sqoop.json;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.common.SqoopException; import org.apache.sqoop.common.SqoopException;
import org.apache.sqoop.json.util.SerializationError; import org.apache.sqoop.json.util.SerializationError;
import org.json.simple.JSONObject; import org.json.simple.JSONObject;
@ -28,6 +30,8 @@
/** /**
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public class JSONUtils { public class JSONUtils {
/** /**

View File

@ -27,6 +27,8 @@
import java.util.Map; import java.util.Map;
import java.util.ResourceBundle; import java.util.ResourceBundle;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.common.Direction; import org.apache.sqoop.common.Direction;
import org.apache.sqoop.model.MConfig; import org.apache.sqoop.model.MConfig;
import org.apache.sqoop.model.MDriverConfig; import org.apache.sqoop.model.MDriverConfig;
@ -39,6 +41,8 @@
/** /**
* Json representation of the job * Json representation of the job
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public class JobBean implements JsonBean { public class JobBean implements JsonBean {
static final String FROM_LINK_ID = "from-link-id"; static final String FROM_LINK_ID = "from-link-id";

View File

@ -19,6 +19,8 @@
import java.util.List; import java.util.List;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.model.MJob; import org.apache.sqoop.model.MJob;
import org.json.simple.JSONArray; import org.json.simple.JSONArray;
import org.json.simple.JSONObject; import org.json.simple.JSONObject;
@ -26,6 +28,8 @@
/** /**
* Json representation of the jobs * Json representation of the jobs
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public class JobsBean extends JobBean { public class JobsBean extends JobBean {
private static final String JOBS = "jobs"; private static final String JOBS = "jobs";

View File

@ -17,8 +17,12 @@
*/ */
package org.apache.sqoop.json; package org.apache.sqoop.json;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.json.simple.JSONObject; import org.json.simple.JSONObject;
@InterfaceAudience.Private
@InterfaceStability.Unstable
public interface JsonBean { public interface JsonBean {
// common JSON constants for the rest-api response // common JSON constants for the rest-api response

View File

@ -27,6 +27,8 @@
import java.util.Map; import java.util.Map;
import java.util.ResourceBundle; import java.util.ResourceBundle;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.model.MConfig; import org.apache.sqoop.model.MConfig;
import org.apache.sqoop.model.MLink; import org.apache.sqoop.model.MLink;
import org.apache.sqoop.model.MLinkConfig; import org.apache.sqoop.model.MLinkConfig;
@ -38,6 +40,8 @@
* server and client. Server might optionally send configs associated with the * server and client. Server might optionally send configs associated with the
* links to spare client of sending another HTTP requests to obtain them. * links to spare client of sending another HTTP requests to obtain them.
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public class LinkBean implements JsonBean { public class LinkBean implements JsonBean {
static final String CONNECTOR_ID = "connector-id"; static final String CONNECTOR_ID = "connector-id";

View File

@ -19,10 +19,14 @@
import java.util.List; import java.util.List;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.model.MLink; import org.apache.sqoop.model.MLink;
import org.json.simple.JSONArray; import org.json.simple.JSONArray;
import org.json.simple.JSONObject; import org.json.simple.JSONObject;
@InterfaceAudience.Private
@InterfaceStability.Unstable
public class LinksBean extends LinkBean { public class LinksBean extends LinkBean {
static final String LINKS = "links"; static final String LINKS = "links";

View File

@ -17,6 +17,8 @@
*/ */
package org.apache.sqoop.json; package org.apache.sqoop.json;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.json.util.SchemaSerialization; import org.apache.sqoop.json.util.SchemaSerialization;
import org.apache.sqoop.schema.Schema; import org.apache.sqoop.schema.Schema;
import org.json.simple.JSONObject; import org.json.simple.JSONObject;
@ -24,6 +26,8 @@
/** /**
* *
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public class SchemaBean implements JsonBean { public class SchemaBean implements JsonBean {
private Schema schema; private Schema schema;

View File

@ -26,6 +26,8 @@
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.model.MSubmission; import org.apache.sqoop.model.MSubmission;
import org.apache.sqoop.submission.SubmissionStatus; import org.apache.sqoop.submission.SubmissionStatus;
import org.apache.sqoop.submission.counter.Counter; import org.apache.sqoop.submission.counter.Counter;
@ -37,6 +39,8 @@
/** /**
* *
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public class SubmissionBean implements JsonBean { public class SubmissionBean implements JsonBean {
private static final String SUBMISSION = "submission"; private static final String SUBMISSION = "submission";

View File

@ -19,10 +19,14 @@
import java.util.List; import java.util.List;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.model.MSubmission; import org.apache.sqoop.model.MSubmission;
import org.json.simple.JSONArray; import org.json.simple.JSONArray;
import org.json.simple.JSONObject; import org.json.simple.JSONObject;
@InterfaceAudience.Private
@InterfaceStability.Unstable
public class SubmissionsBean extends SubmissionBean { public class SubmissionsBean extends SubmissionBean {
private static final String SUBMISSIONS = "submissions"; private static final String SUBMISSIONS = "submissions";

View File

@ -17,6 +17,8 @@
*/ */
package org.apache.sqoop.json; package org.apache.sqoop.json;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.common.SqoopException; import org.apache.sqoop.common.SqoopException;
import org.apache.sqoop.utils.ClassUtils; import org.apache.sqoop.utils.ClassUtils;
import org.json.simple.JSONArray; import org.json.simple.JSONArray;
@ -28,6 +30,8 @@
/** /**
* Transfer throwable instance as a throwable bean. * Transfer throwable instance as a throwable bean.
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public class ThrowableBean implements JsonBean { public class ThrowableBean implements JsonBean {
public static final String MESSAGE = "message"; public static final String MESSAGE = "message";

View File

@ -17,6 +17,8 @@
*/ */
package org.apache.sqoop.json; package org.apache.sqoop.json;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.validation.Message; import org.apache.sqoop.validation.Message;
import org.apache.sqoop.validation.Status; import org.apache.sqoop.validation.Status;
import org.apache.sqoop.validation.ConfigValidationResult; import org.apache.sqoop.validation.ConfigValidationResult;
@ -31,6 +33,8 @@
/** /**
* Serialize and transfer validation results (0..N). * Serialize and transfer validation results (0..N).
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public class ValidationResultBean implements JsonBean { public class ValidationResultBean implements JsonBean {
private static final String VALIDATION_RESULT = "validation-result"; private static final String VALIDATION_RESULT = "validation-result";

View File

@ -17,9 +17,13 @@
*/ */
package org.apache.sqoop.json; package org.apache.sqoop.json;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.json.simple.JSONArray; import org.json.simple.JSONArray;
import org.json.simple.JSONObject; import org.json.simple.JSONObject;
@InterfaceAudience.Private
@InterfaceStability.Unstable
public class VersionBean implements JsonBean { public class VersionBean implements JsonBean {
public static final String BUILD_VERSION = "build-version"; public static final String BUILD_VERSION = "build-version";

View File

@ -17,6 +17,8 @@
*/ */
package org.apache.sqoop.json.util; package org.apache.sqoop.json.util;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.utils.MapResourceBundle; import org.apache.sqoop.utils.MapResourceBundle;
import org.json.simple.JSONArray; import org.json.simple.JSONArray;
import org.json.simple.JSONObject; import org.json.simple.JSONObject;
@ -31,6 +33,8 @@
/** /**
* *
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public final class ConfigBundleSerialization { public final class ConfigBundleSerialization {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")

View File

@ -17,9 +17,14 @@
*/ */
package org.apache.sqoop.json.util; package org.apache.sqoop.json.util;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* Constants related to the configs * Constants related to the configs
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public class ConfigInputConstants { public class ConfigInputConstants {
public static final String CONFIG_ID = "id"; public static final String CONFIG_ID = "id";

View File

@ -18,6 +18,8 @@
package org.apache.sqoop.json.util; package org.apache.sqoop.json.util;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.common.SqoopException; import org.apache.sqoop.common.SqoopException;
import org.apache.sqoop.model.MBooleanInput; import org.apache.sqoop.model.MBooleanInput;
import org.apache.sqoop.model.MEnumInput; import org.apache.sqoop.model.MEnumInput;
@ -38,6 +40,8 @@
/** /**
* Convenient static methods for serializing config and input objects. * Convenient static methods for serializing config and input objects.
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public final class ConfigInputSerialization { public final class ConfigInputSerialization {
/** /**

View File

@ -19,6 +19,8 @@
import java.util.HashSet; import java.util.HashSet;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.schema.NullSchema; import org.apache.sqoop.schema.NullSchema;
import org.apache.sqoop.schema.Schema; import org.apache.sqoop.schema.Schema;
import org.apache.sqoop.schema.type.AbstractComplexListType; import org.apache.sqoop.schema.type.AbstractComplexListType;
@ -46,6 +48,8 @@
/** /**
* *
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public class SchemaSerialization { public class SchemaSerialization {
// common attributes of all column types // common attributes of all column types

View File

@ -17,8 +17,12 @@
*/ */
package org.apache.sqoop.json.util; package org.apache.sqoop.json.util;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.common.ErrorCode; import org.apache.sqoop.common.ErrorCode;
@InterfaceAudience.Private
@InterfaceStability.Unstable
public enum SerializationError implements ErrorCode { public enum SerializationError implements ErrorCode {
SERIALIZATION_001("Attempt to pass a non-map object to MAP type."), SERIALIZATION_001("Attempt to pass a non-map object to MAP type."),

View File

@ -17,12 +17,17 @@
*/ */
package org.apache.sqoop.model; package org.apache.sqoop.model;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
/** /**
* Denote config in Configuration class * Denote config in Configuration class
*/ */
@InterfaceAudience.Public
@InterfaceStability.Evolving
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
public @interface Config { public @interface Config {
/** /**

View File

@ -17,6 +17,9 @@
*/ */
package org.apache.sqoop.model; package org.apache.sqoop.model;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import java.lang.annotation.ElementType; import java.lang.annotation.ElementType;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
@ -25,6 +28,8 @@
/** /**
* Denote configuration class * Denote configuration class
*/ */
@InterfaceAudience.Public
@InterfaceStability.Evolving
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE) @Target(ElementType.TYPE)
public @interface ConfigClass { public @interface ConfigClass {

View File

@ -18,6 +18,8 @@
package org.apache.sqoop.model; package org.apache.sqoop.model;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.common.SqoopException; import org.apache.sqoop.common.SqoopException;
import org.apache.sqoop.json.JSONUtils; import org.apache.sqoop.json.JSONUtils;
import org.apache.sqoop.utils.ClassUtils; import org.apache.sqoop.utils.ClassUtils;
@ -41,6 +43,8 @@
* *
* TODO: This class should see some overhaul into more reusable code, especially expose and re-use the methods at the end. * TODO: This class should see some overhaul into more reusable code, especially expose and re-use the methods at the end.
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public class ConfigUtils { public class ConfigUtils {
/** /**

View File

@ -17,9 +17,14 @@
*/ */
package org.apache.sqoop.model; package org.apache.sqoop.model;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* Marker class that identifies the Configurables in the Sqoop system * Marker class that identifies the Configurables in the Sqoop system
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public abstract class Configurable extends MPersistableEntity implements MClonable { public abstract class Configurable extends MPersistableEntity implements MClonable {
} }

View File

@ -17,6 +17,9 @@
*/ */
package org.apache.sqoop.model; package org.apache.sqoop.model;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import java.lang.annotation.ElementType; import java.lang.annotation.ElementType;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
@ -27,6 +30,8 @@
* Each class that is used a configuration group object, the connector developer * Each class that is used a configuration group object, the connector developer
* is expected to provide the inputs needed for this annotation * is expected to provide the inputs needed for this annotation
*/ */
@InterfaceAudience.Public
@InterfaceStability.Evolving
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE) @Target(ElementType.TYPE)
public @interface ConfigurationClass { public @interface ConfigurationClass {

View File

@ -17,6 +17,9 @@
*/ */
package org.apache.sqoop.model; package org.apache.sqoop.model;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import java.lang.annotation.ElementType; import java.lang.annotation.ElementType;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
@ -26,6 +29,8 @@
* Field annotation. Each field that user might change in configuration object * Field annotation. Each field that user might change in configuration object
* need to have this annotation. * need to have this annotation.
*/ */
@InterfaceAudience.Public
@InterfaceStability.Evolving
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD) @Target(ElementType.FIELD)
public @interface Input { public @interface Input {

View File

@ -17,12 +17,17 @@
*/ */
package org.apache.sqoop.model; package org.apache.sqoop.model;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import java.util.Date; import java.util.Date;
/** /**
* Accountable entity provides additional fields that might help with identifying * Accountable entity provides additional fields that might help with identifying
* what and when has happened. * what and when has happened.
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
abstract public class MAccountableEntity extends MValidatedElement { abstract public class MAccountableEntity extends MValidatedElement {
private final boolean DEFAULT_ENABLED = true; private final boolean DEFAULT_ENABLED = true;

View File

@ -17,9 +17,14 @@
*/ */
package org.apache.sqoop.model; package org.apache.sqoop.model;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* Represents a <tt>Boolean</tt> input. * Represents a <tt>Boolean</tt> input.
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public class MBooleanInput extends MInput<Boolean> { public class MBooleanInput extends MInput<Boolean> {
public MBooleanInput(String name, boolean sensitive) { public MBooleanInput(String name, boolean sensitive) {

View File

@ -17,6 +17,11 @@
*/ */
package org.apache.sqoop.model; package org.apache.sqoop.model;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
@InterfaceAudience.Private
@InterfaceStability.Unstable
public interface MClonable { public interface MClonable {
/** /**
* Clone object * Clone object

View File

@ -17,6 +17,8 @@
*/ */
package org.apache.sqoop.model; package org.apache.sqoop.model;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.common.SqoopException; import org.apache.sqoop.common.SqoopException;
import java.util.ArrayList; import java.util.ArrayList;
@ -27,6 +29,8 @@
* input gathering process to be broken down into multiple steps that can be * input gathering process to be broken down into multiple steps that can be
* then paged through by the user interface. * then paged through by the user interface.
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public final class MConfig extends MValidatedElement implements MClonable { public final class MConfig extends MValidatedElement implements MClonable {
private final List<MInput<?>> inputs; private final List<MInput<?>> inputs;

View File

@ -17,6 +17,8 @@
*/ */
package org.apache.sqoop.model; package org.apache.sqoop.model;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.common.SqoopException; import org.apache.sqoop.common.SqoopException;
import java.util.ArrayList; import java.util.ArrayList;
@ -25,6 +27,8 @@
/** /**
* Arbitrary list of config objects. * Arbitrary list of config objects.
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public class MConfigList implements MClonable { public class MConfigList implements MClonable {
private final List<MConfig> configObjects; private final List<MConfig> configObjects;

View File

@ -17,9 +17,14 @@
*/ */
package org.apache.sqoop.model; package org.apache.sqoop.model;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* Represents the various config types supported by the system. * Represents the various config types supported by the system.
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public enum MConfigType { public enum MConfigType {
/** Unknown config type */ /** Unknown config type */

View File

@ -17,9 +17,14 @@
*/ */
package org.apache.sqoop.model; package org.apache.sqoop.model;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* Represents the sqoop entities that can own configs * Represents the sqoop entities that can own configs
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public enum MConfigurableType { public enum MConfigurableType {
/** Connector as a owner of config keys */ /** Connector as a owner of config keys */

View File

@ -17,6 +17,8 @@
*/ */
package org.apache.sqoop.model; package org.apache.sqoop.model;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.common.Direction; import org.apache.sqoop.common.Direction;
import org.apache.sqoop.common.DirectionError; import org.apache.sqoop.common.DirectionError;
import org.apache.sqoop.common.SqoopException; import org.apache.sqoop.common.SqoopException;
@ -27,6 +29,8 @@
* that identifies connector in the repository, unique human readable name, * that identifies connector in the repository, unique human readable name,
* corresponding name and all configs to support the from and to data sources * corresponding name and all configs to support the from and to data sources
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public final class MConnector extends Configurable { public final class MConnector extends Configurable {
private final String uniqueName; private final String uniqueName;

View File

@ -18,9 +18,14 @@
package org.apache.sqoop.model; package org.apache.sqoop.model;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* Describes the configs associated with the {@link Driver} for executing sqoop jobs. * Describes the configs associated with the {@link Driver} for executing sqoop jobs.
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public final class MDriver extends Configurable { public final class MDriver extends Configurable {
public static final String DRIVER_NAME = "SqoopDriver"; public static final String DRIVER_NAME = "SqoopDriver";

View File

@ -17,14 +17,18 @@
*/ */
package org.apache.sqoop.model; package org.apache.sqoop.model;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import java.util.List; import java.util.List;
/** /**
* Config describing all required information for the driver * Config describing all required information for the driver
* NOTE: It extends a config list since {@link MToConfig} could consist of a related config groups * NOTE: It extends a config list since {@link MToConfig} could consist of a related config groups
* In future this could be simplified to hold a single list of all configs for the driver * In future this could be simplified to hold a single list of all configs for the driver
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public class MDriverConfig extends MConfigList { public class MDriverConfig extends MConfigList {
public MDriverConfig(List<MConfig> configs) { public MDriverConfig(List<MConfig> configs) {
super(configs, MConfigType.JOB); super(configs, MConfigType.JOB);

View File

@ -18,6 +18,8 @@
package org.apache.sqoop.model; package org.apache.sqoop.model;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.common.SqoopException; import org.apache.sqoop.common.SqoopException;
import java.util.Arrays; import java.util.Arrays;
@ -25,6 +27,8 @@
/** /**
* *
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public class MEnumInput extends MInput<String> { public class MEnumInput extends MInput<String> {
/** /**

View File

@ -17,14 +17,18 @@
*/ */
package org.apache.sqoop.model; package org.apache.sqoop.model;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import java.util.List; import java.util.List;
/** /**
* Config describing all required information to build the FROM part of the job * Config describing all required information to build the FROM part of the job
* NOTE: It extends a config list since {@link MFromConfig} could consist of a related config groups * NOTE: It extends a config list since {@link MFromConfig} could consist of a related config groups
* In future this could be simplified to hold a single list of all configs for the FROM object * In future this could be simplified to hold a single list of all configs for the FROM object
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public class MFromConfig extends MConfigList { public class MFromConfig extends MConfigList {
public MFromConfig(List<MConfig> configs) { public MFromConfig(List<MConfig> configs) {
super(configs, MConfigType.JOB); super(configs, MConfigType.JOB);

View File

@ -17,12 +17,17 @@
*/ */
package org.apache.sqoop.model; package org.apache.sqoop.model;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* Represents a parameter input used by the connector for creating a link * Represents a parameter input used by the connector for creating a link
* or a job object. * or a job object.
* @param <T> the value type associated with this parameter * @param <T> the value type associated with this parameter
* @param boolean whether or not the field contains sensitive information * @param boolean whether or not the field contains sensitive information
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public abstract class MInput<T> extends MValidatedElement implements MClonable { public abstract class MInput<T> extends MValidatedElement implements MClonable {
private final boolean sensitive; private final boolean sensitive;

View File

@ -17,9 +17,14 @@
*/ */
package org.apache.sqoop.model; package org.apache.sqoop.model;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* Represents the various input types supported by the system. * Represents the various input types supported by the system.
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public enum MInputType { public enum MInputType {
/** Unknown input type */ /** Unknown input type */

View File

@ -17,11 +17,16 @@
*/ */
package org.apache.sqoop.model; package org.apache.sqoop.model;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* Integer base user input. * Integer base user input.
* *
* This input is able to process empty (NULL) value. * This input is able to process empty (NULL) value.
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public class MIntegerInput extends MInput<Integer> { public class MIntegerInput extends MInput<Integer> {
public MIntegerInput(String name, boolean sensitive) { public MIntegerInput(String name, boolean sensitive) {

View File

@ -17,6 +17,8 @@
*/ */
package org.apache.sqoop.model; package org.apache.sqoop.model;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.common.Direction; import org.apache.sqoop.common.Direction;
import org.apache.sqoop.common.DirectionError; import org.apache.sqoop.common.DirectionError;
import org.apache.sqoop.common.SqoopException; import org.apache.sqoop.common.SqoopException;
@ -25,6 +27,8 @@
* Model describing entire job object including the from/to and driver config information * Model describing entire job object including the from/to and driver config information
* to execute the job * to execute the job
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public class MJob extends MAccountableEntity implements MClonable { public class MJob extends MAccountableEntity implements MClonable {
/** /**
* NOTE : Job object do not immediately depend on connector as there is indirect * NOTE : Job object do not immediately depend on connector as there is indirect

View File

@ -17,9 +17,14 @@
*/ */
package org.apache.sqoop.model; package org.apache.sqoop.model;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* Model describing the link object and its corresponding configs * Model describing the link object and its corresponding configs
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public class MLink extends MAccountableEntity implements MClonable { public class MLink extends MAccountableEntity implements MClonable {
private long connectorId; private long connectorId;
// NOTE: we hold this in the model for easy access to the link config object, it might as well be retrieved on the fly using the connectorId // NOTE: we hold this in the model for easy access to the link config object, it might as well be retrieved on the fly using the connectorId

View File

@ -17,6 +17,9 @@
*/ */
package org.apache.sqoop.model; package org.apache.sqoop.model;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import java.util.List; import java.util.List;
/** /**
@ -24,6 +27,8 @@
* NOTE: It extends a config list since {@link MLink} could consist of a related config groups * NOTE: It extends a config list since {@link MLink} could consist of a related config groups
* In future this could be simplified to hold a single list of all configs for the link object * In future this could be simplified to hold a single list of all configs for the link object
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public class MLinkConfig extends MConfigList { public class MLinkConfig extends MConfigList {
public MLinkConfig(List<MConfig> configs) { public MLinkConfig(List<MConfig> configs) {

View File

@ -21,8 +21,12 @@
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.utils.UrlSafeUtils; import org.apache.sqoop.utils.UrlSafeUtils;
@InterfaceAudience.Public
@InterfaceStability.Unstable
public final class MMapInput extends MInput<Map<String, String>> { public final class MMapInput extends MInput<Map<String, String>> {
public MMapInput(String name, boolean sensitive) { public MMapInput(String name, boolean sensitive) {

View File

@ -17,9 +17,14 @@
*/ */
package org.apache.sqoop.model; package org.apache.sqoop.model;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* Represents an element of metadata used by the connector. * Represents an element of metadata used by the connector.
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public abstract class MNamedElement extends MPersistableEntity { public abstract class MNamedElement extends MPersistableEntity {
private static final String LABEL_KEY_SUFFIX = ".label"; private static final String LABEL_KEY_SUFFIX = ".label";
private static final String HELP_KEY_SUFFIX = ".help"; private static final String HELP_KEY_SUFFIX = ".help";

View File

@ -17,9 +17,14 @@
*/ */
package org.apache.sqoop.model; package org.apache.sqoop.model;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* Represents a persistable metadata entity. * Represents a persistable metadata entity.
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public abstract class MPersistableEntity { public abstract class MPersistableEntity {
public static final long PERSISTANCE_ID_DEFAULT = -1L; public static final long PERSISTANCE_ID_DEFAULT = -1L;

View File

@ -17,6 +17,8 @@
*/ */
package org.apache.sqoop.model; package org.apache.sqoop.model;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.utils.UrlSafeUtils; import org.apache.sqoop.utils.UrlSafeUtils;
/** /**
@ -25,6 +27,8 @@
* from user-view. This is helpful for creating input strings that represent * from user-view. This is helpful for creating input strings that represent
* sensitive information such as passwords. * sensitive information such as passwords.
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public final class MStringInput extends MInput<String> { public final class MStringInput extends MInput<String> {
private final short maxLength; private final short maxLength;

View File

@ -17,6 +17,8 @@
*/ */
package org.apache.sqoop.model; package org.apache.sqoop.model;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.schema.Schema; import org.apache.sqoop.schema.Schema;
import org.apache.sqoop.submission.SubmissionStatus; import org.apache.sqoop.submission.SubmissionStatus;
import org.apache.sqoop.submission.counter.Counters; import org.apache.sqoop.submission.counter.Counters;
@ -29,6 +31,8 @@
* Please note that not all properties are persisted in repository at the * Please note that not all properties are persisted in repository at the
* moment. * moment.
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public class MSubmission extends MAccountableEntity { public class MSubmission extends MAccountableEntity {
/** /**

View File

@ -17,14 +17,18 @@
*/ */
package org.apache.sqoop.model; package org.apache.sqoop.model;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import java.util.List; import java.util.List;
/** /**
* Config describing all required information to build the TO part of the job * Config describing all required information to build the TO part of the job
* NOTE: It extends a config list since {@link MToConfig} could consist of a related config groups * NOTE: It extends a config list since {@link MToConfig} could consist of a related config groups
* In future this could be simplified to hold a single list of all configs for the TO object * In future this could be simplified to hold a single list of all configs for the TO object
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public class MToConfig extends MConfigList { public class MToConfig extends MConfigList {
public MToConfig(List<MConfig> configs) { public MToConfig(List<MConfig> configs) {
super(configs, MConfigType.JOB); super(configs, MConfigType.JOB);

View File

@ -17,6 +17,8 @@
*/ */
package org.apache.sqoop.model; package org.apache.sqoop.model;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.validation.Message; import org.apache.sqoop.validation.Message;
import org.apache.sqoop.validation.Status; import org.apache.sqoop.validation.Status;
@ -26,6 +28,8 @@
/** /**
* Element that can have associated validation messages (0..N). * Element that can have associated validation messages (0..N).
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public abstract class MValidatedElement extends MNamedElement { public abstract class MValidatedElement extends MNamedElement {
/** /**

View File

@ -17,11 +17,15 @@
*/ */
package org.apache.sqoop.model; package org.apache.sqoop.model;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.common.ErrorCode; import org.apache.sqoop.common.ErrorCode;
/** /**
* *
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public enum ModelError implements ErrorCode { public enum ModelError implements ErrorCode {
MODEL_001("Attempt to pass two different set of MConfigs for single job type."), MODEL_001("Attempt to pass two different set of MConfigs for single job type."),

View File

@ -17,9 +17,14 @@
*/ */
package org.apache.sqoop.model; package org.apache.sqoop.model;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
*Represents the job submission error *Represents the job submission error
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public class SubmissionError { public class SubmissionError {
/** /**

View File

@ -17,6 +17,8 @@
*/ */
package org.apache.sqoop.model; package org.apache.sqoop.model;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.validation.validators.AbstractValidator; import org.apache.sqoop.validation.validators.AbstractValidator;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
@ -31,6 +33,8 @@
* To specify string parameter call: * To specify string parameter call:
* @Validator(value = ClassName.class, strArg = "Hello World!") * @Validator(value = ClassName.class, strArg = "Hello World!")
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
public @interface Validator { public @interface Validator {
/** /**

View File

@ -17,12 +17,16 @@
*/ */
package org.apache.sqoop.schema; package org.apache.sqoop.schema;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.schema.type.Binary; import org.apache.sqoop.schema.type.Binary;
/*** /***
* Schema holding a single field of Binary data Used to support connectors to * Schema holding a single field of Binary data Used to support connectors to
* schemaless / unstructured systems Such as HDFS or Kafka * schemaless / unstructured systems Such as HDFS or Kafka
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public class ByteArraySchema extends Schema { public class ByteArraySchema extends Schema {
private static final String BYTE_ARRAY_SCHEMA_NAME = "ByteArraySchema"; private static final String BYTE_ARRAY_SCHEMA_NAME = "ByteArraySchema";

View File

@ -17,6 +17,11 @@
*/ */
package org.apache.sqoop.schema; package org.apache.sqoop.schema;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
@InterfaceAudience.Public
@InterfaceStability.Unstable
public class NullSchema extends Schema { public class NullSchema extends Schema {
private static final String NULL_SCHEMA_NAME = "NullSchema"; private static final String NULL_SCHEMA_NAME = "NullSchema";

View File

@ -18,6 +18,8 @@
package org.apache.sqoop.schema; package org.apache.sqoop.schema;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.common.SqoopException; import org.apache.sqoop.common.SqoopException;
import org.apache.sqoop.schema.type.Column; import org.apache.sqoop.schema.type.Column;
@ -33,6 +35,8 @@
* Schema represents the data fields that are transferred between {@link #From} * Schema represents the data fields that are transferred between {@link #From}
* and {@link #To} * and {@link #To}
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public class Schema { public class Schema {
/** /**

View File

@ -17,11 +17,15 @@
*/ */
package org.apache.sqoop.schema; package org.apache.sqoop.schema;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.common.ErrorCode; import org.apache.sqoop.common.ErrorCode;
/** /**
* *
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public enum SchemaError implements ErrorCode { public enum SchemaError implements ErrorCode {
SCHEMA_0000("Unknown error"), SCHEMA_0000("Unknown error"),

View File

@ -17,6 +17,9 @@
*/ */
package org.apache.sqoop.schema; package org.apache.sqoop.schema;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* The order of the matching options here indicates an order of preference * The order of the matching options here indicates an order of preference
* if it is possible to use both NAME and LOCATION matching options, we will prefer NAME * if it is possible to use both NAME and LOCATION matching options, we will prefer NAME
@ -31,6 +34,8 @@
* *
* USER_DEFINED - not implemented yet. * USER_DEFINED - not implemented yet.
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public enum SchemaMatchOption { public enum SchemaMatchOption {
NAME, NAME,
LOCATION, LOCATION,

View File

@ -17,9 +17,14 @@
*/ */
package org.apache.sqoop.schema.type; package org.apache.sqoop.schema.type;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* Complex types that can have nested data as a map or list structure * Complex types that can have nested data as a map or list structure
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public abstract class AbstractComplexListType extends AbstractComplexType { public abstract class AbstractComplexListType extends AbstractComplexType {
// represents the type of the list elements // represents the type of the list elements

View File

@ -17,9 +17,14 @@
*/ */
package org.apache.sqoop.schema.type; package org.apache.sqoop.schema.type;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* Complex types that can have nested data as a map or list structure * Complex types that can have nested data as a map or list structure
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public abstract class AbstractComplexType extends Column { public abstract class AbstractComplexType extends Column {
public AbstractComplexType(String name) { public AbstractComplexType(String name) {

View File

@ -17,9 +17,14 @@
*/ */
package org.apache.sqoop.schema.type; package org.apache.sqoop.schema.type;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* Any time or date related data type. * Any time or date related data type.
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public abstract class AbstractDateTime extends Column { public abstract class AbstractDateTime extends Column {
protected AbstractDateTime(String name) { protected AbstractDateTime(String name) {

View File

@ -17,9 +17,14 @@
*/ */
package org.apache.sqoop.schema.type; package org.apache.sqoop.schema.type;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* Any type related to number. * Any type related to number.
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public abstract class AbstractNumber extends AbstractPrimitiveType { public abstract class AbstractNumber extends AbstractPrimitiveType {
protected AbstractNumber(String name) { protected AbstractNumber(String name) {

View File

@ -17,9 +17,14 @@
*/ */
package org.apache.sqoop.schema.type; package org.apache.sqoop.schema.type;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* Primitive type for column * Primitive type for column
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public abstract class AbstractPrimitiveType extends Column { public abstract class AbstractPrimitiveType extends Column {
public AbstractPrimitiveType(String name) { public AbstractPrimitiveType(String name) {

View File

@ -17,9 +17,14 @@
*/ */
package org.apache.sqoop.schema.type; package org.apache.sqoop.schema.type;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* Any type that is encoding character (or byte) array. * Any type that is encoding character (or byte) array.
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public abstract class AbstractString extends AbstractPrimitiveType { public abstract class AbstractString extends AbstractPrimitiveType {
/** /**

View File

@ -17,11 +17,16 @@
*/ */
package org.apache.sqoop.schema.type; package org.apache.sqoop.schema.type;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* Array contains multiple values of the same type. * Array contains multiple values of the same type.
* *
* JDBC Types: array * JDBC Types: array
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public class Array extends AbstractComplexListType { public class Array extends AbstractComplexListType {
/** /**

View File

@ -17,11 +17,16 @@
*/ */
package org.apache.sqoop.schema.type; package org.apache.sqoop.schema.type;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* Binary type can contain any binary value (images, text, ...). * Binary type can contain any binary value (images, text, ...).
* *
* JDBC Types: blob, binary, varbinary * JDBC Types: blob, binary, varbinary
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public class Binary extends AbstractString { public class Binary extends AbstractString {
public Binary(String name) { public Binary(String name) {

View File

@ -17,11 +17,16 @@
*/ */
package org.apache.sqoop.schema.type; package org.apache.sqoop.schema.type;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* True/False value. * True/False value.
* *
* JDBC Types: bit, boolean * JDBC Types: bit, boolean
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public class Bit extends Column { public class Bit extends Column {
public Bit(String name) { public Bit(String name) {

View File

@ -18,12 +18,16 @@
package org.apache.sqoop.schema.type; package org.apache.sqoop.schema.type;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import org.apache.sqoop.common.SqoopException; import org.apache.sqoop.common.SqoopException;
import org.apache.sqoop.schema.SchemaError; import org.apache.sqoop.schema.SchemaError;
/** /**
* Base class for all the supported types in the Sqoop {@link #Schema} * Base class for all the supported types in the Sqoop {@link #Schema}
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public abstract class Column { public abstract class Column {
/** /**

View File

@ -17,9 +17,14 @@
*/ */
package org.apache.sqoop.schema.type; package org.apache.sqoop.schema.type;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* All {@link #Column} types supported by Sqoop. * All {@link #Column} types supported by Sqoop.
*/ */
@InterfaceAudience.Private
@InterfaceStability.Unstable
public enum ColumnType { public enum ColumnType {
ARRAY, ARRAY,
BINARY, BINARY,

View File

@ -17,11 +17,16 @@
*/ */
package org.apache.sqoop.schema.type; package org.apache.sqoop.schema.type;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* Date (year, month, day). * Date (year, month, day).
* *
* JDBC Types: date * JDBC Types: date
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public class Date extends AbstractDateTime { public class Date extends AbstractDateTime {
public Date(String name) { public Date(String name) {

View File

@ -17,11 +17,16 @@
*/ */
package org.apache.sqoop.schema.type; package org.apache.sqoop.schema.type;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* Date and time information together. * Date and time information together.
* *
* JDBC Types: datetime, timestamp * JDBC Types: datetime, timestamp
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public class DateTime extends AbstractDateTime { public class DateTime extends AbstractDateTime {
/** /**

View File

@ -17,11 +17,16 @@
*/ */
package org.apache.sqoop.schema.type; package org.apache.sqoop.schema.type;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
/** /**
* Fixed point number with configurable precision and scale. * Fixed point number with configurable precision and scale.
* *
* JDBC Types: numeric, decimal * JDBC Types: numeric, decimal
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public class Decimal extends AbstractNumber { public class Decimal extends AbstractNumber {
/** /**

View File

@ -17,6 +17,9 @@
*/ */
package org.apache.sqoop.schema.type; package org.apache.sqoop.schema.type;
import org.apache.sqoop.classification.InterfaceAudience;
import org.apache.sqoop.classification.InterfaceStability;
import java.util.Set; import java.util.Set;
import java.util.HashSet; import java.util.HashSet;
@ -25,7 +28,8 @@
* *
* JDBC Types: enum * JDBC Types: enum
*/ */
@InterfaceAudience.Public
@InterfaceStability.Unstable
public class Enum extends Column { public class Enum extends Column {
// The options set contains the possible values for the Enum // The options set contains the possible values for the Enum

Some files were not shown because too many files have changed in this diff Show More