Skip to content

Commit f410c84

Browse files
committed
init sparrow shell
1 parent ab80195 commit f410c84

File tree

954 files changed

+774719
-27
lines changed

Some content is hidden

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

954 files changed

+774719
-27
lines changed

Diff for: asm-bo-0.3.5.zip

283 KB
Binary file not shown.

Diff for: pom.xml

-27
Original file line numberDiff line numberDiff line change
@@ -52,45 +52,18 @@
5252
<module>sparrow-bom</module>
5353
<module>sparrow-log</module>
5454
<module>sparrow-rocketmq-client</module>
55-
<module>sparrow-kafka-client</module>
5655
<module>sparrow-sharded-jedis</module>
5756
<module>sparrow-markdown</module>
5857
<module>sparrow-registry</module>
5958
<module>sparrow-aop</module>
6059
<module>sparrow-distribution-job</module>
6160
<module>sparrow-distribution-config</module>
6261
<module>sparrow-protocol</module>
63-
<module>sparrow-ml</module>
6462
<module>sparrow-test</module>
6563
<!--<module>sparrow-lettuce-cluster</module>-->
6664
</modules>
6765

6866
<build>
6967
<finalName>${project.artifactId}</finalName>
70-
71-
<plugins>
72-
<plugin>
73-
<artifactId>maven-checkstyle-plugin</artifactId>
74-
<version>2.17</version>
75-
<executions>
76-
<execution>
77-
<id>verify</id>
78-
<phase>verify</phase>
79-
<configuration>
80-
<configLocation>style/sparrow_checkstyle.xml</configLocation>
81-
<suppressionsLocation>style/check_style_suppressions.xml</suppressionsLocation>
82-
<suppressionsFileExpression>checkstyle.suppressions.file</suppressionsFileExpression>
83-
<encoding>UTF-8</encoding>
84-
<consoleOutput>true</consoleOutput>
85-
<failsOnError>true</failsOnError>
86-
<includeTestSourceDirectory>false</includeTestSourceDirectory>
87-
</configuration>
88-
<goals>
89-
<goal>check</goal>
90-
</goals>
91-
</execution>
92-
</executions>
93-
</plugin>
94-
</plugins>
9568
</build>
9669
</project>

Diff for: sparrow-aop/.gitignore

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
*.iml
2+
target
3+
.idea
4+
lib
5+
classes
6+
logs
7+
*.jar

Diff for: sparrow-aop/README.md

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
unavailable

