<?xml version="1.0" encoding="UTF-8"?>
<project default="jar" xmlns:j="jelly:core" xmlns:maven="jelly:maven" xmlns:deploy="deploy" xmlns:ant="jelly:ant">

	<ant:property name="repo.addressing.mar.full.name" value="${repo.addressing.mar.name}-${axis2.version}.mar" />
	<ant:property name="repo.addressing.mar.path" value="${maven.repo.local}/${axis2.mar.groupid}/mars" />
	<ant:property name="repo.addressing.mar" value="${repo.addressing.mar.path}/${repo.addressing.mar.full.name}" />

	<goal name="setclasspath">
		<path id="test.classpath">
			<path refid="maven.dependency.classpath" />
		</path>
	</goal>

	<preGoal name="java:compile">
		<attainGoal name="generate:code" />
		<path id="generated.src.path">
			<pathelement location="target/src" />
		</path>
		<maven:addPath id="maven.compile.src.set" refid="generated.src.path" />
	</preGoal>
	
	<goal name="generate:code">
		<!-- Code generating for the WS-Coordination WSDL -->
		<java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
			<classpath refid="maven.dependency.classpath" />
			<arg line=" -o target -p org.apache.kandula.wscoor -g  -ss -sd -sn RegistrationService -uri schema/wscoor.wsdl" />
		</java>
		<delete file="target/src/org/apache/kandula/wscoor/RegistrationServiceSkeleton.java" />

		<java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
			<classpath refid="maven.dependency.classpath" />
			<arg line=" -o target -p org.apache.kandula.wscoor -g  -ss -sd -sn ActivationService -uri schema/wscoor.wsdl" />
		</java>
		<delete file="target/src/org/apache/kandula/wscoor/ActivationServiceSkeleton.java" />

		<!-- Code generating for the WS-AT WSDL -->
		<java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
			<classpath refid="maven.dependency.classpath" />
			<arg line=" -o target -p org.apache.kandula.wsat.twopc -g -ss -sd -sn Participant2PCService -uri schema/wsat.wsdl" />
		</java>
		<java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
			<classpath refid="maven.dependency.classpath" />
			<arg line=" -o target -p org.apache.kandula.wsat.twopc -g -ss -sd -sn Coordinator2PCService -uri schema/wsat.wsdl" />
		</java>
		<java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
			<classpath refid="maven.dependency.classpath" />
			<arg line=" -o target -p org.apache.kandula.wsat.completion -g -ss -sd -sn CompletionInitiator -uri schema/wsat.wsdl" />
		</java>
		<java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
			<classpath refid="maven.dependency.classpath" />
			<arg line=" -o target -p org.apache.kandula.wsat.completion -g -ss -sd -sn CompletionCoordinator -uri schema/wsat.wsdl" />
		</java>

		<!-- Code generating for the WS-BA WSDL -->
		<java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
			<classpath refid="maven.dependency.classpath" />
			<arg line=" -o target -p org.apache.kandula.wsba -g -ss -a -sd -sn BAParticipantCompletionParticipantService -uri schema/wsba.wsdl" />
		</java>
		<java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
			<classpath refid="maven.dependency.classpath" />
			<arg line=" -o target -p org.apache.kandula.wsba -g -ss -a -sd -sn BACoordinatorCompletionCoordinatorService -uri schema/wsba.wsdl" />
		</java>
		<java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
			<classpath refid="maven.dependency.classpath" />
			<arg line=" -o target -p org.apache.kandula.wsba -g -ss -a -sd -sn BACoordinatorCompletionParticipantService -uri schema/wsba.wsdl" />
		</java>
		<java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
			<classpath refid="maven.dependency.classpath" />
			<arg line=" -o target -p org.apache.kandula.wsba -g -ss -a -sd -sn BAParticipantCompletionCoordinatorService -uri schema/wsba.wsdl" />
		</java>
		<delete>
			<fileset dir="target/src/org/apache/kandula/wsba">
				<include name="*Skeleton.java" />
			</fileset>
		</delete>

		<!-- Code generating for the Testing Service -->
		<java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
			<classpath refid="maven.dependency.classpath" />
			<arg line=" -o target -p org.apache.kandula.integration -g -ss -sd -uri test-resources/KandulaDemoService/KandulaDemoService.wsdl" />
		</java>
	</goal>
	
	<postGoal name="test:compile">
		<attainGoal name="create:packages" />
	</postGoal>

	<goal name="create:packages">
		<mkdir dir="${basedir}/target/lib" />
		<deploy:copy-deps todir="${basedir}/target/lib" />

		<echo message="----------------Creating ActivationCoordinator.aar----------------" />
		<mkdir dir="target/services/ActivationCoordinator/META-INF" />
		<copy file="conf/ActivationCoordinator/META-INF/services.xml" tofile="target/services/ActivationCoordinator/META-INF/services.xml" />
		<jar jarfile="target/ActivationCoordinator.aar" basedir="target/services/ActivationCoordinator">
			<include name="**" />
		</jar>

		<echo message="----------------Creating AtomicTransactionCoordinator.aar----------------" />
		<mkdir dir="target/services/AtomicTransactionCoordinator/META-INF" />
		<copy file="conf/AtomicTransactionCoordinator/META-INF/services.xml" tofile="target/services/AtomicTransactionCoordinator/META-INF/services.xml" />
		<jar jarfile="target/AtomicTransactionCoordinator.aar" basedir="target/services/AtomicTransactionCoordinator">
			<include name="**" />
		</jar>


		<echo message="----------------Creating AtomicTransactionParticipant.aar----------------" />
		<mkdir dir="target/services/AtomicTransactionParticipant/META-INF" />
		<copy file="conf/AtomicTransactionParticipant/META-INF/services.xml" tofile="target/services/AtomicTransactionParticipant/META-INF/services.xml" />
		<jar jarfile="target/AtomicTransactionParticipant.aar" basedir="target/services/AtomicTransactionParticipant">
			<include name="**" />
		</jar>


		<echo message="----------------Creating CompletionCoordinator.aar----------------" />
		<mkdir dir="target/services/CompletionCoordinator/META-INF" />
		<copy file="conf/CompletionCoordinator/META-INF/services.xml" tofile="target/services/CompletionCoordinator/META-INF/services.xml" />
		<jar jarfile="target/CompletionCoordinator.aar" basedir="target/services/CompletionCoordinator">
			<include name="**" />
		</jar>


		<echo message="----------------Creating RegistrationCoordinator.aar----------------" />
		<mkdir dir="target/services/RegistrationCoordinator/META-INF" />
		<copy file="conf/RegistrationCoordinator/META-INF/services.xml" tofile="target/services/RegistrationCoordinator/META-INF/services.xml" />
		<jar jarfile="target/RegistrationCoordinator.aar" basedir="target/services/RegistrationCoordinator">
			<include name="**" />
		</jar>
		
		<echo message="----------------Creating BACoordinator.aar----------------" />
		<mkdir dir="target/services/BACoordinator/META-INF" />
		<copy file="conf/BACoordinator/META-INF/services.xml" tofile="target/services/BACoordinator/META-INF/services.xml" />
		<jar jarfile="target/BACoordinator.aar" basedir="target/services/BACoordinator">
			<include name="**" />
		</jar>
		
		<echo message="----------------Creating BACoordinatorCompletionParticipant.aar----------------" />
		<mkdir dir="target/services/BACoordinatorCompletionParticipant/META-INF" />
		<copy file="conf/BACoordinatorCompletionParticipant/META-INF/services.xml" tofile="target/services/BACoordinatorCompletionParticipant/META-INF/services.xml" />
		<jar jarfile="target/BACoordinatorCompletionParticipant.aar" basedir="target/services/BACoordinatorCompletionParticipant">
			<include name="**" />
		</jar>

		<echo message="----------------Creating Kandula-inflow.mar----------------" />
		<mkdir dir="target/modules/kandula-inflow/META-INF" />
		<copy file="conf/inflow-module.xml" tofile="target/modules/kandula-inflow/META-INF/module.xml" />
		<jar jarfile="target/kandula-inflow-${pom.currentVersion}.mar" basedir="target/modules/kandula-inflow">
			<include name="**" />
		</jar>

		<echo message="----------------Creating Kandula-outflow.mar----------------" />
		<mkdir dir="target/modules/kandula-outflow/META-INF" />
		<copy file="conf/outflow-module.xml" tofile="target/modules/kandula-outflow/META-INF/module.xml" />
		<jar jarfile="target/kandula-outflow-${pom.currentVersion}.mar" basedir="target/modules/kandula-outflow">
			<include name="**" />
		</jar>


		<echo message="-----------Creating Coordinator+participant test repository----------" />
		<mkdir dir="target/testing-repository" />
		<copy file="target/ActivationCoordinator.aar" tofile="target/testing-repository/services/ActivationCoordinator.aar" />
		<copy file="target/AtomicTransactionCoordinator.aar" tofile="target/testing-repository/services/AtomicTransactionCoordinator.aar" />
		<copy file="target/AtomicTransactionParticipant.aar" tofile="target/testing-repository/services/AtomicTransactionParticipant.aar" />
		<copy file="target/CompletionCoordinator.aar" tofile="target/testing-repository/services/CompletionCoordinator.aar" />
		<copy file="target/RegistrationCoordinator.aar" tofile="target/testing-repository/services/RegistrationCoordinator.aar" />
		<copy file="target/BACoordinator.aar" tofile="target/testing-repository/services/BACoordinator.aar" />
		<copy file="target/BACoordinatorCompletionParticipant.aar" tofile="target/testing-repository/services/BACoordinatorCompletionParticipant.aar" />
		<mkdir dir="target/testing-repository/modules" />
		<copy file="target/kandula-inflow-${pom.currentVersion}.mar" tofile="target/testing-repository/modules/kandula-inflow-${pom.currentVersion}.mar" />
		<copy file="${repo.addressing.mar}" toDir="target/testing-repository/modules/" />
		<copy file="conf/coordinator-axis2.xml" tofile="target/testing-repository/axis2.xml" />

		<echo message="----------------Creating KandulaDemoService.aar----------------" />
		<mkdir dir="target/services/KandulaDemoService/META-INF" />
		<copy file="test-resources/KandulaDemoService/META-INF/services.xml" tofile="target/services/KandulaDemoService/META-INF/services.xml" />
		<jar jarfile="target/KandulaDemoService.aar" basedir="target/services/KandulaDemoService">
			<include name="**" />
		</jar>
		<copy file="target/KandulaDemoService.aar" tofile="target/testing-repository/services/KandulaDemoService.aar" />

		<echo message="----------------Creating KandulaBADemoService.aar----------------" />
		<mkdir dir="target/services/KandulaBADemoService/META-INF" />
		<copy file="test-resources/KandulaDemoService/META-INF/services1.xml" tofile="target/services/KandulaBADemoService/META-INF/services.xml" />
		<jar jarfile="target/KandulaBADemoService.aar" basedir="target/services/KandulaBADemoService">
			<include name="**" />
		</jar>
		<copy file="target/KandulaBADemoService.aar" tofile="target/testing-repository/services/KandulaBADemoService.aar" />

		<echo message="-----------Creating Initiator test repository----------" />
		<mkdir dir="target/initiator-repository" />
		<mkdir dir="target/initiator-repository/modules" />
		<copy file="target/kandula-outflow-${pom.currentVersion}.mar" tofile="target/initiator-repository/modules/kandula-outflow-${pom.currentVersion}.mar" />
		<copy file="${repo.addressing.mar}" toDir="target/initiator-repository/modules/" />
		<copy file="conf/initiator-axis2.xml" tofile="target/initiator-repository/axis2.xml" />

	</goal>

</project>
