diff --git a/client/src/main/java/org/apache/sqoop/client/SqoopClient.java b/client/src/main/java/org/apache/sqoop/client/SqoopClient.java index e1f009cd..6efa0163 100644 --- a/client/src/main/java/org/apache/sqoop/client/SqoopClient.java +++ b/client/src/main/java/org/apache/sqoop/client/SqoopClient.java @@ -23,6 +23,8 @@ import java.util.Map; 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.common.Direction; import org.apache.sqoop.common.SqoopException; @@ -49,6 +51,8 @@ * (Resources, Connector structures). Volatile structures (Links, Jobs) * are not cached. */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class SqoopClient { /** diff --git a/common/src/main/java/org/apache/sqoop/classification/InterfaceAudience.java b/common/src/main/java/org/apache/sqoop/classification/InterfaceAudience.java new file mode 100644 index 00000000..3cfb5f48 --- /dev/null +++ b/common/src/main/java/org/apache/sqoop/classification/InterfaceAudience.java @@ -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}.
+ * All public classes must have InterfaceAudience annotation.
+ * + */ +@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 +} \ No newline at end of file diff --git a/common/src/main/java/org/apache/sqoop/classification/InterfaceStability.java b/common/src/main/java/org/apache/sqoop/classification/InterfaceStability.java new file mode 100644 index 00000000..29fba896 --- /dev/null +++ b/common/src/main/java/org/apache/sqoop/classification/InterfaceStability.java @@ -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}.
+ * + * + */ +@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 {}; +} \ No newline at end of file diff --git a/common/src/main/java/org/apache/sqoop/common/Direction.java b/common/src/main/java/org/apache/sqoop/common/Direction.java index 1576b966..44c53bc9 100644 --- a/common/src/main/java/org/apache/sqoop/common/Direction.java +++ b/common/src/main/java/org/apache/sqoop/common/Direction.java @@ -17,6 +17,9 @@ */ 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. * 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 * will be TO. */ +@InterfaceAudience.Public +@InterfaceStability.Evolving public enum Direction { FROM, TO diff --git a/common/src/main/java/org/apache/sqoop/common/DirectionError.java b/common/src/main/java/org/apache/sqoop/common/DirectionError.java index 288c9544..425d4cbb 100644 --- a/common/src/main/java/org/apache/sqoop/common/DirectionError.java +++ b/common/src/main/java/org/apache/sqoop/common/DirectionError.java @@ -17,6 +17,11 @@ */ 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 { /** An unknown error has occurred. */ diff --git a/common/src/main/java/org/apache/sqoop/common/ErrorCode.java b/common/src/main/java/org/apache/sqoop/common/ErrorCode.java index 0458a579..d8f9d4b3 100644 --- a/common/src/main/java/org/apache/sqoop/common/ErrorCode.java +++ b/common/src/main/java/org/apache/sqoop/common/ErrorCode.java @@ -17,12 +17,17 @@ */ 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 * communicate error information where possible. Each error code is associated * with default message that identifies the high level information related to * the underlying error condition. */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public interface ErrorCode { /** diff --git a/common/src/main/java/org/apache/sqoop/common/ImmutableContext.java b/common/src/main/java/org/apache/sqoop/common/ImmutableContext.java index 69f3a03f..7eed27f0 100644 --- a/common/src/main/java/org/apache/sqoop/common/ImmutableContext.java +++ b/common/src/main/java/org/apache/sqoop/common/ImmutableContext.java @@ -17,11 +17,16 @@ */ package org.apache.sqoop.common; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + /** * Immutable context interface for key value pairs. * * Useful for configuration objects that are not allowed to change. */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public interface ImmutableContext { /** diff --git a/common/src/main/java/org/apache/sqoop/common/MapContext.java b/common/src/main/java/org/apache/sqoop/common/MapContext.java index d1f9420e..d23ff1ac 100644 --- a/common/src/main/java/org/apache/sqoop/common/MapContext.java +++ b/common/src/main/java/org/apache/sqoop/common/MapContext.java @@ -17,6 +17,9 @@ */ package org.apache.sqoop.common; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + import java.util.HashMap; import java.util.Map; import java.util.regex.Matcher; @@ -25,6 +28,8 @@ /** * ImmutableContext implementation based on (Hash)Map. */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class MapContext implements ImmutableContext { private final Map options; diff --git a/common/src/main/java/org/apache/sqoop/common/MutableContext.java b/common/src/main/java/org/apache/sqoop/common/MutableContext.java index ddf8af00..272343f1 100644 --- a/common/src/main/java/org/apache/sqoop/common/MutableContext.java +++ b/common/src/main/java/org/apache/sqoop/common/MutableContext.java @@ -17,9 +17,14 @@ */ package org.apache.sqoop.common; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + /** * Mutable addition to immutable context. */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public interface MutableContext extends ImmutableContext { /** diff --git a/common/src/main/java/org/apache/sqoop/common/MutableMapContext.java b/common/src/main/java/org/apache/sqoop/common/MutableMapContext.java index bb03ec05..61751bf5 100644 --- a/common/src/main/java/org/apache/sqoop/common/MutableMapContext.java +++ b/common/src/main/java/org/apache/sqoop/common/MutableMapContext.java @@ -17,6 +17,9 @@ */ package org.apache.sqoop.common; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + import java.util.HashMap; import java.util.Iterator; import java.util.Map; @@ -24,6 +27,8 @@ /** * Mutable variant of context class for "special" usage */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class MutableMapContext extends MapContext implements Iterable>, MutableContext { public MutableMapContext(Map options) { diff --git a/common/src/main/java/org/apache/sqoop/common/PrefixContext.java b/common/src/main/java/org/apache/sqoop/common/PrefixContext.java index 6434e6d6..8d338614 100644 --- a/common/src/main/java/org/apache/sqoop/common/PrefixContext.java +++ b/common/src/main/java/org/apache/sqoop/common/PrefixContext.java @@ -17,6 +17,8 @@ */ 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.sqoop.common.ImmutableContext; @@ -25,6 +27,8 @@ * object. Each context property is prefixed with special prefix and loaded * directly. */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class PrefixContext implements ImmutableContext { Configuration configuration; diff --git a/common/src/main/java/org/apache/sqoop/common/SqoopException.java b/common/src/main/java/org/apache/sqoop/common/SqoopException.java index 6c5dc2a5..06b39e6e 100644 --- a/common/src/main/java/org/apache/sqoop/common/SqoopException.java +++ b/common/src/main/java/org/apache/sqoop/common/SqoopException.java @@ -18,12 +18,17 @@ 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 * of an error code for reference purposes. Where necessary the appropriate * constructor can be used to pass in additional message beyond what is * specified by the error code and/or the causal exception. */ +@InterfaceAudience.Public +@InterfaceStability.Unstable @SuppressWarnings("serial") public class SqoopException extends RuntimeException { diff --git a/common/src/main/java/org/apache/sqoop/common/SqoopProtocolConstants.java b/common/src/main/java/org/apache/sqoop/common/SqoopProtocolConstants.java index 8f4f7091..72b5d877 100644 --- a/common/src/main/java/org/apache/sqoop/common/SqoopProtocolConstants.java +++ b/common/src/main/java/org/apache/sqoop/common/SqoopProtocolConstants.java @@ -17,6 +17,11 @@ */ 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 static final String HEADER_SQOOP_ERROR_CODE = "sqoop-error-code"; diff --git a/common/src/main/java/org/apache/sqoop/common/SqoopResponseCode.java b/common/src/main/java/org/apache/sqoop/common/SqoopResponseCode.java index 93a43f5d..da500788 100644 --- a/common/src/main/java/org/apache/sqoop/common/SqoopResponseCode.java +++ b/common/src/main/java/org/apache/sqoop/common/SqoopResponseCode.java @@ -17,6 +17,11 @@ */ package org.apache.sqoop.common; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + +@InterfaceAudience.Private +@InterfaceStability.Unstable public enum SqoopResponseCode { SQOOP_1000("1000", "OK"), diff --git a/common/src/main/java/org/apache/sqoop/common/SupportedDirections.java b/common/src/main/java/org/apache/sqoop/common/SupportedDirections.java index c527117a..2fae427d 100644 --- a/common/src/main/java/org/apache/sqoop/common/SupportedDirections.java +++ b/common/src/main/java/org/apache/sqoop/common/SupportedDirections.java @@ -17,9 +17,14 @@ */ package org.apache.sqoop.common; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + /** * Represents which Directions are supported. */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class SupportedDirections implements Comparable { private static final char SUPPORTED_DIRECTIONS_SEPARATOR = '/'; diff --git a/common/src/main/java/org/apache/sqoop/common/VersionAnnotation.java b/common/src/main/java/org/apache/sqoop/common/VersionAnnotation.java index 728a3a73..2fcbbb28 100644 --- a/common/src/main/java/org/apache/sqoop/common/VersionAnnotation.java +++ b/common/src/main/java/org/apache/sqoop/common/VersionAnnotation.java @@ -17,12 +17,17 @@ */ package org.apache.sqoop.common; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + import java.lang.annotation.*; /** * A package attribute that captures the version that was compiled. * Copied down from hadoop. All is same except name of interface. */ +@InterfaceAudience.Public +@InterfaceStability.Unstable @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.PACKAGE) public @interface VersionAnnotation { diff --git a/common/src/main/java/org/apache/sqoop/common/VersionInfo.java b/common/src/main/java/org/apache/sqoop/common/VersionInfo.java index 1b4873b8..a7f5716b 100644 --- a/common/src/main/java/org/apache/sqoop/common/VersionInfo.java +++ b/common/src/main/java/org/apache/sqoop/common/VersionInfo.java @@ -17,6 +17,11 @@ */ 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 { private static Package myPackage; diff --git a/common/src/main/java/org/apache/sqoop/etl/io/DataReader.java b/common/src/main/java/org/apache/sqoop/etl/io/DataReader.java index a5554313..c6cd2b3c 100644 --- a/common/src/main/java/org/apache/sqoop/etl/io/DataReader.java +++ b/common/src/main/java/org/apache/sqoop/etl/io/DataReader.java @@ -17,10 +17,15 @@ */ 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 * to the ETL engine. */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public abstract class DataReader { /** diff --git a/common/src/main/java/org/apache/sqoop/etl/io/DataWriter.java b/common/src/main/java/org/apache/sqoop/etl/io/DataWriter.java index 2166b09f..c0fe08c3 100644 --- a/common/src/main/java/org/apache/sqoop/etl/io/DataWriter.java +++ b/common/src/main/java/org/apache/sqoop/etl/io/DataWriter.java @@ -17,10 +17,15 @@ */ 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 * to the MR framework. */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public abstract class DataWriter { /** diff --git a/common/src/main/java/org/apache/sqoop/job/etl/DestroyerContext.java b/common/src/main/java/org/apache/sqoop/job/etl/DestroyerContext.java index 7afb1204..f4f6d1d3 100644 --- a/common/src/main/java/org/apache/sqoop/job/etl/DestroyerContext.java +++ b/common/src/main/java/org/apache/sqoop/job/etl/DestroyerContext.java @@ -17,6 +17,8 @@ */ 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.schema.Schema; @@ -25,6 +27,8 @@ * * This class is wrapping information if the run was successful or not. */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class DestroyerContext extends TransferableContext { private boolean success; diff --git a/common/src/main/java/org/apache/sqoop/job/etl/ExtractorContext.java b/common/src/main/java/org/apache/sqoop/job/etl/ExtractorContext.java index 1e0f0ec9..43fcaa22 100644 --- a/common/src/main/java/org/apache/sqoop/job/etl/ExtractorContext.java +++ b/common/src/main/java/org/apache/sqoop/job/etl/ExtractorContext.java @@ -17,6 +17,8 @@ */ 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.etl.io.DataWriter; import org.apache.sqoop.schema.Schema; @@ -26,6 +28,8 @@ * * This class is wrapping writer object. */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class ExtractorContext extends TransferableContext { private final DataWriter writer; diff --git a/common/src/main/java/org/apache/sqoop/job/etl/InitializerContext.java b/common/src/main/java/org/apache/sqoop/job/etl/InitializerContext.java index 4de00a6d..469132b3 100644 --- a/common/src/main/java/org/apache/sqoop/job/etl/InitializerContext.java +++ b/common/src/main/java/org/apache/sqoop/job/etl/InitializerContext.java @@ -17,6 +17,8 @@ */ package org.apache.sqoop.job.etl; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.common.MutableContext; /** @@ -25,6 +27,8 @@ * * This class is returning mutable context instead of immutable. */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class InitializerContext extends TransferableContext { public InitializerContext(MutableContext context) { diff --git a/common/src/main/java/org/apache/sqoop/job/etl/LoaderContext.java b/common/src/main/java/org/apache/sqoop/job/etl/LoaderContext.java index 9d556eb5..f9ea9ad5 100644 --- a/common/src/main/java/org/apache/sqoop/job/etl/LoaderContext.java +++ b/common/src/main/java/org/apache/sqoop/job/etl/LoaderContext.java @@ -17,6 +17,8 @@ */ 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.etl.io.DataReader; import org.apache.sqoop.schema.Schema; @@ -26,6 +28,8 @@ * * This class is also wrapping reader object. */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class LoaderContext extends TransferableContext { private final DataReader reader; diff --git a/common/src/main/java/org/apache/sqoop/job/etl/PartitionerContext.java b/common/src/main/java/org/apache/sqoop/job/etl/PartitionerContext.java index 79901fd9..67fffd6d 100644 --- a/common/src/main/java/org/apache/sqoop/job/etl/PartitionerContext.java +++ b/common/src/main/java/org/apache/sqoop/job/etl/PartitionerContext.java @@ -17,6 +17,8 @@ */ 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.schema.Schema; @@ -25,6 +27,8 @@ * * This class is also wrapping number of maximal allowed partitions. */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class PartitionerContext extends TransferableContext { private long maxPartitions; diff --git a/common/src/main/java/org/apache/sqoop/job/etl/TransferableContext.java b/common/src/main/java/org/apache/sqoop/job/etl/TransferableContext.java index e57bf45e..ad18e299 100644 --- a/common/src/main/java/org/apache/sqoop/job/etl/TransferableContext.java +++ b/common/src/main/java/org/apache/sqoop/job/etl/TransferableContext.java @@ -17,11 +17,15 @@ */ package org.apache.sqoop.job.etl; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.common.ImmutableContext; /** * Base context class for the {@link Transferable} components */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public abstract class TransferableContext { ImmutableContext context; diff --git a/common/src/main/java/org/apache/sqoop/json/ConfigurableBean.java b/common/src/main/java/org/apache/sqoop/json/ConfigurableBean.java index 49dd057f..0b79666e 100644 --- a/common/src/main/java/org/apache/sqoop/json/ConfigurableBean.java +++ b/common/src/main/java/org/apache/sqoop/json/ConfigurableBean.java @@ -17,9 +17,14 @@ * limitations under the License. */ +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + /** * Marker class for the configurables supported in sqoop */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public abstract class ConfigurableBean implements JsonBean { } diff --git a/common/src/main/java/org/apache/sqoop/json/ConnectorBean.java b/common/src/main/java/org/apache/sqoop/json/ConnectorBean.java index 6dc14d05..0322032e 100644 --- a/common/src/main/java/org/apache/sqoop/json/ConnectorBean.java +++ b/common/src/main/java/org/apache/sqoop/json/ConnectorBean.java @@ -28,6 +28,8 @@ import java.util.Map; 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.model.MConfig; import org.apache.sqoop.model.MConnector; @@ -41,6 +43,8 @@ * Json representation of the connector object * */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public class ConnectorBean extends ConfigurableBean { // to represent the config and inputs with values diff --git a/common/src/main/java/org/apache/sqoop/json/ConnectorsBean.java b/common/src/main/java/org/apache/sqoop/json/ConnectorsBean.java index b04594eb..88b71f5d 100644 --- a/common/src/main/java/org/apache/sqoop/json/ConnectorsBean.java +++ b/common/src/main/java/org/apache/sqoop/json/ConnectorsBean.java @@ -21,6 +21,8 @@ import java.util.Map; import java.util.ResourceBundle; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.model.MConnector; import org.json.simple.JSONArray; import org.json.simple.JSONObject; @@ -29,6 +31,8 @@ * Json representation of the connectors object * */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public class ConnectorsBean extends ConnectorBean { // to represent the config and inputs with values diff --git a/common/src/main/java/org/apache/sqoop/json/DriverBean.java b/common/src/main/java/org/apache/sqoop/json/DriverBean.java index 593ce2f7..60129170 100644 --- a/common/src/main/java/org/apache/sqoop/json/DriverBean.java +++ b/common/src/main/java/org/apache/sqoop/json/DriverBean.java @@ -25,6 +25,8 @@ import java.util.List; 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.MDriver; import org.apache.sqoop.model.MDriverConfig; @@ -33,6 +35,8 @@ /** * Json representation of the driver */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public class DriverBean extends ConfigurableBean { public static final String CURRENT_DRIVER_VERSION = "1"; diff --git a/common/src/main/java/org/apache/sqoop/json/JSONUtils.java b/common/src/main/java/org/apache/sqoop/json/JSONUtils.java index e7551d2c..ff8f9eaa 100644 --- a/common/src/main/java/org/apache/sqoop/json/JSONUtils.java +++ b/common/src/main/java/org/apache/sqoop/json/JSONUtils.java @@ -17,6 +17,8 @@ */ 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.json.util.SerializationError; import org.json.simple.JSONObject; @@ -28,6 +30,8 @@ /** */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public class JSONUtils { /** diff --git a/common/src/main/java/org/apache/sqoop/json/JobBean.java b/common/src/main/java/org/apache/sqoop/json/JobBean.java index 00cba562..0561adeb 100644 --- a/common/src/main/java/org/apache/sqoop/json/JobBean.java +++ b/common/src/main/java/org/apache/sqoop/json/JobBean.java @@ -27,6 +27,8 @@ import java.util.Map; 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.model.MConfig; import org.apache.sqoop.model.MDriverConfig; @@ -39,6 +41,8 @@ /** * Json representation of the job */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public class JobBean implements JsonBean { static final String FROM_LINK_ID = "from-link-id"; diff --git a/common/src/main/java/org/apache/sqoop/json/JobsBean.java b/common/src/main/java/org/apache/sqoop/json/JobsBean.java index 3c454ea4..c62ab49d 100644 --- a/common/src/main/java/org/apache/sqoop/json/JobsBean.java +++ b/common/src/main/java/org/apache/sqoop/json/JobsBean.java @@ -19,6 +19,8 @@ import java.util.List; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.model.MJob; import org.json.simple.JSONArray; import org.json.simple.JSONObject; @@ -26,6 +28,8 @@ /** * Json representation of the jobs */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public class JobsBean extends JobBean { private static final String JOBS = "jobs"; diff --git a/common/src/main/java/org/apache/sqoop/json/JsonBean.java b/common/src/main/java/org/apache/sqoop/json/JsonBean.java index 7cf24bae..1dd275e8 100644 --- a/common/src/main/java/org/apache/sqoop/json/JsonBean.java +++ b/common/src/main/java/org/apache/sqoop/json/JsonBean.java @@ -17,8 +17,12 @@ */ package org.apache.sqoop.json; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.json.simple.JSONObject; +@InterfaceAudience.Private +@InterfaceStability.Unstable public interface JsonBean { // common JSON constants for the rest-api response diff --git a/common/src/main/java/org/apache/sqoop/json/LinkBean.java b/common/src/main/java/org/apache/sqoop/json/LinkBean.java index 5ee4e014..2e2406f3 100644 --- a/common/src/main/java/org/apache/sqoop/json/LinkBean.java +++ b/common/src/main/java/org/apache/sqoop/json/LinkBean.java @@ -27,6 +27,8 @@ import java.util.Map; 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.MLink; import org.apache.sqoop.model.MLinkConfig; @@ -38,6 +40,8 @@ * server and client. Server might optionally send configs associated with the * links to spare client of sending another HTTP requests to obtain them. */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public class LinkBean implements JsonBean { static final String CONNECTOR_ID = "connector-id"; diff --git a/common/src/main/java/org/apache/sqoop/json/LinksBean.java b/common/src/main/java/org/apache/sqoop/json/LinksBean.java index 58cacb9c..6e4a9066 100644 --- a/common/src/main/java/org/apache/sqoop/json/LinksBean.java +++ b/common/src/main/java/org/apache/sqoop/json/LinksBean.java @@ -19,10 +19,14 @@ import java.util.List; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.model.MLink; import org.json.simple.JSONArray; import org.json.simple.JSONObject; +@InterfaceAudience.Private +@InterfaceStability.Unstable public class LinksBean extends LinkBean { static final String LINKS = "links"; diff --git a/common/src/main/java/org/apache/sqoop/json/SchemaBean.java b/common/src/main/java/org/apache/sqoop/json/SchemaBean.java index f51fec85..9ba22e5f 100644 --- a/common/src/main/java/org/apache/sqoop/json/SchemaBean.java +++ b/common/src/main/java/org/apache/sqoop/json/SchemaBean.java @@ -17,6 +17,8 @@ */ 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.schema.Schema; import org.json.simple.JSONObject; @@ -24,6 +26,8 @@ /** * */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public class SchemaBean implements JsonBean { private Schema schema; diff --git a/common/src/main/java/org/apache/sqoop/json/SubmissionBean.java b/common/src/main/java/org/apache/sqoop/json/SubmissionBean.java index 66db0d40..ad05057f 100644 --- a/common/src/main/java/org/apache/sqoop/json/SubmissionBean.java +++ b/common/src/main/java/org/apache/sqoop/json/SubmissionBean.java @@ -26,6 +26,8 @@ import java.util.Map; 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.submission.SubmissionStatus; import org.apache.sqoop.submission.counter.Counter; @@ -37,6 +39,8 @@ /** * */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public class SubmissionBean implements JsonBean { private static final String SUBMISSION = "submission"; diff --git a/common/src/main/java/org/apache/sqoop/json/SubmissionsBean.java b/common/src/main/java/org/apache/sqoop/json/SubmissionsBean.java index 74b61797..019abf1b 100644 --- a/common/src/main/java/org/apache/sqoop/json/SubmissionsBean.java +++ b/common/src/main/java/org/apache/sqoop/json/SubmissionsBean.java @@ -19,10 +19,14 @@ import java.util.List; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.model.MSubmission; import org.json.simple.JSONArray; import org.json.simple.JSONObject; +@InterfaceAudience.Private +@InterfaceStability.Unstable public class SubmissionsBean extends SubmissionBean { private static final String SUBMISSIONS = "submissions"; diff --git a/common/src/main/java/org/apache/sqoop/json/ThrowableBean.java b/common/src/main/java/org/apache/sqoop/json/ThrowableBean.java index cd260206..77482475 100644 --- a/common/src/main/java/org/apache/sqoop/json/ThrowableBean.java +++ b/common/src/main/java/org/apache/sqoop/json/ThrowableBean.java @@ -17,6 +17,8 @@ */ 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.utils.ClassUtils; import org.json.simple.JSONArray; @@ -28,6 +30,8 @@ /** * Transfer throwable instance as a throwable bean. */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public class ThrowableBean implements JsonBean { public static final String MESSAGE = "message"; diff --git a/common/src/main/java/org/apache/sqoop/json/ValidationResultBean.java b/common/src/main/java/org/apache/sqoop/json/ValidationResultBean.java index e9b48999..4ac9533d 100644 --- a/common/src/main/java/org/apache/sqoop/json/ValidationResultBean.java +++ b/common/src/main/java/org/apache/sqoop/json/ValidationResultBean.java @@ -17,6 +17,8 @@ */ 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.Status; import org.apache.sqoop.validation.ConfigValidationResult; @@ -31,6 +33,8 @@ /** * Serialize and transfer validation results (0..N). */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public class ValidationResultBean implements JsonBean { private static final String VALIDATION_RESULT = "validation-result"; diff --git a/common/src/main/java/org/apache/sqoop/json/VersionBean.java b/common/src/main/java/org/apache/sqoop/json/VersionBean.java index 53d19b1d..3746ca4d 100644 --- a/common/src/main/java/org/apache/sqoop/json/VersionBean.java +++ b/common/src/main/java/org/apache/sqoop/json/VersionBean.java @@ -17,9 +17,13 @@ */ 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.JSONObject; +@InterfaceAudience.Private +@InterfaceStability.Unstable public class VersionBean implements JsonBean { public static final String BUILD_VERSION = "build-version"; diff --git a/common/src/main/java/org/apache/sqoop/json/util/ConfigBundleSerialization.java b/common/src/main/java/org/apache/sqoop/json/util/ConfigBundleSerialization.java index 61337984..d91ecebb 100644 --- a/common/src/main/java/org/apache/sqoop/json/util/ConfigBundleSerialization.java +++ b/common/src/main/java/org/apache/sqoop/json/util/ConfigBundleSerialization.java @@ -17,6 +17,8 @@ */ 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.json.simple.JSONArray; import org.json.simple.JSONObject; @@ -31,6 +33,8 @@ /** * */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public final class ConfigBundleSerialization { @SuppressWarnings("unchecked") diff --git a/common/src/main/java/org/apache/sqoop/json/util/ConfigInputConstants.java b/common/src/main/java/org/apache/sqoop/json/util/ConfigInputConstants.java index df8a8700..5d261de6 100644 --- a/common/src/main/java/org/apache/sqoop/json/util/ConfigInputConstants.java +++ b/common/src/main/java/org/apache/sqoop/json/util/ConfigInputConstants.java @@ -17,9 +17,14 @@ */ package org.apache.sqoop.json.util; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + /** * Constants related to the configs */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public class ConfigInputConstants { public static final String CONFIG_ID = "id"; diff --git a/common/src/main/java/org/apache/sqoop/json/util/ConfigInputSerialization.java b/common/src/main/java/org/apache/sqoop/json/util/ConfigInputSerialization.java index 4667f5c9..8b11ed5c 100644 --- a/common/src/main/java/org/apache/sqoop/json/util/ConfigInputSerialization.java +++ b/common/src/main/java/org/apache/sqoop/json/util/ConfigInputSerialization.java @@ -18,6 +18,8 @@ package org.apache.sqoop.json.util; 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.model.MBooleanInput; import org.apache.sqoop.model.MEnumInput; @@ -38,6 +40,8 @@ /** * Convenient static methods for serializing config and input objects. */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public final class ConfigInputSerialization { /** diff --git a/common/src/main/java/org/apache/sqoop/json/util/SchemaSerialization.java b/common/src/main/java/org/apache/sqoop/json/util/SchemaSerialization.java index bbd58fc0..a6425feb 100644 --- a/common/src/main/java/org/apache/sqoop/json/util/SchemaSerialization.java +++ b/common/src/main/java/org/apache/sqoop/json/util/SchemaSerialization.java @@ -19,6 +19,8 @@ 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.Schema; import org.apache.sqoop.schema.type.AbstractComplexListType; @@ -46,6 +48,8 @@ /** * */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public class SchemaSerialization { // common attributes of all column types diff --git a/common/src/main/java/org/apache/sqoop/json/util/SerializationError.java b/common/src/main/java/org/apache/sqoop/json/util/SerializationError.java index 3d440da4..d5cdb31d 100644 --- a/common/src/main/java/org/apache/sqoop/json/util/SerializationError.java +++ b/common/src/main/java/org/apache/sqoop/json/util/SerializationError.java @@ -17,8 +17,12 @@ */ package org.apache.sqoop.json.util; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.common.ErrorCode; +@InterfaceAudience.Private +@InterfaceStability.Unstable public enum SerializationError implements ErrorCode { SERIALIZATION_001("Attempt to pass a non-map object to MAP type."), diff --git a/common/src/main/java/org/apache/sqoop/model/Config.java b/common/src/main/java/org/apache/sqoop/model/Config.java index b4d847d2..644cffe8 100644 --- a/common/src/main/java/org/apache/sqoop/model/Config.java +++ b/common/src/main/java/org/apache/sqoop/model/Config.java @@ -17,12 +17,17 @@ */ 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.RetentionPolicy; /** * Denote config in Configuration class */ +@InterfaceAudience.Public +@InterfaceStability.Evolving @Retention(RetentionPolicy.RUNTIME) public @interface Config { /** diff --git a/common/src/main/java/org/apache/sqoop/model/ConfigClass.java b/common/src/main/java/org/apache/sqoop/model/ConfigClass.java index f925759e..8602a108 100644 --- a/common/src/main/java/org/apache/sqoop/model/ConfigClass.java +++ b/common/src/main/java/org/apache/sqoop/model/ConfigClass.java @@ -17,6 +17,9 @@ */ 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.Retention; import java.lang.annotation.RetentionPolicy; @@ -25,6 +28,8 @@ /** * Denote configuration class */ +@InterfaceAudience.Public +@InterfaceStability.Evolving @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) public @interface ConfigClass { diff --git a/common/src/main/java/org/apache/sqoop/model/ConfigUtils.java b/common/src/main/java/org/apache/sqoop/model/ConfigUtils.java index 3765a6db..279f3a6b 100644 --- a/common/src/main/java/org/apache/sqoop/model/ConfigUtils.java +++ b/common/src/main/java/org/apache/sqoop/model/ConfigUtils.java @@ -18,6 +18,8 @@ package org.apache.sqoop.model; 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.json.JSONUtils; 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. */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public class ConfigUtils { /** diff --git a/common/src/main/java/org/apache/sqoop/model/Configurable.java b/common/src/main/java/org/apache/sqoop/model/Configurable.java index 2033fcb7..ea544e58 100644 --- a/common/src/main/java/org/apache/sqoop/model/Configurable.java +++ b/common/src/main/java/org/apache/sqoop/model/Configurable.java @@ -17,9 +17,14 @@ */ 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 */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public abstract class Configurable extends MPersistableEntity implements MClonable { } \ No newline at end of file diff --git a/common/src/main/java/org/apache/sqoop/model/ConfigurationClass.java b/common/src/main/java/org/apache/sqoop/model/ConfigurationClass.java index c65c478f..0fface86 100644 --- a/common/src/main/java/org/apache/sqoop/model/ConfigurationClass.java +++ b/common/src/main/java/org/apache/sqoop/model/ConfigurationClass.java @@ -17,6 +17,9 @@ */ 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.Retention; import java.lang.annotation.RetentionPolicy; @@ -27,6 +30,8 @@ * Each class that is used a configuration group object, the connector developer * is expected to provide the inputs needed for this annotation */ +@InterfaceAudience.Public +@InterfaceStability.Evolving @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) public @interface ConfigurationClass { diff --git a/common/src/main/java/org/apache/sqoop/model/Input.java b/common/src/main/java/org/apache/sqoop/model/Input.java index db3e0e6f..b6305f26 100644 --- a/common/src/main/java/org/apache/sqoop/model/Input.java +++ b/common/src/main/java/org/apache/sqoop/model/Input.java @@ -17,6 +17,9 @@ */ 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.Retention; import java.lang.annotation.RetentionPolicy; @@ -26,6 +29,8 @@ * Field annotation. Each field that user might change in configuration object * need to have this annotation. */ +@InterfaceAudience.Public +@InterfaceStability.Evolving @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) public @interface Input { diff --git a/common/src/main/java/org/apache/sqoop/model/MAccountableEntity.java b/common/src/main/java/org/apache/sqoop/model/MAccountableEntity.java index 094af395..a2ec5874 100644 --- a/common/src/main/java/org/apache/sqoop/model/MAccountableEntity.java +++ b/common/src/main/java/org/apache/sqoop/model/MAccountableEntity.java @@ -17,12 +17,17 @@ */ package org.apache.sqoop.model; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + import java.util.Date; /** * Accountable entity provides additional fields that might help with identifying * what and when has happened. */ +@InterfaceAudience.Private +@InterfaceStability.Unstable abstract public class MAccountableEntity extends MValidatedElement { private final boolean DEFAULT_ENABLED = true; diff --git a/common/src/main/java/org/apache/sqoop/model/MBooleanInput.java b/common/src/main/java/org/apache/sqoop/model/MBooleanInput.java index da380ddb..c7fcf903 100644 --- a/common/src/main/java/org/apache/sqoop/model/MBooleanInput.java +++ b/common/src/main/java/org/apache/sqoop/model/MBooleanInput.java @@ -17,9 +17,14 @@ */ package org.apache.sqoop.model; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + /** * Represents a Boolean input. */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class MBooleanInput extends MInput { public MBooleanInput(String name, boolean sensitive) { diff --git a/common/src/main/java/org/apache/sqoop/model/MClonable.java b/common/src/main/java/org/apache/sqoop/model/MClonable.java index 6353779d..2284d794 100644 --- a/common/src/main/java/org/apache/sqoop/model/MClonable.java +++ b/common/src/main/java/org/apache/sqoop/model/MClonable.java @@ -17,6 +17,11 @@ */ package org.apache.sqoop.model; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + +@InterfaceAudience.Private +@InterfaceStability.Unstable public interface MClonable { /** * Clone object diff --git a/common/src/main/java/org/apache/sqoop/model/MConfig.java b/common/src/main/java/org/apache/sqoop/model/MConfig.java index b5d2afd4..d1284417 100644 --- a/common/src/main/java/org/apache/sqoop/model/MConfig.java +++ b/common/src/main/java/org/apache/sqoop/model/MConfig.java @@ -17,6 +17,8 @@ */ package org.apache.sqoop.model; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.common.SqoopException; import java.util.ArrayList; @@ -27,6 +29,8 @@ * input gathering process to be broken down into multiple steps that can be * then paged through by the user interface. */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public final class MConfig extends MValidatedElement implements MClonable { private final List> inputs; diff --git a/common/src/main/java/org/apache/sqoop/model/MConfigList.java b/common/src/main/java/org/apache/sqoop/model/MConfigList.java index 20309e12..add80d8e 100644 --- a/common/src/main/java/org/apache/sqoop/model/MConfigList.java +++ b/common/src/main/java/org/apache/sqoop/model/MConfigList.java @@ -17,6 +17,8 @@ */ package org.apache.sqoop.model; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.common.SqoopException; import java.util.ArrayList; @@ -25,6 +27,8 @@ /** * Arbitrary list of config objects. */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class MConfigList implements MClonable { private final List configObjects; diff --git a/common/src/main/java/org/apache/sqoop/model/MConfigType.java b/common/src/main/java/org/apache/sqoop/model/MConfigType.java index a9f7dad0..fa29d5a9 100644 --- a/common/src/main/java/org/apache/sqoop/model/MConfigType.java +++ b/common/src/main/java/org/apache/sqoop/model/MConfigType.java @@ -17,9 +17,14 @@ */ 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. */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public enum MConfigType { /** Unknown config type */ diff --git a/common/src/main/java/org/apache/sqoop/model/MConfigurableType.java b/common/src/main/java/org/apache/sqoop/model/MConfigurableType.java index 7ab70329..b147d7d9 100644 --- a/common/src/main/java/org/apache/sqoop/model/MConfigurableType.java +++ b/common/src/main/java/org/apache/sqoop/model/MConfigurableType.java @@ -17,9 +17,14 @@ */ 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 */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public enum MConfigurableType { /** Connector as a owner of config keys */ diff --git a/common/src/main/java/org/apache/sqoop/model/MConnector.java b/common/src/main/java/org/apache/sqoop/model/MConnector.java index 1b9462e2..d49f6206 100644 --- a/common/src/main/java/org/apache/sqoop/model/MConnector.java +++ b/common/src/main/java/org/apache/sqoop/model/MConnector.java @@ -17,6 +17,8 @@ */ 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.DirectionError; import org.apache.sqoop.common.SqoopException; @@ -27,6 +29,8 @@ * that identifies connector in the repository, unique human readable name, * corresponding name and all configs to support the from and to data sources */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public final class MConnector extends Configurable { private final String uniqueName; diff --git a/common/src/main/java/org/apache/sqoop/model/MDriver.java b/common/src/main/java/org/apache/sqoop/model/MDriver.java index cc475117..75eaa462 100644 --- a/common/src/main/java/org/apache/sqoop/model/MDriver.java +++ b/common/src/main/java/org/apache/sqoop/model/MDriver.java @@ -18,9 +18,14 @@ 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. */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public final class MDriver extends Configurable { public static final String DRIVER_NAME = "SqoopDriver"; diff --git a/common/src/main/java/org/apache/sqoop/model/MDriverConfig.java b/common/src/main/java/org/apache/sqoop/model/MDriverConfig.java index 3faf1d3c..77d947f1 100644 --- a/common/src/main/java/org/apache/sqoop/model/MDriverConfig.java +++ b/common/src/main/java/org/apache/sqoop/model/MDriverConfig.java @@ -17,14 +17,18 @@ */ package org.apache.sqoop.model; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + import java.util.List; /** * Config describing all required information for the driver * 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 - */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class MDriverConfig extends MConfigList { public MDriverConfig(List configs) { super(configs, MConfigType.JOB); diff --git a/common/src/main/java/org/apache/sqoop/model/MEnumInput.java b/common/src/main/java/org/apache/sqoop/model/MEnumInput.java index 28830f40..74838fce 100644 --- a/common/src/main/java/org/apache/sqoop/model/MEnumInput.java +++ b/common/src/main/java/org/apache/sqoop/model/MEnumInput.java @@ -18,6 +18,8 @@ package org.apache.sqoop.model; 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 java.util.Arrays; @@ -25,6 +27,8 @@ /** * */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class MEnumInput extends MInput { /** diff --git a/common/src/main/java/org/apache/sqoop/model/MFromConfig.java b/common/src/main/java/org/apache/sqoop/model/MFromConfig.java index 1e9e845b..7093a936 100644 --- a/common/src/main/java/org/apache/sqoop/model/MFromConfig.java +++ b/common/src/main/java/org/apache/sqoop/model/MFromConfig.java @@ -17,14 +17,18 @@ */ package org.apache.sqoop.model; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + import java.util.List; /** * 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 * 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 MFromConfig(List configs) { super(configs, MConfigType.JOB); diff --git a/common/src/main/java/org/apache/sqoop/model/MInput.java b/common/src/main/java/org/apache/sqoop/model/MInput.java index 00742677..d1c2ab6b 100644 --- a/common/src/main/java/org/apache/sqoop/model/MInput.java +++ b/common/src/main/java/org/apache/sqoop/model/MInput.java @@ -17,12 +17,17 @@ */ 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 * or a job object. * @param the value type associated with this parameter * @param boolean whether or not the field contains sensitive information */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public abstract class MInput extends MValidatedElement implements MClonable { private final boolean sensitive; diff --git a/common/src/main/java/org/apache/sqoop/model/MInputType.java b/common/src/main/java/org/apache/sqoop/model/MInputType.java index af400544..bdc3424d 100644 --- a/common/src/main/java/org/apache/sqoop/model/MInputType.java +++ b/common/src/main/java/org/apache/sqoop/model/MInputType.java @@ -17,9 +17,14 @@ */ 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. */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public enum MInputType { /** Unknown input type */ diff --git a/common/src/main/java/org/apache/sqoop/model/MIntegerInput.java b/common/src/main/java/org/apache/sqoop/model/MIntegerInput.java index a43f440a..de50cd47 100644 --- a/common/src/main/java/org/apache/sqoop/model/MIntegerInput.java +++ b/common/src/main/java/org/apache/sqoop/model/MIntegerInput.java @@ -17,11 +17,16 @@ */ package org.apache.sqoop.model; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + /** * Integer base user input. * * This input is able to process empty (NULL) value. */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class MIntegerInput extends MInput { public MIntegerInput(String name, boolean sensitive) { diff --git a/common/src/main/java/org/apache/sqoop/model/MJob.java b/common/src/main/java/org/apache/sqoop/model/MJob.java index 935dd181..4b5c896f 100644 --- a/common/src/main/java/org/apache/sqoop/model/MJob.java +++ b/common/src/main/java/org/apache/sqoop/model/MJob.java @@ -17,6 +17,8 @@ */ 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.DirectionError; import org.apache.sqoop.common.SqoopException; @@ -25,6 +27,8 @@ * Model describing entire job object including the from/to and driver config information * to execute the job */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class MJob extends MAccountableEntity implements MClonable { /** * NOTE : Job object do not immediately depend on connector as there is indirect diff --git a/common/src/main/java/org/apache/sqoop/model/MLink.java b/common/src/main/java/org/apache/sqoop/model/MLink.java index 8e318613..062a4c5e 100644 --- a/common/src/main/java/org/apache/sqoop/model/MLink.java +++ b/common/src/main/java/org/apache/sqoop/model/MLink.java @@ -17,9 +17,14 @@ */ 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 */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class MLink extends MAccountableEntity implements MClonable { 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 diff --git a/common/src/main/java/org/apache/sqoop/model/MLinkConfig.java b/common/src/main/java/org/apache/sqoop/model/MLinkConfig.java index 040dca4e..9042ca5f 100644 --- a/common/src/main/java/org/apache/sqoop/model/MLinkConfig.java +++ b/common/src/main/java/org/apache/sqoop/model/MLinkConfig.java @@ -17,6 +17,9 @@ */ package org.apache.sqoop.model; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + import java.util.List; /** @@ -24,6 +27,8 @@ * 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 */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class MLinkConfig extends MConfigList { public MLinkConfig(List configs) { diff --git a/common/src/main/java/org/apache/sqoop/model/MMapInput.java b/common/src/main/java/org/apache/sqoop/model/MMapInput.java index 37dd265a..cf781b22 100644 --- a/common/src/main/java/org/apache/sqoop/model/MMapInput.java +++ b/common/src/main/java/org/apache/sqoop/model/MMapInput.java @@ -21,8 +21,12 @@ import java.util.Map; import java.util.Set; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.utils.UrlSafeUtils; +@InterfaceAudience.Public +@InterfaceStability.Unstable public final class MMapInput extends MInput> { public MMapInput(String name, boolean sensitive) { diff --git a/common/src/main/java/org/apache/sqoop/model/MNamedElement.java b/common/src/main/java/org/apache/sqoop/model/MNamedElement.java index ddacfcd5..b18eaf1d 100644 --- a/common/src/main/java/org/apache/sqoop/model/MNamedElement.java +++ b/common/src/main/java/org/apache/sqoop/model/MNamedElement.java @@ -17,9 +17,14 @@ */ 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. */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public abstract class MNamedElement extends MPersistableEntity { private static final String LABEL_KEY_SUFFIX = ".label"; private static final String HELP_KEY_SUFFIX = ".help"; diff --git a/common/src/main/java/org/apache/sqoop/model/MPersistableEntity.java b/common/src/main/java/org/apache/sqoop/model/MPersistableEntity.java index 6507aca5..721daed1 100644 --- a/common/src/main/java/org/apache/sqoop/model/MPersistableEntity.java +++ b/common/src/main/java/org/apache/sqoop/model/MPersistableEntity.java @@ -17,9 +17,14 @@ */ package org.apache.sqoop.model; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + /** * Represents a persistable metadata entity. */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public abstract class MPersistableEntity { public static final long PERSISTANCE_ID_DEFAULT = -1L; diff --git a/common/src/main/java/org/apache/sqoop/model/MStringInput.java b/common/src/main/java/org/apache/sqoop/model/MStringInput.java index 289a4eeb..48548388 100644 --- a/common/src/main/java/org/apache/sqoop/model/MStringInput.java +++ b/common/src/main/java/org/apache/sqoop/model/MStringInput.java @@ -17,6 +17,8 @@ */ package org.apache.sqoop.model; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.utils.UrlSafeUtils; /** @@ -25,6 +27,8 @@ * from user-view. This is helpful for creating input strings that represent * sensitive information such as passwords. */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public final class MStringInput extends MInput { private final short maxLength; diff --git a/common/src/main/java/org/apache/sqoop/model/MSubmission.java b/common/src/main/java/org/apache/sqoop/model/MSubmission.java index ff50c992..58d92c78 100644 --- a/common/src/main/java/org/apache/sqoop/model/MSubmission.java +++ b/common/src/main/java/org/apache/sqoop/model/MSubmission.java @@ -17,6 +17,8 @@ */ 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.submission.SubmissionStatus; import org.apache.sqoop.submission.counter.Counters; @@ -29,6 +31,8 @@ * Please note that not all properties are persisted in repository at the * moment. */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class MSubmission extends MAccountableEntity { /** diff --git a/common/src/main/java/org/apache/sqoop/model/MToConfig.java b/common/src/main/java/org/apache/sqoop/model/MToConfig.java index 1d0c91f7..eff533f2 100644 --- a/common/src/main/java/org/apache/sqoop/model/MToConfig.java +++ b/common/src/main/java/org/apache/sqoop/model/MToConfig.java @@ -17,14 +17,18 @@ */ package org.apache.sqoop.model; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + import java.util.List; /** * 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 * 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 MToConfig(List configs) { super(configs, MConfigType.JOB); diff --git a/common/src/main/java/org/apache/sqoop/model/MValidatedElement.java b/common/src/main/java/org/apache/sqoop/model/MValidatedElement.java index c0d678a5..dd19088c 100644 --- a/common/src/main/java/org/apache/sqoop/model/MValidatedElement.java +++ b/common/src/main/java/org/apache/sqoop/model/MValidatedElement.java @@ -17,6 +17,8 @@ */ 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.Status; @@ -26,6 +28,8 @@ /** * Element that can have associated validation messages (0..N). */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public abstract class MValidatedElement extends MNamedElement { /** diff --git a/common/src/main/java/org/apache/sqoop/model/ModelError.java b/common/src/main/java/org/apache/sqoop/model/ModelError.java index a9917816..dcb137a5 100644 --- a/common/src/main/java/org/apache/sqoop/model/ModelError.java +++ b/common/src/main/java/org/apache/sqoop/model/ModelError.java @@ -17,11 +17,15 @@ */ package org.apache.sqoop.model; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.common.ErrorCode; /** * */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public enum ModelError implements ErrorCode { MODEL_001("Attempt to pass two different set of MConfigs for single job type."), diff --git a/common/src/main/java/org/apache/sqoop/model/SubmissionError.java b/common/src/main/java/org/apache/sqoop/model/SubmissionError.java index 698877d3..560d9431 100644 --- a/common/src/main/java/org/apache/sqoop/model/SubmissionError.java +++ b/common/src/main/java/org/apache/sqoop/model/SubmissionError.java @@ -17,9 +17,14 @@ */ package org.apache.sqoop.model; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + /** *Represents the job submission error */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class SubmissionError { /** diff --git a/common/src/main/java/org/apache/sqoop/model/Validator.java b/common/src/main/java/org/apache/sqoop/model/Validator.java index 6368a9d3..d3e8e7c2 100644 --- a/common/src/main/java/org/apache/sqoop/model/Validator.java +++ b/common/src/main/java/org/apache/sqoop/model/Validator.java @@ -17,6 +17,8 @@ */ 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 java.lang.annotation.Retention; @@ -31,6 +33,8 @@ * To specify string parameter call: * @Validator(value = ClassName.class, strArg = "Hello World!") */ +@InterfaceAudience.Public +@InterfaceStability.Unstable @Retention(RetentionPolicy.RUNTIME) public @interface Validator { /** diff --git a/common/src/main/java/org/apache/sqoop/schema/ByteArraySchema.java b/common/src/main/java/org/apache/sqoop/schema/ByteArraySchema.java index 804ebf0c..949484d6 100644 --- a/common/src/main/java/org/apache/sqoop/schema/ByteArraySchema.java +++ b/common/src/main/java/org/apache/sqoop/schema/ByteArraySchema.java @@ -17,12 +17,16 @@ */ package org.apache.sqoop.schema; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.schema.type.Binary; /*** * Schema holding a single field of Binary data Used to support connectors to * schemaless / unstructured systems Such as HDFS or Kafka */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class ByteArraySchema extends Schema { private static final String BYTE_ARRAY_SCHEMA_NAME = "ByteArraySchema"; diff --git a/common/src/main/java/org/apache/sqoop/schema/NullSchema.java b/common/src/main/java/org/apache/sqoop/schema/NullSchema.java index 4a9ae116..184f0068 100644 --- a/common/src/main/java/org/apache/sqoop/schema/NullSchema.java +++ b/common/src/main/java/org/apache/sqoop/schema/NullSchema.java @@ -17,6 +17,11 @@ */ 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 { private static final String NULL_SCHEMA_NAME = "NullSchema"; diff --git a/common/src/main/java/org/apache/sqoop/schema/Schema.java b/common/src/main/java/org/apache/sqoop/schema/Schema.java index bc14bcce..1520300e 100644 --- a/common/src/main/java/org/apache/sqoop/schema/Schema.java +++ b/common/src/main/java/org/apache/sqoop/schema/Schema.java @@ -18,6 +18,8 @@ package org.apache.sqoop.schema; 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.schema.type.Column; @@ -33,6 +35,8 @@ * Schema represents the data fields that are transferred between {@link #From} * and {@link #To} */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class Schema { /** diff --git a/common/src/main/java/org/apache/sqoop/schema/SchemaError.java b/common/src/main/java/org/apache/sqoop/schema/SchemaError.java index 6b7fb483..b0094a28 100644 --- a/common/src/main/java/org/apache/sqoop/schema/SchemaError.java +++ b/common/src/main/java/org/apache/sqoop/schema/SchemaError.java @@ -17,11 +17,15 @@ */ package org.apache.sqoop.schema; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.common.ErrorCode; /** * */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public enum SchemaError implements ErrorCode { SCHEMA_0000("Unknown error"), diff --git a/common/src/main/java/org/apache/sqoop/schema/SchemaMatchOption.java b/common/src/main/java/org/apache/sqoop/schema/SchemaMatchOption.java index e3ab026d..312c68c3 100644 --- a/common/src/main/java/org/apache/sqoop/schema/SchemaMatchOption.java +++ b/common/src/main/java/org/apache/sqoop/schema/SchemaMatchOption.java @@ -17,6 +17,9 @@ */ 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 * 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. */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public enum SchemaMatchOption { NAME, LOCATION, diff --git a/common/src/main/java/org/apache/sqoop/schema/type/AbstractComplexListType.java b/common/src/main/java/org/apache/sqoop/schema/type/AbstractComplexListType.java index f594f4b7..b0bb048b 100644 --- a/common/src/main/java/org/apache/sqoop/schema/type/AbstractComplexListType.java +++ b/common/src/main/java/org/apache/sqoop/schema/type/AbstractComplexListType.java @@ -17,9 +17,14 @@ */ 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 */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public abstract class AbstractComplexListType extends AbstractComplexType { // represents the type of the list elements diff --git a/common/src/main/java/org/apache/sqoop/schema/type/AbstractComplexType.java b/common/src/main/java/org/apache/sqoop/schema/type/AbstractComplexType.java index 7c4200ac..c8130a70 100644 --- a/common/src/main/java/org/apache/sqoop/schema/type/AbstractComplexType.java +++ b/common/src/main/java/org/apache/sqoop/schema/type/AbstractComplexType.java @@ -17,9 +17,14 @@ */ 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 */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public abstract class AbstractComplexType extends Column { public AbstractComplexType(String name) { diff --git a/common/src/main/java/org/apache/sqoop/schema/type/AbstractDateTime.java b/common/src/main/java/org/apache/sqoop/schema/type/AbstractDateTime.java index 413eb37f..83204fa0 100644 --- a/common/src/main/java/org/apache/sqoop/schema/type/AbstractDateTime.java +++ b/common/src/main/java/org/apache/sqoop/schema/type/AbstractDateTime.java @@ -17,9 +17,14 @@ */ 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. */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public abstract class AbstractDateTime extends Column { protected AbstractDateTime(String name) { diff --git a/common/src/main/java/org/apache/sqoop/schema/type/AbstractNumber.java b/common/src/main/java/org/apache/sqoop/schema/type/AbstractNumber.java index 3fccf5a0..2378bc32 100644 --- a/common/src/main/java/org/apache/sqoop/schema/type/AbstractNumber.java +++ b/common/src/main/java/org/apache/sqoop/schema/type/AbstractNumber.java @@ -17,9 +17,14 @@ */ package org.apache.sqoop.schema.type; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + /** * Any type related to number. */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public abstract class AbstractNumber extends AbstractPrimitiveType { protected AbstractNumber(String name) { diff --git a/common/src/main/java/org/apache/sqoop/schema/type/AbstractPrimitiveType.java b/common/src/main/java/org/apache/sqoop/schema/type/AbstractPrimitiveType.java index 24acdf1a..8bbcc35c 100644 --- a/common/src/main/java/org/apache/sqoop/schema/type/AbstractPrimitiveType.java +++ b/common/src/main/java/org/apache/sqoop/schema/type/AbstractPrimitiveType.java @@ -17,9 +17,14 @@ */ package org.apache.sqoop.schema.type; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + /** * Primitive type for column */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public abstract class AbstractPrimitiveType extends Column { public AbstractPrimitiveType(String name) { diff --git a/common/src/main/java/org/apache/sqoop/schema/type/AbstractString.java b/common/src/main/java/org/apache/sqoop/schema/type/AbstractString.java index bc1c80b7..128d786a 100644 --- a/common/src/main/java/org/apache/sqoop/schema/type/AbstractString.java +++ b/common/src/main/java/org/apache/sqoop/schema/type/AbstractString.java @@ -17,9 +17,14 @@ */ 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. */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public abstract class AbstractString extends AbstractPrimitiveType { /** diff --git a/common/src/main/java/org/apache/sqoop/schema/type/Array.java b/common/src/main/java/org/apache/sqoop/schema/type/Array.java index d34fba83..5877e780 100644 --- a/common/src/main/java/org/apache/sqoop/schema/type/Array.java +++ b/common/src/main/java/org/apache/sqoop/schema/type/Array.java @@ -17,11 +17,16 @@ */ 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. * * JDBC Types: array */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class Array extends AbstractComplexListType { /** diff --git a/common/src/main/java/org/apache/sqoop/schema/type/Binary.java b/common/src/main/java/org/apache/sqoop/schema/type/Binary.java index b9622acb..90e23889 100644 --- a/common/src/main/java/org/apache/sqoop/schema/type/Binary.java +++ b/common/src/main/java/org/apache/sqoop/schema/type/Binary.java @@ -17,11 +17,16 @@ */ 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, ...). * * JDBC Types: blob, binary, varbinary */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class Binary extends AbstractString { public Binary(String name) { diff --git a/common/src/main/java/org/apache/sqoop/schema/type/Bit.java b/common/src/main/java/org/apache/sqoop/schema/type/Bit.java index d5d5b67d..d1146646 100644 --- a/common/src/main/java/org/apache/sqoop/schema/type/Bit.java +++ b/common/src/main/java/org/apache/sqoop/schema/type/Bit.java @@ -17,11 +17,16 @@ */ package org.apache.sqoop.schema.type; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + /** * True/False value. * * JDBC Types: bit, boolean */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class Bit extends Column { public Bit(String name) { diff --git a/common/src/main/java/org/apache/sqoop/schema/type/Column.java b/common/src/main/java/org/apache/sqoop/schema/type/Column.java index 2d35c3a6..25f52539 100644 --- a/common/src/main/java/org/apache/sqoop/schema/type/Column.java +++ b/common/src/main/java/org/apache/sqoop/schema/type/Column.java @@ -18,12 +18,16 @@ package org.apache.sqoop.schema.type; 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.schema.SchemaError; /** * Base class for all the supported types in the Sqoop {@link #Schema} */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public abstract class Column { /** diff --git a/common/src/main/java/org/apache/sqoop/schema/type/ColumnType.java b/common/src/main/java/org/apache/sqoop/schema/type/ColumnType.java index d04015e0..9e415bfd 100644 --- a/common/src/main/java/org/apache/sqoop/schema/type/ColumnType.java +++ b/common/src/main/java/org/apache/sqoop/schema/type/ColumnType.java @@ -17,9 +17,14 @@ */ 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. */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public enum ColumnType { ARRAY, BINARY, diff --git a/common/src/main/java/org/apache/sqoop/schema/type/Date.java b/common/src/main/java/org/apache/sqoop/schema/type/Date.java index 2bb72bbf..6099a30a 100644 --- a/common/src/main/java/org/apache/sqoop/schema/type/Date.java +++ b/common/src/main/java/org/apache/sqoop/schema/type/Date.java @@ -17,11 +17,16 @@ */ package org.apache.sqoop.schema.type; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + /** * Date (year, month, day). * * JDBC Types: date */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class Date extends AbstractDateTime { public Date(String name) { diff --git a/common/src/main/java/org/apache/sqoop/schema/type/DateTime.java b/common/src/main/java/org/apache/sqoop/schema/type/DateTime.java index 5e237a61..c1329222 100644 --- a/common/src/main/java/org/apache/sqoop/schema/type/DateTime.java +++ b/common/src/main/java/org/apache/sqoop/schema/type/DateTime.java @@ -17,11 +17,16 @@ */ package org.apache.sqoop.schema.type; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + /** * Date and time information together. * * JDBC Types: datetime, timestamp */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class DateTime extends AbstractDateTime { /** diff --git a/common/src/main/java/org/apache/sqoop/schema/type/Decimal.java b/common/src/main/java/org/apache/sqoop/schema/type/Decimal.java index e6697006..b7572cdd 100644 --- a/common/src/main/java/org/apache/sqoop/schema/type/Decimal.java +++ b/common/src/main/java/org/apache/sqoop/schema/type/Decimal.java @@ -17,11 +17,16 @@ */ 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. * * JDBC Types: numeric, decimal */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class Decimal extends AbstractNumber { /** diff --git a/common/src/main/java/org/apache/sqoop/schema/type/Enum.java b/common/src/main/java/org/apache/sqoop/schema/type/Enum.java index 85a015b1..240d51e8 100644 --- a/common/src/main/java/org/apache/sqoop/schema/type/Enum.java +++ b/common/src/main/java/org/apache/sqoop/schema/type/Enum.java @@ -17,6 +17,9 @@ */ 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.HashSet; @@ -25,7 +28,8 @@ * * JDBC Types: enum */ - +@InterfaceAudience.Public +@InterfaceStability.Unstable public class Enum extends Column { // The options set contains the possible values for the Enum diff --git a/common/src/main/java/org/apache/sqoop/schema/type/FixedPoint.java b/common/src/main/java/org/apache/sqoop/schema/type/FixedPoint.java index 836e4add..84a76ae4 100644 --- a/common/src/main/java/org/apache/sqoop/schema/type/FixedPoint.java +++ b/common/src/main/java/org/apache/sqoop/schema/type/FixedPoint.java @@ -17,11 +17,16 @@ */ package org.apache.sqoop.schema.type; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + /** * Basic non-floating number. * * JDBC Types: int, long, bigint, smallint */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class FixedPoint extends AbstractNumber { /** diff --git a/common/src/main/java/org/apache/sqoop/schema/type/FloatingPoint.java b/common/src/main/java/org/apache/sqoop/schema/type/FloatingPoint.java index 7dcc753a..4fa0c309 100644 --- a/common/src/main/java/org/apache/sqoop/schema/type/FloatingPoint.java +++ b/common/src/main/java/org/apache/sqoop/schema/type/FloatingPoint.java @@ -17,11 +17,16 @@ */ package org.apache.sqoop.schema.type; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + /** * Floating point represented as IEEE norm. * * JDBC Types: double, float, real */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class FloatingPoint extends AbstractNumber { /** diff --git a/common/src/main/java/org/apache/sqoop/schema/type/Map.java b/common/src/main/java/org/apache/sqoop/schema/type/Map.java index 244506c1..b7cc6e5c 100644 --- a/common/src/main/java/org/apache/sqoop/schema/type/Map.java +++ b/common/src/main/java/org/apache/sqoop/schema/type/Map.java @@ -17,11 +17,16 @@ */ package org.apache.sqoop.schema.type; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + /** * Associative array. * * JDBC Types: map */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class Map extends AbstractComplexType { // They key can be either a string or number diff --git a/common/src/main/java/org/apache/sqoop/schema/type/Set.java b/common/src/main/java/org/apache/sqoop/schema/type/Set.java index 4e28cad0..21451e8e 100644 --- a/common/src/main/java/org/apache/sqoop/schema/type/Set.java +++ b/common/src/main/java/org/apache/sqoop/schema/type/Set.java @@ -17,11 +17,16 @@ */ package org.apache.sqoop.schema.type; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + /** * Set contains unique values in a collection of a given type * * JDBC Types: set */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class Set extends AbstractComplexListType { public Set(String name, Column listType) { diff --git a/common/src/main/java/org/apache/sqoop/schema/type/Text.java b/common/src/main/java/org/apache/sqoop/schema/type/Text.java index 9dde1de2..96cf1003 100644 --- a/common/src/main/java/org/apache/sqoop/schema/type/Text.java +++ b/common/src/main/java/org/apache/sqoop/schema/type/Text.java @@ -17,11 +17,16 @@ */ package org.apache.sqoop.schema.type; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + /** * String. * * JDBC Types: char, varchar, nchar, clob */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class Text extends AbstractString { public Text(String name) { diff --git a/common/src/main/java/org/apache/sqoop/schema/type/Time.java b/common/src/main/java/org/apache/sqoop/schema/type/Time.java index e9adce9d..0a63ec3c 100644 --- a/common/src/main/java/org/apache/sqoop/schema/type/Time.java +++ b/common/src/main/java/org/apache/sqoop/schema/type/Time.java @@ -17,11 +17,16 @@ */ package org.apache.sqoop.schema.type; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + /** * Time (hours, minutes, seconds). * * JDBC Types: time */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class Time extends AbstractDateTime { /** diff --git a/common/src/main/java/org/apache/sqoop/schema/type/Unknown.java b/common/src/main/java/org/apache/sqoop/schema/type/Unknown.java index 90fb0f02..79dfdc50 100644 --- a/common/src/main/java/org/apache/sqoop/schema/type/Unknown.java +++ b/common/src/main/java/org/apache/sqoop/schema/type/Unknown.java @@ -17,10 +17,15 @@ */ package org.apache.sqoop.schema.type; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + /** * Unknown column type (internally encoded as binary) * */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class Unknown extends Binary { /** diff --git a/common/src/main/java/org/apache/sqoop/submission/SubmissionStatus.java b/common/src/main/java/org/apache/sqoop/submission/SubmissionStatus.java index e2da8f54..04f5a24a 100644 --- a/common/src/main/java/org/apache/sqoop/submission/SubmissionStatus.java +++ b/common/src/main/java/org/apache/sqoop/submission/SubmissionStatus.java @@ -17,9 +17,14 @@ */ package org.apache.sqoop.submission; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + /** * List of states where the submission might be. */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public enum SubmissionStatus { /** diff --git a/common/src/main/java/org/apache/sqoop/submission/counter/Counter.java b/common/src/main/java/org/apache/sqoop/submission/counter/Counter.java index 6b9cfc0c..44deda39 100644 --- a/common/src/main/java/org/apache/sqoop/submission/counter/Counter.java +++ b/common/src/main/java/org/apache/sqoop/submission/counter/Counter.java @@ -17,9 +17,14 @@ */ package org.apache.sqoop.submission.counter; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + /** * */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public class Counter { private final String name; private long value; diff --git a/common/src/main/java/org/apache/sqoop/submission/counter/CounterGroup.java b/common/src/main/java/org/apache/sqoop/submission/counter/CounterGroup.java index 62a64c4c..3e4183fe 100644 --- a/common/src/main/java/org/apache/sqoop/submission/counter/CounterGroup.java +++ b/common/src/main/java/org/apache/sqoop/submission/counter/CounterGroup.java @@ -17,6 +17,9 @@ */ package org.apache.sqoop.submission.counter; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + import java.util.HashMap; import java.util.Iterator; import java.util.Map; @@ -24,6 +27,8 @@ /** * */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public class CounterGroup implements Iterable { private final String name; diff --git a/common/src/main/java/org/apache/sqoop/submission/counter/Counters.java b/common/src/main/java/org/apache/sqoop/submission/counter/Counters.java index 92984190..b50f660b 100644 --- a/common/src/main/java/org/apache/sqoop/submission/counter/Counters.java +++ b/common/src/main/java/org/apache/sqoop/submission/counter/Counters.java @@ -17,6 +17,9 @@ */ package org.apache.sqoop.submission.counter; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + import java.util.HashMap; import java.util.Iterator; import java.util.Map; @@ -24,6 +27,8 @@ /** * */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public class Counters implements Iterable { Map groups; diff --git a/common/src/main/java/org/apache/sqoop/submission/counter/SqoopCounters.java b/common/src/main/java/org/apache/sqoop/submission/counter/SqoopCounters.java index dd9dd68e..005c8eb9 100644 --- a/common/src/main/java/org/apache/sqoop/submission/counter/SqoopCounters.java +++ b/common/src/main/java/org/apache/sqoop/submission/counter/SqoopCounters.java @@ -17,9 +17,14 @@ */ package org.apache.sqoop.submission.counter; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + /** * */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public enum SqoopCounters { ROWS_READ, ROWS_WRITTEN diff --git a/common/src/main/java/org/apache/sqoop/utils/ClassUtils.java b/common/src/main/java/org/apache/sqoop/utils/ClassUtils.java index d6a82547..2c8d230a 100644 --- a/common/src/main/java/org/apache/sqoop/utils/ClassUtils.java +++ b/common/src/main/java/org/apache/sqoop/utils/ClassUtils.java @@ -22,8 +22,12 @@ import java.lang.reflect.Method; import java.util.ArrayList; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.log4j.Logger; +@InterfaceAudience.Public +@InterfaceStability.Unstable public final class ClassUtils { private static final Logger LOG = Logger.getLogger(ClassUtils.class); diff --git a/common/src/main/java/org/apache/sqoop/utils/MapResourceBundle.java b/common/src/main/java/org/apache/sqoop/utils/MapResourceBundle.java index 8dbeb706..1ea97e36 100644 --- a/common/src/main/java/org/apache/sqoop/utils/MapResourceBundle.java +++ b/common/src/main/java/org/apache/sqoop/utils/MapResourceBundle.java @@ -17,6 +17,9 @@ */ package org.apache.sqoop.utils; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + import java.util.Collections; import java.util.Enumeration; import java.util.Map; @@ -25,6 +28,8 @@ /** * Wrapper class to hold the resource bundle key-value pairs in a collections map object */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public class MapResourceBundle extends ResourceBundle { private Map bundle; diff --git a/common/src/main/java/org/apache/sqoop/utils/UrlSafeUtils.java b/common/src/main/java/org/apache/sqoop/utils/UrlSafeUtils.java index f448c94d..369037a1 100644 --- a/common/src/main/java/org/apache/sqoop/utils/UrlSafeUtils.java +++ b/common/src/main/java/org/apache/sqoop/utils/UrlSafeUtils.java @@ -17,6 +17,9 @@ */ package org.apache.sqoop.utils; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.net.URLEncoder; @@ -24,6 +27,8 @@ /** * Miscellaneous utility methods that help in URL-safe communication over HTTP. */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public final class UrlSafeUtils { public static final String ENCODING_UTF8 = "UTF-8"; diff --git a/common/src/main/java/org/apache/sqoop/validation/ConfigValidationError.java b/common/src/main/java/org/apache/sqoop/validation/ConfigValidationError.java index 34536485..77f86d67 100644 --- a/common/src/main/java/org/apache/sqoop/validation/ConfigValidationError.java +++ b/common/src/main/java/org/apache/sqoop/validation/ConfigValidationError.java @@ -17,11 +17,15 @@ */ package org.apache.sqoop.validation; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.common.ErrorCode; /** * */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public enum ConfigValidationError implements ErrorCode { VALIDATION_0000("Unknown error"), diff --git a/common/src/main/java/org/apache/sqoop/validation/ConfigValidationResult.java b/common/src/main/java/org/apache/sqoop/validation/ConfigValidationResult.java index 4c4d1232..6d846e76 100644 --- a/common/src/main/java/org/apache/sqoop/validation/ConfigValidationResult.java +++ b/common/src/main/java/org/apache/sqoop/validation/ConfigValidationResult.java @@ -17,6 +17,8 @@ */ package org.apache.sqoop.validation; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.validation.validators.AbstractValidator; import java.util.HashMap; @@ -26,6 +28,8 @@ /** * Result of validation execution. */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class ConfigValidationResult { /** diff --git a/common/src/main/java/org/apache/sqoop/validation/ConfigValidationRunner.java b/common/src/main/java/org/apache/sqoop/validation/ConfigValidationRunner.java index 8c66b3d5..26c8a7f0 100644 --- a/common/src/main/java/org/apache/sqoop/validation/ConfigValidationRunner.java +++ b/common/src/main/java/org/apache/sqoop/validation/ConfigValidationRunner.java @@ -17,6 +17,8 @@ */ package org.apache.sqoop.validation; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.common.SqoopException; import org.apache.sqoop.model.ConfigurationClass; import org.apache.sqoop.model.Config; @@ -44,6 +46,8 @@ * unless all configs will pass validators. * */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class ConfigValidationRunner { /** diff --git a/common/src/main/java/org/apache/sqoop/validation/Message.java b/common/src/main/java/org/apache/sqoop/validation/Message.java index 3361b6f8..673dbac0 100644 --- a/common/src/main/java/org/apache/sqoop/validation/Message.java +++ b/common/src/main/java/org/apache/sqoop/validation/Message.java @@ -17,12 +17,17 @@ */ package org.apache.sqoop.validation; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + /** * Validation message. * * Validation message have always two parts - severity and textual information about what * is wrong. It can be associated with Input, Config or ConfigurationGroup class. */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class Message { private Status status; private String message; diff --git a/common/src/main/java/org/apache/sqoop/validation/Status.java b/common/src/main/java/org/apache/sqoop/validation/Status.java index 1b5ad882..7cca4d9e 100644 --- a/common/src/main/java/org/apache/sqoop/validation/Status.java +++ b/common/src/main/java/org/apache/sqoop/validation/Status.java @@ -17,6 +17,9 @@ */ package org.apache.sqoop.validation; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + /** * Severity of validation message. * @@ -34,6 +37,8 @@ * Error represents unacceptable element content. For example in case of JDBC * URL path, error would be empty element or element containing invalid URL. */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public enum Status { /** * There are no issues, no warnings. Everything is correct. diff --git a/common/src/main/java/org/apache/sqoop/validation/validators/AbstractValidator.java b/common/src/main/java/org/apache/sqoop/validation/validators/AbstractValidator.java index 9dbb44c8..ef6ad8e7 100644 --- a/common/src/main/java/org/apache/sqoop/validation/validators/AbstractValidator.java +++ b/common/src/main/java/org/apache/sqoop/validation/validators/AbstractValidator.java @@ -17,6 +17,8 @@ */ package org.apache.sqoop.validation.validators; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.validation.Message; import org.apache.sqoop.validation.Status; @@ -28,6 +30,8 @@ * * Can be used to validate inputs, forms and configuration classes. */ +@InterfaceAudience.Public +@InterfaceStability.Unstable abstract public class AbstractValidator { /** diff --git a/common/src/main/java/org/apache/sqoop/validation/validators/CSVURIValidator.java b/common/src/main/java/org/apache/sqoop/validation/validators/CSVURIValidator.java index a82a238f..1bef4e7b 100644 --- a/common/src/main/java/org/apache/sqoop/validation/validators/CSVURIValidator.java +++ b/common/src/main/java/org/apache/sqoop/validation/validators/CSVURIValidator.java @@ -17,11 +17,15 @@ */ package org.apache.sqoop.validation.validators; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.validation.Status; /** * Validate a string takes on the form: host:port,host:port,... */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class CSVURIValidator extends AbstractValidator { // validate that given string is a comma-separated list of host:port diff --git a/common/src/main/java/org/apache/sqoop/validation/validators/ClassAvailable.java b/common/src/main/java/org/apache/sqoop/validation/validators/ClassAvailable.java index ed7434f9..52706b2e 100644 --- a/common/src/main/java/org/apache/sqoop/validation/validators/ClassAvailable.java +++ b/common/src/main/java/org/apache/sqoop/validation/validators/ClassAvailable.java @@ -17,12 +17,16 @@ */ package org.apache.sqoop.validation.validators; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.validation.Message; import org.apache.sqoop.validation.Status; /** * Ensure that given String Input is a class that is available to this JVM. */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class ClassAvailable extends AbstractValidator { @Override public void validate(String klass) { diff --git a/common/src/main/java/org/apache/sqoop/validation/validators/Contains.java b/common/src/main/java/org/apache/sqoop/validation/validators/Contains.java index 98118dc8..21c230c2 100644 --- a/common/src/main/java/org/apache/sqoop/validation/validators/Contains.java +++ b/common/src/main/java/org/apache/sqoop/validation/validators/Contains.java @@ -17,11 +17,15 @@ */ package org.apache.sqoop.validation.validators; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.validation.Status; /** * String validator to verify presence of a sub string (provided as a String argument) */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class Contains extends AbstractValidator { @Override public void validate(String str) { diff --git a/common/src/main/java/org/apache/sqoop/validation/validators/DatasetURIValidator.java b/common/src/main/java/org/apache/sqoop/validation/validators/DatasetURIValidator.java index 2a69d5cc..ad298eda 100644 --- a/common/src/main/java/org/apache/sqoop/validation/validators/DatasetURIValidator.java +++ b/common/src/main/java/org/apache/sqoop/validation/validators/DatasetURIValidator.java @@ -18,6 +18,8 @@ package org.apache.sqoop.validation.validators; import com.google.common.base.Strings; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.validation.Status; import java.util.regex.Pattern; @@ -25,6 +27,8 @@ /** * Ensure that given string represents a Kite dataset uri. */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class DatasetURIValidator extends AbstractValidator { private static final Pattern DATASET_URI_PATTERN = Pattern diff --git a/common/src/main/java/org/apache/sqoop/validation/validators/HostAndPortValidator.java b/common/src/main/java/org/apache/sqoop/validation/validators/HostAndPortValidator.java index 613aee48..f4b9c7c4 100644 --- a/common/src/main/java/org/apache/sqoop/validation/validators/HostAndPortValidator.java +++ b/common/src/main/java/org/apache/sqoop/validation/validators/HostAndPortValidator.java @@ -18,6 +18,8 @@ package org.apache.sqoop.validation.validators; import com.google.common.base.Strings; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.validation.Status; import java.net.URI; @@ -26,6 +28,8 @@ /** * Ensure that given string represents a hostname or hostname:port. */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class HostAndPortValidator extends AbstractValidator { @Override diff --git a/common/src/main/java/org/apache/sqoop/validation/validators/NotEmpty.java b/common/src/main/java/org/apache/sqoop/validation/validators/NotEmpty.java index b1892997..881616bb 100644 --- a/common/src/main/java/org/apache/sqoop/validation/validators/NotEmpty.java +++ b/common/src/main/java/org/apache/sqoop/validation/validators/NotEmpty.java @@ -17,6 +17,8 @@ */ package org.apache.sqoop.validation.validators; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.validation.Status; /** @@ -24,6 +26,8 @@ * * Will also ensure that the string is not null. */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class NotEmpty extends AbstractValidator { @Override public void validate(String instance) { diff --git a/common/src/main/java/org/apache/sqoop/validation/validators/NotNull.java b/common/src/main/java/org/apache/sqoop/validation/validators/NotNull.java index 1235d0e9..96d6d863 100644 --- a/common/src/main/java/org/apache/sqoop/validation/validators/NotNull.java +++ b/common/src/main/java/org/apache/sqoop/validation/validators/NotNull.java @@ -17,11 +17,15 @@ */ package org.apache.sqoop.validation.validators; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.validation.Status; /** * Ensure that given object is never null. */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class NotNull extends AbstractValidator { @Override public void validate(T instance) { diff --git a/common/src/main/java/org/apache/sqoop/validation/validators/NullOrContains.java b/common/src/main/java/org/apache/sqoop/validation/validators/NullOrContains.java index f5020061..8e635604 100644 --- a/common/src/main/java/org/apache/sqoop/validation/validators/NullOrContains.java +++ b/common/src/main/java/org/apache/sqoop/validation/validators/NullOrContains.java @@ -17,11 +17,15 @@ */ package org.apache.sqoop.validation.validators; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.validation.Status; /** * String validator to verify presence of a sub string (provided as a String argument) */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class NullOrContains extends AbstractValidator { @Override public void validate(String str) { diff --git a/common/src/main/java/org/apache/sqoop/validation/validators/StartsWith.java b/common/src/main/java/org/apache/sqoop/validation/validators/StartsWith.java index c9a2a0f7..37a189d5 100644 --- a/common/src/main/java/org/apache/sqoop/validation/validators/StartsWith.java +++ b/common/src/main/java/org/apache/sqoop/validation/validators/StartsWith.java @@ -17,11 +17,15 @@ */ package org.apache.sqoop.validation.validators; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.validation.Status; /** * String validator to verify if Input starts with given string (String argument). */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class StartsWith extends AbstractValidator { @Override public void validate(String str) { diff --git a/connector/connector-sdk/pom.xml b/connector/connector-sdk/pom.xml index ff79ec17..c888aa02 100644 --- a/connector/connector-sdk/pom.xml +++ b/connector/connector-sdk/pom.xml @@ -45,16 +45,14 @@ limitations under the License. testng test - org.apache.sqoop sqoop-common - + org.apache.avro avro - diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/configurable/ConfigurableError.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/configurable/ConfigurableError.java index ee118469..6236870b 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/configurable/ConfigurableError.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/configurable/ConfigurableError.java @@ -17,8 +17,12 @@ */ package org.apache.sqoop.configurable; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.common.ErrorCode; +@InterfaceAudience.Public +@InterfaceStability.Unstable public enum ConfigurableError implements ErrorCode { /** An unknown error has occurred. */ diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/configurable/ConfigurableUpgradeUtil.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/configurable/ConfigurableUpgradeUtil.java index 715a61cf..a76ceb3e 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/configurable/ConfigurableUpgradeUtil.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/configurable/ConfigurableUpgradeUtil.java @@ -21,11 +21,15 @@ import java.util.List; import java.util.Map; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.log4j.Logger; import org.apache.sqoop.common.SqoopException; import org.apache.sqoop.model.MConfig; import org.apache.sqoop.model.MInput; +@InterfaceAudience.Public +@InterfaceStability.Unstable public class ConfigurableUpgradeUtil { private static final Logger LOG = Logger.getLogger(ConfigurableUpgradeUtil.class); diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/AvroDataTypeUtil.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/AvroDataTypeUtil.java index a71385b1..759bd9f6 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/AvroDataTypeUtil.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/AvroDataTypeUtil.java @@ -19,6 +19,8 @@ import org.apache.avro.Schema; import org.apache.avro.generic.GenericRecord; +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.Bit; import org.apache.sqoop.schema.type.Column; @@ -33,6 +35,8 @@ * The helper class provides methods to convert Sqoop data types to Avro * supported data types. */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public class AvroDataTypeUtil { public static org.apache.sqoop.schema.Schema createSqoopSchema( diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/EmptyConfiguration.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/EmptyConfiguration.java index 60b9e930..c99ee957 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/EmptyConfiguration.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/EmptyConfiguration.java @@ -17,12 +17,16 @@ */ package org.apache.sqoop.connector.common; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.model.ConfigurationClass; /** * Marker empty link configuration class with empty config * **/ +@InterfaceAudience.Public +@InterfaceStability.Unstable @ConfigurationClass public class EmptyConfiguration { diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/FileFormat.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/FileFormat.java index 0625fcea..393aba56 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/FileFormat.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/FileFormat.java @@ -17,9 +17,14 @@ */ package org.apache.sqoop.connector.common; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + /** * Various supported file formats to write */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public enum FileFormat { /** diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/JarUtil.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/JarUtil.java index acdda6d4..e3068f02 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/JarUtil.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/JarUtil.java @@ -17,6 +17,9 @@ */ package org.apache.sqoop.connector.common; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + import java.net.URL; import java.net.URLClassLoader; import java.util.LinkedList; @@ -26,6 +29,8 @@ /** * The helper class provides methods for loading jars. */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class JarUtil { /** diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/SqoopAvroUtils.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/SqoopAvroUtils.java index c19c7f47..d62a8a4d 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/SqoopAvroUtils.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/SqoopAvroUtils.java @@ -18,6 +18,8 @@ package org.apache.sqoop.connector.common; import org.apache.avro.Schema; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.common.SqoopException; import org.apache.sqoop.connector.idf.IntermediateDataFormatError; import org.apache.sqoop.schema.type.AbstractComplexListType; @@ -30,6 +32,8 @@ import java.util.List; import java.util.Set; +@InterfaceAudience.Public +@InterfaceStability.Unstable public class SqoopAvroUtils { public static final String COLUMN_TYPE = "columnType"; diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/SqoopIDFUtils.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/SqoopIDFUtils.java index 800630f7..86303694 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/SqoopIDFUtils.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/common/SqoopIDFUtils.java @@ -17,6 +17,8 @@ */ package org.apache.sqoop.connector.common; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.common.SqoopException; import org.apache.sqoop.connector.idf.CSVIntermediateDataFormatError; import org.apache.sqoop.connector.idf.IntermediateDataFormatError; @@ -52,7 +54,8 @@ * +Format+API * */ - +@InterfaceAudience.Public +@InterfaceStability.Unstable public class SqoopIDFUtils { public static final String NULL_VALUE = "NULL"; diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/AVROIntermediateDataFormat.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/AVROIntermediateDataFormat.java index 4d68ea06..33505999 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/AVROIntermediateDataFormat.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/AVROIntermediateDataFormat.java @@ -33,6 +33,8 @@ import org.apache.avro.io.DecoderFactory; import org.apache.avro.io.EncoderFactory; import org.apache.avro.util.Utf8; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.common.SqoopException; import org.apache.sqoop.schema.type.Column; import org.apache.sqoop.utils.ClassUtils; @@ -54,6 +56,8 @@ /** * IDF representing the intermediate format in Avro object */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class AVROIntermediateDataFormat extends IntermediateDataFormat { private Schema avroSchema; diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/AVROIntermediateDataFormatError.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/AVROIntermediateDataFormatError.java index 3dcbf4a7..fd1b7d35 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/AVROIntermediateDataFormatError.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/AVROIntermediateDataFormatError.java @@ -19,8 +19,12 @@ package org.apache.sqoop.connector.idf; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.common.ErrorCode; +@InterfaceAudience.Public +@InterfaceStability.Unstable public enum AVROIntermediateDataFormatError implements ErrorCode { /** An unknown error has occurred. */ AVRO_INTERMEDIATE_DATA_FORMAT_0000("An unknown error has occurred."), diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/CSVIntermediateDataFormat.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/CSVIntermediateDataFormat.java index 4870fae4..b716e793 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/CSVIntermediateDataFormat.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/CSVIntermediateDataFormat.java @@ -20,6 +20,8 @@ import static org.apache.sqoop.connector.common.SqoopIDFUtils.*; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.log4j.Logger; import org.apache.sqoop.common.SqoopException; import org.apache.sqoop.schema.Schema; @@ -41,6 +43,8 @@ * {@link #Schema} and its {@link #Column} types. * */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class CSVIntermediateDataFormat extends IntermediateDataFormat { public static final Logger LOG = Logger.getLogger(CSVIntermediateDataFormat.class); diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/CSVIntermediateDataFormatError.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/CSVIntermediateDataFormatError.java index 9aae2512..6828bb90 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/CSVIntermediateDataFormatError.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/CSVIntermediateDataFormatError.java @@ -18,8 +18,12 @@ */ package org.apache.sqoop.connector.idf; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.common.ErrorCode; +@InterfaceAudience.Public +@InterfaceStability.Unstable public enum CSVIntermediateDataFormatError implements ErrorCode { /** An unknown error has occurred. */ CSV_INTERMEDIATE_DATA_FORMAT_0000("An unknown error has occurred."), diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/IntermediateDataFormat.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/IntermediateDataFormat.java index 6f945c2c..8bcf8c30 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/IntermediateDataFormat.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/IntermediateDataFormat.java @@ -18,6 +18,8 @@ */ package org.apache.sqoop.connector.idf; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.common.SqoopException; import org.apache.sqoop.schema.Schema; import org.apache.sqoop.utils.ClassUtils; @@ -49,6 +51,8 @@ * @param - Each data format may have a native representation of the * data, represented by the parameter. */ +@InterfaceAudience.Public +@InterfaceStability.Unstable @SuppressWarnings("rawtypes") public abstract class IntermediateDataFormat implements Comparable { diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/IntermediateDataFormatError.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/IntermediateDataFormatError.java index f4e1fb7a..f7c9abb4 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/IntermediateDataFormatError.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/IntermediateDataFormatError.java @@ -18,8 +18,12 @@ */ package org.apache.sqoop.connector.idf; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.common.ErrorCode; +@InterfaceAudience.Public +@InterfaceStability.Unstable public enum IntermediateDataFormatError implements ErrorCode { /** An unknown error has occurred. */ INTERMEDIATE_DATA_FORMAT_0000("An unknown error has occurred."), diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/JSONIntermediateDataFormat.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/JSONIntermediateDataFormat.java index c8df6e0a..4c67c1ab 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/JSONIntermediateDataFormat.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/JSONIntermediateDataFormat.java @@ -21,6 +21,8 @@ import static org.apache.sqoop.connector.common.SqoopIDFUtils.*; import org.apache.commons.codec.binary.Base64; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.common.SqoopException; import org.apache.sqoop.schema.Schema; import org.apache.sqoop.schema.type.Column; @@ -39,6 +41,8 @@ /** * IDF representing the intermediate format in JSON */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public class JSONIntermediateDataFormat extends IntermediateDataFormat { // need this default constructor for reflection magic used in execution engine diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/JSONIntermediateDataFormatError.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/JSONIntermediateDataFormatError.java index 72d9d872..0c29a8fe 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/JSONIntermediateDataFormatError.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/JSONIntermediateDataFormatError.java @@ -19,8 +19,12 @@ package org.apache.sqoop.connector.idf; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.common.ErrorCode; +@InterfaceAudience.Public +@InterfaceStability.Unstable public enum JSONIntermediateDataFormatError implements ErrorCode { /** An unknown error has occurred. */ JSON_INTERMEDIATE_DATA_FORMAT_0000("An unknown error has occurred."), diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/LocationMatcher.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/LocationMatcher.java index d92723ea..10772d9b 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/LocationMatcher.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/LocationMatcher.java @@ -17,6 +17,8 @@ */ package org.apache.sqoop.connector.matcher; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.schema.Schema; import org.apache.sqoop.schema.type.Column; @@ -27,6 +29,8 @@ * their values will be set to null. If TO schema has extra non-null fields, we * will throw an exception. */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public class LocationMatcher extends Matcher { public LocationMatcher(Schema from, Schema to) { diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/Matcher.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/Matcher.java index 36ac5a50..899f7341 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/Matcher.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/Matcher.java @@ -17,6 +17,8 @@ */ package org.apache.sqoop.connector.matcher; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.log4j.Logger; import org.apache.sqoop.common.SqoopException; import org.apache.sqoop.schema.ByteArraySchema; @@ -24,6 +26,8 @@ import org.apache.sqoop.schema.SchemaError; import org.apache.sqoop.schema.type.Column; +@InterfaceAudience.Public +@InterfaceStability.Unstable public abstract class Matcher { private static final Logger LOG = Logger.getLogger(Matcher.class); diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/MatcherError.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/MatcherError.java index 577b0916..18693c27 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/MatcherError.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/MatcherError.java @@ -18,8 +18,12 @@ */ package org.apache.sqoop.connector.matcher; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.common.ErrorCode; +@InterfaceAudience.Public +@InterfaceStability.Unstable public enum MatcherError implements ErrorCode { MATCHER_0000("To few Schemas provided."), diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/MatcherFactory.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/MatcherFactory.java index ae89e6ce..df7b0059 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/MatcherFactory.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/MatcherFactory.java @@ -17,8 +17,12 @@ */ package org.apache.sqoop.connector.matcher; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.schema.Schema; +@InterfaceAudience.Private +@InterfaceStability.Unstable public class MatcherFactory { public static Matcher getMatcher(Schema fromSchema, Schema toSchema) { if (toSchema.isEmpty() || fromSchema.isEmpty()) { diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/NameMatcher.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/NameMatcher.java index 7cbc39fc..365cb870 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/NameMatcher.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/matcher/NameMatcher.java @@ -17,6 +17,8 @@ */ package org.apache.sqoop.connector.matcher; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.schema.Schema; import org.apache.sqoop.schema.type.Column; @@ -28,6 +30,8 @@ * "nullable", their values will be set to null. If TO schema has extra non-null * fields, we will throw an exception. */ +@InterfaceAudience.Private +@InterfaceStability.Unstable public class NameMatcher extends Matcher { private HashMap fromColNameIndexMap; diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/spi/ConnectorConfigurableUpgrader.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/spi/ConnectorConfigurableUpgrader.java index b5e0c0d2..55f8edbe 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/spi/ConnectorConfigurableUpgrader.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/spi/ConnectorConfigurableUpgrader.java @@ -18,6 +18,8 @@ */ package org.apache.sqoop.connector.spi; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.common.SqoopException; import org.apache.sqoop.configurable.ConfigurableError; import org.apache.sqoop.model.MFromConfig; @@ -32,6 +34,8 @@ * versions * */ +@InterfaceAudience.Public +@InterfaceStability.Unstable public abstract class ConnectorConfigurableUpgrader { /** @@ -63,11 +67,11 @@ public void upgradeLinkConfig(MLinkConfig original, MLinkConfig upgradeTarget) { * @param upgradeTarget - the instance that will be filled in with the * upgraded config */ - public void upgradeFromJobConfig(MFromConfig original, MFromConfig upgradeTarget) { // see above for the reasoning behind the exception throw new SqoopException(ConfigurableError.CONFIGURABLE_0002); } + /** * Upgrade the original TO job config for the given config type and fill into the upgradeTarget. Note * that any data already in {@code upgradeTarget} maybe overwritten. diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/spi/SqoopConnector.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/spi/SqoopConnector.java index ff6392ef..ff8bb224 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/spi/SqoopConnector.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/spi/SqoopConnector.java @@ -22,6 +22,8 @@ import java.util.Locale; 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.connector.idf.CSVIntermediateDataFormat; import org.apache.sqoop.connector.idf.IntermediateDataFormat; @@ -31,6 +33,8 @@ /** * Service provider interface for Sqoop Connectors. */ +@InterfaceAudience.Public +@InterfaceStability.Evolving public abstract class SqoopConnector { /** diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/job/Constants.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/job/Constants.java index 90935cfb..65ad98b7 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/job/Constants.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/job/Constants.java @@ -17,6 +17,11 @@ */ package org.apache.sqoop.job; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + +@InterfaceAudience.Private +@InterfaceStability.Unstable public class Constants { /** diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/Destroyer.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/Destroyer.java index 84861544..b4ab6d77 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/Destroyer.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/Destroyer.java @@ -17,10 +17,15 @@ */ package org.apache.sqoop.job.etl; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + /** * This allows connector to define work to complete execution, for example, * resource cleaning. */ +@InterfaceAudience.Public +@InterfaceStability.Evolving public abstract class Destroyer { /** diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/Extractor.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/Extractor.java index 85e91ef5..db600dcf 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/Extractor.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/Extractor.java @@ -17,10 +17,15 @@ */ package org.apache.sqoop.job.etl; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + /** * This allows connector to extract data from a source system * based on each partition. */ +@InterfaceAudience.Public +@InterfaceStability.Evolving public abstract class Extractor { /** diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/From.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/From.java index 3dd8fb93..e9d2abe0 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/From.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/From.java @@ -17,6 +17,9 @@ */ package org.apache.sqoop.job.etl; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + /** * This specifies classes that perform connector-defined steps * within import execution: @@ -26,6 +29,8 @@ * -> (Sqoop-defined steps) * -> Destroyer */ +@InterfaceAudience.Public +@InterfaceStability.Evolving public class From extends Transferable { private Class partitioner; diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/Initializer.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/Initializer.java index 7dd156ea..fddd1629 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/Initializer.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/Initializer.java @@ -20,6 +20,8 @@ import java.util.HashSet; import java.util.Set; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; import org.apache.sqoop.schema.NullSchema; import org.apache.sqoop.schema.Schema; @@ -27,6 +29,8 @@ * This allows connector to define initialization work for execution, * for example, context configuration. */ +@InterfaceAudience.Public +@InterfaceStability.Evolving public abstract class Initializer { /** diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/Loader.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/Loader.java index e47b244b..a085eca0 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/Loader.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/Loader.java @@ -17,9 +17,14 @@ */ package org.apache.sqoop.job.etl; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + /** * This allows connector to load data into a target system. */ +@InterfaceAudience.Public +@InterfaceStability.Evolving public abstract class Loader { /** diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/Partition.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/Partition.java index db07844e..c4664a60 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/Partition.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/Partition.java @@ -17,6 +17,9 @@ */ package org.apache.sqoop.job.etl; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; @@ -24,6 +27,8 @@ /** * A part of the input data partitioned by the Partitioner. */ +@InterfaceAudience.Public +@InterfaceStability.Evolving public abstract class Partition { /** diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/Partitioner.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/Partitioner.java index 36361305..067c5094 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/Partitioner.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/Partitioner.java @@ -17,12 +17,17 @@ */ package org.apache.sqoop.job.etl; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + import java.util.List; /** * This allows connector to define how input data from the FROM source can be partitioned. * The number of data partitions also determines the degree of parallelism. */ +@InterfaceAudience.Public +@InterfaceStability.Evolving public abstract class Partitioner { /** diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/To.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/To.java index 64ba2252..bbb6e41f 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/To.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/To.java @@ -17,6 +17,9 @@ */ package org.apache.sqoop.job.etl; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + /** * This specifies classes that perform connector-defined steps * within export execution: @@ -25,6 +28,8 @@ * -> Loader * -> Destroyer */ +@InterfaceAudience.Public +@InterfaceStability.Evolving public class To extends Transferable { private Class loader; diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/Transferable.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/Transferable.java index dfe1d5e1..64108947 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/Transferable.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/job/etl/Transferable.java @@ -17,11 +17,16 @@ */ package org.apache.sqoop.job.etl; +import org.apache.sqoop.classification.InterfaceAudience; +import org.apache.sqoop.classification.InterfaceStability; + /** * This entity encapsulates the workflow for data transfer via the * {@link SqoopConnector}.It basically acts as an adapter between the data-source * imported from or exported to. */ +@InterfaceAudience.Public +@InterfaceStability.Evolving public abstract class Transferable { private Class initializer; diff --git a/pom.xml b/pom.xml index 3297c00e..66451e78 100644 --- a/pom.xml +++ b/pom.xml @@ -253,7 +253,6 @@ limitations under the License. hadoop-auth ${hadoop.2.version} -