[go: nahoru, domu]

Merge "VersionedParcelable compiler artifact" into androidx-master-dev am: 22185bfa5d

Change-Id: I5f2fec1f7371597d606fa16f226a5413e9f160fb
diff --git a/buildSrc/src/main/kotlin/androidx/build/PublishDocsRules.kt b/buildSrc/src/main/kotlin/androidx/build/PublishDocsRules.kt
index 512c9c9..62198db 100644
--- a/buildSrc/src/main/kotlin/androidx/build/PublishDocsRules.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/PublishDocsRules.kt
@@ -137,7 +137,8 @@
     prebuilts(LibraryGroups.VECTORDRAWABLE, "vectordrawable", "1.2.0-alpha01")
     prebuilts(LibraryGroups.VECTORDRAWABLE, "vectordrawable-animated", "1.1.0")
     prebuilts(LibraryGroups.VECTORDRAWABLE, "vectordrawable-seekable", "1.0.0-alpha01")
-    prebuilts(LibraryGroups.VERSIONEDPARCELABLE, "1.1.1")
+    ignore(LibraryGroups.VERSIONEDPARCELABLE.group, "versionedparcelable-compiler")
+    prebuilts(LibraryGroups.VERSIONEDPARCELABLE, "versionedparcelable", "1.1.1")
     prebuilts(LibraryGroups.VIEWPAGER, "1.0.0")
     prebuilts(LibraryGroups.VIEWPAGER2, "1.1.0-alpha01")
     prebuilts(LibraryGroups.WEAR, "1.1.0-rc01")
diff --git a/core/core/build.gradle b/core/core/build.gradle
index 1046319..4a629c5 100644
--- a/core/core/build.gradle
+++ b/core/core/build.gradle
@@ -16,7 +16,7 @@
     implementation("androidx.collection:collection:1.0.0")
 
     // We don't ship this as a public artifact, so it must remain a project-type dependency.
-    annotationProcessor(project(":versionedparcelable:versionedparcelable-annotation"))
+    annotationProcessor(project(":versionedparcelable:versionedparcelable-compiler"))
 
     androidTestImplementation(KOTLIN_STDLIB)
     androidTestImplementation(ANDROIDX_TEST_EXT_JUNIT)
diff --git a/media/media/build.gradle b/media/media/build.gradle
index b03b6d0..7ebfb90 100644
--- a/media/media/build.gradle
+++ b/media/media/build.gradle
@@ -17,7 +17,7 @@
     androidTestImplementation(ANDROIDX_TEST_RUNNER)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
     androidTestImplementation project(':internal-testutils-runtime')
