aboutsummaryrefslogtreecommitdiffstats
path: root/docs/modules/ROOT/pages/examples/tracing
diff options
context:
space:
mode:
authorAlexander Kriegisch <Alexander@Kriegisch.name>2024-02-01 08:57:52 +0700
committerAlexander Kriegisch <Alexander@Kriegisch.name>2024-02-01 08:58:28 +0700
commit983159c76ca8163b61f0d52c98522e8bc113f585 (patch)
tree3137bb04a0942b59d7b066912a2fa8fed5601373 /docs/modules/ROOT/pages/examples/tracing
parentc99b58736fd7f2952fe9bf787333631a762dcbeb (diff)
downloadaspectj-antora.tar.gz
aspectj-antora.zip
Move source code examples to Antora examples directoryantora
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
Diffstat (limited to 'docs/modules/ROOT/pages/examples/tracing')
-rw-r--r--docs/modules/ROOT/pages/examples/tracing/Circle.java71
-rw-r--r--docs/modules/ROOT/pages/examples/tracing/ExampleMain.java44
-rw-r--r--docs/modules/ROOT/pages/examples/tracing/README32
-rw-r--r--docs/modules/ROOT/pages/examples/tracing/Square.java71
-rw-r--r--docs/modules/ROOT/pages/examples/tracing/TwoDShape.java69
-rw-r--r--docs/modules/ROOT/pages/examples/tracing/lib/AbstractTrace.java185
-rw-r--r--docs/modules/ROOT/pages/examples/tracing/lib/TraceMyClasses.java67
-rw-r--r--docs/modules/ROOT/pages/examples/tracing/notrace.lst4
-rw-r--r--docs/modules/ROOT/pages/examples/tracing/tracelib.lst6
-rw-r--r--docs/modules/ROOT/pages/examples/tracing/tracev1.lst6
-rw-r--r--docs/modules/ROOT/pages/examples/tracing/tracev2.lst6
-rw-r--r--docs/modules/ROOT/pages/examples/tracing/tracev3.lst6
-rw-r--r--docs/modules/ROOT/pages/examples/tracing/version1/Trace.java77
-rw-r--r--docs/modules/ROOT/pages/examples/tracing/version1/TraceMyClasses.java69
-rw-r--r--docs/modules/ROOT/pages/examples/tracing/version2/Trace.java117
-rw-r--r--docs/modules/ROOT/pages/examples/tracing/version2/TraceMyClasses.java37
-rw-r--r--docs/modules/ROOT/pages/examples/tracing/version3/Trace.java123
-rw-r--r--docs/modules/ROOT/pages/examples/tracing/version3/TraceMyClasses.java46
18 files changed, 0 insertions, 1036 deletions
diff --git a/docs/modules/ROOT/pages/examples/tracing/Circle.java b/docs/modules/ROOT/pages/examples/tracing/Circle.java
deleted file mode 100644
index 76b73e20a..000000000
--- a/docs/modules/ROOT/pages/examples/tracing/Circle.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
-
-Copyright (c) Xerox Corporation 1998-2002. All rights reserved.
-
-Use and copying of this software and preparation of derivative works based
-upon this software are permitted. Any distribution of this software or
-derivative works must comply with all applicable United States export control
-laws.
-
-This software is made available AS IS, and Xerox Corporation makes no warranty
-about the software, its performance or its conformity to any specification.
-
-|<--- this code is formatted to fit into 80 columns --->|
-|<--- this code is formatted to fit into 80 columns --->|
-|<--- this code is formatted to fit into 80 columns --->|
-
-*/
-
-package tracing;
-
-/**
- *
- * Circle is a 2D shape. It extends the TwoDShape class with the radius
- * variable, and it implements TwoDShape's abstract methods for
- * correctly computing a circle's area and distance.
- *
- */
-public class Circle extends TwoDShape {
- protected double r; // radius
-
- /*
- * All sorts of constructors
- */
- public Circle(double x, double y, double r) {
- super(x, y); this.r = r;
- }
-
- public Circle(double x, double y) {
- this(x, y, 1.0);
- }
-
- public Circle(double r) {
- this(0.0, 0.0, r);
- }
-
- public Circle() {
- this(0.0, 0.0, 1.0);
- }
-
- /**
- * Returns the perimeter of this circle
- */
- public double perimeter() {
- return 2 * Math.PI * r;
- }
-
- /**
- * Returns the area of this circle
- */
- public double area() {
- return Math.PI * r*r;
- }
-
- /**
- * This method overrides the one in the superclass. It adds some
- * circle-specific information.
- */
- public String toString() {
- return ("Circle radius = " + String.valueOf(r) + super.toString());
- }
-}
diff --git a/docs/modules/ROOT/pages/examples/tracing/ExampleMain.java b/docs/modules/ROOT/pages/examples/tracing/ExampleMain.java
deleted file mode 100644
index 93cc465b7..000000000
--- a/docs/modules/ROOT/pages/examples/tracing/ExampleMain.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
-
-Copyright (c) Xerox Corporation 1998-2002. All rights reserved.
-
-Use and copying of this software and preparation of derivative works based
-upon this software are permitted. Any distribution of this software or
-derivative works must comply with all applicable United States export control
-laws.
-
-This software is made available AS IS, and Xerox Corporation makes no warranty
-about the software, its performance or its conformity to any specification.
-
-|<--- this code is formatted to fit into 80 columns --->|
-|<--- this code is formatted to fit into 80 columns --->|
-|<--- this code is formatted to fit into 80 columns --->|
-
-*/
-
-package tracing;
-
-/**
- *
- * A main function for testing 2D shapes.
- *
- */
-public class ExampleMain {
- public static void main(String[] args) {
- Circle c1 = new Circle(3.0, 3.0, 2.0);
- Circle c2 = new Circle(4.0);
-
- Square s1 = new Square(1.0, 2.0);
-
- System.out.println("c1.perimeter() = " + c1.perimeter());
- System.out.println("c1.area() = " + c1.area());
-
- System.out.println("s1.perimeter() = " + s1.perimeter());
- System.out.println("s1.area() = " + s1.area());
-
- System.out.println("c2.distance(c1) = " + c2.distance(c1));
- System.out.println("s1.distance(c1) = " + s1.distance(c1));
-
- System.out.println("s1.toString(): " + s1.toString());
- }
-}
diff --git a/docs/modules/ROOT/pages/examples/tracing/README b/docs/modules/ROOT/pages/examples/tracing/README
deleted file mode 100644
index bf8e70390..000000000
--- a/docs/modules/ROOT/pages/examples/tracing/README
+++ /dev/null
@@ -1,32 +0,0 @@
-
-This directory contains several examples of tracing aspects,
-including a reusable tracing library and examples of
-using that library.
-
-A lesson in the AspectJ Primer explains all of this code.
-
-To work with these (or any other examples), first be sure .../examples
-is on your classpath, where ... is where you have installed AspectJ.
-
-
---To compile and run the example without tracing--
-
- ajc @.../examples/tracing/notrace.lst
-
- java tracing.ExampleMain
-
-
---To compile and run the example with tracing version<N>--
-
- ajc @.../examples/tracing/tracev<N>.lst
-
- java tracing.version<N>.TraceMyClasses
-
-where <N> is 1, 2, 3 or 4
-
---To use the tracing.lib.AbstractTrace aspect--
-
- Make sure .../examples is in your classpath.
-
- In order to use this aspect, please read the documentation under
- tracing/doc
diff --git a/docs/modules/ROOT/pages/examples/tracing/Square.java b/docs/modules/ROOT/pages/examples/tracing/Square.java
deleted file mode 100644
index 78b36882d..000000000
--- a/docs/modules/ROOT/pages/examples/tracing/Square.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
-
-Copyright (c) Xerox Corporation 1998-2002. All rights reserved.
-
-Use and copying of this software and preparation of derivative works based
-upon this software are permitted. Any distribution of this software or
-derivative works must comply with all applicable United States export control
-laws.
-
-This software is made available AS IS, and Xerox Corporation makes no warranty
-about the software, its performance or its conformity to any specification.
-
-|<--- this code is formatted to fit into 80 columns --->|
-|<--- this code is formatted to fit into 80 columns --->|
-|<--- this code is formatted to fit into 80 columns --->|
-
-*/
-
-package tracing;
-
-/**
- *
- * Square is a 2D shape. It extends the TwoDShape class with the side
- * variable, and it implements TwoDShape's abstract methods for
- * correctly computing a square's area and distance.
- *
- */
-public class Square extends TwoDShape {
- protected double s; // side
-
- /*
- * All sorts of constructors
- */
- public Square(double x, double y, double s) {
- super(x, y); this.s = s;
- }
-
- public Square(double x, double y) {
- this(x, y, 1.0);
- }
-
- public Square(double s) {
- this(0.0, 0.0, s);
- }
-
- public Square() {
- this(0.0, 0.0, 1.0);
- }
-
- /**
- * Returns the perimeter of this square
- */
- public double perimeter() {
- return 4 * s;
- }
-
- /**
- * Returns the area of this square
- */
- public double area() {
- return s*s;
- }
-
- /**
- * This method overrides the one in the superclass. It adds some
- * circle-specific information.
- */
- public String toString() {
- return ("Square side = " + String.valueOf(s) + super.toString());
- }
-}
diff --git a/docs/modules/ROOT/pages/examples/tracing/TwoDShape.java b/docs/modules/ROOT/pages/examples/tracing/TwoDShape.java
deleted file mode 100644
index 531b6f120..000000000
--- a/docs/modules/ROOT/pages/examples/tracing/TwoDShape.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
-Copyright (c) Xerox Corporation 1998-2002. All rights reserved.
-
-Use and copying of this software and preparation of derivative works based
-upon this software are permitted. Any distribution of this software or
-derivative works must comply with all applicable United States export control
-laws.
-
-This software is made available AS IS, and Xerox Corporation makes no warranty
-about the software, its performance or its conformity to any specification.
-*/
-
-package tracing;
-
-/**
- * TwoDShape is an abstract class that defines generic functionality
- * for 2D shapes.
- */
-public abstract class TwoDShape {
- /**
- * Coordinates of the center of the shape.
- */
- protected double x, y;
-
- protected TwoDShape(double x, double y) {
- this.x = x; this.y = y;
- }
-
- /**
- * Returns the x coordinate of the shape.
- */
- public double getX() { return x; }
-
- /**
- * Returns the y coordinate of the shape.
- */
- public double getY() { return y; }
-
- /**
- * Returns the distance between this shape and the shape given as
- * parameter.
- */
- public double distance(TwoDShape s) {
- double dx = Math.abs(s.getX() - x);
- double dy = Math.abs(s.getY() - y);
- return Math.sqrt(dx*dx + dy*dy);
- }
-
- /**
- * Returns the perimeter of this shape. Must be defined in
- * subclasses.
- */
- public abstract double perimeter();
-
- /**
- * Returns the area of this shape. Must be defined in
- * subclasses.
- */
- public abstract double area();
-
- /**
- * Returns a string representation of 2D shapes -- simply its
- * coordinates.
- */
- public String toString() {
- return (" @ (" + String.valueOf(x) + ", " + String.valueOf(y) + ") ");
- }
-}
-
diff --git a/docs/modules/ROOT/pages/examples/tracing/lib/AbstractTrace.java b/docs/modules/ROOT/pages/examples/tracing/lib/AbstractTrace.java
deleted file mode 100644
index 8c67b12c3..000000000
--- a/docs/modules/ROOT/pages/examples/tracing/lib/AbstractTrace.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
-
-Copyright (c) Xerox Corporation 1998-2002. All rights reserved.
-
-Use and copying of this software and preparation of derivative works based
-upon this software are permitted. Any distribution of this software or
-derivative works must comply with all applicable United States export control
-laws.
-
-This software is made available AS IS, and Xerox Corporation makes no warranty
-about the software, its performance or its conformity to any specification.
-
-|<--- this code is formatted to fit into 80 columns --->|
-|<--- this code is formatted to fit into 80 columns --->|
-|<--- this code is formatted to fit into 80 columns --->|
-
-*/
-
-package tracing.lib;
-
-import java.io.PrintStream;
-import org.aspectj.lang.JoinPoint;
-
-
-/**
- * This class provides support for printing trace messages into a stream.
- * The trace messages consist of the class name, method name (if method)
- * and the list of parameter types.<P>
- * The class is thread-safe. Different threads may use different output streams
- * by simply calling the method initStream(myStream).<P>
- * This class should be extended.
- * It defines 3 abstract crosscuts for injecting the tracing functionality
- * into any constructors and methods of any application classes.<P>
- *
- * One example of using this class might be
- * <PRE>
- * import tracing.lib.AbstractTrace;
- * aspect TraceMyClasses extends AbstractTrace of eachJVM() {
- * pointcut classes(): within(TwoDShape) | within(Circle) | within(Square);
- * pointcut constructors(): executions(new(..));
- * pointcut methods(): executions(!abstract * *(..))
- * }
- * </PRE>
- * (Make sure .../aspectj/examples is in your classpath)
- */
-public abstract aspect AbstractTrace {
-
- /**
- * Application classes - left unspecified.
- * Subclasses should concretize this crosscut with class names.
- */
- abstract pointcut classes();
- /**
- * Constructors - left unspecified.
- * Subclasses should concretize this crosscut with constructors.
- */
- abstract pointcut constructors();
- /**
- * Methods - left unspecified.
- * Subclasses should concretize this crosscut with method names.
- */
- abstract pointcut methods();
-
- before(): classes() && constructors() {
- doTraceEntry(thisJoinPoint, true);
- }
- after(): classes() && constructors() {
- doTraceExit(thisJoinPoint, true);
- }
-
- before(): classes() && methods() {
- doTraceEntry(thisJoinPoint, false);
- }
- after(): classes() && methods() {
- doTraceExit(thisJoinPoint, false);
- }
-
- /*
- * From here on, it's an ordinary class implementation.
- * The static state is thread-safe by using ThreadLocal variables.
- */
-
- /**
- * This method initializes this thread's trace output stream.
- * By default, the output stream is System.err, and it is the same for
- * all threads. In multithreaded applications, you may want to define
- * different output streams for the different threads. For doing it,
- * simply call this method in the beginning of each thread's main loop,
- * giving it different output streams.
- */
- public void initStream(PrintStream _stream) {
- setStream(_stream);
- }
-
-
- private ThreadLocal stream = new ThreadLocal() {
- protected Object initialValue() {
- return System.err;
- }
- };
- private ThreadLocal callDepth = new ThreadLocal() {
- protected Object initialValue() {
- return new Integer(0);
- }
- };
-
- private PrintStream getStream() {
- return (PrintStream)stream.get();
- }
- private void setStream(PrintStream s) {
- stream.set(s);
- }
- private int getCallDepth() {
- return ((Integer)(callDepth.get())).intValue();
- }
- private void setCallDepth(int n) {
- callDepth.set(new Integer(n));
- }
-
- private void doTraceEntry (JoinPoint jp, boolean isConstructor) {
- setCallDepth(getCallDepth() + 1);
- printEntering(jp, isConstructor);
- }
-
- private void doTraceExit (JoinPoint jp, boolean isConstructor) {
- printExiting(jp, isConstructor);
- setCallDepth(getCallDepth() - 1);
- }
-
- private void printEntering (JoinPoint jp, boolean isConstructor) {
- printIndent();
- getStream().print("--> ");
- getStream().print(jp);
- // printParameterTypes(jp);
- getStream().println();
- }
-
- private void printExiting (JoinPoint jp, boolean isConstructor) {
- printIndent();
- getStream().print("<-- ");
- getStream().print(jp);
- // printParameterTypes(jp);
- getStream().println();
- }
-
-// private void printParameterTypes(JoinPoint jp) {
-// Class[] ptypes = jp.parameterTypes;
-
-// getStream().print("(");
-// for (int i = 0; i < ptypes.length; i++) {
-// getStream().print(ptypes[i].getName());
-// if (i < ptypes.length - 1) getStream().print(", ");
-// }
-// getStream().print(")");
-// }
-
- private void printIndent() {
- for (int i = 0; i < getCallDepth(); i++)
- getStream().print(" ");
- }
-
- /**
- * This method is not being used.
- * It's being included solely for illustrating how to access and use
- * the information in JoinPoint.
- * If you want, you can replace the calls to printParameterTypes (above)
- * by calls to this method.
- */
-// private void printParameters(JoinPoint jp) {
-// Class[] ptypes = jp.parameterTypes;
-// String[] pnames = jp.parameterNames;
-// Object[] params = jp.parameters;
-
-// getStream().print("(");
-// for (int i = 0; i < ptypes.length; i++) {
-// getStream().print(ptypes[i].getName() + " " +
-// pnames[i] + "=" +
-// params[i]);
-// if (i < ptypes.length - 1) getStream().print(", ");
-// }
-// getStream().print(")");
-// }
-
-}
-
diff --git a/docs/modules/ROOT/pages/examples/tracing/lib/TraceMyClasses.java b/docs/modules/ROOT/pages/examples/tracing/lib/TraceMyClasses.java
deleted file mode 100644
index 95c3a859c..000000000
--- a/docs/modules/ROOT/pages/examples/tracing/lib/TraceMyClasses.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
-
-Copyright (c) Xerox Corporation 1998-2002. All rights reserved.
-
-Use and copying of this software and preparation of derivative works based
-upon this software are permitted. Any distribution of this software or
-derivative works must comply with all applicable United States export control
-laws.
-
-This software is made available AS IS, and Xerox Corporation makes no warranty
-about the software, its performance or its conformity to any specification.
-
-|<--- this code is formatted to fit into 80 columns --->|
-|<--- this code is formatted to fit into 80 columns --->|
-|<--- this code is formatted to fit into 80 columns --->|
-
-*/
-
-package tracing.lib;
-
-import tracing.TwoDShape;
-import tracing.Circle;
-import tracing.Square;
-import tracing.ExampleMain;
-
-import java.io.FileOutputStream;
-import java.io.PrintStream;
-import java.io.FileNotFoundException;
-
-aspect TraceMyClasses extends AbstractTrace {
- /**
- * The application classes
- */
- pointcut classes(): within(TwoDShape) || within(Circle) || within(Square);
- /**
- * The constructors in those classes - but only the ones with 3
- * arguments.
- */
- pointcut constructors(): execution(new(double, double, double));
- /**
- * This specifies all the message executions.
- */
- pointcut methods(): execution(* *(..));
-
- /**
- * A main function for testing the trace aspect.
- */
- public static void main(String[] _args) {
- final String[] args = _args;
- new Thread() {
- public void run() {
- TraceMyClasses.aspectOf().initStream(System.err);
- ExampleMain.main(args);
- }
- }.start();
-
- new Thread() {
- public void run() {
- try {
- TraceMyClasses.aspectOf().initStream(new PrintStream(new FileOutputStream("AJTRACETEST")));
- }
- catch (FileNotFoundException e) {}
- ExampleMain.main(args);
- }
- }.start();
- }
-}
diff --git a/docs/modules/ROOT/pages/examples/tracing/notrace.lst b/docs/modules/ROOT/pages/examples/tracing/notrace.lst
deleted file mode 100644
index ebd820352..000000000
--- a/docs/modules/ROOT/pages/examples/tracing/notrace.lst
+++ /dev/null
@@ -1,4 +0,0 @@
-TwoDShape.java
-Circle.java
-Square.java
-ExampleMain.java
diff --git a/docs/modules/ROOT/pages/examples/tracing/tracelib.lst b/docs/modules/ROOT/pages/examples/tracing/tracelib.lst
deleted file mode 100644
index a9a494d10..000000000
--- a/docs/modules/ROOT/pages/examples/tracing/tracelib.lst
+++ /dev/null
@@ -1,6 +0,0 @@
-TwoDShape.java
-Circle.java
-Square.java
-ExampleMain.java
-lib/AbstractTrace.java
-lib/TraceMyClasses.java
diff --git a/docs/modules/ROOT/pages/examples/tracing/tracev1.lst b/docs/modules/ROOT/pages/examples/tracing/tracev1.lst
deleted file mode 100644
index 35a95c46f..000000000
--- a/docs/modules/ROOT/pages/examples/tracing/tracev1.lst
+++ /dev/null
@@ -1,6 +0,0 @@
-TwoDShape.java
-Circle.java
-Square.java
-ExampleMain.java
-version1/Trace.java
-version1/TraceMyClasses.java
diff --git a/docs/modules/ROOT/pages/examples/tracing/tracev2.lst b/docs/modules/ROOT/pages/examples/tracing/tracev2.lst
deleted file mode 100644
index e37fe1a11..000000000
--- a/docs/modules/ROOT/pages/examples/tracing/tracev2.lst
+++ /dev/null
@@ -1,6 +0,0 @@
-TwoDShape.java
-Circle.java
-Square.java
-ExampleMain.java
-version2/Trace.java
-version2/TraceMyClasses.java
diff --git a/docs/modules/ROOT/pages/examples/tracing/tracev3.lst b/docs/modules/ROOT/pages/examples/tracing/tracev3.lst
deleted file mode 100644
index 2804f306d..000000000
--- a/docs/modules/ROOT/pages/examples/tracing/tracev3.lst
+++ /dev/null
@@ -1,6 +0,0 @@
-TwoDShape.java
-Circle.java
-Square.java
-ExampleMain.java
-version3/Trace.java
-version3/TraceMyClasses.java
diff --git a/docs/modules/ROOT/pages/examples/tracing/version1/Trace.java b/docs/modules/ROOT/pages/examples/tracing/version1/Trace.java
deleted file mode 100644
index 97b5edb3f..000000000
--- a/docs/modules/ROOT/pages/examples/tracing/version1/Trace.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
-Copyright (c) Xerox Corporation 1998-2002. All rights reserved.
-
-Use and copying of this software and preparation of derivative works based
-upon this software are permitted. Any distribution of this software or
-derivative works must comply with all applicable United States export control
-laws.
-
-This software is made available AS IS, and Xerox Corporation makes no warranty
-about the software, its performance or its conformity to any specification.
-*/
-
-package tracing.version1;
-
-import java.io.PrintStream;
-
-/**
- *
- * This class provides some basic functionality for printing trace messages
- * into a stream.
- *
- */
-public class Trace {
- /**
- * There are 3 trace levels (values of TRACELEVEL):
- * 0 - No messages are printed
- * 1 - Trace messages are printed, but there is no indentation
- * according to the call stack
- * 2 - Trace messages are printed, and they are indented
- * according to the call stack
- */
- public static int TRACELEVEL = 0;
- protected static PrintStream stream = null;
- protected static int callDepth = 0;
-
- /**
- * Initialization.
- */
- public static void initStream(PrintStream s) {
- stream = s;
- }
-
- /**
- * Prints an "entering" message. It is intended to be called in the
- * beginning of the blocks to be traced.
- */
- public static void traceEntry(String str) {
- if (TRACELEVEL == 0) return;
- if (TRACELEVEL == 2) callDepth++;
- printEntering(str);
- }
-
- /**
- * Prints an "exiting" message. It is intended to be called in the
- * end of the blocks to be traced.
- */
- public static void traceExit(String str) {
- if (TRACELEVEL == 0) return;
- printExiting(str);
- if (TRACELEVEL == 2) callDepth--;
- }
-
- private static void printEntering(String str) {
- printIndent();
- stream.println("--> " + str);
- }
-
- private static void printExiting(String str) {
- printIndent();
- stream.println("<-- " + str);
- }
-
- private static void printIndent() {
- for (int i = 0; i < callDepth; i++)
- stream.print(" ");
- }
-}
diff --git a/docs/modules/ROOT/pages/examples/tracing/version1/TraceMyClasses.java b/docs/modules/ROOT/pages/examples/tracing/version1/TraceMyClasses.java
deleted file mode 100644
index 736e96413..000000000
--- a/docs/modules/ROOT/pages/examples/tracing/version1/TraceMyClasses.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
-Copyright (c) Xerox Corporation 1998-2002. All rights reserved.
-
-Use and copying of this software and preparation of derivative works based
-upon this software are permitted. Any distribution of this software or
-derivative works must comply with all applicable United States export control
-laws.
-
-This software is made available AS IS, and Xerox Corporation makes no warranty
-about the software, its performance or its conformity to any specification.
-*/
-
-package tracing.version1;
-
-/**
- *
- * This class connects the tracing functions in the Trace class with
- * the constructors and methods in the application classes.
- *
- */
-import tracing.TwoDShape;
-import tracing.Circle;
-import tracing.Square;
-import tracing.ExampleMain;
-
-aspect TraceMyClasses {
- /**
- * Application classes.
- */
- pointcut myClass(): within(TwoDShape) || within(Circle) || within(Square);
- /**
- * The constructors in those classes.
- */
- pointcut myConstructor(): myClass() && execution(new(..));
- /**
- * The methods of those classes.
- */
- pointcut myMethod(): myClass() && execution(* *(..));
-
- /**
- * Prints trace messages before and after executing constructors.
- */
- before (): myConstructor() {
- Trace.traceEntry("" + thisJoinPointStaticPart.getSignature());
- }
- after(): myConstructor() {
- Trace.traceExit("" + thisJoinPointStaticPart.getSignature());
- }
-
- /**
- * Prints trace messages before and after executing methods.
- */
- before (): myMethod() {
- Trace.traceEntry("" + thisJoinPointStaticPart.getSignature());
- }
- after(): myMethod() {
- Trace.traceExit("" + thisJoinPointStaticPart.getSignature());
- }
-
- /**
- * A main function for testing the trace aspect.
- */
- public static void main(String[] args) {
- Trace.TRACELEVEL = 2;
- Trace.initStream(System.err);
- ExampleMain.main(args);
- }
-}
-
diff --git a/docs/modules/ROOT/pages/examples/tracing/version2/Trace.java b/docs/modules/ROOT/pages/examples/tracing/version2/Trace.java
deleted file mode 100644
index 6c43d60f8..000000000
--- a/docs/modules/ROOT/pages/examples/tracing/version2/Trace.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
-Copyright (c) Xerox Corporation 1998-2002. All rights reserved.
-
-Use and copying of this software and preparation of derivative works based
-upon this software are permitted. Any distribution of this software or
-derivative works must comply with all applicable United States export control
-laws.
-
-This software is made available AS IS, and Xerox Corporation makes no warranty
-about the software, its performance or its conformity to any specification.
-*/
-
-package tracing.version2;
-
-import java.io.PrintStream;
-
-/**
- *
- * This class provides support for printing trace messages into a stream.
- * Trace messages are printed before and after constructors and methods
- * are executed.
- * It defines one abstract crosscut for injecting that tracing functionality
- * into any application classes.
- * To use it, provide a subclass that concretizes the abstract crosscut.
- */
-abstract aspect Trace {
-
- /*
- * Functional part
- */
-
- /**
- * There are 3 trace levels (values of TRACELEVEL):
- * 0 - No messages are printed
- * 1 - Trace messages are printed, but there is no indentation
- * according to the call stack
- * 2 - Trace messages are printed, and they are indented
- * according to the call stack
- */
- public static int TRACELEVEL = 2;
- protected static PrintStream stream = System.err;
- protected static int callDepth = 0;
-
- /**
- * Initialization.
- */
- public static void initStream(PrintStream s) {
- stream = s;
- }
-
- protected static void traceEntry(String str) {
- if (TRACELEVEL == 0) return;
- if (TRACELEVEL == 2) callDepth++;
- printEntering(str);
- }
-
- protected static void traceExit(String str) {
- if (TRACELEVEL == 0) return;
- printExiting(str);
- if (TRACELEVEL == 2) callDepth--;
- }
-
- private static void printEntering(String str) {
- printIndent();
- stream.println("--> " + str);
- }
-
- private static void printExiting(String str) {
- printIndent();
- stream.println("<-- " + str);
- }
-
-
- private static void printIndent() {
- for (int i = 0; i < callDepth; i++)
- stream.print(" ");
- }
-
-
- /*
- * Crosscut part
- */
-
- /**
- * Application classes - left unspecified.
- * Subclasses should concretize this pointcut with class names.
- */
- abstract pointcut myClass();
- /**
- * The constructors in those classes.
- */
- pointcut myConstructor(): myClass() && execution(new(..));
- /**
- * The methods of those classes.
- */
- pointcut myMethod(): myClass() && execution(* *(..));
-
- /**
- * Prints trace messages before and after executing constructors.
- */
- before(): myConstructor() {
- traceEntry("" + thisJoinPointStaticPart.getSignature());
- }
- after(): myConstructor() {
- traceExit("" + thisJoinPointStaticPart.getSignature());
- }
-
- /**
- * Prints trace messages before and after executing methods.
- */
- before(): myMethod() {
- traceEntry("" + thisJoinPointStaticPart.getSignature());
- }
- after(): myMethod() {
- traceExit("" + thisJoinPointStaticPart.getSignature());
- }
-}
diff --git a/docs/modules/ROOT/pages/examples/tracing/version2/TraceMyClasses.java b/docs/modules/ROOT/pages/examples/tracing/version2/TraceMyClasses.java
deleted file mode 100644
index d9ba21c54..000000000
--- a/docs/modules/ROOT/pages/examples/tracing/version2/TraceMyClasses.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
-Copyright (c) Xerox Corporation 1998-2002. All rights reserved.
-
-Use and copying of this software and preparation of derivative works based
-upon this software are permitted. Any distribution of this software or
-derivative works must comply with all applicable United States export control
-laws.
-
-This software is made available AS IS, and Xerox Corporation makes no warranty
-about the software, its performance or its conformity to any specification.
-*/
-
-package tracing.version2;
-
-import tracing.TwoDShape;
-import tracing.Circle;
-import tracing.Square;
-import tracing.ExampleMain;
-
-/**
- *
- * This class concretizes the abstract crosscut in Trace,
- * applying the trace facility to these application classes.
- *
- */
-public aspect TraceMyClasses extends Trace {
- pointcut myClass(): within(TwoDShape) || within(Circle) || within(Square);
-
- /**
- * A main function for testing the trace aspect.
- */
- public static void main(String[] args) {
- Trace.TRACELEVEL = 2;
- Trace.initStream(System.err);
- ExampleMain.main(args);
- }
-}
diff --git a/docs/modules/ROOT/pages/examples/tracing/version3/Trace.java b/docs/modules/ROOT/pages/examples/tracing/version3/Trace.java
deleted file mode 100644
index 8fc9d8613..000000000
--- a/docs/modules/ROOT/pages/examples/tracing/version3/Trace.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
-
-Copyright (c) Xerox Corporation 1998-2002. All rights reserved.
-
-Use and copying of this software and preparation of derivative works based
-upon this software are permitted. Any distribution of this software or
-derivative works must comply with all applicable United States export control
-laws.
-
-This software is made available AS IS, and Xerox Corporation makes no warranty
-about the software, its performance or its conformity to any specification.
-
-|<--- this code is formatted to fit into 80 columns --->|
-|<--- this code is formatted to fit into 80 columns --->|
-|<--- this code is formatted to fit into 80 columns --->|
-
-*/
-
-package tracing.version3;
-
-import java.io.PrintStream;
-
-/**
- *
- * This class provides support for printing trace messages into a stream.
- * Trace messages are printed before and after constructors and methods
- * are executed.
- * The messages are appended with the string representation of the objects
- * whose constructors and methods are being traced.
- * It defines one abstract pointcut for injecting that tracing functionality
- * into any application classes.
- *
- */
-abstract aspect Trace {
-
- /*
- * Functional part
- */
-
- /**
- * There are 3 trace levels (values of TRACELEVEL):
- * 0 - No messages are printed
- * 1 - Trace messages are printed, but there is no indentation
- * according to the call stack
- * 2 - Trace messages are printed, and they are indented
- * according to the call stack
- */
- public static int TRACELEVEL = 0;
- protected static PrintStream stream = null;
- protected static int callDepth = 0;
-
- /**
- * Initialization.
- */
- public static void initStream(PrintStream s) {
- stream = s;
- }
-
- protected static void traceEntry(String str, Object o) {
- if (TRACELEVEL == 0) return;
- if (TRACELEVEL == 2) callDepth++;
- printEntering(str + ": " + o.toString());
- }
-
- protected static void traceExit(String str, Object o) {
- if (TRACELEVEL == 0) return;
- printExiting(str + ": " + o.toString());
- if (TRACELEVEL == 2) callDepth--;
- }
-
- private static void printEntering(String str) {
- printIndent();
- stream.println("--> " + str);
- }
-
- private static void printExiting(String str) {
- printIndent();
- stream.println("<-- " + str);
- }
-
-
- private static void printIndent() {
- for (int i = 0; i < callDepth; i++)
- stream.print(" ");
- }
-
-
- /*
- * Crosscut part
- */
-
- /**
- * Application classes - left unspecified.
- */
- abstract pointcut myClass(Object obj);
- /**
- * The constructors in those classes.
- */
- pointcut myConstructor(Object obj): myClass(obj) && execution(new(..));
- /**
- * The methods of those classes.
- */
- // toString is called from within our advice, so we shouldn't
- // advise its executions. But if toString is overridden, even
- // this might not be enough, so we might want
- // && !cflow(execution(String toString()))
- pointcut myMethod(Object obj): myClass(obj) &&
- execution(* *(..)) && !execution(String toString());
-
- before(Object obj): myConstructor(obj) {
- traceEntry("" + thisJoinPointStaticPart.getSignature(), obj);
- }
- after(Object obj): myConstructor(obj) {
- traceExit("" + thisJoinPointStaticPart.getSignature(), obj);
- }
-
- before(Object obj): myMethod(obj) {
- traceEntry("" + thisJoinPointStaticPart.getSignature(), obj);
- }
- after(Object obj): myMethod(obj) {
- traceExit("" + thisJoinPointStaticPart.getSignature(), obj);
- }
-}
diff --git a/docs/modules/ROOT/pages/examples/tracing/version3/TraceMyClasses.java b/docs/modules/ROOT/pages/examples/tracing/version3/TraceMyClasses.java
deleted file mode 100644
index c986d2615..000000000
--- a/docs/modules/ROOT/pages/examples/tracing/version3/TraceMyClasses.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
-
-Copyright (c) Xerox Corporation 1998-2002. All rights reserved.
-
-Use and copying of this software and preparation of derivative works based
-upon this software are permitted. Any distribution of this software or
-derivative works must comply with all applicable United States export control
-laws.
-
-This software is made available AS IS, and Xerox Corporation makes no warranty
-about the software, its performance or its conformity to any specification.
-
-|<--- this code is formatted to fit into 80 columns --->|
-|<--- this code is formatted to fit into 80 columns --->|
-|<--- this code is formatted to fit into 80 columns --->|
-
-*/
-
-package tracing.version3;
-
-import tracing.TwoDShape;
-import tracing.Circle;
-import tracing.Square;
-import tracing.ExampleMain;
-
-/**
- *
- * This class concretizes the abstract crosscut in Trace,
- * applying the trace facility to these application classes.
- *
- */
-public aspect TraceMyClasses extends Trace {
- pointcut myClass(Object obj):
- this(obj) &&
- (within(TwoDShape) || within(Circle) || within(Square));
-
- /**
- * A main function for testing the trace aspect.
- */
- public static void main(String[] args) {
- Trace.TRACELEVEL = 2;
- Trace.initStream(System.err);
- ExampleMain.main(args);
- }
-}
-