// Copyright (C) 2015 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.

java_import_host {
    name: "dagger2-auto-common-host",
    jars: ["lib/auto-common-1.0-20151022.071545-39.jar"],
}

java_import_host {
    name: "dagger2-auto-factory-host",
    jars: ["lib/auto-factory-1.0-20150915.183854-35.jar"],
}

java_import_host {
    name: "dagger2-auto-service-host",
    jars: ["lib/auto-service-1.0-rc2.jar"],
}

java_import_host {
    name: "dagger2-auto-value-host",
    jars: ["lib/auto-value-1.4.1.jar"],
}

java_import_host {
    name: "dagger2-google-java-format",
    jars: ["lib/google-java-format-0.1-20151017.042846-2.jar"],
}

java_import_host {
    name: "dagger2-inject-host",
    jars: ["lib/javax-inject.jar"],
}
