aboutsummaryrefslogtreecommitdiffstats
path: root/sdkmanager
diff options
context:
space:
mode:
authorRaphael Moll <ralf@android.com>2012-08-21 13:07:08 -0700
committerRaphael Moll <ralf@android.com>2012-08-21 13:07:08 -0700
commitd99324209809a7ed5cdece1ae1d8a0783eb769ea (patch)
treeb2b6fd2954e43c501fcfebbf2e4a6526c3bf5d95 /sdkmanager
parent2c94aa62f4016145fce9d8862f66d9c160fbce07 (diff)
downloadsdk-d99324209809a7ed5cdece1ae1d8a0783eb769ea.zip
sdk-d99324209809a7ed5cdece1ae1d8a0783eb769ea.tar.gz
sdk-d99324209809a7ed5cdece1ae1d8a0783eb769ea.tar.bz2
SDK Lib: minor cleanup in UrlOpener.
Makes UrlOpener private. All callers should use the DownloadCache class, and UrlOpener must remain purely an implementation detail. That's because UrlOpener is just a bunch of static whereas DownloadCache is an instance that gets passed around and can be overriden for testing. Change-Id: Idacd328616f6c11df298f4e2b8f4ac7668cf6ffd
Diffstat (limited to 'sdkmanager')
-rwxr-xr-xsdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/CanceledByUserException.java30
-rwxr-xr-xsdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/DownloadCache.java1
-rw-r--r--sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/UrlOpener.java25
-rwxr-xr-xsdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/archives/ArchiveInstaller.java2
-rwxr-xr-xsdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/sources/SdkSource.java4
5 files changed, 47 insertions, 15 deletions
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/CanceledByUserException.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/CanceledByUserException.java
new file mode 100755
index 0000000..a0a74d8
--- /dev/null
+++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/CanceledByUserException.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2011 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.sdklib.internal.repository;
+
+/**
+ * Exception thrown by {@link DownloadCache} and {@link UrlOpener} when a user
+ * cancels an HTTP Basic authentication or NTML authentication dialog.
+ */
+public class CanceledByUserException extends Exception {
+ private static final long serialVersionUID = -7669346110926032403L;
+
+ public CanceledByUserException(String message) {
+ super(message);
+ }
+}
+
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/DownloadCache.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/DownloadCache.java
index e449297..01a2078 100755
--- a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/DownloadCache.java
+++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/DownloadCache.java
@@ -22,7 +22,6 @@ import com.android.annotations.VisibleForTesting;
import com.android.annotations.VisibleForTesting.Visibility;
import com.android.prefs.AndroidLocation;
import com.android.prefs.AndroidLocation.AndroidLocationException;
-import com.android.sdklib.internal.repository.UrlOpener.CanceledByUserException;
import com.android.utils.Pair;
import org.apache.http.Header;
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/UrlOpener.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/UrlOpener.java
index dd0761c..72ec65f 100644
--- a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/UrlOpener.java
+++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/UrlOpener.java
@@ -65,22 +65,20 @@ import java.util.Map.Entry;
import java.util.Properties;
/**
- * This class holds methods for adding URLs management.
+ * This class holds static methods for downloading URL resources.
* @see #openUrl(String, boolean, ITaskMonitor, Header[])
+ * <p/>
+ * Implementation detail: callers should use {@link DownloadCache} instead of this class.
+ * {@link DownloadCache#openDirectUrl(String, ITaskMonitor)} is a direct pass-through to
+ * {@link UrlOpener} since there's no caching. However from an implementation perspective
+ * it's still recommended to pass down a {@link DownloadCache} instance, which will let us
+ * override the implementation later on (for testing, for example.)
*/
-public class UrlOpener {
+class UrlOpener {
private static final boolean DEBUG =
System.getenv("ANDROID_DEBUG_URL_OPENER") != null; //$NON-NLS-1$
- public static class CanceledByUserException extends Exception {
- private static final long serialVersionUID = -7669346110926032403L;
-
- public CanceledByUserException(String message) {
- super(message);
- }
- }
-
private static Map<String, UserCredentials> sRealmCache =
new HashMap<String, UserCredentials>();
@@ -120,6 +118,13 @@ public class UrlOpener {
}
/**
+ * This class cannot be instantiated.
+ * @see #openUrl(String, boolean, ITaskMonitor, Header[])
+ */
+ private UrlOpener() {
+ }
+
+ /**
* Opens a URL. It can be a simple URL or one which requires basic
* authentication.
* <p/>
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/archives/ArchiveInstaller.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/archives/ArchiveInstaller.java
index 612f74e..e7c10d4 100755
--- a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/archives/ArchiveInstaller.java
+++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/archives/ArchiveInstaller.java
@@ -21,9 +21,9 @@ import com.android.annotations.Nullable;
import com.android.annotations.VisibleForTesting;
import com.android.annotations.VisibleForTesting.Visibility;
import com.android.sdklib.SdkManager;
+import com.android.sdklib.internal.repository.CanceledByUserException;
import com.android.sdklib.internal.repository.DownloadCache;
import com.android.sdklib.internal.repository.ITaskMonitor;
-import com.android.sdklib.internal.repository.UrlOpener.CanceledByUserException;
import com.android.sdklib.internal.repository.packages.Package;
import com.android.sdklib.internal.repository.sources.SdkSource;
import com.android.sdklib.io.FileOp;
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/sources/SdkSource.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/sources/SdkSource.java
index bcc45ea..2558e71 100755
--- a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/sources/SdkSource.java
+++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/sources/SdkSource.java
@@ -19,11 +19,10 @@ package com.android.sdklib.internal.repository.sources;
import com.android.annotations.Nullable;
import com.android.annotations.VisibleForTesting;
import com.android.annotations.VisibleForTesting.Visibility;
+import com.android.sdklib.internal.repository.CanceledByUserException;
import com.android.sdklib.internal.repository.DownloadCache;
import com.android.sdklib.internal.repository.IDescription;
import com.android.sdklib.internal.repository.ITaskMonitor;
-import com.android.sdklib.internal.repository.UrlOpener;
-import com.android.sdklib.internal.repository.UrlOpener.CanceledByUserException;
import com.android.sdklib.internal.repository.packages.AddonPackage;
import com.android.sdklib.internal.repository.packages.DocPackage;
import com.android.sdklib.internal.repository.packages.ExtraPackage;
@@ -621,7 +620,6 @@ public abstract class SdkSource implements IDescription, Comparable<SdkSource> {
* @param monitor {@link ITaskMonitor} related to this URL.
* @param outException If non null, where to store any exception that
* happens during the fetch.
- * @see UrlOpener UrlOpener, which handles all URL logic.
*/
private InputStream fetchXmlUrl(String urlString,
DownloadCache cache,