소스 검색

timer support for aop.xml

tags/V1_6_7
aclement 14 년 전
부모
커밋
5d0833b487
2개의 변경된 파일51개의 추가작업 그리고 24개의 파일을 삭제
  1. 45
    23
      loadtime/src/org/aspectj/weaver/loadtime/ClassLoaderWeavingAdaptor.java
  2. 6
    1
      loadtime/src/org/aspectj/weaver/loadtime/Options.java

+ 45
- 23
loadtime/src/org/aspectj/weaver/loadtime/ClassLoaderWeavingAdaptor.java 파일 보기

@@ -81,10 +81,12 @@ public class ClassLoaderWeavingAdaptor extends WeavingAdaptor {

public ClassLoaderWeavingAdaptor() {
super();
if (trace.isTraceEnabled())
if (trace.isTraceEnabled()) {
trace.enter("<init>", this);
if (trace.isTraceEnabled())
}
if (trace.isTraceEnabled()) {
trace.exit("<init>");
}
}

/**
@@ -95,10 +97,12 @@ public class ClassLoaderWeavingAdaptor extends WeavingAdaptor {
*/
public ClassLoaderWeavingAdaptor(final ClassLoader deprecatedLoader, final IWeavingContext deprecatedContext) {
super();
if (trace.isTraceEnabled())
if (trace.isTraceEnabled()) {
trace.enter("<init>", this, new Object[] { deprecatedLoader, deprecatedContext });
if (trace.isTraceEnabled())
}
if (trace.isTraceEnabled()) {
trace.exit("<init>");
}
}

class SimpleGeneratedClassHandler implements GeneratedClassHandler {
@@ -126,8 +130,9 @@ public class ClassLoaderWeavingAdaptor extends WeavingAdaptor {
}

protected void initialize(final ClassLoader classLoader, IWeavingContext context) {
if (initialized)
if (initialized) {
return;
}

boolean success = true;
// if (trace.isTraceEnabled()) trace.enter("initialize",this,new Object[] { classLoader, context });
@@ -144,8 +149,9 @@ public class ClassLoaderWeavingAdaptor extends WeavingAdaptor {
List definitions = weavingContext.getDefinitions(classLoader, this);
if (definitions.isEmpty()) {
disable(); // TODO maw Needed to ensure messages are flushed
if (trace.isTraceEnabled())
if (trace.isTraceEnabled()) {
trace.exit("initialize", definitions);
}
return;
}

@@ -175,8 +181,9 @@ public class ClassLoaderWeavingAdaptor extends WeavingAdaptor {
}

initialized = true;
if (trace.isTraceEnabled())
if (trace.isTraceEnabled()) {
trace.exit("initialize", isEnabled());
}
}

/**
@@ -186,8 +193,9 @@ public class ClassLoaderWeavingAdaptor extends WeavingAdaptor {
* @param loader
*/
List parseDefinitions(final ClassLoader loader) {
if (trace.isTraceEnabled())
if (trace.isTraceEnabled()) {
trace.enter("parseDefinitions", this);
}

List definitions = new ArrayList();
try {
@@ -204,8 +212,9 @@ public class ClassLoaderWeavingAdaptor extends WeavingAdaptor {
}

String resourcePath = System.getProperty("org.aspectj.weaver.loadtime.configuration", AOP_XML);
if (trace.isTraceEnabled())
if (trace.isTraceEnabled()) {
trace.event("parseDefinitions", this, resourcePath);
}

StringTokenizer st = new StringTokenizer(resourcePath, ";");

@@ -230,8 +239,9 @@ public class ClassLoaderWeavingAdaptor extends WeavingAdaptor {
Set seenBefore = new HashSet();
while (xmls.hasMoreElements()) {
URL xml = (URL) xmls.nextElement();
if (trace.isTraceEnabled())
if (trace.isTraceEnabled()) {
trace.event("parseDefinitions", this, xml);
}
if (!seenBefore.contains(xml)) {
info("using configuration " + weavingContext.getFile(xml));
definitions.add(DocumentParser.parse(xml));
@@ -250,14 +260,16 @@ public class ClassLoaderWeavingAdaptor extends WeavingAdaptor {
warn("parse definitions failed", e);
}

if (trace.isTraceEnabled())
if (trace.isTraceEnabled()) {
trace.exit("parseDefinitions", definitions);
}
return definitions;
}

private boolean registerDefinitions(final BcelWeaver weaver, final ClassLoader loader, List definitions) {
if (trace.isTraceEnabled())
if (trace.isTraceEnabled()) {
trace.enter("registerDefinitions", this, definitions);
}
boolean success = true;

try {
@@ -273,8 +285,9 @@ public class ClassLoaderWeavingAdaptor extends WeavingAdaptor {
warn("register definition failed", (ex instanceof AbortException) ? null : ex);
}

if (trace.isTraceEnabled())
if (trace.isTraceEnabled()) {
trace.exit("registerDefinitions", success);
}
return success;
}

@@ -305,6 +318,7 @@ public class ClassLoaderWeavingAdaptor extends WeavingAdaptor {
setMessageHandler(weaverOption.messageHandler);
world.setXlazyTjp(weaverOption.lazyTjp);
world.setXHasMemberSupportEnabled(weaverOption.hasMember);
world.setTiming(weaverOption.timers);
world.setOptionalJoinpoints(weaverOption.optionalJoinpoints);
world.setPinpointMode(weaverOption.pinpoint);
weaver.setReweavableMode(weaverOption.notReWeavable);
@@ -413,8 +427,9 @@ public class ClassLoaderWeavingAdaptor extends WeavingAdaptor {
* @param definitions
*/
private boolean registerAspects(final BcelWeaver weaver, final ClassLoader loader, final List definitions) {
if (trace.isTraceEnabled())
if (trace.isTraceEnabled()) {
trace.enter("registerAspects", this, new Object[] { weaver, loader, definitions });
}
boolean success = true;

// TODO: the exclude aspect allow to exclude aspect defined upper in the CL hierarchy - is it what we want ??
@@ -486,14 +501,16 @@ public class ClassLoaderWeavingAdaptor extends WeavingAdaptor {
info("no aspects registered. Disabling weaver for class loader " + getClassLoaderName(loader));
}

if (trace.isTraceEnabled())
if (trace.isTraceEnabled()) {
trace.exit("registerAspects", success);
}
return success;
}

private boolean weaveAndDefineConceteAspects() {
if (trace.isTraceEnabled())
if (trace.isTraceEnabled()) {
trace.enter("weaveAndDefineConceteAspects", this, concreteAspects);
}
boolean success = true;

for (Iterator iterator = concreteAspects.iterator(); iterator.hasNext();) {
@@ -510,8 +527,9 @@ public class ClassLoaderWeavingAdaptor extends WeavingAdaptor {
}
}

if (trace.isTraceEnabled())
if (trace.isTraceEnabled()) {
trace.exit("weaveAndDefineConceteAspects", success);
}
return success;
}

@@ -755,10 +773,11 @@ public class ClassLoaderWeavingAdaptor extends WeavingAdaptor {
public String getNamespace() {
// System.out.println("ClassLoaderWeavingAdaptor.getNamespace() classloader=" + weavingContext.getClassLoaderName() +
// ", namespace=" + namespace);
if (namespace == null)
if (namespace == null) {
return "";
else
} else {
return new String(namespace);
}
}

/**
@@ -770,10 +789,11 @@ public class ClassLoaderWeavingAdaptor extends WeavingAdaptor {
public boolean generatedClassesExistFor(String className) {
// System.err.println("? ClassLoaderWeavingAdaptor.generatedClassesExist() classname=" + className + ", size=" +
// generatedClasses);
if (className == null)
if (className == null) {
return !generatedClasses.isEmpty();
else
} else {
return generatedClasses.containsKey(className);
}
}

/**
@@ -785,8 +805,9 @@ public class ClassLoaderWeavingAdaptor extends WeavingAdaptor {
}

private void defineClass(ClassLoader loader, String name, byte[] bytes) {
if (trace.isTraceEnabled())
if (trace.isTraceEnabled()) {
trace.enter("defineClass", this, new Object[] { loader, name, bytes });
}
Object clazz = null;
debug("generating class '" + name + "'");

@@ -808,7 +829,8 @@ public class ClassLoaderWeavingAdaptor extends WeavingAdaptor {
warn("define generated class failed", e);
}

if (trace.isTraceEnabled())
if (trace.isTraceEnabled()) {
trace.exit("defineClass", clazz);
}
}
}

+ 6
- 1
loadtime/src/org/aspectj/weaver/loadtime/Options.java 파일 보기

@@ -46,6 +46,7 @@ public class Options {
private static final String OPTIONVALUED_Xlint = "-Xlint:";
private static final String OPTIONVALUED_joinpoints = "-Xjoinpoints:";
private static final String OPTIONVALUED_Xset = "-Xset:";
private static final String OPTION_timers = "-timers";

public static WeaverOption parse(String options, ClassLoader laoder, IMessageHandler imh) {
WeaverOption weaverOption = new WeaverOption(imh);
@@ -96,8 +97,9 @@ public class Options {
} else if (arg.equalsIgnoreCase(OPTION_hasMember)) {
weaverOption.hasMember = true;
} else if (arg.startsWith(OPTIONVALUED_joinpoints)) {
if (arg.length() > OPTIONVALUED_joinpoints.length())
if (arg.length() > OPTIONVALUED_joinpoints.length()) {
weaverOption.optionalJoinpoints = arg.substring(OPTIONVALUED_joinpoints.length()).trim();
}
} else if (arg.equalsIgnoreCase(OPTION_verbose)) {
weaverOption.verbose = true;
} else if (arg.equalsIgnoreCase(OPTION_debug)) {
@@ -118,6 +120,8 @@ public class Options {
if (arg.length() > OPTIONVALUED_Xlint.length()) {
weaverOption.xSet = arg.substring(OPTIONVALUED_Xset.length()).trim();
}
} else if (arg.equalsIgnoreCase(OPTION_timers)) {
weaverOption.timers = true;
} else {
weaverOption.messageHandler.handleMessage(new Message("Cannot configure weaver with option '" + arg
+ "': unknown option", IMessage.WARNING, null, null));
@@ -145,6 +149,7 @@ public class Options {
boolean java5;
boolean lazyTjp;
boolean hasMember;
boolean timers = false;
String optionalJoinpoints;
boolean noWarn;
boolean proceedOnError;

Loading…
취소
저장