124bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar/*
224bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar * Copyright (C) 2015 The Android Open Source Project
324bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar *
424bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar * Licensed under the Apache License, Version 2.0 (the "License");
524bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar * you may not use this file except in compliance with the License.
624bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar * You may obtain a copy of the License at
724bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar *
824bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar *      http://www.apache.org/licenses/LICENSE-2.0
924bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar *
1024bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar * Unless required by applicable law or agreed to in writing, software
1124bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar * distributed under the License is distributed on an "AS IS" BASIS,
1224bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1324bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar * See the License for the specific language governing permissions and
1424bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar * limitations under the License.
1524bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar */
1624bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar
1724bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyarpackage android.databinding
1824bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar
1924bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyarimport org.apache.maven.repository.internal.MavenRepositorySystemUtils
2024bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyarimport org.eclipse.aether.DefaultRepositorySystemSession
2124bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyarimport org.eclipse.aether.RepositorySystem
2224bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyarimport org.eclipse.aether.RepositorySystemSession
2324bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyarimport org.eclipse.aether.artifact.Artifact
2424bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyarimport org.eclipse.aether.artifact.DefaultArtifact
2524bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyarimport org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory
2624bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyarimport org.eclipse.aether.graph.Dependency
2724bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyarimport org.eclipse.aether.impl.DefaultServiceLocator
2824bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyarimport org.eclipse.aether.repository.LocalRepository
2924bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyarimport org.eclipse.aether.repository.RemoteRepository
3024bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyarimport org.eclipse.aether.resolution.ArtifactDescriptorRequest
3124bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyarimport org.eclipse.aether.resolution.ArtifactDescriptorResult
3224bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyarimport org.eclipse.aether.resolution.ArtifactRequest
3324bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyarimport org.eclipse.aether.spi.connector.RepositoryConnectorFactory
3424bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyarimport org.eclipse.aether.spi.connector.transport.TransporterFactory
3524bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyarimport org.eclipse.aether.transport.file.FileTransporterFactory
3624bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyarimport org.eclipse.aether.transport.http.HttpTransporterFactory
3724bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyarimport org.gradle.api.DefaultTask
3824bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyarimport org.gradle.api.Project
3924bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyarimport org.gradle.api.artifacts.Configuration
4024bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyarimport org.gradle.api.artifacts.ModuleVersionIdentifier
4124bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyarimport org.gradle.api.tasks.Input
4224bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyarimport org.gradle.api.tasks.TaskAction
4324bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar
4424bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyarclass MavenDependencyCollectorTask extends DefaultTask {
4524bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar    @Input
4624bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar    LocalizeDependenciesTask localizeTask
4724bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar
4824bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar    @TaskAction
4924bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar    public void doIt() {
5024bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar        project.configurations.each { conf ->
5124bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar            resolveDirectDependencies(conf)
5224bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar        }
5324bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar        project.buildscript.configurations.each { conf ->
5424bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar            resolveDirectDependencies(conf)
5524bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar        }
5624bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar    }
5724bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar
5824bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar    void resolveDirectDependencies(Configuration conf) {
5924bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar        conf.getResolvedConfiguration().getResolvedArtifacts().each {
6024bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar            localizeTask.add(this, it.getModuleVersion().id, conf)
6124bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar        }
6224bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar    }
6324bec1cc542de69e0e21cc774469f20d34811ad9Yigit Boyar}
64