Repository: stratos
Updated Branches:
  refs/heads/master 3db4b2199 -> 5e548002d


Fixed typo in class name jira STRATOS-682


Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/4c5a9d77
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/4c5a9d77
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/4c5a9d77

Branch: refs/heads/master
Commit: 4c5a9d77760cdbe8c627df409349b5054311352e
Parents: 157b0c3
Author: Dakshika Jayathilaka <[email protected]>
Authored: Sun Jun 22 09:55:32 2014 +0000
Committer: Dakshika Jayathilaka <[email protected]>
Committed: Sun Jun 22 09:55:32 2014 +0000

----------------------------------------------------------------------
 .../mgt/ui/servlets/ThemeResourceServlets.java  | 125 +++++++++++++++++++
 1 file changed, 125 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/4c5a9d77/components/org.apache.stratos.theme.mgt.ui/src/main/java/org/apache/stratos/theme/mgt/ui/servlets/ThemeResourceServlets.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.theme.mgt.ui/src/main/java/org/apache/stratos/theme/mgt/ui/servlets/ThemeResourceServlets.java
 
b/components/org.apache.stratos.theme.mgt.ui/src/main/java/org/apache/stratos/theme/mgt/ui/servlets/ThemeResourceServlets.java
new file mode 100644
index 0000000..3190590
--- /dev/null
+++ 
b/components/org.apache.stratos.theme.mgt.ui/src/main/java/org/apache/stratos/theme/mgt/ui/servlets/ThemeResourceServlets.java
@@ -0,0 +1,125 @@
+/**
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you 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 org.apache.stratos.theme.mgt.ui.servlets;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import 
org.apache.stratos.theme.mgt.stub.registry.resource.stub.beans.xsd.ContentDownloadBean;
+import org.apache.stratos.theme.mgt.ui.clients.ThemeMgtServiceClient;
+
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.InputStream;
+
+public class ThemeResourceServlets extends HttpServlet {
+
+    private static final Log log = 
LogFactory.getLog(ThemeResourceServlets.class);
+
+    private ServletConfig servletConfig;
+
+    public void init(ServletConfig servletConfig) throws ServletException {
+        super.init(servletConfig);
+        this.servletConfig = servletConfig;
+    }
+
+    protected void doGet(HttpServletRequest request, HttpServletResponse 
response)
+            throws ServletException, IOException {
+
+        try {
+            ThemeMgtServiceClient client = new 
ThemeMgtServiceClient(servletConfig, request.getSession());
+            String path = request.getParameter("path");
+            String viewImage = request.getParameter("viewImage");
+            if (path == null) {
+                String msg = "Could not get the resource content. Path is not 
specified.";
+                log.error(msg);
+                response.setStatus(400);
+                return;
+            }
+
+            ContentDownloadBean bean = client.getContentDownloadBean(path);
+
+            InputStream contentStream = null;
+            if (bean.getContent() != null) {
+                contentStream = bean.getContent().getInputStream();
+            } else {
+                String msg = "The resource content was empty.";
+                log.error(msg);
+                response.setStatus(204);
+                return;
+            }
+
+            response.setDateHeader("Last-Modified", 
bean.getLastUpdatedTime().getTime().getTime());
+            String ext = "jpg";
+            if (path.lastIndexOf(".") < path.length() -1 && 
path.lastIndexOf(".") > 0) {
+                ext = path.substring(path.lastIndexOf(".") + 1);
+            }
+
+            if (viewImage != null && viewImage.equals("1")) {
+                response.setContentType("img/" + ext);
+            }
+            else {
+                if (bean.getMediatype() != null && 
bean.getMediatype().length() > 0) {
+                    response.setContentType(bean.getMediatype());
+                } else {
+                    response.setContentType("application/download");
+                }
+
+                if (bean.getResourceName() != null) {
+                    response.setHeader(
+                            "Content-Disposition", "attachment; filename=\"" + 
bean.getResourceName() + "\"");
+                }
+            }
+
+            if (contentStream != null) {
+
+                ServletOutputStream servletOutputStream = null;
+                try {
+                    servletOutputStream = response.getOutputStream();
+
+                    byte[] contentChunk = new byte[1024];
+                    int byteCount;
+                    while ((byteCount = contentStream.read(contentChunk)) != 
-1) {
+                        servletOutputStream.write(contentChunk, 0, byteCount);
+                    }
+
+                    response.flushBuffer();
+                    servletOutputStream.flush();
+
+                } finally {
+                    contentStream.close();
+
+                    if (servletOutputStream != null) {
+                        servletOutputStream.close();
+                    }
+                }
+            }
+        } catch (Exception e) {
+
+            String msg = "Failed to get resource content. " + e.getMessage();
+            log.error(msg, e);
+            response.setStatus(500);
+        }
+    }
+}

Reply via email to