-    annotationProcessor(project(":versionedparcelable:versionedparcelable-annotation"))
+    annotationProcessor(project(":versionedparcelable:versionedparcelable-compiler"))
 }
 
 android {
diff --git a/media2/common/build.gradle b/media2/common/build.gradle
index b18fd39..8f4b44a 100644
--- a/media2/common/build.gradle
+++ b/media2/common/build.gradle
@@ -20,7 +20,7 @@
     androidTestImplementation(ANDROIDX_TEST_RUNNER)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
     androidTestImplementation project(':internal-testutils-runtime')
-    annotationProcessor(project(":versionedparcelable:versionedparcelable-annotation"))
+    annotationProcessor(project(":versionedparcelable:versionedparcelable-compiler"))
 }
 
 android {
diff --git a/media2/player/build.gradle b/media2/player/build.gradle
index 12fef75..95f516a 100644
--- a/media2/player/build.gradle
+++ b/media2/player/build.gradle
@@ -25,7 +25,7 @@
     androidTestImplementation(ANDROIDX_TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
     androidTestImplementation project(':internal-testutils-runtime')
-    annotationProcessor(project(":versionedparcelable:versionedparcelable-annotation"))
+    annotationProcessor(project(":versionedparcelable:versionedparcelable-compiler"))
 }
 
 android {
diff --git a/media2/session/build.gradle b/media2/session/build.gradle
index 60d1eb8..7610e1f 100644
--- a/media2/session/build.gradle
+++ b/media2/session/build.gradle
@@ -23,7 +23,7 @@
     androidTestImplementation(ANDROIDX_TEST_RULES)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
     androidTestImplementation project(':internal-testutils-runtime')
-    annotationProcessor(project(":versionedparcelable:versionedparcelable-annotation"))
+    annotationProcessor(project(":versionedparcelable:versionedparcelable-compiler"))
 }
 
 android {
diff --git a/settings.gradle b/settings.gradle
index 68fe5d1..48c08e0 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -265,7 +265,7 @@
 includeProject(":room:room-testing", "room/testing")
 includeProject(":remotecallback:remotecallback-processor", "remotecallback/processor")
 includeProject(":remotecallback:remotecallback", "remotecallback/remotecallback")
-includeProject(":versionedparcelable:versionedparcelable-annotation", "versionedparcelable/annotation")
+includeProject(":versionedparcelable:versionedparcelable-compiler", "versionedparcelable/versionedparcelable-compiler")
 includeProject(":versionedparcelable:versionedparcelable", "versionedparcelable/versionedparcelable")
 includeProject(":savedstate:savedstate", "savedstate/savedstate")
 includeProject(":savedstate:savedstate-ktx", "savedstate/savedstate-ktx")
diff --git a/slices/core/build.gradle b/slices/core/build.gradle
index bf56ba1..8d5f1d0 100644
--- a/slices/core/build.gradle
+++ b/slices/core/build.gradle
@@ -36,7 +36,7 @@
     androidTestImplementation(MOCKITO_CORE, libs.exclude_bytebuddy)
     androidTestImplementation(DEXMAKER_MOCKITO, libs.exclude_bytebuddy)
 
-    annotationProcessor project(":versionedparcelable:versionedparcelable-annotation")
+    annotationProcessor project(":versionedparcelable:versionedparcelable-compiler")
 }
 
 androidx {
diff --git a/versionedparcelable/annotation/build.gradle b/versionedparcelable/annotation/build.gradle
deleted file mode 100644
index ce1c3e1..0000000
--- a/versionedparcelable/annotation/build.gradle
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed 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.
- */
-
-import static androidx.build.dependencies.DependenciesKt.*
-
-apply plugin: 'java'
-
-dependencies {
-    implementation(JAVAPOET)
-}
-
-// The "javadoc" task is unused so we don't want it to appear in the output of `./gradlew tasks`
-// So, we set the group to null
-tasks["javadoc"].group = null
diff --git a/versionedparcelable/api/restricted_1.1.0-alpha01.txt b/versionedparcelable/api/restricted_1.1.0-alpha01.txt
deleted file mode 100644
index e837f90..0000000
--- a/versionedparcelable/api/restricted_1.1.0-alpha01.txt
+++ /dev/null
@@ -1,157 +0,0 @@
-// Signature format: 3.0
-package androidx.versionedparcelable {
-
-  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public abstract class CustomVersionedParcelable implements androidx.versionedparcelable.VersionedParcelable {
-    ctor public CustomVersionedParcelable();
-    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void onPostParceling();
-    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void onPreParceling(boolean);
-  }
-
-  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target(java.lang.annotation.ElementType.FIELD) public @interface NonParcelField {
-  }
-
-  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target(java.lang.annotation.ElementType.FIELD) public @interface ParcelField {
-    method public abstract String defaultValue() default "";
-    method public abstract int value();
-  }
-
-  public class ParcelUtils {
-    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static <T extends androidx.versionedparcelable.VersionedParcelable> T! fromInputStream(java.io.InputStream!);
-    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static <T extends androidx.versionedparcelable.VersionedParcelable> T! fromParcelable(android.os.Parcelable!);
-    method public static <T extends androidx.versionedparcelable.VersionedParcelable> T? getVersionedParcelable(android.os.Bundle!, String!);
-    method public static void putVersionedParcelable(android.os.Bundle, String, androidx.versionedparcelable.VersionedParcelable);
-    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static void toOutputStream(androidx.versionedparcelable.VersionedParcelable!, java.io.OutputStream!);
-    method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static android.os.Parcelable! toParcelable(androidx.versionedparcelable.VersionedParcelable!);
-  }
-
-  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public abstract class VersionedParcel {
-    ctor public VersionedParcel(androidx.collection.ArrayMap<java.lang.String!,java.lang.reflect.Method!>!, androidx.collection.ArrayMap<java.lang.String!,java.lang.reflect.Method!>!, androidx.collection.ArrayMap<java.lang.String!,java.lang.Class!>!);
-    method protected abstract void closeField();
-    method protected abstract androidx.versionedparcelable.VersionedParcel! createSubParcel();
-    method protected static Throwable getRootCause(Throwable);
-    method public boolean isStream();
-    method public <T> T![]! readArray(T![]!, int);
-    method protected <T> T![]! readArray(T![]!);
-    method protected abstract boolean readBoolean();
-    method public boolean readBoolean(boolean, int);
-    method public boolean[]! readBooleanArray(boolean[]!, int);
-    method protected boolean[]! readBooleanArray();
-    method protected abstract android.os.Bundle! readBundle();
-    method public android.os.Bundle! readBundle(android.os.Bundle!, int);
-    method public byte readByte(byte, int);
-    method protected abstract byte[]! readByteArray();
-    method public byte[]! readByteArray(byte[]!, int);
-    method public char[]! readCharArray(char[]!, int);
-    method protected abstract CharSequence! readCharSequence();
-    method public CharSequence! readCharSequence(CharSequence!, int);
-    method protected abstract double readDouble();
-    method public double readDouble(double, int);
-    method public double[]! readDoubleArray(double[]!, int);
-    method protected double[]! readDoubleArray();
-    method public Exception! readException(Exception!, int);
-    method protected abstract boolean readField(int);
-    method protected abstract float readFloat();
-    method public float readFloat(float, int);
-    method public float[]! readFloatArray(float[]!, int);
-    method protected float[]! readFloatArray();
-    method protected <T extends androidx.versionedparcelable.VersionedParcelable> T! readFromParcel(String!, androidx.versionedparcelable.VersionedParcel!);
-    method protected abstract int readInt();
-    method public int readInt(int, int);
-    method public int[]! readIntArray(int[]!, int);
-    method protected int[]! readIntArray();
-    method public <T> java.util.List<T!>! readList(java.util.List<T!>!, int);
-    method protected abstract long readLong();
-    method public long readLong(long, int);
-    method public long[]! readLongArray(long[]!, int);
-    method protected long[]! readLongArray();
-    method public <K, V> java.util.Map<K!,V!>! readMap(java.util.Map<K!,V!>!, int);
-    method protected abstract <T extends android.os.Parcelable> T! readParcelable();
-    method public <T extends android.os.Parcelable> T! readParcelable(T!, int);
-    method protected java.io.Serializable! readSerializable();
-    method public <T> java.util.Set<T!>! readSet(java.util.Set<T!>!, int);
-    method @RequiresApi(api=android.os.Build.VERSION_CODES.LOLLIPOP) public android.util.Size! readSize(android.util.Size!, int);
-    method @RequiresApi(api=android.os.Build.VERSION_CODES.LOLLIPOP) public android.util.SizeF! readSizeF(android.util.SizeF!, int);
-    method public android.util.SparseBooleanArray! readSparseBooleanArray(android.util.SparseBooleanArray!, int);
-    method protected abstract String! readString();
-    method public String! readString(String!, int);
-    method protected abstract android.os.IBinder! readStrongBinder();
-    method public android.os.IBinder! readStrongBinder(android.os.IBinder!, int);
-    method public <T extends androidx.versionedparcelable.VersionedParcelable> T! readVersionedParcelable(T!, int);
-    method protected <T extends androidx.versionedparcelable.VersionedParcelable> T! readVersionedParcelable();
-    method protected abstract void setOutputField(int);
-    method public void setSerializationFlags(boolean, boolean);
-    method public <T> void writeArray(T![]!, int);
-    method protected <T> void writeArray(T![]!);
-    method protected abstract void writeBoolean(boolean);
-    method public void writeBoolean(boolean, int);
-    method public void writeBooleanArray(boolean[]!, int);
-    method protected void writeBooleanArray(boolean[]!);
-    method protected abstract void writeBundle(android.os.Bundle!);
-    method public void writeBundle(android.os.Bundle!, int);
-    method public void writeByte(byte, int);
-    method protected abstract void writeByteArray(byte[]!);
-    method protected abstract void writeByteArray(byte[]!, int, int);
-    method public void writeByteArray(byte[]!, int);
-    method public void writeByteArray(byte[]!, int, int, int);
-    method public void writeCharArray(char[]!, int);
-    method protected abstract void writeCharSequence(CharSequence!);
-    method public void writeCharSequence(CharSequence!, int);
-    method protected abstract void writeDouble(double);
-    method public void writeDouble(double, int);
-    method public void writeDoubleArray(double[]!, int);
-    method protected void writeDoubleArray(double[]!);
-    method public void writeException(Exception!, int);
-    method protected abstract void writeFloat(float);
-    method public void writeFloat(float, int);
-    method public void writeFloatArray(float[]!, int);
-    method protected void writeFloatArray(float[]!);
-    method protected abstract void writeInt(int);
-    method public void writeInt(int, int);
-    method public void writeIntArray(int[]!, int);
-    method protected void writeIntArray(int[]!);
-    method public <T> void writeList(java.util.List<T!>!, int);
-    method protected abstract void writeLong(long);
-    method public void writeLong(long, int);
-    method public void writeLongArray(long[]!, int);
-    method protected void writeLongArray(long[]!);
-    method public <K, V> void writeMap(java.util.Map<K!,V!>!, int);
-    method protected void writeNoException();
-    method protected abstract void writeParcelable(android.os.Parcelable!);
-    method public void writeParcelable(android.os.Parcelable!, int);
-    method public void writeSerializable(java.io.Serializable!, int);
-    method public <T> void writeSet(java.util.Set<T!>!, int);
-    method @RequiresApi(api=android.os.Build.VERSION_CODES.LOLLIPOP) public void writeSize(android.util.Size!, int);
-    method @RequiresApi(api=android.os.Build.VERSION_CODES.LOLLIPOP) public void writeSizeF(android.util.SizeF!, int);
-    method public void writeSparseBooleanArray(android.util.SparseBooleanArray!, int);
-    method protected abstract void writeString(String!);
-    method public void writeString(String!, int);
-    method protected abstract void writeStrongBinder(android.os.IBinder!);
-    method public void writeStrongBinder(android.os.IBinder!, int);
-    method protected abstract void writeStrongInterface(android.os.IInterface!);
-    method public void writeStrongInterface(android.os.IInterface!, int);
-    method protected <T extends androidx.versionedparcelable.VersionedParcelable> void writeToParcel(T!, androidx.versionedparcelable.VersionedParcel!);
-    method public void writeVersionedParcelable(androidx.versionedparcelable.VersionedParcelable!, int);
-    method protected void writeVersionedParcelable(androidx.versionedparcelable.VersionedParcelable!);
-    field protected final androidx.collection.ArrayMap<java.lang.String!,java.lang.Class!>! mParcelizerCache;
-    field protected final androidx.collection.ArrayMap<java.lang.String!,java.lang.reflect.Method!>! mReadCache;
-    field protected final androidx.collection.ArrayMap<java.lang.String!,java.lang.reflect.Method!>! mWriteCache;
-  }
-
-  public static class VersionedParcel.ParcelException extends java.lang.RuntimeException {
-    ctor public VersionedParcel.ParcelException(Throwable!);
-  }
-
-  public interface VersionedParcelable {
-  }
-
-  @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target(java.lang.annotation.ElementType.TYPE) public @interface VersionedParcelize {
-    method public abstract boolean allowSerialization() default false;
-    method public abstract int[] deprecatedIds() default {};
-    method public abstract Class factory() default void.class;
-    method public abstract boolean ignoreParcelables() default false;
-    method public abstract boolean isCustom() default false;
-    method public abstract String jetifyAs() default "";
-  }
-
-}
-
diff --git a/versionedparcelable/versionedparcelable-compiler/build.gradle b/versionedparcelable/versionedparcelable-compiler/build.gradle
new file mode 100644
index 0000000..0c1ecd7
--- /dev/null
+++ b/versionedparcelable/versionedparcelable-compiler/build.gradle
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed 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.
+ */
+
+
+import androidx.build.CompilationTarget
+import androidx.build.LibraryGroups
+import androidx.build.LibraryVersions
+import androidx.build.Publish
+
+import static androidx.build.dependencies.DependenciesKt.*
+
+plugins {
+    id("AndroidXPlugin")
+    id("java-library")
+}
+
+dependencies {
+    implementation(JAVAPOET)
+}
+
+androidx {
+    name = "VersionedParcelable - Compiler"
+    publish = Publish.SNAPSHOT_ONLY
+    mavenVersion = LibraryVersions.VERSIONED_PARCELABLE
+    toolingProject = true
+    compilationTarget = CompilationTarget.HOST
+    mavenGroup = LibraryGroups.VERSIONEDPARCELABLE
+    inceptionYear = "2018"
+    description = "Annotation processor for VersionedParcelable"
+}
\ No newline at end of file
diff --git a/versionedparcelable/annotation/src/main/java/androidx/versionedparcelable/compiler/VersionedParcelProcessor.java b/versionedparcelable/versionedparcelable-compiler/src/main/java/androidx/versionedparcelable/compiler/VersionedParcelProcessor.java
similarity index 99%
rename from versionedparcelable/annotation/src/main/java/androidx/versionedparcelable/compiler/VersionedParcelProcessor.java
rename to versionedparcelable/versionedparcelable-compiler/src/main/java/androidx/versionedparcelable/compiler/VersionedParcelProcessor.java
index 612e4ac..4a41d27 100644
--- a/versionedparcelable/annotation/src/main/java/androidx/versionedparcelable/compiler/VersionedParcelProcessor.java
+++ b/versionedparcelable/versionedparcelable-compiler/src/main/java/androidx/versionedparcelable/compiler/VersionedParcelProcessor.java
@@ -201,6 +201,7 @@
         return true;
     }
 
+    @SuppressWarnings("StringSplitter")
     private void parseDeprecated(ArrayList<String> takenIds, String deprecatedIds) {
         deprecatedIds = deprecatedIds.replace("{", "").replace("}", "");
         String[] ids = deprecatedIds.split(",");
diff --git a/versionedparcelable/annotation/src/main/resources/META-INF/gradle/incremental.annotation.processors b/versionedparcelable/versionedparcelable-compiler/src/main/resources/META-INF/gradle/incremental.annotation.processors
similarity index 100%
rename from versionedparcelable/annotation/src/main/resources/META-INF/gradle/incremental.annotation.processors
rename to versionedparcelable/versionedparcelable-compiler/src/main/resources/META-INF/gradle/incremental.annotation.processors
diff --git a/versionedparcelable/annotation/src/main/resources/META-INF/services/javax.annotation.processing.Processor b/versionedparcelable/versionedparcelable-compiler/src/main/resources/META-INF/services/javax.annotation.processing.Processor
similarity index 100%
rename from versionedparcelable/annotation/src/main/resources/META-INF/services/javax.annotation.processing.Processor
rename to versionedparcelable/versionedparcelable-compiler/src/main/resources/META-INF/services/javax.annotation.processing.Processor
diff --git a/versionedparcelable/versionedparcelable/build.gradle b/versionedparcelable/versionedparcelable/build.gradle
index 831a6df..2dcfbdc 100644
--- a/versionedparcelable/versionedparcelable/build.gradle
+++ b/versionedparcelable/versionedparcelable/build.gradle
@@ -35,7 +35,7 @@
     androidTestImplementation(MOCKITO_CORE, libs.exclude_bytebuddy)
     androidTestImplementation(DEXMAKER_MOCKITO, libs.exclude_bytebuddy)
     androidTestImplementation(TRUTH)
-    androidTestAnnotationProcessor project(":versionedparcelable:versionedparcelable-annotation")
+    androidTestAnnotationProcessor project(":versionedparcelable:versionedparcelable-compiler")
 }
 
 android {