#!/bin/sh

# ----------------------------------------------------------------------------------
# Copyright (c) Jonas Bonr, Alexandre Vasseur. All rights reserved.
# http://aspectwerkz.codehaus.org
# ----------------------------------------------------------------------------------
# The software in this package is published under the terms of the LGPL style license
# a copy of which has been included with this distribution in the license.txt file.
# ----------------------------------------------------------------------------------

ASPECTWERKZ_VERSION=0.10.RC2
ASPECTWERKZ_LIBS=$ASPECTWERKZ_HOME/lib/asm-1.4.2.jar:$ASPECTWERKZ_HOME/lib/dom4j-1.4.jar:$ASPECTWERKZ_HOME/lib/qdox-1.3.jar:$ASPECTWERKZ_HOME/lib/concurrent-1.3.1.jar:$ASPECTWERKZ_HOME/lib/trove-1.0.2.jar:$ASPECTWERKZ_HOME/lib/piccolo-1.03.jar:$ASPECTWERKZ_HOME/lib/jrexx-1.1.1.jar

usage() {
	if [ -z "$ASPECTWERKZ_HOME" ]; then
		echo "Please specify the ASPECTWERKZ_HOME environment variable"
	else
		if [ -r "$ASPECTWERKZ_HOME/bin/usage.txt" ]
		then
			cat "$ASPECTWERKZ_HOME/bin/usage.txt"
		else
			echo "ASPECTWERKZ_HOME does not point to the aspectwerkz distribution"
		fi
	fi
	exit 1
}

if [ -z "$1" -o -z "$ASPECTWERKZ_HOME" ]; then
	usage
fi
if [ -z "$JAVA_HOME" ]; then
    echo Please specify the JAVA_HOME environment variable
    exit 1;
fi
if [ -z "$CLASSPATH" ]; then
	CLASSPATH="."
fi
if [ -z "$JAVA_COMMAND" ]; then
	JAVA_COMMAND="$JAVA_HOME/bin/java"
fi

if [ "$1" != "-offline" ]; then
    # -Daspectwerkz.transform.verbose=yes to turn on verbose mode
    # -Daspectwerkz.transform.dump=package.foo.* to turn on dump in ./_dump of package.foo.* class
    # -Daspectwerkz.classloader.wait=10 to delay connection (launching VM)
    $JAVA_COMMAND -cp $JAVA_HOME/lib/tools.jar:$ASPECTWERKZ_HOME/lib/javassist-2.6.jar:$ASPECTWERKZ_HOME/lib/aspectwerkz-core-$ASPECTWERKZ_VERSION.jar org.codehaus.aspectwerkz.hook.ProcessStarter -Xbootclasspath/p:"$ASPECTWERKZ_HOME/lib/javassist-2.6.jar:$ASPECTWERKZ_HOME/lib/aspectwerkz-core-$ASPECTWERKZ_VERSION.jar" -cp $CLASSPATH -cp $ASPECTWERKZ_HOME/lib/aspectwerkz-$ASPECTWERKZ_VERSION.jar:$ASPECTWERKZ_LIBS -Daspectwerkz.home=$ASPECTWERKZ_HOME "$@"
    
    # sample usage for JRockit
    # $JAVA_COMMAND -Xmanagement:class=org.codehaus.aspectwerkz.extension.jrockit.JRockitPreProcessor -Xbootclasspath/p:"$ASPECTWERKZ_HOME\target\extensions.jar;$ASPECTWERKZ_HOME\lib\javassist-2.6.jar;$ASPECTWERKZ_HOME\lib\aspectwerkz-core-$ASPECTWERKZ_VERSION.jar;$ASPECTWERKZ_HOME\lib\aspectwerkz-$ASPECTWERKZ_VERSION.jar;$ASPECTWERKZ_LIBS" -Daspectwerkz.home="$ASPECTWERKZ_HOME" "$@"
    
else
    if [ "$#" -le 3 ]; then
        usage
    fi
    $JAVA_COMMAND -Daspectwerkz.transform.filter=no -Daspectwerkz.definition.file=$2 -Daspectwerkz.home=$ASPECTWERKZ_HOME -cp $ASPECTWERKZ_HOME/lib/ant-1.5.2.jar:$ASPECTWERKZ_HOME/lib/aspectwerkz-core-$ASPECTWERKZ_VERSION.jar:$ASPECTWERKZ_HOME/lib/aspectwerkz-$ASPECTWERKZ_VERSION.jar:$ASPECTWERKZ_LIBS:$ASPECTWERKZ_HOME/lib/javassist-2.6.jar org.codehaus.aspectwerkz.compiler.AspectWerkzC $3 $4 $5 $6 $7 $8 $9
fi

