提交 51a652dd 编写于 作者: P peng-yongsheng

provide dao getter service.

上级 a562cc1e
......@@ -31,10 +31,8 @@ gRPC_manager:
# grpc:
# host: localhost
# port: 11800
#storage:
# elasticsearch:
# cluster_name: CollectorDBCluster
# cluster_transport_sniffer: true
# cluster_nodes: localhost:9300
# index_shards_number: 2
# index_replicas_number: 0
\ No newline at end of file
storage:
h2:
url: jdbc:h2:~/memorydb
user_name: sa
password:
\ No newline at end of file
......@@ -19,6 +19,7 @@
package org.skywalking.apm.collector.storage;
import org.skywalking.apm.collector.core.module.Module;
import org.skywalking.apm.collector.storage.service.DAOService;
/**
* @author peng-yongsheng
......@@ -32,6 +33,6 @@ public class StorageModule extends Module {
}
@Override public Class[] services() {
return new Class[0];
return new Class[] {DAOService.class};
}
}
......@@ -24,9 +24,7 @@ import java.util.Map;
/**
* @author peng-yongsheng
*/
public enum DAOContainer {
INSTANCE;
public class DAOContainer {
private Map<String, DAO> daos = new HashMap<>();
public void put(String interfaceName, DAO dao) {
......
......@@ -16,7 +16,7 @@
* Project repository: https://github.com/OpenSkywalking/skywalking
*/
package org.skywalking.apm.collector.storage.sql;
package org.skywalking.apm.collector.storage.base.sql;
import java.text.MessageFormat;
import java.util.List;
......
/*
* Copyright 2017, OpenSkywalking Organization All rights reserved.
*
* Licensed 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.
*
* Project repository: https://github.com/OpenSkywalking/skywalking
*/
package org.skywalking.apm.collector.storage.service;
import org.skywalking.apm.collector.core.module.Service;
import org.skywalking.apm.collector.storage.base.dao.DAO;
/**
* @author peng-yongsheng
*/
public interface DAOService extends Service {
DAO get(Class<DAO> daoInterfaceClass);
}
......@@ -32,6 +32,8 @@ import org.skywalking.apm.collector.storage.base.dao.DAOContainer;
import org.skywalking.apm.collector.storage.es.base.dao.EsDAO;
import org.skywalking.apm.collector.storage.es.base.dao.EsDAODefineLoader;
import org.skywalking.apm.collector.storage.es.base.define.ElasticSearchStorageInstaller;
import org.skywalking.apm.collector.storage.es.service.ElasticSearchDAOService;
import org.skywalking.apm.collector.storage.service.DAOService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -48,8 +50,13 @@ public class StorageModuleEsProvider extends ModuleProvider {
private static final String INDEX_SHARDS_NUMBER = "index_shards_number";
private static final String INDEX_REPLICAS_NUMBER = "index_replicas_number";
private final DAOContainer daoContainer;
private ElasticSearchClient elasticSearchClient;
public StorageModuleEsProvider() {
this.daoContainer = new DAOContainer();
}
@Override public String name() {
return "elasticsearch";
}
......@@ -63,6 +70,8 @@ public class StorageModuleEsProvider extends ModuleProvider {
Boolean clusterTransportSniffer = (Boolean)config.get(CLUSTER_TRANSPORT_SNIFFER);
String clusterNodes = config.getProperty(CLUSTER_NODES);
elasticSearchClient = new ElasticSearchClient(clusterName, clusterTransportSniffer, clusterNodes);
this.registerServiceImplementation(DAOService.class, new ElasticSearchDAOService(daoContainer));
}
@Override public void start(Properties config) throws ServiceNotProvidedException {
......@@ -76,7 +85,7 @@ public class StorageModuleEsProvider extends ModuleProvider {
esDAOs.forEach(esDAO -> {
esDAO.setClient(elasticSearchClient);
String interFaceName = esDAO.getClass().getInterfaces()[0].getName();
DAOContainer.INSTANCE.put(interFaceName, esDAO);
daoContainer.put(interFaceName, esDAO);
});
ElasticSearchStorageInstaller installer = new ElasticSearchStorageInstaller(indexShardsNumber, indexReplicasNumber);
......
/*
* Copyright 2017, OpenSkywalking Organization All rights reserved.
*
* Licensed 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.
*
* Project repository: https://github.com/OpenSkywalking/skywalking
*/
package org.skywalking.apm.collector.storage.es.service;
import org.skywalking.apm.collector.storage.base.dao.DAO;
import org.skywalking.apm.collector.storage.base.dao.DAOContainer;
import org.skywalking.apm.collector.storage.service.DAOService;
/**
* @author peng-yongsheng
*/
public class ElasticSearchDAOService implements DAOService {
private final DAOContainer daoContainer;
public ElasticSearchDAOService(DAOContainer daoContainer) {
this.daoContainer = daoContainer;
}
@Override public DAO get(Class<DAO> daoInterfaceClass) {
return daoContainer.get(daoInterfaceClass.getName());
}
}
......@@ -32,6 +32,8 @@ import org.skywalking.apm.collector.storage.base.dao.DAOContainer;
import org.skywalking.apm.collector.storage.h2.base.dao.H2DAO;
import org.skywalking.apm.collector.storage.h2.base.dao.H2DAODefineLoader;
import org.skywalking.apm.collector.storage.h2.base.define.H2StorageInstaller;
import org.skywalking.apm.collector.storage.h2.service.H2DAOService;
import org.skywalking.apm.collector.storage.service.DAOService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -47,6 +49,11 @@ public class StorageModuleH2Provider extends ModuleProvider {
private static final String PASSWORD = "password";
private H2Client client;
private final DAOContainer daoContainer;
public StorageModuleH2Provider() {
this.daoContainer = new DAOContainer();
}
@Override public String name() {
return "h2";
......@@ -61,6 +68,8 @@ public class StorageModuleH2Provider extends ModuleProvider {
String userName = config.getProperty(USER_NAME);
String password = config.getProperty(PASSWORD);
client = new H2Client(url, userName, password);
this.registerServiceImplementation(DAOService.class, new H2DAOService(daoContainer));
}
@Override public void start(Properties config) throws ServiceNotProvidedException {
......@@ -72,7 +81,7 @@ public class StorageModuleH2Provider extends ModuleProvider {
h2DAOs.forEach(h2DAO -> {
h2DAO.setClient(client);
String interFaceName = h2DAO.getClass().getInterfaces()[0].getName();
DAOContainer.INSTANCE.put(interFaceName, h2DAO);
daoContainer.put(interFaceName, h2DAO);
});
H2StorageInstaller installer = new H2StorageInstaller();
......
......@@ -25,7 +25,7 @@ import org.skywalking.apm.collector.client.h2.H2ClientException;
import org.skywalking.apm.collector.core.util.Const;
import org.skywalking.apm.collector.storage.dao.IApplicationCacheDAO;
import org.skywalking.apm.collector.storage.h2.base.dao.H2DAO;
import org.skywalking.apm.collector.storage.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.base.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.table.register.ApplicationTable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......
......@@ -25,7 +25,7 @@ import org.skywalking.apm.collector.client.h2.H2ClientException;
import org.skywalking.apm.collector.core.data.Data;
import org.skywalking.apm.collector.storage.dao.IApplicationDAO;
import org.skywalking.apm.collector.storage.h2.base.dao.H2DAO;
import org.skywalking.apm.collector.storage.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.base.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.table.register.ApplicationDataDefine;
import org.skywalking.apm.collector.storage.table.register.ApplicationTable;
import org.slf4j.Logger;
......
......@@ -26,7 +26,7 @@ import org.skywalking.apm.collector.core.data.DataDefine;
import org.skywalking.apm.collector.storage.dao.ICpuMetricDAO;
import org.skywalking.apm.collector.storage.h2.base.dao.H2DAO;
import org.skywalking.apm.collector.storage.h2.base.define.H2SqlEntity;
import org.skywalking.apm.collector.storage.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.base.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.table.jvm.CpuMetricTable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......
......@@ -26,7 +26,7 @@ import org.skywalking.apm.collector.core.data.DataDefine;
import org.skywalking.apm.collector.storage.dao.IGCMetricDAO;
import org.skywalking.apm.collector.storage.h2.base.dao.H2DAO;
import org.skywalking.apm.collector.storage.h2.base.define.H2SqlEntity;
import org.skywalking.apm.collector.storage.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.base.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.table.jvm.GCMetricTable;
/**
......
......@@ -27,7 +27,7 @@ import org.skywalking.apm.collector.core.data.DataDefine;
import org.skywalking.apm.collector.storage.dao.IGlobalTraceDAO;
import org.skywalking.apm.collector.storage.h2.base.dao.H2DAO;
import org.skywalking.apm.collector.storage.h2.base.define.H2SqlEntity;
import org.skywalking.apm.collector.storage.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.base.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.table.global.GlobalTraceTable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......
......@@ -32,7 +32,7 @@ import org.skywalking.apm.collector.core.data.DataDefine;
import org.skywalking.apm.collector.storage.dao.IInstPerformanceDAO;
import org.skywalking.apm.collector.storage.h2.base.dao.H2DAO;
import org.skywalking.apm.collector.storage.h2.base.define.H2SqlEntity;
import org.skywalking.apm.collector.storage.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.base.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.table.instance.InstPerformanceTable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......
......@@ -24,7 +24,7 @@ import org.skywalking.apm.collector.client.h2.H2Client;
import org.skywalking.apm.collector.client.h2.H2ClientException;
import org.skywalking.apm.collector.storage.dao.IInstanceCacheDAO;
import org.skywalking.apm.collector.storage.h2.base.dao.H2DAO;
import org.skywalking.apm.collector.storage.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.base.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.table.register.InstanceTable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......
......@@ -27,7 +27,7 @@ import org.skywalking.apm.collector.client.h2.H2ClientException;
import org.skywalking.apm.collector.core.data.Data;
import org.skywalking.apm.collector.storage.dao.IInstanceDAO;
import org.skywalking.apm.collector.storage.h2.base.dao.H2DAO;
import org.skywalking.apm.collector.storage.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.base.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.table.register.InstanceDataDefine;
import org.skywalking.apm.collector.storage.table.register.InstanceTable;
import org.slf4j.Logger;
......
......@@ -33,7 +33,7 @@ import org.skywalking.apm.collector.core.data.DataDefine;
import org.skywalking.apm.collector.storage.dao.IInstanceHeartBeatDAO;
import org.skywalking.apm.collector.storage.h2.base.dao.H2DAO;
import org.skywalking.apm.collector.storage.h2.base.define.H2SqlEntity;
import org.skywalking.apm.collector.storage.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.base.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.table.register.InstanceTable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......
......@@ -26,7 +26,7 @@ import org.skywalking.apm.collector.core.data.DataDefine;
import org.skywalking.apm.collector.storage.dao.IMemoryMetricDAO;
import org.skywalking.apm.collector.storage.h2.base.dao.H2DAO;
import org.skywalking.apm.collector.storage.h2.base.define.H2SqlEntity;
import org.skywalking.apm.collector.storage.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.base.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.table.jvm.MemoryMetricTable;
/**
......
......@@ -26,7 +26,7 @@ import org.skywalking.apm.collector.core.data.DataDefine;
import org.skywalking.apm.collector.storage.dao.IMemoryPoolMetricDAO;
import org.skywalking.apm.collector.storage.h2.base.dao.H2DAO;
import org.skywalking.apm.collector.storage.h2.base.define.H2SqlEntity;
import org.skywalking.apm.collector.storage.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.base.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.table.jvm.MemoryPoolMetricTable;
/**
......
......@@ -32,7 +32,7 @@ import org.skywalking.apm.collector.core.data.DataDefine;
import org.skywalking.apm.collector.storage.dao.INodeComponentDAO;
import org.skywalking.apm.collector.storage.h2.base.dao.H2DAO;
import org.skywalking.apm.collector.storage.h2.base.define.H2SqlEntity;
import org.skywalking.apm.collector.storage.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.base.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.table.node.NodeComponentTable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......
......@@ -32,7 +32,7 @@ import org.skywalking.apm.collector.core.data.DataDefine;
import org.skywalking.apm.collector.storage.dao.INodeReferenceDAO;
import org.skywalking.apm.collector.storage.h2.base.dao.H2DAO;
import org.skywalking.apm.collector.storage.h2.base.define.H2SqlEntity;
import org.skywalking.apm.collector.storage.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.base.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.table.noderef.NodeReferenceTable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......
......@@ -26,7 +26,7 @@ import org.skywalking.apm.collector.core.data.DataDefine;
import org.skywalking.apm.collector.storage.dao.ISegmentCostDAO;
import org.skywalking.apm.collector.storage.h2.base.dao.H2DAO;
import org.skywalking.apm.collector.storage.h2.base.define.H2SqlEntity;
import org.skywalking.apm.collector.storage.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.base.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.table.segment.SegmentCostTable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......
......@@ -26,7 +26,7 @@ import org.skywalking.apm.collector.core.data.DataDefine;
import org.skywalking.apm.collector.storage.dao.ISegmentDAO;
import org.skywalking.apm.collector.storage.h2.base.dao.H2DAO;
import org.skywalking.apm.collector.storage.h2.base.define.H2SqlEntity;
import org.skywalking.apm.collector.storage.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.base.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.table.segment.SegmentTable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......
......@@ -32,7 +32,7 @@ import org.skywalking.apm.collector.core.data.DataDefine;
import org.skywalking.apm.collector.storage.dao.IServiceEntryDAO;
import org.skywalking.apm.collector.storage.h2.base.dao.H2DAO;
import org.skywalking.apm.collector.storage.h2.base.define.H2SqlEntity;
import org.skywalking.apm.collector.storage.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.base.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.table.service.ServiceEntryTable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......
......@@ -25,7 +25,7 @@ import org.skywalking.apm.collector.client.h2.H2ClientException;
import org.skywalking.apm.collector.core.util.Const;
import org.skywalking.apm.collector.storage.dao.IServiceNameCacheDAO;
import org.skywalking.apm.collector.storage.h2.base.dao.H2DAO;
import org.skywalking.apm.collector.storage.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.base.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.table.register.ServiceNameTable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......
......@@ -25,7 +25,7 @@ import org.skywalking.apm.collector.client.h2.H2ClientException;
import org.skywalking.apm.collector.core.data.Data;
import org.skywalking.apm.collector.storage.dao.IServiceNameDAO;
import org.skywalking.apm.collector.storage.h2.base.dao.H2DAO;
import org.skywalking.apm.collector.storage.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.base.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.table.register.ServiceNameDataDefine;
import org.skywalking.apm.collector.storage.table.register.ServiceNameTable;
import org.slf4j.Logger;
......
......@@ -32,7 +32,7 @@ import org.skywalking.apm.collector.core.data.DataDefine;
import org.skywalking.apm.collector.storage.dao.IServiceReferenceDAO;
import org.skywalking.apm.collector.storage.h2.base.dao.H2DAO;
import org.skywalking.apm.collector.storage.h2.base.define.H2SqlEntity;
import org.skywalking.apm.collector.storage.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.base.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.table.serviceref.ServiceReferenceTable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......
/*
* Copyright 2017, OpenSkywalking Organization All rights reserved.
*
* Licensed 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.
*
* Project repository: https://github.com/OpenSkywalking/skywalking
*/
package org.skywalking.apm.collector.storage.h2.service;
import org.skywalking.apm.collector.storage.base.dao.DAO;
import org.skywalking.apm.collector.storage.base.dao.DAOContainer;
import org.skywalking.apm.collector.storage.service.DAOService;
/**
* @author peng-yongsheng
*/
public class H2DAOService implements DAOService {
private final DAOContainer daoContainer;
public H2DAOService(DAOContainer daoContainer) {
this.daoContainer = daoContainer;
}
@Override public DAO get(Class<DAO> daoInterfaceClass) {
return daoContainer.get(daoInterfaceClass.getName());
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册