From 19e0cf10f55f9a6a40c64e255ee106268f0a3580 Mon Sep 17 00:00:00 2001 From: wenshao Date: Mon, 27 Aug 2012 16:26:40 +0800 Subject: [PATCH] add logo --- .../druid/support/http/StatViewServlet.java | 12 ++++++- .../java/com/alibaba/druid/util/IOUtils.java | 33 ++++++++++++++++++ .../support/http/resources/img/logo.jpg | Bin 0 -> 6123 bytes .../support/http/resources/js/common.js | 3 +- .../alibaba/druid/benckmark/pool/Case1.java | 7 ++-- 5 files changed, 50 insertions(+), 5 deletions(-) create mode 100644 src/main/resources/support/http/resources/img/logo.jpg diff --git a/src/main/java/com/alibaba/druid/support/http/StatViewServlet.java b/src/main/java/com/alibaba/druid/support/http/StatViewServlet.java index 41a86f5bd2..61a105951c 100644 --- a/src/main/java/com/alibaba/druid/support/http/StatViewServlet.java +++ b/src/main/java/com/alibaba/druid/support/http/StatViewServlet.java @@ -212,7 +212,8 @@ public class StatViewServlet extends HttpServlet { return; } - if (isRequireAuth() && session.getAttribute(SESSION_USER_KEY) == null + if (isRequireAuth() + && session.getAttribute(SESSION_USER_KEY) == null && !("/login.html".equals(path) || path.startsWith("/css") || path.startsWith("/js") || path.startsWith("/img"))) { if (contextPath == null || contextPath.equals("") || contextPath.equals("/")) { response.sendRedirect("/login.html"); @@ -251,6 +252,15 @@ public class StatViewServlet extends HttpServlet { private void returnResourceFile(String fileName, String uri, HttpServletResponse response) throws ServletException, IOException { + if (fileName.endsWith(".jpg")) { + byte[] bytes = IOUtils.readByteArrayFromResource(RESOURCE_PATH + fileName); + if (bytes != null) { + response.getOutputStream().write(bytes); + } + + return; + } + String text = IOUtils.readFromResource(RESOURCE_PATH + fileName); if (text == null) { response.sendRedirect(uri + "/index.html"); diff --git a/src/main/java/com/alibaba/druid/util/IOUtils.java b/src/main/java/com/alibaba/druid/util/IOUtils.java index 496a1faa2e..eb5cba6956 100644 --- a/src/main/java/com/alibaba/druid/util/IOUtils.java +++ b/src/main/java/com/alibaba/druid/util/IOUtils.java @@ -15,9 +15,11 @@ */ package com.alibaba.druid.util; +import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.io.OutputStream; import java.io.PrintWriter; import java.io.Reader; import java.io.StringWriter; @@ -52,6 +54,37 @@ public class IOUtils { JdbcUtils.close(in); } } + + public static byte[] readByteArrayFromResource(String resource) throws IOException { + InputStream in = null; + try { + in = Thread.currentThread().getContextClassLoader().getResourceAsStream(resource); + if (in == null) { + return null; + } + + ByteArrayOutputStream output = new ByteArrayOutputStream(); + copy(in, output); + return output.toByteArray(); + } finally { + JdbcUtils.close(in); + } + } + + public static long copy(InputStream input, OutputStream output) + throws IOException { + final int EOF = -1; + + byte[] buffer = new byte[DEFAULT_BUFFER_SIZE]; + + long count = 0; + int n = 0; + while (EOF != (n = input.read(buffer))) { + output.write(buffer, 0, n); + count += n; + } + return count; + } public static String read(Reader reader) { try { diff --git a/src/main/resources/support/http/resources/img/logo.jpg b/src/main/resources/support/http/resources/img/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fe2d4e9dbc38de8803d70b7c22b1d0c64d124d95 GIT binary patch literal 6123 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/support/http/resources/js/common.js b/src/main/resources/support/http/resources/js/common.js index 1fddb51c82..6868de1c3a 100644 --- a/src/main/resources/support/http/resources/js/common.js +++ b/src/main/resources/support/http/resources/js/common.js @@ -41,7 +41,8 @@ druid.common = function () { buildFooter : function() { var html = ''; $(document.body).append(html); diff --git a/src/test/java/com/alibaba/druid/benckmark/pool/Case1.java b/src/test/java/com/alibaba/druid/benckmark/pool/Case1.java index fa851a30c2..d8f5de9a2c 100644 --- a/src/test/java/com/alibaba/druid/benckmark/pool/Case1.java +++ b/src/test/java/com/alibaba/druid/benckmark/pool/Case1.java @@ -45,9 +45,9 @@ public class Case1 extends TestCase { private int maxPoolSize = 50; private int maxActive = 50; private String validationQuery = "SELECT 1"; - private int threadCount = 2; + private int threadCount = 10; private int loopCount = 4; - final int LOOP_COUNT = 1000 * 1000; + final int LOOP_COUNT = 1000 * 100; protected void setUp() throws Exception { jdbcUrl = "jdbc:fake:dragoon_v25masterdb"; @@ -56,7 +56,7 @@ public class Case1 extends TestCase { driverClass = "com.alibaba.druid.mock.MockDriver"; } - public void test_0() throws Exception { + public void f_test_0() throws Exception { DruidDataSource dataSource = new DruidDataSource(); dataSource.setInitialSize(initialSize); @@ -110,6 +110,7 @@ public class Case1 extends TestCase { dataSource.setDriverClass(driverClass); dataSource.setJdbcUrl(jdbcUrl); dataSource.setStatementsCacheSize(100); + dataSource.setServiceOrder("LIFO"); // dataSource.setMaxOpenPreparedStatements(100); dataSource.setUsername(user); dataSource.setPassword(password);