Add CameraPipe integration library for CameraX

 Adds library stubs for integration of CameraPipe into CameraX.

 Adds jajar'd output for CameraPipe library that is included in
 integration library.

 Includes test to ensure CameraX can be initialized with integration lib
 which references classes from jarjar'd library.

Bug: 152898206
Test: ./gradlew :camera:camera-camera2-pipe-integration:connectedCheck

Change-Id: Ibf4dc550e27d54720a480ca3ed5f025a7eb9a0c4
diff --git a/camera/camera-camera2-pipe-integration/build.gradle b/camera/camera-camera2-pipe-integration/build.gradle
new file mode 100644
index 0000000..0d0fc72
--- /dev/null
+++ b/camera/camera-camera2-pipe-integration/build.gradle
@@ -0,0 +1,75 @@
+/*
+ * Copyright 2020 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.LibraryGroups
+import androidx.build.Publish
+
+import static androidx.build.dependencies.DependenciesKt.*
+
+plugins {
+    id("AndroidXPlugin")
+    id("com.android.library")
+    id("kotlin-android")
+}
+
+// Add :camera:camera-camera2-pipe as jarjar dependency
+android.libraryVariants.all { variant ->
+    def variantName = variant.name
+    def suffix = variantName.capitalize()
+    def jarjarConfigName = "jarjar${suffix}"
+    def jarjarConf = configurations.register(jarjarConfigName)
+    // Treat camera2-pipe as a local jar and package it inside the aar.
+    dependencies.add(jarjarConfigName, project.dependencies.project(
+            path: ":camera:camera-camera2-pipe",
+            configuration: jarjarConfigName))
+    dependencies.add("${variantName}Implementation", files(jarjarConf))
+}
+
+apply from: "../camera-camera2-pipe/dependencies.gradle"
+
+dependencies {
+    api("androidx.annotation:annotation:1.1.0")
+    api(project(":camera:camera-core"))
+    implementation(KOTLIN_STDLIB)
+
+    // Since we jarjar CameraPipe, include the transitive dependencies as implementation
+    implementation CAMERA_PIPE_DEPS.API
+    implementation CAMERA_PIPE_DEPS.IMPLEMENTATION
+
+    androidTestImplementation(ANDROIDX_TEST_EXT_JUNIT)
+    androidTestImplementation(ANDROIDX_TEST_RUNNER)
+    androidTestImplementation(KOTLIN_COROUTINES_ANDROID)
+    androidTestImplementation(KOTLIN_STDLIB)
+    androidTestImplementation(TRUTH)
+    androidTestImplementation(project(":camera:camera-lifecycle"))
+    androidTestImplementation(project(":concurrent:concurrent-futures-ktx"))
+}
+
+android {
+    defaultConfig {
+        minSdkVersion 21
+    }
+}
+
+androidx {
+    name = "Jetpack Camera Camera Pipe Integration Library"
+    publish = Publish.NONE
+    mavenGroup = LibraryGroups.CAMERA
+    inceptionYear = "2020"
+    description = "A CameraPipe implementation of CameraX, a library providing a consistent and " +
+            "reliable camera foundation that enables great camera driven experiences across all " +
+            "of Android."
+}