From b6961f7f418ada91631c9b726c35a900eb957d59 Mon Sep 17 00:00:00 2001 From: "yong.you" Date: Mon, 25 Nov 2013 14:06:16 +0800 Subject: [PATCH] refator code --- .../cat/consumer/browser/BrowserAnalyzer.java | 200 ------------------ .../cat/consumer/browser/BrowserDelegate.java | 86 -------- .../consumer/browser/BrowserReportMerger.java | 45 ---- .../com/dianping/cat/consumer/AllTests.java | 3 - .../consumer/browser/BrowserAnalyzerTest.java | 46 ---- .../browser/BrowserReportMergerTest.java | 29 --- .../cat/report/page/AbstractReportModel.java | 3 +- .../system/page/abtest/util/CaseBuilder.java | 2 +- 8 files changed, 3 insertions(+), 411 deletions(-) delete mode 100644 cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/browser/BrowserAnalyzer.java delete mode 100644 cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/browser/BrowserDelegate.java delete mode 100644 cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/browser/BrowserReportMerger.java delete mode 100644 cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/browser/BrowserAnalyzerTest.java delete mode 100644 cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/browser/BrowserReportMergerTest.java diff --git a/cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/browser/BrowserAnalyzer.java b/cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/browser/BrowserAnalyzer.java deleted file mode 100644 index ef41d808c..000000000 --- a/cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/browser/BrowserAnalyzer.java +++ /dev/null @@ -1,200 +0,0 @@ -package com.dianping.cat.consumer.browser; - -import java.util.List; -import java.util.StringTokenizer; - -import org.codehaus.plexus.logging.LogEnabled; -import org.codehaus.plexus.logging.Logger; -import org.unidal.lookup.annotation.Inject; - -import com.dianping.cat.analysis.AbstractMessageAnalyzer; -import com.dianping.cat.consumer.browser.model.entity.Browser; -import com.dianping.cat.consumer.browser.model.entity.BrowserReport; -import com.dianping.cat.message.Message; -import com.dianping.cat.message.Transaction; -import com.dianping.cat.message.spi.MessageTree; -import com.dianping.cat.service.ReportManager; - -public class BrowserAnalyzer extends AbstractMessageAnalyzer - implements LogEnabled { - public static final String ID = "browser"; - - @Inject(ID) - private ReportManager m_reportManager; - - public BrowserReport update(BrowserReport report, String[] agentToken) { - for (String s : agentToken) { - for (String browser : BrowsersAndOses.BROWSERS) { - int index; - index = s.toUpperCase().indexOf(browser.toUpperCase()); - if (index >= 0) { - String subS = s.substring(index); - String[] browserAndVersionString = split(subS, "/"); - Browser b = report.findOrCreateDomainDetail("Cat") - .findOrCreateBrowser(browserAndVersionString[0]); - b.setCount(b.getCount() + 1); - - if (browserAndVersionString.length >= 2) { - int i; - String version = browserAndVersionString[1]; - for (i = 0; (i < version.length()) - && (version.charAt(i) >= '0' - && version.charAt(i) <= '9' || version - .charAt(i) == '.'); i++) - ; - version = version.substring(0, i); - b.findOrCreateBrowserVersion(version).setCount( - b.findOrCreateBrowserVersion(version) - .getCount() + 1); - } - } - } - for (String os : BrowsersAndOses.OSES) { - int index; - index = s.toUpperCase().indexOf(os.toUpperCase()); - if (index >= 0) { - report.findOrCreateDomainDetail("Cat") - .findOrCreateOs(os).setCount(report.findOrCreateDomainDetail("Cat") - .findOrCreateOs(os).getCount() + 1); - } - } - } - return report; - } - - public String[] splitAgent(String message) { - return null; - } - - private String[] split(String message, String divisionChar) { - - StringTokenizer tokenizer = new StringTokenizer(message, divisionChar); - int i = 0; - String[] string = new String[tokenizer.countTokens()];// 动态的决定数组的长度 - while (tokenizer.hasMoreTokens()) { - string[i] = new String(); - string[i] = tokenizer.nextToken(); - i++; - } - return string;// 返回字符串数组 - } - - protected String parseValue(final String key, final String data) { - int len = data == null ? 0 : data.length(); - int keyLen = key.length(); - StringBuilder name = new StringBuilder(); - StringBuilder value = new StringBuilder(); - boolean inName = true; - - for (int i = 0; i < len; i++) { - char ch = data.charAt(i); - - switch (ch) { - case '&': - if (name.length() == keyLen && name.toString().equals(key)) { - return value.toString(); - } - inName = true; - name.setLength(0); - value.setLength(0); - break; - case '=': - if (inName) { - inName = false; - } else { - value.append(ch); - } - break; - default: - if (inName) { - name.append(ch); - } else { - value.append(ch); - } - break; - } - } - - if (name.length() == keyLen && name.toString().equals(key)) { - return value.toString(); - } - - return null; - } - - @Override - public void enableLogging(Logger logger) { - - } - - @Override - public BrowserReport getReport(String domain) { - return null; - } - - @Override - protected void process(MessageTree tree) { - Message message = tree.getMessage(); - if (message instanceof Transaction) { - String type = message.getType(); - - if ("URL".equals(type)) { - List children = ((Transaction) message).getChildren(); - - for (Message child : children) { - String childType = child.getType(); - String childName = child.getName(); - BrowserReport report = m_reportManager.getHourlyReport( - getStartTime(), "Cat", true); - - if ("URL".equals(childType) - && ("URL.Server".equals(childName) || "ClientInfo" - .equals(childName))) { - String data = (String) child.getData(); - - updateBrowserReport(report, data); - return; - } - } - } - } - - } - - private void updateBrowserReport(BrowserReport report, String data) { - } - - public class BrowserAndVersion { - private String browser; - private String browserVersion; - - public String getBrowser() { - return browser; - } - - public void setBrowser(String browser) { - this.browser = browser; - } - - public String getBrowserVersion() { - return browserVersion; - } - - public void setBrowserVersion(String browserVersion) { - this.browserVersion = browserVersion; - } - } - - private static class BrowsersAndOses { - public static final String OSES[] = { "Windows NT", "Linux", - "WindowsMobile", "Android", "Mac OS" }; - public static final String BROWSERS[] = { "Chrome", "Maxthon", - "AppleWebKit", "QQBrowser", "UC Browser", "Safari", - "LBBROWSER", "QQ Browser", "UCBrowser" }; - } - - @Override - public void doCheckpoint(boolean atEnd) { - - } -} diff --git a/cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/browser/BrowserDelegate.java b/cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/browser/BrowserDelegate.java deleted file mode 100644 index e2efa9148..000000000 --- a/cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/browser/BrowserDelegate.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.dianping.cat.consumer.browser; - -import java.util.Date; -import java.util.Map; -import java.util.Set; - -import org.unidal.lookup.annotation.Inject; - -import com.dianping.cat.consumer.browser.BrowserReportMerger; -import com.dianping.cat.consumer.browser.model.entity.BrowserReport; -import com.dianping.cat.consumer.browser.model.transform.DefaultSaxParser; -import com.dianping.cat.consumer.browser.model.transform.DefaultNativeBuilder; -import com.dianping.cat.consumer.browser.model.transform.DefaultNativeParser; -import com.dianping.cat.service.ReportDelegate; -import com.dianping.cat.task.TaskManager; -import com.dianping.cat.task.TaskManager.TaskProlicy; - -public class BrowserDelegate implements ReportDelegate { - - @Inject - private TaskManager m_taskManager; - - @Override - public void afterLoad(Map reports) { - } - - @Override - public void beforeSave(Map reports) { - for (BrowserReport report : reports.values()) { - Set domainNames = report.getDomainNames(); - - domainNames.clear(); - domainNames.addAll(reports.keySet()); - } - } - - @Override - public String buildXml(BrowserReport report) { - return report.toString(); - } - - @Override - public boolean createHourlyTask(BrowserReport report) { - return m_taskManager.createTask(report.getStartTime(), report.getDomain(), BrowserAnalyzer.ID, TaskProlicy.ALL_EXCLUED_HOURLY); - } - - @Override - public String getDomain(BrowserReport report) { - return report.getDomain(); - } - - @Override - public BrowserReport makeReport(String domain, long startTime, long duration) { - BrowserReport report = new BrowserReport(domain); - - report.setStartTime(new Date(startTime)); - report.setEndTime(new Date(startTime + duration - 1)); - - return report; - } - - @Override - public BrowserReport mergeReport(BrowserReport old, BrowserReport other) { - BrowserReportMerger merger = new BrowserReportMerger(old); - - other.accept(merger); - return old; - } - - @Override - public BrowserReport parseXml(String xml) throws Exception { - BrowserReport report = DefaultSaxParser.parse(xml); - - return report; - } - - @Override - public byte[] buildBinary(BrowserReport report) { - return DefaultNativeBuilder.build(report); - } - - @Override - public BrowserReport parseBinary(byte[] bytes) { - return DefaultNativeParser.parse(bytes); - } -} diff --git a/cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/browser/BrowserReportMerger.java b/cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/browser/BrowserReportMerger.java deleted file mode 100644 index 8dae1876d..000000000 --- a/cat-consumer-advanced/src/main/java/com/dianping/cat/consumer/browser/BrowserReportMerger.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.dianping.cat.consumer.browser; - -import com.dianping.cat.consumer.browser.model.entity.Browser; -import com.dianping.cat.consumer.browser.model.entity.BrowserReport; -import com.dianping.cat.consumer.browser.model.entity.BrowserVersion; -import com.dianping.cat.consumer.browser.model.entity.DomainDetail; -import com.dianping.cat.consumer.browser.model.entity.Os; -import com.dianping.cat.consumer.browser.model.transform.DefaultMerger; - -public class BrowserReportMerger extends DefaultMerger { - - public BrowserReportMerger(BrowserReport browserReport) { - super(browserReport); - } - - @Override - protected void mergeDomainDetail(DomainDetail old, DomainDetail other) { - } - - @Override - protected void mergeBrowser(Browser old, Browser browser) { - old.setCount(old.getCount() + browser.getCount()); - } - - @Override - protected void mergeOs(Os old, Os os) { - old.setCount(old.getCount() + os.getCount()); - } - - @Override - protected void mergeBrowserVersion(BrowserVersion old, BrowserVersion browserVersion) { - old.setCount(old.getCount() + browserVersion.getCount()); - } - - @Override - public void visitBrowserReport(BrowserReport browserReport) { - BrowserReport oldReport = getBrowserReport(); - - oldReport.setDomain(browserReport.getDomain()); - oldReport.setStartTime(browserReport.getStartTime()); - oldReport.setEndTime(browserReport.getEndTime()); - oldReport.getDomainNames().addAll(browserReport.getDomainNames()); - super.visitBrowserReport(browserReport); - } -} diff --git a/cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/AllTests.java b/cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/AllTests.java index eef8b53c2..3e4ec0191 100644 --- a/cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/AllTests.java +++ b/cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/AllTests.java @@ -5,7 +5,6 @@ import org.junit.runners.Suite; import org.junit.runners.Suite.SuiteClasses; import com.dianping.cat.consumer.advanced.MetricAnalyzerTest; -import com.dianping.cat.consumer.browser.BrowserReportMergerTest; import com.dianping.cat.consumer.cross.CrossAnalyzerTest; import com.dianping.cat.consumer.cross.CrossInfoTest; import com.dianping.cat.consumer.cross.CrossReportMergerTest; @@ -34,8 +33,6 @@ MatrixReportMergerTest.class, DatabaseParserTest.class, -BrowserReportMergerTest.class, - CrossAnalyzerTest.class, SqlAnalyzerTest.class, diff --git a/cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/browser/BrowserAnalyzerTest.java b/cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/browser/BrowserAnalyzerTest.java deleted file mode 100644 index b8cf53460..000000000 --- a/cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/browser/BrowserAnalyzerTest.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.dianping.cat.consumer.browser; - -import org.junit.Assert; -import org.junit.Test; -import org.unidal.lookup.ComponentTestCase; - -import com.dianping.cat.consumer.browser.model.entity.BrowserReport; - -public class BrowserAnalyzerTest extends ComponentTestCase { - - @SuppressWarnings("deprecation") - @Test - public void splitAgentTest() throws Exception { - BrowserAnalyzer browserAnalyzer = new BrowserAnalyzer(); - String s = "Agent=Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727)"; - - String[] strings = browserAnalyzer.splitAgent(s); - String[] supposed = { "Mozilla/4.0", "compatible", "MSIE 8.0", - "Windows NT 5.1", "Trident/4.0", ".NET CLR 2.0.50727" }; - Assert.assertEquals("Check the split result!", strings, supposed); - } - - @Test - public void updateTest() throws Exception { - BrowserAnalyzer browserAnalyzer = new BrowserAnalyzer(); - String s = "Agent=Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.12 (KHTML, like Gecko) Maxthon/3.4.2.1000 Chrome/18.0.966.0 Safari/535.12"; - BrowserReport actual = browserAnalyzer - .update(new BrowserReport("Cat"), browserAnalyzer.splitAgent(s)); - System.out.println(actual); - } - - - @Test - public void updateBrowserReportTest() throws Exception { - BrowserAnalyzer browserAnalyzer = new BrowserAnalyzer(); - String s1 = "Agent=Mozilla/5.0 (Linux; U; Android 4.0.3; zh-CN; WM8850-mid Build/IML74K) AppleWebKit/534.31 (KHTML, like Gecko) UCBrowser/9.2.4.329 U3/0.8.0 Mobile Safari/534.31"; - String s2 = "Agent=Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.12 (KHTML, like Gecko) Maxthon/3.4.2.1000 Chrome/18.0.966.0 Safari/535.12"; - BrowserReport report1 = browserAnalyzer - .update(new BrowserReport("Cat"), browserAnalyzer.splitAgent(s1)); - report1 = browserAnalyzer - .update(report1, browserAnalyzer.splitAgent(s2)); -// Assert.assertEquals("Check the split result!", report1.toString() -// .replace("\r", ""), supposed.toString().replace("\r", "")); - } - -} diff --git a/cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/browser/BrowserReportMergerTest.java b/cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/browser/BrowserReportMergerTest.java deleted file mode 100644 index fe17fb920..000000000 --- a/cat-consumer-advanced/src/test/java/com/dianping/cat/consumer/browser/BrowserReportMergerTest.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.dianping.cat.consumer.browser; - -import org.junit.Assert; -import org.junit.Test; -import org.unidal.lookup.ComponentTestCase; -import org.unidal.helper.Files; - -import com.dianping.cat.consumer.browser.model.entity.BrowserReport; -import com.dianping.cat.consumer.browser.model.transform.DefaultSaxParser; - -public class BrowserReportMergerTest extends ComponentTestCase { - @Test - public void mergeDomainTest() throws Exception{ - String oldXml = Files.forIO().readFrom(getClass().getResourceAsStream("old.xml"), "utf-8"); - String newXml = Files.forIO().readFrom(getClass().getResourceAsStream("new.xml"), "utf-8"); - BrowserReport reportOld = DefaultSaxParser.parse(oldXml); - BrowserReport reportNew = DefaultSaxParser.parse(newXml); - String expected = Files.forIO().readFrom(getClass().getResourceAsStream("result.xml"), "utf-8"); - BrowserReport result = DefaultSaxParser.parse(expected); - - BrowserReportMerger merger = new BrowserReportMerger(new BrowserReport(reportOld.getDomain())); - - reportOld.accept(merger); - reportNew.accept(merger); - - Assert.assertEquals("Check the merge result!", result.toString(), merger.getBrowserReport().toString()); - } - -} diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/AbstractReportModel.java b/cat-home/src/main/java/com/dianping/cat/report/page/AbstractReportModel.java index cb62b6bc1..ea247d796 100755 --- a/cat-home/src/main/java/com/dianping/cat/report/page/AbstractReportModel.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/AbstractReportModel.java @@ -90,8 +90,9 @@ public abstract class AbstractReportModel