<!--
    Copyright (c) 2004, 2023 IBM Corporation and others.
    This program and the accompanying materials are made
    available under the terms of the Eclipse Public License 2.0
    which accompanies this distribution, and is available at
    https://www.eclipse.org/legal/epl-2.0/

    SPDX-License-Identifier: EPL-2.0

    Contributors:
        IBM Corporation - initial API and implementation
 -->
<project name="PrepareForPII" default="main" basedir=".">
		
	<!-- Setup temp variables -->
	<target name="init">
		<property name="nlsDir" value="d:/NLS/Corona/0526"/>
		<property name="plugin" value="com.ibm.wtp.ejb"/>
		<property name="plugindir" value="d:/workspaceCorona/${plugin}"/>
		<property name="outputDir" value="${nlsDir}/${plugin}"/>
		
	
	</target>

	<!-- Create the destination dir -->
	<target name="nlsDir" depends="init">
		<mkdir dir="${nlsDir}"/>
	</target>
	
	<!-- Create the destination dir -->
	<target name="plugindir" depends="nlsDir">
		<delete dir="${outputDir}"/>
		<mkdir dir="${outputDir}"/>
	</target>

	<!-- Move the files to the correct locations in the workspace. -->
	<target name="main" depends="plugindir">
	
		<messageIdGen folderPath = "${plugindir}" componentId = "E" />
		
		<copy todir = "${outputDir}/property_files" >
			 <fileset dir="${plugindir}/property_files">
           	  <include name="**/*.properties"/>
  			 </fileset>
  		</copy>
  		
  		<copy file="${plugindir}/plugin.properties" todir="${outputDir}"/>
  		
	</target>
</project>
