aboutsummaryrefslogtreecommitdiffstats
path: root/sdkmanager
diff options
context:
space:
mode:
authorRaphael <raphael@google.com>2011-10-17 10:43:55 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-10-17 10:43:55 -0700
commit5ff70872aa2c37af8c67b55657d36d30d2491372 (patch)
treed15530d130e2465625d6c90f1e4187053f08eb27 /sdkmanager
parent9b673a0e823678d5556501491006b86dd803bfe8 (diff)
parentb0ac9620f74f0b3817a8847178ca53d876b78a09 (diff)
downloadsdk-5ff70872aa2c37af8c67b55657d36d30d2491372.zip
sdk-5ff70872aa2c37af8c67b55657d36d30d2491372.tar.gz
sdk-5ff70872aa2c37af8c67b55657d36d30d2491372.tar.bz2
Merge "SDK Manager: env var SDK_TEST_BASE_URL"
Diffstat (limited to 'sdkmanager')
-rwxr-xr-xsdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/AddonsListFetcher.java14
-rwxr-xr-xsdkmanager/libs/sdklib/src/com/android/sdklib/repository/SdkAddonsListConstants.java2
-rwxr-xr-xsdkmanager/libs/sdklib/src/com/android/sdklib/repository/SdkRepoConstants.java3
-rwxr-xr-xsdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdaterData.java25
4 files changed, 41 insertions, 3 deletions
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/AddonsListFetcher.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/AddonsListFetcher.java
index c83a3c1..62cc9a4 100755
--- a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/AddonsListFetcher.java
+++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/AddonsListFetcher.java
@@ -19,6 +19,7 @@ package com.android.sdklib.internal.repository;
import com.android.annotations.VisibleForTesting;
import com.android.annotations.VisibleForTesting.Visibility;
import com.android.sdklib.repository.SdkAddonsListConstants;
+import com.android.sdklib.repository.SdkRepoConstants;
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
@@ -444,6 +445,13 @@ public class AddonsListFetcher {
@VisibleForTesting(visibility=Visibility.PRIVATE)
protected Site[] parseAddonsList(Document doc, String nsUri, ITaskMonitor monitor) {
+ String baseUrl = System.getenv("SDK_TEST_BASE_URL"); //$NON-NLS-1$
+ if (baseUrl != null) {
+ if (baseUrl.length() <= 0 || !baseUrl.endsWith("/")) { //$NON-NLS-1$
+ baseUrl = null;
+ }
+ }
+
Node root = getFirstChild(doc, nsUri, SdkAddonsListConstants.NODE_SDK_ADDONS_LIST);
if (root != null) {
ArrayList<Site> sites = new ArrayList<Site>();
@@ -462,6 +470,12 @@ public class AddonsListFetcher {
String strUrl = url.getTextContent().trim();
String strName = name.getTextContent().trim();
+ if (baseUrl != null &&
+ strUrl.startsWith(SdkRepoConstants.URL_GOOGLE_SDK_SITE)) {
+ strUrl = baseUrl +
+ strUrl.substring(SdkRepoConstants.URL_GOOGLE_SDK_SITE.length());
+ }
+
if (strUrl.length() > 0 && strName.length() > 0) {
sites.add(new Site(strUrl, strName));
}
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/repository/SdkAddonsListConstants.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/repository/SdkAddonsListConstants.java
index f8ed181..7c6e411 100755
--- a/sdkmanager/libs/sdklib/src/com/android/sdklib/repository/SdkAddonsListConstants.java
+++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/repository/SdkAddonsListConstants.java
@@ -26,7 +26,7 @@ public class SdkAddonsListConstants {
/** The URL where to find the official addons list fle. */
public static final String URL_ADDON_LIST =
- "https://dl-ssl.google.com/android/repository/addons_list.xml"; //$NON-NLS-1$
+ SdkRepoConstants.URL_GOOGLE_SDK_SITE + "addons_list.xml"; //$NON-NLS-1$
/** The canonical URL filename for addons-list XML files. */
public static final String URL_DEFAULT_FILENAME = "addons_list.xml"; //$NON-NLS-1$
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/repository/SdkRepoConstants.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/repository/SdkRepoConstants.java
index bbd5f7a..710ec97 100755
--- a/sdkmanager/libs/sdklib/src/com/android/sdklib/repository/SdkRepoConstants.java
+++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/repository/SdkRepoConstants.java
@@ -30,7 +30,8 @@ public class SdkRepoConstants extends RepoConstants {
* Valid version numbers are between 1 and this number, included. */
public static final int NS_LATEST_VERSION = 5;
- /** The URL of the official Google sdk-repository site. */
+ /** The URL of the official Google sdk-repository site.
+ * The URL ends with a /, allowing easy concatenation. */
public static final String URL_GOOGLE_SDK_SITE =
"https://dl-ssl.google.com/android/repository/"; //$NON-NLS-1$
diff --git a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdaterData.java b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdaterData.java
index cb26576..fd961de 100755
--- a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdaterData.java
+++ b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdaterData.java
@@ -370,8 +370,14 @@ public class UpdaterData implements IUpdaterData {
// there's an env var asking to do so anyway.
if (sources.getAllSources().length == 0 ||
System.getenv("SDK_MIX_WITH_TEST_URLS") != null) {
+
+ String baseUrl = System.getenv("SDK_TEST_BASE_URL"); //$NON-NLS-1$
+ if (baseUrl == null || baseUrl.length() <= 0 || !baseUrl.endsWith("/")) { //$NON-NLS-1$
+ baseUrl = SdkRepoConstants.URL_GOOGLE_SDK_SITE;
+ }
+
sources.add(SdkSourceCategory.ANDROID_REPO,
- new SdkRepoSource(SdkRepoConstants.URL_GOOGLE_SDK_SITE,
+ new SdkRepoSource(baseUrl,
SdkSourceCategory.ANDROID_REPO.getUiName()));
// Load user sources
@@ -1089,11 +1095,28 @@ public class UpdaterData implements IUpdaterData {
} else if (u.endsWith(SdkAddonsListConstants.URL_DEFAULT_FILENAME)) {
url = u;
break;
+ } else {
+ monitor.logError("Ignoring invalid SDK_TEST_URLS: %1$s", u); //$NON-NLS-1$
}
+
}
}
if (url != null) {
+
+ // We override SdkRepoConstants.URL_GOOGLE_SDK_SITE if this is defined
+ String baseUrl = System.getenv("SDK_TEST_BASE_URL"); //$NON-NLS-1$
+ if (baseUrl != null) {
+ if (baseUrl.length() > 0 && baseUrl.endsWith("/")) { //$NON-NLS-1$
+ if (url.startsWith(SdkRepoConstants.URL_GOOGLE_SDK_SITE)) {
+ url = baseUrl +
+ url.substring(SdkRepoConstants.URL_GOOGLE_SDK_SITE.length());
+ }
+ } else {
+ monitor.logError("Ignoring invalid SDK_TEST_BASE_URL: %1$s", baseUrl); //$NON-NLS-1$
+ }
+ }
+
if (getSettingsController().getForceHttp()) {
url = url.replaceAll("https://", "http://"); //$NON-NLS-1$ //$NON-NLS-2$
}