Diff for: sparrow-aop/pom.xml

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<parent>
6+
<artifactId>sparrow-bom</artifactId>
7+
<groupId>com.sparrow</groupId>
8+
<version>1.0</version>
9+
</parent>
10+
<modelVersion>4.0.0</modelVersion>
11+
12+
<artifactId>sparrow-aop</artifactId>
13+
<properties>
14+
<curator.version>2.10.0</curator.version>
15+
</properties>
16+
<dependencies>
17+
<dependency>
18+
<groupId>com.sparrow</groupId>
19+
<artifactId>sparrow</artifactId>
20+
</dependency>
21+
<!--必须 spring aop 使用-->
22+
<dependency>
23+
<groupId>org.aspectj</groupId>
24+
<artifactId>aspectjweaver</artifactId>
25+
<version>1.9.4</version>
26+
</dependency>
27+
<!--非必要aspectjweaver 中已包含-->
28+
<!-- <dependency>-->
29+
<!-- <groupId>org.aspectj</groupId>-->
30+
<!-- <artifactId>aspectjrt</artifactId>-->
31+
<!-- <version>1.9.4</version>-->
32+
<!-- </dependency>-->
33+
34+
<!-- 非必须 在spring aop 中已集成-->
35+
<!-- <dependency>-->
36+
<!-- <groupId>aopalliance</groupId>-->
37+
<!-- <artifactId>aopalliance</artifactId>-->
38+
<!-- <version>1.0</version>-->
39+
<!-- </dependency>-->
40+
<dependency>
41+
<groupId>org.springframework</groupId>
42+
<artifactId>spring-aop</artifactId>
43+
<version>4.3.20.RELEASE</version>
44+
</dependency>
45+
</dependencies>
46+
47+
<!--spring-aop:AOP核心功能,例如代理工厂等
48+
49+
aspectjweaver:支持切入点表达式等
50+
51+
aspectjrt:支持aop相关注解等-->
52+
</project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
package com.sparrow.aop;//package com.sparrow.tracer;
2+
3+
import com.sparrow.tracer.ExecuteDuration;
4+
import com.sparrow.tracer.Span;
5+
import com.sparrow.tracer.Tracer;
6+
import com.sparrow.tracer.TracerAccessor;
7+
import org.aspectj.lang.ProceedingJoinPoint;
8+
import org.aspectj.lang.annotation.Around;
9+
import org.aspectj.lang.reflect.MethodSignature;
10+
import org.slf4j.Logger;
11+
import org.slf4j.LoggerFactory;
12+
import java.lang.reflect.Method;
13+
14+
15+
public abstract class AbstractExecuteDurationInterceptor {
16+
protected abstract TracerAccessor getTracerAccessor(Object arg);
17+
18+
private TracerAccessor getTracerAccessor(ProceedingJoinPoint pjp) {
19+
Object[] args = pjp.getArgs();
20+
for (Object arg : args) {
21+
if (arg instanceof TracerAccessor) {
22+
return (TracerAccessor) arg;
23+
}
24+
TracerAccessor tracerAccessor = this.getTracerAccessor(arg);
25+
if (tracerAccessor != null) {
26+
return tracerAccessor;
27+
}
28+
}
29+
return null;
30+
}
31+
32+
protected abstract void alarm(Logger logger, Throwable e, TracerAccessor tracerAccessor);
33+
34+
protected abstract void alarm(Logger logger, TracerAccessor tracerAccessor, String format, Object... args);
35+
36+
@Around("executeDuration()")
37+
public Object interceptor(ProceedingJoinPoint pjp) throws Throwable {
38+
TracerAccessor tracerAccessor = this.getTracerAccessor(pjp);
39+
Tracer tracer;
40+
Class<?> classTarget = pjp.getTarget().getClass();
41+
Logger logger = LoggerFactory.getLogger(classTarget);
42+
Span span = null;
43+
if (tracerAccessor != null) {
44+
tracer = tracerAccessor.getTracer();
45+
if (tracer != null) {
46+
String methodName = pjp.getSignature().getName();
47+
Class<?>[] par = ((MethodSignature) pjp.getSignature()).getParameterTypes();
48+
Method targetMethod = classTarget.getMethod(methodName, par);
49+
ExecuteDuration executeDuration = targetMethod.getAnnotation(ExecuteDuration.class);
50+
span = tracer.spanBuilder().asChild().name(executeDuration.spanName()).start();
51+
}
52+
}
53+
Object result;
54+
try {
55+
result = pjp.proceed();
56+
return result;
57+
} catch (Throwable e) {
58+
this.alarm(logger, e, tracerAccessor);
59+
throw e;
60+
} finally {
61+
if (span != null) {
62+
span.finish();
63+
long configTimeout = tracerAccessor.getAlarmTimeout();
64+
if (configTimeout > 0 && span.duration() > configTimeout) {
65+
this.alarm(logger, tracerAccessor, "%s time out %sms", span.getName(), span.duration() + "");
66+
}
67+
}
68+
}
69+
}
70+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.sparrow.aop;
2+
3+
4+
import com.sparrow.tracer.TracerAccessor;
5+
import org.aspectj.lang.annotation.Aspect;
6+
import org.aspectj.lang.annotation.Pointcut;
7+
import org.slf4j.Logger;
8+
@Aspect
9+
public class ExecuteDurationInterceptor extends AbstractExecuteDurationInterceptor {
10+
11+
@Pointcut("@annotation(com.sprucetec.search.common.tracer.ExecuteDuration)")
12+
public void executeDuration() {
13+
}
14+
15+
@Override
16+
protected TracerAccessor getTracerAccessor(Object arg) {
17+
return null;
18+
}
19+
20+
@Override
21+
protected void alarm(Logger logger, Throwable e, TracerAccessor tracerAccessor) {
22+
23+
}
24+
25+
@Override
26+
protected void alarm(Logger logger, TracerAccessor tracerAccessor, String format, Object... args) {
27+
}
28+
}

Diff for: sparrow-bom/.gitignore

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
*.iml
2+
target
3+
.idea
4+
classes
5+
logs
6+
.DS_Store

0 commit comments

Comments
 (0)