summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Thierer <tobiast@google.com>2019-10-03 13:46:45 +0100
committerTobias Thierer <tobiast@google.com>2019-10-03 14:58:06 +0100
commitc83d0458abd1b897b50e6361084b35c46c44d97c (patch)
treedd487e8c5924cb176c26bc6b1c0b73cf1152f6cc
parentbbad557b8c15a915998223b93df7b25ee7046ff8 (diff)
Refactoring: Move MimeMap to libcore.content.type.
MimeMap is not specific to Networking (URLConnection.getFileNameMap() is not the only client) so it didn't make sense for the class to live in the old packet. The new packet mirrors frameworks' android.content.type which holds the logic constructing the default instance. The new packet is specific to this purpose (libcore.content did not previously exist) and makes for a more sensible CorePlatformApi that we are more likely to be able to support long term. Bug: 124232146 Bug: 136256059 Test: atest CtsMimeMapTestCases CtsLibcoreTestCases Change-Id: I2a6576cf6f5f06bf159a975ad40a1c09a615e9b5
-rw-r--r--luni/src/main/java/java/net/DefaultFileNameMap.java4
-rw-r--r--luni/src/main/java/libcore/content/type/MimeMap.java (renamed from luni/src/main/java/libcore/net/MimeMap.java)2
-rw-r--r--luni/src/main/java/libcore/content/type/TEST_MAPPING7
-rw-r--r--luni/src/main/java/libcore/net/TEST_MAPPING3
-rw-r--r--luni/src/test/java/libcore/libcore/content/type/MimeMapTest.java (renamed from luni/src/test/java/libcore/libcore/net/MimeMapTest.java)5
-rw-r--r--mmodules/core_platform_api/api/platform/current-api.txt40
-rw-r--r--non_openjdk_java_files.bp2
-rw-r--r--ojluni/src/main/java/sun/nio/fs/MimeTypesFileTypeDetector.java16
8 files changed, 43 insertions, 36 deletions
diff --git a/luni/src/main/java/java/net/DefaultFileNameMap.java b/luni/src/main/java/java/net/DefaultFileNameMap.java
index d290ffeef0..cdd4214350 100644
--- a/luni/src/main/java/java/net/DefaultFileNameMap.java
+++ b/luni/src/main/java/java/net/DefaultFileNameMap.java
@@ -16,10 +16,10 @@
package java.net;
-import libcore.net.MimeMap;
+import libcore.content.type.MimeMap;
/**
- * Implements {@link FileNameMap} in terms of {@link libcore.net.MimeMap}.
+ * Implements {@link FileNameMap} in terms of {@link MimeMap}.
*/
class DefaultFileNameMap implements FileNameMap {
public String getContentTypeFor(String filename) {
diff --git a/luni/src/main/java/libcore/net/MimeMap.java b/luni/src/main/java/libcore/content/type/MimeMap.java
index 76446b3e52..2ee0119c5f 100644
--- a/luni/src/main/java/libcore/net/MimeMap.java
+++ b/luni/src/main/java/libcore/content/type/MimeMap.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package libcore.net;
+package libcore.content.type;
import java.util.Arrays;
import java.util.Collections;
diff --git a/luni/src/main/java/libcore/content/type/TEST_MAPPING b/luni/src/main/java/libcore/content/type/TEST_MAPPING
new file mode 100644
index 0000000000..8daab754ea
--- /dev/null
+++ b/luni/src/main/java/libcore/content/type/TEST_MAPPING
@@ -0,0 +1,7 @@
+{
+ "presubmit": [
+ {
+ "name": "CtsMimeMapTestCases"
+ }
+ ]
+}
diff --git a/luni/src/main/java/libcore/net/TEST_MAPPING b/luni/src/main/java/libcore/net/TEST_MAPPING
index 6190b4fcbd..f31705e02e 100644
--- a/luni/src/main/java/libcore/net/TEST_MAPPING
+++ b/luni/src/main/java/libcore/net/TEST_MAPPING
@@ -10,9 +10,6 @@
"include-filter": "org.apache.harmony.tests.java.net"
}
]
- },
- {
- "name": "CtsMimeMapTestCases"
}
]
}
diff --git a/luni/src/test/java/libcore/libcore/net/MimeMapTest.java b/luni/src/test/java/libcore/libcore/content/type/MimeMapTest.java
index c54500805c..04e7b85b2a 100644
--- a/luni/src/test/java/libcore/libcore/net/MimeMapTest.java
+++ b/luni/src/test/java/libcore/libcore/content/type/MimeMapTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package libcore.libcore.net;
+package libcore.libcore.content.type;
import org.junit.After;
import org.junit.Before;
@@ -26,8 +26,7 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
-import java.util.function.Function;
-import libcore.net.MimeMap;
+import libcore.content.type.MimeMap;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
diff --git a/mmodules/core_platform_api/api/platform/current-api.txt b/mmodules/core_platform_api/api/platform/current-api.txt
index 4fc669b0bc..15064b0011 100644
--- a/mmodules/core_platform_api/api/platform/current-api.txt
+++ b/mmodules/core_platform_api/api/platform/current-api.txt
@@ -1075,6 +1075,28 @@ package javax.crypto {
}
+package libcore.content.type {
+
+ public final class MimeMap {
+ method public libcore.content.type.MimeMap.Builder buildUpon();
+ method public static libcore.content.type.MimeMap.Builder builder();
+ method @NonNull public java.util.Set<java.lang.String> extensions();
+ method @NonNull public static libcore.content.type.MimeMap getDefault();
+ method @Nullable public String guessExtensionFromMimeType(@Nullable String);
+ method @Nullable public String guessMimeTypeFromExtension(@Nullable String);
+ method public boolean hasExtension(@Nullable String);
+ method public boolean hasMimeType(@Nullable String);
+ method @NonNull public java.util.Set<java.lang.String> mimeTypes();
+ method public static void setDefault(@NonNull libcore.content.type.MimeMap);
+ }
+
+ public static final class MimeMap.Builder {
+ method public libcore.content.type.MimeMap build();
+ method public libcore.content.type.MimeMap.Builder put(@NonNull String, @NonNull java.util.List<java.lang.String>);
+ }
+
+}
+
package libcore.icu {
public final class DateIntervalFormat {
@@ -1202,24 +1224,6 @@ package libcore.net {
method public static java.net.InetAddress parseNumericAddress(String);
}
- public final class MimeMap {
- method public libcore.net.MimeMap.Builder buildUpon();
- method public static libcore.net.MimeMap.Builder builder();
- method @NonNull public java.util.Set<java.lang.String> extensions();
- method @NonNull public static libcore.net.MimeMap getDefault();
- method @Nullable public String guessExtensionFromMimeType(@Nullable String);
- method @Nullable public String guessMimeTypeFromExtension(@Nullable String);
- method public boolean hasExtension(@Nullable String);
- method public boolean hasMimeType(@Nullable String);
- method @NonNull public java.util.Set<java.lang.String> mimeTypes();
- method public static void setDefault(@NonNull libcore.net.MimeMap);
- }
-
- public static final class MimeMap.Builder {
- method public libcore.net.MimeMap build();
- method public libcore.net.MimeMap.Builder put(@NonNull String, @NonNull java.util.List<java.lang.String>);
- }
-
public abstract class NetworkSecurityPolicy {
ctor public NetworkSecurityPolicy();
method public static libcore.net.NetworkSecurityPolicy getInstance();
diff --git a/non_openjdk_java_files.bp b/non_openjdk_java_files.bp
index 28fa59e878..c080fcfa40 100644
--- a/non_openjdk_java_files.bp
+++ b/non_openjdk_java_files.bp
@@ -212,6 +212,7 @@ filegroup {
"luni/src/main/java/libcore/api/CorePlatformApi.java",
"luni/src/main/java/libcore/api/Hide.java",
"luni/src/main/java/libcore/api/IntraCoreApi.java",
+ "luni/src/main/java/libcore/content/type/MimeMap.java",
"luni/src/main/java/libcore/icu/DateIntervalFormat.java",
"luni/src/main/java/libcore/icu/ICU.java",
"luni/src/main/java/libcore/icu/LocaleData.java",
@@ -226,7 +227,6 @@ filegroup {
"luni/src/main/java/libcore/io/Os.java",
"luni/src/main/java/libcore/io/Streams.java",
"luni/src/main/java/libcore/net/InetAddressUtils.java",
- "luni/src/main/java/libcore/net/MimeMap.java",
"luni/src/main/java/libcore/net/NetworkSecurityPolicy.java",
"luni/src/main/java/libcore/net/event/NetworkEventDispatcher.java",
"luni/src/main/java/libcore/timezone/CountryTimeZones.java",
diff --git a/ojluni/src/main/java/sun/nio/fs/MimeTypesFileTypeDetector.java b/ojluni/src/main/java/sun/nio/fs/MimeTypesFileTypeDetector.java
index b77b082a87..585b673a00 100644
--- a/ojluni/src/main/java/sun/nio/fs/MimeTypesFileTypeDetector.java
+++ b/ojluni/src/main/java/sun/nio/fs/MimeTypesFileTypeDetector.java
@@ -37,7 +37,7 @@ import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import libcore.net.MimeMap;
+import libcore.content.type.MimeMap;
/**
* File type detector that uses a file extension to look up its MIME type
@@ -46,7 +46,7 @@ import libcore.net.MimeMap;
class MimeTypesFileTypeDetector extends AbstractFileTypeDetector {
- // BEGIN Android-removed: Delegate to libcore.net.MimeMap.
+ // BEGIN Android-removed: Delegate to libcore.content.type.MimeMap.
/*
// path to mime.types file
private final Path mimeTypesFile;
@@ -61,7 +61,7 @@ class MimeTypesFileTypeDetector extends AbstractFileTypeDetector {
mimeTypesFile = filePath;
}
*/
- // END Android-removed: Delegate to libcore.net.MimeMap.
+ // END Android-removed: Delegate to libcore.content.type.MimeMap.
@Override
@@ -74,7 +74,7 @@ class MimeTypesFileTypeDetector extends AbstractFileTypeDetector {
if (ext.isEmpty())
return null; // no extension
- // Android-removed: Delegate to libcore.net.MimeMap.
+ // Android-removed: Delegate to libcore.content.type.MimeMap.
// loadMimeTypes();
// if (mimeTypeMap == null || mimeTypeMap.isEmpty())
// return null;
@@ -82,10 +82,10 @@ class MimeTypesFileTypeDetector extends AbstractFileTypeDetector {
// Case-sensitive search
String mimeType;
do {
- // BEGIN Android-changed: Delegate to libcore.net.MimeMap.
+ // BEGIN Android-changed: Delegate to libcore.content.type.MimeMap.
// mimeType = mimeTypeMap.get(ext);
mimeType = MimeMap.getDefault().guessMimeTypeFromExtension(ext);
- // END Android-changed: Delegate to libcore.net.MimeMap.
+ // END Android-changed: Delegate to libcore.content.type.MimeMap.
if (mimeType == null)
ext = getExtension(ext);
} while (mimeType == null && !ext.isEmpty());
@@ -105,7 +105,7 @@ class MimeTypesFileTypeDetector extends AbstractFileTypeDetector {
return ext;
}
- // BEGIN Android-removed: Delegate to libcore.net.MimeMap.
+ // BEGIN Android-removed: Delegate to libcore.content.type.MimeMap.
/*
/**
* Parse the mime types file, and store the type-extension mappings into
@@ -218,5 +218,5 @@ class MimeTypesFileTypeDetector extends AbstractFileTypeDetector {
}
}
*/
- // END Android-removed: Delegate to libcore.net.MimeMap.
+ // END Android-removed: Delegate to libcore.content.type.MimeMap.
}