#!/bin/sh
#
#   include environment
#
. setenv.sh

inclusions=":StringElement:"

APP=databinding_xfire_121

#
#  skipped patterns
#
exclusions=$(xsltproc $EXAMPLES_DIR/exclusions.xsl toolkit.xml)

xsltproc  \
    --stringparam exclude "$exclusions" \
    --stringparam include "$inclusions" \
    $EXAMPLES_DIR/examples2wsdl.xsl \
    $EXAMPLES_DIR/examples.xml > examples.wsdl

#
#  create war file
#
rm -rf $APP $APP.war

mkdir -p $APP/WEB-INF/lib
mkdir -p $APP/WEB-INF/classes
cp $XFIRE_HOME/*.jar $APP/WEB-INF/lib
cp $XFIRE_HOME/lib/*.jar $APP/WEB-INF/lib
rm $APP/WEB-INF/lib/*log*jar
cp web.xml $APP/WEB-INF

#
#  generate server functions
#
java org.codehaus.xfire.gen.WsGen -wsdl examples.wsdl -o $APP/WEB-INF/classes -p databinding -overwrite true

#
#  implement echo methods
#
IMP=$APP/WEB-INF/classes/databinding/ServiceImpl.java
mv ${IMP} ${IMP}.old

perl -nle '

    if (/^\s*public.*\(/) {
        $p = $_;
        $p =~ s/^.*\s([\w\d\.]*)\).*$/$1/;
    }

    if (/UnsupportedOperationException/) {
        print "    return $p;"
    }
    else {
        print
    }

' < ${IMP}.old > ${IMP}

#
# compile, this must be java 1.5 and notice the double slashes, may not be needed for non-cygwin
#
javac -verbose -d $APP/WEB-INF/classes\
 $APP/WEB-INF/classes/org/w3/_2002/ws/databinding/examples/_6/_09/*java\
 $APP/WEB-INF/classes/databinding/*java

#
# jar up the war
#
cd $APP
jar cvf ../$APP.war *
cd ..

#
# deploy
#
#export TARGET=c:/jboss-4.0.4.GA/server/default/deploy
#cp databinding.war $TARGET

export TARGET=$CATALINA_HOME/webapps
cp $APP.war $TARGET
