Skip to content

Commit 6e9697c

Browse files
committed
[#9804] Modularization
1 parent c8b43e9 commit 6e9697c

File tree

135 files changed

+1328
-713
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

135 files changed

+1328
-713
lines changed

batch/src/main/java/com/navercorp/pinpoint/batch/BatchApp.java

+19-5
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,10 @@
1616

1717
package com.navercorp.pinpoint.batch;
1818

19+
import com.navercorp.pinpoint.common.hbase.config.HbaseNamespaceConfiguration;
20+
import com.navercorp.pinpoint.common.server.config.TypeLoaderConfiguration;
1921
import com.navercorp.pinpoint.common.server.util.ServerBootLogger;
20-
22+
import com.navercorp.pinpoint.web.webhook.WebhookModule;
2123
import org.springframework.boot.SpringBootConfiguration;
2224
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
2325
import org.springframework.boot.autoconfigure.batch.BatchAutoConfiguration;
@@ -31,10 +33,22 @@
3133
* @author minwoo.jung
3234
*/
3335
@SpringBootConfiguration
34-
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class, SecurityAutoConfiguration.class,
35-
TransactionAutoConfiguration.class, BatchAutoConfiguration.class})
36-
@ImportResource({ "classpath:applicationContext-batch-schedule.xml"})
37-
@Import(BatchAppPropertySources.class)
36+
@EnableAutoConfiguration(exclude = {
37+
DataSourceAutoConfiguration.class,
38+
SecurityAutoConfiguration.class,
39+
TransactionAutoConfiguration.class,
40+
BatchAutoConfiguration.class
41+
})
42+
@ImportResource({
43+
"classpath:applicationContext-batch-schedule.xml"
44+
})
45+
@Import({
46+
TypeLoaderConfiguration.class,
47+
BatchAppPropertySources.class,
48+
WebhookModule.class,
49+
HbaseNamespaceConfiguration.class
50+
51+
})
3852
public class BatchApp {
3953

4054
private static final ServerBootLogger logger = ServerBootLogger.getLogger(BatchApp.class);

batch/src/main/java/com/navercorp/pinpoint/batch/alarm/WebhookSenderFactoryBean.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import com.navercorp.pinpoint.batch.common.BatchConfiguration;
44
import com.navercorp.pinpoint.web.service.UserService;
5-
import com.navercorp.pinpoint.web.service.WebhookService;
5+
import com.navercorp.pinpoint.web.webhook.service.WebhookService;
66
import org.springframework.beans.factory.FactoryBean;
77
import org.springframework.web.client.RestTemplate;
88

batch/src/main/java/com/navercorp/pinpoint/batch/alarm/WebhookSenderImpl.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@
2121
import com.navercorp.pinpoint.batch.alarm.vo.sender.payload.WebhookPayload;
2222
import com.navercorp.pinpoint.web.alarm.vo.Rule;
2323
import com.navercorp.pinpoint.web.service.UserService;
24-
import com.navercorp.pinpoint.web.service.WebhookService;
2524
import com.navercorp.pinpoint.web.vo.User;
26-
import com.navercorp.pinpoint.web.vo.webhook.Webhook;
25+
import com.navercorp.pinpoint.web.webhook.model.Webhook;
26+
import com.navercorp.pinpoint.web.webhook.service.WebhookService;
2727
import org.apache.logging.log4j.LogManager;
2828
import org.apache.logging.log4j.Logger;
2929
import org.springframework.batch.core.StepExecution;

batch/src/main/resources/applicationContext-batch-common.xml

-6
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,6 @@
22
<beans xmlns="http://www.springframework.org/schema/beans"
33
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
44
xmlns:batch="http://www.springframework.org/schema/batch"
5-
xmlns:p="http://www.springframework.org/schema/p"
6-
xmlns:context="http://www.springframework.org/schema/context"
7-
xmlns:task="http://www.springframework.org/schema/task"
8-
xmlns:util="http://www.springframework.org/schema/util"
95
xsi:schemaLocation="http://www.springframework.org/schema/batch http://www.springframework.org/schema/batch/spring-batch.xsd
106
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
117

@@ -70,8 +66,6 @@
7066

7167
<bean id="userGroupDao" class="com.navercorp.pinpoint.web.dao.mysql.MysqlUserGroupDao"/>
7268
<bean id="userDao" class="com.navercorp.pinpoint.web.dao.mysql.MysqlUserDao"/>
73-
<bean id="webhookDao" class="com.navercorp.pinpoint.web.dao.mysql.MysqlWebhookDao"/>
74-
<bean id="webhookSendInfoDao" class="com.navercorp.pinpoint.web.dao.mysql.MysqlWebhookSendInfoDao"/>
7569

7670
<!-- <bean id="userGroupService" class="com.navercorp.pinpoint.web.service.UserGroupServiceImpl"/>-->
7771
<!-- <bean id="alarmService" class="com.navercorp.pinpoint.web.service.AlarmServiceImpl"/>-->

batch/src/main/resources/applicationContext-batch-namespace.xml

-9
This file was deleted.

batch/src/main/resources/applicationContext-batch-schedule.xml

+1-3
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@
22
<beans xmlns="http://www.springframework.org/schema/beans"
33
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
44
xmlns:task="http://www.springframework.org/schema/task"
5-
xmlns:context="http://www.springframework.org/schema/context"
65
xsi:schemaLocation="http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd
7-
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
6+
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
87

98
<bean id="batchConfiguration" class="com.navercorp.pinpoint.batch.common.BatchConfiguration"/>
109

@@ -23,7 +22,6 @@
2322
<import resource="classpath:applicationContext-web-hbase.xml"/>
2423
<import resource="classpath:applicationContext-batch-web-component.xml"/>
2524
<import resource="classpath:applicationContext-batch-sender.xml"/>
26-
<import resource="classpath:applicationContext-batch-namespace.xml"/>
2725

2826
<import resource="classpath:job/applicationContext-alarmJob.xml"/>
2927
<import resource="classpath:job/applicationContext-agentCountJob.xml"/>

batch/src/main/resources/applicationContext-batch-web-component.xml

-7
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,7 @@
1414
<context:exclude-filter type="assignable" expression="com.navercorp.pinpoint.web.service.AgentServiceImpl"/>
1515
</context:component-scan>
1616

17-
<bean id="commonLoggerFactory" class="com.navercorp.pinpoint.common.server.util.Log4j2CommonLoggerFactory"/>
1817

19-
<bean id="typeLoaderService" class="com.navercorp.pinpoint.common.server.util.ServerTraceMetadataLoaderService">
20-
<constructor-arg index="0" ref="commonLoggerFactory"/>
21-
</bean>
22-
<bean id="serviceTypeRegistryService" class="com.navercorp.pinpoint.loader.service.DefaultServiceTypeRegistryService">
23-
<constructor-arg ref="typeLoaderService"/>
24-
</bean>
2518
<bean id="annotationKeyRegistryService" class="com.navercorp.pinpoint.loader.service.DefaultAnnotationKeyRegistryService">
2619
<constructor-arg ref="typeLoaderService"/>
2720
</bean>

batch/src/main/resources/batch-mybatis-config.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@
3131
<typeAlias type="com.navercorp.pinpoint.web.vo.User" alias="User"/>
3232
<typeAlias type="com.navercorp.pinpoint.web.vo.UserPhoneInfo" alias="UserPhoneInfo"/>
3333
<typeAlias type="com.navercorp.pinpoint.web.alarm.vo.Rule" alias="Rule"/>
34-
<typeAlias type="com.navercorp.pinpoint.web.vo.webhook.Webhook" alias="Webhook"/>
35-
<typeAlias type="com.navercorp.pinpoint.web.vo.webhook.WebhookSendInfo" alias="WebhookSendInfo"/>
34+
<typeAlias type="com.navercorp.pinpoint.web.webhook.model.Webhook" alias="Webhook"/>
35+
<typeAlias type="com.navercorp.pinpoint.web.webhook.model.WebhookSendInfo" alias="WebhookSendInfo"/>
3636

3737
<typeAlias type="com.navercorp.pinpoint.web.vo.AgentCountStatistics" alias="AgentCountStatistics"/>
3838
<typeAlias type="com.navercorp.pinpoint.common.server.util.time.Range" alias="Range"/>

batch/src/main/resources/job/applicationContext-agentCountJob.xml

-5
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,5 @@
4747

4848
<task:executor id="agentCountPoolTaskExecutorForPartition" pool-size="1"/>
4949

50-
<bean id="agentDownloadInfoDao" class="com.navercorp.pinpoint.web.dao.AgentDownloadInfoDaoFactory" factory-method="create">
51-
<constructor-arg index="0" value="${web.installation.pinpointVersion:}"/>
52-
<constructor-arg index="1" value="${web.installation.downloadUrl:}"/>
53-
<constructor-arg index="2" ref="restTemplate"/>
54-
</bean>
5550

5651
</beans>

collector/src/main/java/com/navercorp/pinpoint/collector/CollectorApp.java

+8-5
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,22 @@
11
package com.navercorp.pinpoint.collector;
22

3-
import com.navercorp.pinpoint.collector.config.FlinkContextConfiguration;
43
import com.navercorp.pinpoint.common.server.util.ServerBootLogger;
54
import org.springframework.boot.SpringBootConfiguration;
65
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
76
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
87
import org.springframework.boot.autoconfigure.sql.init.SqlInitializationAutoConfiguration;
98
import org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration;
109
import org.springframework.context.annotation.Import;
11-
import org.springframework.context.annotation.ImportResource;
1210

1311
@SpringBootConfiguration
14-
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class, TransactionAutoConfiguration.class, SqlInitializationAutoConfiguration.class})
15-
@ImportResource({"classpath:applicationContext-collector.xml", "classpath:servlet-context-collector.xml"})
16-
@Import({CollectorAppPropertySources.class, FlinkContextConfiguration.class})
12+
@EnableAutoConfiguration(exclude = {
13+
DataSourceAutoConfiguration.class,
14+
TransactionAutoConfiguration.class,
15+
SqlInitializationAutoConfiguration.class
16+
})
17+
@Import({
18+
PinpointCollectorModule.class
19+
})
1720
public class CollectorApp {
1821
private static final ServerBootLogger logger = ServerBootLogger.getLogger(CollectorApp.class);
1922

collector/src/main/java/com/navercorp/pinpoint/collector/CollectorAppPropertySources.java

-4
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,9 @@
2323
@PropertySources({
2424
@PropertySource(name = "CollectorAppPropertySources", value = { CollectorAppPropertySources.COLLECTOR_ROOT, CollectorAppPropertySources.COLLECTOR_PROFILE}),
2525
@PropertySource(name = "CollectorAppPropertySources-GRPC", value = { CollectorAppPropertySources.GRPC_ROOT, CollectorAppPropertySources.GRPC_PROFILE}),
26-
@PropertySource(name = "CollectorAppPropertySources-HBase", value = { CollectorAppPropertySources.HBASE_ROOT, CollectorAppPropertySources.HBASE_PROFILE}),
2726
@PropertySource(name = "CollectorAppPropertySources-JDBC", value = { CollectorAppPropertySources.JDBC_ROOT, CollectorAppPropertySources.JDBC_PROFILE}),
2827
})
2928
public final class CollectorAppPropertySources {
30-
public static final String HBASE_ROOT= "classpath:hbase-root.properties";
31-
public static final String HBASE_PROFILE = "classpath:profiles/${pinpoint.profiles.active:local}/hbase.properties";
32-
3329
public static final String GRPC_ROOT = "classpath:pinpoint-collector-grpc-root.properties";
3430
public static final String GRPC_PROFILE = "classpath:profiles/${pinpoint.profiles.active:local}/pinpoint-collector-grpc.properties";
3531

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.navercorp.pinpoint.collector;
2+
3+
import com.navercorp.pinpoint.common.hbase.config.DistributorConfiguration;
4+
import com.navercorp.pinpoint.common.hbase.config.HbaseNamespaceConfiguration;
5+
import com.navercorp.pinpoint.common.server.CommonsHbaseConfiguration;
6+
import org.springframework.context.annotation.ComponentScan;
7+
import org.springframework.context.annotation.Configuration;
8+
import org.springframework.context.annotation.Import;
9+
import org.springframework.context.annotation.ImportResource;
10+
import org.springframework.context.annotation.PropertySource;
11+
12+
@Configuration
13+
@ImportResource({
14+
"classpath:applicationContext-collector-hbase.xml",
15+
})
16+
@Import({
17+
CommonsHbaseConfiguration.class,
18+
HbaseNamespaceConfiguration.class,
19+
DistributorConfiguration.class,
20+
})
21+
@ComponentScan({
22+
"com.navercorp.pinpoint.collector.dao.hbase"
23+
})
24+
@PropertySource(name = "CollectorHbaseModule", value = {
25+
"classpath:hbase-root.properties",
26+
"classpath:profiles/${pinpoint.profiles.active:local}/hbase.properties"
27+
})
28+
public class CollectorHbaseModule {
29+
30+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package com.navercorp.pinpoint.collector;
2+
3+
4+
import com.navercorp.pinpoint.collector.config.ClusterModule;
5+
import com.navercorp.pinpoint.collector.config.CollectorConfiguration;
6+
import com.navercorp.pinpoint.collector.config.FlinkContextModule;
7+
import com.navercorp.pinpoint.collector.config.MetricConfiguration;
8+
import com.navercorp.pinpoint.common.server.CommonsServerConfiguration;
9+
import com.navercorp.pinpoint.common.server.config.TypeLoaderConfiguration;
10+
import org.springframework.context.annotation.Bean;
11+
import org.springframework.context.annotation.ComponentScan;
12+
import org.springframework.context.annotation.Configuration;
13+
import org.springframework.context.annotation.Import;
14+
import org.springframework.context.annotation.ImportResource;
15+
16+
@Configuration
17+
@ImportResource({
18+
"classpath:applicationContext-collector.xml",
19+
"classpath:servlet-context-collector.xml",
20+
21+
"classpath:applicationContext-collector-grpc.xml",
22+
"classpath:applicationContext-collector-thrift.xml",
23+
"classpath:applicationContext-collector-hbase.xml",
24+
})
25+
@Import({
26+
CollectorAppPropertySources.class,
27+
CommonsServerConfiguration.class,
28+
TypeLoaderConfiguration.class,
29+
30+
FlinkContextModule.class,
31+
CollectorHbaseModule.class,
32+
33+
ClusterModule.class,
34+
35+
MetricConfiguration.class,
36+
})
37+
@ComponentScan(basePackages = {
38+
"com.navercorp.pinpoint.collector.handler",
39+
"com.navercorp.pinpoint.collector.manage",
40+
"com.navercorp.pinpoint.collector.mapper",
41+
"com.navercorp.pinpoint.collector.util",
42+
"com.navercorp.pinpoint.collector.service",
43+
})
44+
public class PinpointCollectorModule {
45+
46+
@Bean
47+
public CollectorConfiguration collectorConfiguration() {
48+
return new CollectorConfiguration();
49+
}
50+
51+
52+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
package com.navercorp.pinpoint.collector.config;
2+
3+
import com.navercorp.pinpoint.collector.cluster.ClusterPoint;
4+
import com.navercorp.pinpoint.collector.cluster.ClusterPointLocator;
5+
import com.navercorp.pinpoint.collector.cluster.ClusterPointRepository;
6+
import com.navercorp.pinpoint.collector.cluster.ClusterPointRouter;
7+
import com.navercorp.pinpoint.collector.cluster.route.DefaultRouteHandler;
8+
import com.navercorp.pinpoint.collector.cluster.route.RequestEvent;
9+
import com.navercorp.pinpoint.collector.cluster.route.ResponseEvent;
10+
import com.navercorp.pinpoint.collector.cluster.route.RouteFilterChain;
11+
import com.navercorp.pinpoint.collector.cluster.route.StreamEvent;
12+
import com.navercorp.pinpoint.collector.cluster.route.StreamRouteCloseEvent;
13+
import com.navercorp.pinpoint.collector.cluster.route.StreamRouteHandler;
14+
import com.navercorp.pinpoint.collector.manage.ClusterManager;
15+
import com.navercorp.pinpoint.common.server.cluster.zookeeper.ZookeeperClusterConfiguration;
16+
import com.navercorp.pinpoint.thrift.io.DeserializerFactory;
17+
import com.navercorp.pinpoint.thrift.io.HeaderTBaseDeserializer;
18+
import com.navercorp.pinpoint.thrift.io.HeaderTBaseSerializer;
19+
import com.navercorp.pinpoint.thrift.io.SerializerFactory;
20+
import org.apache.logging.log4j.LogManager;
21+
import org.apache.logging.log4j.Logger;
22+
import org.springframework.beans.factory.annotation.Qualifier;
23+
import org.springframework.beans.factory.annotation.Value;
24+
import org.springframework.context.annotation.Bean;
25+
import org.springframework.context.annotation.Configuration;
26+
27+
/**
28+
* @author Woonduk Kang(emeroad)
29+
*/
30+
@Configuration
31+
public class ClusterConfiguration {
32+
33+
private final Logger logger = LogManager.getLogger(ClusterConfiguration.class);
34+
35+
public ClusterConfiguration() {
36+
logger.info("Install {}", ClusterConfiguration.class.getSimpleName());
37+
}
38+
39+
@Bean
40+
public ClusterPointRepository targetClusterPointRepository() {
41+
return new ClusterPointRepository();
42+
}
43+
44+
@Bean
45+
public DefaultRouteHandler defaultRouteHandler(
46+
@Qualifier("targetClusterPointRepository") ClusterPointLocator<ClusterPoint<?>> targetClusterPointLocator,
47+
@Qualifier("requestFilterChain") RouteFilterChain<RequestEvent> requestFilterChain,
48+
@Qualifier("responseFilterChain") RouteFilterChain<ResponseEvent> responseFilterChain) {
49+
return new DefaultRouteHandler(targetClusterPointLocator, requestFilterChain, responseFilterChain);
50+
}
51+
52+
@Bean
53+
public StreamRouteHandler streamRouteHandler(
54+
@Qualifier("targetClusterPointRepository") ClusterPointLocator<ClusterPoint<?>> targetClusterPointLocator,
55+
@Qualifier("streamCreateFilterChain") RouteFilterChain<StreamEvent> streamCreateFilterChain,
56+
@Qualifier("streamResponseFilterChain") RouteFilterChain<ResponseEvent> responseFilterChain,
57+
@Qualifier("streamCloseFilterChain") RouteFilterChain<StreamRouteCloseEvent> streamCloseFilterChain,
58+
@Qualifier("commandHeaderTBaseSerializerFactory") SerializerFactory<HeaderTBaseSerializer> commandSerializerFactory) {
59+
return new StreamRouteHandler(targetClusterPointLocator, streamCreateFilterChain, responseFilterChain, streamCloseFilterChain, commandSerializerFactory);
60+
}
61+
62+
@Bean
63+
public ClusterPointRouter clusterPointRouter(
64+
@Qualifier("targetClusterPointRepository") ClusterPointRepository<ClusterPoint<?>> targetClusterPointRepository,
65+
@Qualifier("defaultRouteHandler") DefaultRouteHandler defaultRouteHandler,
66+
@Qualifier("streamRouteHandler") StreamRouteHandler streamRouteHandler,
67+
@Qualifier("commandHeaderTBaseSerializerFactory") SerializerFactory<HeaderTBaseSerializer> commandSerializerFactory,
68+
@Qualifier("commandHeaderTBaseDeserializerFactory") DeserializerFactory<HeaderTBaseDeserializer> commandDeserializerFactory) {
69+
return new ClusterPointRouter(targetClusterPointRepository, defaultRouteHandler, streamRouteHandler, commandSerializerFactory, commandDeserializerFactory);
70+
}
71+
72+
@Bean
73+
public ClusterManager clusterManager(@Qualifier("collectorClusterConfig") CollectorClusterConfig collectorClusterConfig,
74+
ClusterPointRepository targetClusterPointRepository) {
75+
return new ClusterManager(collectorClusterConfig, targetClusterPointRepository);
76+
}
77+
78+
79+
@Bean
80+
public CollectorClusterConfig collectorClusterConfig(
81+
@Qualifier("clusterConfiguration") ZookeeperClusterConfiguration clusterConfiguration,
82+
@Value("${cluster.listen.ip:}") String clusterListenIp,
83+
@Value("${cluster.listen.port:-1}") int clusterListenPort) {
84+
return new CollectorClusterConfig(clusterConfiguration, clusterListenIp, clusterListenPort);
85+
}
86+
}

0 commit comments

Comments
 (0)