- private String getFilePathFromUri(String uri) {
- return uri.substring((FILE_SCHEME + SCHEME_HOST_SEPARATOR).length());
+ private String getAbsPathFromUri(String uri) {
+ if (uri.startsWith(FILE_SCHEME))
+ return uri.substring((FILE_SCHEME + SCHEME_HOST_SEPARATOR).length());
+ else if (uri.startsWith(JCR_SCHEME))
+ return uri.substring((JCR_SCHEME + SCHEME_HOST_SEPARATOR).length());
+ else
+ throw new SingleSourcingException("Unknown URI prefix for" + uri);
+ }
+
+ protected String getMimeType(String uri, String fileName) throws IOException {
+ if (uri.startsWith(FILE_SCHEME)) {
+ Path path = Paths.get(getAbsPathFromUri(uri));
+ String mimeType = Files.probeContentType(path);
+ if (EclipseUiUtils.notEmpty(mimeType))
+ return mimeType;
+ }
+ return getMimeTypeFromName(fileName);
+ }
+
+ /** Overwrite to precise the content type */
+ protected String getMimeTypeFromName(String fileName) {
+ return "application/octet-stream";