Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ArtifactFileServlet.java')
-rw-r--r--plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ArtifactFileServlet.java304
1 files changed, 152 insertions, 152 deletions
diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ArtifactFileServlet.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ArtifactFileServlet.java
index 491650d7faf..8236cfb21e0 100644
--- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ArtifactFileServlet.java
+++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ArtifactFileServlet.java
@@ -1,152 +1,152 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 Boeing.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Boeing - initial API and implementation
- *******************************************************************************/
-package org.eclipse.osee.framework.manager.servlet;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.HttpURLConnection;
-import java.util.logging.Level;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.core.exception.OseeExceptions;
-import org.eclipse.osee.framework.core.server.UnsecuredOseeHttpServlet;
-import org.eclipse.osee.framework.jdk.core.type.Pair;
-import org.eclipse.osee.framework.jdk.core.util.Lib;
-import org.eclipse.osee.framework.jdk.core.util.Strings;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.manager.servlet.data.ArtifactUtil;
-import org.eclipse.osee.framework.manager.servlet.data.DefaultOseeArtifact;
-import org.eclipse.osee.framework.manager.servlet.data.HttpArtifactFileInfo;
-import org.eclipse.osee.framework.manager.servlet.internal.Activator;
-import org.eclipse.osee.framework.resource.management.IResource;
-import org.eclipse.osee.framework.resource.management.IResourceLocator;
-import org.eclipse.osee.framework.resource.management.IResourceLocatorManager;
-import org.eclipse.osee.framework.resource.management.IResourceManager;
-import org.eclipse.osee.framework.resource.management.Options;
-import org.eclipse.osee.framework.resource.management.StandardOptions;
-
-/**
- * @author Roberto E. Escobar
- */
-public class ArtifactFileServlet extends UnsecuredOseeHttpServlet {
-
- private static final long serialVersionUID = -6334080268467740905L;
-
- private final IResourceLocatorManager locatorManager;
- private final IResourceManager resourceManager;
-
- public ArtifactFileServlet(IResourceLocatorManager locatorManager, IResourceManager resourceManager) {
- super();
- this.locatorManager = locatorManager;
- this.resourceManager = resourceManager;
- }
-
- @Override
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
- try {
- HttpArtifactFileInfo artifactFileInfo = null;
-
- String servletPath = request.getServletPath();
- // System.out.println("servletPath: " + servletPath);
- if (!Strings.isValid(servletPath) || "/".equals(servletPath) || "/index".equals(servletPath)) {
- // Enumeration<?> enumeration = request.getHeaderNames();
- // while (enumeration.hasMoreElements()) {
- // String headerField = (String) enumeration.nextElement();
- // String value = request.getHeader(headerField);
- // System.out.println(String.format("%s: %s", headerField, value));
- // }
-
- Pair<String, String> defaultArtifact = DefaultOseeArtifact.get();
- if (defaultArtifact != null) {
- artifactFileInfo =
- new HttpArtifactFileInfo(defaultArtifact.getFirst(), null, defaultArtifact.getSecond());
- }
- } else {
- artifactFileInfo = new HttpArtifactFileInfo(request);
- }
-
- String uri = null;
- if (artifactFileInfo != null) {
- if (artifactFileInfo.isBranchNameValid()) {
- uri = ArtifactUtil.getUri(artifactFileInfo.getGuid(), artifactFileInfo.getBranchName());
- } else {
- uri = ArtifactUtil.getUri(artifactFileInfo.getGuid(), artifactFileInfo.getId());
- }
- }
- handleArtifactUri(locatorManager, resourceManager, request.getQueryString(), uri, response);
- } catch (NumberFormatException ex) {
- handleError(response, HttpServletResponse.SC_BAD_REQUEST,
- String.format("Invalid Branch Id: [%s]", request.getQueryString()), ex);
- } catch (Exception ex) {
- handleError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
- String.format("Unable to acquire resource: [%s]", request.getQueryString()), ex);
- } finally {
- response.flushBuffer();
- }
- }
-
- public static void handleArtifactUri(IResourceLocatorManager locatorManager, IResourceManager resourceManager, String request, String uri, HttpServletResponse response) throws OseeCoreException {
- boolean wasProcessed = false;
- if (Strings.isValid(uri)) {
- IResourceLocator locator = locatorManager.getResourceLocator(uri);
- Options options = new Options();
- options.put(StandardOptions.DecompressOnAquire.name(), true);
- IResource resource = resourceManager.acquire(locator, options);
-
- if (resource != null) {
- wasProcessed = true;
-
- InputStream inputStream = null;
- try {
- inputStream = resource.getContent();
-
- response.setStatus(HttpServletResponse.SC_OK);
- response.setContentLength(inputStream.available());
- response.setCharacterEncoding("ISO-8859-1");
- String mimeType = HttpURLConnection.guessContentTypeFromStream(inputStream);
- if (mimeType == null) {
- mimeType = HttpURLConnection.guessContentTypeFromName(resource.getLocation().toString());
- if (mimeType == null) {
- mimeType = "application/*";
- }
- }
- response.setContentType(mimeType);
- if (!mimeType.equals("text/html")) {
- response.setHeader("Content-Disposition", "attachment; filename=" + resource.getName());
- }
- Lib.inputStreamToOutputStream(inputStream, response.getOutputStream());
- response.flushBuffer();
- } catch (IOException ex) {
- OseeExceptions.wrapAndThrow(ex);
- } finally {
- Lib.close(inputStream);
- }
- }
- }
- if (!wasProcessed) {
- response.setStatus(HttpServletResponse.SC_NOT_FOUND);
- response.setContentType("text/plain");
- try {
- response.getWriter().write(String.format("Unable to find resource: [%s]", request));
- } catch (IOException ex) {
- OseeExceptions.wrapAndThrow(ex);
- }
- }
- }
-
- private void handleError(HttpServletResponse response, int status, String message, Throwable ex) throws IOException {
- response.setStatus(status);
- response.setContentType("text/plain");
- OseeLog.log(Activator.class, Level.SEVERE, message, ex);
- response.getWriter().write(Lib.exceptionToString(ex));
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2004, 2007 Boeing.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Boeing - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.osee.framework.manager.servlet;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.util.logging.Level;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.eclipse.osee.framework.core.exception.OseeCoreException;
+import org.eclipse.osee.framework.core.exception.OseeExceptions;
+import org.eclipse.osee.framework.core.server.UnsecuredOseeHttpServlet;
+import org.eclipse.osee.framework.jdk.core.type.Pair;
+import org.eclipse.osee.framework.jdk.core.util.Lib;
+import org.eclipse.osee.framework.jdk.core.util.Strings;
+import org.eclipse.osee.framework.logging.OseeLog;
+import org.eclipse.osee.framework.manager.servlet.data.ArtifactUtil;
+import org.eclipse.osee.framework.manager.servlet.data.DefaultOseeArtifact;
+import org.eclipse.osee.framework.manager.servlet.data.HttpArtifactFileInfo;
+import org.eclipse.osee.framework.manager.servlet.internal.Activator;
+import org.eclipse.osee.framework.resource.management.IResource;
+import org.eclipse.osee.framework.resource.management.IResourceLocator;
+import org.eclipse.osee.framework.resource.management.IResourceLocatorManager;
+import org.eclipse.osee.framework.resource.management.IResourceManager;
+import org.eclipse.osee.framework.resource.management.Options;
+import org.eclipse.osee.framework.resource.management.StandardOptions;
+
+/**
+ * @author Roberto E. Escobar
+ */
+public class ArtifactFileServlet extends UnsecuredOseeHttpServlet {
+
+ private static final long serialVersionUID = -6334080268467740905L;
+
+ private final IResourceLocatorManager locatorManager;
+ private final IResourceManager resourceManager;
+
+ public ArtifactFileServlet(IResourceLocatorManager locatorManager, IResourceManager resourceManager) {
+ super();
+ this.locatorManager = locatorManager;
+ this.resourceManager = resourceManager;
+ }
+
+ @Override
+ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ try {
+ HttpArtifactFileInfo artifactFileInfo = null;
+
+ String servletPath = request.getServletPath();
+ // System.out.println("servletPath: " + servletPath);
+ if (!Strings.isValid(servletPath) || "/".equals(servletPath) || "/index".equals(servletPath)) {
+ // Enumeration<?> enumeration = request.getHeaderNames();
+ // while (enumeration.hasMoreElements()) {
+ // String headerField = (String) enumeration.nextElement();
+ // String value = request.getHeader(headerField);
+ // System.out.println(String.format("%s: %s", headerField, value));
+ // }
+
+ Pair<String, String> defaultArtifact = DefaultOseeArtifact.get();
+ if (defaultArtifact != null) {
+ artifactFileInfo =
+ new HttpArtifactFileInfo(defaultArtifact.getFirst(), null, defaultArtifact.getSecond());
+ }
+ } else {
+ artifactFileInfo = new HttpArtifactFileInfo(request);
+ }
+
+ String uri = null;
+ if (artifactFileInfo != null) {
+ if (artifactFileInfo.isBranchNameValid()) {
+ uri = ArtifactUtil.getUri(artifactFileInfo.getGuid(), artifactFileInfo.getBranchName());
+ } else {
+ uri = ArtifactUtil.getUri(artifactFileInfo.getGuid(), artifactFileInfo.getId());
+ }
+ }
+ handleArtifactUri(locatorManager, resourceManager, request.getQueryString(), uri, response);
+ } catch (NumberFormatException ex) {
+ handleError(response, HttpServletResponse.SC_BAD_REQUEST,
+ String.format("Invalid Branch Id: [%s]", request.getQueryString()), ex);
+ } catch (Exception ex) {
+ handleError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
+ String.format("Unable to acquire resource: [%s]", request.getQueryString()), ex);
+ } finally {
+ response.flushBuffer();
+ }
+ }
+
+ public static void handleArtifactUri(IResourceLocatorManager locatorManager, IResourceManager resourceManager, String request, String uri, HttpServletResponse response) throws OseeCoreException {
+ boolean wasProcessed = false;
+ if (Strings.isValid(uri)) {
+ IResourceLocator locator = locatorManager.getResourceLocator(uri);
+ Options options = new Options();
+ options.put(StandardOptions.DecompressOnAquire.name(), true);
+ IResource resource = resourceManager.acquire(locator, options);
+
+ if (resource != null) {
+ wasProcessed = true;
+
+ InputStream inputStream = null;
+ try {
+ inputStream = resource.getContent();
+
+ response.setStatus(HttpServletResponse.SC_OK);
+ response.setContentLength(inputStream.available());
+ response.setCharacterEncoding("ISO-8859-1");
+ String mimeType = HttpURLConnection.guessContentTypeFromStream(inputStream);
+ if (mimeType == null) {
+ mimeType = HttpURLConnection.guessContentTypeFromName(resource.getLocation().toString());
+ if (mimeType == null) {
+ mimeType = "application/*";
+ }
+ }
+ response.setContentType(mimeType);
+ if (!mimeType.equals("text/html")) {
+ response.setHeader("Content-Disposition", "attachment; filename=" + resource.getName());
+ }
+ Lib.inputStreamToOutputStream(inputStream, response.getOutputStream());
+ response.flushBuffer();
+ } catch (IOException ex) {
+ OseeExceptions.wrapAndThrow(ex);
+ } finally {
+ Lib.close(inputStream);
+ }
+ }
+ }
+ if (!wasProcessed) {
+ response.setStatus(HttpServletResponse.SC_NOT_FOUND);
+ response.setContentType("text/plain");
+ try {
+ response.getWriter().write(String.format("Unable to find resource: [%s]", request));
+ } catch (IOException ex) {
+ OseeExceptions.wrapAndThrow(ex);
+ }
+ }
+ }
+
+ private void handleError(HttpServletResponse response, int status, String message, Throwable ex) throws IOException {
+ response.setStatus(status);
+ response.setContentType("text/plain");
+ OseeLog.log(Activator.class, Level.SEVERE, message, ex);
+ response.getWriter().write(Lib.exceptionToString(ex));
+ }
+}

Back to the top