提交 7d22b83a 编写于 作者: Y yong.you

fix aggregation rule and domain nav problem

上级 47f550b9
......@@ -33,6 +33,7 @@ public class AggregationConfigManager implements Initializable {
public boolean deleteAggregationRule(String rule) {
m_aggregation.removeAggregationRule(rule);
m_handler.register(queryAggrarationRules());
return storeConfig();
}
......@@ -68,10 +69,13 @@ public class AggregationConfigManager implements Initializable {
if (m_aggregation == null) {
m_aggregation = new Aggregation();
}
m_handler.register(queryAggrarationRules());
}
public boolean insertAggregationRule(AggregationRule rule) {
m_aggregation.addAggregationRule(rule);
m_handler.register(queryAggrarationRules());
return storeConfig();
}
......
......@@ -13,7 +13,7 @@ public interface AggregationHandler {
* page type and domain to rule List Map
*/
public void register(List<AggregationRule> rules);
/**
* parse input to output use aggregation rule
*
......
......@@ -77,7 +77,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
all.add(C(TopologyGraphBuilder.class).req(TopologyGraphItemBuilder.class).is(PER_LOOKUP));
all.add(C(TopologyGraphManager.class).req(TopologyGraphBuilder.class, ServerConfigManager.class) //
.req(ProductLineConfigManager.class, TopologyGraphDao.class)//
.req(ProductLineConfigManager.class, TopologyGraphDao.class,DomainNavManager.class)//
.req(ModelService.class, "dependency"));
// report serivce
......
......@@ -6,10 +6,12 @@ import java.util.Collection;
import java.util.Date;
import java.util.Map;
import org.unidal.lookup.ContainerLoader;
import org.unidal.web.mvc.Action;
import org.unidal.web.mvc.ActionContext;
import org.unidal.web.mvc.ViewModel;
import com.dianping.cat.Cat;
import com.dianping.cat.consumer.core.dal.Project;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.view.DomainNavManager;
......@@ -37,8 +39,15 @@ public abstract class AbstractReportModel<A extends Action, M extends ActionCont
private String m_reportType;
private DomainNavManager m_manager;
public AbstractReportModel(M ctx) {
super(ctx);
try {
m_manager = ContainerLoader.getDefaultContainer().lookup(DomainNavManager.class);
} catch (Exception e) {
Cat.logError(e);
}
}
public String getBaseUri() {
......@@ -93,9 +102,9 @@ public abstract class AbstractReportModel<A extends Action, M extends ActionCont
public String getDepartment() {
String domain = getDomain();
if (domain != null) {
Project project = DomainNavManager.getProjectByName(domain);
if (domain != null && m_manager != null) {
Project project = m_manager.getProjectByName(domain);
if (project != null) {
return project.getDepartment();
}
......@@ -105,18 +114,18 @@ public abstract class AbstractReportModel<A extends Action, M extends ActionCont
public String getProjectLine() {
String domain = getDomain();
if (domain != null) {
Project project = DomainNavManager.getProjectByName(domain);
if (domain != null && m_manager != null) {
Project project = m_manager.getProjectByName(domain);
if (project != null) {
return project.getProjectLine();
}
}
return "Default";
}
public Map<String, Department> getDomainGroups() {
return DomainNavManager.getDepartment(getDomains());
return m_manager.getDepartment(getDomains());
}
public Throwable getException() {
......
......@@ -46,6 +46,7 @@ public abstract class AbstractReportPayload<A extends Action> implements ActionP
private SimpleDateFormat m_dayFormat = new SimpleDateFormat("yyyyMMdd");
private ReportPage m_defaultPage;
public AbstractReportPayload(ReportPage defaultPage) {
m_defaultPage = defaultPage;
......
......@@ -58,6 +58,9 @@ public class TopologyGraphManager implements Initializable, LogEnabled {
@Inject
private TopologyGraphDao m_topologyGraphDao;
@Inject
private DomainNavManager m_domainNavManager;
private Map<Long, TopologyGraph> m_topologyGraphs = new ConcurrentHashMap<Long, TopologyGraph>(360);
......@@ -282,7 +285,7 @@ public class TopologyGraphManager implements Initializable, LogEnabled {
}
private Collection<String> queryAllDomains() {
return DomainNavManager.getDomains();
return m_domainNavManager.getDomains();
}
@Override
......
......@@ -29,6 +29,8 @@ public class Handler implements PageHandler<Context> {
private String m_data;
private String m_referer;
@Override
@PayloadMeta(Payload.class)
@InboundActionMeta(name = "jsError")
......@@ -47,9 +49,8 @@ public class Handler implements PageHandler<Context> {
String host = parseHost();
if (file == null || file.length() == 0 || (!file.startsWith("http:"))) {
String url = parseValue("Referer", m_data);
if (url != null) {
file = url;
if (m_referer != null) {
file = m_referer;
} else {
file = "unknown";
}
......@@ -86,11 +87,11 @@ public class Handler implements PageHandler<Context> {
String type = temp.getType();
if (type.equals("URL.Server") || type.equals("ClientInfo")) {
m_data = temp.getData().toString();
String url = parseValue("Referer", m_data);
m_referer = parseValue("Referer", m_data);
if (url != null) {
if (m_referer != null) {
try {
URL u = new URL(url);
URL u = new URL(m_referer);
return u.getHost().toLowerCase();
} catch (MalformedURLException e) {
break;
......
......@@ -31,15 +31,15 @@ public class DomainNavManager implements Initializable {
private ServerConfigManager m_serverConfigManager;
// key is domain
private static Map<String, Project> m_projects = new ConcurrentHashMap<String, Project>();
private Map<String, Project> m_projects = new ConcurrentHashMap<String, Project>();
public static final String DEFAULT = "Default";
public static Collection<String> getDomains() {
public Collection<String> getDomains() {
return m_projects.keySet();
}
public static Map<String, Department> getDepartment(Collection<String> domains) {
public Map<String, Department> getDepartment(Collection<String> domains) {
Map<String, Department> result = new TreeMap<String, Department>();
synchronized (m_projects) {
......@@ -53,6 +53,7 @@ public class DomainNavManager implements Initializable {
projectLine = project.getProjectLine();
}
Department temp = result.get(department);
if (temp == null) {
temp = new Department();
result.put(department, temp);
......@@ -64,12 +65,16 @@ public class DomainNavManager implements Initializable {
return result;
}
public static Project getProjectByName(String domain) {
return m_projects.get(domain);
public Project getProjectByName(String domain) {
synchronized (m_projects) {
return m_projects.get(domain);
}
}
public static Map<String, Project> getProjects() {
return m_projects;
public Map<String, Project> getProjects() {
synchronized (m_projects) {
return m_projects;
}
}
@Override
......@@ -81,18 +86,18 @@ public class DomainNavManager implements Initializable {
}
public void reloadDomainInfo() {
synchronized (m_projects) {
try {
List<Project> projects = m_projectDao.findAll(ProjectEntity.READSET_FULL);
try {
List<Project> projects = m_projectDao.findAll(ProjectEntity.READSET_FULL);
synchronized (m_projects) {
if (projects.size() > 0) {
for (Project project : projects) {
m_projects.put(project.getDomain(), project);
}
}
} catch (DalException e) {
Cat.logError(e);
}
} catch (DalException e) {
Cat.logError(e);
}
}
......
......@@ -47,6 +47,9 @@ public class Handler implements PageHandler<Context> {
@Inject
private AggregationConfigManager m_aggreationConfigManager;
@Inject
private DomainNavManager m_manager;
private void deleteAggregationRule(Payload payload) {
m_aggreationConfigManager.deleteAggregationRule(payload.getPattern());
......@@ -250,7 +253,7 @@ public class Handler implements PageHandler<Context> {
try {
m_projectDao.updateByPK(project, ProjectEntity.UPDATESET_FULL);
DomainNavManager.getProjects().put(project.getDomain(), project);
m_manager.getProjects().put(project.getDomain(), project);
} catch (DalException e) {
Cat.logError(e);
}
......
......@@ -142,6 +142,9 @@
<requirement>
<role>com.dianping.cat.home.dal.report.TopologyGraphDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.view.DomainNavManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>dependency</role-hint>
......@@ -2715,6 +2718,9 @@
<requirement>
<role>com.dianping.cat.home.dal.report.TopologyGraphDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.view.DomainNavManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -2739,6 +2745,27 @@
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.view.DomainNavManager</role>
<implementation>com.dianping.cat.report.view.DomainNavManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.consumer.core.dal.ProjectDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.consumer.core.dal.ProjectDao</role>
<implementation>com.dianping.cat.consumer.core.dal.ProjectDao</implementation>
<requirements>
<requirement>
<role>org.unidal.dal.jdbc.QueryEngine</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.dependency.JspViewer</role>
<implementation>com.dianping.cat.report.page.dependency.JspViewer</implementation>
......@@ -3007,6 +3034,9 @@
<requirement>
<role>com.dianping.cat.consumer.core.aggregation.AggregationConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.view.DomainNavManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -3018,15 +3048,6 @@
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.consumer.core.dal.ProjectDao</role>
<implementation>com.dianping.cat.consumer.core.dal.ProjectDao</implementation>
<requirements>
<requirement>
<role>org.unidal.dal.jdbc.QueryEngine</role>
</requirement>
</requirements>
</component>
<component>
<role>com.dianping.cat.report.page.dependency.graph.TopologyGraphConfigManager</role>
<implementation>com.dianping.cat.report.page.dependency.graph.TopologyGraphConfigManager</implementation>
......
......@@ -40,5 +40,24 @@ public class JsTest {
return sb.toString();
}
@Test
public void test2() throws Exception{
for (int i = 0; i < 1000; i++) {
URL url = new URL("http://localhost:2281/cat/r/jsError?error=Script%20error.&file=&line=0&timestamp=1371196520045");
URLConnection URLconnection = url.openConnection();
URLconnection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Maxthon;)");
URLconnection.setRequestProperty("referer", "http://www.dianping.com/shop/1");
HttpURLConnection httpConnection = (HttpURLConnection) URLconnection;
int responseCode = httpConnection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
} else {
}
Thread.sleep(100);
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册