From 0982f3d3c6879addc11060f62b9d769169428cf7 Mon Sep 17 00:00:00 2001 From: "yanchun.yang" Date: Wed, 12 Sep 2012 13:55:55 +0800 Subject: [PATCH] modified connect commponent --- .../cat/configuration/client/config.xsd | 3 +- .../com/dianping/cat/status/model/status.xsd | 3 +- dog-home/pom.xml | 5 ++ .../alarm/connector/AbstractConnector.java | 26 ++++---- .../dog/alarm/connector/Connector.java | 6 +- .../dog/alarm/connector/ConnectorContext.java | 64 ------------------- .../dog/alarm/connector/ConnectorManager.java | 16 +++-- .../dog/alarm/connector/HttpConnector.java | 4 +- .../dog/alarm/entity/ConnectEntity.java | 33 +++++++++- .../dianping/dog/alarm/entity/RuleEntity.java | 2 +- .../dog/alarm/parser/DataParserFactory.java | 2 +- .../dog/alarm/parser/DefaultDataParser.java | 4 +- .../dog/alarm/rule/ExceptionRule.java | 13 ++-- .../dog/alarm/rule/PeriodStorage.java | 54 ---------------- .../com/dianping/dog/alarm/rule/Rule.java | 6 +- .../com/dianping/dog/alarm/rule/Storage.java | 11 ---- .../dianping/dog/event/TestDataParser.java | 13 ++++ 17 files changed, 95 insertions(+), 170 deletions(-) delete mode 100644 dog-home/src/main/java/com/dianping/dog/alarm/connector/ConnectorContext.java delete mode 100644 dog-home/src/main/java/com/dianping/dog/alarm/rule/PeriodStorage.java delete mode 100644 dog-home/src/main/java/com/dianping/dog/alarm/rule/Storage.java create mode 100644 dog-home/src/test/java/com/dianping/dog/event/TestDataParser.java diff --git a/cat-core/src/main/resources/com/dianping/cat/configuration/client/config.xsd b/cat-core/src/main/resources/com/dianping/cat/configuration/client/config.xsd index adc5d4458..00dcaf277 100644 --- a/cat-core/src/main/resources/com/dianping/cat/configuration/client/config.xsd +++ b/cat-core/src/main/resources/com/dianping/cat/configuration/client/config.xsd @@ -1,4 +1,5 @@ - + + diff --git a/cat-core/src/main/resources/com/dianping/cat/status/model/status.xsd b/cat-core/src/main/resources/com/dianping/cat/status/model/status.xsd index a75ea1c77..4d24521b3 100644 --- a/cat-core/src/main/resources/com/dianping/cat/status/model/status.xsd +++ b/cat-core/src/main/resources/com/dianping/cat/status/model/status.xsd @@ -1,4 +1,5 @@ - + + diff --git a/dog-home/pom.xml b/dog-home/pom.xml index b3be5a57d..81d332193 100644 --- a/dog-home/pom.xml +++ b/dog-home/pom.xml @@ -23,6 +23,11 @@ web-framework 1.0.15 + + org.json + org.json + chargebee-1.0 + com.site.common test-framework diff --git a/dog-home/src/main/java/com/dianping/dog/alarm/connector/AbstractConnector.java b/dog-home/src/main/java/com/dianping/dog/alarm/connector/AbstractConnector.java index ec37894f2..0ec887448 100644 --- a/dog-home/src/main/java/com/dianping/dog/alarm/connector/AbstractConnector.java +++ b/dog-home/src/main/java/com/dianping/dog/alarm/connector/AbstractConnector.java @@ -2,6 +2,7 @@ package com.dianping.dog.alarm.connector; import java.util.Date; +import com.dianping.dog.alarm.entity.ConnectEntity; import com.dianping.dog.alarm.parser.DataParser; import com.dianping.dog.alarm.parser.DataParserFactory; @@ -9,32 +10,31 @@ public abstract class AbstractConnector implements Connector { private long connectorId; - private ConnectorContext m_ctx; + private ConnectEntity m_entity; private DataParserFactory m_parserFactory; @Override - public void init(ConnectorContext rule) { - m_ctx = rule; - this.connectorId = rule.getRuleId(); + public void init(ConnectEntity entity) { + m_entity = entity; + this.connectorId = m_entity.getConId(); } + + @Override + public ConnectEntity getConnectorEntity() { + return m_entity; + } @Override public long getConnectorId() { return connectorId; } - @Override - public ConnectorContext getConnectorContext() { - return m_ctx; - } - - public abstract T fetchContent(ConnectorContext ctx); + public abstract T fetchContent(ConnectEntity m_entity); public final RowData produceData(Date currentTime){ - m_ctx.touch(currentTime); - T content = fetchContent(m_ctx); - DataParser parser = m_parserFactory.getDataParser(m_ctx.getUrl()); + T content = fetchContent(m_entity); + DataParser parser = m_parserFactory.getDataParser(m_entity.getUrl()); return parser.parse(content); } diff --git a/dog-home/src/main/java/com/dianping/dog/alarm/connector/Connector.java b/dog-home/src/main/java/com/dianping/dog/alarm/connector/Connector.java index c7cba4c0f..ca914ab6d 100644 --- a/dog-home/src/main/java/com/dianping/dog/alarm/connector/Connector.java +++ b/dog-home/src/main/java/com/dianping/dog/alarm/connector/Connector.java @@ -2,13 +2,15 @@ package com.dianping.dog.alarm.connector; import java.util.Date; +import com.dianping.dog.alarm.entity.ConnectEntity; + public interface Connector { - ConnectorContext getConnectorContext(); + void init(ConnectEntity entity); - void init(ConnectorContext ctx); + ConnectEntity getConnectorEntity(); long getConnectorId(); diff --git a/dog-home/src/main/java/com/dianping/dog/alarm/connector/ConnectorContext.java b/dog-home/src/main/java/com/dianping/dog/alarm/connector/ConnectorContext.java deleted file mode 100644 index 70809e4fc..000000000 --- a/dog-home/src/main/java/com/dianping/dog/alarm/connector/ConnectorContext.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.dianping.dog.alarm.connector; - -import java.util.Date; - -import com.dianping.dog.alarm.entity.ConnectEntity; - -public class ConnectorContext implements Comparable { - - private ConnectorType type; - - private ConnectEntity conEntity; - - private Date time; - - private String url; - - @SuppressWarnings("unused") - private ConnectorContext() { - } - - public ConnectorContext(ConnectEntity con) { - conEntity = con; - } - - public long getRuleId(){ - return 0; - } - - public ConnectorType getType(){ - return type; - } - - public String getUrl(){ - return url; - } - - public ConnectEntity getConEntity() { - return conEntity; - } - - public void setConEntity(ConnectEntity conEntity) { - this.conEntity = conEntity; - } - - public Date getTime() { - return time; - } - - public Date getModifiedTime(){ - return this.conEntity.getGmtModified(); - } - - public void touch(Date time) { - this.time = time; - } - - @Override - public int compareTo(ConnectorContext o) { - long t1 = this.getModifiedTime().getTime(); - long t2 = o.getModifiedTime().getTime(); - return (int)(t1 - t2); - } - -} diff --git a/dog-home/src/main/java/com/dianping/dog/alarm/connector/ConnectorManager.java b/dog-home/src/main/java/com/dianping/dog/alarm/connector/ConnectorManager.java index c58c21c8e..1d956b5c9 100644 --- a/dog-home/src/main/java/com/dianping/dog/alarm/connector/ConnectorManager.java +++ b/dog-home/src/main/java/com/dianping/dog/alarm/connector/ConnectorManager.java @@ -5,6 +5,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import com.dianping.dog.alarm.entity.ConnectEntity; + public class ConnectorManager { @@ -18,20 +20,20 @@ public class ConnectorManager { return connectorList; } - public void registerConnector(ConnectorContext ctx) { + public void registerConnector(ConnectEntity entity) { synchronized (m_connectors) { - Connector con = m_connectors.get(ctx.getRuleId()); + Connector con = m_connectors.get(entity.getConId()); if (con != null) { - if (con.getConnectorContext().compareTo(ctx) == 0) { + if (con.getConnectorEntity().compareTo(entity) == 0) { return; } - m_connectors.remove(ctx.getRuleId()); + m_connectors.remove(entity.getConId()); } - if (ctx.getType() == ConnectorType.HTTP) { + if (entity.getConType() == ConnectorType.HTTP) { con = new HttpConnector(); - con.init(ctx); + con.init(entity); } - m_connectors.put(ctx.getRuleId(), con); + m_connectors.put(entity.getConId(), con); } } diff --git a/dog-home/src/main/java/com/dianping/dog/alarm/connector/HttpConnector.java b/dog-home/src/main/java/com/dianping/dog/alarm/connector/HttpConnector.java index 07634741c..04b389ae1 100644 --- a/dog-home/src/main/java/com/dianping/dog/alarm/connector/HttpConnector.java +++ b/dog-home/src/main/java/com/dianping/dog/alarm/connector/HttpConnector.java @@ -2,12 +2,13 @@ package com.dianping.dog.alarm.connector; import java.net.URL; +import com.dianping.dog.alarm.entity.ConnectEntity; import com.site.helper.Files; public class HttpConnector extends AbstractConnector { @Override - public String fetchContent(ConnectorContext ctx) { + public String fetchContent(ConnectEntity ctx) { String url = ctx.getUrl(); try { URL data = new URL(url); @@ -18,5 +19,4 @@ public class HttpConnector extends AbstractConnector { } return null; } - } diff --git a/dog-home/src/main/java/com/dianping/dog/alarm/entity/ConnectEntity.java b/dog-home/src/main/java/com/dianping/dog/alarm/entity/ConnectEntity.java index 04cb0eedf..af5bafefb 100644 --- a/dog-home/src/main/java/com/dianping/dog/alarm/entity/ConnectEntity.java +++ b/dog-home/src/main/java/com/dianping/dog/alarm/entity/ConnectEntity.java @@ -2,7 +2,11 @@ package com.dianping.dog.alarm.entity; import java.util.Date; -public class ConnectEntity { +import com.dianping.dog.alarm.connector.ConnectorType; + +public class ConnectEntity implements Comparable{ + + private long conId; private String connectType;// http @@ -16,7 +20,29 @@ public class ConnectEntity { private String name; + private String url; + private Date gmtModified; + + public ConnectorType getConType(){ + if(url.startsWith("http://")){ + return ConnectorType.HTTP; + }else{ + return ConnectorType.UNSUPPORT; + } + } + + public String getUrl() { + return url; + } + + public long getConId() { + return conId; + } + + public void setConId(long conId) { + this.conId = conId; + } public String getConnectType() { return connectType; @@ -73,5 +99,10 @@ public class ConnectEntity { public void setGmtModified(Date gmtModified) { this.gmtModified = gmtModified; } + + @Override + public int compareTo(ConnectEntity o) { + return (int) (this.getGmtModified().getTime() - o.getGmtModified().getTime()); + } } diff --git a/dog-home/src/main/java/com/dianping/dog/alarm/entity/RuleEntity.java b/dog-home/src/main/java/com/dianping/dog/alarm/entity/RuleEntity.java index bd5e0fa3d..09ad17364 100644 --- a/dog-home/src/main/java/com/dianping/dog/alarm/entity/RuleEntity.java +++ b/dog-home/src/main/java/com/dianping/dog/alarm/entity/RuleEntity.java @@ -22,7 +22,7 @@ public class RuleEntity { private ConnectEntity connect; private Date gmtModified; - + private long interval; public long getId() { diff --git a/dog-home/src/main/java/com/dianping/dog/alarm/parser/DataParserFactory.java b/dog-home/src/main/java/com/dianping/dog/alarm/parser/DataParserFactory.java index 4cbffe4c3..89a799146 100644 --- a/dog-home/src/main/java/com/dianping/dog/alarm/parser/DataParserFactory.java +++ b/dog-home/src/main/java/com/dianping/dog/alarm/parser/DataParserFactory.java @@ -4,7 +4,7 @@ public class DataParserFactory { public DataParser getDataParser(String url){ - return null; + return new DefaultDataParser(); } } diff --git a/dog-home/src/main/java/com/dianping/dog/alarm/parser/DefaultDataParser.java b/dog-home/src/main/java/com/dianping/dog/alarm/parser/DefaultDataParser.java index 6080a65be..2f66da421 100644 --- a/dog-home/src/main/java/com/dianping/dog/alarm/parser/DefaultDataParser.java +++ b/dog-home/src/main/java/com/dianping/dog/alarm/parser/DefaultDataParser.java @@ -1,5 +1,7 @@ package com.dianping.dog.alarm.parser; +import org.json.JSONObject; + import com.dianping.dog.alarm.connector.RowData; public class DefaultDataParser implements DataParser { @@ -7,7 +9,7 @@ public class DefaultDataParser implements DataParser { @SuppressWarnings("hiding") @Override public RowData parse(String context) { - + JSONObject jsonObject = new JSONObject(context); return new RowData(); } diff --git a/dog-home/src/main/java/com/dianping/dog/alarm/rule/ExceptionRule.java b/dog-home/src/main/java/com/dianping/dog/alarm/rule/ExceptionRule.java index 54a14be17..193e3eac7 100644 --- a/dog-home/src/main/java/com/dianping/dog/alarm/rule/ExceptionRule.java +++ b/dog-home/src/main/java/com/dianping/dog/alarm/rule/ExceptionRule.java @@ -2,14 +2,13 @@ package com.dianping.dog.alarm.rule; import java.util.List; +import com.dianping.dog.alarm.data.DataEvent; import com.dianping.dog.alarm.entity.Duration; import com.dianping.dog.alarm.entity.RuleEntity; -import com.dianping.dog.event.Event; public class ExceptionRule implements Rule{ - RuleEntity m_entity; - + private RuleEntity m_entity; @Override public boolean init(RuleEntity entity) { @@ -23,17 +22,15 @@ public class ExceptionRule implements Rule{ } @Override - public boolean isEligible(Event event) { + public boolean isEligible(DataEvent event) { return false; } @Override - public boolean apply(Event event) { + public boolean apply(DataEvent event) { List durations = m_entity.getDurations(); - for(Duration duration:durations){ - - } + return false; } diff --git a/dog-home/src/main/java/com/dianping/dog/alarm/rule/PeriodStorage.java b/dog-home/src/main/java/com/dianping/dog/alarm/rule/PeriodStorage.java deleted file mode 100644 index 1aba7f8a3..000000000 --- a/dog-home/src/main/java/com/dianping/dog/alarm/rule/PeriodStorage.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.dianping.dog.alarm.rule; - -import java.util.Comparator; -import java.util.TreeSet; - -import com.dianping.dog.alarm.problem.ProblemEvent; - -public class PeriodStorage implements Storage { - - private long m_period; - - private TreeSet sortedDatas; - - @Override - public void init(long period) { - m_period = period; - sortedDatas = new TreeSet(); - } - - @Override - public void save(ProblemEvent data, long timeStamp) { - WrapperProblemEvent wrapper = new WrapperProblemEvent(data); - long expiredTime = timeStamp - m_period; - //sortedDatas.subSet(wrapper, toElement); - } - - @Override - public Integer getData(DataVistor vistor) { - return null; - } - -} - - -class WrapperProblemEvent implements Comparator{ - - private ProblemEvent m_problemEvent; - - public WrapperProblemEvent(ProblemEvent event){ - m_problemEvent = event; - } - - public ProblemEvent getProblemEvent(){ - return m_problemEvent; - } - - @Override - public int compare(ProblemEvent o1, ProblemEvent o2) { - long t1 = o1.getTimestamp().getTime(); - long t2 = o2.getTimestamp().getTime(); - return (int) (t1-t2); - } - -} \ No newline at end of file diff --git a/dog-home/src/main/java/com/dianping/dog/alarm/rule/Rule.java b/dog-home/src/main/java/com/dianping/dog/alarm/rule/Rule.java index 25707871e..1e3baff7e 100644 --- a/dog-home/src/main/java/com/dianping/dog/alarm/rule/Rule.java +++ b/dog-home/src/main/java/com/dianping/dog/alarm/rule/Rule.java @@ -1,7 +1,7 @@ package com.dianping.dog.alarm.rule; +import com.dianping.dog.alarm.data.DataEvent; import com.dianping.dog.alarm.entity.RuleEntity; -import com.dianping.dog.event.Event; public interface Rule { @@ -9,8 +9,8 @@ public interface Rule { public String getName(); - public boolean isEligible(Event event); + public boolean isEligible(DataEvent event); - public boolean apply(Event event); + public boolean apply(DataEvent event); } diff --git a/dog-home/src/main/java/com/dianping/dog/alarm/rule/Storage.java b/dog-home/src/main/java/com/dianping/dog/alarm/rule/Storage.java deleted file mode 100644 index ce39276f0..000000000 --- a/dog-home/src/main/java/com/dianping/dog/alarm/rule/Storage.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.dianping.dog.alarm.rule; - -import com.dianping.dog.event.Event; - -public interface Storage { - void init(long period); - - void save(T data,long currentTime); - - R getData(DataVistor vistor); -} diff --git a/dog-home/src/test/java/com/dianping/dog/event/TestDataParser.java b/dog-home/src/test/java/com/dianping/dog/event/TestDataParser.java new file mode 100644 index 000000000..b4006f67f --- /dev/null +++ b/dog-home/src/test/java/com/dianping/dog/event/TestDataParser.java @@ -0,0 +1,13 @@ +package com.dianping.dog.event; + +import org.junit.Test; + +import com.site.lookup.ComponentTestCase; + +public class TestDataParser extends ComponentTestCase{ + + @Test + public void testDataParser() throws Exception{ + + } +} -- GitLab