diff options
author | Raphael Moll <ralf@android.com> | 2012-08-21 13:07:08 -0700 |
---|---|---|
committer | Raphael Moll <ralf@android.com> | 2012-08-21 13:07:08 -0700 |
commit | d99324209809a7ed5cdece1ae1d8a0783eb769ea (patch) | |
tree | b2b6fd2954e43c501fcfebbf2e4a6526c3bf5d95 /sdkmanager | |
parent | 2c94aa62f4016145fce9d8862f66d9c160fbce07 (diff) | |
download | sdk-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')
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, |