aboutsummaryrefslogtreecommitdiffstats
path: root/anttasks/src/com/android/ant/GetUiTargetTask.java
diff options
context:
space:
mode:
Diffstat (limited to 'anttasks/src/com/android/ant/GetUiTargetTask.java')
-rw-r--r--anttasks/src/com/android/ant/GetUiTargetTask.java159
1 files changed, 0 insertions, 159 deletions
diff --git a/anttasks/src/com/android/ant/GetUiTargetTask.java b/anttasks/src/com/android/ant/GetUiTargetTask.java
deleted file mode 100644
index e45d2bc..0000000
--- a/anttasks/src/com/android/ant/GetUiTargetTask.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * Copyright (C) 2012 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.
- */
-
-package com.android.ant;
-
-import com.android.annotations.NonNull;
-import com.android.sdklib.IAndroidTarget;
-import com.android.sdklib.IAndroidTarget.IOptionalLibrary;
-import com.android.sdklib.SdkManager;
-import com.android.sdklib.internal.project.ProjectProperties;
-import com.android.utils.ILogger;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.Task;
-import org.apache.tools.ant.types.Path;
-import org.apache.tools.ant.types.Path.PathElement;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.HashSet;
-
-/**
- * Task to resolve the target of the current Android uiautomator project.
- *
- * Out params:
- * <code>compileClassPathOut</code>: The compile class path for the project.
- */
-public class GetUiTargetTask extends Task {
-
- private String mCompileClassPathOut;
-
- public void setCompileClassPathOut(String compileClassPathOut) {
- mCompileClassPathOut = compileClassPathOut;
- }
-
- @Override
- public void execute() throws BuildException {
- if (mCompileClassPathOut == null) {
- throw new BuildException("Missing attribute compileClassPathOut");
- }
-
- Project antProject = getProject();
-
- // get the SDK location
- File sdkDir = TaskHelper.getSdkLocation(antProject);
-
- // get the target property value
- String targetHashString = antProject.getProperty(ProjectProperties.PROPERTY_TARGET);
-
- if (targetHashString == null) {
- throw new BuildException("Android Target is not set.");
- }
-
- // load up the sdk targets.
- final ArrayList<String> messages = new ArrayList<String>();
- SdkManager manager = SdkManager.createManager(sdkDir.getPath(), new ILogger() {
- @Override
- public void error(Throwable t, String errorFormat, Object... args) {
- if (errorFormat != null) {
- messages.add(String.format("Error: " + errorFormat, args));
- }
- if (t != null) {
- messages.add("Error: " + t.getMessage());
- }
- }
-
- @Override
- public void info(@NonNull String msgFormat, Object... args) {
- messages.add(String.format(msgFormat, args));
- }
-
- @Override
- public void verbose(@NonNull String msgFormat, Object... args) {
- info(msgFormat, args);
- }
-
- @Override
- public void warning(@NonNull String warningFormat, Object... args) {
- messages.add(String.format("Warning: " + warningFormat, args));
- }
- });
-
- if (manager == null) {
- // since we failed to parse the SDK, lets display the parsing output.
- for (String msg : messages) {
- System.out.println(msg);
- }
- throw new BuildException("Failed to parse SDK content.");
- }
-
- // resolve it
- IAndroidTarget androidTarget = manager.getTargetFromHashString(targetHashString);
-
- if (androidTarget == null) {
- throw new BuildException(String.format(
- "Unable to resolve project target '%s'", targetHashString));
- }
-
- // display the project info
- System.out.println( "Project Target: " + androidTarget.getName());
- if (androidTarget.isPlatform() == false) {
- System.out.println("Vendor: " + androidTarget.getVendor());
- System.out.println("Platform Version: " + androidTarget.getVersionName());
- }
- System.out.println( "API level: " + androidTarget.getVersion().getApiString());
-
- if (androidTarget.getVersion().getApiLevel() < 16) {
- throw new BuildException("UI Automator requires API 16");
- }
-
- // sets up the properties to find android.jar/framework.aidl/target tools
- String androidJar = androidTarget.getPath(IAndroidTarget.ANDROID_JAR);
- String uiAutomatorJar = androidTarget.getPath(IAndroidTarget.UI_AUTOMATOR_JAR);
-
- // sets up the boot classpath
-
- // create the Path object
- Path compileclasspath = new Path(antProject);
-
- // create a PathElement for the framework jars
- PathElement element = compileclasspath.createPathElement();
- element.setPath(androidJar);
-
- element = compileclasspath.createPathElement();
- element.setPath(uiAutomatorJar);
-
- // create PathElement for each optional library.
- IOptionalLibrary[] libraries = androidTarget.getOptionalLibraries();
- if (libraries != null) {
- HashSet<String> visitedJars = new HashSet<String>();
- for (IOptionalLibrary library : libraries) {
- String jarPath = library.getJarPath();
- if (visitedJars.contains(jarPath) == false) {
- visitedJars.add(jarPath);
-
- element = compileclasspath.createPathElement();
- element.setPath(jarPath);
- }
- }
- }
-
- // sets the path in the project with a reference
- antProject.addReference(mCompileClassPathOut, compileclasspath);
- }
-}