Bundles { public static void setMimeType(Bundle bundle, String mimetype) throws IOException { if (!ASCII.newEncoder().canEncode(mimetype)) throw new IllegalArgumentException("mimetype must be ASCII, not " + mimetype); if (mimetype.contains("\n") || mimetype.contains("\r")) throw new IllegalArgumentException( "mimetype can't contain newlines"); if (!mimetype.contains("/")) throw new IllegalArgumentException("Invalid mimetype: " + mimetype); Path root = bundle.getRoot(); Path mimetypePath = root.resolve(MIMETYPE_FILE); if (!isRegularFile(mimetypePath)) { throw new IOException("Special file '" + MIMETYPE_FILE + "' missing from bundle, can't set mimetype"); } setStringValue(mimetypePath, mimetype); }  static void closeAndSaveBundle(Bundle bundle, Path destination); static Path closeBundle(Bundle bundle); static void copyRecursively(final Path source,
			final Path destination, final CopyOption... copyOptions); static Bundle createBundle(); static Bundle createBundle(Path path); static void deleteRecursively(Path p); static Path getAnnotations(Bundle bundle); static Path getManifestPath(Bundle bundle); static String getMimeType(Bundle bundle); static URI getReference(Path path); static String getStringValue(Path path); static boolean isMissing(Path item); static boolean isReference(Path path); static boolean isValue(Path path); static Bundle openBundle(InputStream in); static Bundle openBundle(Path zip); static Bundle openBundle(URL url); static Bundle openBundleReadOnly(Path zip); static void safeCopy(Path source, Path destination); static void safeMove(Path source, Path destination); static void setMimeType(Bundle bundle, String mimetype); static Path setReference(Path path, URI ref); static void setStringValue(Path path, String string); static Path uriToBundlePath(Bundle bundle, URI uri);  }
@Test public void setMimeType() throws Exception { try (Bundle bundle = Bundles.createBundle()) { Path mimetypePath = bundle.getRoot().resolve("mimetype"); assertEquals("application/vnd.wf4ever.robundle+zip", Bundles.getStringValue(mimetypePath)); Bundles.setMimeType(bundle, "application/x-test"); assertEquals("application/x-test", Bundles.getStringValue(mimetypePath)); } }