I have not used those directories or any files inside them at all. I hope I am not taking away anything helpful from people who prefer working with inter-linked Eclipse projects instead of Maven, but I think we will notice if anyone complains and can revert in case of an emergency. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>tags/V1_9_19
@@ -1,9 +0,0 @@ | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<classpath> | |||
<classpathentry kind="src" path="src"/> | |||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> | |||
<classpathentry kind="con" path="org.eclipse.ajdt.core.ASPECTJRT_CONTAINER"/> | |||
<classpathentry kind="src" path="testsrc"/> | |||
<classpathentry sourcepath="/lib/junit/junit-src.jar" kind="lib" path="/lib/junit/junit.jar"/> | |||
<classpathentry kind="output" path="bin"/> | |||
</classpath> |
@@ -1,158 +0,0 @@ | |||
<!-- wrapped at 70 characters, long elements wrapped --> | |||
<!-- =========================================================================== | |||
Copyright (c) 2005 Contributors. | |||
All rights reserved. | |||
This program and the accompanying materials are made available | |||
under the terms of the Eclipse Public License v 2.0 | |||
which accompanies this distribution and is available at | |||
https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt | |||
Contributors: | |||
Wes Isberg initial implementation | |||
============================================================================ --> | |||
<project name="aspectj-library" default="aspectjlib" basedir="."> | |||
<target name="aspectjlib" depends="compile" /> | |||
<target name="info"> | |||
<echo> | |||
This script builds the AspectJ library. | |||
Relevant targets: | |||
aspectjlib build library | |||
Setup: | |||
- Run from the doc/aspectjlib directory in your AspectJ distribution. | |||
The tasks in ../../lib/aspectjtools.jar are used automatically. | |||
Variants: | |||
- To define a variable, use the Ant -D option - e.g., on Windows: | |||
ant -f build.xml -DJAVA_HOME=c:\jdk1.3.1 -Dnorun=skip | |||
</echo> | |||
</target> | |||
<!-- ============================================================= --> | |||
<!-- setup and cleanup targets --> | |||
<!-- ============================================================= --> | |||
<target name="clean" | |||
depends="init" | |||
description="clean and create classes/jar dir, .ajesym files" | |||
> | |||
<delete quiet="on" dir="${jar.dir}" /> | |||
<delete quiet="on"> | |||
<fileset dir="${org.aspectj.lib.dir}" | |||
includes="**/*.ajesym" | |||
/> | |||
</delete> | |||
<mkdir dir="${jar.dir}" /> | |||
</target> | |||
<target name="init" depends="init.variables,init.taskdefs" /> | |||
<target name="init.variables" description="init variables"> | |||
<property name="org.aspectj.lib.dir" location="${basedir}" /> | |||
<property name="src.dir" | |||
location="${org.aspectj.lib.dir}/src" | |||
/> | |||
<!-- find AspectJ lib dir in distribution or AspectJ CVS tree --> | |||
<property name="aspectj.dist.lib" | |||
location="${basedir}/../../lib" | |||
/> | |||
<property name="aspectj.tree.lib" | |||
location="${basedir}/../lib/aspectj/lib" | |||
/> | |||
<condition property="aspectj.lib.dir" | |||
value="${aspectj.dist.lib}" | |||
> | |||
<available file="${aspectj.dist.lib}/aspectjtools.jar" /> | |||
</condition> | |||
<condition property="aspectj.lib.dir" | |||
value="${aspectj.tree.lib}" | |||
> | |||
<available file="${aspectj.tree.lib}/aspectjtools.jar" /> | |||
</condition> | |||
<property name="aspectjrt.jar" | |||
location="${aspectj.lib.dir}/aspectjrt.jar" | |||
/> | |||
<property name="aspectjtools.jar" | |||
location="${aspectj.lib.dir}/aspectjtools.jar" | |||
/> | |||
<property name="aspectjweaver.jar" | |||
location="${aspectj.lib.dir}/aspectjweaver.jar" | |||
/> | |||
<property name="jar.dir" | |||
location="${org.aspectj.lib.dir}/jars" | |||
/> | |||
<property name="aspectjlib.out.jar" | |||
location="${jar.dir}/aspectjlib.out.jar" | |||
/> | |||
<available file="${aspectjtools.jar}" | |||
property="aspectjtools.jar.available" | |||
/> | |||
<available file="${aspectjrt.jar}" | |||
property="aspectjrt.jar.available" | |||
/> | |||
<property name="library.packages" value="org.aspectj.lib" /> | |||
</target> | |||
<target name="init.taskdefs" | |||
depends="init.variables, | |||
aspectjtools.jar.available, | |||
aspectjrt.jar.available" | |||
unless="taskdefs.init" | |||
> | |||
<taskdef resource="org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties" | |||
> | |||
<classpath> | |||
<pathelement path="${aspectjtools.jar}" /> | |||
</classpath> | |||
</taskdef> | |||
<property name="taskdefs.init" value="true" /> | |||
</target> | |||
<target name="aspectjrt.jar.available" | |||
depends="init.variables" | |||
unless="aspectjrt.jar.available" | |||
> | |||
<fail message="expecting aspectjrt.jar at ${aspectjrt.jar}" /> | |||
</target> | |||
<target name="aspectjtools.jar.available" | |||
depends="init.variables" | |||
unless="aspectjtools.jar.available" | |||
> | |||
<fail message="expecting aspectjtools.jar at ${aspectjtools.jar}" | |||
/> | |||
</target> | |||
<target name="compile" | |||
depends="init" | |||
description="compile library" | |||
> | |||
<antcall target="clean" /> | |||
<!-- can use ajc or iajc here --> | |||
<iajc sourceroots="${src.dir}" | |||
fork="true" | |||
forkclasspath="${aspectjtools.jar}" | |||
classpath="${aspectjrt.jar}" | |||
outjar="${aspectjlib.out.jar}" | |||
/> | |||
</target> | |||
</project> |
@@ -1,2 +0,0 @@ | |||
src.includes = src/,\ | |||
testsrc/ |
@@ -1,18 +0,0 @@ | |||
Manifest-Version: 1.0 | |||
Name: org/aspectj/lib/ | |||
Specification-Title: AspectJ Library Classes | |||
Specification-Version: @build.version.base@ | |||
Specification-Vendor: @company.name@ | |||
Implementation-Title: org.aspectj.lib | |||
Implementation-Version: @build.version@ | |||
Implementation-Vendor: @company.name@ | |||
Bundle-Name: AspectJ | |||
Bundle-Version: @build.version.base@ | |||
Import-Package: org.aspectj.lib,org.aspectj.lib.pointcuts | |||
Bundle-Copyright: (C) Copyright 2005 Contributors. | |||
All Rights Reserved. | |||
@@ -1,23 +0,0 @@ | |||
<project xmlns="http://maven.apache.org/POM/4.0.0" | |||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> | |||
<modelVersion>4.0.0</modelVersion> | |||
<parent> | |||
<groupId>org.aspectj</groupId> | |||
<artifactId>aspectj-parent</artifactId> | |||
<version>1.9.4</version> | |||
</parent> | |||
<artifactId>runtime</artifactId> | |||
<dependencies> | |||
<dependency> | |||
<groupId>org.aspectj</groupId> | |||
<artifactId>testing-util</artifactId> | |||
<version>${project.version}</version> | |||
<scope>test</scope> | |||
</dependency> | |||
</dependencies> | |||
</project> |
@@ -1,58 +0,0 @@ | |||
<html> | |||
<head><title>org.aspectj.lib library module</title></head> | |||
<body> | |||
<h2>org.aspectj.lib library module</h2> | |||
<p> | |||
This module has source for both <code>{AspectJ}/lib/aspectjlib.jar</code> | |||
and <code>{AspectJ}/docs/aspectjlib/*</code>. | |||
</p> | |||
<h3>Building {AspectJ}/lib/aspectjlib.jar</h3> | |||
<p> | |||
This module is compiled using AspectJ, both in Eclipse and with Ant. | |||
The Eclipse support is defined as usual in | |||
<a href=".classpath">.classpath</a> and <a href=".project">.project</a>. | |||
The Ant build support in <a href="../build/build.xml">../build/build.xml</a> | |||
is limited: | |||
</p> | |||
<ul> | |||
<li>This module is built and published as | |||
<code>{aspectj}/lib/aspectjlib.jar</code>. | |||
This happens automatically, with no explicit Ant script. | |||
The <a href="../build/src/org/aspectj/internal/tools/build/Builder.java"> | |||
Builder.java</a> | |||
task uses <code>moduleAliasFor(String)</code> to map from the name of | |||
the empty file | |||
<a href="../build/products/tools/dist/lib/aspectjlib.jar"> | |||
../build/products/tools/dist/lib/aspectjlib.jar</a> | |||
back to the module output | |||
<a href="../aj-build/jars/org.aspectj.lib.jar"> | |||
../aj-build/jars/org.aspectj.lib.jar</a>.</li> | |||
<li>The AspectJ support compiles only source files in <a href="src/">src/</a></li> | |||
<li>It does not use inpath, aspectpath, or any other aspectj-specific | |||
option</li> | |||
<li>All non-Java (resource) files in the source directory will be included | |||
in the library.</li> | |||
<li>There should be no dependencies. Any libraries or modules on | |||
the Java classpath would be included in the shipped library.</li> | |||
<li>This is built using the release of AspectJ in | |||
<a href="../lib/aspectj">../lib/aspectj</a>.</li> | |||
</ul> | |||
<h3>Building {AspectJ}/examples/aspectjlib/*</h3> | |||
<p> | |||
The docs build script <a href="../docs/build.xml">../docs/build.xml</a> | |||
is responsible for assembling sources from this directory into the docs | |||
directory. It relies on the name of the source directory and build script. | |||
Also, <code>Builder.java</code> is designed to try to use any | |||
<code>build.xml</code> to build the module, but Ant builds are now disabled. | |||
So if you change the build script name or the source directory names, update | |||
the docs build script and the builder as needed. | |||
</p> | |||
<p> | |||
The <a href="build-aspectjlib.xml">build-aspectjlib.xml</a> script looks for | |||
an AspectJ lib directory from either the distribution (aspectj/docs/aspectjlib) | |||
or from the CVS tree (modules/org.aspectj.lib), so the script can be tested | |||
in situ. | |||
</p> | |||
</body> | |||
</html> |
@@ -1,183 +0,0 @@ | |||
/* ******************************************************************* | |||
* Copyright (c) 2003-2005 Contributors. | |||
* All rights reserved. | |||
* This program and the accompanying materials are made available | |||
* under the terms of the Eclipse Public License v 2.0 | |||
* which accompanies this distribution and is available at | |||
* https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt | |||
* | |||
* Contributors: | |||
* Wes Isberg initial implementation | |||
* ******************************************************************/ | |||
// START-SAMPLE library-pointcutIdioms Standard pointcut idioms | |||
package org.aspectj.lib.pointcuts; | |||
import java.util.Collection; | |||
import java.io.PrintStream; | |||
/** | |||
* Library of pointcut idioms to use in combination with | |||
* other pointcuts. | |||
* | |||
* @author Wes Isberg | |||
*/ | |||
public final class Pointcuts { | |||
// ------- not staticly-determinable | |||
public pointcut adviceCflow() : cflow(adviceexecution()); | |||
public pointcut notInAdviceCflow() : !adviceCflow(); | |||
public pointcut cflowMainExecution() : | |||
cflow(mainExecution()); | |||
// ------- staticly-determinable | |||
public pointcut mainExecution() : | |||
execution(public static void main(String[])); | |||
/** staticly-determinable to never match any join point */ | |||
public pointcut never(); | |||
public pointcut afterAdviceSupported() : !handler(*); | |||
public pointcut aroundAdviceSupported() : !handler(*) | |||
&& !initialization(new(..)) && !preinitialization(new(..)); | |||
public pointcut anyMethodExecution() : | |||
execution(* *(..)); | |||
public pointcut anyPublicMethodExecution() : | |||
execution(public * *(..)); | |||
public pointcut anyPackageProtectedMethodExecution() : | |||
execution(!private !public !protected * *(..)); | |||
public pointcut anyNonPrivateMethodExecution() : | |||
execution(!private * *(..)); | |||
public pointcut anyConstructorExecution() : | |||
execution(new(..)); | |||
public pointcut anyPublicConstructorExecution() : | |||
execution(public new(..)); | |||
public pointcut anyNonPrivateConstructorExecution() : | |||
execution(!private new(..)); | |||
public pointcut anyPublicFieldGet() : | |||
get(public * *); | |||
public pointcut anyNonPrivateFieldGet() : | |||
get(!private * *); | |||
public pointcut anyPublicFieldSet() : | |||
set(public * *); | |||
public pointcut anyNonPrivateFieldSet() : | |||
set(!private * *); // also !transient? | |||
public pointcut withinSetter() : // require !static? | |||
withincode(void set*(*)); // use any return type? multiple parms? | |||
public pointcut withinGetter() : | |||
withincode(!void get*()); // permit parms? require !static? | |||
public pointcut anyNonPublicFieldSetOutsideConstructorOrSetter() : | |||
set(!public * *) && !withincode(new(..)) | |||
&& !withinSetter(); | |||
public pointcut anyRunnableImplementation() : | |||
staticinitialization(Runnable+); | |||
public pointcut anyGetSystemErrOut() : | |||
get(PrintStream System.err) || get(PrintStream System.out); | |||
public pointcut anySetSystemErrOut() : | |||
call(void System.setOut(..)) || call(void System.setErr(..)); | |||
public pointcut withinAnyJavaCode() : | |||
within(java..*) || within(javax..*); | |||
public pointcut notWithinJavaCode() : | |||
!withinAnyJavaCode(); | |||
public pointcut toStringExecution() : | |||
execution(String toString()) && !within(String); | |||
/** call or execution of any Thread constructor, including subclasses */ | |||
public pointcut anyThreadConstruction() : | |||
call(Thread+.new(..)) || execution(Thread+.new(..)); | |||
/** | |||
* Any calls to java.io classes | |||
* (but not methods declared only on their subclasses). | |||
*/ | |||
public pointcut anyJavaIOCalls() : | |||
call(* java.io..*.*(..)) || call(java.io..*.new(..)); | |||
/** | |||
* Any calls to java.awt or javax.swing methods or constructors | |||
* (but not methods declared only on their subclasses). | |||
*/ | |||
public pointcut anyJavaAWTOrSwingCalls() : | |||
call(* java.awt..*.*(..)) || call(java.awt..*.new(..)) | |||
|| call(* javax.swing..*.*(..)) || call(javax.swing..*.new(..)); | |||
public pointcut cloneImplementationsInNonCloneable() : | |||
execution(Object !Cloneable+.clone()); | |||
public pointcut runImplementationsInNonRunnable() : | |||
execution(void !Runnable+.run()); | |||
/** any calls to java.lang.reflect or Class.get* (except getName()) */ | |||
public pointcut anySystemReflectiveCalls() : | |||
call(* java.lang.reflect..*.*(..)) | |||
|| (!call(* Class.getName()) | |||
&& call(* Class.get*(..))); | |||
/** standard class-loading calls by Class and ClassLoader | |||
* Note that `Foo.class` in bytecode is `Class.forName("Foo")`, | |||
* so 'Foo.class' will also be picked out by this pointcut. | |||
*/ | |||
public pointcut anySystemClassLoadingCalls() : | |||
call(Class Class.forName(..)) | |||
|| call(Class ClassLoader.loadClass(..)); | |||
public pointcut anySystemProcessSpawningCalls() : | |||
call(Process Runtime.exec(..)) | |||
|| call(Class ClassLoader.loadClass(..)); | |||
/** Write methods on Collection | |||
* Warning: Does not pick out <code>iterator()</code>, even though | |||
* an Iterator can remove elements. | |||
*/ | |||
public pointcut anyCollectionWriteCalls() : | |||
call(boolean Collection+.add(Object)) | |||
|| call(boolean Collection+.addAll(Collection)) | |||
|| call(void Collection+.clear()) | |||
|| call(boolean Collection+.remove(Object)) | |||
|| call(boolean Collection+.removeAll(Collection)) | |||
|| call(boolean Collection+.retainAll(Collection)); | |||
public pointcut mostThrowableReadCalls() : | |||
call(* Throwable+.get*(..)) | |||
|| call(* Throwable+.print*(..)) | |||
|| call(String Throwable+.toString(..)); | |||
public pointcut exceptionWrappingCalls() : | |||
(args(Throwable+,..) || args(.., Throwable+)) | |||
&& (set(Throwable+ Throwable+.*) | |||
|| (call(* Throwable+.*(..)) | |||
|| call(Throwable+.new(..)))); | |||
public pointcut anyCodeThrowingException() : | |||
execution(* *(..) throws Exception+) | |||
|| execution(new(..) throws Exception+); | |||
private Pointcuts() {} | |||
} | |||
//END-SAMPLE library-pointcutIdioms | |||
@@ -1,141 +0,0 @@ | |||
/* ******************************************************************* | |||
* Copyright (c) 2005 Contributors. | |||
* All rights reserved. | |||
* This program and the accompanying materials are made available | |||
* under the terms of the Eclipse Public License v 2.0 | |||
* which accompanies this distribution and is available at | |||
* https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt | |||
* | |||
* Contributors: | |||
* Wes Isberg initial implementation | |||
* ******************************************************************/ | |||
// START-SAMPLE tracing-traceJoinPoints Trace join points executed to log | |||
package org.aspectj.lib.tracing; | |||
import org.aspectj.lang.*; | |||
import org.aspectj.lang.reflect.*; | |||
import java.io.*; | |||
/** | |||
* Print join points being executed in context to a log.xml file. | |||
* To use this, define the abstract pointcuts in a subaspect. | |||
* @author Jim Hugunin, Wes Isberg | |||
*/ | |||
public abstract aspect TraceJoinPoints | |||
extends TraceJoinPointsBase { | |||
// abstract protected pointcut entry(); | |||
PrintStream out; | |||
int logs = 0; | |||
int depth = 0; | |||
boolean terminal = false; | |||
/** | |||
* Emit a message in the log, e.g., | |||
* <pre>TraceJoinPoints tjp = TraceJoinPoints.aspectOf(); | |||
* if (null != tjp) tjp.message("Hello, World!");</pre> | |||
*/ | |||
public void message(String s) { | |||
out.println("<message>" + prepareMessage(s) + "</message>"); | |||
} | |||
protected void startLog() { | |||
makeLogStream(); | |||
} | |||
protected void completeLog() { | |||
closeLogStream(); | |||
} | |||
protected void logEnter(JoinPoint.StaticPart jp) { | |||
if (terminal) out.println(">"); | |||
indent(depth); | |||
out.print("<" + jp.getKind()); | |||
writeSig(jp); | |||
writePos(jp); | |||
depth += 1; | |||
terminal = true; | |||
} | |||
protected void logExit(JoinPoint.StaticPart jp) { | |||
depth -= 1; | |||
if (terminal) { | |||
getOut().println("/>"); | |||
} else { | |||
indent(depth); | |||
getOut().println("</" + jp.getKind() + ">"); | |||
} | |||
terminal = false; | |||
} | |||
protected PrintStream getOut() { | |||
if (null == out) { | |||
String m = "not in the control flow of entry()"; | |||
throw new IllegalStateException(m); | |||
} | |||
return out; | |||
} | |||
protected void makeLogStream() { | |||
try { | |||
String name = "log" + logs++ + ".xml"; | |||
out = new PrintStream(new FileOutputStream(name)); | |||
} catch (IOException ioe) { | |||
out = System.err; | |||
} | |||
} | |||
protected void closeLogStream() { | |||
PrintStream out = this.out; | |||
if (null != out) { | |||
out.close(); | |||
// this.out = null; | |||
} | |||
} | |||
/** @return input String formatted for XML */ | |||
protected String prepareMessage(String s) { // XXX unimplemented | |||
return s; | |||
} | |||
void message(String sink, String s) { | |||
if (null == sink) { | |||
message(s); | |||
} else { | |||
getOut().println("<message sink=" + quoteXml(sink) | |||
+ " >" + prepareMessage(s) + "</message>"); | |||
} | |||
} | |||
void writeSig(JoinPoint.StaticPart jp) { | |||
PrintStream out = getOut(); | |||
out.print(" sig="); | |||
out.print(quoteXml(jp.getSignature().toShortString())); | |||
} | |||
void writePos(JoinPoint.StaticPart jp) { | |||
SourceLocation loc = jp.getSourceLocation(); | |||
if (loc == null) return; | |||
PrintStream out = getOut(); | |||
out.print(" pos="); | |||
out.print(quoteXml(loc.getFileName() + | |||
":" + loc.getLine() + | |||
":" + loc.getColumn())); | |||
} | |||
protected String quoteXml(String s) { // XXX weak | |||
return "\"" + s.replace('<', '_').replace('>', '_') + "\""; | |||
} | |||
protected void indent(int i) { | |||
PrintStream out = getOut(); | |||
while (i-- > 0) out.print(" "); | |||
} | |||
} | |||
// END-SAMPLE tracing-traceJoinPoints | |||
@@ -1,69 +0,0 @@ | |||
/* ******************************************************************* | |||
* Copyright (c) 2005 Contributors. | |||
* All rights reserved. | |||
* This program and the accompanying materials are made available | |||
* under the terms of the Eclipse Public License v 2.0 | |||
* which accompanies this distribution and is available at | |||
* https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt | |||
* | |||
* Contributors: | |||
* Wes Isberg initial implementation | |||
* ******************************************************************/ | |||
// START-SAMPLE tracing-traceJoinPoints Trace join points executed | |||
package org.aspectj.lib.tracing; | |||
import org.aspectj.lang.JoinPoint; | |||
/** | |||
* Trace join points being executed in context. | |||
* To use this, define the abstract members in a subaspect. | |||
* <b>Warning</b>: this does not trace join points that do not | |||
* support after advice. | |||
* @author Jim Hugunin, Wes Isberg | |||
*/ | |||
abstract aspect TraceJoinPointsBase { | |||
declare precedence : TraceJoinPointsBase, *; | |||
abstract protected pointcut entry(); | |||
/** ignore join points outside this scope - use within(..) */ | |||
abstract protected pointcut withinScope(); | |||
protected pointcut exit(): withinScope() && call(* java..*.*(..)); | |||
final pointcut start(): withinScope() && entry() && !cflowbelow(entry()); | |||
final pointcut trace(): withinScope() && cflow(entry()) | |||
&& !cflowbelow(exit()) && !within(TraceJoinPointsBase+); | |||
private pointcut supportsAfterAdvice() : !handler(*) | |||
&& !preinitialization(new(..)); | |||
before(): start() { startLog(); } | |||
before(): trace() && supportsAfterAdvice(){ | |||
logEnter(thisJoinPointStaticPart); | |||
} | |||
after(): trace() && supportsAfterAdvice() { | |||
logExit(thisJoinPointStaticPart); | |||
} | |||
after(): start() { completeLog(); } | |||
abstract protected void logEnter(JoinPoint.StaticPart jp); | |||
abstract protected void logExit(JoinPoint.StaticPart jp); | |||
/** called before any logging */ | |||
abstract protected void startLog(); | |||
/** called after any logging */ | |||
abstract protected void completeLog(); | |||
} | |||
// END-SAMPLE tracing-traceJoinPoints | |||
@@ -1,29 +0,0 @@ | |||
package org.aspectj.lib; | |||
/* ******************************************************************* | |||
* Copyright (c) 2005 Contributors. | |||
* All rights reserved. | |||
* This program and the accompanying materials are made available | |||
* under the terms of the Eclipse Public License v 2.0 | |||
* which accompanies this distribution and is available at | |||
* https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt | |||
* | |||
* Contributors: | |||
* Wes Isberg initial implementation | |||
* ******************************************************************/ | |||
// default package | |||
import junit.framework.Test; | |||
import junit.framework.TestCase; | |||
import junit.framework.TestSuite; | |||
public class LibModuleTests extends TestCase { | |||
public static Test suite() { | |||
TestSuite suite = new TestSuite(LibModuleTests.class.getName()); | |||
suite.addTest(org.aspectj.lib.pointcuts.PointcutsTests.suite()); | |||
suite.addTest(org.aspectj.lib.tracing.TracingTests.suite()); | |||
return suite; | |||
} | |||
} |
@@ -1,60 +0,0 @@ | |||
/* ******************************************************************* | |||
* Copyright (c) 2005 Contributors. | |||
* All rights reserved. | |||
* This program and the accompanying materials are made available | |||
* under the terms of the Eclipse Public License v 2.0 | |||
* which accompanies this distribution and is available at | |||
* https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt | |||
* | |||
* Contributors: | |||
* Wes Isberg initial implementation | |||
* ******************************************************************/ | |||
package org.aspectj.lib.pointcuts; | |||
import junit.framework.TestCase; | |||
/** | |||
* | |||
*/ | |||
public class PointcutsTest extends TestCase { | |||
public void test_anyPublicMethodExecution() { | |||
try { | |||
Test_anyPublicMethodExecution.error(); | |||
assertTrue("no exception thrown", false); | |||
} catch (Error e) { | |||
// ok, advice worked | |||
} | |||
} | |||
private static aspect Test_anyPublicMethodExecution { | |||
public static void error() { | |||
throw new RuntimeException("wrong exception"); | |||
} | |||
static void nonpublic() {} | |||
before() : | |||
execution(static void Test_anyPublicMethodExecution.error()) | |||
&& Pointcuts.anyPublicMethodExecution() { | |||
throw new Error(""); | |||
} | |||
declare error : | |||
execution(static void Test_anyPublicMethodExecution.nonpublic()) | |||
&& Pointcuts.anyPublicMethodExecution() | |||
: "anyPublicMethodExecution failed - not public"; | |||
} | |||
private static aspect compileChecks { | |||
/** balk if Pointcuts has code - s.b. only pointcuts */ | |||
declare error : within(Pointcuts) && | |||
(set(* *) || Pointcuts.anyMethodExecution() || | |||
(Pointcuts.anyConstructorExecution() | |||
&& !execution(private Pointcuts.new()))) : | |||
"only pointcuts permitted in Pointcuts"; | |||
} | |||
} |
@@ -1,31 +0,0 @@ | |||
/* ******************************************************************* | |||
* Copyright (c) 2005 Contributors. | |||
* All rights reserved. | |||
* This program and the accompanying materials are made available | |||
* under the terms of the Eclipse Public License v 2.0 | |||
* which accompanies this distribution and is available at | |||
* https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt | |||
* | |||
* Contributors: | |||
* Wes Isberg initial implementation | |||
* ******************************************************************/ | |||
package org.aspectj.lib.pointcuts; | |||
import junit.framework.Test; | |||
import junit.framework.TestCase; | |||
import junit.framework.TestSuite; | |||
public class PointcutsTests extends TestCase { | |||
public static Test suite() { | |||
TestSuite suite = new TestSuite(PointcutsTests.class.getName()); | |||
//$JUnit-BEGIN$ | |||
suite.addTestSuite(PointcutsTest.class); | |||
//$JUnit-END$ | |||
return suite; | |||
} | |||
public PointcutsTests(String name) { super(name); } | |||
} |
@@ -1,83 +0,0 @@ | |||
/* ******************************************************************* | |||
* Copyright (c) 2005 Contributors. | |||
* All rights reserved. | |||
* This program and the accompanying materials are made available | |||
* under the terms of the Eclipse Public License v 2.0 | |||
* which accompanies this distribution and is available at | |||
* https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt | |||
* | |||
* Contributors: | |||
* Wes Isberg initial implementation | |||
* ******************************************************************/ | |||
package org.aspectj.lib.tracing; | |||
import junit.framework.TestCase; | |||
import org.aspectj.lang.JoinPoint.StaticPart; | |||
/** | |||
* | |||
*/ | |||
public class TraceJoinPointsTest extends TestCase { | |||
public void testTraceJoinPoints() { | |||
checkTjp(); | |||
TestTJP aspect = TestTJP.aspectOf(); | |||
assertNotNull("aspect", aspect); | |||
assertTrue("checked", aspect.checked); | |||
} | |||
static final int NUMJP = 1; | |||
static void checkTjp() { | |||
// NUMJP: only 1 join point | |||
long l = System.currentTimeMillis(); | |||
} | |||
/** poor design/test */ | |||
static aspect TestTJP extends TraceJoinPoints { | |||
protected pointcut withinScope() : within(TraceJoinPointsTest) | |||
&& !within(TestTJP); | |||
pointcut traceJoinPoints() : | |||
execution(static void TraceJoinPointsTest.testTraceJoinPoints()); | |||
protected pointcut entry() : | |||
execution(static void TraceJoinPointsTest.checkTjp()); | |||
boolean checked; | |||
int logEnter = 10; | |||
int logExit = 10; | |||
int startLog = 10; | |||
int completeLog = 10; | |||
protected void logEnter(StaticPart jp) { | |||
logEnter++; | |||
} | |||
protected void logExit(StaticPart jp) { | |||
logExit++; | |||
} | |||
protected void startLog() { | |||
startLog = 0; | |||
completeLog = 0; | |||
logEnter = 0; | |||
logExit = 0; | |||
startLog++; | |||
} | |||
protected void completeLog() { | |||
completeLog++; | |||
} | |||
after() returning : entry() { | |||
assertEquals("startLog", 1, startLog); | |||
assertEquals("completeLog", 1, startLog); | |||
assertEquals("logExit", NUMJP, startLog); | |||
assertEquals("logEntry", NUMJP, startLog); | |||
assertTrue(!checked); | |||
checked = true; | |||
} | |||
} | |||
} |
@@ -1,29 +0,0 @@ | |||
/* ******************************************************************* | |||
* Copyright (c) 2005 Contributors. | |||
* All rights reserved. | |||
* This program and the accompanying materials are made available | |||
* under the terms of the Eclipse Public License v 2.0 | |||
* which accompanies this distribution and is available at | |||
* https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt | |||
* | |||
* Contributors: | |||
* Wes Isberg initial implementation | |||
* ******************************************************************/ | |||
package org.aspectj.lib.tracing; | |||
import junit.framework.Test; | |||
import junit.framework.TestCase; | |||
import junit.framework.TestSuite; | |||
public class TracingTests extends TestCase { | |||
public static Test suite() { | |||
TestSuite suite = new TestSuite(TracingTests.class.getName()); | |||
//$JUnit-BEGIN$ | |||
suite.addTestSuite(TraceJoinPointsTest.class); | |||
//$JUnit-END$ | |||
return suite; | |||
} | |||
} |
@@ -1,5 +0,0 @@ | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<classpath> | |||
<classpathentry kind="src" path=""/> | |||
<classpathentry kind="output" path=""/> | |||
</classpath> |
@@ -1,17 +0,0 @@ | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<projectDescription> | |||
<name>shadows.org.eclipse.jdt.core</name> | |||
<comment></comment> | |||
<projects> | |||
</projects> | |||
<buildSpec> | |||
<buildCommand> | |||
<name>org.eclipse.jdt.core.javabuilder</name> | |||
<arguments> | |||
</arguments> | |||
</buildCommand> | |||
</buildSpec> | |||
<natures> | |||
<nature>org.eclipse.jdt.core.javanature</nature> | |||
</natures> | |||
</projectDescription> |
@@ -1,17 +0,0 @@ | |||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> | |||
<html> | |||
<head> | |||
<title>Placeholder for the Shadow version Eclipse JDT compiler</title> | |||
</head> | |||
<body> | |||
<h1>Placeholder for the Shadow version of the Eclipse JDT Compiler</h1> | |||
<p>This module is here so that the org.eclipse.jdt.core project can | |||
fulfill its project dependencies when not working with the 'real' | |||
shadow version of org.eclipse.jdt.core (the normal mode). It contains | |||
a build.xml file that does nothing, in order to satisfy the external | |||
builder tool added to the chain of the org.eclipse.jdt.core HEAD project. | |||
</p> | |||
</body> | |||
</html> |
@@ -1,5 +0,0 @@ | |||
<project name="ShadowJdtCore" basedir="." default="make.jdtcore.jar"> | |||
<target name="make.jdtcore.jar"> | |||
<echo message="dummy build of jdtcore.jar complete."/> | |||
</target> | |||
</project> |