<project name="ShadowJdtCore" basedir="." default="make.jdtcore.jar">

	<property name="eclipse.home" value="/Users/aclement/eclipses/e432/eclipse"/>
    <property name="plugins.dir" value="${eclipse.home}/plugins"/>
    <property name="plugins.src.dir" value="${plugins.dir}/org.eclipse.platform.source_${eclipse.version}/src"/>
    <property name="aspectjtools.jar" value=""/>

	<!-- build the jdtDepends.jar and jdtDepends-src.zip files -->
    <target name="makeJdtDepends">
        <delete file="lib/jdtDepends.jar"/>
    	<mkdir dir="lib"/>
        <jar destfile="lib/jdtDepends.jar">

        	<!-- updated to Java8 in KeplerSR2 timeframe -->
        	<zipfileset src="${plugins.dir}/org.eclipse.equinox.registry_3.5.301.v20130717-1549.jar"/>
        	<zipfileset src="${plugins.dir}/org.eclipse.equinox.common_3.6.200.v20130402-1505.jar"/>
        	<zipfileset src="${plugins.dir}/org.eclipse.osgi_3.9.1.v20140110-1610.jar"/>
        	<zipfileset src="${plugins.dir}/org.eclipse.core.jobs_3.5.300.v20130429-1813.jar"/>
        	<zipfileset src="${plugins.dir}/org.eclipse.core.resources_3.8.101.v20130717-0806.jar"/>
        	<zipfileset src="${plugins.dir}/org.eclipse.core.runtime_3.9.100.v20131218-1515.jar"/>
        	<zipfileset src="${plugins.dir}/org.eclipse.equinox.preferences_3.5.100.v20130422-1538.jar"/>
        	<zipfileset src="${plugins.dir}/org.eclipse.equinox.app_1.3.100.v20130327-1442.jar"/>
        	<zipfileset src="${plugins.dir}/org.eclipse.text_3.5.300.v20130515-1451.jar"/>
        	<zipfileset src="${plugins.dir}/org.eclipse.core.filesystem_1.4.0.v20130514-1240.jar"/>
        	<zipfileset src="${plugins.dir}/org.eclipse.core.contenttype_3.4.200.v20130326-1255.jar"/>
        	<zipfileset src="${plugins.dir}/org.eclipse.core.runtime.compatibility.registry_3.5.200.v20130514-1256/runtime_registry_compatibility.jar"/>

     	    <!-- These are dependencies the original version 785 compiler had but we do not need because of how we use it -->
        	<!--
        	<zipfileset src="${plugins.dir}/org.eclipse.team.core_3.3.1.r33x_20070807.jar"/>
            <zipfileset src="${plugins.dir}/org.apache.ant_1.7.0.v200706080842/lib/ant.jar"/>            
            -->
        </jar>
        <delete file="lib/jdtDepends-src.zip" failonerror="false"/>
    	<!-- Build the source for the included libraries -->

        <!-- incomplete... -->
        <!--
        <jar destfile="lib/jdtDepends-src.zip" update="true">
	         <zipfileset src="${plugins.src.dir}/org.eclipse.core.resources_${eclipse.version}/src.zip"/> 
        </jar>
        -->
    </target>


    <target name="make.jdtcore.jar">
    	<property name="aj" value="/Users/aclement/gits/org.aspectj/org.eclipse.jdt.core"/>
    	<delete file="${aj}/jdtcore-for-aspectj.jar"/>
        <jar destfile="${aj}/jdtcore-for-aspectj.jar">
            <fileset dir="bin"/>
        </jar>
        <jar destfile="${aj}/jdtcore-for-aspectj.jar" update="true">
        	<!-- with the AST code now activated, we need text and jface... -->
            <zipfileset src="lib/jdtDepends.jar" excludes="org/apache/**,org/w3c/**,org/xml/**,org/xml/**,org/eclipse/jface/**,org/eclipse/osgi/**,META-INF/**"/>
        </jar>
        <delete file="${aj}/jdtcore-for-aspectj-src.zip"/>
        <jar destfile="${aj}/jdtcore-for-aspectj-src.zip">
            <fileset dir="batch"/>
            <fileset dir="compiler"/>
            <fileset dir="antadapter"/>
            <!--fileset dir="antadapter"/-->
            <fileset dir="codeassist"/>
            <fileset dir="dom"/>
            <fileset dir="eval"/>
            <fileset dir="formatter"/>
            <fileset dir="model"/>
            <fileset dir="search"/>
        	<fileset dir="aspectj"/>
            <fileset dir="apt"/>
        </jar>
    	<!--
        <jar destfile="../org.eclipse.jdt.core/jdtcore-for-aspectj-src.zip" update="true">
            <zipfileset src="lib/jdtDepends-src.zip" excludes="org/apache/**,org/w3c/**,org/xml/**,org/eclipse/jface/**,org/eclipse/text/**,org/eclipse/osgi/**"/>
      	</jar>
      	-->
    </target>

    <target name="make.ajdtcore.jar"
            description="build the ajdtcore.jar and jdtcore.jar used by the org.eclipse.ajdt.core plugin">
        <delete file="lib/ajdtcore.jar"/>
        <jar destfile="lib/ajdtcore.jar">
            <zipfileset src="${aspectjtools.jar}">
              <include name = "org/aspectj/asm/**" />
              <include name = "org/aspectj/bridge/**" />
              <include name = "org/aspectj/ajdt/**" />
              <include name = "org/aspectj/tools/**" />
              <include name = "org/aspectj/lang/**" />
              <include name = "org/aspectj/runtime/**" />
              <include name = "org/aspectj/util/**" />
              <include name = "org/aspectj/weaver/**" />
            </zipfileset>
            <fileset dir="bin"/>
        </jar>
    </target>

	<target name="transformProjectToORGASPECTJ"
		description="Transforms the contents of all source folders to use of an 'org.aspectj' prefix">
		<antcall target="transformOneFolderToAJ"><param name="srcfolder" value="antadapter"/></antcall>
		<antcall target="transformOneFolderToAJ"><param name="srcfolder" value="batch"/></antcall>
		<antcall target="transformOneFolderToAJ"><param name="srcfolder" value="codeassist"/></antcall>
		<antcall target="transformOneFolderToAJ"><param name="srcfolder" value="compiler"/></antcall>
		<antcall target="transformOneFolderToAJ"><param name="srcfolder" value="dom"/></antcall>
		<antcall target="transformOneFolderToAJ"><param name="srcfolder" value="eval"/></antcall>
		<antcall target="transformOneFolderToAJ"><param name="srcfolder" value="formatter"/></antcall>
		<antcall target="transformOneFolderToAJ"><param name="srcfolder" value="model"/></antcall>
		<antcall target="transformOneFolderToAJ"><param name="srcfolder" value="search"/></antcall>
		<antcall target="transformOneFolderToAJ"><param name="srcfolder" value="aspectj"/></antcall>
        <antcall target="transformOneFolderToAJ"><param name="srcfolder" value="apt"/></antcall>
	</target>

	<target name="transformProjectFromORGASPECTJ"
		description="Transforms the contents of all source folders to remove 'org.aspectj' prefix on package names">
		<antcall target="transformOneFolderFromAJ"><param name="srcfolder" value="antadapter"/></antcall>
		<antcall target="transformOneFolderFromAJ"><param name="srcfolder" value="batch"/></antcall>
		<antcall target="transformOneFolderFromAJ"><param name="srcfolder" value="codeassist"/></antcall>
		<antcall target="transformOneFolderFromAJ"><param name="srcfolder" value="compiler"/></antcall>
		<antcall target="transformOneFolderFromAJ"><param name="srcfolder" value="dom"/></antcall>
		<antcall target="transformOneFolderFromAJ"><param name="srcfolder" value="eval"/></antcall>
		<antcall target="transformOneFolderFromAJ"><param name="srcfolder" value="formatter"/></antcall>
		<antcall target="transformOneFolderFromAJ"><param name="srcfolder" value="model"/></antcall>
		<antcall target="transformOneFolderFromAJ"><param name="srcfolder" value="search"/></antcall>
		<antcall target="transformOneFolderFromAJ"><param name="srcfolder" value="aspectj"/></antcall>
        <antcall target="transformOneFolderFromAJ"><param name="srcfolder" value="apt"/></antcall>
	</target>

    <target name="transformOneFolderToAJ" description="For source folder named in 'srcfolder' param, renames refs to org.aspectj.org.eclipse.jdt">
	    <delete dir="src-temp" />
        <mkdir dir="src-temp"/>

		<echo message="Copying '${srcfolder}' to 'src-temp' and modifying file names to include aspectj"/>

    	<!-- if the files don't match org.eclipse they won't be looked copied -->
		<copy toDir="src-temp">
		   <fileset dir="${srcfolder}"/>
			<mapper type="regexp" from="^(.*)org/eclipse/jdt(.*)$" to="\1org/aspectj/org/eclipse/jdt\2"/>
			<!-- win
		   <mapper type="regexp" from="^(.*)org\\eclipse\\jdt(.*)$" to="\1org\\aspectj\\org\\eclipse\\jdt\2"/>
		   	-->
		</copy>

    	<!-- Copy across other stuff as is.. -->
		<copy toDir="src-temp">
		   <fileset dir="${srcfolder}"/>
			<mapper type="regexp" from="^(.*)org/aspectj/ajdt(.*)$" to="\1org/aspectj/ajdt\2"/>
			<!-- win
		    <mapper type="regexp" from="^(.*)org\\aspectj\\ajdt(.*)$" to="\1org\\aspectj\\ajdt\2"/>
			-->
		</copy>

	  	<echo message="Modifying file contents to change refs from 'org.eclipse.jdt' to 'org.aspectj.org.eclipse.jdt'"/>

    	<!-- This next bit of code replaces all the string references.  There are two files where
    	     we have to be careful about.  Both AssistOptions and CompilerOptions include strings for options that we
    	     must not change as AJDT will be working with them without the prefix.  We skip these two files on the
    	     'big replace' and then do the pair of them with a less pervasive replace that will just do import and
    	     package statements.  -->
	  	<replaceregexp byline="true" flags="g">
	  		<regexp pattern="org.eclipse.jdt"/>
			<substitution expression="org.aspectj.org.eclipse.jdt"/>
			<fileset dir="src-temp">
	  			<include name="**/*"/>
				<exclude name="**/AssistOptions.java"/>
				<exclude name="**/CompilerOptions.java"/>
	  		</fileset>
	  	</replaceregexp>

    	<replaceregexp byline="true" flags="g">
    		  		<regexp pattern=" org.eclipse.jdt"/>
    				<substitution expression=" org.aspectj.org.eclipse.jdt"/>
    				<fileset dir="src-temp">
    		  			<include name="**/AssistOptions.java"/>
    					<include name="**/CompilerOptions.java"/>
    		  		</fileset>
    	</replaceregexp>

    	<delete dir="${srcfolder}"/>

	  	<echo message="Copying from 'src-temp' back to '${srcfolder}'"/>

    	<copy toDir="${srcfolder}">
		   <fileset dir="src-temp"/>
	  	</copy>

	  	<delete dir="src-temp"/>
	  </target>

	  <target name="transformOneFolderFromAJ" description="For source folder named in 'srcfolder' param, renames refs to org.eclipse.jdt">
	    <delete dir="src-temp" />

	  	<echo message="Copying '${srcfolder}' to 'src-temp' and modifying file names to remove aspectj"/>

	    <copy toDir="src-temp">
	      <fileset dir="${srcfolder}"/>
	      <mapper type="regexp" from="^(.*)org\\aspectj\\org\\eclipse\\jdt(.*)$" to="\1org\\eclipse\\jdt\2"/>
	    </copy>

	  	<!-- Copy across other stuff as is.. -->
	  	<copy toDir="src-temp">
	  		   <fileset dir="${srcfolder}"/>
	  		   <mapper type="regexp" from="^(.*)org\\aspectj\\ajdt(.*)$" to="\1org\\aspectj\\ajdt\2"/>
	  	</copy>


	  	<echo message="Modifying file contents to change refs from 'org.aspectj.org.eclipse' to 'org.eclipse.jdt'"/>

	  	<replaceregexp byline="true" flags="g">
	  		<regexp pattern="org.aspectj.org.eclipse.jdt"/>
			<substitution expression="org.eclipse.jdt"/>
			<fileset dir="src-temp">
	  			<include name="**/*"/>
	  		</fileset>
	  	</replaceregexp>

	  	<delete dir="${srcfolder}"/>

	  	<echo message="Copying from 'src-temp' back to 'src'"/>
	  	<copy toDir="${srcfolder}">
		   <fileset dir="src-temp"/>
	  	</copy>
	  	<delete dir="src-temp"/>
	  </target>

</project>