diff options
4 files changed, 265 insertions, 199 deletions
diff --git a/java/source/org/openoffice/ide/eclipse/java/export/JavaExportPart.java b/java/source/org/openoffice/ide/eclipse/java/export/JavaExportPart.java index 69fcbb9..3c8dbd2 100644 --- a/java/source/org/openoffice/ide/eclipse/java/export/JavaExportPart.java +++ b/java/source/org/openoffice/ide/eclipse/java/export/JavaExportPart.java @@ -20,16 +20,23 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA - * + * * The Initial Developer of the Original Code is: Cédric Bosdonnat. * * Copyright: 2009 by Cédric Bosdonnat * * All Rights Reserved. - * + * ************************************************************************/ package org.openoffice.ide.eclipse.java.export; +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.util.Properties; + +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; @@ -41,14 +48,17 @@ import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; +import org.openoffice.ide.eclipse.core.PluginLogger; +import org.openoffice.ide.eclipse.core.model.IUnoidlProject; import org.openoffice.ide.eclipse.core.model.language.LanguageExportPart; import org.openoffice.ide.eclipse.core.wizards.pages.ManifestExportPage; import org.openoffice.ide.eclipse.java.Messages; +import org.openoffice.ide.eclipse.java.utils.TemplatesHelper; import org.openoffice.plugin.core.model.UnoPackage; /** * Dialog part for the Ant scripts export configuration. - * + * * @author Cédric Bosdonnat * */ @@ -60,38 +70,38 @@ public class JavaExportPart extends LanguageExportPart { private Text mNameRowTxt; private JavaExportPageControl mController; - + /** * {@inheritDoc} */ @Override public void createControls(Composite pParent) { - + mController = new JavaExportPageControl(); - + Label titleLbl = new Label( pParent, SWT.NONE ); titleLbl.setText( Messages.getString("JavaExportPart.Title") ); //$NON-NLS-1$ titleLbl.setLayoutData( new GridData( SWT.BEGINNING, SWT.BEGINNING, false, false ) ); - + Composite content = new Composite( pParent, SWT.NONE ); GridData gd = new GridData( SWT.FILL, SWT.FILL, true, true ); gd.horizontalIndent = ManifestExportPage.HORIZONTAL_INDENT; content.setLayoutData( gd ); content.setLayout( new GridLayout() ); - + mSaveScripts = new Button( content, SWT.CHECK ); mSaveScripts.setText( Messages.getString("JavaExportPart.SaveAntScript") ); //$NON-NLS-1$ mSaveScripts.setLayoutData( new GridData( SWT.FILL, SWT.BEGINNING, true, false ) ); mSaveScripts.addSelectionListener( new SelectionListener() { - + public void widgetSelected( SelectionEvent pE ) { - + mController.setSaveAntScript( mSaveScripts.getSelection() ); - + mNameRowLbl.setEnabled( mController.isSavePathEnabled() ); mNameRowTxt.setEnabled( mController.isSavePathEnabled() ); } - + public void widgetDefaultSelected( SelectionEvent pE ) { widgetSelected( pE ); } @@ -102,20 +112,20 @@ public class JavaExportPart extends LanguageExportPart { gd = new GridData( SWT.FILL, SWT.BEGINNING, true, false ); gd.horizontalIndent = ManifestExportPage.HORIZONTAL_INDENT; mNameRow.setLayoutData( gd ); - + mNameRowLbl = new Label( mNameRow, SWT.NONE ); mNameRowLbl.setLayoutData( new GridData( SWT.BEGINNING, SWT.CENTER, false, false ) ); mNameRowLbl.setText( Messages.getString("JavaExportPart.AntFile") ); //$NON-NLS-1$ - + mNameRowTxt = new Text( mNameRow, SWT.BORDER | SWT.SINGLE ); mNameRowTxt.setLayoutData( new GridData( SWT.FILL, SWT.CENTER, true, false ) ); mNameRowTxt.addModifyListener( new ModifyListener() { - + public void modifyText( ModifyEvent pEvent ) { mController.setSavePath( mNameRowTxt.getText() ); } }); - + // Load the default values mSaveScripts.setSelection( mController.isSavePathEnabled() ); mNameRowTxt.setText( mController.getSavePath() ); @@ -140,7 +150,32 @@ public class JavaExportPart extends LanguageExportPart { @Override public void doFinish( UnoPackage pModel ) { if ( mController.getSaveAntScript() ) { - // TODO Generate the build script + + // Generate the build script + IUnoidlProject unoProject = getPage().getProject(); + String prjName = unoProject.getName(); + IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(unoProject.getName()); + + TemplatesHelper.copyTemplate( project, mController.getSavePath(), + JavaExportPart.class, new String( ), prjName ); + + // Generate the build.properties file + File dir = project.getFile(mController.getSavePath()).getLocation().toFile().getParentFile(); + File propsFile = new File(dir, "build.properties"); //$NON-NLS-1$ + FileWriter writer = null; + + try { + writer = new FileWriter(propsFile); + + Properties props = new Properties(); + props.put("office.install.dir", new String()); //$NON-NLS-1$ + props.put("sdk.dir", new String()); //$NON-NLS-1$ + props.put("java.debug", "false"); //$NON-NLS-1$ //$NON-NLS-2$ + props.store(writer, "This file can contain setup-dependent data, don't commit them!"); //$NON-NLS-1$ + writer.close(); + } catch ( IOException e ) { + PluginLogger.error( Messages.getString("JavaExportPart.BuildPropertiesError"), e ); //$NON-NLS-1$ + } } } } diff --git a/java/source/org/openoffice/ide/eclipse/java/export/build.xml b/java/source/org/openoffice/ide/eclipse/java/export/build.xml deleted file mode 100644 index 2e63008..0000000 --- a/java/source/org/openoffice/ide/eclipse/java/export/build.xml +++ /dev/null @@ -1,182 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - * This library is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation, either version 3 of - * the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program. - * If not, see <http://www.gnu.org/licenses/>. - * - * Copyright: 2009 by Cédric Bosdonnat - * - * All Rights Reserved. - --> -<project name="COOoder" default="package-oxt" basedir=".."> - - <target name="init-env"> - - <!-- set properties from libreoffice install and its SDK --> - <echo message="Initializing the properties for LibreOffice"/> - - <property name="office.basis.dir" value="${office.install.dir}${file.separator}basis-link"/> - <property name="office.ure.dir" value="${office.basis.dir}${file.separator}ure-link"/> - - <property name="office.libs.path" value="${office.install.dir}${file.separator}program${path.separator}${office.basis.dir}${file.separator}program${path.separator}${office.ure.dir}${file.separator}lib"/> - - <echo message="Office libs path: ${office.libs.path}"/> - - <path id="office.class.path"> - <fileset dir="${office.basis.dir}${file.separator}program${file.separator}classes"> - <include name="*.jar"/> - </fileset> - <fileset dir="${office.ure.dir}${file.separator}share${file.separator}java"> - <include name="*.jar"/> - </fileset> - </path> - - <property name="office.unotypes.rdb" - value="${office.ure.dir}${file.separator}share${file.separator}misc${file.separator}types.rdb"/> - - <property name="office.offapi.rdb" - value="${office.basis.dir}${file.separator}program${file.separator}offapi.rdb"/> - - <property name="sdk.idl.dir" location="${sdk.dir}${file.separator}idl"/> - <property name="sdk.idlc" value="${sdk.dir}${file.separator}${sdk.bin.dir}${file.separator}idlc"/> - <property name="sdk.regmerge" value="${sdk.dir}${file.separator}${sdk.bin.dir}${file.separator}regmerge"/> - <property name="sdk.javamaker" value="${sdk.dir}${file.separator}${sdk.bin.dir}${file.separator}javamaker"/> - - <property environment="env"/> - <property name="office.tool.path" value="${env.PATH}${path.separator}${office.libs.path}"/> - - <!-- set properties for the project structure --> - <property file=".unoproject"/> - <property file="package.properties"/> - <dirname property="project.dir" file="package.properties"/> - - <property name="build.dir" value="${project.build}"/> - <property name="build.classes.dir" value="${build.dir}/classes"/> - <property name="dist.dir" value="${build.dir}/dist"/> - - <!-- set properties for the output structure --> - - <property name="uno.package.name" value="${project.dir}${file.separator}${dist.dir}${file.separator}${ant.project.name}.oxt"/> - <property name="src.dir.absolute" value="${project.dir}${project.srcdir}"/> - <property name="idl.dir" value="${project.dir}${project.idl}"/> - - <property name="idl.out" value="${project.dir}${file.separator}${build.dir}${file.separator}idl"/> - <property name="idl.out.urd" value="${idl.out}${file.separator}urd"/> - <property name="idl.out.rdb" value="${idl.out}${file.separator}rdb"/> - <property name="idl.rdb.name" value="types.rdb"/> - <property name="idl.rdb.fullpath" value="${idl.out.rdb}${file.separator}${idl.rdb.name}"/> - - <!-- create a few empty directories --> - - <mkdir dir="${build.dir}" /> - <mkdir dir="${idl.out}"/> - <mkdir dir="${idl.out.urd}"/> - <mkdir dir="${idl.out.rdb}"/> - <mkdir dir="${build.classes.dir}"/> - <mkdir dir="${dist.dir}"/> - </target> - - <target name="clean" depends="init-env"> - <delete dir="${build.dir}"/> - </target> - - <target name="package-oxt" depends="package-jar"> - <!-- The manifest.xml file is extracted from the package build with Eclipse --> - - <zip destfile="${uno.package.name}" includes="${contents}"> - <fileset dir="." includes="${contents}"/> - <zipfileset dir="descriptions" includes="**/*.txt" prefix="descriptions"/> - <zipfileset file="ant/manifest.xml" fullpath="META-INF/manifest.xml"/> - <zipfileset file="${dist.dir}/${ant.project.name}.jar" - fullpath="${ant.project.name}.jar"/> - <zipfileset file="${idl.rdb.fullpath}" fullpath="types.rdb"/> - </zip> - </target> - - <target name="package-jar" depends="compile-java"> - <jar destfile="${dist.dir}/${ant.project.name}.jar"> - <manifest> - <attribute name="RegistrationClassName" value="${regclassname}"/> - </manifest> - <fileset dir="${build.classes.dir}"> - <include name="**/*.class"/> - </fileset> - <fileset dir="${src.dir.absolute}"> - <exclude name="**/*.java"/> - </fileset> - </jar> - </target> - - <target name="compile-java" depends="types"> - <echo message="build classes: ${build.classes.dir}"/> - <javac srcdir="${src.dir.absolute}" source="1.4" target="1.4" encoding="UTF-8" - destdir="${build.classes.dir}" excludes="**/*Test*"> - <classpath> - <pathelement location="${build.classes.dir}"/> - <path refid="office.class.path"/> - </classpath> - </javac> - </target> - - <target name="types" depends="merge-urd"> - <echo message="Generating java class files from rdb..."/> - <condition property="args.offapi" value=" -X${office.offapi.rdb}" else=""> - <length string="${office.offapi.rdb}" when="greater" length="0" trim="true"/> - </condition> - - <exec executable="${sdk.javamaker}" failonerror="true"> - <env key="PATH" path="${office.tool.path}"/> - <env key="LD_LIBRARY_PATH" path="${office.tool.path}"/> - <env key="DYLD_LIBRARY_PATH" path="${office.tool.path}"/> - <arg value="-nD"/> - <arg value="-Gc"/> - <arg value="-BUCR"/> - <arg value="-O"/> - <arg value="${project.dir}${file.separator}${build.classes.dir}"/> - <arg file="${idl.rdb.fullpath}"/> - <arg line="-X${office.unotypes.rdb}${args.offapi}"/> - </exec> - </target> - - <target name="merge-urd" depends="compile-idl"> - <delete file="${idl.rdb.fullpath}"/> - <apply executable="${sdk.regmerge}" failonerror="true"> - <env key="PATH" path="${office.tool.path}"/> - <env key="LD_LIBRARY_PATH" path="${office.tool.path}"/> - <env key="DYLD_LIBRARY_PATH" path="${office.tool.path}"/> - <arg file="${idl.rdb.fullpath}"/> - <arg value="/UCR"/> - <fileset dir="${idl.out.urd}" includes="**/*.urd" casesensitive="yes"/> - </apply> - </target> - - <target name="compile-idl" depends="init-env"> - <echo message="${sdk.idlc}"/> - <echo message="${office.tool.path}"/> - - <apply executable="${sdk.idlc}" failonerror="true"> - <env key="PATH" path="${office.tool.path}"/> - <env key="LD_LIBRARY_PATH" path="${office.tool.path}"/> - <env key="DYLD_LIBRARY_PATH" path="${office.tool.path}"/> - <arg value="-C"/> - <arg value="-O"/> - <arg value="${idl.out.urd}"/> - <arg value="-I"/> - <arg value="${idl.dir}"/> - <arg value="-I"/> - <arg value="${sdk.idl.dir}"/> - <fileset dir="${idl.dir}" includes="**/*.idl" casesensitive="yes"/> - </apply> - </target> - -</project> diff --git a/java/source/org/openoffice/ide/eclipse/java/export/build.xml.tpl b/java/source/org/openoffice/ide/eclipse/java/export/build.xml.tpl new file mode 100644 index 0000000..cc99f03 --- /dev/null +++ b/java/source/org/openoffice/ide/eclipse/java/export/build.xml.tpl @@ -0,0 +1,212 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project name="{0}" default="package-oxt" basedir="."> + + <target name="init-env"> + + <!-- set properties from libreoffice install and its SDK --> + <property file="$'{'ant.file}/../build.properties"/> + + <echo message="Initializing the properties for LibreOffice"/> + <first id="sofficeParents"> + <dirset dir="$'{'office.install.dir}"> + <present targetdir="$'{'office.install.dir}"> + <mapper type="glob" from="*" to="*/soffice.bin" /> + </present> + </dirset> + </first> + <property name="office.basis.dir" value="$'{'toString:sofficeParents}$'{'file.separator}.."/> + <property name="office.ure.dir" value="$'{'office.basis.dir}$'{'file.separator}ure-link"/> + + <property name="office.libs.path" value="$'{'office.install.dir}$'{'file.separator}program$'{'path.separator}$'{'office.basis.dir}$'{'file.separator}program$'{'path.separator}$'{'office.ure.dir}$'{'file.separator}lib"/> + + <echo message="Office libs path: $'{'office.libs.path}"/> + + <path id="office.class.path"> + <fileset dir="$'{'office.basis.dir}$'{'file.separator}program$'{'file.separator}classes"> + <include name="*.jar"/> + </fileset> + <fileset dir="$'{'office.ure.dir}$'{'file.separator}share$'{'file.separator}java"> + <include name="*.jar"/> + </fileset> + </path> + + <property name="office.unotypes.rdb" + value="$'{'office.ure.dir}$'{'file.separator}share$'{'file.separator}misc$'{'file.separator}types.rdb"/> + + <first id="offapirdbPaths"> + <fileset dir="$'{'office.install.dir}" includes="**/offapi.rdb" /> + </first> + <property name="office.offapi.rdb" value="$'{'toString:offapirdbPaths}"/> + + <property name="sdk.idl.dir" location="$'{'sdk.dir}$'{'file.separator}idl"/> + <property name="sdk.idlc" value="$'{'sdk.dir}$'{'file.separator}$'{'sdk.bin.dir}$'{'file.separator}idlc"/> + <property name="sdk.javamaker" value="$'{'sdk.dir}$'{'file.separator}$'{'sdk.bin.dir}$'{'file.separator}javamaker"/> + + <first id="regmergePaths"> + <union> + <fileset dir="$'{'office.ure.dir}" includes="**/regmerge" /> + <fileset dir="$'{'sdk.dir}" includes="**/regmerge" /> + </union> + </first> + <property name="sdk.regmerge" value="$'{'toString:regmergePaths}"/> + + <property environment="env"/> + <property name="office.tool.path" value="$'{'env.PATH}$'{'path.separator}$'{'office.libs.path}"/> + + <!-- set properties for the project structure --> + <property file=".unoproject"/> + <property file="package.properties"/> + <dirname property="project.dir" file="package.properties"/> + + <property name="build.dir" value="$'{'project.build}"/> + <property name="build.classes.dir" value="$'{'build.dir}/classes"/> + <property name="dist.dir" value="$'{'build.dir}/dist"/> + + <!-- set properties for the output structure --> + + <property name="uno.package.name" value="$'{'project.dir}$'{'file.separator}$'{'dist.dir}$'{'file.separator}$'{'ant.project.name}.oxt"/> + <property name="src.dir.absolute" value="$'{'project.dir}$'{'project.srcdir}"/> + <property name="idl.dir" value="$'{'project.dir}$'{'project.idl}"/> + + <property name="idl.out" value="$'{'project.dir}$'{'file.separator}$'{'build.dir}$'{'file.separator}idl"/> + <property name="idl.out.urd" value="$'{'idl.out}$'{'file.separator}urd"/> + <property name="idl.out.rdb" value="$'{'idl.out}$'{'file.separator}rdb"/> + <property name="idl.rdb.name" value="types.rdb"/> + <property name="idl.rdb.fullpath" value="$'{'idl.out.rdb}$'{'file.separator}$'{'idl.rdb.name}"/> + + <!-- create a few empty directories --> + + <mkdir dir="$'{'build.dir}" /> + <mkdir dir="$'{'idl.out}"/> + <mkdir dir="$'{'idl.out.urd}"/> + <mkdir dir="$'{'idl.out.rdb}"/> + <mkdir dir="$'{'build.classes.dir}"/> + <mkdir dir="$'{'dist.dir}"/> + </target> + + <target name="clean" depends="init-env"> + <delete dir="$'{'build.dir}"/> + </target> + + <target name="package-oxt" depends="package-jar"> + <zip destfile="$'{'uno.package.name}" includes="$'{'contents}"> + <fileset dir="." includes="$'{'contents}"/> + <zipfileset dir="descriptions" includes="**/*.txt" prefix="descriptions"/> + <zipfileset file="ant/manifest.xml" fullpath="META-INF/manifest.xml"/> + <zipfileset file="$'{'dist.dir}/$'{'ant.project.name}.jar" + fullpath="$'{'ant.project.name}.jar"/> + <zipfileset file="$'{'idl.rdb.fullpath}" fullpath="types.rdb"/> + </zip> + </target> + + <target name="package-jar" depends="compile-java"> + <jar destfile="$'{'dist.dir}/$'{'ant.project.name}.jar"> + <manifest> + <attribute name="RegistrationClassName" value="$'{'regclassname}"/> + </manifest> + <fileset dir="$'{'build.classes.dir}"> + <include name="**/*.class"/> + </fileset> + <fileset dir="$'{'src.dir.absolute}"> + <exclude name="**/*.java"/> + </fileset> + </jar> + </target> + + <target name="compile-java" depends="types"> + <echo message="build classes: $'{'build.classes.dir}"/> + <javac srcdir="$'{'src.dir.absolute}" source="1.4" target="1.4" encoding="UTF-8" + destdir="$'{'build.classes.dir}" excludes="**/*Test*"> + <classpath> + <pathelement location="$'{'build.classes.dir}"/> + <path refid="office.class.path"/> + </classpath> + </javac> + </target> + + <target name="types-old" depends="merge-urd"> + <echo message="Generating java class files from rdb..."/> + <condition property="args.offapi" value=" -X$'{'office.offapi.rdb}" else=""> + <length string="$'{'office.offapi.rdb}" when="greater" length="0" trim="true"/> + </condition> + + <exec executable="$'{'sdk.javamaker}" errorproperty="regmerge.err" + resultproperty="regmerge.result"> + <env key="PATH" path="$'{'office.tool.path}"/> + <env key="LD_LIBRARY_PATH" path="$'{'office.tool.path}"/> + <env key="DYLD_LIBRARY_PATH" path="$'{'office.tool.path}"/> + <arg value="-nD"/> + <arg value="-Gc"/> + <arg value="-BUCR"/> + <arg value="-O"/> + <arg value="$'{'project.dir}$'{'file.separator}$'{'build.classes.dir}"/> + <arg file="$'{'idl.rdb.fullpath}"/> + <arg line="-X$'{'office.unotypes.rdb}$'{'args.offapi}"/> + </exec> + + <condition property="regmerge.noprefix" value="true" else="false"> + <contains string="$'{'regmerge.err}" substring="-BUCR"/> + </condition> + + <condition property="regermerge.failed"> + <and> + <isfalse value="$'{'regmerge.noprefix}"/> + <isfailure code="$'{'regmerge.result}"/> + </and> + </condition> + + <fail if="$'{'regmerge.failed}" message="Regmerge failed: $'{'regmerge.err}"/> + </target> + + <target name="types-noprefix" depends="types-old" if="$'{'regmerge.noprefix}"> + <condition property="args.offapi" value=" -X$'{'office.offapi.rdb}" else=""> + <length string="$'{'office.offapi.rdb}" when="greater" length="0" trim="true"/> + </condition> + + <exec executable="$'{'sdk.javamaker}" failonerror="true"> + <env key="PATH" path="$'{'office.tool.path}"/> + <env key="LD_LIBRARY_PATH" path="$'{'office.tool.path}"/> + <env key="DYLD_LIBRARY_PATH" path="$'{'office.tool.path}"/> + <arg value="-nD"/> + <arg value="-Gc"/> + <arg value="-O"/> + <arg value="$'{'project.dir}$'{'file.separator}$'{'build.classes.dir}"/> + <arg file="$'{'idl.rdb.fullpath}"/> + <arg line="-X$'{'office.unotypes.rdb}$'{'args.offapi}"/> + </exec> + </target> + + <target name="types" depends="types-old, types-noprefix" /> + + <target name="merge-urd" depends="compile-idl"> + <delete file="$'{'idl.rdb.fullpath}"/> + <apply executable="$'{'sdk.regmerge}" failonerror="true"> + <env key="PATH" path="$'{'office.tool.path}"/> + <env key="LD_LIBRARY_PATH" path="$'{'office.tool.path}"/> + <env key="DYLD_LIBRARY_PATH" path="$'{'office.tool.path}"/> + <arg file="$'{'idl.rdb.fullpath}"/> + <arg value="/UCR"/> + <fileset dir="$'{'idl.out.urd}" includes="**/*.urd" casesensitive="yes"/> + </apply> + </target> + + <target name="compile-idl" depends="init-env"> + <echo message="$'{'sdk.idlc}"/> + <echo message="$'{'office.tool.path}"/> + + <apply executable="$'{'sdk.idlc}" failonerror="true"> + <env key="PATH" path="$'{'office.tool.path}"/> + <env key="LD_LIBRARY_PATH" path="$'{'office.tool.path}"/> + <env key="DYLD_LIBRARY_PATH" path="$'{'office.tool.path}"/> + <arg value="-C"/> + <arg value="-O"/> + <arg value="$'{'idl.out.urd}"/> + <arg value="-I"/> + <arg value="$'{'idl.dir}"/> + <arg value="-I"/> + <arg value="$'{'sdk.idl.dir}"/> + <fileset dir="$'{'idl.dir}" includes="**/*.idl" casesensitive="yes"/> + </apply> + </target> + +</project> diff --git a/java/source/org/openoffice/ide/eclipse/java/messages.properties b/java/source/org/openoffice/ide/eclipse/java/messages.properties index 8f4d8f2..9b802d7 100644 --- a/java/source/org/openoffice/ide/eclipse/java/messages.properties +++ b/java/source/org/openoffice/ide/eclipse/java/messages.properties @@ -4,6 +4,7 @@ Language.UnreadableOutputError=Unreadable output error Language.CreateCodeError=Code generation failed Language.GetClasspathError=Failed to get the project classpath JavaExportPart.AntFile=Ant build file +JavaExportPart.BuildPropertiesError=Error creating build.properties JavaExportPart.SaveAntScript=Save as Ant script JavaExportPart.Title=Java options JavaWizardPage.IncludeTestClasses=Include base classes for tests |