Skip to content

Commit

Permalink
Merge pull request pinpoint-apm#115 from emeroad/scope_api_refactoring
Browse files Browse the repository at this point in the history
scope api refactoring
  • Loading branch information
emeroad committed Jan 19, 2015
2 parents 0e020a4 + 6641efd commit 947175e
Show file tree
Hide file tree
Showing 19 changed files with 187 additions and 51 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.navercorp.pinpoint.bootstrap.instrument;

/**
* @author emeroad
*/
public interface Attachment {

Object getAttachment();

void setAttachment(Object object);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.navercorp.pinpoint.bootstrap.instrument;

/**
* @author emeroad
*/
public interface AttachmentScope extends Scope, Attachment {
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@
* @author emeroad
*/
public interface Scope {

int ZERO = 0;

int push();

int depth();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,9 @@
import com.navercorp.pinpoint.bootstrap.interceptor.MethodDescriptor;
import com.navercorp.pinpoint.common.AnnotationKey;
import com.navercorp.pinpoint.common.ServiceType;
import com.navercorp.pinpoint.common.util.Clock;
import com.navercorp.pinpoint.common.util.ParsingResult;
import com.navercorp.pinpoint.common.util.SystemClock;

/**
* @author emeroad
Expand All @@ -33,9 +35,15 @@ public class MockTrace implements Trace {

private boolean sampled = true;

private Clock clock = SystemClock.INSTANCE;

public void setClock(Clock clock) {
this.clock = clock;
}

@Override
public void markBeforeTime() {
beforeTime = System.currentTimeMillis();
beforeTime = clock.getTime();
}

@Override
Expand All @@ -45,7 +53,7 @@ public long getBeforeTime() {

@Override
public void markAfterTime() {
afterTime = System.currentTimeMillis();
afterTime = clock.getTime();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.navercorp.pinpoint.common.util;

/**
* @author emeroad
*/
public interface Clock {
long getTime();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.navercorp.pinpoint.common.util;

/**
* @author emeroad
*/
public class MockClock implements Clock {

private long time;

public void setTime(long time) {
this.time = time;
}

@Override
public long getTime() {
return time;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.navercorp.pinpoint.common.util;

/**
* @author emeroad
*/
public final class SystemClock implements Clock {

public static final Clock INSTANCE = new SystemClock();

private SystemClock() {
}

@Override
public final long getTime() {
return System.currentTimeMillis();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
import com.navercorp.pinpoint.bootstrap.interceptor.TraceContextSupport;
import com.navercorp.pinpoint.bootstrap.logging.PLogger;
import com.navercorp.pinpoint.bootstrap.logging.PLoggerFactory;
import com.navercorp.pinpoint.profiler.util.DepthScope;

/**
* @author emeroad
Expand All @@ -51,7 +50,7 @@ public DebugScopeDelegateSimpleInterceptor(SimpleAroundInterceptor delegate, Sco
@Override
public void before(Object target, Object[] args) {
final int push = scope.push();
if (push != DepthScope.ZERO) {
if (push != Scope.ZERO) {
if (isDebug) {
logger.debug("push {}. skip trace. level:{} {}", new Object[]{scope.getName(), push, delegate.getClass()});
}
Expand All @@ -63,7 +62,7 @@ public void before(Object target, Object[] args) {
@Override
public void after(Object target, Object[] args, Object result, Throwable throwable) {
final int pop = scope.pop();
if (pop != DepthScope.ZERO) {
if (pop != Scope.ZERO) {
if (isDebug) {
logger.debug("pop {}. skip trace. level:{} {}", new Object[]{scope.getName(), pop, delegate.getClass()});
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
import com.navercorp.pinpoint.bootstrap.interceptor.TraceContextSupport;
import com.navercorp.pinpoint.bootstrap.logging.PLogger;
import com.navercorp.pinpoint.bootstrap.logging.PLoggerFactory;
import com.navercorp.pinpoint.profiler.util.DepthScope;

/**
* @author emeroad
Expand All @@ -48,7 +47,7 @@ public DebugScopeDelegateStaticInterceptor(StaticAroundInterceptor delegate, Sco
@Override
public void before(Object target, String className, String methodName, String parameterDescription, Object[] args) {
final int push = scope.push();
if (push != DepthScope.ZERO) {
if (push != Scope.ZERO) {
if (isDebug) {
logger.debug("push {}. skip trace. level:{} {}", new Object[]{scope.getName(), push, delegate.getClass()});
}
Expand All @@ -60,7 +59,7 @@ public void before(Object target, String className, String methodName, String pa
@Override
public void after(Object target, String className, String methodName, String parameterDescription, Object[] args, Object result, Throwable throwable) {
final int pop = scope.pop();
if (pop != DepthScope.ZERO) {
if (pop != Scope.ZERO) {
if (isDebug) {
logger.debug("pop {}. skip trace. level:{} {}", new Object[]{scope.getName(), pop, delegate.getClass()});
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
import com.navercorp.pinpoint.bootstrap.interceptor.MethodDescriptor;
import com.navercorp.pinpoint.bootstrap.interceptor.SimpleAroundInterceptor;
import com.navercorp.pinpoint.bootstrap.interceptor.TraceContextSupport;
import com.navercorp.pinpoint.profiler.util.DepthScope;

/**
* @author emeroad
Expand All @@ -47,7 +46,7 @@ public ScopeDelegateSimpleInterceptor(SimpleAroundInterceptor delegate, Scope sc
@Override
public void before(Object target, Object[] args) {
final int push = scope.push();
if (push != DepthScope.ZERO) {
if (push != Scope.ZERO) {
return;
}
this.delegate.before(target, args);
Expand All @@ -56,7 +55,7 @@ public void before(Object target, Object[] args) {
@Override
public void after(Object target, Object[] args, Object result, Throwable throwable) {
final int pop = scope.pop();
if (pop != DepthScope.ZERO) {
if (pop != Scope.ZERO) {
return;
}
this.delegate.after(target, args, result, throwable);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
import com.navercorp.pinpoint.bootstrap.instrument.Scope;
import com.navercorp.pinpoint.bootstrap.interceptor.StaticAroundInterceptor;
import com.navercorp.pinpoint.bootstrap.interceptor.TraceContextSupport;
import com.navercorp.pinpoint.profiler.util.DepthScope;

/**
* @author emeroad
Expand All @@ -44,7 +43,7 @@ public ScopeDelegateStaticInterceptor(StaticAroundInterceptor delegate, Scope sc
@Override
public void before(Object target, String className, String methodName, String parameterDescription, Object[] args) {
final int push = scope.push();
if (push != DepthScope.ZERO) {
if (push != Scope.ZERO) {
return;
}
this.delegate.before(target, className, methodName, parameterDescription, args);
Expand All @@ -53,7 +52,7 @@ public void before(Object target, String className, String methodName, String pa
@Override
public void after(Object target, String className, String methodName, String parameterDescription, Object[] args, Object result, Throwable throwable) {
final int pop = scope.pop();
if (pop != DepthScope.ZERO) {
if (pop != Scope.ZERO) {
return;
}
this.delegate.after(target, className, methodName, parameterDescription, args, result, throwable);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@

package com.navercorp.pinpoint.profiler.modifier.connector.httpclient3;

import com.navercorp.pinpoint.profiler.util.DepthScope;

/**
* @author Minwoo Jung
*/
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.navercorp.pinpoint.profiler.util;

import com.navercorp.pinpoint.bootstrap.instrument.Scope;

/**
* @author emeroad
*/
public interface ScopeFactory {

Scope createScope();

String getName();

}
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@ public Scope getScope(String scopeName) {
if (scope != null) {
return scope;
}
final Scope newScope = new DepthScope(scopeName);
final ScopeFactory factory = new SimpleScopeFactory(scopeName);
final Scope newScope = new ThreadLocalScope(factory);
final Scope exist = this.pool.putIfAbsent(scopeName, newScope);
if (exist != null) {
return exist;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package com.navercorp.pinpoint.profiler.util;

import com.navercorp.pinpoint.bootstrap.instrument.Scope;

/**
* @author emeroad
*/
public class SimpleScope implements Scope {

private final String name;

private int depth = 0;

public SimpleScope(String name) {
this.name = name;
}

public int push() {
return depth++;
}

public int pop() {
return --depth;
}

public int depth() {
return depth;
}

@Override
public String getName() {
return "Depth";
}

@Override
public String toString() {
final StringBuilder sb = new StringBuilder("SimpleScope{");
sb.append("name=").append(name);
sb.append('}');
return sb.toString();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package com.navercorp.pinpoint.profiler.util;

import com.navercorp.pinpoint.bootstrap.instrument.Scope;

/**
* @author emeroad
*/
public class SimpleScopeFactory implements ScopeFactory {

private final String name;

public SimpleScopeFactory(String name) {
this.name = name;
}

@Override
public Scope createScope() {
return new SimpleScope(name);
}

@Override
public String getName() {
return name;
}
}
Loading

0 comments on commit 947175e

Please sign in to comment.